Merge tag 'ktest-v5.11' of git://git.kernel.org/pub/scm/linux/kernel/git/rostedt...
[linux-2.6-microblaze.git] / arch / arm / mach-omap2 / clockdomains7xx_data.c
1 // SPDX-License-Identifier: GPL-2.0-only
2 /*
3  * DRA7xx Clock domains framework
4  *
5  * Copyright (C) 2009-2013 Texas Instruments, Inc.
6  * Copyright (C) 2009-2011 Nokia Corporation
7  *
8  * Generated by code originally written by:
9  * Abhijit Pagare (abhijitpagare@ti.com)
10  * Benoit Cousson (b-cousson@ti.com)
11  * Paul Walmsley (paul@pwsan.com)
12  *
13  * This file is automatically generated from the OMAP hardware databases.
14  * We respectfully ask that any modifications to this file be coordinated
15  * with the public linux-omap@vger.kernel.org mailing list and the
16  * authors above to ensure that the autogeneration scripts are kept
17  * up-to-date with the file contents.
18  */
19
20 #include <linux/kernel.h>
21 #include <linux/io.h>
22
23 #include "clockdomain.h"
24 #include "cm1_7xx.h"
25 #include "cm2_7xx.h"
26
27 #include "cm-regbits-7xx.h"
28 #include "prm7xx.h"
29 #include "prcm44xx.h"
30 #include "prcm_mpu7xx.h"
31
32 /* Static Dependencies for DRA7xx Clock Domains */
33
34 static struct clkdm_dep cam_wkup_sleep_deps[] = {
35         { .clkdm_name = "emif_clkdm" },
36         { NULL },
37 };
38
39 static struct clkdm_dep dma_wkup_sleep_deps[] = {
40         { .clkdm_name = "dss_clkdm" },
41         { .clkdm_name = "emif_clkdm" },
42         { .clkdm_name = "ipu_clkdm" },
43         { .clkdm_name = "ipu1_clkdm" },
44         { .clkdm_name = "ipu2_clkdm" },
45         { .clkdm_name = "iva_clkdm" },
46         { .clkdm_name = "l3init_clkdm" },
47         { .clkdm_name = "l4cfg_clkdm" },
48         { .clkdm_name = "l4per_clkdm" },
49         { .clkdm_name = "l4per2_clkdm" },
50         { .clkdm_name = "l4per3_clkdm" },
51         { .clkdm_name = "l4sec_clkdm" },
52         { .clkdm_name = "pcie_clkdm" },
53         { .clkdm_name = "wkupaon_clkdm" },
54         { NULL },
55 };
56
57 static struct clkdm_dep dsp1_wkup_sleep_deps[] = {
58         { .clkdm_name = "atl_clkdm" },
59         { .clkdm_name = "cam_clkdm" },
60         { .clkdm_name = "dsp2_clkdm" },
61         { .clkdm_name = "dss_clkdm" },
62         { .clkdm_name = "emif_clkdm" },
63         { .clkdm_name = "eve1_clkdm" },
64         { .clkdm_name = "eve2_clkdm" },
65         { .clkdm_name = "eve3_clkdm" },
66         { .clkdm_name = "eve4_clkdm" },
67         { .clkdm_name = "gmac_clkdm" },
68         { .clkdm_name = "gpu_clkdm" },
69         { .clkdm_name = "ipu_clkdm" },
70         { .clkdm_name = "ipu1_clkdm" },
71         { .clkdm_name = "ipu2_clkdm" },
72         { .clkdm_name = "iva_clkdm" },
73         { .clkdm_name = "l3init_clkdm" },
74         { .clkdm_name = "l4per_clkdm" },
75         { .clkdm_name = "l4per2_clkdm" },
76         { .clkdm_name = "l4per3_clkdm" },
77         { .clkdm_name = "l4sec_clkdm" },
78         { .clkdm_name = "pcie_clkdm" },
79         { .clkdm_name = "vpe_clkdm" },
80         { .clkdm_name = "wkupaon_clkdm" },
81         { NULL },
82 };
83
84 static struct clkdm_dep dsp2_wkup_sleep_deps[] = {
85         { .clkdm_name = "atl_clkdm" },
86         { .clkdm_name = "cam_clkdm" },
87         { .clkdm_name = "dsp1_clkdm" },
88         { .clkdm_name = "dss_clkdm" },
89         { .clkdm_name = "emif_clkdm" },
90         { .clkdm_name = "eve1_clkdm" },
91         { .clkdm_name = "eve2_clkdm" },
92         { .clkdm_name = "eve3_clkdm" },
93         { .clkdm_name = "eve4_clkdm" },
94         { .clkdm_name = "gmac_clkdm" },
95         { .clkdm_name = "gpu_clkdm" },
96         { .clkdm_name = "ipu_clkdm" },
97         { .clkdm_name = "ipu1_clkdm" },
98         { .clkdm_name = "ipu2_clkdm" },
99         { .clkdm_name = "iva_clkdm" },
100         { .clkdm_name = "l3init_clkdm" },
101         { .clkdm_name = "l4per_clkdm" },
102         { .clkdm_name = "l4per2_clkdm" },
103         { .clkdm_name = "l4per3_clkdm" },
104         { .clkdm_name = "l4sec_clkdm" },
105         { .clkdm_name = "pcie_clkdm" },
106         { .clkdm_name = "vpe_clkdm" },
107         { .clkdm_name = "wkupaon_clkdm" },
108         { NULL },
109 };
110
111 static struct clkdm_dep dss_wkup_sleep_deps[] = {
112         { .clkdm_name = "emif_clkdm" },
113         { .clkdm_name = "iva_clkdm" },
114         { NULL },
115 };
116
117 static struct clkdm_dep eve1_wkup_sleep_deps[] = {
118         { .clkdm_name = "emif_clkdm" },
119         { .clkdm_name = "eve2_clkdm" },
120         { .clkdm_name = "eve3_clkdm" },
121         { .clkdm_name = "eve4_clkdm" },
122         { .clkdm_name = "iva_clkdm" },
123         { NULL },
124 };
125
126 static struct clkdm_dep eve2_wkup_sleep_deps[] = {
127         { .clkdm_name = "emif_clkdm" },
128         { .clkdm_name = "eve1_clkdm" },
129         { .clkdm_name = "eve3_clkdm" },
130         { .clkdm_name = "eve4_clkdm" },
131         { .clkdm_name = "iva_clkdm" },
132         { NULL },
133 };
134
135 static struct clkdm_dep eve3_wkup_sleep_deps[] = {
136         { .clkdm_name = "emif_clkdm" },
137         { .clkdm_name = "eve1_clkdm" },
138         { .clkdm_name = "eve2_clkdm" },
139         { .clkdm_name = "eve4_clkdm" },
140         { .clkdm_name = "iva_clkdm" },
141         { NULL },
142 };
143
144 static struct clkdm_dep eve4_wkup_sleep_deps[] = {
145         { .clkdm_name = "emif_clkdm" },
146         { .clkdm_name = "eve1_clkdm" },
147         { .clkdm_name = "eve2_clkdm" },
148         { .clkdm_name = "eve3_clkdm" },
149         { .clkdm_name = "iva_clkdm" },
150         { NULL },
151 };
152
153 static struct clkdm_dep gmac_wkup_sleep_deps[] = {
154         { .clkdm_name = "emif_clkdm" },
155         { .clkdm_name = "l4per2_clkdm" },
156         { NULL },
157 };
158
159 static struct clkdm_dep gpu_wkup_sleep_deps[] = {
160         { .clkdm_name = "emif_clkdm" },
161         { .clkdm_name = "iva_clkdm" },
162         { NULL },
163 };
164
165 static struct clkdm_dep ipu1_wkup_sleep_deps[] = {
166         { .clkdm_name = "atl_clkdm" },
167         { .clkdm_name = "dsp1_clkdm" },
168         { .clkdm_name = "dsp2_clkdm" },
169         { .clkdm_name = "dss_clkdm" },
170         { .clkdm_name = "emif_clkdm" },
171         { .clkdm_name = "eve1_clkdm" },
172         { .clkdm_name = "eve2_clkdm" },
173         { .clkdm_name = "eve3_clkdm" },
174         { .clkdm_name = "eve4_clkdm" },
175         { .clkdm_name = "gmac_clkdm" },
176         { .clkdm_name = "gpu_clkdm" },
177         { .clkdm_name = "ipu_clkdm" },
178         { .clkdm_name = "ipu2_clkdm" },
179         { .clkdm_name = "iva_clkdm" },
180         { .clkdm_name = "l3init_clkdm" },
181         { .clkdm_name = "l3main1_clkdm" },
182         { .clkdm_name = "l4cfg_clkdm" },
183         { .clkdm_name = "l4per_clkdm" },
184         { .clkdm_name = "l4per2_clkdm" },
185         { .clkdm_name = "l4per3_clkdm" },
186         { .clkdm_name = "l4sec_clkdm" },
187         { .clkdm_name = "pcie_clkdm" },
188         { .clkdm_name = "vpe_clkdm" },
189         { .clkdm_name = "wkupaon_clkdm" },
190         { NULL },
191 };
192
193 static struct clkdm_dep ipu2_wkup_sleep_deps[] = {
194         { .clkdm_name = "atl_clkdm" },
195         { .clkdm_name = "dsp1_clkdm" },
196         { .clkdm_name = "dsp2_clkdm" },
197         { .clkdm_name = "dss_clkdm" },
198         { .clkdm_name = "emif_clkdm" },
199         { .clkdm_name = "eve1_clkdm" },
200         { .clkdm_name = "eve2_clkdm" },
201         { .clkdm_name = "eve3_clkdm" },
202         { .clkdm_name = "eve4_clkdm" },
203         { .clkdm_name = "gmac_clkdm" },
204         { .clkdm_name = "gpu_clkdm" },
205         { .clkdm_name = "ipu_clkdm" },
206         { .clkdm_name = "ipu1_clkdm" },
207         { .clkdm_name = "iva_clkdm" },
208         { .clkdm_name = "l3init_clkdm" },
209         { .clkdm_name = "l3main1_clkdm" },
210         { .clkdm_name = "l4cfg_clkdm" },
211         { .clkdm_name = "l4per_clkdm" },
212         { .clkdm_name = "l4per2_clkdm" },
213         { .clkdm_name = "l4per3_clkdm" },
214         { .clkdm_name = "l4sec_clkdm" },
215         { .clkdm_name = "pcie_clkdm" },
216         { .clkdm_name = "vpe_clkdm" },
217         { .clkdm_name = "wkupaon_clkdm" },
218         { NULL },
219 };
220
221 static struct clkdm_dep iva_wkup_sleep_deps[] = {
222         { .clkdm_name = "emif_clkdm" },
223         { NULL },
224 };
225
226 static struct clkdm_dep l3init_wkup_sleep_deps[] = {
227         { .clkdm_name = "emif_clkdm" },
228         { .clkdm_name = "iva_clkdm" },
229         { .clkdm_name = "l4cfg_clkdm" },
230         { .clkdm_name = "l4per_clkdm" },
231         { .clkdm_name = "l4per3_clkdm" },
232         { .clkdm_name = "l4sec_clkdm" },
233         { .clkdm_name = "wkupaon_clkdm" },
234         { NULL },
235 };
236
237 static struct clkdm_dep l4per2_wkup_sleep_deps[] = {
238         { .clkdm_name = "dsp1_clkdm" },
239         { .clkdm_name = "dsp2_clkdm" },
240         { .clkdm_name = "ipu1_clkdm" },
241         { .clkdm_name = "ipu2_clkdm" },
242         { NULL },
243 };
244
245 static struct clkdm_dep l4sec_wkup_sleep_deps[] = {
246         { .clkdm_name = "emif_clkdm" },
247         { .clkdm_name = "l4per_clkdm" },
248         { NULL },
249 };
250
251 static struct clkdm_dep mpu_wkup_sleep_deps[] = {
252         { .clkdm_name = "cam_clkdm" },
253         { .clkdm_name = "dsp1_clkdm" },
254         { .clkdm_name = "dsp2_clkdm" },
255         { .clkdm_name = "dss_clkdm" },
256         { .clkdm_name = "emif_clkdm" },
257         { .clkdm_name = "eve1_clkdm" },
258         { .clkdm_name = "eve2_clkdm" },
259         { .clkdm_name = "eve3_clkdm" },
260         { .clkdm_name = "eve4_clkdm" },
261         { .clkdm_name = "gmac_clkdm" },
262         { .clkdm_name = "gpu_clkdm" },
263         { .clkdm_name = "ipu_clkdm" },
264         { .clkdm_name = "ipu1_clkdm" },
265         { .clkdm_name = "ipu2_clkdm" },
266         { .clkdm_name = "iva_clkdm" },
267         { .clkdm_name = "l3init_clkdm" },
268         { .clkdm_name = "l3main1_clkdm" },
269         { .clkdm_name = "l4cfg_clkdm" },
270         { .clkdm_name = "l4per_clkdm" },
271         { .clkdm_name = "l4per2_clkdm" },
272         { .clkdm_name = "l4per3_clkdm" },
273         { .clkdm_name = "l4sec_clkdm" },
274         { .clkdm_name = "pcie_clkdm" },
275         { .clkdm_name = "vpe_clkdm" },
276         { .clkdm_name = "wkupaon_clkdm" },
277         { NULL },
278 };
279
280 static struct clkdm_dep pcie_wkup_sleep_deps[] = {
281         { .clkdm_name = "atl_clkdm" },
282         { .clkdm_name = "cam_clkdm" },
283         { .clkdm_name = "dsp1_clkdm" },
284         { .clkdm_name = "dsp2_clkdm" },
285         { .clkdm_name = "dss_clkdm" },
286         { .clkdm_name = "emif_clkdm" },
287         { .clkdm_name = "eve1_clkdm" },
288         { .clkdm_name = "eve2_clkdm" },
289         { .clkdm_name = "eve3_clkdm" },
290         { .clkdm_name = "eve4_clkdm" },
291         { .clkdm_name = "gmac_clkdm" },
292         { .clkdm_name = "gpu_clkdm" },
293         { .clkdm_name = "ipu_clkdm" },
294         { .clkdm_name = "ipu1_clkdm" },
295         { .clkdm_name = "iva_clkdm" },
296         { .clkdm_name = "l3init_clkdm" },
297         { .clkdm_name = "l4cfg_clkdm" },
298         { .clkdm_name = "l4per_clkdm" },
299         { .clkdm_name = "l4per2_clkdm" },
300         { .clkdm_name = "l4per3_clkdm" },
301         { .clkdm_name = "l4sec_clkdm" },
302         { .clkdm_name = "vpe_clkdm" },
303         { NULL },
304 };
305
306 static struct clkdm_dep vpe_wkup_sleep_deps[] = {
307         { .clkdm_name = "emif_clkdm" },
308         { .clkdm_name = "l4per3_clkdm" },
309         { NULL },
310 };
311
312 static struct clockdomain l4per3_7xx_clkdm = {
313         .name             = "l4per3_clkdm",
314         .pwrdm            = { .name = "l4per_pwrdm" },
315         .prcm_partition   = DRA7XX_CM_CORE_PARTITION,
316         .cm_inst          = DRA7XX_CM_CORE_L4PER_INST,
317         .clkdm_offs       = DRA7XX_CM_CORE_L4PER_L4PER3_CDOFFS,
318         .dep_bit          = DRA7XX_L4PER3_STATDEP_SHIFT,
319         .flags            = CLKDM_CAN_HWSUP_SWSUP,
320 };
321
322 static struct clockdomain l4per2_7xx_clkdm = {
323         .name             = "l4per2_clkdm",
324         .pwrdm            = { .name = "l4per_pwrdm" },
325         .prcm_partition   = DRA7XX_CM_CORE_PARTITION,
326         .cm_inst          = DRA7XX_CM_CORE_L4PER_INST,
327         .clkdm_offs       = DRA7XX_CM_CORE_L4PER_L4PER2_CDOFFS,
328         .dep_bit          = DRA7XX_L4PER2_STATDEP_SHIFT,
329         .wkdep_srcs       = l4per2_wkup_sleep_deps,
330         .sleepdep_srcs    = l4per2_wkup_sleep_deps,
331         .flags            = CLKDM_CAN_SWSUP,
332 };
333
334 static struct clockdomain mpu0_7xx_clkdm = {
335         .name             = "mpu0_clkdm",
336         .pwrdm            = { .name = "cpu0_pwrdm" },
337         .prcm_partition   = DRA7XX_MPU_PRCM_PARTITION,
338         .cm_inst          = DRA7XX_MPU_PRCM_CM_C0_INST,
339         .clkdm_offs       = DRA7XX_MPU_PRCM_CM_C0_CPU0_CDOFFS,
340         .flags            = CLKDM_CAN_FORCE_WAKEUP | CLKDM_CAN_HWSUP,
341 };
342
343 static struct clockdomain iva_7xx_clkdm = {
344         .name             = "iva_clkdm",
345         .pwrdm            = { .name = "iva_pwrdm" },
346         .prcm_partition   = DRA7XX_CM_CORE_PARTITION,
347         .cm_inst          = DRA7XX_CM_CORE_IVA_INST,
348         .clkdm_offs       = DRA7XX_CM_CORE_IVA_IVA_CDOFFS,
349         .dep_bit          = DRA7XX_IVA_STATDEP_SHIFT,
350         .wkdep_srcs       = iva_wkup_sleep_deps,
351         .sleepdep_srcs    = iva_wkup_sleep_deps,
352         .flags            = CLKDM_CAN_HWSUP_SWSUP,
353 };
354
355 static struct clockdomain coreaon_7xx_clkdm = {
356         .name             = "coreaon_clkdm",
357         .pwrdm            = { .name = "coreaon_pwrdm" },
358         .prcm_partition   = DRA7XX_CM_CORE_PARTITION,
359         .cm_inst          = DRA7XX_CM_CORE_COREAON_INST,
360         .clkdm_offs       = DRA7XX_CM_CORE_COREAON_COREAON_CDOFFS,
361         .flags            = CLKDM_CAN_FORCE_WAKEUP | CLKDM_CAN_HWSUP,
362 };
363
364 static struct clockdomain ipu1_7xx_clkdm = {
365         .name             = "ipu1_clkdm",
366         .pwrdm            = { .name = "ipu_pwrdm" },
367         .prcm_partition   = DRA7XX_CM_CORE_AON_PARTITION,
368         .cm_inst          = DRA7XX_CM_CORE_AON_IPU_INST,
369         .clkdm_offs       = DRA7XX_CM_CORE_AON_IPU_IPU1_CDOFFS,
370         .dep_bit          = DRA7XX_IPU1_STATDEP_SHIFT,
371         .wkdep_srcs       = ipu1_wkup_sleep_deps,
372         .sleepdep_srcs    = ipu1_wkup_sleep_deps,
373         .flags            = CLKDM_CAN_HWSUP_SWSUP,
374 };
375
376 static struct clockdomain ipu2_7xx_clkdm = {
377         .name             = "ipu2_clkdm",
378         .pwrdm            = { .name = "core_pwrdm" },
379         .prcm_partition   = DRA7XX_CM_CORE_PARTITION,
380         .cm_inst          = DRA7XX_CM_CORE_CORE_INST,
381         .clkdm_offs       = DRA7XX_CM_CORE_CORE_IPU2_CDOFFS,
382         .dep_bit          = DRA7XX_IPU2_STATDEP_SHIFT,
383         .wkdep_srcs       = ipu2_wkup_sleep_deps,
384         .sleepdep_srcs    = ipu2_wkup_sleep_deps,
385         .flags            = CLKDM_CAN_HWSUP_SWSUP,
386 };
387
388 static struct clockdomain l3init_7xx_clkdm = {
389         .name             = "l3init_clkdm",
390         .pwrdm            = { .name = "l3init_pwrdm" },
391         .prcm_partition   = DRA7XX_CM_CORE_PARTITION,
392         .cm_inst          = DRA7XX_CM_CORE_L3INIT_INST,
393         .clkdm_offs       = DRA7XX_CM_CORE_L3INIT_L3INIT_CDOFFS,
394         .dep_bit          = DRA7XX_L3INIT_STATDEP_SHIFT,
395         .wkdep_srcs       = l3init_wkup_sleep_deps,
396         .sleepdep_srcs    = l3init_wkup_sleep_deps,
397         .flags            = CLKDM_CAN_HWSUP_SWSUP,
398 };
399
400 static struct clockdomain l4sec_7xx_clkdm = {
401         .name             = "l4sec_clkdm",
402         .pwrdm            = { .name = "l4per_pwrdm" },
403         .prcm_partition   = DRA7XX_CM_CORE_PARTITION,
404         .cm_inst          = DRA7XX_CM_CORE_L4PER_INST,
405         .clkdm_offs       = DRA7XX_CM_CORE_L4PER_L4SEC_CDOFFS,
406         .dep_bit          = DRA7XX_L4SEC_STATDEP_SHIFT,
407         .wkdep_srcs       = l4sec_wkup_sleep_deps,
408         .sleepdep_srcs    = l4sec_wkup_sleep_deps,
409         .flags            = CLKDM_CAN_SWSUP,
410 };
411
412 static struct clockdomain l3main1_7xx_clkdm = {
413         .name             = "l3main1_clkdm",
414         .pwrdm            = { .name = "core_pwrdm" },
415         .prcm_partition   = DRA7XX_CM_CORE_PARTITION,
416         .cm_inst          = DRA7XX_CM_CORE_CORE_INST,
417         .clkdm_offs       = DRA7XX_CM_CORE_CORE_L3MAIN1_CDOFFS,
418         .dep_bit          = DRA7XX_L3MAIN1_STATDEP_SHIFT,
419         .flags            = CLKDM_CAN_HWSUP,
420 };
421
422 static struct clockdomain vpe_7xx_clkdm = {
423         .name             = "vpe_clkdm",
424         .pwrdm            = { .name = "vpe_pwrdm" },
425         .prcm_partition   = DRA7XX_CM_CORE_AON_PARTITION,
426         .cm_inst          = DRA7XX_CM_CORE_AON_VPE_INST,
427         .clkdm_offs       = DRA7XX_CM_CORE_AON_VPE_VPE_CDOFFS,
428         .dep_bit          = DRA7XX_VPE_STATDEP_SHIFT,
429         .wkdep_srcs       = vpe_wkup_sleep_deps,
430         .sleepdep_srcs    = vpe_wkup_sleep_deps,
431         .flags            = CLKDM_CAN_HWSUP_SWSUP,
432 };
433
434 static struct clockdomain mpu_7xx_clkdm = {
435         .name             = "mpu_clkdm",
436         .pwrdm            = { .name = "mpu_pwrdm" },
437         .prcm_partition   = DRA7XX_CM_CORE_AON_PARTITION,
438         .cm_inst          = DRA7XX_CM_CORE_AON_MPU_INST,
439         .clkdm_offs       = DRA7XX_CM_CORE_AON_MPU_MPU_CDOFFS,
440         .wkdep_srcs       = mpu_wkup_sleep_deps,
441         .sleepdep_srcs    = mpu_wkup_sleep_deps,
442         .flags            = CLKDM_CAN_FORCE_WAKEUP | CLKDM_CAN_HWSUP,
443 };
444
445 static struct clockdomain custefuse_7xx_clkdm = {
446         .name             = "custefuse_clkdm",
447         .pwrdm            = { .name = "custefuse_pwrdm" },
448         .prcm_partition   = DRA7XX_CM_CORE_PARTITION,
449         .cm_inst          = DRA7XX_CM_CORE_CUSTEFUSE_INST,
450         .clkdm_offs       = DRA7XX_CM_CORE_CUSTEFUSE_CUSTEFUSE_CDOFFS,
451         .flags            = CLKDM_CAN_FORCE_WAKEUP | CLKDM_CAN_HWSUP,
452 };
453
454 static struct clockdomain ipu_7xx_clkdm = {
455         .name             = "ipu_clkdm",
456         .pwrdm            = { .name = "ipu_pwrdm" },
457         .prcm_partition   = DRA7XX_CM_CORE_AON_PARTITION,
458         .cm_inst          = DRA7XX_CM_CORE_AON_IPU_INST,
459         .clkdm_offs       = DRA7XX_CM_CORE_AON_IPU_IPU_CDOFFS,
460         .dep_bit          = DRA7XX_IPU_STATDEP_SHIFT,
461         .flags            = CLKDM_CAN_SWSUP,
462 };
463
464 static struct clockdomain mpu1_7xx_clkdm = {
465         .name             = "mpu1_clkdm",
466         .pwrdm            = { .name = "cpu1_pwrdm" },
467         .prcm_partition   = DRA7XX_MPU_PRCM_PARTITION,
468         .cm_inst          = DRA7XX_MPU_PRCM_CM_C1_INST,
469         .clkdm_offs       = DRA7XX_MPU_PRCM_CM_C1_CPU1_CDOFFS,
470         .flags            = CLKDM_CAN_FORCE_WAKEUP | CLKDM_CAN_HWSUP,
471 };
472
473 static struct clockdomain gmac_7xx_clkdm = {
474         .name             = "gmac_clkdm",
475         .pwrdm            = { .name = "l3init_pwrdm" },
476         .prcm_partition   = DRA7XX_CM_CORE_PARTITION,
477         .cm_inst          = DRA7XX_CM_CORE_L3INIT_INST,
478         .clkdm_offs       = DRA7XX_CM_CORE_L3INIT_GMAC_CDOFFS,
479         .dep_bit          = DRA7XX_GMAC_STATDEP_SHIFT,
480         .wkdep_srcs       = gmac_wkup_sleep_deps,
481         .sleepdep_srcs    = gmac_wkup_sleep_deps,
482         .flags            = CLKDM_CAN_HWSUP_SWSUP,
483 };
484
485 static struct clockdomain l4cfg_7xx_clkdm = {
486         .name             = "l4cfg_clkdm",
487         .pwrdm            = { .name = "core_pwrdm" },
488         .prcm_partition   = DRA7XX_CM_CORE_PARTITION,
489         .cm_inst          = DRA7XX_CM_CORE_CORE_INST,
490         .clkdm_offs       = DRA7XX_CM_CORE_CORE_L4CFG_CDOFFS,
491         .dep_bit          = DRA7XX_L4CFG_STATDEP_SHIFT,
492         .flags            = CLKDM_CAN_HWSUP,
493 };
494
495 static struct clockdomain dma_7xx_clkdm = {
496         .name             = "dma_clkdm",
497         .pwrdm            = { .name = "core_pwrdm" },
498         .prcm_partition   = DRA7XX_CM_CORE_PARTITION,
499         .cm_inst          = DRA7XX_CM_CORE_CORE_INST,
500         .clkdm_offs       = DRA7XX_CM_CORE_CORE_DMA_CDOFFS,
501         .wkdep_srcs       = dma_wkup_sleep_deps,
502         .sleepdep_srcs    = dma_wkup_sleep_deps,
503         .flags            = CLKDM_CAN_FORCE_WAKEUP | CLKDM_CAN_HWSUP,
504 };
505
506 static struct clockdomain rtc_7xx_clkdm = {
507         .name             = "rtc_clkdm",
508         .pwrdm            = { .name = "rtc_pwrdm" },
509         .prcm_partition   = DRA7XX_CM_CORE_AON_PARTITION,
510         .cm_inst          = DRA7XX_CM_CORE_AON_RTC_INST,
511         .clkdm_offs       = DRA7XX_CM_CORE_AON_RTC_RTC_CDOFFS,
512         .flags            = CLKDM_CAN_FORCE_WAKEUP | CLKDM_CAN_HWSUP,
513 };
514
515 static struct clockdomain pcie_7xx_clkdm = {
516         .name             = "pcie_clkdm",
517         .pwrdm            = { .name = "l3init_pwrdm" },
518         .prcm_partition   = DRA7XX_CM_CORE_PARTITION,
519         .cm_inst          = DRA7XX_CM_CORE_L3INIT_INST,
520         .clkdm_offs       = DRA7XX_CM_CORE_L3INIT_PCIE_CDOFFS,
521         .dep_bit          = DRA7XX_PCIE_STATDEP_SHIFT,
522         .wkdep_srcs       = pcie_wkup_sleep_deps,
523         .sleepdep_srcs    = pcie_wkup_sleep_deps,
524         .flags            = CLKDM_CAN_SWSUP,
525 };
526
527 static struct clockdomain atl_7xx_clkdm = {
528         .name             = "atl_clkdm",
529         .pwrdm            = { .name = "core_pwrdm" },
530         .prcm_partition   = DRA7XX_CM_CORE_PARTITION,
531         .cm_inst          = DRA7XX_CM_CORE_CORE_INST,
532         .clkdm_offs       = DRA7XX_CM_CORE_CORE_ATL_CDOFFS,
533         .dep_bit          = DRA7XX_ATL_STATDEP_SHIFT,
534         .flags            = CLKDM_CAN_FORCE_WAKEUP | CLKDM_CAN_HWSUP,
535 };
536
537 static struct clockdomain l3instr_7xx_clkdm = {
538         .name             = "l3instr_clkdm",
539         .pwrdm            = { .name = "core_pwrdm" },
540         .prcm_partition   = DRA7XX_CM_CORE_PARTITION,
541         .cm_inst          = DRA7XX_CM_CORE_CORE_INST,
542         .clkdm_offs       = DRA7XX_CM_CORE_CORE_L3INSTR_CDOFFS,
543 };
544
545 static struct clockdomain dss_7xx_clkdm = {
546         .name             = "dss_clkdm",
547         .pwrdm            = { .name = "dss_pwrdm" },
548         .prcm_partition   = DRA7XX_CM_CORE_PARTITION,
549         .cm_inst          = DRA7XX_CM_CORE_DSS_INST,
550         .clkdm_offs       = DRA7XX_CM_CORE_DSS_DSS_CDOFFS,
551         .dep_bit          = DRA7XX_DSS_STATDEP_SHIFT,
552         .wkdep_srcs       = dss_wkup_sleep_deps,
553         .sleepdep_srcs    = dss_wkup_sleep_deps,
554         .flags            = CLKDM_CAN_HWSUP_SWSUP,
555 };
556
557 static struct clockdomain emif_7xx_clkdm = {
558         .name             = "emif_clkdm",
559         .pwrdm            = { .name = "core_pwrdm" },
560         .prcm_partition   = DRA7XX_CM_CORE_PARTITION,
561         .cm_inst          = DRA7XX_CM_CORE_CORE_INST,
562         .clkdm_offs       = DRA7XX_CM_CORE_CORE_EMIF_CDOFFS,
563         .dep_bit          = DRA7XX_EMIF_STATDEP_SHIFT,
564         .flags            = CLKDM_CAN_FORCE_WAKEUP | CLKDM_CAN_HWSUP,
565 };
566
567 static struct clockdomain emu_7xx_clkdm = {
568         .name             = "emu_clkdm",
569         .pwrdm            = { .name = "emu_pwrdm" },
570         .prcm_partition   = DRA7XX_PRM_PARTITION,
571         .cm_inst          = DRA7XX_PRM_EMU_CM_INST,
572         .clkdm_offs       = DRA7XX_PRM_EMU_CM_EMU_CDOFFS,
573         .flags            = CLKDM_CAN_FORCE_WAKEUP | CLKDM_CAN_HWSUP,
574 };
575
576 static struct clockdomain dsp2_7xx_clkdm = {
577         .name             = "dsp2_clkdm",
578         .pwrdm            = { .name = "dsp2_pwrdm" },
579         .prcm_partition   = DRA7XX_CM_CORE_AON_PARTITION,
580         .cm_inst          = DRA7XX_CM_CORE_AON_DSP2_INST,
581         .clkdm_offs       = DRA7XX_CM_CORE_AON_DSP2_DSP2_CDOFFS,
582         .dep_bit          = DRA7XX_DSP2_STATDEP_SHIFT,
583         .wkdep_srcs       = dsp2_wkup_sleep_deps,
584         .sleepdep_srcs    = dsp2_wkup_sleep_deps,
585         .flags            = CLKDM_CAN_HWSUP_SWSUP,
586 };
587
588 static struct clockdomain dsp1_7xx_clkdm = {
589         .name             = "dsp1_clkdm",
590         .pwrdm            = { .name = "dsp1_pwrdm" },
591         .prcm_partition   = DRA7XX_CM_CORE_AON_PARTITION,
592         .cm_inst          = DRA7XX_CM_CORE_AON_DSP1_INST,
593         .clkdm_offs       = DRA7XX_CM_CORE_AON_DSP1_DSP1_CDOFFS,
594         .dep_bit          = DRA7XX_DSP1_STATDEP_SHIFT,
595         .wkdep_srcs       = dsp1_wkup_sleep_deps,
596         .sleepdep_srcs    = dsp1_wkup_sleep_deps,
597         .flags            = CLKDM_CAN_HWSUP_SWSUP,
598 };
599
600 static struct clockdomain cam_7xx_clkdm = {
601         .name             = "cam_clkdm",
602         .pwrdm            = { .name = "cam_pwrdm" },
603         .prcm_partition   = DRA7XX_CM_CORE_PARTITION,
604         .cm_inst          = DRA7XX_CM_CORE_CAM_INST,
605         .clkdm_offs       = DRA7XX_CM_CORE_CAM_CAM_CDOFFS,
606         .dep_bit          = DRA7XX_CAM_STATDEP_SHIFT,
607         .wkdep_srcs       = cam_wkup_sleep_deps,
608         .sleepdep_srcs    = cam_wkup_sleep_deps,
609         .flags            = CLKDM_CAN_SWSUP,
610 };
611
612 static struct clockdomain l4per_7xx_clkdm = {
613         .name             = "l4per_clkdm",
614         .pwrdm            = { .name = "l4per_pwrdm" },
615         .prcm_partition   = DRA7XX_CM_CORE_PARTITION,
616         .cm_inst          = DRA7XX_CM_CORE_L4PER_INST,
617         .clkdm_offs       = DRA7XX_CM_CORE_L4PER_L4PER_CDOFFS,
618         .dep_bit          = DRA7XX_L4PER_STATDEP_SHIFT,
619         .flags            = CLKDM_CAN_HWSUP_SWSUP,
620 };
621
622 static struct clockdomain gpu_7xx_clkdm = {
623         .name             = "gpu_clkdm",
624         .pwrdm            = { .name = "gpu_pwrdm" },
625         .prcm_partition   = DRA7XX_CM_CORE_PARTITION,
626         .cm_inst          = DRA7XX_CM_CORE_GPU_INST,
627         .clkdm_offs       = DRA7XX_CM_CORE_GPU_GPU_CDOFFS,
628         .dep_bit          = DRA7XX_GPU_STATDEP_SHIFT,
629         .wkdep_srcs       = gpu_wkup_sleep_deps,
630         .sleepdep_srcs    = gpu_wkup_sleep_deps,
631         .flags            = CLKDM_CAN_HWSUP_SWSUP,
632 };
633
634 static struct clockdomain eve4_7xx_clkdm = {
635         .name             = "eve4_clkdm",
636         .pwrdm            = { .name = "eve4_pwrdm" },
637         .prcm_partition   = DRA7XX_CM_CORE_AON_PARTITION,
638         .cm_inst          = DRA7XX_CM_CORE_AON_EVE4_INST,
639         .clkdm_offs       = DRA7XX_CM_CORE_AON_EVE4_EVE4_CDOFFS,
640         .dep_bit          = DRA7XX_EVE4_STATDEP_SHIFT,
641         .wkdep_srcs       = eve4_wkup_sleep_deps,
642         .sleepdep_srcs    = eve4_wkup_sleep_deps,
643         .flags            = CLKDM_CAN_HWSUP_SWSUP,
644 };
645
646 static struct clockdomain eve2_7xx_clkdm = {
647         .name             = "eve2_clkdm",
648         .pwrdm            = { .name = "eve2_pwrdm" },
649         .prcm_partition   = DRA7XX_CM_CORE_AON_PARTITION,
650         .cm_inst          = DRA7XX_CM_CORE_AON_EVE2_INST,
651         .clkdm_offs       = DRA7XX_CM_CORE_AON_EVE2_EVE2_CDOFFS,
652         .dep_bit          = DRA7XX_EVE2_STATDEP_SHIFT,
653         .wkdep_srcs       = eve2_wkup_sleep_deps,
654         .sleepdep_srcs    = eve2_wkup_sleep_deps,
655         .flags            = CLKDM_CAN_HWSUP_SWSUP,
656 };
657
658 static struct clockdomain eve3_7xx_clkdm = {
659         .name             = "eve3_clkdm",
660         .pwrdm            = { .name = "eve3_pwrdm" },
661         .prcm_partition   = DRA7XX_CM_CORE_AON_PARTITION,
662         .cm_inst          = DRA7XX_CM_CORE_AON_EVE3_INST,
663         .clkdm_offs       = DRA7XX_CM_CORE_AON_EVE3_EVE3_CDOFFS,
664         .dep_bit          = DRA7XX_EVE3_STATDEP_SHIFT,
665         .wkdep_srcs       = eve3_wkup_sleep_deps,
666         .sleepdep_srcs    = eve3_wkup_sleep_deps,
667         .flags            = CLKDM_CAN_HWSUP_SWSUP,
668 };
669
670 static struct clockdomain wkupaon_7xx_clkdm = {
671         .name             = "wkupaon_clkdm",
672         .pwrdm            = { .name = "wkupaon_pwrdm" },
673         .prcm_partition   = DRA7XX_PRM_PARTITION,
674         .cm_inst          = DRA7XX_PRM_WKUPAON_CM_INST,
675         .clkdm_offs       = DRA7XX_PRM_WKUPAON_CM_WKUPAON_CDOFFS,
676         .dep_bit          = DRA7XX_WKUPAON_STATDEP_SHIFT,
677         .flags            = CLKDM_CAN_FORCE_WAKEUP | CLKDM_CAN_HWSUP,
678 };
679
680 static struct clockdomain eve1_7xx_clkdm = {
681         .name             = "eve1_clkdm",
682         .pwrdm            = { .name = "eve1_pwrdm" },
683         .prcm_partition   = DRA7XX_CM_CORE_AON_PARTITION,
684         .cm_inst          = DRA7XX_CM_CORE_AON_EVE1_INST,
685         .clkdm_offs       = DRA7XX_CM_CORE_AON_EVE1_EVE1_CDOFFS,
686         .dep_bit          = DRA7XX_EVE1_STATDEP_SHIFT,
687         .wkdep_srcs       = eve1_wkup_sleep_deps,
688         .sleepdep_srcs    = eve1_wkup_sleep_deps,
689         .flags            = CLKDM_CAN_HWSUP_SWSUP,
690 };
691
692 /* As clockdomains are added or removed above, this list must also be changed */
693 static struct clockdomain *clockdomains_dra7xx[] __initdata = {
694         &l4per3_7xx_clkdm,
695         &l4per2_7xx_clkdm,
696         &mpu0_7xx_clkdm,
697         &iva_7xx_clkdm,
698         &coreaon_7xx_clkdm,
699         &ipu1_7xx_clkdm,
700         &ipu2_7xx_clkdm,
701         &l3init_7xx_clkdm,
702         &l4sec_7xx_clkdm,
703         &l3main1_7xx_clkdm,
704         &vpe_7xx_clkdm,
705         &mpu_7xx_clkdm,
706         &custefuse_7xx_clkdm,
707         &ipu_7xx_clkdm,
708         &mpu1_7xx_clkdm,
709         &gmac_7xx_clkdm,
710         &l4cfg_7xx_clkdm,
711         &dma_7xx_clkdm,
712         &rtc_7xx_clkdm,
713         &pcie_7xx_clkdm,
714         &atl_7xx_clkdm,
715         &l3instr_7xx_clkdm,
716         &dss_7xx_clkdm,
717         &emif_7xx_clkdm,
718         &emu_7xx_clkdm,
719         &dsp2_7xx_clkdm,
720         &dsp1_7xx_clkdm,
721         &cam_7xx_clkdm,
722         &l4per_7xx_clkdm,
723         &gpu_7xx_clkdm,
724         &eve4_7xx_clkdm,
725         &eve2_7xx_clkdm,
726         &eve3_7xx_clkdm,
727         &wkupaon_7xx_clkdm,
728         &eve1_7xx_clkdm,
729         NULL
730 };
731
732 void __init dra7xx_clockdomains_init(void)
733 {
734         clkdm_register_platform_funcs(&omap4_clkdm_operations);
735         clkdm_register_clkdms(clockdomains_dra7xx);
736         clkdm_complete_init();
737 }