[PATCH V2 05/12] ARM: ux500: Create APE generic power domain
Rickard Andersson
rickard.andersson at stericsson.com
Thu Mar 28 12:11:31 EDT 2013
The APE generic power domain is created and
initiated. This power domain is turned off in
the sleep states ApSleep and ApDeepSleep
Signed-off-by: Rickard Andersson <rickard.andersson at stericsson.com>
---
arch/arm/mach-ux500/Kconfig | 1 +
arch/arm/mach-ux500/board-mop500.c | 17 ++++++++++++++++-
2 files changed, 17 insertions(+), 1 deletion(-)
diff --git a/arch/arm/mach-ux500/Kconfig b/arch/arm/mach-ux500/Kconfig
index 5dea906..b2e5c8b 100644
--- a/arch/arm/mach-ux500/Kconfig
+++ b/arch/arm/mach-ux500/Kconfig
@@ -12,6 +12,7 @@ config UX500_SOC_COMMON
select PINCTRL
select PINCTRL_NOMADIK
select PL310_ERRATA_753970 if CACHE_PL310
+ select PM_GENERIC_DOMAINS if PM
config UX500_SOC_DB8500
bool
diff --git a/arch/arm/mach-ux500/board-mop500.c b/arch/arm/mach-ux500/board-mop500.c
index d453522..77d3d1a 100644
--- a/arch/arm/mach-ux500/board-mop500.c
+++ b/arch/arm/mach-ux500/board-mop500.c
@@ -37,7 +37,7 @@
#include <linux/pinctrl/consumer.h>
#include <linux/platform_data/pinctrl-nomadik.h>
#include <linux/platform_data/dma-ste-dma40.h>
-
+#include <linux/pm_domain.h>
#include <asm/mach-types.h>
#include <asm/mach/arch.h>
#include <asm/hardware/gic.h>
@@ -645,6 +645,15 @@ static struct platform_device *snowball_platform_devs[] __initdata = {
&u8500_cpufreq_cooling_device,
};
+struct generic_pm_domain ape_domain = {
+ .name = "APE",
+};
+
+static void __init init_pm_domains(void)
+{
+ pm_genpd_init(&ape_domain, NULL, false);
+}
+
static void __init mop500_init_machine(void)
{
struct device *parent = NULL;
@@ -668,6 +677,8 @@ static void __init mop500_init_machine(void)
mop500_audio_init(parent);
mop500_uart_init(parent);
+ init_pm_domains();
+
u8500_cryp1_hash1_init(parent);
i2c0_devs = ARRAY_SIZE(mop500_i2c0_devices);
@@ -700,6 +711,8 @@ static void __init snowball_init_machine(void)
mop500_audio_init(parent);
mop500_uart_init(parent);
+ init_pm_domains();
+
/* This board has full regulator constraints */
regulator_has_full_constraints();
}
@@ -732,6 +745,8 @@ static void __init hrefv60_init_machine(void)
mop500_audio_init(parent);
mop500_uart_init(parent);
+ init_pm_domains();
+
i2c0_devs = ARRAY_SIZE(mop500_i2c0_devices);
i2c0_devs -= NUM_PRE_V60_I2C0_DEVICES;
--
1.8.2
More information about the linux-arm-kernel
mailing list