From: Tony Lindgren Date: Fri, 30 Nov 2012 16:40:31 +0000 (-0800) Subject: Merge tag 'tags/omap-for-v3.8/devel-prcm-signed' into omap-for-v3.8/cleanup-headers... X-Git-Tag: firefly_0821_release~3680^2~1477^2^2^2~3 X-Git-Url: http://demsky.eecs.uci.edu/git/?a=commitdiff_plain;h=2589d056122f6dcb405d411eae872aac8cf9da1b;p=firefly-linux-kernel-4.4.55.git Merge tag 'tags/omap-for-v3.8/devel-prcm-signed' into omap-for-v3.8/cleanup-headers-prepare-multiplatform-v3 omap prcm changes via Paul Walmsley : Some miscellaneous OMAP hwmod changes for 3.8, along with a PRM change needed for one of the hwmod patches to function. Basic test logs for this branch on top of Tony's omap-for-v3.8/clock branch at commit 558a0780b0a04862a678f7823215424b4e5501f9 are here: http://www.pwsan.com/omap/testlogs/hwmod_devel_a_3.8/20121121161522/ However, omap-for-v3.8/clock at 558a0780 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_hwmod_devel_a_3.8/20121121162719/ which indicate that the series tests cleanly. Conflicts: arch/arm/mach-omap2/cm33xx.c arch/arm/mach-omap2/io.c arch/arm/mach-omap2/prm_common.c --- 2589d056122f6dcb405d411eae872aac8cf9da1b diff --cc arch/arm/mach-omap2/Makefile index ada6006ab2f3,798f35b8ea59..745401020c2b --- 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 @@@ -63,14 -73,12 +73,14 @@@ obj-$(CONFIG_ARCH_OMAP4) += opp4xxx_da endif # Power Management +obj-$(CONFIG_OMAP_PM_NOOP) += omap-pm-noop.o + 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_POWER_AVS_OMAP) += sr_device.o diff --cc arch/arm/mach-omap2/clkt2xxx_dpllcore.c index 0d2f14c2dcce,a0ae3c09f97a..d8620105c42a --- 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,7af224208a25..ae2b35e76dc8 --- 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,007dc4d85d54..7c39238322e0 --- a/arch/arm/mach-omap2/io.c +++ b/arch/arm/mach-omap2/io.c @@@ -40,8 -42,18 +40,19 @@@ #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" + #include "prm2xxx.h" + #include "prm3xxx.h" + #include "prm44xx.h" /* * The machine specific code may provide the extra mapping besides the @@@ -371,8 -388,17 +382,16 @@@ 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_prm_init(); + omap2xxx_cm_init(); - omap_common_init_early(); omap2xxx_voltagedomains_init(); omap242x_powerdomains_init(); omap242x_clockdomains_init(); @@@ -392,8 -419,17 +412,16 @@@ 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_prm_init(); + omap2xxx_cm_init(); - omap_common_init_early(); omap2xxx_voltagedomains_init(); omap243x_powerdomains_init(); omap243x_clockdomains_init(); @@@ -417,9 -454,18 +446,17 @@@ 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_prm_init(); + omap3xxx_cm_init(); - omap_common_init_early(); omap3xxx_voltagedomains_init(); omap3xxx_powerdomains_init(); omap3xxx_clockdomains_init(); @@@ -450,9 -496,15 +487,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 -565,15 +555,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 -586,20 +575,19 @@@ #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(); + omap44xx_prm_init(); - omap_common_init_early(); omap44xx_voltagedomains_init(); omap44xx_powerdomains_init(); omap44xx_clockdomains_init(); @@@ -544,8 -620,18 +608,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,3d35bd64487c..c289b3333c99 --- 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,a9b8da1629bf..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,c6ae53ca8224..228b850e632f --- 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" /*