summaryrefslogtreecommitdiff
path: root/sys/arch/armv7/omap/omap3_prcmreg.h
blob: 02f5e7ea73f959c084c4b1387b38a3687c93a4ea (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
/* $OpenBSD: omap3_prcmreg.h,v 1.3 2013/10/28 11:11:50 rapha Exp $ */
/*
 * Copyright (c) 2007, 2009, 2012 Dale Rahn <drahn@dalerahn.com>
 *
 * Permission to use, copy, modify, and distribute this software for any
 * purpose with or without fee is hereby granted, provided that the above
 * copyright notice and this permission notice appear in all copies.
 *
 * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
 * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
 * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
 * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
 * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
 * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
 * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
 */

/* XXX - verify these definitions and correctly merge them with omap4 */
#define	CM_FCLKEN_IVA2		0x0000
#define	CM_CLKEN_PLL_IVA2	0x0004
#define	CM_IDLEST_IVA2		0x0020
#define	CM_IDLEST_PLL_IVA2	0x0024
#define	CM_AUTOIDLE_PLL_IVA2	0x0034
#define	CM_CLKSEL1_PLL_IVA2	0x0040
#define	CM_CLKSEL2_PLL_IVA2	0x0044
#define	CM_CLKSTCTRL_IVA2	0x0048
#define	CM_CLKSTST_IVA2		0x004c
#define	CM_CLKSEL_MPU		0x0940
#define	CM_CLKSTCTRL_MPU	0x0948
#define	RM_RSTST_MPU		0x0958
#define	PM_WKDEP_MPU		0x09C8
#define	PM_EVGENCTRL_MPU	0x09D4
#define	PM_EVEGENONTIM_MPU	0x09D8
#define	PM_EVEGENOFFTIM_MPU	0x09DC
#define	PM_PWSTCTRL_MPU		0x09E0
#define	PM_PWSTST_MPU		0x09E4
#define	CM_FCLKEN1_CORE		0x0a00
#define	CM_FCLKEN1_CORE_MSK	0x41fffe00
#define	CM_FCLKEN2_CORE		0x0a04
#define	CM_FCLKEN2_CORE_MSK	0x00000000
#define	CM_FCLKEN3_CORE		0x0a08
#define	CM_FCLKEN3_CORE_MSK	0x00000007
#define	CM_ICLKEN1_CORE		0x0a10
#define	CM_ICLKEN1_CORE_MSK	0x7ffffed2
#define	CM_ICLKEN2_CORE		0x0a14
#define	CM_ICLKEN2_CORE_MSK	0x0000001f
#define	CM_ICLKEN3_CORE		0x0a18
#define	CM_ICLKEN3_CORE_MSK	0x00000004
#define	CM_ICLKEN4_CORE		0x0a1C
#define	CM_IDLEST1_CORE		0x0a20
#define	CM_IDLEST2_CORE		0x0a24
#define	CM_IDLEST4_CORE		0x0a2C
#define	CM_AUTOIDLE1_CORE	0x0a30
#define	CM_AUTOIDLE2_CORE	0x0a34
#define	CM_AUTOIDLE3_CORE	0x0a38
#define	CM_AUTOIDLE4_CORE	0x0a3C
#define	CM_CLKSEL1_CORE		0x0a40
#define	CM_CLKSEL2_CORE		0x0a44
#define	CM_CLKSTCTRL_CORE	0x0a48
#define	PM_WKEN1_CORE		0x0aA0
#define	PM_WKEN2_CORE		0x0aA4
#define	PM_WKST1_CORE		0x0aB0
#define	PM_WKST2_CORE		0x0aB4
#define	PM_WKDEP_CORE		0x0aC8
#define	PM_PWSTCTRL_CORE	0x0aE0
#define	PM_PWSTST_CORE		0x0aE4
#define	CM_FCLKEN_GFX		0x0b00
#define	CM_ICLKEN_GFX		0x0b10
#define	CM_IDLEST_GFX		0x0b20
#define	CM_CLKSEL_GFX		0x0b40
#define	CM_CLKSTCTRL_GFX	0x0b48
#define	RM_RSTCTRL_GFX		0x0b50
#define	RM_RSTST_GFX		0x0b58
#define	PM_WKDEP_GFX		0x0bC8
#define	PM_PWSTCTRL_GFX		0x0bE0
#define	PM_PWSTST_GFX		0x0bE4
#define	CM_FCLKEN_WKUP		0x0c00
#define CM_FCLKEN_WKUP_MSK	0x00000029
#define	CM_ICLKEN_WKUP		0x0c10
#define CM_ICLKEN_WKUP_MSK	0x0000002d
#define	CM_IDLEST_WKUP		0x0c20
#define	CM_AUTOIDLE_WKUP	0x0c30
#define	CM_CLKSEL_WKUP		0x0c40
#define	RM_RSTCTRL_WKUP		0x0c50
#define	RM_RSTTIME_WKUP		0x0c54
#define	RM_RSTST_WKUP		0x0c58
#define	PM_WKEN_WKUP		0x0cA0
#define	PM_WKST_WKUP		0x0cB0
#define	CM_CLKEN_PLL		0x0d00
#define	CM_CLKEN2_PLL		0x0d04
#define	CM_IDLEST_CKGEN		0x0d20
#define	CM_AUTOIDLE_PLL		0x0d30
#define	CM_AUTOIDLE2_PLL	0x0d34
#define	CM_CLKSEL1_PLL		0x0d40
#define	CM_CLKSEL2_PLL		0x0d44
#define	CM_CLKSEL3_PLL		0x0d48
#define	CM_CLKSEL4_PLL		0x0d4C
#define	CM_CLKSEL5_PLL		0x0d50
#define	CM_FCLKEN_PER		0x1000
#define CM_FCLKEN_PER_MSK	0x0003ffff
#define	CM_ICLKEN_PER		0x1010
#define CM_ICLKEN_PER_MSK	0x0003ffff
#define	CM_IDLEST_PER		0x1020
#define	CM_AUTOIDLE_PER		0x1030
#define	CM_CLKSEL_PER		0x1040
#define	CM_SLEEPDEP_PER		0x1044
#define	CM_CLKSTCTRL_PER	0x1048
#define	CM_CLKSTST_PER		0x104C
#define	CM_CLKSEL1_EMU		0x1140
#define	CM_CLKSTCTRL_EMU	0x1148
#define	CM_CLKSTST_EMU		0x114C
#define	CM_CLKSEL2_EMU		0x1150
#define	CM_CLKSEL3_EMU		0x1154
#define	CM_POLCTRL		0x129C
#define	CM_IDLEST_NEON		0x1320
#define	CM_CLKSTCTRL_NEON	0x1348
#define	CM_FCLKEN_USBHOST	0x1400
#define	CM_FCLKEN_USBHOST_MSK	0x00000003
#define	CM_ICLKEN_USBHOST	0x1410
#define	CM_ICLKEN_USBHOST_MSK	0x00000001
#define	CM_IDLEST_USBHOST	0x1420
#define	CM_AUTOIDLE_USBHOST	0x1430
#define	CM_SLEEPDEP_USBHOST	0x1444
#define	CM_CLKSTCTRL_USBHOST	0x1448
#define	CM_CLKSTST_USBHOST	0x144C


#define	PRCM_REG_CORE_CLK1	0
#define	PRCM_REG_CORE_CLK1_FADDR	CM_FCLKEN1_CORE
#define	PRCM_REG_CORE_CLK1_IADDR	CM_ICLKEN1_CORE
#define	PRCM_REG_CORE_CLK1_FMASK	CM_FCLKEN1_CORE_MSK
#define	PRCM_REG_CORE_CLK1_IMASK	CM_ICLKEN1_CORE_MSK
#define	PRCM_REG_CORE_CLK1_BASE	(PRCM_REG_CORE_CLK1*32)
#define		PRCM_CLK_EN_MMC3	(PRCM_REG_CORE_CLK1_BASE + 30)
#define		PRCM_CLK_EN_ICR		(PRCM_REG_CORE_CLK1_BASE + 29)
#define		PRCM_CLK_EN_AES2 	(PRCM_REG_CORE_CLK1_BASE + 28)
#define		PRCM_CLK_EN_SHA12 	(PRCM_REG_CORE_CLK1_BASE + 27)
#define		PRCM_CLK_EN_DES2 	(PRCM_REG_CORE_CLK1_BASE + 26)
#define		PRCM_CLK_EN_MMC2	(PRCM_REG_CORE_CLK1_BASE + 25)
#define		PRCM_CLK_EN_MMC1	(PRCM_REG_CORE_CLK1_BASE + 24)
#define		PRCM_CLK_EN_MSPRO	(PRCM_REG_CORE_CLK1_BASE + 23)
#define		PRCM_CLK_EN_HDQ		(PRCM_REG_CORE_CLK1_BASE + 22)
#define		PRCM_CLK_EN_MCSPI4	(PRCM_REG_CORE_CLK1_BASE + 21)
#define		PRCM_CLK_EN_MCSPI3	(PRCM_REG_CORE_CLK1_BASE + 20)
#define		PRCM_CLK_EN_MCSPI2	(PRCM_REG_CORE_CLK1_BASE + 19)
#define		PRCM_CLK_EN_MCSPI1	(PRCM_REG_CORE_CLK1_BASE + 18)
#define		PRCM_CLK_EN_I2C3	(PRCM_REG_CORE_CLK1_BASE + 17)
#define		PRCM_CLK_EN_I2C2	(PRCM_REG_CORE_CLK1_BASE + 16)
#define		PRCM_CLK_EN_I2C1	(PRCM_REG_CORE_CLK1_BASE + 15)
#define		PRCM_CLK_EN_UART2	(PRCM_REG_CORE_CLK1_BASE + 14)
#define		PRCM_CLK_EN_UART1	(PRCM_REG_CORE_CLK1_BASE + 13)
#define		PRCM_CLK_EN_GPT11	(PRCM_REG_CORE_CLK1_BASE + 12)
#define		PRCM_CLK_EN_GPT10	(PRCM_REG_CORE_CLK1_BASE + 11)
#define		PRCM_CLK_EN_MCBSP5	(PRCM_REG_CORE_CLK1_BASE + 10)
#define		PRCM_CLK_EN_MCBSP1	(PRCM_REG_CORE_CLK1_BASE + 9)
#define		PRCM_CLK_EN_MAILBOXES 	(PRCM_REG_CORE_CLK1_BASE + 7)
#define		PRCM_CLK_EN_OMAPCTRL 	(PRCM_REG_CORE_CLK1_BASE + 6)
#define		PRCM_CLK_EN_HSOTGUSB 	(PRCM_REG_CORE_CLK1_BASE + 4)
#define		PRCM_CLK_EN_SDRC 	(PRCM_REG_CORE_CLK1_BASE + 1)

#define	PRCM_REG_CORE_CLK2	1
#define	PRCM_REG_CORE_CLK2_FADDR	CM_FCLKEN2_CORE
#define	PRCM_REG_CORE_CLK2_IADDR	CM_ICLKEN2_CORE
#define	PRCM_REG_CORE_CLK2_FMASK	CM_FCLKEN2_CORE_MSK
#define	PRCM_REG_CORE_CLK2_IMASK	CM_ICLKEN2_CORE_MSK
#define	PRCM_REG_CORE_CLK2_BASE	(PRCM_REG_CORE_CLK2*32)

#define	PRCM_REG_CORE_CLK3	2
#define	PRCM_REG_CORE_CLK3_FADDR	CM_FCLKEN3_CORE
#define	PRCM_REG_CORE_CLK3_IADDR	CM_ICLKEN3_CORE
#define	PRCM_REG_CORE_CLK3_FMASK	CM_FCLKEN3_CORE_MSK
#define	PRCM_REG_CORE_CLK3_IMASK	CM_ICLKEN3_CORE_MSK
#define	PRCM_REG_CORE_CLK3_BASE	(PRCM_REG_CORE_CLK3*32)
#define		PRCM_CORE_EN_USBTLL	(PRCM_REG_CORE_CLK3_BASE + 2)
#define		PRCM_CORE_EN_TS		(PRCM_REG_CORE_CLK3_BASE + 1)
#define		PRCM_CORE_EN_CPEFUSE	(PRCM_REG_CORE_CLK3_BASE + 0)

#define PRCM_REG_WKUP		3
#define PRCM_REG_WKUP_FADDR		CM_FCLKEN_WKUP
#define PRCM_REG_WKUP_IADDR		CM_ICLKEN_WKUP
#define PRCM_REG_WKUP_FMASK		CM_FCLKEN_WKUP_MSK
#define PRCM_REG_WKUP_IMASK		CM_ICLKEN_WKUP_MSK
#define PRCM_REG_WKUP_BASE (PRCM_REG_WKUP*32)
#define		PRCM_CLK_EN_MPU_WDT	(PRCM_REG_WKUP_BASE + 5)
#define		PRCM_CLK_EN_GPIO1	(PRCM_REG_WKUP_BASE + 3)
#define		PRCM_CLK_EN_32KSYNC	(PRCM_REG_WKUP_BASE + 2)
#define		PRCM_CLK_EN_GPT1	(PRCM_REG_WKUP_BASE + 0)

#define PRCM_REG_PER		4
#define PRCM_REG_PER_FADDR		CM_FCLKEN_PER
#define PRCM_REG_PER_IADDR		CM_ICLKEN_PER
#define PRCM_REG_PER_FMASK		CM_FCLKEN_PER_MSK
#define PRCM_REG_PER_IMASK		CM_ICLKEN_PER_MSK
#define PRCM_REG_PER_BASE (PRCM_REG_PER*32)
#define		PRCM_CLK_EN_GPIO6	(PRCM_REG_PER_BASE + 17)
#define		PRCM_CLK_EN_GPIO5	(PRCM_REG_PER_BASE + 16)
#define		PRCM_CLK_EN_GPIO4	(PRCM_REG_PER_BASE + 15)
#define		PRCM_CLK_EN_GPIO3	(PRCM_REG_PER_BASE + 14)
#define		PRCM_CLK_EN_GPIO2	(PRCM_REG_PER_BASE + 13)
#define		PRCM_CLK_EN_WDT3	(PRCM_REG_PER_BASE + 12)
#define		PRCM_CLK_EN_UART3	(PRCM_REG_PER_BASE + 11)
#define		PRCM_CLK_EN_GPT9	(PRCM_REG_PER_BASE + 10)
#define		PRCM_CLK_EN_GPT8	(PRCM_REG_PER_BASE + 9)
#define		PRCM_CLK_EN_GPT7	(PRCM_REG_PER_BASE + 8)
#define		PRCM_CLK_EN_GPT6	(PRCM_REG_PER_BASE + 7)
#define		PRCM_CLK_EN_GPT5	(PRCM_REG_PER_BASE + 6)
#define		PRCM_CLK_EN_GPT4	(PRCM_REG_PER_BASE + 5)
#define		PRCM_CLK_EN_GPT3	(PRCM_REG_PER_BASE + 4)
#define		PRCM_CLK_EN_GPT2	(PRCM_REG_PER_BASE + 3)
#define		PRCM_CLK_EN_MCBSP4	(PRCM_REG_PER_BASE + 2)
#define		PRCM_CLK_EN_MCBSP3	(PRCM_REG_PER_BASE + 1)
#define		PRCM_CLK_EN_MCBSP2	(PRCM_REG_PER_BASE + 0)

#define	PRCM_REG_USBHOST	5
#define	PRCM_REG_USBHOST_FADDR	CM_FCLKEN_USBHOST
#define	PRCM_REG_USBHOST_IADDR	CM_ICLKEN_USBHOST
#define	PRCM_REG_USBHOST_FMASK	CM_FCLKEN_USBHOST_MSK
#define	PRCM_REG_USBHOST_IMASK	CM_ICLKEN_USBHOST_MSK
#define	PRCM_REG_USBHOST_BASE	(PRCM_REG_USBHOST*32)
#define		PRCM_CLK_EN_USBHOST2	(PRCM_REG_USBHOST_BASE + 1)
#define		PRCM_CLK_EN_USBHOST1	(PRCM_REG_USBHOST_BASE + 0)
#define		PRCM_CLK_EN_USB		(PRCM_REG_USBHOST_BASE + 0)