aboutsummaryrefslogtreecommitdiffstats
path: root/arch/arm/plat-omap
diff options
context:
space:
mode:
authorPaul Walmsley <paul@pwsan.com>2008-08-19 04:08:44 -0400
committerTony Lindgren <tony@atomide.com>2008-08-19 04:08:44 -0400
commit8420bb13630032097be911a039cb64b5f62c01da (patch)
treeefd387d9fec6d82dbec44e8d296ddf7fa5ed86c1 /arch/arm/plat-omap
parentd459bfe01f523983a822de8c2d3fe0bd2f2c194e (diff)
ARM: OMAP2: Clockdomain: Connect clockdomain code to powerdomain code
Thie patch adds code to the powerdomain layer to track the clockdomains associated with each powerdomain. It also modifies the clockdomain code to register clockdomains with their corresponding powerdomain when the clockdomain is registered. Signed-off-by: Paul Walmsley <paul@pwsan.com> Signed-off-by: Tony Lindgren <tony@atomide.com>
Diffstat (limited to 'arch/arm/plat-omap')
-rw-r--r--arch/arm/plat-omap/include/mach/powerdomain.h16
1 files changed, 16 insertions, 0 deletions
diff --git a/arch/arm/plat-omap/include/mach/powerdomain.h b/arch/arm/plat-omap/include/mach/powerdomain.h
index c8f52c6f8b7e..5fa666fa9be8 100644
--- a/arch/arm/plat-omap/include/mach/powerdomain.h
+++ b/arch/arm/plat-omap/include/mach/powerdomain.h
@@ -44,9 +44,16 @@
44 */ 44 */
45#define PWRDM_MAX_MEM_BANKS 4 45#define PWRDM_MAX_MEM_BANKS 4
46 46
47/*
48 * Maximum number of clockdomains that can be associated with a powerdomain.
49 * CORE powerdomain is probably the worst case.
50 */
51#define PWRDM_MAX_CLKDMS 3
52
47/* XXX A completely arbitrary number. What is reasonable here? */ 53/* XXX A completely arbitrary number. What is reasonable here? */
48#define PWRDM_TRANSITION_BAILOUT 100000 54#define PWRDM_TRANSITION_BAILOUT 100000
49 55
56struct clockdomain;
50struct powerdomain; 57struct powerdomain;
51 58
52/* Encodes dependencies between powerdomains - statically defined */ 59/* Encodes dependencies between powerdomains - statically defined */
@@ -98,6 +105,9 @@ struct powerdomain {
98 /* Possible memory bank pwrstates when pwrdm is ON */ 105 /* Possible memory bank pwrstates when pwrdm is ON */
99 const u8 pwrsts_mem_on[PWRDM_MAX_MEM_BANKS]; 106 const u8 pwrsts_mem_on[PWRDM_MAX_MEM_BANKS];
100 107
108 /* Clockdomains in this powerdomain */
109 struct clockdomain *pwrdm_clkdms[PWRDM_MAX_CLKDMS];
110
101 struct list_head node; 111 struct list_head node;
102 112
103}; 113};
@@ -111,6 +121,12 @@ struct powerdomain *pwrdm_lookup(const char *name);
111 121
112int pwrdm_for_each(int (*fn)(struct powerdomain *pwrdm)); 122int pwrdm_for_each(int (*fn)(struct powerdomain *pwrdm));
113 123
124int pwrdm_add_clkdm(struct powerdomain *pwrdm, struct clockdomain *clkdm);
125int pwrdm_del_clkdm(struct powerdomain *pwrdm, struct clockdomain *clkdm);
126int pwrdm_for_each_clkdm(struct powerdomain *pwrdm,
127 int (*fn)(struct powerdomain *pwrdm,
128 struct clockdomain *clkdm));
129
114int pwrdm_add_wkdep(struct powerdomain *pwrdm1, struct powerdomain *pwrdm2); 130int pwrdm_add_wkdep(struct powerdomain *pwrdm1, struct powerdomain *pwrdm2);
115int pwrdm_del_wkdep(struct powerdomain *pwrdm1, struct powerdomain *pwrdm2); 131int pwrdm_del_wkdep(struct powerdomain *pwrdm1, struct powerdomain *pwrdm2);
116int pwrdm_read_wkdep(struct powerdomain *pwrdm1, struct powerdomain *pwrdm2); 132int pwrdm_read_wkdep(struct powerdomain *pwrdm1, struct powerdomain *pwrdm2);