diff --git a/arch/arm/mach-omap2/Makefile b/arch/arm/mach-omap2/Makefile index 4a8ea79a2b0c28fbb1b1d61066b0e0676b5f5461..00c27ebf709dccd1cc4b303e63209e9bb540879e 100644 --- a/arch/arm/mach-omap2/Makefile +++ b/arch/arm/mach-omap2/Makefile @@ -9,14 +9,13 @@ obj-y := id.o io.o control.o mux.o devices.o serial.o gpmc.o timer-gp.o pm.o \ omap-2-3-common = irq.o sdrc.o prm2xxx_3xxx.o hwmod-common = omap_hwmod.o \ omap_hwmod_common_data.o -prcm-common = prcm.o powerdomain.o clock-common = clock.o clock_common_data.o \ clockdomain.o clkt_dpll.o \ clkt_clksel.o -obj-$(CONFIG_ARCH_OMAP2) += $(omap-2-3-common) $(prcm-common) $(hwmod-common) -obj-$(CONFIG_ARCH_OMAP3) += $(omap-2-3-common) $(prcm-common) $(hwmod-common) -obj-$(CONFIG_ARCH_OMAP4) += $(prcm-common) prm44xx.o $(hwmod-common) +obj-$(CONFIG_ARCH_OMAP2) += $(omap-2-3-common) $(hwmod-common) +obj-$(CONFIG_ARCH_OMAP3) += $(omap-2-3-common) $(hwmod-common) +obj-$(CONFIG_ARCH_OMAP4) += prm44xx.o $(hwmod-common) obj-$(CONFIG_OMAP_MCBSP) += mcbsp.o @@ -74,9 +73,13 @@ endif endif # PRCM -obj-$(CONFIG_ARCH_OMAP2) += cm.o -obj-$(CONFIG_ARCH_OMAP3) += cm.o -obj-$(CONFIG_ARCH_OMAP4) += cm4xxx.o +obj-$(CONFIG_ARCH_OMAP2) += prcm.o cm.o +obj-$(CONFIG_ARCH_OMAP3) += prcm.o cm.o +obj-$(CONFIG_ARCH_OMAP4) += prcm.o cm4xxx.o + +# OMAP powerdomain framework +powerdomain-common += powerdomain.o powerdomains_data.o +obj-y += $(powerdomain-common) # Clock framework obj-$(CONFIG_ARCH_OMAP2) += $(clock-common) clock2xxx.o \ diff --git a/arch/arm/mach-omap2/clockdomains.h b/arch/arm/mach-omap2/clockdomains.h index 8fc19ff2cd89fba645c07a6311e570d20dbc5945..2a3b10a356d05196938323a675abf385fdba48d6 100644 --- a/arch/arm/mach-omap2/clockdomains.h +++ b/arch/arm/mach-omap2/clockdomains.h @@ -38,6 +38,11 @@ #include #include "cm.h" #include "prm.h" +#include "cm-regbits-24xx.h" +#include "cm-regbits-34xx.h" +#include "cm-regbits-44xx.h" +#include "prm-regbits-24xx.h" +#include "prm-regbits-34xx.h" /* * Clockdomain dependencies for wkdeps/sleepdeps diff --git a/arch/arm/mach-omap2/io.c b/arch/arm/mach-omap2/io.c index d87e23a24dcdcfbc5703a6fc91b8e2d6068dba0c..80a8e0e4d0383795bbd3aa3049e8b112a0cf6a35 100644 --- a/arch/arm/mach-omap2/io.c +++ b/arch/arm/mach-omap2/io.c @@ -40,7 +40,6 @@ #include #include -#include "powerdomains.h" #include #include "clockdomains.h" @@ -340,7 +339,7 @@ void __init omap2_init_common_infrastructure(void) { u8 postsetup_state; - pwrdm_init(powerdomains_omap); + pwrdm_fw_init(); clkdm_init(clockdomains_omap, clkdm_autodeps); if (cpu_is_omap242x()) omap2420_hwmod_init(); diff --git a/arch/arm/mach-omap2/powerdomains.h b/arch/arm/mach-omap2/powerdomains_data.c similarity index 97% rename from arch/arm/mach-omap2/powerdomains.h rename to arch/arm/mach-omap2/powerdomains_data.c index 105cbcaefd3b687d4c38ffc6044452ff17b5e92c..475763e42f351deb3e2fab7c9432c75bc75be610 100644 --- a/arch/arm/mach-omap2/powerdomains.h +++ b/arch/arm/mach-omap2/powerdomains_data.c @@ -18,9 +18,6 @@ * Clock Domain Framework */ -#ifndef ARCH_ARM_MACH_OMAP2_POWERDOMAINS -#define ARCH_ARM_MACH_OMAP2_POWERDOMAINS - /* * This file contains all of the powerdomains that have some element * of software control for the OMAP24xx and OMAP34xx chips. @@ -49,6 +46,7 @@ * address offset is different between the C55 and C64 DSPs. */ +#include #include #include "prcm-common.h" @@ -149,5 +147,7 @@ static struct powerdomain *powerdomains_omap[] __initdata = { NULL }; - -#endif +void pwrdm_fw_init(void) +{ + pwrdm_init(powerdomains_omap); +} diff --git a/arch/arm/plat-omap/include/plat/powerdomain.h b/arch/arm/plat-omap/include/plat/powerdomain.h index 9ca420dcd2f86da87c0979e6b596b74d6a9b259b..e322b39f3a3f8f81c59fe0c3f517c151fd82b8f7 100644 --- a/arch/arm/plat-omap/include/plat/powerdomain.h +++ b/arch/arm/plat-omap/include/plat/powerdomain.h @@ -118,6 +118,7 @@ struct powerdomain { }; +void pwrdm_fw_init(void); void pwrdm_init(struct powerdomain **pwrdm_list); struct powerdomain *pwrdm_lookup(const char *name);