aboutsummaryrefslogtreecommitdiffstats
path: root/arch/arm
diff options
context:
space:
mode:
authorLinus Torvalds <torvalds@linux-foundation.org>2012-05-22 12:27:39 -0400
committerLinus Torvalds <torvalds@linux-foundation.org>2012-05-22 12:27:39 -0400
commit8dca6010d44cc722a94dc6da96560f9083dac782 (patch)
treec804c272bc3d07a05459c2688e4b1c8b141d561c /arch/arm
parent9bc747bea5fad819e0c0ad96e6a67ea0640dfe2b (diff)
parent74c437532b8b5db53509963ec38e8424c56ff6f4 (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
Diffstat (limited to 'arch/arm')
-rw-r--r--arch/arm/Kconfig2
-rw-r--r--arch/arm/mach-davinci/board-da850-evm.c2
-rw-r--r--arch/arm/mach-davinci/davinci.h4
-rw-r--r--arch/arm/mach-davinci/devices-da8xx.c2
-rw-r--r--arch/arm/mach-davinci/dm355.c2
-rw-r--r--arch/arm/mach-davinci/dm365.c2
-rw-r--r--arch/arm/mach-davinci/dma.c6
-rw-r--r--arch/arm/mach-davinci/include/mach/da8xx.h3
-rw-r--r--arch/arm/mach-davinci/include/mach/psc.h2
-rw-r--r--arch/arm/mach-omap1/Kconfig1
-rw-r--r--arch/arm/mach-omap2/board-4430sdp.c44
-rw-r--r--arch/arm/mach-omap2/board-igep0020.c10
-rw-r--r--arch/arm/mach-omap2/board-omap4panda.c49
-rw-r--r--arch/arm/mach-omap2/common.h3
-rw-r--r--arch/arm/mach-omap2/dsp.c5
-rw-r--r--arch/arm/mach-omap2/id.c5
-rw-r--r--arch/arm/mach-omap2/irq.c3
-rw-r--r--arch/arm/mach-omap2/mailbox.c6
-rw-r--r--arch/arm/mach-omap2/omap4-common.c58
-rw-r--r--arch/arm/mach-spear6xx/Kconfig18
-rw-r--r--arch/arm/mach-tegra/tegra2_clocks.c6
-rw-r--r--arch/arm/plat-omap/devices.c4
-rw-r--r--arch/arm/plat-omap/include/plat/cpu.h1
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"
2253source "kernel/power/Kconfig" 2253source "kernel/power/Kconfig"
2254 2254
2255config ARCH_SUSPEND_POSSIBLE 2255config 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
287static struct platform_device *da850_evm_devices[] __initdata = { 287static 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 */
73void __init dm355_init(void); 73void __init dm355_init(void);
74void dm355_init_spi0(unsigned chipselect_mask, 74void dm355_init_spi0(unsigned chipselect_mask,
75 struct spi_board_info *info, unsigned len); 75 const struct spi_board_info *info, unsigned len);
76void __init dm355_init_asp1(u32 evt_enable, struct snd_platform_data *pdata); 76void __init dm355_init_asp1(u32 evt_enable, struct snd_platform_data *pdata);
77void dm355_set_vpfe_config(struct vpfe_config *cfg); 77void dm355_set_vpfe_config(struct vpfe_config *cfg);
78 78
@@ -83,7 +83,7 @@ void __init dm365_init_vc(struct snd_platform_data *pdata);
83void __init dm365_init_ks(struct davinci_ks_platform_data *pdata); 83void __init dm365_init_ks(struct davinci_ks_platform_data *pdata);
84void __init dm365_init_rtc(void); 84void __init dm365_init_rtc(void);
85void dm365_init_spi0(unsigned chipselect_mask, 85void dm365_init_spi0(unsigned chipselect_mask,
86 struct spi_board_info *info, unsigned len); 86 const struct spi_board_info *info, unsigned len);
87void dm365_set_vpfe_config(struct vpfe_config *cfg); 87void 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
834int __init da8xx_register_spi(int instance, struct spi_board_info *info, 834int __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
426void __init dm355_init_spi0(unsigned chipselect_mask, 426void __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
678void __init dm365_init_spi0(unsigned chipselect_mask, 678void __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);
76int da830_register_edma(struct edma_rsv_info *rsv); 76int da830_register_edma(struct edma_rsv_info *rsv);
77int da850_register_edma(struct edma_rsv_info *rsv[2]); 77int da850_register_edma(struct edma_rsv_info *rsv[2]);
78int da8xx_register_i2c(int instance, struct davinci_i2c_platform_data *pdata); 78int da8xx_register_i2c(int instance, struct davinci_i2c_platform_data *pdata);
79int da8xx_register_spi(int instance, struct spi_board_info *info, unsigned len); 79int da8xx_register_spi(int instance,
80 const struct spi_board_info *info, unsigned len);
80int da8xx_register_watchdog(void); 81int da8xx_register_watchdog(void);
81int da8xx_register_usb20(unsigned mA, unsigned potpgt); 82int da8xx_register_usb20(unsigned mA, unsigned potpgt);
82int da8xx_register_usb11(struct da8xx_ohci_root_hub *pdata); 83int 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
133config MACH_SX1 133config 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
492static 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
512static __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
525static 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
536static struct regulator_init_data sdp4430_vaux1 = { 492static 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
239static 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
263static __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
277static 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
288static struct twl6040_codec_data twl6040_codec = { 239static 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)
252struct omap_sdrc_params; 253struct omap_sdrc_params;
253extern void omap_sdrc_init(struct omap_sdrc_params *sdrc_cs0, 254extern void omap_sdrc_init(struct omap_sdrc_params *sdrc_cs0,
254 struct omap_sdrc_params *sdrc_cs1); 255 struct omap_sdrc_params *sdrc_cs1);
256struct omap2_hsmmc_info;
257extern 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}
209early_initcall(omap4_sar_ram_init); 211early_initcall(omap4_sar_ram_init);
212
213#if defined(CONFIG_MMC_OMAP_HS) || defined(CONFIG_MMC_OMAP_HS_MODULE)
214static 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
235static __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
248int __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
263int __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
5if ARCH_SPEAR6XX 5config MACH_SPEAR600
6 6 def_bool y
7menu "SPEAr6xx Implementations" 7 depends on ARCH_SPEAR6XX
8config 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
15endmenu
16
17config MACH_SPEAR600
18 bool "SPEAr600"
19 help
20 Supports ST SPEAr600 Machine
21
22endif #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))