1 /*
2  * omap_hwmod common data structures
3  *
4  * Copyright (C) 2010 Texas Instruments, Inc.
5  * Thara Gopinath <thara@ti.com>
6  * Benoît Cousson
7  *
8  * Copyright (C) 2010 Nokia Corporation
9  * Paul Walmsley
10  *
11  * This program is free software; you can redistribute it and/or modify
12  * it under the terms of the GNU General Public License version 2 as
13  * published by the Free Software Foundation.
14  *
15  * This data/structures are to be used while defining OMAP on-chip module
16  * data and their integration with other OMAP modules and Linux.
17  */
18 
19 #include <linux/types.h>
20 #include <linux/platform_data/ti-sysc.h>
21 
22 #include "omap_hwmod.h"
23 
24 #include "omap_hwmod_common_data.h"
25 
26 /**
27  * struct omap_hwmod_sysc_type1 - TYPE1 sysconfig scheme.
28  *
29  * To be used by hwmod structure to specify the sysconfig offsets
30  * if the device ip is compliant with the original PRCM protocol
31  * defined for OMAP2420.
32  */
33 struct sysc_regbits omap_hwmod_sysc_type1 = {
34 	.midle_shift	= SYSC_TYPE1_MIDLEMODE_SHIFT,
35 	.clkact_shift	= SYSC_TYPE1_CLOCKACTIVITY_SHIFT,
36 	.sidle_shift	= SYSC_TYPE1_SIDLEMODE_SHIFT,
37 	.enwkup_shift	= SYSC_TYPE1_ENAWAKEUP_SHIFT,
38 	.srst_shift	= SYSC_TYPE1_SOFTRESET_SHIFT,
39 	.autoidle_shift	= SYSC_TYPE1_AUTOIDLE_SHIFT,
40 };
41 
42 /**
43  * struct omap_hwmod_sysc_type2 - TYPE2 sysconfig scheme.
44  *
45  * To be used by hwmod structure to specify the sysconfig offsets if the
46  * device ip is compliant with the new PRCM protocol defined for new
47  * OMAP4 IPs.
48  */
49 struct sysc_regbits omap_hwmod_sysc_type2 = {
50 	.midle_shift	= SYSC_TYPE2_MIDLEMODE_SHIFT,
51 	.sidle_shift	= SYSC_TYPE2_SIDLEMODE_SHIFT,
52 	.srst_shift	= SYSC_TYPE2_SOFTRESET_SHIFT,
53 	.dmadisable_shift = SYSC_TYPE2_DMADISABLE_SHIFT,
54 };
55 
56 /**
57  * struct omap_hwmod_sysc_type3 - TYPE3 sysconfig scheme.
58  * Used by some IPs on AM33xx
59  */
60 struct sysc_regbits omap_hwmod_sysc_type3 = {
61 	.midle_shift	= SYSC_TYPE3_MIDLEMODE_SHIFT,
62 	.sidle_shift	= SYSC_TYPE3_SIDLEMODE_SHIFT,
63 };
64 
65 struct omap_dss_dispc_dev_attr omap2_3_dss_dispc_dev_attr = {
66 	.manager_count		= 2,
67 	.has_framedonetv_irq	= 0
68 };
69 
70 struct sysc_regbits omap34xx_sr_sysc_fields = {
71 	.clkact_shift	= 20,
72 };
73 
74 struct sysc_regbits omap36xx_sr_sysc_fields = {
75 	.sidle_shift	= 24,
76 	.enwkup_shift	= 26,
77 };
78 
79 struct sysc_regbits omap3_sham_sysc_fields = {
80 	.sidle_shift	= 4,
81 	.srst_shift	= 1,
82 	.autoidle_shift	= 0,
83 };
84 
85 struct sysc_regbits omap3xxx_aes_sysc_fields = {
86 	.sidle_shift	= 6,
87 	.srst_shift	= 1,
88 	.autoidle_shift	= 0,
89 };
90 
91 struct sysc_regbits omap_hwmod_sysc_type_mcasp = {
92 	.sidle_shift	= 0,
93 };
94 
95 struct sysc_regbits omap_hwmod_sysc_type_usb_host_fs = {
96 	.midle_shift	= 4,
97 	.sidle_shift	= 2,
98 	.srst_shift	= 1,
99 };
100