diff options
author | Linus Torvalds <torvalds@linux-foundation.org> | 2014-04-05 17:19:54 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2014-04-05 17:19:54 -0400 |
commit | ff050ad12c551233e546506409c89eb2f640d9f3 (patch) | |
tree | 8ae29fece122a91cbd6160fb2ca34c0ea82c3df9 /arch/arm/mach-omap2 | |
parent | dfc25e4503aef6b82a1de4a0fbe19aafa8648fbe (diff) | |
parent | 9233087dc468f75bdeb7830c694c09dc74be88c4 (diff) |
Merge tag 'soc-3.15' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc
Pull ARM SoC specific changes from Arnd Bergmann:
"Lots of changes specific to one of the SoC families. Some that stick
out are:
- mach-qcom gains new features, most importantly SMP support for the
newer chips (Stephen Boyd, Rohit Vaswani)
- mvebu gains support for three new SoCs: Armada 375, 380 and 385
(Thomas Petazzoni and Free-electrons team)
- SMP support for Rockchips (Heiko Stübner)
- Lots of i.MX changes (Shawn Guo)
- Added support for BCM5301x SoC (Hauke Mehrtens)
- Multiplatform support for Marvell Kirkwood and Dove (Andrew Lunn
and Sebastian Hesselbarth doing the final part of a long journey)
- Unify davinci platforms and remove obsolete ones (Sekhar Nori, Arnd
Bergmann)"
* tag 'soc-3.15' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc: (126 commits)
ARM: sunxi: Select HAVE_ARM_ARCH_TIMER
ARM: cache-tauros2: remove ARMv6 code
ARM: mvebu: don't select CONFIG_NEON
ARM: davinci: fix DT booting with default defconfig
ARM: configs: bcm_defconfig: enable bcm590xx regulator support
ARM: davinci: remove tnetv107x support
MAINTAINERS: Update ARM STi maintainers
ARM: restrict BCM_KONA_UART to ARCH_BCM_MOBILE
ARM: bcm21664: Add board support.
ARM: sunxi: Add the new watchog compatibles to the reboot code
ARM: enable ARM_HAS_SG_CHAIN for multiplatform
ARM: davinci: remove da8xx_omapl_defconfig
ARM: davinci: da8xx: fix multiple watchdog device registration
ARM: davinci: add da8xx specific configs to davinci_all_defconfig
ARM: davinci: enable da8xx build concurrently with older devices
ARM: BCM5301X: workaround suppress fault
ARM: BCM5301X: add early debugging support
ARM: BCM5301X: initial support for the BCM5301X/BCM470X SoCs with ARM CPU
ARM: mach-bcm: Remove GENERIC_TIME
ARM: shmobile: APMU: Fix warnings due to improper printk formats
...
Diffstat (limited to 'arch/arm/mach-omap2')
-rw-r--r-- | arch/arm/mach-omap2/Kconfig | 7 | ||||
-rw-r--r-- | arch/arm/mach-omap2/Makefile | 1 | ||||
-rw-r--r-- | arch/arm/mach-omap2/board-generic.c | 3 | ||||
-rw-r--r-- | arch/arm/mach-omap2/clkt_dpll.c | 6 | ||||
-rw-r--r-- | arch/arm/mach-omap2/cminst44xx.c | 18 | ||||
-rw-r--r-- | arch/arm/mach-omap2/dpll3xxx.c | 2 | ||||
-rw-r--r-- | arch/arm/mach-omap2/id.c | 16 | ||||
-rw-r--r-- | arch/arm/mach-omap2/io.c | 1 | ||||
-rw-r--r-- | arch/arm/mach-omap2/mux.h | 3 | ||||
-rw-r--r-- | arch/arm/mach-omap2/omap_hwmod_43xx_data.c | 1 | ||||
-rw-r--r-- | arch/arm/mach-omap2/prminst44xx.c | 3 | ||||
-rw-r--r-- | arch/arm/mach-omap2/soc.h | 3 | ||||
-rw-r--r-- | arch/arm/mach-omap2/timer.c | 3 |
13 files changed, 46 insertions, 21 deletions
diff --git a/arch/arm/mach-omap2/Kconfig b/arch/arm/mach-omap2/Kconfig index 27fc52d418a5..5c22c0899e9c 100644 --- a/arch/arm/mach-omap2/Kconfig +++ b/arch/arm/mach-omap2/Kconfig | |||
@@ -149,12 +149,6 @@ config SOC_TI81XX | |||
149 | depends on ARCH_OMAP3 | 149 | depends on ARCH_OMAP3 |
150 | default y | 150 | default y |
151 | 151 | ||
152 | config OMAP_PACKAGE_ZAF | ||
153 | bool | ||
154 | |||
155 | config OMAP_PACKAGE_ZAC | ||
156 | bool | ||
157 | |||
158 | config OMAP_PACKAGE_CBC | 152 | config OMAP_PACKAGE_CBC |
159 | bool | 153 | bool |
160 | 154 | ||
@@ -264,7 +258,6 @@ config MACH_NOKIA_N8X0 | |||
264 | default y | 258 | default y |
265 | select MACH_NOKIA_N810 | 259 | select MACH_NOKIA_N810 |
266 | select MACH_NOKIA_N810_WIMAX | 260 | select MACH_NOKIA_N810_WIMAX |
267 | select OMAP_PACKAGE_ZAC | ||
268 | 261 | ||
269 | config MACH_NOKIA_RX51 | 262 | config MACH_NOKIA_RX51 |
270 | bool "Nokia N900 (RX-51) phone" | 263 | bool "Nokia N900 (RX-51) phone" |
diff --git a/arch/arm/mach-omap2/Makefile b/arch/arm/mach-omap2/Makefile index e6eec6f72fd3..8421f38cf445 100644 --- a/arch/arm/mach-omap2/Makefile +++ b/arch/arm/mach-omap2/Makefile | |||
@@ -60,6 +60,7 @@ AFLAGS_sram34xx.o :=-Wa,-march=armv7-a | |||
60 | obj-$(CONFIG_SOC_OMAP2420) += omap2-restart.o | 60 | obj-$(CONFIG_SOC_OMAP2420) += omap2-restart.o |
61 | obj-$(CONFIG_SOC_OMAP2430) += omap2-restart.o | 61 | obj-$(CONFIG_SOC_OMAP2430) += omap2-restart.o |
62 | obj-$(CONFIG_SOC_AM33XX) += am33xx-restart.o | 62 | obj-$(CONFIG_SOC_AM33XX) += am33xx-restart.o |
63 | obj-$(CONFIG_SOC_AM43XX) += omap4-restart.o | ||
63 | obj-$(CONFIG_ARCH_OMAP3) += omap3-restart.o | 64 | obj-$(CONFIG_ARCH_OMAP3) += omap3-restart.o |
64 | obj-$(CONFIG_ARCH_OMAP4) += omap4-restart.o | 65 | obj-$(CONFIG_ARCH_OMAP4) += omap4-restart.o |
65 | obj-$(CONFIG_SOC_OMAP5) += omap4-restart.o | 66 | obj-$(CONFIG_SOC_OMAP5) += omap4-restart.o |
diff --git a/arch/arm/mach-omap2/board-generic.c b/arch/arm/mach-omap2/board-generic.c index 8e3daa11602b..bc6013fbb773 100644 --- a/arch/arm/mach-omap2/board-generic.c +++ b/arch/arm/mach-omap2/board-generic.c | |||
@@ -229,8 +229,9 @@ DT_MACHINE_START(AM43_DT, "Generic AM43 (Flattened Device Tree)") | |||
229 | .init_late = am43xx_init_late, | 229 | .init_late = am43xx_init_late, |
230 | .init_irq = omap_gic_of_init, | 230 | .init_irq = omap_gic_of_init, |
231 | .init_machine = omap_generic_init, | 231 | .init_machine = omap_generic_init, |
232 | .init_time = omap3_sync32k_timer_init, | 232 | .init_time = omap3_gptimer_timer_init, |
233 | .dt_compat = am43_boards_compat, | 233 | .dt_compat = am43_boards_compat, |
234 | .restart = omap44xx_restart, | ||
234 | MACHINE_END | 235 | MACHINE_END |
235 | #endif | 236 | #endif |
236 | 237 | ||
diff --git a/arch/arm/mach-omap2/clkt_dpll.c b/arch/arm/mach-omap2/clkt_dpll.c index 47f9562ca7aa..2649ce445845 100644 --- a/arch/arm/mach-omap2/clkt_dpll.c +++ b/arch/arm/mach-omap2/clkt_dpll.c | |||
@@ -306,7 +306,7 @@ long omap2_dpll_round_rate(struct clk_hw *hw, unsigned long target_rate, | |||
306 | 306 | ||
307 | ref_rate = __clk_get_rate(dd->clk_ref); | 307 | ref_rate = __clk_get_rate(dd->clk_ref); |
308 | clk_name = __clk_get_name(hw->clk); | 308 | clk_name = __clk_get_name(hw->clk); |
309 | pr_debug("clock: %s: starting DPLL round_rate, target rate %ld\n", | 309 | pr_debug("clock: %s: starting DPLL round_rate, target rate %lu\n", |
310 | clk_name, target_rate); | 310 | clk_name, target_rate); |
311 | 311 | ||
312 | scaled_rt_rp = target_rate / (ref_rate / DPLL_SCALE_FACTOR); | 312 | scaled_rt_rp = target_rate / (ref_rate / DPLL_SCALE_FACTOR); |
@@ -342,7 +342,7 @@ long omap2_dpll_round_rate(struct clk_hw *hw, unsigned long target_rate, | |||
342 | if (r == DPLL_MULT_UNDERFLOW) | 342 | if (r == DPLL_MULT_UNDERFLOW) |
343 | continue; | 343 | continue; |
344 | 344 | ||
345 | pr_debug("clock: %s: m = %d: n = %d: new_rate = %ld\n", | 345 | pr_debug("clock: %s: m = %d: n = %d: new_rate = %lu\n", |
346 | clk_name, m, n, new_rate); | 346 | clk_name, m, n, new_rate); |
347 | 347 | ||
348 | if (target_rate == new_rate) { | 348 | if (target_rate == new_rate) { |
@@ -354,7 +354,7 @@ long omap2_dpll_round_rate(struct clk_hw *hw, unsigned long target_rate, | |||
354 | } | 354 | } |
355 | 355 | ||
356 | if (target_rate != new_rate) { | 356 | if (target_rate != new_rate) { |
357 | pr_debug("clock: %s: cannot round to rate %ld\n", | 357 | pr_debug("clock: %s: cannot round to rate %lu\n", |
358 | clk_name, target_rate); | 358 | clk_name, target_rate); |
359 | return ~0; | 359 | return ~0; |
360 | } | 360 | } |
diff --git a/arch/arm/mach-omap2/cminst44xx.c b/arch/arm/mach-omap2/cminst44xx.c index 731ca134348c..f5c4731b6f06 100644 --- a/arch/arm/mach-omap2/cminst44xx.c +++ b/arch/arm/mach-omap2/cminst44xx.c | |||
@@ -254,6 +254,11 @@ void omap4_cminst_clkdm_force_wakeup(u8 part, u16 inst, u16 cdoffs) | |||
254 | * | 254 | * |
255 | */ | 255 | */ |
256 | 256 | ||
257 | void omap4_cminst_clkdm_force_sleep(u8 part, u16 inst, u16 cdoffs) | ||
258 | { | ||
259 | _clktrctrl_write(OMAP34XX_CLKSTCTRL_FORCE_SLEEP, part, inst, cdoffs); | ||
260 | } | ||
261 | |||
257 | /** | 262 | /** |
258 | * omap4_cminst_wait_module_ready - wait for a module to be in 'func' state | 263 | * omap4_cminst_wait_module_ready - wait for a module to be in 'func' state |
259 | * @part: PRCM partition ID that the CM_CLKCTRL register exists in | 264 | * @part: PRCM partition ID that the CM_CLKCTRL register exists in |
@@ -404,8 +409,17 @@ static int omap4_clkdm_clear_all_wkup_sleep_deps(struct clockdomain *clkdm) | |||
404 | 409 | ||
405 | static int omap4_clkdm_sleep(struct clockdomain *clkdm) | 410 | static int omap4_clkdm_sleep(struct clockdomain *clkdm) |
406 | { | 411 | { |
407 | omap4_cminst_clkdm_enable_hwsup(clkdm->prcm_partition, | 412 | if (clkdm->flags & CLKDM_CAN_HWSUP) |
408 | clkdm->cm_inst, clkdm->clkdm_offs); | 413 | omap4_cminst_clkdm_enable_hwsup(clkdm->prcm_partition, |
414 | clkdm->cm_inst, | ||
415 | clkdm->clkdm_offs); | ||
416 | else if (clkdm->flags & CLKDM_CAN_FORCE_SLEEP) | ||
417 | omap4_cminst_clkdm_force_sleep(clkdm->prcm_partition, | ||
418 | clkdm->cm_inst, | ||
419 | clkdm->clkdm_offs); | ||
420 | else | ||
421 | return -EINVAL; | ||
422 | |||
409 | return 0; | 423 | return 0; |
410 | } | 424 | } |
411 | 425 | ||
diff --git a/arch/arm/mach-omap2/dpll3xxx.c b/arch/arm/mach-omap2/dpll3xxx.c index 3c418ea54bbe..fcd8036af910 100644 --- a/arch/arm/mach-omap2/dpll3xxx.c +++ b/arch/arm/mach-omap2/dpll3xxx.c | |||
@@ -525,7 +525,7 @@ int omap3_noncore_dpll_set_rate(struct clk_hw *hw, unsigned long rate, | |||
525 | * stuff is inherited for free | 525 | * stuff is inherited for free |
526 | */ | 526 | */ |
527 | 527 | ||
528 | if (!ret) | 528 | if (!ret && clk_get_parent(hw->clk) != new_parent) |
529 | __clk_reparent(hw->clk, new_parent); | 529 | __clk_reparent(hw->clk, new_parent); |
530 | 530 | ||
531 | return 0; | 531 | return 0; |
diff --git a/arch/arm/mach-omap2/id.c b/arch/arm/mach-omap2/id.c index 9428c5f9d4f2..157412e4273a 100644 --- a/arch/arm/mach-omap2/id.c +++ b/arch/arm/mach-omap2/id.c | |||
@@ -465,8 +465,18 @@ void __init omap3xxx_check_revision(void) | |||
465 | } | 465 | } |
466 | break; | 466 | break; |
467 | case 0xb98c: | 467 | case 0xb98c: |
468 | omap_revision = AM437X_REV_ES1_0; | 468 | switch (rev) { |
469 | cpu_rev = "1.0"; | 469 | case 0: |
470 | omap_revision = AM437X_REV_ES1_0; | ||
471 | cpu_rev = "1.0"; | ||
472 | break; | ||
473 | case 1: | ||
474 | /* FALLTHROUGH */ | ||
475 | default: | ||
476 | omap_revision = AM437X_REV_ES1_1; | ||
477 | cpu_rev = "1.1"; | ||
478 | break; | ||
479 | } | ||
470 | break; | 480 | break; |
471 | case 0xb8f2: | 481 | case 0xb8f2: |
472 | switch (rev) { | 482 | switch (rev) { |
@@ -657,6 +667,8 @@ static const char * __init omap_get_family(void) | |||
657 | return kasprintf(GFP_KERNEL, "OMAP4"); | 667 | return kasprintf(GFP_KERNEL, "OMAP4"); |
658 | else if (soc_is_omap54xx()) | 668 | else if (soc_is_omap54xx()) |
659 | return kasprintf(GFP_KERNEL, "OMAP5"); | 669 | return kasprintf(GFP_KERNEL, "OMAP5"); |
670 | else if (soc_is_am43xx()) | ||
671 | return kasprintf(GFP_KERNEL, "AM43xx"); | ||
660 | else | 672 | else |
661 | return kasprintf(GFP_KERNEL, "Unknown"); | 673 | return kasprintf(GFP_KERNEL, "Unknown"); |
662 | } | 674 | } |
diff --git a/arch/arm/mach-omap2/io.c b/arch/arm/mach-omap2/io.c index af432b191255..f14f9ac2dca1 100644 --- a/arch/arm/mach-omap2/io.c +++ b/arch/arm/mach-omap2/io.c | |||
@@ -604,6 +604,7 @@ void __init am43xx_init_early(void) | |||
604 | omap_prm_base_init(); | 604 | omap_prm_base_init(); |
605 | omap_cm_base_init(); | 605 | omap_cm_base_init(); |
606 | omap3xxx_check_revision(); | 606 | omap3xxx_check_revision(); |
607 | am33xx_check_features(); | ||
607 | am43xx_powerdomains_init(); | 608 | am43xx_powerdomains_init(); |
608 | am43xx_clockdomains_init(); | 609 | am43xx_clockdomains_init(); |
609 | am43xx_hwmod_init(); | 610 | am43xx_hwmod_init(); |
diff --git a/arch/arm/mach-omap2/mux.h b/arch/arm/mach-omap2/mux.h index a722330d4d53..d121fb6df4e6 100644 --- a/arch/arm/mach-omap2/mux.h +++ b/arch/arm/mach-omap2/mux.h | |||
@@ -63,9 +63,6 @@ | |||
63 | #define OMAP_PACKAGE_CUS 5 /* 423-pin 0.65 */ | 63 | #define OMAP_PACKAGE_CUS 5 /* 423-pin 0.65 */ |
64 | #define OMAP_PACKAGE_CBB 4 /* 515-pin 0.40 0.50 */ | 64 | #define OMAP_PACKAGE_CBB 4 /* 515-pin 0.40 0.50 */ |
65 | #define OMAP_PACKAGE_CBC 3 /* 515-pin 0.50 0.65 */ | 65 | #define OMAP_PACKAGE_CBC 3 /* 515-pin 0.50 0.65 */ |
66 | #define OMAP_PACKAGE_ZAC 2 /* 24xx 447-pin POP */ | ||
67 | #define OMAP_PACKAGE_ZAF 1 /* 2420 447-pin SIP */ | ||
68 | |||
69 | 66 | ||
70 | #define OMAP_MUX_NR_MODES 8 /* Available modes */ | 67 | #define OMAP_MUX_NR_MODES 8 /* Available modes */ |
71 | #define OMAP_MUX_NR_SIDES 2 /* Bottom & top */ | 68 | #define OMAP_MUX_NR_SIDES 2 /* Bottom & top */ |
diff --git a/arch/arm/mach-omap2/omap_hwmod_43xx_data.c b/arch/arm/mach-omap2/omap_hwmod_43xx_data.c index 9002fca76699..5c2cc8083fdd 100644 --- a/arch/arm/mach-omap2/omap_hwmod_43xx_data.c +++ b/arch/arm/mach-omap2/omap_hwmod_43xx_data.c | |||
@@ -719,6 +719,7 @@ static struct omap_hwmod_ocp_if *am43xx_hwmod_ocp_ifs[] __initdata = { | |||
719 | &am33xx_l4_ls__uart4, | 719 | &am33xx_l4_ls__uart4, |
720 | &am33xx_l4_ls__uart5, | 720 | &am33xx_l4_ls__uart5, |
721 | &am33xx_l4_ls__uart6, | 721 | &am33xx_l4_ls__uart6, |
722 | &am33xx_l4_ls__spinlock, | ||
722 | &am33xx_l4_ls__elm, | 723 | &am33xx_l4_ls__elm, |
723 | &am33xx_l4_ls__epwmss0, | 724 | &am33xx_l4_ls__epwmss0, |
724 | &am33xx_epwmss0__ecap0, | 725 | &am33xx_epwmss0__ecap0, |
diff --git a/arch/arm/mach-omap2/prminst44xx.c b/arch/arm/mach-omap2/prminst44xx.c index 280f3c58abe5..05fcf6de44ee 100644 --- a/arch/arm/mach-omap2/prminst44xx.c +++ b/arch/arm/mach-omap2/prminst44xx.c | |||
@@ -25,6 +25,7 @@ | |||
25 | #include "prminst44xx.h" | 25 | #include "prminst44xx.h" |
26 | #include "prm-regbits-44xx.h" | 26 | #include "prm-regbits-44xx.h" |
27 | #include "prcm44xx.h" | 27 | #include "prcm44xx.h" |
28 | #include "prcm43xx.h" | ||
28 | #include "prcm_mpu44xx.h" | 29 | #include "prcm_mpu44xx.h" |
29 | #include "soc.h" | 30 | #include "soc.h" |
30 | 31 | ||
@@ -176,6 +177,8 @@ void omap4_prminst_global_warm_sw_reset(void) | |||
176 | dev_inst = OMAP54XX_PRM_DEVICE_INST; | 177 | dev_inst = OMAP54XX_PRM_DEVICE_INST; |
177 | else if (soc_is_dra7xx()) | 178 | else if (soc_is_dra7xx()) |
178 | dev_inst = DRA7XX_PRM_DEVICE_INST; | 179 | dev_inst = DRA7XX_PRM_DEVICE_INST; |
180 | else if (soc_is_am43xx()) | ||
181 | dev_inst = AM43XX_PRM_DEVICE_INST; | ||
179 | else | 182 | else |
180 | return; | 183 | return; |
181 | 184 | ||
diff --git a/arch/arm/mach-omap2/soc.h b/arch/arm/mach-omap2/soc.h index 076bd90a6ce0..30abcc8b20e0 100644 --- a/arch/arm/mach-omap2/soc.h +++ b/arch/arm/mach-omap2/soc.h | |||
@@ -438,7 +438,8 @@ IS_OMAP_TYPE(3430, 0x3430) | |||
438 | #define AM335X_REV_ES2_1 (AM335X_CLASS | (0x2 << 8)) | 438 | #define AM335X_REV_ES2_1 (AM335X_CLASS | (0x2 << 8)) |
439 | 439 | ||
440 | #define AM437X_CLASS 0x43700000 | 440 | #define AM437X_CLASS 0x43700000 |
441 | #define AM437X_REV_ES1_0 AM437X_CLASS | 441 | #define AM437X_REV_ES1_0 (AM437X_CLASS | (0x10 << 8)) |
442 | #define AM437X_REV_ES1_1 (AM437X_CLASS | (0x11 << 8)) | ||
442 | 443 | ||
443 | #define OMAP443X_CLASS 0x44300044 | 444 | #define OMAP443X_CLASS 0x44300044 |
444 | #define OMAP4430_REV_ES1_0 (OMAP443X_CLASS | (0x10 << 8)) | 445 | #define OMAP4430_REV_ES1_0 (OMAP443X_CLASS | (0x10 << 8)) |
diff --git a/arch/arm/mach-omap2/timer.c b/arch/arm/mach-omap2/timer.c index 74044aaf438b..b62de9f9d05c 100644 --- a/arch/arm/mach-omap2/timer.c +++ b/arch/arm/mach-omap2/timer.c | |||
@@ -604,7 +604,8 @@ OMAP_SYS_32K_TIMER_INIT(3_secure, 12, "secure_32k_fck", "ti,timer-secure", | |||
604 | 2, "timer_sys_ck", NULL); | 604 | 2, "timer_sys_ck", NULL); |
605 | #endif /* CONFIG_ARCH_OMAP3 */ | 605 | #endif /* CONFIG_ARCH_OMAP3 */ |
606 | 606 | ||
607 | #if defined(CONFIG_ARCH_OMAP3) || defined(CONFIG_SOC_AM33XX) | 607 | #if defined(CONFIG_ARCH_OMAP3) || defined(CONFIG_SOC_AM33XX) || \ |
608 | defined(CONFIG_SOC_AM43XX) | ||
608 | OMAP_SYS_GP_TIMER_INIT(3, 2, "timer_sys_ck", NULL, | 609 | OMAP_SYS_GP_TIMER_INIT(3, 2, "timer_sys_ck", NULL, |
609 | 1, "timer_sys_ck", "ti,timer-alwon"); | 610 | 1, "timer_sys_ck", "ti,timer-alwon"); |
610 | #endif | 611 | #endif |