diff options
23 files changed, 103 insertions, 135 deletions
diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig index 11d9bb1bbbc5..64ae22c4fce7 100644 --- a/arch/arm/Kconfig +++ b/arch/arm/Kconfig | |||
@@ -2253,7 +2253,7 @@ menu "Power management options" | |||
2253 | source "kernel/power/Kconfig" | 2253 | source "kernel/power/Kconfig" |
2254 | 2254 | ||
2255 | config ARCH_SUSPEND_POSSIBLE | 2255 | config ARCH_SUSPEND_POSSIBLE |
2256 | depends on !ARCH_S5PC100 | 2256 | depends on !ARCH_S5PC100 && !ARCH_TEGRA |
2257 | depends on CPU_ARM920T || CPU_ARM926T || CPU_SA1100 || \ | 2257 | depends on CPU_ARM920T || CPU_ARM926T || CPU_SA1100 || \ |
2258 | CPU_V6 || CPU_V6K || CPU_V7 || CPU_XSC3 || CPU_XSCALE | 2258 | CPU_V6 || CPU_V6K || CPU_V7 || CPU_XSC3 || CPU_XSCALE |
2259 | def_bool y | 2259 | def_bool y |
diff --git a/arch/arm/mach-davinci/board-da850-evm.c b/arch/arm/mach-davinci/board-da850-evm.c index a70de24d1cbc..09f61073c8d9 100644 --- a/arch/arm/mach-davinci/board-da850-evm.c +++ b/arch/arm/mach-davinci/board-da850-evm.c | |||
@@ -284,7 +284,7 @@ static struct platform_device da850_evm_nandflash_device = { | |||
284 | .resource = da850_evm_nandflash_resource, | 284 | .resource = da850_evm_nandflash_resource, |
285 | }; | 285 | }; |
286 | 286 | ||
287 | static struct platform_device *da850_evm_devices[] __initdata = { | 287 | static struct platform_device *da850_evm_devices[] = { |
288 | &da850_evm_nandflash_device, | 288 | &da850_evm_nandflash_device, |
289 | &da850_evm_norflash_device, | 289 | &da850_evm_norflash_device, |
290 | }; | 290 | }; |
diff --git a/arch/arm/mach-davinci/davinci.h b/arch/arm/mach-davinci/davinci.h index 3e519dad5bb9..8db0fc6809dd 100644 --- a/arch/arm/mach-davinci/davinci.h +++ b/arch/arm/mach-davinci/davinci.h | |||
@@ -72,7 +72,7 @@ void davinci_map_sysmod(void); | |||
72 | /* DM355 function declarations */ | 72 | /* DM355 function declarations */ |
73 | void __init dm355_init(void); | 73 | void __init dm355_init(void); |
74 | void dm355_init_spi0(unsigned chipselect_mask, | 74 | void dm355_init_spi0(unsigned chipselect_mask, |
75 | struct spi_board_info *info, unsigned len); | 75 | const struct spi_board_info *info, unsigned len); |
76 | void __init dm355_init_asp1(u32 evt_enable, struct snd_platform_data *pdata); | 76 | void __init dm355_init_asp1(u32 evt_enable, struct snd_platform_data *pdata); |
77 | void dm355_set_vpfe_config(struct vpfe_config *cfg); | 77 | void dm355_set_vpfe_config(struct vpfe_config *cfg); |
78 | 78 | ||
@@ -83,7 +83,7 @@ void __init dm365_init_vc(struct snd_platform_data *pdata); | |||
83 | void __init dm365_init_ks(struct davinci_ks_platform_data *pdata); | 83 | void __init dm365_init_ks(struct davinci_ks_platform_data *pdata); |
84 | void __init dm365_init_rtc(void); | 84 | void __init dm365_init_rtc(void); |
85 | void dm365_init_spi0(unsigned chipselect_mask, | 85 | void dm365_init_spi0(unsigned chipselect_mask, |
86 | struct spi_board_info *info, unsigned len); | 86 | const struct spi_board_info *info, unsigned len); |
87 | void dm365_set_vpfe_config(struct vpfe_config *cfg); | 87 | void dm365_set_vpfe_config(struct vpfe_config *cfg); |
88 | 88 | ||
89 | /* DM644x function declarations */ | 89 | /* DM644x function declarations */ |
diff --git a/arch/arm/mach-davinci/devices-da8xx.c b/arch/arm/mach-davinci/devices-da8xx.c index 42dbf3dc11ab..d1624a315c9a 100644 --- a/arch/arm/mach-davinci/devices-da8xx.c +++ b/arch/arm/mach-davinci/devices-da8xx.c | |||
@@ -831,7 +831,7 @@ static struct platform_device da8xx_spi_device[] = { | |||
831 | }, | 831 | }, |
832 | }; | 832 | }; |
833 | 833 | ||
834 | int __init da8xx_register_spi(int instance, struct spi_board_info *info, | 834 | int __init da8xx_register_spi(int instance, const struct spi_board_info *info, |
835 | unsigned len) | 835 | unsigned len) |
836 | { | 836 | { |
837 | int ret; | 837 | int ret; |
diff --git a/arch/arm/mach-davinci/dm355.c b/arch/arm/mach-davinci/dm355.c index fd3d09aa6cde..678cd99b7336 100644 --- a/arch/arm/mach-davinci/dm355.c +++ b/arch/arm/mach-davinci/dm355.c | |||
@@ -424,7 +424,7 @@ static struct platform_device dm355_spi0_device = { | |||
424 | }; | 424 | }; |
425 | 425 | ||
426 | void __init dm355_init_spi0(unsigned chipselect_mask, | 426 | void __init dm355_init_spi0(unsigned chipselect_mask, |
427 | struct spi_board_info *info, unsigned len) | 427 | const struct spi_board_info *info, unsigned len) |
428 | { | 428 | { |
429 | /* for now, assume we need MISO */ | 429 | /* for now, assume we need MISO */ |
430 | davinci_cfg_reg(DM355_SPI0_SDI); | 430 | davinci_cfg_reg(DM355_SPI0_SDI); |
diff --git a/arch/arm/mach-davinci/dm365.c b/arch/arm/mach-davinci/dm365.c index 1a2e953082b3..a50d49de1883 100644 --- a/arch/arm/mach-davinci/dm365.c +++ b/arch/arm/mach-davinci/dm365.c | |||
@@ -676,7 +676,7 @@ static struct platform_device dm365_spi0_device = { | |||
676 | }; | 676 | }; |
677 | 677 | ||
678 | void __init dm365_init_spi0(unsigned chipselect_mask, | 678 | void __init dm365_init_spi0(unsigned chipselect_mask, |
679 | struct spi_board_info *info, unsigned len) | 679 | const struct spi_board_info *info, unsigned len) |
680 | { | 680 | { |
681 | davinci_cfg_reg(DM365_SPI0_SCLK); | 681 | davinci_cfg_reg(DM365_SPI0_SCLK); |
682 | davinci_cfg_reg(DM365_SPI0_SDI); | 682 | davinci_cfg_reg(DM365_SPI0_SDI); |
diff --git a/arch/arm/mach-davinci/dma.c b/arch/arm/mach-davinci/dma.c index fd33919c95d4..95ce019c9b98 100644 --- a/arch/arm/mach-davinci/dma.c +++ b/arch/arm/mach-davinci/dma.c | |||
@@ -557,9 +557,9 @@ static int reserve_contiguous_slots(int ctlr, unsigned int id, | |||
557 | if (i == edma_cc[ctlr]->num_slots) | 557 | if (i == edma_cc[ctlr]->num_slots) |
558 | stop_slot = i; | 558 | stop_slot = i; |
559 | 559 | ||
560 | for (j = start_slot; j < stop_slot; j++) | 560 | j = start_slot; |
561 | if (test_bit(j, tmp_inuse)) | 561 | for_each_set_bit_from(j, tmp_inuse, stop_slot) |
562 | clear_bit(j, edma_cc[ctlr]->edma_inuse); | 562 | clear_bit(j, edma_cc[ctlr]->edma_inuse); |
563 | 563 | ||
564 | if (count) | 564 | if (count) |
565 | return -EBUSY; | 565 | return -EBUSY; |
diff --git a/arch/arm/mach-davinci/include/mach/da8xx.h b/arch/arm/mach-davinci/include/mach/da8xx.h index ee3461d7ec1b..a2f1f274f189 100644 --- a/arch/arm/mach-davinci/include/mach/da8xx.h +++ b/arch/arm/mach-davinci/include/mach/da8xx.h | |||
@@ -76,7 +76,8 @@ void __init da850_init(void); | |||
76 | int da830_register_edma(struct edma_rsv_info *rsv); | 76 | int da830_register_edma(struct edma_rsv_info *rsv); |
77 | int da850_register_edma(struct edma_rsv_info *rsv[2]); | 77 | int da850_register_edma(struct edma_rsv_info *rsv[2]); |
78 | int da8xx_register_i2c(int instance, struct davinci_i2c_platform_data *pdata); | 78 | int da8xx_register_i2c(int instance, struct davinci_i2c_platform_data *pdata); |
79 | int da8xx_register_spi(int instance, struct spi_board_info *info, unsigned len); | 79 | int da8xx_register_spi(int instance, |
80 | const struct spi_board_info *info, unsigned len); | ||
80 | int da8xx_register_watchdog(void); | 81 | int da8xx_register_watchdog(void); |
81 | int da8xx_register_usb20(unsigned mA, unsigned potpgt); | 82 | int da8xx_register_usb20(unsigned mA, unsigned potpgt); |
82 | int da8xx_register_usb11(struct da8xx_ohci_root_hub *pdata); | 83 | int da8xx_register_usb11(struct da8xx_ohci_root_hub *pdata); |
diff --git a/arch/arm/mach-davinci/include/mach/psc.h b/arch/arm/mach-davinci/include/mach/psc.h index 8bc3fc256171..405318e35bf6 100644 --- a/arch/arm/mach-davinci/include/mach/psc.h +++ b/arch/arm/mach-davinci/include/mach/psc.h | |||
@@ -246,7 +246,7 @@ | |||
246 | #define MDSTAT_STATE_MASK 0x3f | 246 | #define MDSTAT_STATE_MASK 0x3f |
247 | #define PDSTAT_STATE_MASK 0x1f | 247 | #define PDSTAT_STATE_MASK 0x1f |
248 | #define MDCTL_FORCE BIT(31) | 248 | #define MDCTL_FORCE BIT(31) |
249 | #define PDCTL_NEXT BIT(1) | 249 | #define PDCTL_NEXT BIT(0) |
250 | #define PDCTL_EPCGOOD BIT(8) | 250 | #define PDCTL_EPCGOOD BIT(8) |
251 | 251 | ||
252 | #ifndef __ASSEMBLER__ | 252 | #ifndef __ASSEMBLER__ |
diff --git a/arch/arm/mach-omap1/Kconfig b/arch/arm/mach-omap1/Kconfig index dfab466ebd1d..cba3f7191cfc 100644 --- a/arch/arm/mach-omap1/Kconfig +++ b/arch/arm/mach-omap1/Kconfig | |||
@@ -132,6 +132,7 @@ config MACH_OMAP_PALMTT | |||
132 | 132 | ||
133 | config MACH_SX1 | 133 | config MACH_SX1 |
134 | bool "Siemens SX1" | 134 | bool "Siemens SX1" |
135 | select I2C | ||
135 | depends on ARCH_OMAP1 && ARCH_OMAP15XX | 136 | depends on ARCH_OMAP1 && ARCH_OMAP15XX |
136 | help | 137 | help |
137 | Support for the Siemens SX1 phone. To boot the kernel, | 138 | Support for the Siemens SX1 phone. To boot the kernel, |
diff --git a/arch/arm/mach-omap2/board-4430sdp.c b/arch/arm/mach-omap2/board-4430sdp.c index b4ad706c145a..4a9bc00a7d98 100644 --- a/arch/arm/mach-omap2/board-4430sdp.c +++ b/arch/arm/mach-omap2/board-4430sdp.c | |||
@@ -489,50 +489,6 @@ static struct platform_device omap_vwlan_device = { | |||
489 | }, | 489 | }, |
490 | }; | 490 | }; |
491 | 491 | ||
492 | static int omap4_twl6030_hsmmc_late_init(struct device *dev) | ||
493 | { | ||
494 | int irq = 0; | ||
495 | struct platform_device *pdev = container_of(dev, | ||
496 | struct platform_device, dev); | ||
497 | struct omap_mmc_platform_data *pdata = dev->platform_data; | ||
498 | |||
499 | /* Setting MMC1 Card detect Irq */ | ||
500 | if (pdev->id == 0) { | ||
501 | irq = twl6030_mmc_card_detect_config(); | ||
502 | if (irq < 0) { | ||
503 | pr_err("Failed configuring MMC1 card detect\n"); | ||
504 | return irq; | ||
505 | } | ||
506 | pdata->slots[0].card_detect_irq = irq; | ||
507 | pdata->slots[0].card_detect = twl6030_mmc_card_detect; | ||
508 | } | ||
509 | return 0; | ||
510 | } | ||
511 | |||
512 | static __init void omap4_twl6030_hsmmc_set_late_init(struct device *dev) | ||
513 | { | ||
514 | struct omap_mmc_platform_data *pdata; | ||
515 | |||
516 | /* dev can be null if CONFIG_MMC_OMAP_HS is not set */ | ||
517 | if (!dev) { | ||
518 | pr_err("Failed %s\n", __func__); | ||
519 | return; | ||
520 | } | ||
521 | pdata = dev->platform_data; | ||
522 | pdata->init = omap4_twl6030_hsmmc_late_init; | ||
523 | } | ||
524 | |||
525 | static int __init omap4_twl6030_hsmmc_init(struct omap2_hsmmc_info *controllers) | ||
526 | { | ||
527 | struct omap2_hsmmc_info *c; | ||
528 | |||
529 | omap_hsmmc_init(controllers); | ||
530 | for (c = controllers; c->mmc; c++) | ||
531 | omap4_twl6030_hsmmc_set_late_init(&c->pdev->dev); | ||
532 | |||
533 | return 0; | ||
534 | } | ||
535 | |||
536 | static struct regulator_init_data sdp4430_vaux1 = { | 492 | static struct regulator_init_data sdp4430_vaux1 = { |
537 | .constraints = { | 493 | .constraints = { |
538 | .min_uV = 1000000, | 494 | .min_uV = 1000000, |
diff --git a/arch/arm/mach-omap2/board-igep0020.c b/arch/arm/mach-omap2/board-igep0020.c index accbbb173198..4c1acecce93f 100644 --- a/arch/arm/mach-omap2/board-igep0020.c +++ b/arch/arm/mach-omap2/board-igep0020.c | |||
@@ -519,7 +519,10 @@ static void __init igep_i2c_init(void) | |||
519 | { | 519 | { |
520 | int ret; | 520 | int ret; |
521 | 521 | ||
522 | omap3_pmic_get_config(&igep_twldata, TWL_COMMON_PDATA_USB, 0); | 522 | omap3_pmic_get_config(&igep_twldata, TWL_COMMON_PDATA_USB, |
523 | TWL_COMMON_REGULATOR_VPLL2); | ||
524 | igep_twldata.vpll2->constraints.apply_uV = true; | ||
525 | igep_twldata.vpll2->constraints.name = "VDVI"; | ||
523 | 526 | ||
524 | if (machine_is_igep0020()) { | 527 | if (machine_is_igep0020()) { |
525 | /* | 528 | /* |
@@ -533,10 +536,7 @@ static void __init igep_i2c_init(void) | |||
533 | 536 | ||
534 | igep_twldata.keypad = &igep2_keypad_pdata; | 537 | igep_twldata.keypad = &igep2_keypad_pdata; |
535 | /* Get common pmic data */ | 538 | /* Get common pmic data */ |
536 | omap3_pmic_get_config(&igep_twldata, TWL_COMMON_PDATA_AUDIO, | 539 | omap3_pmic_get_config(&igep_twldata, TWL_COMMON_PDATA_AUDIO, 0); |
537 | TWL_COMMON_REGULATOR_VPLL2); | ||
538 | igep_twldata.vpll2->constraints.apply_uV = true; | ||
539 | igep_twldata.vpll2->constraints.name = "VDVI"; | ||
540 | } | 540 | } |
541 | 541 | ||
542 | omap3_pmic_init("twl4030", &igep_twldata); | 542 | omap3_pmic_init("twl4030", &igep_twldata); |
diff --git a/arch/arm/mach-omap2/board-omap4panda.c b/arch/arm/mach-omap2/board-omap4panda.c index 59dd8b7f5b4f..bb75eb091a88 100644 --- a/arch/arm/mach-omap2/board-omap4panda.c +++ b/arch/arm/mach-omap2/board-omap4panda.c | |||
@@ -236,55 +236,6 @@ static struct wl12xx_platform_data omap_panda_wlan_data __initdata = { | |||
236 | .board_ref_clock = 2, | 236 | .board_ref_clock = 2, |
237 | }; | 237 | }; |
238 | 238 | ||
239 | static int omap4_twl6030_hsmmc_late_init(struct device *dev) | ||
240 | { | ||
241 | int irq = 0; | ||
242 | struct platform_device *pdev = container_of(dev, | ||
243 | struct platform_device, dev); | ||
244 | struct omap_mmc_platform_data *pdata = dev->platform_data; | ||
245 | |||
246 | if (!pdata) { | ||
247 | dev_err(dev, "%s: NULL platform data\n", __func__); | ||
248 | return -EINVAL; | ||
249 | } | ||
250 | /* Setting MMC1 Card detect Irq */ | ||
251 | if (pdev->id == 0) { | ||
252 | irq = twl6030_mmc_card_detect_config(); | ||
253 | if (irq < 0) { | ||
254 | dev_err(dev, "%s: Error card detect config(%d)\n", | ||
255 | __func__, irq); | ||
256 | return irq; | ||
257 | } | ||
258 | pdata->slots[0].card_detect = twl6030_mmc_card_detect; | ||
259 | } | ||
260 | return 0; | ||
261 | } | ||
262 | |||
263 | static __init void omap4_twl6030_hsmmc_set_late_init(struct device *dev) | ||
264 | { | ||
265 | struct omap_mmc_platform_data *pdata; | ||
266 | |||
267 | /* dev can be null if CONFIG_MMC_OMAP_HS is not set */ | ||
268 | if (!dev) { | ||
269 | pr_err("Failed omap4_twl6030_hsmmc_set_late_init\n"); | ||
270 | return; | ||
271 | } | ||
272 | pdata = dev->platform_data; | ||
273 | |||
274 | pdata->init = omap4_twl6030_hsmmc_late_init; | ||
275 | } | ||
276 | |||
277 | static int __init omap4_twl6030_hsmmc_init(struct omap2_hsmmc_info *controllers) | ||
278 | { | ||
279 | struct omap2_hsmmc_info *c; | ||
280 | |||
281 | omap_hsmmc_init(controllers); | ||
282 | for (c = controllers; c->mmc; c++) | ||
283 | omap4_twl6030_hsmmc_set_late_init(&c->pdev->dev); | ||
284 | |||
285 | return 0; | ||
286 | } | ||
287 | |||
288 | static struct twl6040_codec_data twl6040_codec = { | 239 | static struct twl6040_codec_data twl6040_codec = { |
289 | /* single-step ramp for headset and handsfree */ | 240 | /* single-step ramp for headset and handsfree */ |
290 | .hs_left_step = 0x0f, | 241 | .hs_left_step = 0x0f, |
diff --git a/arch/arm/mach-omap2/common.h b/arch/arm/mach-omap2/common.h index 0e95efccd2d7..f14b3aec58cc 100644 --- a/arch/arm/mach-omap2/common.h +++ b/arch/arm/mach-omap2/common.h | |||
@@ -27,6 +27,7 @@ | |||
27 | #ifndef __ASSEMBLER__ | 27 | #ifndef __ASSEMBLER__ |
28 | 28 | ||
29 | #include <linux/delay.h> | 29 | #include <linux/delay.h> |
30 | #include <linux/i2c/twl.h> | ||
30 | #include <plat/common.h> | 31 | #include <plat/common.h> |
31 | #include <asm/proc-fns.h> | 32 | #include <asm/proc-fns.h> |
32 | 33 | ||
@@ -252,6 +253,8 @@ static inline u32 omap4_mpuss_read_prev_context_state(void) | |||
252 | struct omap_sdrc_params; | 253 | struct omap_sdrc_params; |
253 | extern void omap_sdrc_init(struct omap_sdrc_params *sdrc_cs0, | 254 | extern void omap_sdrc_init(struct omap_sdrc_params *sdrc_cs0, |
254 | struct omap_sdrc_params *sdrc_cs1); | 255 | struct omap_sdrc_params *sdrc_cs1); |
256 | struct omap2_hsmmc_info; | ||
257 | extern int omap4_twl6030_hsmmc_init(struct omap2_hsmmc_info *controllers); | ||
255 | 258 | ||
256 | #endif /* __ASSEMBLER__ */ | 259 | #endif /* __ASSEMBLER__ */ |
257 | #endif /* __ARCH_ARM_MACH_OMAP2PLUS_COMMON_H */ | 260 | #endif /* __ARCH_ARM_MACH_OMAP2PLUS_COMMON_H */ |
diff --git a/arch/arm/mach-omap2/dsp.c b/arch/arm/mach-omap2/dsp.c index 74f18f2952df..3376388b317a 100644 --- a/arch/arm/mach-omap2/dsp.c +++ b/arch/arm/mach-omap2/dsp.c | |||
@@ -57,8 +57,9 @@ static int __init omap_dsp_init(void) | |||
57 | 57 | ||
58 | if (pdata->phys_mempool_base) { | 58 | if (pdata->phys_mempool_base) { |
59 | pdata->phys_mempool_size = CONFIG_TIDSPBRIDGE_MEMPOOL_SIZE; | 59 | pdata->phys_mempool_size = CONFIG_TIDSPBRIDGE_MEMPOOL_SIZE; |
60 | pr_info("%s: %x bytes @ %x\n", __func__, | 60 | pr_info("%s: %llx bytes @ %llx\n", __func__, |
61 | pdata->phys_mempool_size, pdata->phys_mempool_base); | 61 | (unsigned long long)pdata->phys_mempool_size, |
62 | (unsigned long long)pdata->phys_mempool_base); | ||
62 | } | 63 | } |
63 | 64 | ||
64 | pdev = platform_device_alloc("omap-dsp", -1); | 65 | pdev = platform_device_alloc("omap-dsp", -1); |
diff --git a/arch/arm/mach-omap2/id.c b/arch/arm/mach-omap2/id.c index 0e79b7bc6aa4..f1398171d8a2 100644 --- a/arch/arm/mach-omap2/id.c +++ b/arch/arm/mach-omap2/id.c | |||
@@ -478,9 +478,12 @@ void __init omap4xxx_check_revision(void) | |||
478 | case 0xb94e: | 478 | case 0xb94e: |
479 | switch (rev) { | 479 | switch (rev) { |
480 | case 0: | 480 | case 0: |
481 | default: | ||
482 | omap_revision = OMAP4460_REV_ES1_0; | 481 | omap_revision = OMAP4460_REV_ES1_0; |
483 | break; | 482 | break; |
483 | case 2: | ||
484 | default: | ||
485 | omap_revision = OMAP4460_REV_ES1_1; | ||
486 | break; | ||
484 | } | 487 | } |
485 | break; | 488 | break; |
486 | case 0xb975: | 489 | case 0xb975: |
diff --git a/arch/arm/mach-omap2/irq.c b/arch/arm/mach-omap2/irq.c index 80f3ced0bd1a..1ecf54565fe2 100644 --- a/arch/arm/mach-omap2/irq.c +++ b/arch/arm/mach-omap2/irq.c | |||
@@ -150,7 +150,6 @@ omap_alloc_gc(void __iomem *base, unsigned int irq_start, unsigned int num) | |||
150 | ct->chip.irq_mask = irq_gc_mask_disable_reg; | 150 | ct->chip.irq_mask = irq_gc_mask_disable_reg; |
151 | ct->chip.irq_unmask = irq_gc_unmask_enable_reg; | 151 | ct->chip.irq_unmask = irq_gc_unmask_enable_reg; |
152 | 152 | ||
153 | ct->regs.ack = INTC_CONTROL; | ||
154 | ct->regs.enable = INTC_MIR_CLEAR0; | 153 | ct->regs.enable = INTC_MIR_CLEAR0; |
155 | ct->regs.disable = INTC_MIR_SET0; | 154 | ct->regs.disable = INTC_MIR_SET0; |
156 | irq_setup_generic_chip(gc, IRQ_MSK(num), IRQ_GC_INIT_MASK_CACHE, | 155 | irq_setup_generic_chip(gc, IRQ_MSK(num), IRQ_GC_INIT_MASK_CACHE, |
@@ -232,7 +231,7 @@ static inline void omap_intc_handle_irq(void __iomem *base_addr, struct pt_regs | |||
232 | goto out; | 231 | goto out; |
233 | 232 | ||
234 | irqnr = readl_relaxed(base_addr + 0xd8); | 233 | irqnr = readl_relaxed(base_addr + 0xd8); |
235 | #ifdef CONFIG_SOC_OMAPTI816X | 234 | #ifdef CONFIG_SOC_OMAPTI81XX |
236 | if (irqnr) | 235 | if (irqnr) |
237 | goto out; | 236 | goto out; |
238 | irqnr = readl_relaxed(base_addr + 0xf8); | 237 | irqnr = readl_relaxed(base_addr + 0xf8); |
diff --git a/arch/arm/mach-omap2/mailbox.c b/arch/arm/mach-omap2/mailbox.c index 415a6f1cf419..19b8b6774862 100644 --- a/arch/arm/mach-omap2/mailbox.c +++ b/arch/arm/mach-omap2/mailbox.c | |||
@@ -26,9 +26,9 @@ | |||
26 | #define MAILBOX_IRQSTATUS(u) (0x100 + 8 * (u)) | 26 | #define MAILBOX_IRQSTATUS(u) (0x100 + 8 * (u)) |
27 | #define MAILBOX_IRQENABLE(u) (0x104 + 8 * (u)) | 27 | #define MAILBOX_IRQENABLE(u) (0x104 + 8 * (u)) |
28 | 28 | ||
29 | #define OMAP4_MAILBOX_IRQSTATUS(u) (0x104 + 10 * (u)) | 29 | #define OMAP4_MAILBOX_IRQSTATUS(u) (0x104 + 0x10 * (u)) |
30 | #define OMAP4_MAILBOX_IRQENABLE(u) (0x108 + 10 * (u)) | 30 | #define OMAP4_MAILBOX_IRQENABLE(u) (0x108 + 0x10 * (u)) |
31 | #define OMAP4_MAILBOX_IRQENABLE_CLR(u) (0x10c + 10 * (u)) | 31 | #define OMAP4_MAILBOX_IRQENABLE_CLR(u) (0x10c + 0x10 * (u)) |
32 | 32 | ||
33 | #define MAILBOX_IRQ_NEWMSG(m) (1 << (2 * (m))) | 33 | #define MAILBOX_IRQ_NEWMSG(m) (1 << (2 * (m))) |
34 | #define MAILBOX_IRQ_NOTFULL(m) (1 << (2 * (m) + 1)) | 34 | #define MAILBOX_IRQ_NOTFULL(m) (1 << (2 * (m) + 1)) |
diff --git a/arch/arm/mach-omap2/omap4-common.c b/arch/arm/mach-omap2/omap4-common.c index 70de277f5c15..a8161e5f3204 100644 --- a/arch/arm/mach-omap2/omap4-common.c +++ b/arch/arm/mach-omap2/omap4-common.c | |||
@@ -25,11 +25,13 @@ | |||
25 | #include <plat/irqs.h> | 25 | #include <plat/irqs.h> |
26 | #include <plat/sram.h> | 26 | #include <plat/sram.h> |
27 | #include <plat/omap-secure.h> | 27 | #include <plat/omap-secure.h> |
28 | #include <plat/mmc.h> | ||
28 | 29 | ||
29 | #include <mach/hardware.h> | 30 | #include <mach/hardware.h> |
30 | #include <mach/omap-wakeupgen.h> | 31 | #include <mach/omap-wakeupgen.h> |
31 | 32 | ||
32 | #include "common.h" | 33 | #include "common.h" |
34 | #include "hsmmc.h" | ||
33 | #include "omap4-sar-layout.h" | 35 | #include "omap4-sar-layout.h" |
34 | #include <linux/export.h> | 36 | #include <linux/export.h> |
35 | 37 | ||
@@ -207,3 +209,59 @@ static int __init omap4_sar_ram_init(void) | |||
207 | return 0; | 209 | return 0; |
208 | } | 210 | } |
209 | early_initcall(omap4_sar_ram_init); | 211 | early_initcall(omap4_sar_ram_init); |
212 | |||
213 | #if defined(CONFIG_MMC_OMAP_HS) || defined(CONFIG_MMC_OMAP_HS_MODULE) | ||
214 | static int omap4_twl6030_hsmmc_late_init(struct device *dev) | ||
215 | { | ||
216 | int irq = 0; | ||
217 | struct platform_device *pdev = container_of(dev, | ||
218 | struct platform_device, dev); | ||
219 | struct omap_mmc_platform_data *pdata = dev->platform_data; | ||
220 | |||
221 | /* Setting MMC1 Card detect Irq */ | ||
222 | if (pdev->id == 0) { | ||
223 | irq = twl6030_mmc_card_detect_config(); | ||
224 | if (irq < 0) { | ||
225 | dev_err(dev, "%s: Error card detect config(%d)\n", | ||
226 | __func__, irq); | ||
227 | return irq; | ||
228 | } | ||
229 | pdata->slots[0].card_detect_irq = irq; | ||
230 | pdata->slots[0].card_detect = twl6030_mmc_card_detect; | ||
231 | } | ||
232 | return 0; | ||
233 | } | ||
234 | |||
235 | static __init void omap4_twl6030_hsmmc_set_late_init(struct device *dev) | ||
236 | { | ||
237 | struct omap_mmc_platform_data *pdata; | ||
238 | |||
239 | /* dev can be null if CONFIG_MMC_OMAP_HS is not set */ | ||
240 | if (!dev) { | ||
241 | pr_err("Failed %s\n", __func__); | ||
242 | return; | ||
243 | } | ||
244 | pdata = dev->platform_data; | ||
245 | pdata->init = omap4_twl6030_hsmmc_late_init; | ||
246 | } | ||
247 | |||
248 | int __init omap4_twl6030_hsmmc_init(struct omap2_hsmmc_info *controllers) | ||
249 | { | ||
250 | struct omap2_hsmmc_info *c; | ||
251 | |||
252 | omap_hsmmc_init(controllers); | ||
253 | for (c = controllers; c->mmc; c++) { | ||
254 | /* pdev can be null if CONFIG_MMC_OMAP_HS is not set */ | ||
255 | if (!c->pdev) | ||
256 | continue; | ||
257 | omap4_twl6030_hsmmc_set_late_init(&c->pdev->dev); | ||
258 | } | ||
259 | |||
260 | return 0; | ||
261 | } | ||
262 | #else | ||
263 | int __init omap4_twl6030_hsmmc_init(struct omap2_hsmmc_info *controllers) | ||
264 | { | ||
265 | return 0; | ||
266 | } | ||
267 | #endif | ||
diff --git a/arch/arm/mach-spear6xx/Kconfig b/arch/arm/mach-spear6xx/Kconfig index fbe298bd1d92..339f397dea70 100644 --- a/arch/arm/mach-spear6xx/Kconfig +++ b/arch/arm/mach-spear6xx/Kconfig | |||
@@ -2,21 +2,9 @@ | |||
2 | # SPEAr6XX Machine configuration file | 2 | # SPEAr6XX Machine configuration file |
3 | # | 3 | # |
4 | 4 | ||
5 | if ARCH_SPEAR6XX | 5 | config MACH_SPEAR600 |
6 | 6 | def_bool y | |
7 | menu "SPEAr6xx Implementations" | 7 | depends on ARCH_SPEAR6XX |
8 | config BOARD_SPEAR600_DT | ||
9 | bool "SPEAr600 generic board configured via device-tree" | ||
10 | select MACH_SPEAR600 | ||
11 | select USE_OF | 8 | select USE_OF |
12 | help | 9 | help |
13 | Supports ST SPEAr600 boards configured via the device-tree | 10 | Supports ST SPEAr600 boards configured via the device-tree |
14 | |||
15 | endmenu | ||
16 | |||
17 | config MACH_SPEAR600 | ||
18 | bool "SPEAr600" | ||
19 | help | ||
20 | Supports ST SPEAr600 Machine | ||
21 | |||
22 | endif #ARCH_SPEAR6XX | ||
diff --git a/arch/arm/mach-tegra/tegra2_clocks.c b/arch/arm/mach-tegra/tegra2_clocks.c index 592a4eeb5328..2cae5cbc20ba 100644 --- a/arch/arm/mach-tegra/tegra2_clocks.c +++ b/arch/arm/mach-tegra/tegra2_clocks.c | |||
@@ -1764,6 +1764,12 @@ static struct clk_pll_freq_table tegra_pll_x_freq_table[] = { | |||
1764 | { 19200000, 760000000, 950, 24, 1, 8}, | 1764 | { 19200000, 760000000, 950, 24, 1, 8}, |
1765 | { 26000000, 760000000, 760, 26, 1, 12}, | 1765 | { 26000000, 760000000, 760, 26, 1, 12}, |
1766 | 1766 | ||
1767 | /* 750 MHz */ | ||
1768 | { 12000000, 750000000, 750, 12, 1, 12}, | ||
1769 | { 13000000, 750000000, 750, 13, 1, 12}, | ||
1770 | { 19200000, 750000000, 625, 16, 1, 8}, | ||
1771 | { 26000000, 750000000, 750, 26, 1, 12}, | ||
1772 | |||
1767 | /* 608 MHz */ | 1773 | /* 608 MHz */ |
1768 | { 12000000, 608000000, 608, 12, 1, 12}, | 1774 | { 12000000, 608000000, 608, 12, 1, 12}, |
1769 | { 13000000, 608000000, 608, 13, 1, 12}, | 1775 | { 13000000, 608000000, 608, 13, 1, 12}, |
diff --git a/arch/arm/plat-omap/devices.c b/arch/arm/plat-omap/devices.c index 60278f47c0bd..09b07d252892 100644 --- a/arch/arm/plat-omap/devices.c +++ b/arch/arm/plat-omap/devices.c | |||
@@ -167,8 +167,8 @@ void __init omap_dsp_reserve_sdram_memblock(void) | |||
167 | 167 | ||
168 | paddr = arm_memblock_steal(size, SZ_1M); | 168 | paddr = arm_memblock_steal(size, SZ_1M); |
169 | if (!paddr) { | 169 | if (!paddr) { |
170 | pr_err("%s: failed to reserve %x bytes\n", | 170 | pr_err("%s: failed to reserve %llx bytes\n", |
171 | __func__, size); | 171 | __func__, (unsigned long long)size); |
172 | return; | 172 | return; |
173 | } | 173 | } |
174 | 174 | ||
diff --git a/arch/arm/plat-omap/include/plat/cpu.h b/arch/arm/plat-omap/include/plat/cpu.h index dc6a86bf2172..4bdf14ec6747 100644 --- a/arch/arm/plat-omap/include/plat/cpu.h +++ b/arch/arm/plat-omap/include/plat/cpu.h | |||
@@ -445,6 +445,7 @@ IS_OMAP_TYPE(3517, 0x3517) | |||
445 | 445 | ||
446 | #define OMAP446X_CLASS 0x44600044 | 446 | #define OMAP446X_CLASS 0x44600044 |
447 | #define OMAP4460_REV_ES1_0 (OMAP446X_CLASS | (0x10 << 8)) | 447 | #define OMAP4460_REV_ES1_0 (OMAP446X_CLASS | (0x10 << 8)) |
448 | #define OMAP4460_REV_ES1_1 (OMAP446X_CLASS | (0x11 << 8)) | ||
448 | 449 | ||
449 | #define OMAP447X_CLASS 0x44700044 | 450 | #define OMAP447X_CLASS 0x44700044 |
450 | #define OMAP4470_REV_ES1_0 (OMAP447X_CLASS | (0x10 << 8)) | 451 | #define OMAP4470_REV_ES1_0 (OMAP447X_CLASS | (0x10 << 8)) |