diff options
author | Linus Torvalds <torvalds@linux-foundation.org> | 2012-01-09 17:38:51 -0500 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2012-01-09 17:38:51 -0500 |
commit | 5ede3ceb7b2c2843e153a1803edbdc8c56655950 (patch) | |
tree | 4cfa82b619f7d39b671e4a2a213f4d040b09c486 /drivers | |
parent | 6d889d03ab1417645e76e129834f76204bae37c0 (diff) | |
parent | 3e2762c8f1141ae8dc708034ea41d6827818c328 (diff) |
Merge tag 'devel' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc
New feature development
This adds support for new features, and contains stuff from most
platforms. A number of these patches could have fit into other
branches, too, but were small enough not to cause too much
confusion here.
* tag 'devel' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc: (28 commits)
mfd/db8500-prcmu: remove support for early silicon revisions
ARM: ux500: fix the smp_twd clock calculation
ARM: ux500: remove support for early silicon revisions
ARM: ux500: update register files
ARM: ux500: register DB5500 PMU dynamically
ARM: ux500: update ASIC detection for U5500
ARM: ux500: support DB8520
ARM: picoxcell: implement watchdog restart
ARM: OMAP3+: hwmod data: Add the default clockactivity for I2C
ARM: OMAP3: hwmod data: disable multiblock reads on MMC1/2 on OMAP34xx/35xx <= ES2.1
ARM: OMAP: USB: EHCI and OHCI hwmod structures for OMAP4
ARM: OMAP: USB: EHCI and OHCI hwmod structures for OMAP3
ARM: OMAP: hwmod data: Add support for AM35xx UART4/ttyO3
ARM: Orion: Remove address map info from all platform data structures
ARM: Orion: Get address map from plat-orion instead of via platform_data
ARM: Orion: mbus_dram_info consolidation
ARM: Orion: Consolidate the address map setup
ARM: Kirkwood: Add configuration for MPP12 as GPIO
ARM: Kirkwood: Recognize A1 revision of 6282 chip
ARM: ux500: update the MOP500 GPIO assignments
...
Diffstat (limited to 'drivers')
-rw-r--r-- | drivers/ata/sata_mv.c | 19 | ||||
-rw-r--r-- | drivers/dma/mv_xor.c | 11 | ||||
-rw-r--r-- | drivers/mfd/db8500-prcmu.c | 7 | ||||
-rw-r--r-- | drivers/mmc/host/mvsdio.c | 13 | ||||
-rw-r--r-- | drivers/net/ethernet/marvell/mv643xx_eth.c | 10 | ||||
-rw-r--r-- | drivers/usb/host/ehci-orion.c | 10 |
6 files changed, 39 insertions, 31 deletions
diff --git a/drivers/ata/sata_mv.c b/drivers/ata/sata_mv.c index 0b8b8b488ee8..38950ea8398a 100644 --- a/drivers/ata/sata_mv.c +++ b/drivers/ata/sata_mv.c | |||
@@ -3988,7 +3988,7 @@ static int mv_create_dma_pools(struct mv_host_priv *hpriv, struct device *dev) | |||
3988 | } | 3988 | } |
3989 | 3989 | ||
3990 | static void mv_conf_mbus_windows(struct mv_host_priv *hpriv, | 3990 | static void mv_conf_mbus_windows(struct mv_host_priv *hpriv, |
3991 | struct mbus_dram_target_info *dram) | 3991 | const struct mbus_dram_target_info *dram) |
3992 | { | 3992 | { |
3993 | int i; | 3993 | int i; |
3994 | 3994 | ||
@@ -3998,7 +3998,7 @@ static void mv_conf_mbus_windows(struct mv_host_priv *hpriv, | |||
3998 | } | 3998 | } |
3999 | 3999 | ||
4000 | for (i = 0; i < dram->num_cs; i++) { | 4000 | for (i = 0; i < dram->num_cs; i++) { |
4001 | struct mbus_dram_window *cs = dram->cs + i; | 4001 | const struct mbus_dram_window *cs = dram->cs + i; |
4002 | 4002 | ||
4003 | writel(((cs->size - 1) & 0xffff0000) | | 4003 | writel(((cs->size - 1) & 0xffff0000) | |
4004 | (cs->mbus_attr << 8) | | 4004 | (cs->mbus_attr << 8) | |
@@ -4019,6 +4019,7 @@ static void mv_conf_mbus_windows(struct mv_host_priv *hpriv, | |||
4019 | static int mv_platform_probe(struct platform_device *pdev) | 4019 | static int mv_platform_probe(struct platform_device *pdev) |
4020 | { | 4020 | { |
4021 | const struct mv_sata_platform_data *mv_platform_data; | 4021 | const struct mv_sata_platform_data *mv_platform_data; |
4022 | const struct mbus_dram_target_info *dram; | ||
4022 | const struct ata_port_info *ppi[] = | 4023 | const struct ata_port_info *ppi[] = |
4023 | { &mv_port_info[chip_soc], NULL }; | 4024 | { &mv_port_info[chip_soc], NULL }; |
4024 | struct ata_host *host; | 4025 | struct ata_host *host; |
@@ -4072,8 +4073,9 @@ static int mv_platform_probe(struct platform_device *pdev) | |||
4072 | /* | 4073 | /* |
4073 | * (Re-)program MBUS remapping windows if we are asked to. | 4074 | * (Re-)program MBUS remapping windows if we are asked to. |
4074 | */ | 4075 | */ |
4075 | if (mv_platform_data->dram != NULL) | 4076 | dram = mv_mbus_dram_info(); |
4076 | mv_conf_mbus_windows(hpriv, mv_platform_data->dram); | 4077 | if (dram) |
4078 | mv_conf_mbus_windows(hpriv, dram); | ||
4077 | 4079 | ||
4078 | rc = mv_create_dma_pools(hpriv, &pdev->dev); | 4080 | rc = mv_create_dma_pools(hpriv, &pdev->dev); |
4079 | if (rc) | 4081 | if (rc) |
@@ -4141,17 +4143,18 @@ static int mv_platform_suspend(struct platform_device *pdev, pm_message_t state) | |||
4141 | static int mv_platform_resume(struct platform_device *pdev) | 4143 | static int mv_platform_resume(struct platform_device *pdev) |
4142 | { | 4144 | { |
4143 | struct ata_host *host = platform_get_drvdata(pdev); | 4145 | struct ata_host *host = platform_get_drvdata(pdev); |
4146 | const struct mbus_dram_target_info *dram; | ||
4144 | int ret; | 4147 | int ret; |
4145 | 4148 | ||
4146 | if (host) { | 4149 | if (host) { |
4147 | struct mv_host_priv *hpriv = host->private_data; | 4150 | struct mv_host_priv *hpriv = host->private_data; |
4148 | const struct mv_sata_platform_data *mv_platform_data = \ | 4151 | |
4149 | pdev->dev.platform_data; | ||
4150 | /* | 4152 | /* |
4151 | * (Re-)program MBUS remapping windows if we are asked to. | 4153 | * (Re-)program MBUS remapping windows if we are asked to. |
4152 | */ | 4154 | */ |
4153 | if (mv_platform_data->dram != NULL) | 4155 | dram = mv_mbus_dram_info(); |
4154 | mv_conf_mbus_windows(hpriv, mv_platform_data->dram); | 4156 | if (dram) |
4157 | mv_conf_mbus_windows(hpriv, dram); | ||
4155 | 4158 | ||
4156 | /* initialize adapter */ | 4159 | /* initialize adapter */ |
4157 | ret = mv_init_host(host); | 4160 | ret = mv_init_host(host); |
diff --git a/drivers/dma/mv_xor.c b/drivers/dma/mv_xor.c index 9a353c2216d0..e779b434af45 100644 --- a/drivers/dma/mv_xor.c +++ b/drivers/dma/mv_xor.c | |||
@@ -1250,7 +1250,7 @@ static int __devinit mv_xor_probe(struct platform_device *pdev) | |||
1250 | 1250 | ||
1251 | static void | 1251 | static void |
1252 | mv_xor_conf_mbus_windows(struct mv_xor_shared_private *msp, | 1252 | mv_xor_conf_mbus_windows(struct mv_xor_shared_private *msp, |
1253 | struct mbus_dram_target_info *dram) | 1253 | const struct mbus_dram_target_info *dram) |
1254 | { | 1254 | { |
1255 | void __iomem *base = msp->xor_base; | 1255 | void __iomem *base = msp->xor_base; |
1256 | u32 win_enable = 0; | 1256 | u32 win_enable = 0; |
@@ -1264,7 +1264,7 @@ mv_xor_conf_mbus_windows(struct mv_xor_shared_private *msp, | |||
1264 | } | 1264 | } |
1265 | 1265 | ||
1266 | for (i = 0; i < dram->num_cs; i++) { | 1266 | for (i = 0; i < dram->num_cs; i++) { |
1267 | struct mbus_dram_window *cs = dram->cs + i; | 1267 | const struct mbus_dram_window *cs = dram->cs + i; |
1268 | 1268 | ||
1269 | writel((cs->base & 0xffff0000) | | 1269 | writel((cs->base & 0xffff0000) | |
1270 | (cs->mbus_attr << 8) | | 1270 | (cs->mbus_attr << 8) | |
@@ -1290,7 +1290,7 @@ static struct platform_driver mv_xor_driver = { | |||
1290 | 1290 | ||
1291 | static int mv_xor_shared_probe(struct platform_device *pdev) | 1291 | static int mv_xor_shared_probe(struct platform_device *pdev) |
1292 | { | 1292 | { |
1293 | struct mv_xor_platform_shared_data *msd = pdev->dev.platform_data; | 1293 | const struct mbus_dram_target_info *dram; |
1294 | struct mv_xor_shared_private *msp; | 1294 | struct mv_xor_shared_private *msp; |
1295 | struct resource *res; | 1295 | struct resource *res; |
1296 | 1296 | ||
@@ -1323,8 +1323,9 @@ static int mv_xor_shared_probe(struct platform_device *pdev) | |||
1323 | /* | 1323 | /* |
1324 | * (Re-)program MBUS remapping windows if we are asked to. | 1324 | * (Re-)program MBUS remapping windows if we are asked to. |
1325 | */ | 1325 | */ |
1326 | if (msd != NULL && msd->dram != NULL) | 1326 | dram = mv_mbus_dram_info(); |
1327 | mv_xor_conf_mbus_windows(msp, msd->dram); | 1327 | if (dram) |
1328 | mv_xor_conf_mbus_windows(msp, dram); | ||
1328 | 1329 | ||
1329 | return 0; | 1330 | return 0; |
1330 | } | 1331 | } |
diff --git a/drivers/mfd/db8500-prcmu.c b/drivers/mfd/db8500-prcmu.c index a25ab9c6b5af..af8e0efedbe4 100644 --- a/drivers/mfd/db8500-prcmu.c +++ b/drivers/mfd/db8500-prcmu.c | |||
@@ -2102,14 +2102,11 @@ static struct irq_chip prcmu_irq_chip = { | |||
2102 | void __init db8500_prcmu_early_init(void) | 2102 | void __init db8500_prcmu_early_init(void) |
2103 | { | 2103 | { |
2104 | unsigned int i; | 2104 | unsigned int i; |
2105 | 2105 | if (cpu_is_u8500v2()) { | |
2106 | if (cpu_is_u8500v1()) { | ||
2107 | tcdm_base = __io_address(U8500_PRCMU_TCDM_BASE_V1); | ||
2108 | } else if (cpu_is_u8500v2()) { | ||
2109 | void *tcpm_base = ioremap_nocache(U8500_PRCMU_TCPM_BASE, SZ_4K); | 2106 | void *tcpm_base = ioremap_nocache(U8500_PRCMU_TCPM_BASE, SZ_4K); |
2110 | 2107 | ||
2111 | if (tcpm_base != NULL) { | 2108 | if (tcpm_base != NULL) { |
2112 | int version; | 2109 | u32 version; |
2113 | version = readl(tcpm_base + PRCMU_FW_VERSION_OFFSET); | 2110 | version = readl(tcpm_base + PRCMU_FW_VERSION_OFFSET); |
2114 | prcmu_version.project_number = version & 0xFF; | 2111 | prcmu_version.project_number = version & 0xFF; |
2115 | prcmu_version.api_version = (version >> 8) & 0xFF; | 2112 | prcmu_version.api_version = (version >> 8) & 0xFF; |
diff --git a/drivers/mmc/host/mvsdio.c b/drivers/mmc/host/mvsdio.c index 211a4959c293..eeb8cd125b0c 100644 --- a/drivers/mmc/host/mvsdio.c +++ b/drivers/mmc/host/mvsdio.c | |||
@@ -679,8 +679,9 @@ static const struct mmc_host_ops mvsd_ops = { | |||
679 | .enable_sdio_irq = mvsd_enable_sdio_irq, | 679 | .enable_sdio_irq = mvsd_enable_sdio_irq, |
680 | }; | 680 | }; |
681 | 681 | ||
682 | static void __init mv_conf_mbus_windows(struct mvsd_host *host, | 682 | static void __init |
683 | struct mbus_dram_target_info *dram) | 683 | mv_conf_mbus_windows(struct mvsd_host *host, |
684 | const struct mbus_dram_target_info *dram) | ||
684 | { | 685 | { |
685 | void __iomem *iobase = host->base; | 686 | void __iomem *iobase = host->base; |
686 | int i; | 687 | int i; |
@@ -691,7 +692,7 @@ static void __init mv_conf_mbus_windows(struct mvsd_host *host, | |||
691 | } | 692 | } |
692 | 693 | ||
693 | for (i = 0; i < dram->num_cs; i++) { | 694 | for (i = 0; i < dram->num_cs; i++) { |
694 | struct mbus_dram_window *cs = dram->cs + i; | 695 | const struct mbus_dram_window *cs = dram->cs + i; |
695 | writel(((cs->size - 1) & 0xffff0000) | | 696 | writel(((cs->size - 1) & 0xffff0000) | |
696 | (cs->mbus_attr << 8) | | 697 | (cs->mbus_attr << 8) | |
697 | (dram->mbus_dram_target_id << 4) | 1, | 698 | (dram->mbus_dram_target_id << 4) | 1, |
@@ -705,6 +706,7 @@ static int __init mvsd_probe(struct platform_device *pdev) | |||
705 | struct mmc_host *mmc = NULL; | 706 | struct mmc_host *mmc = NULL; |
706 | struct mvsd_host *host = NULL; | 707 | struct mvsd_host *host = NULL; |
707 | const struct mvsdio_platform_data *mvsd_data; | 708 | const struct mvsdio_platform_data *mvsd_data; |
709 | const struct mbus_dram_target_info *dram; | ||
708 | struct resource *r; | 710 | struct resource *r; |
709 | int ret, irq; | 711 | int ret, irq; |
710 | 712 | ||
@@ -755,8 +757,9 @@ static int __init mvsd_probe(struct platform_device *pdev) | |||
755 | } | 757 | } |
756 | 758 | ||
757 | /* (Re-)program MBUS remapping windows if we are asked to. */ | 759 | /* (Re-)program MBUS remapping windows if we are asked to. */ |
758 | if (mvsd_data->dram != NULL) | 760 | dram = mv_mbus_dram_info(); |
759 | mv_conf_mbus_windows(host, mvsd_data->dram); | 761 | if (dram) |
762 | mv_conf_mbus_windows(host, dram); | ||
760 | 763 | ||
761 | mvsd_power_down(host); | 764 | mvsd_power_down(host); |
762 | 765 | ||
diff --git a/drivers/net/ethernet/marvell/mv643xx_eth.c b/drivers/net/ethernet/marvell/mv643xx_eth.c index e87847e32ddb..80aab4e5d695 100644 --- a/drivers/net/ethernet/marvell/mv643xx_eth.c +++ b/drivers/net/ethernet/marvell/mv643xx_eth.c | |||
@@ -2511,7 +2511,7 @@ static void mv643xx_eth_netpoll(struct net_device *dev) | |||
2511 | /* platform glue ************************************************************/ | 2511 | /* platform glue ************************************************************/ |
2512 | static void | 2512 | static void |
2513 | mv643xx_eth_conf_mbus_windows(struct mv643xx_eth_shared_private *msp, | 2513 | mv643xx_eth_conf_mbus_windows(struct mv643xx_eth_shared_private *msp, |
2514 | struct mbus_dram_target_info *dram) | 2514 | const struct mbus_dram_target_info *dram) |
2515 | { | 2515 | { |
2516 | void __iomem *base = msp->base; | 2516 | void __iomem *base = msp->base; |
2517 | u32 win_enable; | 2517 | u32 win_enable; |
@@ -2529,7 +2529,7 @@ mv643xx_eth_conf_mbus_windows(struct mv643xx_eth_shared_private *msp, | |||
2529 | win_protect = 0; | 2529 | win_protect = 0; |
2530 | 2530 | ||
2531 | for (i = 0; i < dram->num_cs; i++) { | 2531 | for (i = 0; i < dram->num_cs; i++) { |
2532 | struct mbus_dram_window *cs = dram->cs + i; | 2532 | const struct mbus_dram_window *cs = dram->cs + i; |
2533 | 2533 | ||
2534 | writel((cs->base & 0xffff0000) | | 2534 | writel((cs->base & 0xffff0000) | |
2535 | (cs->mbus_attr << 8) | | 2535 | (cs->mbus_attr << 8) | |
@@ -2579,6 +2579,7 @@ static int mv643xx_eth_shared_probe(struct platform_device *pdev) | |||
2579 | static int mv643xx_eth_version_printed; | 2579 | static int mv643xx_eth_version_printed; |
2580 | struct mv643xx_eth_shared_platform_data *pd = pdev->dev.platform_data; | 2580 | struct mv643xx_eth_shared_platform_data *pd = pdev->dev.platform_data; |
2581 | struct mv643xx_eth_shared_private *msp; | 2581 | struct mv643xx_eth_shared_private *msp; |
2582 | const struct mbus_dram_target_info *dram; | ||
2582 | struct resource *res; | 2583 | struct resource *res; |
2583 | int ret; | 2584 | int ret; |
2584 | 2585 | ||
@@ -2643,8 +2644,9 @@ static int mv643xx_eth_shared_probe(struct platform_device *pdev) | |||
2643 | /* | 2644 | /* |
2644 | * (Re-)program MBUS remapping windows if we are asked to. | 2645 | * (Re-)program MBUS remapping windows if we are asked to. |
2645 | */ | 2646 | */ |
2646 | if (pd != NULL && pd->dram != NULL) | 2647 | dram = mv_mbus_dram_info(); |
2647 | mv643xx_eth_conf_mbus_windows(msp, pd->dram); | 2648 | if (dram) |
2649 | mv643xx_eth_conf_mbus_windows(msp, dram); | ||
2648 | 2650 | ||
2649 | /* | 2651 | /* |
2650 | * Detect hardware parameters. | 2652 | * Detect hardware parameters. |
diff --git a/drivers/usb/host/ehci-orion.c b/drivers/usb/host/ehci-orion.c index a68a2a5c4b83..6c6a5a3b4ea7 100644 --- a/drivers/usb/host/ehci-orion.c +++ b/drivers/usb/host/ehci-orion.c | |||
@@ -172,7 +172,7 @@ static const struct hc_driver ehci_orion_hc_driver = { | |||
172 | 172 | ||
173 | static void __init | 173 | static void __init |
174 | ehci_orion_conf_mbus_windows(struct usb_hcd *hcd, | 174 | ehci_orion_conf_mbus_windows(struct usb_hcd *hcd, |
175 | struct mbus_dram_target_info *dram) | 175 | const struct mbus_dram_target_info *dram) |
176 | { | 176 | { |
177 | int i; | 177 | int i; |
178 | 178 | ||
@@ -182,7 +182,7 @@ ehci_orion_conf_mbus_windows(struct usb_hcd *hcd, | |||
182 | } | 182 | } |
183 | 183 | ||
184 | for (i = 0; i < dram->num_cs; i++) { | 184 | for (i = 0; i < dram->num_cs; i++) { |
185 | struct mbus_dram_window *cs = dram->cs + i; | 185 | const struct mbus_dram_window *cs = dram->cs + i; |
186 | 186 | ||
187 | wrl(USB_WINDOW_CTRL(i), ((cs->size - 1) & 0xffff0000) | | 187 | wrl(USB_WINDOW_CTRL(i), ((cs->size - 1) & 0xffff0000) | |
188 | (cs->mbus_attr << 8) | | 188 | (cs->mbus_attr << 8) | |
@@ -194,6 +194,7 @@ ehci_orion_conf_mbus_windows(struct usb_hcd *hcd, | |||
194 | static int __devinit ehci_orion_drv_probe(struct platform_device *pdev) | 194 | static int __devinit ehci_orion_drv_probe(struct platform_device *pdev) |
195 | { | 195 | { |
196 | struct orion_ehci_data *pd = pdev->dev.platform_data; | 196 | struct orion_ehci_data *pd = pdev->dev.platform_data; |
197 | const struct mbus_dram_target_info *dram; | ||
197 | struct resource *res; | 198 | struct resource *res; |
198 | struct usb_hcd *hcd; | 199 | struct usb_hcd *hcd; |
199 | struct ehci_hcd *ehci; | 200 | struct ehci_hcd *ehci; |
@@ -259,8 +260,9 @@ static int __devinit ehci_orion_drv_probe(struct platform_device *pdev) | |||
259 | /* | 260 | /* |
260 | * (Re-)program MBUS remapping windows if we are asked to. | 261 | * (Re-)program MBUS remapping windows if we are asked to. |
261 | */ | 262 | */ |
262 | if (pd != NULL && pd->dram != NULL) | 263 | dram = mv_mbus_dram_info(); |
263 | ehci_orion_conf_mbus_windows(hcd, pd->dram); | 264 | if (dram) |
265 | ehci_orion_conf_mbus_windows(hcd, dram); | ||
264 | 266 | ||
265 | /* | 267 | /* |
266 | * setup Orion USB controller. | 268 | * setup Orion USB controller. |