diff options
author | Paul Walmsley <paul@pwsan.com> | 2008-09-10 12:47:36 -0400 |
---|---|---|
committer | Russell King <rmk+kernel@arm.linux.org.uk> | 2009-02-08 12:50:29 -0500 |
commit | d37f1a136783aa9c9b1a6cd832a60cb2bbd2453a (patch) | |
tree | 2a3fc465405b0f9c2729b33d74ad7768b593c823 | |
parent | 5b74c67660dbd536a4f4e8cea12d10683ad2e432 (diff) |
[ARM] OMAP2/3 clockdomains: add CM and PRM clkdms
Add clockdomains for the CM and PRM. These will ultimately replace the
"wkup_clkdm", which appears to not actually exist on the hardware.
Signed-off-by: Paul Walmsley <paul@pwsan.com>
Signed-off-by: Tony Lindgren <tony@atomide.com>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
-rw-r--r-- | arch/arm/mach-omap2/clockdomains.h | 19 | ||||
-rw-r--r-- | arch/arm/plat-omap/include/mach/powerdomain.h | 4 |
2 files changed, 21 insertions, 2 deletions
diff --git a/arch/arm/mach-omap2/clockdomains.h b/arch/arm/mach-omap2/clockdomains.h index e17c3693542c..ec5a72090993 100644 --- a/arch/arm/mach-omap2/clockdomains.h +++ b/arch/arm/mach-omap2/clockdomains.h | |||
@@ -14,6 +14,11 @@ | |||
14 | 14 | ||
15 | /* | 15 | /* |
16 | * OMAP2/3-common clockdomains | 16 | * OMAP2/3-common clockdomains |
17 | * | ||
18 | * Even though the 2420 has a single PRCM module from the | ||
19 | * interconnect's perspective, internally it does appear to have | ||
20 | * separate PRM and CM clockdomains. The usual test case is | ||
21 | * sys_clkout/sys_clkout2. | ||
17 | */ | 22 | */ |
18 | 23 | ||
19 | /* This is an implicit clockdomain - it is never defined as such in TRM */ | 24 | /* This is an implicit clockdomain - it is never defined as such in TRM */ |
@@ -23,6 +28,18 @@ static struct clockdomain wkup_clkdm = { | |||
23 | .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP24XX | CHIP_IS_OMAP3430), | 28 | .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP24XX | CHIP_IS_OMAP3430), |
24 | }; | 29 | }; |
25 | 30 | ||
31 | static struct clockdomain prm_clkdm = { | ||
32 | .name = "prm_clkdm", | ||
33 | .pwrdm = { .name = "wkup_pwrdm" }, | ||
34 | .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP24XX | CHIP_IS_OMAP3430), | ||
35 | }; | ||
36 | |||
37 | static struct clockdomain cm_clkdm = { | ||
38 | .name = "cm_clkdm", | ||
39 | .pwrdm = { .name = "core_pwrdm" }, | ||
40 | .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP24XX | CHIP_IS_OMAP3430), | ||
41 | }; | ||
42 | |||
26 | /* | 43 | /* |
27 | * 2420-only clockdomains | 44 | * 2420-only clockdomains |
28 | */ | 45 | */ |
@@ -266,6 +283,8 @@ static struct clkdm_pwrdm_autodep clkdm_pwrdm_autodeps[] = { | |||
266 | static struct clockdomain *clockdomains_omap[] = { | 283 | static struct clockdomain *clockdomains_omap[] = { |
267 | 284 | ||
268 | &wkup_clkdm, | 285 | &wkup_clkdm, |
286 | &cm_clkdm, | ||
287 | &prm_clkdm, | ||
269 | 288 | ||
270 | #ifdef CONFIG_ARCH_OMAP2420 | 289 | #ifdef CONFIG_ARCH_OMAP2420 |
271 | &mpu_2420_clkdm, | 290 | &mpu_2420_clkdm, |
diff --git a/arch/arm/plat-omap/include/mach/powerdomain.h b/arch/arm/plat-omap/include/mach/powerdomain.h index 4948cb7af5bf..69c9e675d8ee 100644 --- a/arch/arm/plat-omap/include/mach/powerdomain.h +++ b/arch/arm/plat-omap/include/mach/powerdomain.h | |||
@@ -50,9 +50,9 @@ | |||
50 | 50 | ||
51 | /* | 51 | /* |
52 | * Maximum number of clockdomains that can be associated with a powerdomain. | 52 | * Maximum number of clockdomains that can be associated with a powerdomain. |
53 | * CORE powerdomain is probably the worst case. | 53 | * CORE powerdomain on OMAP3 is the worst case |
54 | */ | 54 | */ |
55 | #define PWRDM_MAX_CLKDMS 3 | 55 | #define PWRDM_MAX_CLKDMS 4 |
56 | 56 | ||
57 | /* XXX A completely arbitrary number. What is reasonable here? */ | 57 | /* XXX A completely arbitrary number. What is reasonable here? */ |
58 | #define PWRDM_TRANSITION_BAILOUT 100000 | 58 | #define PWRDM_TRANSITION_BAILOUT 100000 |