33 #include <linux/kernel.h>
55 static struct clkdm_dep gfx_sgx_3xxx_wkdeps[] = {
56 { .clkdm_name =
"iva2_clkdm" },
57 { .clkdm_name =
"mpu_clkdm" },
58 { .clkdm_name =
"wkup_clkdm" },
62 static struct clkdm_dep gfx_sgx_am35x_wkdeps[] = {
63 { .clkdm_name =
"mpu_clkdm" },
64 { .clkdm_name =
"wkup_clkdm" },
70 { .clkdm_name =
"core_l3_clkdm" },
71 { .clkdm_name =
"core_l4_clkdm" },
72 { .clkdm_name =
"iva2_clkdm" },
73 { .clkdm_name =
"mpu_clkdm" },
74 { .clkdm_name =
"wkup_clkdm" },
78 static struct clkdm_dep per_am35x_wkdeps[] = {
79 { .clkdm_name =
"core_l3_clkdm" },
80 { .clkdm_name =
"core_l4_clkdm" },
81 { .clkdm_name =
"mpu_clkdm" },
82 { .clkdm_name =
"wkup_clkdm" },
87 static struct clkdm_dep usbhost_wkdeps[] = {
88 { .clkdm_name =
"core_l3_clkdm" },
89 { .clkdm_name =
"core_l4_clkdm" },
90 { .clkdm_name =
"iva2_clkdm" },
91 { .clkdm_name =
"mpu_clkdm" },
92 { .clkdm_name =
"wkup_clkdm" },
96 static struct clkdm_dep usbhost_am35x_wkdeps[] = {
97 { .clkdm_name =
"core_l3_clkdm" },
98 { .clkdm_name =
"core_l4_clkdm" },
99 { .clkdm_name =
"mpu_clkdm" },
100 { .clkdm_name =
"wkup_clkdm" },
105 static struct clkdm_dep mpu_3xxx_wkdeps[] = {
106 { .clkdm_name =
"core_l3_clkdm" },
107 { .clkdm_name =
"core_l4_clkdm" },
108 { .clkdm_name =
"iva2_clkdm" },
109 { .clkdm_name =
"dss_clkdm" },
110 { .clkdm_name =
"per_clkdm" },
114 static struct clkdm_dep mpu_am35x_wkdeps[] = {
115 { .clkdm_name =
"core_l3_clkdm" },
116 { .clkdm_name =
"core_l4_clkdm" },
117 { .clkdm_name =
"dss_clkdm" },
118 { .clkdm_name =
"per_clkdm" },
123 static struct clkdm_dep iva2_wkdeps[] = {
124 { .clkdm_name =
"core_l3_clkdm" },
125 { .clkdm_name =
"core_l4_clkdm" },
126 { .clkdm_name =
"mpu_clkdm" },
127 { .clkdm_name =
"wkup_clkdm" },
128 { .clkdm_name =
"dss_clkdm" },
129 { .clkdm_name =
"per_clkdm" },
135 { .clkdm_name =
"iva2_clkdm" },
136 { .clkdm_name =
"mpu_clkdm" },
137 { .clkdm_name =
"wkup_clkdm" },
143 { .clkdm_name =
"iva2_clkdm" },
144 { .clkdm_name =
"mpu_clkdm" },
145 { .clkdm_name =
"wkup_clkdm" },
149 static struct clkdm_dep dss_am35x_wkdeps[] = {
150 { .clkdm_name =
"mpu_clkdm" },
151 { .clkdm_name =
"wkup_clkdm" },
156 static struct clkdm_dep neon_wkdeps[] = {
157 { .clkdm_name =
"mpu_clkdm" },
164 static struct clkdm_dep dss_sleepdeps[] = {
165 { .clkdm_name =
"mpu_clkdm" },
166 { .clkdm_name =
"iva2_clkdm" },
170 static struct clkdm_dep dss_am35x_sleepdeps[] = {
171 { .clkdm_name =
"mpu_clkdm" },
176 static struct clkdm_dep per_sleepdeps[] = {
177 { .clkdm_name =
"mpu_clkdm" },
178 { .clkdm_name =
"iva2_clkdm" },
182 static struct clkdm_dep per_am35x_sleepdeps[] = {
183 { .clkdm_name =
"mpu_clkdm" },
188 static struct clkdm_dep usbhost_sleepdeps[] = {
189 { .clkdm_name =
"mpu_clkdm" },
190 { .clkdm_name =
"iva2_clkdm" },
194 static struct clkdm_dep usbhost_am35x_sleepdeps[] = {
195 { .clkdm_name =
"mpu_clkdm" },
200 static struct clkdm_dep cam_sleepdeps[] = {
201 { .clkdm_name =
"mpu_clkdm" },
211 static struct clkdm_dep gfx_sgx_sleepdeps[] = {
212 { .clkdm_name =
"mpu_clkdm" },
222 .pwrdm = { .name =
"mpu_pwrdm" },
225 .wkdep_srcs = mpu_3xxx_wkdeps,
231 .pwrdm = { .name =
"mpu_pwrdm" },
234 .wkdep_srcs = mpu_am35x_wkdeps,
239 .name =
"neon_clkdm",
240 .pwrdm = { .name =
"neon_pwrdm" },
242 .wkdep_srcs = neon_wkdeps,
247 .name =
"iva2_clkdm",
248 .pwrdm = { .name =
"iva2_pwrdm" },
251 .wkdep_srcs = iva2_wkdeps,
257 .pwrdm = { .name =
"gfx_pwrdm" },
259 .wkdep_srcs = gfx_sgx_3xxx_wkdeps,
260 .sleepdep_srcs = gfx_sgx_sleepdeps,
266 .pwrdm = { .name =
"sgx_pwrdm" },
268 .wkdep_srcs = gfx_sgx_3xxx_wkdeps,
269 .sleepdep_srcs = gfx_sgx_sleepdeps,
275 .pwrdm = { .name =
"sgx_pwrdm" },
277 .wkdep_srcs = gfx_sgx_am35x_wkdeps,
278 .sleepdep_srcs = gfx_sgx_sleepdeps,
291 .pwrdm = { .name =
"core_pwrdm" },
302 .name =
"core_l3_clkdm",
303 .pwrdm = { .name =
"core_pwrdm" },
315 .name =
"core_l4_clkdm",
316 .pwrdm = { .name =
"core_pwrdm" },
325 .pwrdm = { .name =
"dss_pwrdm" },
328 .wkdep_srcs = dss_wkdeps,
329 .sleepdep_srcs = dss_sleepdeps,
335 .pwrdm = { .name =
"dss_pwrdm" },
338 .wkdep_srcs = dss_am35x_wkdeps,
339 .sleepdep_srcs = dss_am35x_sleepdeps,
345 .pwrdm = { .name =
"cam_pwrdm" },
347 .wkdep_srcs = cam_wkdeps,
348 .sleepdep_srcs = cam_sleepdeps,
353 .name =
"usbhost_clkdm",
354 .pwrdm = { .name =
"usbhost_pwrdm" },
356 .wkdep_srcs = usbhost_wkdeps,
357 .sleepdep_srcs = usbhost_sleepdeps,
362 .name =
"usbhost_clkdm",
363 .pwrdm = { .name =
"core_pwrdm" },
365 .wkdep_srcs = usbhost_am35x_wkdeps,
366 .sleepdep_srcs = usbhost_am35x_sleepdeps,
372 .pwrdm = { .name =
"per_pwrdm" },
375 .wkdep_srcs = per_wkdeps,
376 .sleepdep_srcs = per_sleepdeps,
382 .pwrdm = { .name =
"per_pwrdm" },
385 .wkdep_srcs = per_am35x_wkdeps,
386 .sleepdep_srcs = per_am35x_sleepdeps,
392 .pwrdm = { .name =
"emu_pwrdm" },
399 .name =
"dpll1_clkdm",
400 .pwrdm = { .name =
"dpll1_pwrdm" },
404 .name =
"dpll2_clkdm",
405 .pwrdm = { .name =
"dpll2_pwrdm" },
409 .name =
"dpll3_clkdm",
410 .pwrdm = { .name =
"dpll3_pwrdm" },
414 .name =
"dpll4_clkdm",
415 .pwrdm = { .name =
"dpll4_pwrdm" },
419 .name =
"dpll5_clkdm",
420 .pwrdm = { .name =
"dpll5_pwrdm" },
429 .clkdm = { .name =
"mpu_clkdm" },
432 .clkdm = { .name =
"iva2_clkdm" },
435 .clkdm = { .name =
NULL },
441 .clkdm = { .name =
"mpu_clkdm" },
444 .clkdm = { .name =
NULL },
464 static struct clockdomain *clockdomains_omap3430[] __initdata = {
475 static struct clockdomain *clockdomains_omap3430es1[] __initdata = {
480 static struct clockdomain *clockdomains_omap3430es2plus[] __initdata = {
487 static struct clockdomain *clockdomains_am35x[] __initdata = {
492 &usbhost_am35x_clkdm,
517 clockdomains_omap3430es1 : clockdomains_omap3430es2plus;