blob: 750e5587a7aa5d18d527f90813d84696b8032094 [file] [log] [blame]
Heiko Stübnerb9e4ba52014-07-03 02:02:37 +02001/*
2 * Copyright (c) 2014 MundoReader S.L.
3 * Author: Heiko Stuebner <heiko@sntech.de>
4 *
5 * This program is free software; you can redistribute it and/or modify
6 * it under the terms of the GNU General Public License as published by
7 * the Free Software Foundation; either version 2 of the License, or
8 * (at your option) any later version.
9 *
10 * This program is distributed in the hope that it will be useful,
11 * but WITHOUT ANY WARRANTY; without even the implied warranty of
12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 * GNU General Public License for more details.
14 */
15
16/* core clocks */
17#define PLL_APLL 1
18#define PLL_DPLL 2
19#define PLL_CPLL 3
20#define PLL_GPLL 4
21#define PLL_NPLL 5
22
23/* sclk gates (special clocks) */
24#define SCLK_GPU 64
25#define SCLK_SPI0 65
26#define SCLK_SPI1 66
27#define SCLK_SPI2 67
28#define SCLK_SDMMC 68
29#define SCLK_SDIO0 69
30#define SCLK_SDIO1 70
31#define SCLK_EMMC 71
32#define SCLK_TSADC 72
33#define SCLK_SARADC 73
34#define SCLK_PS2C 74
35#define SCLK_NANDC0 75
36#define SCLK_NANDC1 76
37#define SCLK_UART0 77
38#define SCLK_UART1 78
39#define SCLK_UART2 79
40#define SCLK_UART3 80
41#define SCLK_UART4 81
42#define SCLK_I2S0 82
43#define SCLK_SPDIF 83
44#define SCLK_SPDIF8CH 84
45#define SCLK_TIMER0 85
46#define SCLK_TIMER1 86
47#define SCLK_TIMER2 87
48#define SCLK_TIMER3 88
49#define SCLK_TIMER4 89
50#define SCLK_TIMER5 90
51#define SCLK_TIMER6 91
52#define SCLK_HSADC 92
53#define SCLK_OTGPHY0 93
54#define SCLK_OTGPHY1 94
55#define SCLK_OTGPHY2 95
56#define SCLK_OTG_ADP 96
57#define SCLK_HSICPHY480M 97
58#define SCLK_HSICPHY12M 98
59#define SCLK_MACREF 99
60#define SCLK_LCDC_PWM0 100
61#define SCLK_LCDC_PWM1 101
62#define SCLK_MAC_RX 102
63#define SCLK_MAC_TX 103
Kever Yang5e9a3d72014-09-24 21:36:34 +080064#define SCLK_EDP_24M 104
65#define SCLK_EDP 105
66#define SCLK_RGA 106
67#define SCLK_ISP 107
68#define SCLK_ISP_JPE 108
69#define SCLK_HDMI_HDCP 109
70#define SCLK_HDMI_CEC 110
71#define SCLK_HEVC_CABAC 111
72#define SCLK_HEVC_CORE 112
Heiko Stübnerb9e4ba52014-07-03 02:02:37 +020073
74#define DCLK_VOP0 190
75#define DCLK_VOP1 191
76
77/* aclk gates */
78#define ACLK_GPU 192
79#define ACLK_DMAC1 193
80#define ACLK_DMAC2 194
81#define ACLK_MMU 195
82#define ACLK_GMAC 196
83#define ACLK_VOP0 197
84#define ACLK_VOP1 198
85#define ACLK_CRYPTO 199
86#define ACLK_RGA 200
Kever Yang5e9a3d72014-09-24 21:36:34 +080087#define ACLK_RGA_NIU 201
88#define ACLK_IEP 202
89#define ACLK_VIO0_NIU 203
90#define ACLK_VIP 204
91#define ACLK_ISP 205
92#define ACLK_VIO1_NIU 206
93#define ACLK_HEVC 207
94#define ACLK_VCODEC 208
95#define ACLK_CPU 209
96#define ACLK_PERI 210
Heiko Stübnerb9e4ba52014-07-03 02:02:37 +020097
98/* pclk gates */
99#define PCLK_GPIO0 320
100#define PCLK_GPIO1 321
101#define PCLK_GPIO2 322
102#define PCLK_GPIO3 323
103#define PCLK_GPIO4 324
104#define PCLK_GPIO5 325
105#define PCLK_GPIO6 326
106#define PCLK_GPIO7 327
107#define PCLK_GPIO8 328
108#define PCLK_GRF 329
109#define PCLK_SGRF 330
110#define PCLK_PMU 331
111#define PCLK_I2C0 332
112#define PCLK_I2C1 333
113#define PCLK_I2C2 334
114#define PCLK_I2C3 335
115#define PCLK_I2C4 336
116#define PCLK_I2C5 337
117#define PCLK_SPI0 338
118#define PCLK_SPI1 339
119#define PCLK_SPI2 340
120#define PCLK_UART0 341
121#define PCLK_UART1 342
122#define PCLK_UART2 343
123#define PCLK_UART3 344
124#define PCLK_UART4 345
125#define PCLK_TSADC 346
126#define PCLK_SARADC 347
127#define PCLK_SIM 348
128#define PCLK_GMAC 349
129#define PCLK_PWM 350
130#define PCLK_RKPWM 351
131#define PCLK_PS2C 352
132#define PCLK_TIMER 353
133#define PCLK_TZPC 354
Kever Yang5e9a3d72014-09-24 21:36:34 +0800134#define PCLK_EDP_CTRL 355
135#define PCLK_MIPI_DSI0 356
136#define PCLK_MIPI_DSI1 357
137#define PCLK_MIPI_CSI 358
138#define PCLK_LVDS_PHY 359
139#define PCLK_HDMI_CTRL 360
140#define PCLK_VIO2_H2P 361
141#define PCLK_CPU 362
142#define PCLK_PERI 363
Heiko Stübnerb9e4ba52014-07-03 02:02:37 +0200143
144/* hclk gates */
145#define HCLK_GPS 448
146#define HCLK_OTG0 449
147#define HCLK_USBHOST0 450
148#define HCLK_USBHOST1 451
149#define HCLK_HSIC 452
150#define HCLK_NANDC0 453
151#define HCLK_NANDC1 454
152#define HCLK_TSP 455
153#define HCLK_SDMMC 456
154#define HCLK_SDIO0 457
155#define HCLK_SDIO1 458
156#define HCLK_EMMC 459
157#define HCLK_HSADC 460
158#define HCLK_CRYPTO 461
159#define HCLK_I2S0 462
160#define HCLK_SPDIF 463
161#define HCLK_SPDIF8CH 464
162#define HCLK_VOP0 465
163#define HCLK_VOP1 466
164#define HCLK_ROM 467
165#define HCLK_IEP 468
166#define HCLK_ISP 469
167#define HCLK_RGA 470
Kever Yang5e9a3d72014-09-24 21:36:34 +0800168#define HCLK_VIO_AHB_ARBI 471
169#define HCLK_VIO_NIU 472
170#define HCLK_VIP 473
171#define HCLK_VIO2_H2P 474
172#define HCLK_HEVC 475
173#define HCLK_VCODEC 476
174#define HCLK_CPU 477
175#define HCLK_PERI 478
Heiko Stübnerb9e4ba52014-07-03 02:02:37 +0200176
Kever Yang5e9a3d72014-09-24 21:36:34 +0800177#define CLK_NR_CLKS (HCLK_PERI + 1)
Heiko Stübnerb9e4ba52014-07-03 02:02:37 +0200178
179/* soft-reset indices */
180#define SRST_CORE0 0
181#define SRST_CORE1 1
182#define SRST_CORE2 2
183#define SRST_CORE3 3
184#define SRST_CORE0_PO 4
185#define SRST_CORE1_PO 5
186#define SRST_CORE2_PO 6
187#define SRST_CORE3_PO 7
188#define SRST_PDCORE_STRSYS 8
189#define SRST_PDBUS_STRSYS 9
190#define SRST_L2C 10
191#define SRST_TOPDBG 11
192#define SRST_CORE0_DBG 12
193#define SRST_CORE1_DBG 13
194#define SRST_CORE2_DBG 14
195#define SRST_CORE3_DBG 15
196
197#define SRST_PDBUG_AHB_ARBITOR 16
198#define SRST_EFUSE256 17
199#define SRST_DMAC1 18
200#define SRST_INTMEM 19
201#define SRST_ROM 20
202#define SRST_SPDIF8CH 21
203#define SRST_TIMER 22
204#define SRST_I2S0 23
205#define SRST_SPDIF 24
206#define SRST_TIMER0 25
207#define SRST_TIMER1 26
208#define SRST_TIMER2 27
209#define SRST_TIMER3 28
210#define SRST_TIMER4 29
211#define SRST_TIMER5 30
212#define SRST_EFUSE 31
213
214#define SRST_GPIO0 32
215#define SRST_GPIO1 33
216#define SRST_GPIO2 34
217#define SRST_GPIO3 35
218#define SRST_GPIO4 36
219#define SRST_GPIO5 37
220#define SRST_GPIO6 38
221#define SRST_GPIO7 39
222#define SRST_GPIO8 40
223#define SRST_I2C0 42
224#define SRST_I2C1 43
225#define SRST_I2C2 44
226#define SRST_I2C3 45
227#define SRST_I2C4 46
228#define SRST_I2C5 47
229
230#define SRST_DWPWM 48
231#define SRST_MMC_PERI 49
232#define SRST_PERIPH_MMU 50
233#define SRST_DAP 51
234#define SRST_DAP_SYS 52
235#define SRST_TPIU 53
236#define SRST_PMU_APB 54
237#define SRST_GRF 55
238#define SRST_PMU 56
239#define SRST_PERIPH_AXI 57
240#define SRST_PERIPH_AHB 58
241#define SRST_PERIPH_APB 59
242#define SRST_PERIPH_NIU 60
243#define SRST_PDPERI_AHB_ARBI 61
244#define SRST_EMEM 62
245#define SRST_USB_PERI 63
246
247#define SRST_DMAC2 64
248#define SRST_MAC 66
249#define SRST_GPS 67
250#define SRST_RKPWM 69
251#define SRST_CCP 71
252#define SRST_USBHOST0 72
253#define SRST_HSIC 73
254#define SRST_HSIC_AUX 74
255#define SRST_HSIC_PHY 75
256#define SRST_HSADC 76
257#define SRST_NANDC0 77
258#define SRST_NANDC1 78
259
260#define SRST_TZPC 80
261#define SRST_SPI0 83
262#define SRST_SPI1 84
263#define SRST_SPI2 85
264#define SRST_SARADC 87
265#define SRST_PDALIVE_NIU 88
266#define SRST_PDPMU_INTMEM 89
267#define SRST_PDPMU_NIU 90
268#define SRST_SGRF 91
269
270#define SRST_VIO_ARBI 96
271#define SRST_RGA_NIU 97
272#define SRST_VIO0_NIU_AXI 98
273#define SRST_VIO_NIU_AHB 99
274#define SRST_LCDC0_AXI 100
275#define SRST_LCDC0_AHB 101
276#define SRST_LCDC0_DCLK 102
277#define SRST_VIO1_NIU_AXI 103
278#define SRST_VIP 104
279#define SRST_RGA_CORE 105
280#define SRST_IEP_AXI 106
281#define SRST_IEP_AHB 107
282#define SRST_RGA_AXI 108
283#define SRST_RGA_AHB 109
284#define SRST_ISP 110
285#define SRST_EDP 111
286
287#define SRST_VCODEC_AXI 112
288#define SRST_VCODEC_AHB 113
289#define SRST_VIO_H2P 114
290#define SRST_MIPIDSI0 115
291#define SRST_MIPIDSI1 116
292#define SRST_MIPICSI 117
293#define SRST_LVDS_PHY 118
294#define SRST_LVDS_CON 119
295#define SRST_GPU 120
296#define SRST_HDMI 121
297#define SRST_CORE_PVTM 124
298#define SRST_GPU_PVTM 125
299
300#define SRST_MMC0 128
301#define SRST_SDIO0 129
302#define SRST_SDIO1 130
303#define SRST_EMMC 131
304#define SRST_USBOTG_AHB 132
305#define SRST_USBOTG_PHY 133
306#define SRST_USBOTG_CON 134
307#define SRST_USBHOST0_AHB 135
308#define SRST_USBHOST0_PHY 136
309#define SRST_USBHOST0_CON 137
310#define SRST_USBHOST1_AHB 138
311#define SRST_USBHOST1_PHY 139
312#define SRST_USBHOST1_CON 140
313#define SRST_USB_ADP 141
314#define SRST_ACC_EFUSE 142
Mark yao4b47c3f2014-09-12 19:45:27 +0800315
316#define SRST_CORESIGHT 144
317#define SRST_PD_CORE_AHB_NOC 145
318#define SRST_PD_CORE_APB_NOC 146
319#define SRST_PD_CORE_MP_AXI 147
320#define SRST_GIC 148
321#define SRST_LCDC_PWM0 149
322#define SRST_LCDC_PWM1 150
323#define SRST_VIO0_H2P_BRG 151
324#define SRST_VIO1_H2P_BRG 152
325#define SRST_RGA_H2P_BRG 153
326#define SRST_HEVC 154
327#define SRST_TSADC 159
328
329#define SRST_DDRPHY0 160
330#define SRST_DDRPHY0_APB 161
331#define SRST_DDRCTRL0 162
332#define SRST_DDRCTRL0_APB 163
333#define SRST_DDRPHY0_CTRL 164
334#define SRST_DDRPHY1 165
335#define SRST_DDRPHY1_APB 166
336#define SRST_DDRCTRL1 167
337#define SRST_DDRCTRL1_APB 168
338#define SRST_DDRPHY1_CTRL 169
339#define SRST_DDRMSCH0 170
340#define SRST_DDRMSCH1 171
341#define SRST_CRYPTO 174
342#define SRST_C2C_HOST 175
343
344#define SRST_LCDC1_AXI 176
345#define SRST_LCDC1_AHB 177
346#define SRST_LCDC1_DCLK 178
347#define SRST_UART0 179
348#define SRST_UART1 180
349#define SRST_UART2 181
350#define SRST_UART3 182
351#define SRST_UART4 183
352#define SRST_SIMC 186
353#define SRST_PS2C 187
354#define SRST_TSP 188
355#define SRST_TSP_CLKIN0 189
356#define SRST_TSP_CLKIN1 190
357#define SRST_TSP_27M 191