diff options
author | Linus Torvalds <torvalds@linux-foundation.org> | 2012-05-22 12:27:39 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2012-05-22 12:27:39 -0400 |
commit | 8dca6010d44cc722a94dc6da96560f9083dac782 (patch) | |
tree | c804c272bc3d07a05459c2688e4b1c8b141d561c | |
parent | 9bc747bea5fad819e0c0ad96e6a67ea0640dfe2b (diff) | |
parent | 74c437532b8b5db53509963ec38e8424c56ff6f4 (diff) |
Merge tag 'fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc
Pull non-critical arm-soc bug fixes from Olof Johansson:
"These bug fixes were not important enough to have them included in the
v3.4 release, mostly because they cover harmless warnings or
unrealistic configurations. Instead we queue them up to be picked up
in the next merge window."
Fixed up trivial conflict in arch/arm/mach-omap2/board-omap4panda.c
* tag 'fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc:
ARM: spear6xx: remove board selection options
ARM: OMAP: igep0020: Specify the VPLL2 regulator unconditionally
ARM: OMAP2+: INTC: fix Kconfig option for TI81XX
ARM: OMAP2+: remove incorrect irq_chip ack field
ARM: OMAP4: Adding ID for OMAP4460 ES1.1
ARM: OMAP4: panda: add statics to remove warnings
ARM: OMAP2+: Incorrect Register Offsets in OMAP Mailbox
ARM: OMAP: fix trivial warnings for dspbridge
arm: davinci: use for_each_set_bit_from
ARM: OMAP4: hsmmc: check for null pointer
ARM: OMAP1: fix compilation issue in board-sx1.c
ARM: disable SUSPEND/ARCH_SUSPEND_POSSIBLE for ARCH_TEGRA
ARM: davinci: da850-evm: fix section mismatch
ARM: tegra: add pll_x freq table entry for 750MHz
ARM: davinci: mark spi_board_info arguments as const
ARM: davinci: fix incorrect pdctl next bit position
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)) |