diff options
author | Geert Uytterhoeven <geert+renesas@glider.be> | 2014-12-03 16:41:45 +0300 |
---|---|---|
committer | Simon Horman <horms+renesas@verge.net.au> | 2015-01-15 02:38:14 +0300 |
commit | 2173fc7cb681c38b9e5bc526211045caecf96e44 (patch) | |
tree | fcb881723f9258e8236677fc0fe2e95c3c9c7be0 /arch/arm/mach-shmobile/pm-rmobile.h | |
parent | 25717b857360760755b83b4e606d61e1fc38552f (diff) | |
download | linux-2173fc7cb681c38b9e5bc526211045caecf96e44.tar.xz |
ARM: shmobile: R-Mobile: Add DT support for PM domains
Populate the PM domains from DT, and provide support to hook up devices
to their respective PM domain.
The always-on power area (e.g. C5 on r8a7740) is created as a PM domain
without software control, to allow Run-Time management of module clocks
for hardware blocks inside this area.
Special cases like PM domains containing CPUs, the console device, or
Coresight-ETM, are handled by scanning the DT topology.
As long as the ARM debug/perf code doesn't use resource management with
runtime PM support, the power area containing Coresight-ETM (e.g. D4 on
r8a7740) must be kept powered to avoid a crash during resume from s2ram
(dbg_cpu_pm_notify() calls reset_ctrl_regs() unconditionally, causing an
undefined instruction oops).
Initialization is done from core_initcall(), as the
"renesas,intc-irqpin" driver uses postcore_initcall().
Signed-off-by: Geert Uytterhoeven <geert+renesas@glider.be>
Signed-off-by: Simon Horman <horms+renesas@verge.net.au>
Diffstat (limited to 'arch/arm/mach-shmobile/pm-rmobile.h')
-rw-r--r-- | arch/arm/mach-shmobile/pm-rmobile.h | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/arch/arm/mach-shmobile/pm-rmobile.h b/arch/arm/mach-shmobile/pm-rmobile.h index 0602130bb260..53219786f539 100644 --- a/arch/arm/mach-shmobile/pm-rmobile.h +++ b/arch/arm/mach-shmobile/pm-rmobile.h @@ -37,7 +37,7 @@ struct pm_domain_device { struct platform_device *pdev; }; -#ifdef CONFIG_PM_RMOBILE +#if defined(CONFIG_PM_RMOBILE) && defined(CONFIG_ARCH_SHMOBILE_LEGACY) extern void rmobile_init_domains(struct rmobile_pm_domain domains[], int num); extern void rmobile_add_device_to_domain_td(const char *domain_name, struct platform_device *pdev, |