Linux Kernel
3.7.1
Main Page
Related Pages
Modules
Namespaces
Data Structures
Files
File List
Globals
All
Data Structures
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Macros
Groups
Pages
arch
arm
mach-omap2
powerdomains44xx_data.c
Go to the documentation of this file.
1
/*
2
* OMAP4 Power domains framework
3
*
4
* Copyright (C) 2009-2011 Texas Instruments, Inc.
5
* Copyright (C) 2009-2011 Nokia Corporation
6
*
7
* Abhijit Pagare (
[email protected]
)
8
* Benoit Cousson (
[email protected]
)
9
* Paul Walmsley (
[email protected]
)
10
*
11
* This file is automatically generated from the OMAP hardware databases.
12
* We respectfully ask that any modifications to this file be coordinated
13
* with the public
[email protected]
mailing list and the
14
* authors above to ensure that the autogeneration scripts are kept
15
* up-to-date with the file contents.
16
*
17
* This program is free software; you can redistribute it and/or modify
18
* it under the terms of the GNU General Public License version 2 as
19
* published by the Free Software Foundation.
20
*/
21
22
#include <linux/kernel.h>
23
#include <
linux/init.h
>
24
25
#include "
powerdomain.h
"
26
27
#include "
prcm-common.h
"
28
#include "
prcm44xx.h
"
29
#include "
prm-regbits-44xx.h
"
30
#include "
prm44xx.h
"
31
#include "
prcm_mpu44xx.h
"
32
33
/* core_44xx_pwrdm: CORE power domain */
34
static
struct
powerdomain
core_44xx_pwrdm = {
35
.name =
"core_pwrdm"
,
36
.voltdm = { .name =
"core"
},
37
.prcm_offs =
OMAP4430_PRM_CORE_INST
,
38
.prcm_partition =
OMAP4430_PRM_PARTITION
,
39
.pwrsts =
PWRSTS_RET_ON
,
40
.pwrsts_logic_ret =
PWRSTS_OFF_RET
,
41
.banks = 5,
42
.pwrsts_mem_ret = {
43
[0] =
PWRSTS_OFF
,
/* core_nret_bank */
44
[1] =
PWRSTS_RET
,
/* core_ocmram */
45
[2] =
PWRSTS_RET
,
/* core_other_bank */
46
[3] =
PWRSTS_OFF_RET
,
/* ducati_l2ram */
47
[4] =
PWRSTS_OFF_RET
,
/* ducati_unicache */
48
},
49
.pwrsts_mem_on = {
50
[0] =
PWRSTS_ON
,
/* core_nret_bank */
51
[1] =
PWRSTS_ON
,
/* core_ocmram */
52
[2] =
PWRSTS_ON
,
/* core_other_bank */
53
[3] =
PWRSTS_ON
,
/* ducati_l2ram */
54
[4] =
PWRSTS_ON
,
/* ducati_unicache */
55
},
56
.flags =
PWRDM_HAS_LOWPOWERSTATECHANGE
,
57
};
58
59
/* gfx_44xx_pwrdm: 3D accelerator power domain */
60
static
struct
powerdomain
gfx_44xx_pwrdm = {
61
.name =
"gfx_pwrdm"
,
62
.voltdm = { .name =
"core"
},
63
.prcm_offs =
OMAP4430_PRM_GFX_INST
,
64
.prcm_partition =
OMAP4430_PRM_PARTITION
,
65
.pwrsts =
PWRSTS_OFF_ON
,
66
.banks = 1,
67
.pwrsts_mem_ret = {
68
[0] =
PWRSTS_OFF
,
/* gfx_mem */
69
},
70
.pwrsts_mem_on = {
71
[0] =
PWRSTS_ON
,
/* gfx_mem */
72
},
73
.flags =
PWRDM_HAS_LOWPOWERSTATECHANGE
,
74
};
75
76
/* abe_44xx_pwrdm: Audio back end power domain */
77
static
struct
powerdomain
abe_44xx_pwrdm = {
78
.name =
"abe_pwrdm"
,
79
.voltdm = { .name =
"iva"
},
80
.prcm_offs =
OMAP4430_PRM_ABE_INST
,
81
.prcm_partition =
OMAP4430_PRM_PARTITION
,
82
.pwrsts =
PWRSTS_OFF_RET_ON
,
83
.pwrsts_logic_ret =
PWRSTS_OFF
,
84
.banks = 2,
85
.pwrsts_mem_ret = {
86
[0] =
PWRSTS_RET
,
/* aessmem */
87
[1] =
PWRSTS_OFF
,
/* periphmem */
88
},
89
.pwrsts_mem_on = {
90
[0] =
PWRSTS_ON
,
/* aessmem */
91
[1] =
PWRSTS_ON
,
/* periphmem */
92
},
93
.flags =
PWRDM_HAS_LOWPOWERSTATECHANGE
,
94
};
95
96
/* dss_44xx_pwrdm: Display subsystem power domain */
97
static
struct
powerdomain
dss_44xx_pwrdm = {
98
.name =
"dss_pwrdm"
,
99
.voltdm = { .name =
"core"
},
100
.prcm_offs =
OMAP4430_PRM_DSS_INST
,
101
.prcm_partition =
OMAP4430_PRM_PARTITION
,
102
.pwrsts =
PWRSTS_OFF_RET_ON
,
103
.pwrsts_logic_ret =
PWRSTS_OFF
,
104
.banks = 1,
105
.pwrsts_mem_ret = {
106
[0] =
PWRSTS_OFF
,
/* dss_mem */
107
},
108
.pwrsts_mem_on = {
109
[0] =
PWRSTS_ON
,
/* dss_mem */
110
},
111
.flags =
PWRDM_HAS_LOWPOWERSTATECHANGE
,
112
};
113
114
/* tesla_44xx_pwrdm: Tesla processor power domain */
115
static
struct
powerdomain
tesla_44xx_pwrdm = {
116
.name =
"tesla_pwrdm"
,
117
.voltdm = { .name =
"iva"
},
118
.prcm_offs =
OMAP4430_PRM_TESLA_INST
,
119
.prcm_partition =
OMAP4430_PRM_PARTITION
,
120
.pwrsts =
PWRSTS_OFF_RET_ON
,
121
.pwrsts_logic_ret =
PWRSTS_OFF_RET
,
122
.banks = 3,
123
.pwrsts_mem_ret = {
124
[0] =
PWRSTS_RET
,
/* tesla_edma */
125
[1] =
PWRSTS_OFF_RET
,
/* tesla_l1 */
126
[2] =
PWRSTS_OFF_RET
,
/* tesla_l2 */
127
},
128
.pwrsts_mem_on = {
129
[0] =
PWRSTS_ON
,
/* tesla_edma */
130
[1] =
PWRSTS_ON
,
/* tesla_l1 */
131
[2] =
PWRSTS_ON
,
/* tesla_l2 */
132
},
133
.flags =
PWRDM_HAS_LOWPOWERSTATECHANGE
,
134
};
135
136
/* wkup_44xx_pwrdm: Wake-up power domain */
137
static
struct
powerdomain
wkup_44xx_pwrdm = {
138
.name =
"wkup_pwrdm"
,
139
.voltdm = { .name =
"wakeup"
},
140
.prcm_offs =
OMAP4430_PRM_WKUP_INST
,
141
.prcm_partition =
OMAP4430_PRM_PARTITION
,
142
.pwrsts =
PWRSTS_ON
,
143
.banks = 1,
144
.pwrsts_mem_ret = {
145
[0] =
PWRSTS_OFF
,
/* wkup_bank */
146
},
147
.pwrsts_mem_on = {
148
[0] =
PWRSTS_ON
,
/* wkup_bank */
149
},
150
};
151
152
/* cpu0_44xx_pwrdm: MPU0 processor and Neon coprocessor power domain */
153
static
struct
powerdomain
cpu0_44xx_pwrdm = {
154
.name =
"cpu0_pwrdm"
,
155
.voltdm = { .name =
"mpu"
},
156
.prcm_offs =
OMAP4430_PRCM_MPU_CPU0_INST
,
157
.prcm_partition =
OMAP4430_PRCM_MPU_PARTITION
,
158
.pwrsts =
PWRSTS_OFF_RET_ON
,
159
.pwrsts_logic_ret =
PWRSTS_OFF_RET
,
160
.banks = 1,
161
.pwrsts_mem_ret = {
162
[0] =
PWRSTS_OFF_RET
,
/* cpu0_l1 */
163
},
164
.pwrsts_mem_on = {
165
[0] =
PWRSTS_ON
,
/* cpu0_l1 */
166
},
167
};
168
169
/* cpu1_44xx_pwrdm: MPU1 processor and Neon coprocessor power domain */
170
static
struct
powerdomain
cpu1_44xx_pwrdm = {
171
.name =
"cpu1_pwrdm"
,
172
.voltdm = { .name =
"mpu"
},
173
.prcm_offs =
OMAP4430_PRCM_MPU_CPU1_INST
,
174
.prcm_partition =
OMAP4430_PRCM_MPU_PARTITION
,
175
.pwrsts =
PWRSTS_OFF_RET_ON
,
176
.pwrsts_logic_ret =
PWRSTS_OFF_RET
,
177
.banks = 1,
178
.pwrsts_mem_ret = {
179
[0] =
PWRSTS_OFF_RET
,
/* cpu1_l1 */
180
},
181
.pwrsts_mem_on = {
182
[0] =
PWRSTS_ON
,
/* cpu1_l1 */
183
},
184
};
185
186
/* emu_44xx_pwrdm: Emulation power domain */
187
static
struct
powerdomain
emu_44xx_pwrdm = {
188
.name =
"emu_pwrdm"
,
189
.voltdm = { .name =
"wakeup"
},
190
.prcm_offs =
OMAP4430_PRM_EMU_INST
,
191
.prcm_partition =
OMAP4430_PRM_PARTITION
,
192
.pwrsts =
PWRSTS_OFF_ON
,
193
.banks = 1,
194
.pwrsts_mem_ret = {
195
[0] =
PWRSTS_OFF
,
/* emu_bank */
196
},
197
.pwrsts_mem_on = {
198
[0] =
PWRSTS_ON
,
/* emu_bank */
199
},
200
};
201
202
/* mpu_44xx_pwrdm: Modena processor and the Neon coprocessor power domain */
203
static
struct
powerdomain
mpu_44xx_pwrdm = {
204
.name =
"mpu_pwrdm"
,
205
.voltdm = { .name =
"mpu"
},
206
.prcm_offs =
OMAP4430_PRM_MPU_INST
,
207
.prcm_partition =
OMAP4430_PRM_PARTITION
,
208
.pwrsts =
PWRSTS_RET_ON
,
209
.pwrsts_logic_ret =
PWRSTS_OFF_RET
,
210
.banks = 3,
211
.pwrsts_mem_ret = {
212
[0] =
PWRSTS_OFF_RET
,
/* mpu_l1 */
213
[1] =
PWRSTS_OFF_RET
,
/* mpu_l2 */
214
[2] =
PWRSTS_RET
,
/* mpu_ram */
215
},
216
.pwrsts_mem_on = {
217
[0] =
PWRSTS_ON
,
/* mpu_l1 */
218
[1] =
PWRSTS_ON
,
/* mpu_l2 */
219
[2] =
PWRSTS_ON
,
/* mpu_ram */
220
},
221
};
222
223
/* ivahd_44xx_pwrdm: IVA-HD power domain */
224
static
struct
powerdomain
ivahd_44xx_pwrdm = {
225
.name =
"ivahd_pwrdm"
,
226
.voltdm = { .name =
"iva"
},
227
.prcm_offs =
OMAP4430_PRM_IVAHD_INST
,
228
.prcm_partition =
OMAP4430_PRM_PARTITION
,
229
.pwrsts =
PWRSTS_OFF_RET_ON
,
230
.pwrsts_logic_ret =
PWRSTS_OFF
,
231
.banks = 4,
232
.pwrsts_mem_ret = {
233
[0] =
PWRSTS_OFF
,
/* hwa_mem */
234
[1] =
PWRSTS_OFF_RET
,
/* sl2_mem */
235
[2] =
PWRSTS_OFF_RET
,
/* tcm1_mem */
236
[3] =
PWRSTS_OFF_RET
,
/* tcm2_mem */
237
},
238
.pwrsts_mem_on = {
239
[0] =
PWRSTS_ON
,
/* hwa_mem */
240
[1] =
PWRSTS_ON
,
/* sl2_mem */
241
[2] =
PWRSTS_ON
,
/* tcm1_mem */
242
[3] =
PWRSTS_ON
,
/* tcm2_mem */
243
},
244
.flags =
PWRDM_HAS_LOWPOWERSTATECHANGE
,
245
};
246
247
/* cam_44xx_pwrdm: Camera subsystem power domain */
248
static
struct
powerdomain
cam_44xx_pwrdm = {
249
.name =
"cam_pwrdm"
,
250
.voltdm = { .name =
"core"
},
251
.prcm_offs =
OMAP4430_PRM_CAM_INST
,
252
.prcm_partition =
OMAP4430_PRM_PARTITION
,
253
.pwrsts =
PWRSTS_OFF_ON
,
254
.banks = 1,
255
.pwrsts_mem_ret = {
256
[0] =
PWRSTS_OFF
,
/* cam_mem */
257
},
258
.pwrsts_mem_on = {
259
[0] =
PWRSTS_ON
,
/* cam_mem */
260
},
261
.flags =
PWRDM_HAS_LOWPOWERSTATECHANGE
,
262
};
263
264
/* l3init_44xx_pwrdm: L3 initators pheripherals power domain */
265
static
struct
powerdomain
l3init_44xx_pwrdm = {
266
.name =
"l3init_pwrdm"
,
267
.voltdm = { .name =
"core"
},
268
.prcm_offs =
OMAP4430_PRM_L3INIT_INST
,
269
.prcm_partition =
OMAP4430_PRM_PARTITION
,
270
.pwrsts =
PWRSTS_RET_ON
,
271
.pwrsts_logic_ret =
PWRSTS_OFF_RET
,
272
.banks = 1,
273
.pwrsts_mem_ret = {
274
[0] =
PWRSTS_OFF
,
/* l3init_bank1 */
275
},
276
.pwrsts_mem_on = {
277
[0] =
PWRSTS_ON
,
/* l3init_bank1 */
278
},
279
.flags =
PWRDM_HAS_LOWPOWERSTATECHANGE
,
280
};
281
282
/* l4per_44xx_pwrdm: Target peripherals power domain */
283
static
struct
powerdomain
l4per_44xx_pwrdm = {
284
.name =
"l4per_pwrdm"
,
285
.voltdm = { .name =
"core"
},
286
.prcm_offs =
OMAP4430_PRM_L4PER_INST
,
287
.prcm_partition =
OMAP4430_PRM_PARTITION
,
288
.pwrsts =
PWRSTS_RET_ON
,
289
.pwrsts_logic_ret =
PWRSTS_OFF_RET
,
290
.banks = 2,
291
.pwrsts_mem_ret = {
292
[0] =
PWRSTS_OFF
,
/* nonretained_bank */
293
[1] =
PWRSTS_RET
,
/* retained_bank */
294
},
295
.pwrsts_mem_on = {
296
[0] =
PWRSTS_ON
,
/* nonretained_bank */
297
[1] =
PWRSTS_ON
,
/* retained_bank */
298
},
299
.flags =
PWRDM_HAS_LOWPOWERSTATECHANGE
,
300
};
301
302
/*
303
* always_on_core_44xx_pwrdm: Always ON logic that sits in VDD_CORE voltage
304
* domain
305
*/
306
static
struct
powerdomain
always_on_core_44xx_pwrdm = {
307
.name =
"always_on_core_pwrdm"
,
308
.voltdm = { .name =
"core"
},
309
.prcm_offs =
OMAP4430_PRM_ALWAYS_ON_INST
,
310
.prcm_partition =
OMAP4430_PRM_PARTITION
,
311
.pwrsts =
PWRSTS_ON
,
312
};
313
314
/* cefuse_44xx_pwrdm: Customer efuse controller power domain */
315
static
struct
powerdomain
cefuse_44xx_pwrdm = {
316
.name =
"cefuse_pwrdm"
,
317
.voltdm = { .name =
"core"
},
318
.prcm_offs =
OMAP4430_PRM_CEFUSE_INST
,
319
.prcm_partition =
OMAP4430_PRM_PARTITION
,
320
.pwrsts =
PWRSTS_OFF_ON
,
321
.flags =
PWRDM_HAS_LOWPOWERSTATECHANGE
,
322
};
323
324
/*
325
* The following power domains are not under SW control
326
*
327
* always_on_iva
328
* always_on_mpu
329
* stdefuse
330
*/
331
332
/* As powerdomains are added or removed above, this list must also be changed */
333
static
struct
powerdomain
*powerdomains_omap44xx[]
__initdata
= {
334
&core_44xx_pwrdm,
335
&gfx_44xx_pwrdm,
336
&abe_44xx_pwrdm,
337
&dss_44xx_pwrdm,
338
&tesla_44xx_pwrdm,
339
&wkup_44xx_pwrdm,
340
&cpu0_44xx_pwrdm,
341
&cpu1_44xx_pwrdm,
342
&emu_44xx_pwrdm,
343
&mpu_44xx_pwrdm,
344
&ivahd_44xx_pwrdm,
345
&cam_44xx_pwrdm,
346
&l3init_44xx_pwrdm,
347
&l4per_44xx_pwrdm,
348
&always_on_core_44xx_pwrdm,
349
&cefuse_44xx_pwrdm,
350
NULL
351
};
352
353
void
__init
omap44xx_powerdomains_init
(
void
)
354
{
355
pwrdm_register_platform_funcs
(&
omap4_pwrdm_operations
);
356
pwrdm_register_pwrdms
(powerdomains_omap44xx);
357
pwrdm_complete_init
();
358
}
Generated on Thu Jan 10 2013 13:00:57 for Linux Kernel by
1.8.2