From: Arnd Bergmann Date: Thu, 15 Nov 2012 16:08:51 +0000 (+0100) Subject: Merge tag 'omap-for-v3.8/cleanup-prcm-part2-signed' of git://git.kernel.org/pub/scm... X-Git-Url: https://git.stricted.de/?a=commitdiff_plain;h=cb64babf9ebe06984d87c08d241d05e2f6a7eb5b;p=GitHub%2FLineageOS%2Fandroid_kernel_motorola_exynos9610.git Merge tag 'omap-for-v3.8/cleanup-prcm-part2-signed' of git://git./linux/kernel/git/tmlind/linux-omap into next/cleanup From Tony Lindgren : More PRCM cleanups via Paul Walmsley : Second set of OMAP PRCM cleanups for 3.8. These patches remove the use of omap_prcm_get_reset_sources() from the OMAP watchdog driver, and remove mach-omap2/prcm.c and plat-omap/include/plat/prcm.h. Basic test logs for this branch on top of Tony's cleanup-prcm branch at commit 7fc54fd3084457c7f11b9e2e1e3fcd19a3badc33 are here: http://www.pwsan.com/omap/testlogs/prcm_cleanup_b_3.8/20121108151646/ However, cleanup-prcm at 7fc54fd3 does not include some fixes that are needed for a successful test. With several reverts, fixes, and workarounds applied, the following test logs were obtained: http://www.pwsan.com/omap/testlogs/TEST_prcm_cleanup_b_3.8/20121108151930/ which indicate that the series tests cleanly. This second pull request updates one of the patches which broke with rmk's allnoconfigs, and also updates the tag description to indicate that 7fc54fd3 is building cleanly here. * tag 'omap-for-v3.8/cleanup-prcm-part2-signed' of git://git.kernel.org/pub/scm/linux/kernel/git/tmlind/linux-omap: (27 commits) ARM: OMAP2: Fix compillation error in cm_common ARM: OMAP2+: PRCM: remove obsolete prcm.[ch] ARM: OMAP2+: hwmod: call to _omap4_disable_module() should use the SoC-specific call ARM: OMAP2+: PRCM: consolidate PRCM-related timeout macros ARM: OMAP2+: PRCM: split and relocate the PRM/CM globals setup ARM: OMAP2+: PRCM: remove omap2_cm_wait_idlest() ARM: OMAP2+: CM/clock: convert _omap2_module_wait_ready() to use SoC-independent CM functions ARM: OMAP2xxx: APLL/CM: convert to use omap2_cm_wait_module_ready() ARM: OMAP2+: board files: use SoC-specific system restart functions ARM: OMAP2+: PRCM: create SoC-specific chip restart functions ARM: OMAP2xxx: clock: move virt_prcm_set code into clkt2xxx_virt_prcm_set.c ARM: OMAP2xxx: clock: remove global 'dclk' variable ARM: OMAP2/3: PRM: add SoC reset functions (using the CORE DPLL method) ARM: OMAP2+: common: remove mach-omap2/common.c globals and map_common_io code ARM: OMAP2+: PRCM: remove omap_prcm_get_reset_sources() watchdog: OMAP: use standard GETBOOTSTATUS interface; use platform_data fn ptr ARM: OMAP2+: WDT: move init; add read_reset_sources pdata function pointer ARM: OMAP1: CGRM: fix omap1_get_reset_sources() return type ARM: OMAP2+: PRM: create PRM reset source API for the watchdog timer driver ARM: OMAP1: create read_reset_sources() function (for initial use by watchdog) ... Conflicts: arch/arm/mach-omap2/cm33xx.c arch/arm/mach-omap2/io.c arch/arm/mach-omap2/prm_common.c Signed-off-by: Arnd Bergmann --- cb64babf9ebe06984d87c08d241d05e2f6a7eb5b diff --cc arch/arm/mach-omap2/Makefile index b118ed5f61a9,96621a20413a..78cbb8c5992e --- a/arch/arm/mach-omap2/Makefile +++ b/arch/arm/mach-omap2/Makefile @@@ -5,17 -5,20 +5,20 @@@ # Common support obj-y := id.o io.o control.o mux.o devices.o serial.o gpmc.o timer.o pm.o \ common.o gpio.o dma.o wd_timer.o display.o i2c.o hdq1w.o omap_hwmod.o \ - omap_device.o + omap_device.o sram.o - # INTCPS IP block support - XXX should be moved to drivers/ - obj-$(CONFIG_ARCH_OMAP2) += irq.o - obj-$(CONFIG_ARCH_OMAP3) += irq.o - obj-$(CONFIG_SOC_AM33XX) += irq.o - - # Secure monitor API support - obj-$(CONFIG_ARCH_OMAP3) += omap-smc.o omap-secure.o - obj-$(CONFIG_ARCH_OMAP4) += omap-smc.o omap-secure.o - obj-$(CONFIG_SOC_OMAP5) += omap-smc.o omap-secure.o + omap-2-3-common = irq.o + hwmod-common = omap_hwmod.o \ + omap_hwmod_common_data.o + clock-common = clock.o clock_common_data.o \ + clkt_dpll.o clkt_clksel.o + secure-common = omap-smc.o omap-secure.o + + obj-$(CONFIG_ARCH_OMAP2) += $(omap-2-3-common) $(hwmod-common) + obj-$(CONFIG_ARCH_OMAP3) += $(omap-2-3-common) $(hwmod-common) $(secure-common) + obj-$(CONFIG_ARCH_OMAP4) += prm44xx.o $(hwmod-common) $(secure-common) + obj-$(CONFIG_SOC_AM33XX) += irq.o $(hwmod-common) + obj-$(CONFIG_SOC_OMAP5) += prm44xx.o $(hwmod-common) $(secure-common) ifneq ($(CONFIG_SND_OMAP_SOC_MCBSP),) obj-y += mcbsp.o @@@ -64,16 -74,15 +74,16 @@@ endi # Power Management ifeq ($(CONFIG_PM),y) - obj-$(CONFIG_ARCH_OMAP2) += pm24xx.o sleep24xx.o + obj-$(CONFIG_ARCH_OMAP2) += pm24xx.o + obj-$(CONFIG_ARCH_OMAP2) += sleep24xx.o obj-$(CONFIG_ARCH_OMAP3) += pm34xx.o sleep34xx.o obj-$(CONFIG_ARCH_OMAP4) += pm44xx.o omap-mpuss-lowpower.o - obj-$(CONFIG_ARCH_OMAP4) += sleep44xx.o - obj-$(CONFIG_SOC_OMAP5) += omap-mpuss-lowpower.o sleep44xx.o + obj-$(CONFIG_SOC_OMAP5) += omap-mpuss-lowpower.o obj-$(CONFIG_PM_DEBUG) += pm-debug.o +obj-$(CONFIG_OMAP_PM_NOOP) += omap-pm-noop.o obj-$(CONFIG_POWER_AVS_OMAP) += sr_device.o - obj-$(CONFIG_POWER_AVS_OMAP_CLASS3) += smartreflex-class3.o + obj-$(CONFIG_POWER_AVS_OMAP_CLASS3) += smartreflex-class3.o AFLAGS_sleep24xx.o :=-Wa,-march=armv6 AFLAGS_sleep34xx.o :=-Wa,-march=armv7-a$(plus_sec) diff --cc arch/arm/mach-omap2/clkt2xxx_dpllcore.c index 0d2f14c2dcce,e687163a68fe..825e44cdf1cf --- a/arch/arm/mach-omap2/clkt2xxx_dpllcore.c +++ b/arch/arm/mach-omap2/clkt2xxx_dpllcore.c @@@ -28,10 -28,11 +28,10 @@@ #include "clock.h" #include "clock2xxx.h" #include "opp2xxx.h" - #include "cm2xxx_3xxx.h" + #include "cm2xxx.h" #include "cm-regbits-24xx.h" #include "sdrc.h" +#include "sram.h" /* #define DOWN_VARIABLE_DPLL 1 */ /* Experimental */ diff --cc arch/arm/mach-omap2/clkt2xxx_virt_prcm_set.c index a38ebb209721,b9b981bac9d3..1c2041fbd718 --- a/arch/arm/mach-omap2/clkt2xxx_virt_prcm_set.c +++ b/arch/arm/mach-omap2/clkt2xxx_virt_prcm_set.c @@@ -37,10 -39,9 +37,10 @@@ #include "clock.h" #include "clock2xxx.h" #include "opp2xxx.h" - #include "cm2xxx_3xxx.h" + #include "cm2xxx.h" #include "cm-regbits-24xx.h" #include "sdrc.h" +#include "sram.h" const struct prcm_config *curr_prcm_set; const struct prcm_config *rate_table; diff --cc arch/arm/mach-omap2/cm33xx.c index ed8dcaf4c849,b2dfcd777194..058ce3c0873e --- a/arch/arm/mach-omap2/cm33xx.c +++ b/arch/arm/mach-omap2/cm33xx.c @@@ -22,6 -22,9 +22,7 @@@ #include #include -#include "../plat-omap/common.h" - + #include "clockdomain.h" #include "cm.h" #include "cm33xx.h" #include "cm-regbits-34xx.h" diff --cc arch/arm/mach-omap2/io.c index 807b8d919f81,c3472bd8e5a4..9df757644cce --- a/arch/arm/mach-omap2/io.c +++ b/arch/arm/mach-omap2/io.c @@@ -40,9 -42,15 +40,17 @@@ #include "clock44xx.h" #include "omap-pm.h" #include "sdrc.h" + #include "control.h" #include "serial.h" +#include "sram.h" + #include "cm2xxx.h" + #include "cm3xxx.h" + #include "prm.h" + #include "cm.h" + #include "prcm_mpu44xx.h" + #include "prminst44xx.h" + #include "cminst44xx.h" + /* * The machine specific code may provide the extra mapping besides the * default mapping provided here. @@@ -371,8 -384,16 +379,15 @@@ static void __init omap_hwmod_init_post #ifdef CONFIG_SOC_OMAP2420 void __init omap2420_init_early(void) { - omap2_set_globals_242x(); + omap2_set_globals_tap(OMAP242X_CLASS, OMAP2_L4_IO_ADDRESS(0x48014000)); + omap2_set_globals_sdrc(OMAP2_L3_IO_ADDRESS(OMAP2420_SDRC_BASE), + OMAP2_L3_IO_ADDRESS(OMAP2420_SMS_BASE)); + omap2_set_globals_control(OMAP2_L4_IO_ADDRESS(OMAP242X_CTRL_BASE), + NULL); + omap2_set_globals_prm(OMAP2_L4_IO_ADDRESS(OMAP2420_PRM_BASE)); + omap2_set_globals_cm(OMAP2_L4_IO_ADDRESS(OMAP2420_CM_BASE), NULL); omap2xxx_check_revision(); + omap2xxx_cm_init(); - omap_common_init_early(); omap2xxx_voltagedomains_init(); omap242x_powerdomains_init(); omap242x_clockdomains_init(); @@@ -392,8 -413,16 +407,15 @@@ void __init omap2420_init_late(void #ifdef CONFIG_SOC_OMAP2430 void __init omap2430_init_early(void) { - omap2_set_globals_243x(); + omap2_set_globals_tap(OMAP243X_CLASS, OMAP2_L4_IO_ADDRESS(0x4900a000)); + omap2_set_globals_sdrc(OMAP2_L3_IO_ADDRESS(OMAP243X_SDRC_BASE), + OMAP2_L3_IO_ADDRESS(OMAP243X_SMS_BASE)); + omap2_set_globals_control(OMAP2_L4_IO_ADDRESS(OMAP243X_CTRL_BASE), + NULL); + omap2_set_globals_prm(OMAP2_L4_IO_ADDRESS(OMAP2430_PRM_BASE)); + omap2_set_globals_cm(OMAP2_L4_IO_ADDRESS(OMAP2430_CM_BASE), NULL); omap2xxx_check_revision(); + omap2xxx_cm_init(); - omap_common_init_early(); omap2xxx_voltagedomains_init(); omap243x_powerdomains_init(); omap243x_clockdomains_init(); @@@ -417,9 -446,17 +439,16 @@@ void __init omap2430_init_late(void #ifdef CONFIG_ARCH_OMAP3 void __init omap3_init_early(void) { - omap2_set_globals_3xxx(); + omap2_set_globals_tap(OMAP343X_CLASS, OMAP2_L4_IO_ADDRESS(0x4830A000)); + omap2_set_globals_sdrc(OMAP2_L3_IO_ADDRESS(OMAP343X_SDRC_BASE), + OMAP2_L3_IO_ADDRESS(OMAP343X_SMS_BASE)); + omap2_set_globals_control(OMAP2_L4_IO_ADDRESS(OMAP343X_CTRL_BASE), + NULL); + omap2_set_globals_prm(OMAP2_L4_IO_ADDRESS(OMAP3430_PRM_BASE)); + omap2_set_globals_cm(OMAP2_L4_IO_ADDRESS(OMAP3430_CM_BASE), NULL); omap3xxx_check_revision(); omap3xxx_check_features(); + omap3xxx_cm_init(); - omap_common_init_early(); omap3xxx_voltagedomains_init(); omap3xxx_powerdomains_init(); omap3xxx_clockdomains_init(); @@@ -450,9 -487,15 +479,14 @@@ void __init am35xx_init_early(void void __init ti81xx_init_early(void) { - omap2_set_globals_ti81xx(); + omap2_set_globals_tap(OMAP343X_CLASS, + OMAP2_L4_IO_ADDRESS(TI81XX_TAP_BASE)); + omap2_set_globals_control(OMAP2_L4_IO_ADDRESS(TI81XX_CTRL_BASE), + NULL); + omap2_set_globals_prm(OMAP2_L4_IO_ADDRESS(TI81XX_PRCM_BASE)); + omap2_set_globals_cm(OMAP2_L4_IO_ADDRESS(TI81XX_PRCM_BASE), NULL); omap3xxx_check_revision(); ti81xx_check_features(); - omap_common_init_early(); omap3xxx_voltagedomains_init(); omap3xxx_powerdomains_init(); omap3xxx_clockdomains_init(); @@@ -507,9 -550,15 +541,14 @@@ void __init ti81xx_init_late(void #ifdef CONFIG_SOC_AM33XX void __init am33xx_init_early(void) { - omap2_set_globals_am33xx(); + omap2_set_globals_tap(AM335X_CLASS, + AM33XX_L4_WK_IO_ADDRESS(AM33XX_TAP_BASE)); + omap2_set_globals_control(AM33XX_L4_WK_IO_ADDRESS(AM33XX_CTRL_BASE), + NULL); + omap2_set_globals_prm(AM33XX_L4_WK_IO_ADDRESS(AM33XX_PRCM_BASE)); + omap2_set_globals_cm(AM33XX_L4_WK_IO_ADDRESS(AM33XX_PRCM_BASE), NULL); omap3xxx_check_revision(); ti81xx_check_features(); - omap_common_init_early(); am33xx_voltagedomains_init(); am33xx_powerdomains_init(); am33xx_clockdomains_init(); @@@ -522,9 -571,19 +561,18 @@@ #ifdef CONFIG_ARCH_OMAP4 void __init omap4430_init_early(void) { - omap2_set_globals_443x(); + omap2_set_globals_tap(OMAP443X_CLASS, + OMAP2_L4_IO_ADDRESS(OMAP443X_SCM_BASE)); + omap2_set_globals_control(OMAP2_L4_IO_ADDRESS(OMAP443X_SCM_BASE), + OMAP2_L4_IO_ADDRESS(OMAP443X_CTRL_BASE)); + omap2_set_globals_prm(OMAP2_L4_IO_ADDRESS(OMAP4430_PRM_BASE)); + omap2_set_globals_cm(OMAP2_L4_IO_ADDRESS(OMAP4430_CM_BASE), + OMAP2_L4_IO_ADDRESS(OMAP4430_CM2_BASE)); + omap2_set_globals_prcm_mpu(OMAP2_L4_IO_ADDRESS(OMAP4430_PRCM_MPU_BASE)); + omap_prm_base_init(); + omap_cm_base_init(); omap4xxx_check_revision(); omap4xxx_check_features(); - omap_common_init_early(); omap44xx_voltagedomains_init(); omap44xx_powerdomains_init(); omap44xx_clockdomains_init(); @@@ -544,8 -603,18 +592,17 @@@ void __init omap4430_init_late(void #ifdef CONFIG_SOC_OMAP5 void __init omap5_init_early(void) { - omap2_set_globals_5xxx(); + omap2_set_globals_tap(OMAP54XX_CLASS, + OMAP2_L4_IO_ADDRESS(OMAP54XX_SCM_BASE)); + omap2_set_globals_control(OMAP2_L4_IO_ADDRESS(OMAP54XX_SCM_BASE), + OMAP2_L4_IO_ADDRESS(OMAP54XX_CTRL_BASE)); + omap2_set_globals_prm(OMAP2_L4_IO_ADDRESS(OMAP54XX_PRM_BASE)); + omap2_set_globals_cm(OMAP2_L4_IO_ADDRESS(OMAP54XX_CM_CORE_AON_BASE), + OMAP2_L4_IO_ADDRESS(OMAP54XX_CM_CORE_BASE)); + omap2_set_globals_prcm_mpu(OMAP2_L4_IO_ADDRESS(OMAP54XX_PRCM_MPU_BASE)); + omap_prm_base_init(); + omap_cm_base_init(); omap5xxx_check_revision(); - omap_common_init_early(); } #endif diff --cc arch/arm/mach-omap2/omap4-common.c index 3cfcd41bf8fa,64fce07a3ccd..5695885ea340 --- a/arch/arm/mach-omap2/omap4-common.c +++ b/arch/arm/mach-omap2/omap4-common.c @@@ -25,14 -25,18 +25,17 @@@ #include #include -#include "../plat-omap/sram.h" - #include "omap-wakeupgen.h" #include "soc.h" + #include "iomap.h" #include "common.h" #include "mmc.h" #include "hsmmc.h" + #include "prminst44xx.h" + #include "prcm_mpu44xx.h" #include "omap4-sar-layout.h" #include "omap-secure.h" +#include "sram.h" #ifdef CONFIG_CACHE_L2X0 static void __iomem *l2cache_base; diff --cc arch/arm/mach-omap2/pm24xx.c index 9a2f5594a7dc,83815ddc4786..13e1f4303989 --- a/arch/arm/mach-omap2/pm24xx.c +++ b/arch/arm/mach-omap2/pm24xx.c @@@ -43,12 -41,13 +43,12 @@@ #include "soc.h" #include "common.h" #include "clock.h" - #include "prm2xxx_3xxx.h" + #include "prm2xxx.h" #include "prm-regbits-24xx.h" - #include "cm2xxx_3xxx.h" + #include "cm2xxx.h" #include "cm-regbits-24xx.h" #include "sdrc.h" +#include "sram.h" #include "pm.h" #include "control.h" #include "powerdomain.h" diff --cc arch/arm/mach-omap2/pm34xx.c index 11f9669eb7ed,aa701d76efda..770320061422 --- a/arch/arm/mach-omap2/pm34xx.c +++ b/arch/arm/mach-omap2/pm34xx.c @@@ -38,20 -37,19 +38,18 @@@ #include "clockdomain.h" #include "powerdomain.h" - #include #include -#include "../plat-omap/sram.h" - #include "soc.h" #include "common.h" - #include "cm2xxx_3xxx.h" + #include "cm3xxx.h" #include "cm-regbits-34xx.h" #include "gpmc.h" #include "prm-regbits-34xx.h" - - #include "prm2xxx_3xxx.h" + #include "prm3xxx.h" #include "pm.h" #include "sdrc.h" +#include "sram.h" #include "control.h" /* pm34xx errata defined in pm.h */ diff --cc arch/arm/mach-omap2/prm33xx.c index 0d8abb577669,53ec9cbaa3d3..1ac73883f891 --- a/arch/arm/mach-omap2/prm33xx.c +++ b/arch/arm/mach-omap2/prm33xx.c @@@ -19,7 -19,10 +19,8 @@@ #include #include -#include "../plat-omap/common.h" - #include "common.h" + #include "powerdomain.h" #include "prm33xx.h" #include "prm-regbits-33xx.h" diff --cc arch/arm/mach-omap2/prm_common.c index 3442227d3f0b,d2e0798a4c82..f596e1e91ffd --- a/arch/arm/mach-omap2/prm_common.c +++ b/arch/arm/mach-omap2/prm_common.c @@@ -24,10 -24,13 +24,11 @@@ #include #include - #include -#include "../plat-omap/common.h" -- #include "prm2xxx_3xxx.h" + #include "prm2xxx.h" + #include "prm3xxx.h" #include "prm44xx.h" + #include "common.h" /* * OMAP_PRCM_MAX_NR_PENDING_REG: maximum number of PRM_IRQ*_MPU regs diff --cc arch/arm/mach-omap2/sdrc2xxx.c index 20cc950db4de,26c1728e09ca..907291714643 --- a/arch/arm/mach-omap2/sdrc2xxx.c +++ b/arch/arm/mach-omap2/sdrc2xxx.c @@@ -27,10 -27,11 +27,10 @@@ #include "soc.h" #include "iomap.h" #include "common.h" - #include "prm2xxx_3xxx.h" + #include "prm2xxx.h" #include "clock.h" #include "sdrc.h" +#include "sram.h" /* Memory timing, DLL mode flags */ #define M_DDR 1 diff --cc arch/arm/mach-omap2/sleep34xx.S index 7046c3c67181,474dba7263e3..d1dedc8195ed --- a/arch/arm/mach-omap2/sleep34xx.S +++ b/arch/arm/mach-omap2/sleep34xx.S @@@ -26,12 -26,13 +26,12 @@@ #include -#include "../plat-omap/sram.h" - #include "omap34xx.h" #include "iomap.h" - #include "cm2xxx_3xxx.h" - #include "prm2xxx_3xxx.h" + #include "cm3xxx.h" + #include "prm3xxx.h" #include "sdrc.h" +#include "sram.h" #include "control.h" /*