xref: /openbmc/linux/arch/arm/mach-omap2/omap_hwmod_2xxx_ipblock_data.c (revision 9a87ffc99ec8eb8d35eed7c4f816d75f5cc9662e)
1d2912cb1SThomas Gleixner // SPDX-License-Identifier: GPL-2.0-only
20d619a89SPaul Walmsley /*
30d619a89SPaul Walmsley  * omap_hwmod_2xxx_ipblock_data.c - common IP block data for OMAP2xxx
40d619a89SPaul Walmsley  *
50d619a89SPaul Walmsley  * Copyright (C) 2011 Nokia Corporation
60d619a89SPaul Walmsley  * Paul Walmsley
70d619a89SPaul Walmsley  */
82a296c8fSTony Lindgren 
9ddd6a9d9STony Lindgren #include <linux/types.h>
10a0e37da2SSuman Anna 
112a296c8fSTony Lindgren #include "omap_hwmod.h"
120d619a89SPaul Walmsley #include "omap_hwmod_common_data.h"
13cb48427eSPaul Walmsley #include "cm-regbits-24xx.h"
14cb48427eSPaul Walmsley #include "prm-regbits-24xx.h"
15273b9465SPaul Walmsley #include "wd_timer.h"
160d619a89SPaul Walmsley 
171ac6d46eSTomi Valkeinen /*
181ac6d46eSTomi Valkeinen  * 'dispc' class
191ac6d46eSTomi Valkeinen  * display controller
201ac6d46eSTomi Valkeinen  */
211ac6d46eSTomi Valkeinen 
221ac6d46eSTomi Valkeinen static struct omap_hwmod_class_sysconfig omap2_dispc_sysc = {
231ac6d46eSTomi Valkeinen 	.rev_offs	= 0x0000,
241ac6d46eSTomi Valkeinen 	.sysc_offs	= 0x0010,
251ac6d46eSTomi Valkeinen 	.syss_offs	= 0x0014,
261ac6d46eSTomi Valkeinen 	.sysc_flags	= (SYSC_HAS_SIDLEMODE | SYSC_HAS_MIDLEMODE |
271ac6d46eSTomi Valkeinen 			   SYSC_HAS_SOFTRESET | SYSC_HAS_AUTOIDLE),
281ac6d46eSTomi Valkeinen 	.idlemodes	= (SIDLE_FORCE | SIDLE_NO | SIDLE_SMART |
291ac6d46eSTomi Valkeinen 			   MSTANDBY_FORCE | MSTANDBY_NO | MSTANDBY_SMART),
301ac6d46eSTomi Valkeinen 	.sysc_fields	= &omap_hwmod_sysc_type1,
311ac6d46eSTomi Valkeinen };
321ac6d46eSTomi Valkeinen 
33*6aeb51c1SArnd Bergmann static struct omap_hwmod_class omap2_dispc_hwmod_class = {
341ac6d46eSTomi Valkeinen 	.name	= "dispc",
351ac6d46eSTomi Valkeinen 	.sysc	= &omap2_dispc_sysc,
361ac6d46eSTomi Valkeinen };
371ac6d46eSTomi Valkeinen 
38273b9465SPaul Walmsley /* OMAP2xxx Timer Common */
39273b9465SPaul Walmsley static struct omap_hwmod_class_sysconfig omap2xxx_timer_sysc = {
40273b9465SPaul Walmsley 	.rev_offs	= 0x0000,
41273b9465SPaul Walmsley 	.sysc_offs	= 0x0010,
42273b9465SPaul Walmsley 	.syss_offs	= 0x0014,
43273b9465SPaul Walmsley 	.sysc_flags	= (SYSC_HAS_SIDLEMODE | SYSC_HAS_CLOCKACTIVITY |
44273b9465SPaul Walmsley 			   SYSC_HAS_ENAWAKEUP | SYSC_HAS_SOFTRESET |
45f3a13e72SJon Hunter 			   SYSC_HAS_AUTOIDLE | SYSS_HAS_RESET_STATUS),
46273b9465SPaul Walmsley 	.idlemodes	= (SIDLE_FORCE | SIDLE_NO | SIDLE_SMART),
47273b9465SPaul Walmsley 	.sysc_fields	= &omap_hwmod_sysc_type1,
48273b9465SPaul Walmsley };
49273b9465SPaul Walmsley 
50*6aeb51c1SArnd Bergmann static struct omap_hwmod_class omap2xxx_timer_hwmod_class = {
51273b9465SPaul Walmsley 	.name	= "timer",
52273b9465SPaul Walmsley 	.sysc	= &omap2xxx_timer_sysc,
53273b9465SPaul Walmsley };
54273b9465SPaul Walmsley 
55273b9465SPaul Walmsley /*
56273b9465SPaul Walmsley  * 'wd_timer' class
57273b9465SPaul Walmsley  * 32-bit watchdog upward counter that generates a pulse on the reset pin on
58273b9465SPaul Walmsley  * overflow condition
59273b9465SPaul Walmsley  */
60273b9465SPaul Walmsley 
61273b9465SPaul Walmsley static struct omap_hwmod_class_sysconfig omap2xxx_wd_timer_sysc = {
62273b9465SPaul Walmsley 	.rev_offs	= 0x0000,
63273b9465SPaul Walmsley 	.sysc_offs	= 0x0010,
64273b9465SPaul Walmsley 	.syss_offs	= 0x0014,
65273b9465SPaul Walmsley 	.sysc_flags	= (SYSC_HAS_EMUFREE | SYSC_HAS_SOFTRESET |
66273b9465SPaul Walmsley 			   SYSC_HAS_AUTOIDLE | SYSS_HAS_RESET_STATUS),
67273b9465SPaul Walmsley 	.sysc_fields	= &omap_hwmod_sysc_type1,
68273b9465SPaul Walmsley };
69273b9465SPaul Walmsley 
70*6aeb51c1SArnd Bergmann static struct omap_hwmod_class omap2xxx_wd_timer_hwmod_class = {
71273b9465SPaul Walmsley 	.name		= "wd_timer",
72273b9465SPaul Walmsley 	.sysc		= &omap2xxx_wd_timer_sysc,
73414e4128SKevin Hilman 	.pre_shutdown	= &omap2_wd_timer_disable,
74414e4128SKevin Hilman 	.reset		= &omap2_wd_timer_reset,
75273b9465SPaul Walmsley };
76273b9465SPaul Walmsley 
77273b9465SPaul Walmsley /*
78273b9465SPaul Walmsley  * 'gpio' class
79273b9465SPaul Walmsley  * general purpose io module
80273b9465SPaul Walmsley  */
81273b9465SPaul Walmsley static struct omap_hwmod_class_sysconfig omap2xxx_gpio_sysc = {
82273b9465SPaul Walmsley 	.rev_offs	= 0x0000,
83273b9465SPaul Walmsley 	.sysc_offs	= 0x0010,
84273b9465SPaul Walmsley 	.syss_offs	= 0x0014,
85273b9465SPaul Walmsley 	.sysc_flags	= (SYSC_HAS_ENAWAKEUP | SYSC_HAS_SIDLEMODE |
86273b9465SPaul Walmsley 			   SYSC_HAS_SOFTRESET | SYSC_HAS_AUTOIDLE |
87273b9465SPaul Walmsley 			   SYSS_HAS_RESET_STATUS),
88273b9465SPaul Walmsley 	.idlemodes	= (SIDLE_FORCE | SIDLE_NO | SIDLE_SMART),
89273b9465SPaul Walmsley 	.sysc_fields	= &omap_hwmod_sysc_type1,
90273b9465SPaul Walmsley };
91273b9465SPaul Walmsley 
92273b9465SPaul Walmsley struct omap_hwmod_class omap2xxx_gpio_hwmod_class = {
93273b9465SPaul Walmsley 	.name = "gpio",
94273b9465SPaul Walmsley 	.sysc = &omap2xxx_gpio_sysc,
95273b9465SPaul Walmsley };
96273b9465SPaul Walmsley 
97273b9465SPaul Walmsley /*
98273b9465SPaul Walmsley  * 'mailbox' class
99273b9465SPaul Walmsley  * mailbox module allowing communication between the on-chip processors
100273b9465SPaul Walmsley  * using a queued mailbox-interrupt mechanism.
101273b9465SPaul Walmsley  */
102273b9465SPaul Walmsley 
103273b9465SPaul Walmsley static struct omap_hwmod_class_sysconfig omap2xxx_mailbox_sysc = {
104273b9465SPaul Walmsley 	.rev_offs	= 0x000,
105273b9465SPaul Walmsley 	.sysc_offs	= 0x010,
106273b9465SPaul Walmsley 	.syss_offs	= 0x014,
107273b9465SPaul Walmsley 	.sysc_flags	= (SYSC_HAS_CLOCKACTIVITY | SYSC_HAS_SIDLEMODE |
108273b9465SPaul Walmsley 			   SYSC_HAS_SOFTRESET | SYSC_HAS_AUTOIDLE),
109273b9465SPaul Walmsley 	.idlemodes	= (SIDLE_FORCE | SIDLE_NO | SIDLE_SMART),
110273b9465SPaul Walmsley 	.sysc_fields	= &omap_hwmod_sysc_type1,
111273b9465SPaul Walmsley };
112273b9465SPaul Walmsley 
113273b9465SPaul Walmsley struct omap_hwmod_class omap2xxx_mailbox_hwmod_class = {
114273b9465SPaul Walmsley 	.name	= "mailbox",
115273b9465SPaul Walmsley 	.sysc	= &omap2xxx_mailbox_sysc,
116273b9465SPaul Walmsley };
117273b9465SPaul Walmsley 
118273b9465SPaul Walmsley /*
119273b9465SPaul Walmsley  * 'mcspi' class
120273b9465SPaul Walmsley  * multichannel serial port interface (mcspi) / master/slave synchronous serial
121273b9465SPaul Walmsley  * bus
122273b9465SPaul Walmsley  */
123273b9465SPaul Walmsley 
124273b9465SPaul Walmsley static struct omap_hwmod_class_sysconfig omap2xxx_mcspi_sysc = {
125273b9465SPaul Walmsley 	.rev_offs	= 0x0000,
126273b9465SPaul Walmsley 	.sysc_offs	= 0x0010,
127273b9465SPaul Walmsley 	.syss_offs	= 0x0014,
128273b9465SPaul Walmsley 	.sysc_flags	= (SYSC_HAS_CLOCKACTIVITY | SYSC_HAS_SIDLEMODE |
129273b9465SPaul Walmsley 				SYSC_HAS_ENAWAKEUP | SYSC_HAS_SOFTRESET |
130273b9465SPaul Walmsley 				SYSC_HAS_AUTOIDLE | SYSS_HAS_RESET_STATUS),
131273b9465SPaul Walmsley 	.idlemodes	= (SIDLE_FORCE | SIDLE_NO | SIDLE_SMART),
132273b9465SPaul Walmsley 	.sysc_fields	= &omap_hwmod_sysc_type1,
133273b9465SPaul Walmsley };
134273b9465SPaul Walmsley 
135273b9465SPaul Walmsley struct omap_hwmod_class omap2xxx_mcspi_class = {
136273b9465SPaul Walmsley 	.name	= "mcspi",
137273b9465SPaul Walmsley 	.sysc	= &omap2xxx_mcspi_sysc,
138273b9465SPaul Walmsley };
139cb48427eSPaul Walmsley 
140cb48427eSPaul Walmsley /*
14149484a60SAfzal Mohammed  * 'gpmc' class
14249484a60SAfzal Mohammed  * general purpose memory controller
14349484a60SAfzal Mohammed  */
14449484a60SAfzal Mohammed 
14549484a60SAfzal Mohammed static struct omap_hwmod_class_sysconfig omap2xxx_gpmc_sysc = {
14649484a60SAfzal Mohammed 	.rev_offs	= 0x0000,
14749484a60SAfzal Mohammed 	.sysc_offs	= 0x0010,
14849484a60SAfzal Mohammed 	.syss_offs	= 0x0014,
14949484a60SAfzal Mohammed 	.sysc_flags	= (SYSC_HAS_AUTOIDLE | SYSC_HAS_SIDLEMODE |
15049484a60SAfzal Mohammed 			   SYSC_HAS_SOFTRESET | SYSS_HAS_RESET_STATUS),
15149484a60SAfzal Mohammed 	.idlemodes	= (SIDLE_FORCE | SIDLE_NO | SIDLE_SMART),
15249484a60SAfzal Mohammed 	.sysc_fields	= &omap_hwmod_sysc_type1,
15349484a60SAfzal Mohammed };
15449484a60SAfzal Mohammed 
15549484a60SAfzal Mohammed static struct omap_hwmod_class omap2xxx_gpmc_hwmod_class = {
15649484a60SAfzal Mohammed 	.name	= "gpmc",
15749484a60SAfzal Mohammed 	.sysc	= &omap2xxx_gpmc_sysc,
15849484a60SAfzal Mohammed };
15949484a60SAfzal Mohammed 
16049484a60SAfzal Mohammed /*
161cb48427eSPaul Walmsley  * IP blocks
162cb48427eSPaul Walmsley  */
163cb48427eSPaul Walmsley 
164cb48427eSPaul Walmsley /* L3 */
165cb48427eSPaul Walmsley struct omap_hwmod omap2xxx_l3_main_hwmod = {
166cb48427eSPaul Walmsley 	.name		= "l3_main",
167cb48427eSPaul Walmsley 	.class		= &l3_hwmod_class,
168cb48427eSPaul Walmsley 	.flags		= HWMOD_NO_IDLEST,
169cb48427eSPaul Walmsley };
170cb48427eSPaul Walmsley 
171cb48427eSPaul Walmsley /* L4 CORE */
172cb48427eSPaul Walmsley struct omap_hwmod omap2xxx_l4_core_hwmod = {
173cb48427eSPaul Walmsley 	.name		= "l4_core",
174cb48427eSPaul Walmsley 	.class		= &l4_hwmod_class,
175cb48427eSPaul Walmsley 	.flags		= HWMOD_NO_IDLEST,
176cb48427eSPaul Walmsley };
177cb48427eSPaul Walmsley 
178cb48427eSPaul Walmsley /* L4 WKUP */
179cb48427eSPaul Walmsley struct omap_hwmod omap2xxx_l4_wkup_hwmod = {
180cb48427eSPaul Walmsley 	.name		= "l4_wkup",
181cb48427eSPaul Walmsley 	.class		= &l4_hwmod_class,
182cb48427eSPaul Walmsley 	.flags		= HWMOD_NO_IDLEST,
183cb48427eSPaul Walmsley };
184cb48427eSPaul Walmsley 
185cb48427eSPaul Walmsley /* MPU */
186cb48427eSPaul Walmsley struct omap_hwmod omap2xxx_mpu_hwmod = {
187cb48427eSPaul Walmsley 	.name		= "mpu",
188cb48427eSPaul Walmsley 	.class		= &mpu_hwmod_class,
189cb48427eSPaul Walmsley 	.main_clk	= "mpu_ck",
190cb48427eSPaul Walmsley };
191cb48427eSPaul Walmsley 
192cb48427eSPaul Walmsley /* timer3 */
193cb48427eSPaul Walmsley struct omap_hwmod omap2xxx_timer3_hwmod = {
194cb48427eSPaul Walmsley 	.name		= "timer3",
195cb48427eSPaul Walmsley 	.main_clk	= "gpt3_fck",
196cb48427eSPaul Walmsley 	.prcm		= {
197cb48427eSPaul Walmsley 		.omap2 = {
198cb48427eSPaul Walmsley 			.module_offs = CORE_MOD,
199cb48427eSPaul Walmsley 			.idlest_reg_id = 1,
200cb48427eSPaul Walmsley 			.idlest_idle_bit = OMAP24XX_ST_GPT3_SHIFT,
201cb48427eSPaul Walmsley 		},
202cb48427eSPaul Walmsley 	},
203cb48427eSPaul Walmsley 	.class		= &omap2xxx_timer_hwmod_class,
20410759e82SJon Hunter 	.flags          = HWMOD_SET_DEFAULT_CLOCKACT,
205cb48427eSPaul Walmsley };
206cb48427eSPaul Walmsley 
207cb48427eSPaul Walmsley /* timer4 */
208cb48427eSPaul Walmsley struct omap_hwmod omap2xxx_timer4_hwmod = {
209cb48427eSPaul Walmsley 	.name		= "timer4",
210cb48427eSPaul Walmsley 	.main_clk	= "gpt4_fck",
211cb48427eSPaul Walmsley 	.prcm		= {
212cb48427eSPaul Walmsley 		.omap2 = {
213cb48427eSPaul Walmsley 			.module_offs = CORE_MOD,
214cb48427eSPaul Walmsley 			.idlest_reg_id = 1,
215cb48427eSPaul Walmsley 			.idlest_idle_bit = OMAP24XX_ST_GPT4_SHIFT,
216cb48427eSPaul Walmsley 		},
217cb48427eSPaul Walmsley 	},
218cb48427eSPaul Walmsley 	.class		= &omap2xxx_timer_hwmod_class,
21910759e82SJon Hunter 	.flags          = HWMOD_SET_DEFAULT_CLOCKACT,
220cb48427eSPaul Walmsley };
221cb48427eSPaul Walmsley 
222cb48427eSPaul Walmsley /* timer5 */
223cb48427eSPaul Walmsley struct omap_hwmod omap2xxx_timer5_hwmod = {
224cb48427eSPaul Walmsley 	.name		= "timer5",
225cb48427eSPaul Walmsley 	.main_clk	= "gpt5_fck",
226cb48427eSPaul Walmsley 	.prcm		= {
227cb48427eSPaul Walmsley 		.omap2 = {
228cb48427eSPaul Walmsley 			.module_offs = CORE_MOD,
229cb48427eSPaul Walmsley 			.idlest_reg_id = 1,
230cb48427eSPaul Walmsley 			.idlest_idle_bit = OMAP24XX_ST_GPT5_SHIFT,
231cb48427eSPaul Walmsley 		},
232cb48427eSPaul Walmsley 	},
233cb48427eSPaul Walmsley 	.class		= &omap2xxx_timer_hwmod_class,
23410759e82SJon Hunter 	.flags          = HWMOD_SET_DEFAULT_CLOCKACT,
235cb48427eSPaul Walmsley };
236cb48427eSPaul Walmsley 
237cb48427eSPaul Walmsley /* timer6 */
238cb48427eSPaul Walmsley struct omap_hwmod omap2xxx_timer6_hwmod = {
239cb48427eSPaul Walmsley 	.name		= "timer6",
240cb48427eSPaul Walmsley 	.main_clk	= "gpt6_fck",
241cb48427eSPaul Walmsley 	.prcm		= {
242cb48427eSPaul Walmsley 		.omap2 = {
243cb48427eSPaul Walmsley 			.module_offs = CORE_MOD,
244cb48427eSPaul Walmsley 			.idlest_reg_id = 1,
245cb48427eSPaul Walmsley 			.idlest_idle_bit = OMAP24XX_ST_GPT6_SHIFT,
246cb48427eSPaul Walmsley 		},
247cb48427eSPaul Walmsley 	},
248cb48427eSPaul Walmsley 	.class		= &omap2xxx_timer_hwmod_class,
24910759e82SJon Hunter 	.flags          = HWMOD_SET_DEFAULT_CLOCKACT,
250cb48427eSPaul Walmsley };
251cb48427eSPaul Walmsley 
252cb48427eSPaul Walmsley /* timer7 */
253cb48427eSPaul Walmsley struct omap_hwmod omap2xxx_timer7_hwmod = {
254cb48427eSPaul Walmsley 	.name		= "timer7",
255cb48427eSPaul Walmsley 	.main_clk	= "gpt7_fck",
256cb48427eSPaul Walmsley 	.prcm		= {
257cb48427eSPaul Walmsley 		.omap2 = {
258cb48427eSPaul Walmsley 			.module_offs = CORE_MOD,
259cb48427eSPaul Walmsley 			.idlest_reg_id = 1,
260cb48427eSPaul Walmsley 			.idlest_idle_bit = OMAP24XX_ST_GPT7_SHIFT,
261cb48427eSPaul Walmsley 		},
262cb48427eSPaul Walmsley 	},
263cb48427eSPaul Walmsley 	.class		= &omap2xxx_timer_hwmod_class,
26410759e82SJon Hunter 	.flags          = HWMOD_SET_DEFAULT_CLOCKACT,
265cb48427eSPaul Walmsley };
266cb48427eSPaul Walmsley 
267cb48427eSPaul Walmsley /* timer8 */
268cb48427eSPaul Walmsley struct omap_hwmod omap2xxx_timer8_hwmod = {
269cb48427eSPaul Walmsley 	.name		= "timer8",
270cb48427eSPaul Walmsley 	.main_clk	= "gpt8_fck",
271cb48427eSPaul Walmsley 	.prcm		= {
272cb48427eSPaul Walmsley 		.omap2 = {
273cb48427eSPaul Walmsley 			.module_offs = CORE_MOD,
274cb48427eSPaul Walmsley 			.idlest_reg_id = 1,
275cb48427eSPaul Walmsley 			.idlest_idle_bit = OMAP24XX_ST_GPT8_SHIFT,
276cb48427eSPaul Walmsley 		},
277cb48427eSPaul Walmsley 	},
278cb48427eSPaul Walmsley 	.class		= &omap2xxx_timer_hwmod_class,
27910759e82SJon Hunter 	.flags          = HWMOD_SET_DEFAULT_CLOCKACT,
280cb48427eSPaul Walmsley };
281cb48427eSPaul Walmsley 
282cb48427eSPaul Walmsley /* timer9 */
283cb48427eSPaul Walmsley struct omap_hwmod omap2xxx_timer9_hwmod = {
284cb48427eSPaul Walmsley 	.name		= "timer9",
285cb48427eSPaul Walmsley 	.main_clk	= "gpt9_fck",
286cb48427eSPaul Walmsley 	.prcm		= {
287cb48427eSPaul Walmsley 		.omap2 = {
288cb48427eSPaul Walmsley 			.module_offs = CORE_MOD,
289cb48427eSPaul Walmsley 			.idlest_reg_id = 1,
290cb48427eSPaul Walmsley 			.idlest_idle_bit = OMAP24XX_ST_GPT9_SHIFT,
291cb48427eSPaul Walmsley 		},
292cb48427eSPaul Walmsley 	},
293cb48427eSPaul Walmsley 	.class		= &omap2xxx_timer_hwmod_class,
29410759e82SJon Hunter 	.flags          = HWMOD_SET_DEFAULT_CLOCKACT,
295cb48427eSPaul Walmsley };
296cb48427eSPaul Walmsley 
297cb48427eSPaul Walmsley /* timer10 */
298cb48427eSPaul Walmsley struct omap_hwmod omap2xxx_timer10_hwmod = {
299cb48427eSPaul Walmsley 	.name		= "timer10",
300cb48427eSPaul Walmsley 	.main_clk	= "gpt10_fck",
301cb48427eSPaul Walmsley 	.prcm		= {
302cb48427eSPaul Walmsley 		.omap2 = {
303cb48427eSPaul Walmsley 			.module_offs = CORE_MOD,
304cb48427eSPaul Walmsley 			.idlest_reg_id = 1,
305cb48427eSPaul Walmsley 			.idlest_idle_bit = OMAP24XX_ST_GPT10_SHIFT,
306cb48427eSPaul Walmsley 		},
307cb48427eSPaul Walmsley 	},
308cb48427eSPaul Walmsley 	.class		= &omap2xxx_timer_hwmod_class,
30910759e82SJon Hunter 	.flags          = HWMOD_SET_DEFAULT_CLOCKACT,
310cb48427eSPaul Walmsley };
311cb48427eSPaul Walmsley 
312cb48427eSPaul Walmsley /* timer11 */
313cb48427eSPaul Walmsley struct omap_hwmod omap2xxx_timer11_hwmod = {
314cb48427eSPaul Walmsley 	.name		= "timer11",
315cb48427eSPaul Walmsley 	.main_clk	= "gpt11_fck",
316cb48427eSPaul Walmsley 	.prcm		= {
317cb48427eSPaul Walmsley 		.omap2 = {
318cb48427eSPaul Walmsley 			.module_offs = CORE_MOD,
319cb48427eSPaul Walmsley 			.idlest_reg_id = 1,
320cb48427eSPaul Walmsley 			.idlest_idle_bit = OMAP24XX_ST_GPT11_SHIFT,
321cb48427eSPaul Walmsley 		},
322cb48427eSPaul Walmsley 	},
323cb48427eSPaul Walmsley 	.class		= &omap2xxx_timer_hwmod_class,
32410759e82SJon Hunter 	.flags          = HWMOD_SET_DEFAULT_CLOCKACT,
325cb48427eSPaul Walmsley };
326cb48427eSPaul Walmsley 
327cb48427eSPaul Walmsley /* timer12 */
328cb48427eSPaul Walmsley struct omap_hwmod omap2xxx_timer12_hwmod = {
329cb48427eSPaul Walmsley 	.name		= "timer12",
330cb48427eSPaul Walmsley 	.main_clk	= "gpt12_fck",
331cb48427eSPaul Walmsley 	.prcm		= {
332cb48427eSPaul Walmsley 		.omap2 = {
333cb48427eSPaul Walmsley 			.module_offs = CORE_MOD,
334cb48427eSPaul Walmsley 			.idlest_reg_id = 1,
335cb48427eSPaul Walmsley 			.idlest_idle_bit = OMAP24XX_ST_GPT12_SHIFT,
336cb48427eSPaul Walmsley 		},
337cb48427eSPaul Walmsley 	},
338cb48427eSPaul Walmsley 	.class		= &omap2xxx_timer_hwmod_class,
33910759e82SJon Hunter 	.flags          = HWMOD_SET_DEFAULT_CLOCKACT,
340cb48427eSPaul Walmsley };
341cb48427eSPaul Walmsley 
342cb48427eSPaul Walmsley /* wd_timer2 */
343cb48427eSPaul Walmsley struct omap_hwmod omap2xxx_wd_timer2_hwmod = {
344cb48427eSPaul Walmsley 	.name		= "wd_timer2",
345cb48427eSPaul Walmsley 	.class		= &omap2xxx_wd_timer_hwmod_class,
346cb48427eSPaul Walmsley 	.main_clk	= "mpu_wdt_fck",
347cb48427eSPaul Walmsley 	.prcm		= {
348cb48427eSPaul Walmsley 		.omap2 = {
349cb48427eSPaul Walmsley 			.module_offs = WKUP_MOD,
350cb48427eSPaul Walmsley 			.idlest_reg_id = 1,
351cb48427eSPaul Walmsley 			.idlest_idle_bit = OMAP24XX_ST_MPU_WDT_SHIFT,
352cb48427eSPaul Walmsley 		},
353cb48427eSPaul Walmsley 	},
354cb48427eSPaul Walmsley };
355cb48427eSPaul Walmsley 
356cb48427eSPaul Walmsley /* UART1 */
357cb48427eSPaul Walmsley 
358cb48427eSPaul Walmsley struct omap_hwmod omap2xxx_uart1_hwmod = {
359cb48427eSPaul Walmsley 	.name		= "uart1",
360cb48427eSPaul Walmsley 	.main_clk	= "uart1_fck",
3617dedd346SRajendra Nayak 	.flags		= DEBUG_OMAP2UART1_FLAGS | HWMOD_SWSUP_SIDLE_ACT,
362cb48427eSPaul Walmsley 	.prcm		= {
363cb48427eSPaul Walmsley 		.omap2 = {
364cb48427eSPaul Walmsley 			.module_offs = CORE_MOD,
365cb48427eSPaul Walmsley 			.idlest_reg_id = 1,
366cb48427eSPaul Walmsley 			.idlest_idle_bit = OMAP24XX_EN_UART1_SHIFT,
367cb48427eSPaul Walmsley 		},
368cb48427eSPaul Walmsley 	},
369cb48427eSPaul Walmsley 	.class		= &omap2_uart_class,
370cb48427eSPaul Walmsley };
371cb48427eSPaul Walmsley 
372cb48427eSPaul Walmsley /* UART2 */
373cb48427eSPaul Walmsley 
374cb48427eSPaul Walmsley struct omap_hwmod omap2xxx_uart2_hwmod = {
375cb48427eSPaul Walmsley 	.name		= "uart2",
376cb48427eSPaul Walmsley 	.main_clk	= "uart2_fck",
3777dedd346SRajendra Nayak 	.flags		= DEBUG_OMAP2UART2_FLAGS | HWMOD_SWSUP_SIDLE_ACT,
378cb48427eSPaul Walmsley 	.prcm		= {
379cb48427eSPaul Walmsley 		.omap2 = {
380cb48427eSPaul Walmsley 			.module_offs = CORE_MOD,
381cb48427eSPaul Walmsley 			.idlest_reg_id = 1,
382cb48427eSPaul Walmsley 			.idlest_idle_bit = OMAP24XX_EN_UART2_SHIFT,
383cb48427eSPaul Walmsley 		},
384cb48427eSPaul Walmsley 	},
385cb48427eSPaul Walmsley 	.class		= &omap2_uart_class,
386cb48427eSPaul Walmsley };
387cb48427eSPaul Walmsley 
388cb48427eSPaul Walmsley /* UART3 */
389cb48427eSPaul Walmsley 
390cb48427eSPaul Walmsley struct omap_hwmod omap2xxx_uart3_hwmod = {
391cb48427eSPaul Walmsley 	.name		= "uart3",
392cb48427eSPaul Walmsley 	.main_clk	= "uart3_fck",
3937dedd346SRajendra Nayak 	.flags		= DEBUG_OMAP2UART3_FLAGS | HWMOD_SWSUP_SIDLE_ACT,
394cb48427eSPaul Walmsley 	.prcm		= {
395cb48427eSPaul Walmsley 		.omap2 = {
396cb48427eSPaul Walmsley 			.module_offs = CORE_MOD,
397cb48427eSPaul Walmsley 			.idlest_reg_id = 2,
398cb48427eSPaul Walmsley 			.idlest_idle_bit = OMAP24XX_EN_UART3_SHIFT,
399cb48427eSPaul Walmsley 		},
400cb48427eSPaul Walmsley 	},
401cb48427eSPaul Walmsley 	.class		= &omap2_uart_class,
402cb48427eSPaul Walmsley };
403cb48427eSPaul Walmsley 
404cb48427eSPaul Walmsley /* dss */
405cb48427eSPaul Walmsley 
406cb48427eSPaul Walmsley static struct omap_hwmod_opt_clk dss_opt_clks[] = {
407cb48427eSPaul Walmsley 	/*
408cb48427eSPaul Walmsley 	 * The DSS HW needs all DSS clocks enabled during reset. The dss_core
409cb48427eSPaul Walmsley 	 * driver does not use these clocks.
410cb48427eSPaul Walmsley 	 */
411cb48427eSPaul Walmsley 	{ .role = "tv_clk", .clk = "dss_54m_fck" },
412cb48427eSPaul Walmsley 	{ .role = "sys_clk", .clk = "dss2_fck" },
413cb48427eSPaul Walmsley };
414cb48427eSPaul Walmsley 
415cb48427eSPaul Walmsley struct omap_hwmod omap2xxx_dss_core_hwmod = {
416cb48427eSPaul Walmsley 	.name		= "dss_core",
417cb48427eSPaul Walmsley 	.class		= &omap2_dss_hwmod_class,
418cb48427eSPaul Walmsley 	.main_clk	= "dss1_fck", /* instead of dss_fck */
419cb48427eSPaul Walmsley 	.prcm		= {
420cb48427eSPaul Walmsley 		.omap2 = {
421cb48427eSPaul Walmsley 			.module_offs = CORE_MOD,
422cb48427eSPaul Walmsley 			.idlest_reg_id = 1,
423cb48427eSPaul Walmsley 		},
424cb48427eSPaul Walmsley 	},
425cb48427eSPaul Walmsley 	.opt_clks	= dss_opt_clks,
426cb48427eSPaul Walmsley 	.opt_clks_cnt = ARRAY_SIZE(dss_opt_clks),
427cb48427eSPaul Walmsley 	.flags		= HWMOD_NO_IDLEST | HWMOD_CONTROL_OPT_CLKS_IN_RESET,
428cb48427eSPaul Walmsley };
429cb48427eSPaul Walmsley 
430cb48427eSPaul Walmsley struct omap_hwmod omap2xxx_dss_dispc_hwmod = {
431cb48427eSPaul Walmsley 	.name		= "dss_dispc",
432cb48427eSPaul Walmsley 	.class		= &omap2_dispc_hwmod_class,
433cb48427eSPaul Walmsley 	.main_clk	= "dss1_fck",
434cb48427eSPaul Walmsley 	.prcm		= {
435cb48427eSPaul Walmsley 		.omap2 = {
436cb48427eSPaul Walmsley 			.module_offs = CORE_MOD,
437cb48427eSPaul Walmsley 			.idlest_reg_id = 1,
438cb48427eSPaul Walmsley 		},
439cb48427eSPaul Walmsley 	},
440cb48427eSPaul Walmsley 	.flags		= HWMOD_NO_IDLEST,
441b05ef215STony Lindgren 	.dev_attr	= &omap2_3_dss_dispc_dev_attr,
442cb48427eSPaul Walmsley };
443cb48427eSPaul Walmsley 
444cb48427eSPaul Walmsley static struct omap_hwmod_opt_clk dss_rfbi_opt_clks[] = {
445cb48427eSPaul Walmsley 	{ .role = "ick", .clk = "dss_ick" },
446cb48427eSPaul Walmsley };
447cb48427eSPaul Walmsley 
448cb48427eSPaul Walmsley struct omap_hwmod omap2xxx_dss_rfbi_hwmod = {
449cb48427eSPaul Walmsley 	.name		= "dss_rfbi",
450cb48427eSPaul Walmsley 	.class		= &omap2_rfbi_hwmod_class,
451cb48427eSPaul Walmsley 	.main_clk	= "dss1_fck",
452cb48427eSPaul Walmsley 	.prcm		= {
453cb48427eSPaul Walmsley 		.omap2 = {
454cb48427eSPaul Walmsley 			.module_offs = CORE_MOD,
455cb48427eSPaul Walmsley 		},
456cb48427eSPaul Walmsley 	},
457cb48427eSPaul Walmsley 	.opt_clks	= dss_rfbi_opt_clks,
458cb48427eSPaul Walmsley 	.opt_clks_cnt	= ARRAY_SIZE(dss_rfbi_opt_clks),
459cb48427eSPaul Walmsley 	.flags		= HWMOD_NO_IDLEST,
460cb48427eSPaul Walmsley };
461cb48427eSPaul Walmsley 
462cb48427eSPaul Walmsley struct omap_hwmod omap2xxx_dss_venc_hwmod = {
463cb48427eSPaul Walmsley 	.name		= "dss_venc",
464cb48427eSPaul Walmsley 	.class		= &omap2_venc_hwmod_class,
465cb48427eSPaul Walmsley 	.main_clk	= "dss_54m_fck",
466cb48427eSPaul Walmsley 	.prcm		= {
467cb48427eSPaul Walmsley 		.omap2 = {
468cb48427eSPaul Walmsley 			.module_offs = CORE_MOD,
469cb48427eSPaul Walmsley 		},
470cb48427eSPaul Walmsley 	},
471cb48427eSPaul Walmsley 	.flags		= HWMOD_NO_IDLEST,
472cb48427eSPaul Walmsley };
473cb48427eSPaul Walmsley 
474cb48427eSPaul Walmsley /* gpio1 */
475cb48427eSPaul Walmsley struct omap_hwmod omap2xxx_gpio1_hwmod = {
476cb48427eSPaul Walmsley 	.name		= "gpio1",
477cb48427eSPaul Walmsley 	.flags		= HWMOD_CONTROL_OPT_CLKS_IN_RESET,
478cb48427eSPaul Walmsley 	.main_clk	= "gpios_fck",
479cb48427eSPaul Walmsley 	.prcm		= {
480cb48427eSPaul Walmsley 		.omap2 = {
481cb48427eSPaul Walmsley 			.module_offs = WKUP_MOD,
482cb48427eSPaul Walmsley 			.idlest_reg_id = 1,
483cb48427eSPaul Walmsley 			.idlest_idle_bit = OMAP24XX_ST_GPIOS_SHIFT,
484cb48427eSPaul Walmsley 		},
485cb48427eSPaul Walmsley 	},
486cb48427eSPaul Walmsley 	.class		= &omap2xxx_gpio_hwmod_class,
487cb48427eSPaul Walmsley };
488cb48427eSPaul Walmsley 
489cb48427eSPaul Walmsley /* gpio2 */
490cb48427eSPaul Walmsley struct omap_hwmod omap2xxx_gpio2_hwmod = {
491cb48427eSPaul Walmsley 	.name		= "gpio2",
492cb48427eSPaul Walmsley 	.flags		= HWMOD_CONTROL_OPT_CLKS_IN_RESET,
493cb48427eSPaul Walmsley 	.main_clk	= "gpios_fck",
494cb48427eSPaul Walmsley 	.prcm		= {
495cb48427eSPaul Walmsley 		.omap2 = {
496cb48427eSPaul Walmsley 			.module_offs = WKUP_MOD,
497cb48427eSPaul Walmsley 			.idlest_reg_id = 1,
498cb48427eSPaul Walmsley 			.idlest_idle_bit = OMAP24XX_ST_GPIOS_SHIFT,
499cb48427eSPaul Walmsley 		},
500cb48427eSPaul Walmsley 	},
501cb48427eSPaul Walmsley 	.class		= &omap2xxx_gpio_hwmod_class,
502cb48427eSPaul Walmsley };
503cb48427eSPaul Walmsley 
504cb48427eSPaul Walmsley /* gpio3 */
505cb48427eSPaul Walmsley struct omap_hwmod omap2xxx_gpio3_hwmod = {
506cb48427eSPaul Walmsley 	.name		= "gpio3",
507cb48427eSPaul Walmsley 	.flags		= HWMOD_CONTROL_OPT_CLKS_IN_RESET,
508cb48427eSPaul Walmsley 	.main_clk	= "gpios_fck",
509cb48427eSPaul Walmsley 	.prcm		= {
510cb48427eSPaul Walmsley 		.omap2 = {
511cb48427eSPaul Walmsley 			.module_offs = WKUP_MOD,
512cb48427eSPaul Walmsley 			.idlest_reg_id = 1,
513cb48427eSPaul Walmsley 			.idlest_idle_bit = OMAP24XX_ST_GPIOS_SHIFT,
514cb48427eSPaul Walmsley 		},
515cb48427eSPaul Walmsley 	},
516cb48427eSPaul Walmsley 	.class		= &omap2xxx_gpio_hwmod_class,
517cb48427eSPaul Walmsley };
518cb48427eSPaul Walmsley 
519cb48427eSPaul Walmsley /* gpio4 */
520cb48427eSPaul Walmsley struct omap_hwmod omap2xxx_gpio4_hwmod = {
521cb48427eSPaul Walmsley 	.name		= "gpio4",
522cb48427eSPaul Walmsley 	.flags		= HWMOD_CONTROL_OPT_CLKS_IN_RESET,
523cb48427eSPaul Walmsley 	.main_clk	= "gpios_fck",
524cb48427eSPaul Walmsley 	.prcm		= {
525cb48427eSPaul Walmsley 		.omap2 = {
526cb48427eSPaul Walmsley 			.module_offs = WKUP_MOD,
527cb48427eSPaul Walmsley 			.idlest_reg_id = 1,
528cb48427eSPaul Walmsley 			.idlest_idle_bit = OMAP24XX_ST_GPIOS_SHIFT,
529cb48427eSPaul Walmsley 		},
530cb48427eSPaul Walmsley 	},
531cb48427eSPaul Walmsley 	.class		= &omap2xxx_gpio_hwmod_class,
532cb48427eSPaul Walmsley };
533cb48427eSPaul Walmsley 
534cb48427eSPaul Walmsley /* mcspi1 */
535cb48427eSPaul Walmsley struct omap_hwmod omap2xxx_mcspi1_hwmod = {
536cb48427eSPaul Walmsley 	.name		= "mcspi1",
537cb48427eSPaul Walmsley 	.main_clk	= "mcspi1_fck",
538cb48427eSPaul Walmsley 	.prcm		= {
539cb48427eSPaul Walmsley 		.omap2 = {
540cb48427eSPaul Walmsley 			.module_offs = CORE_MOD,
541cb48427eSPaul Walmsley 			.idlest_reg_id = 1,
542cb48427eSPaul Walmsley 			.idlest_idle_bit = OMAP24XX_ST_MCSPI1_SHIFT,
543cb48427eSPaul Walmsley 		},
544cb48427eSPaul Walmsley 	},
545cb48427eSPaul Walmsley 	.class		= &omap2xxx_mcspi_class,
546cb48427eSPaul Walmsley };
547cb48427eSPaul Walmsley 
548cb48427eSPaul Walmsley /* mcspi2 */
549cb48427eSPaul Walmsley struct omap_hwmod omap2xxx_mcspi2_hwmod = {
550cb48427eSPaul Walmsley 	.name		= "mcspi2",
551cb48427eSPaul Walmsley 	.main_clk	= "mcspi2_fck",
552cb48427eSPaul Walmsley 	.prcm		= {
553cb48427eSPaul Walmsley 		.omap2 = {
554cb48427eSPaul Walmsley 			.module_offs = CORE_MOD,
555cb48427eSPaul Walmsley 			.idlest_reg_id = 1,
556cb48427eSPaul Walmsley 			.idlest_idle_bit = OMAP24XX_ST_MCSPI2_SHIFT,
557cb48427eSPaul Walmsley 		},
558cb48427eSPaul Walmsley 	},
559cb48427eSPaul Walmsley 	.class		= &omap2xxx_mcspi_class,
560cb48427eSPaul Walmsley };
561c8d82ff6SVaibhav Hiremath 
56249484a60SAfzal Mohammed /* gpmc */
56349484a60SAfzal Mohammed struct omap_hwmod omap2xxx_gpmc_hwmod = {
56449484a60SAfzal Mohammed 	.name		= "gpmc",
56549484a60SAfzal Mohammed 	.class		= &omap2xxx_gpmc_hwmod_class,
56649484a60SAfzal Mohammed 	.main_clk	= "gpmc_fck",
56763aa945bSTony Lindgren 	/* Skip reset for CONFIG_OMAP_GPMC_DEBUG for bootloader timings */
56863aa945bSTony Lindgren 	.flags		= HWMOD_NO_IDLEST | DEBUG_OMAP_GPMC_HWMOD_FLAGS,
56949484a60SAfzal Mohammed 	.prcm		= {
57049484a60SAfzal Mohammed 		.omap2	= {
57149484a60SAfzal Mohammed 			.module_offs = CORE_MOD,
57249484a60SAfzal Mohammed 		},
57349484a60SAfzal Mohammed 	},
57449484a60SAfzal Mohammed };
575e9b0a2fbSPaul Walmsley 
576e9b0a2fbSPaul Walmsley /* RNG */
577e9b0a2fbSPaul Walmsley 
578e9b0a2fbSPaul Walmsley static struct omap_hwmod_class_sysconfig omap2_rng_sysc = {
579e9b0a2fbSPaul Walmsley 	.rev_offs	= 0x3c,
580e9b0a2fbSPaul Walmsley 	.sysc_offs	= 0x40,
581e9b0a2fbSPaul Walmsley 	.syss_offs	= 0x44,
582e9b0a2fbSPaul Walmsley 	.sysc_flags	= (SYSC_HAS_SOFTRESET | SYSC_HAS_AUTOIDLE |
583e9b0a2fbSPaul Walmsley 			   SYSS_HAS_RESET_STATUS),
584e9b0a2fbSPaul Walmsley 	.sysc_fields	= &omap_hwmod_sysc_type1,
585e9b0a2fbSPaul Walmsley };
586e9b0a2fbSPaul Walmsley 
587e9b0a2fbSPaul Walmsley static struct omap_hwmod_class omap2_rng_hwmod_class = {
588e9b0a2fbSPaul Walmsley 	.name		= "rng",
589e9b0a2fbSPaul Walmsley 	.sysc		= &omap2_rng_sysc,
590e9b0a2fbSPaul Walmsley };
591e9b0a2fbSPaul Walmsley 
592e9b0a2fbSPaul Walmsley struct omap_hwmod omap2xxx_rng_hwmod = {
593e9b0a2fbSPaul Walmsley 	.name		= "rng",
594e9b0a2fbSPaul Walmsley 	.main_clk	= "l4_ck",
595e9b0a2fbSPaul Walmsley 	.prcm		= {
596e9b0a2fbSPaul Walmsley 		.omap2 = {
597e9b0a2fbSPaul Walmsley 			.module_offs = CORE_MOD,
598e9b0a2fbSPaul Walmsley 			.idlest_reg_id = 4,
599e9b0a2fbSPaul Walmsley 			.idlest_idle_bit = OMAP24XX_ST_RNG_SHIFT,
600e9b0a2fbSPaul Walmsley 		},
601e9b0a2fbSPaul Walmsley 	},
602e9b0a2fbSPaul Walmsley 	/*
603e9b0a2fbSPaul Walmsley 	 * XXX The first read from the SYSSTATUS register of the RNG
604e9b0a2fbSPaul Walmsley 	 * after the SYSCONFIG SOFTRESET bit is set triggers an
605e9b0a2fbSPaul Walmsley 	 * imprecise external abort.  It's unclear why this happens.
606e9b0a2fbSPaul Walmsley 	 * Until this is analyzed, skip the IP block reset.
607e9b0a2fbSPaul Walmsley 	 */
608e9b0a2fbSPaul Walmsley 	.flags		= HWMOD_INIT_NO_RESET,
609e9b0a2fbSPaul Walmsley 	.class		= &omap2_rng_hwmod_class,
610e9b0a2fbSPaul Walmsley };
611e569e994SMark A. Greer 
612e569e994SMark A. Greer /* SHAM */
613e569e994SMark A. Greer 
614e569e994SMark A. Greer static struct omap_hwmod_class_sysconfig omap2_sham_sysc = {
615e569e994SMark A. Greer 	.rev_offs	= 0x5c,
616e569e994SMark A. Greer 	.sysc_offs	= 0x60,
617e569e994SMark A. Greer 	.syss_offs	= 0x64,
618e569e994SMark A. Greer 	.sysc_flags	= (SYSC_HAS_SOFTRESET | SYSC_HAS_AUTOIDLE |
619e569e994SMark A. Greer 			   SYSS_HAS_RESET_STATUS),
620e569e994SMark A. Greer 	.sysc_fields	= &omap_hwmod_sysc_type1,
621e569e994SMark A. Greer };
622e569e994SMark A. Greer 
623e569e994SMark A. Greer static struct omap_hwmod_class omap2xxx_sham_class = {
624e569e994SMark A. Greer 	.name	= "sham",
625e569e994SMark A. Greer 	.sysc	= &omap2_sham_sysc,
626e569e994SMark A. Greer };
627e569e994SMark A. Greer 
628e569e994SMark A. Greer struct omap_hwmod omap2xxx_sham_hwmod = {
629e569e994SMark A. Greer 	.name		= "sham",
630e569e994SMark A. Greer 	.main_clk	= "l4_ck",
631e569e994SMark A. Greer 	.prcm		= {
632e569e994SMark A. Greer 		.omap2 = {
633e569e994SMark A. Greer 			.module_offs = CORE_MOD,
634e569e994SMark A. Greer 			.idlest_reg_id = 4,
635e569e994SMark A. Greer 			.idlest_idle_bit = OMAP24XX_ST_SHA_SHIFT,
636e569e994SMark A. Greer 		},
637e569e994SMark A. Greer 	},
638e569e994SMark A. Greer 	.class		= &omap2xxx_sham_class,
639e569e994SMark A. Greer };
640660ffd6bSMark A. Greer 
641660ffd6bSMark A. Greer /* AES */
642660ffd6bSMark A. Greer 
643660ffd6bSMark A. Greer static struct omap_hwmod_class_sysconfig omap2_aes_sysc = {
644660ffd6bSMark A. Greer 	.rev_offs	= 0x44,
645660ffd6bSMark A. Greer 	.sysc_offs	= 0x48,
646660ffd6bSMark A. Greer 	.syss_offs	= 0x4c,
647660ffd6bSMark A. Greer 	.sysc_flags	= (SYSC_HAS_SOFTRESET | SYSC_HAS_AUTOIDLE |
648660ffd6bSMark A. Greer 			   SYSS_HAS_RESET_STATUS),
649660ffd6bSMark A. Greer 	.sysc_fields	= &omap_hwmod_sysc_type1,
650660ffd6bSMark A. Greer };
651660ffd6bSMark A. Greer 
652660ffd6bSMark A. Greer static struct omap_hwmod_class omap2xxx_aes_class = {
653660ffd6bSMark A. Greer 	.name	= "aes",
654660ffd6bSMark A. Greer 	.sysc	= &omap2_aes_sysc,
655660ffd6bSMark A. Greer };
656660ffd6bSMark A. Greer 
657660ffd6bSMark A. Greer struct omap_hwmod omap2xxx_aes_hwmod = {
658660ffd6bSMark A. Greer 	.name		= "aes",
659660ffd6bSMark A. Greer 	.main_clk	= "l4_ck",
660660ffd6bSMark A. Greer 	.prcm		= {
661660ffd6bSMark A. Greer 		.omap2 = {
662660ffd6bSMark A. Greer 			.module_offs = CORE_MOD,
663660ffd6bSMark A. Greer 			.idlest_reg_id = 4,
664660ffd6bSMark A. Greer 			.idlest_idle_bit = OMAP24XX_ST_AES_SHIFT,
665660ffd6bSMark A. Greer 		},
666660ffd6bSMark A. Greer 	},
667660ffd6bSMark A. Greer 	.class		= &omap2xxx_aes_class,
668660ffd6bSMark A. Greer };
669