1/* $NetBSD: imx8mq_ccm.h,v 1.1 2020/12/23 14:42:38 skrll Exp $ */
2
3/*-
4 * Copyright (c) 2020 Jared McNeill <jmcneill@invisible.ca>
5 * All rights reserved.
6 *
7 * Redistribution and use in source and binary forms, with or without
8 * modification, are permitted provided that the following conditions
9 * are met:
10 * 1. Redistributions of source code must retain the above copyright
11 *    notice, this list of conditions and the following disclaimer.
12 * 2. Redistributions in binary form must reproduce the above copyright
13 *    notice, this list of conditions and the following disclaimer in the
14 *    documentation and/or other materials provided with the distribution.
15 *
16 * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
17 * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
18 * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
19 * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
20 * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
21 * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
22 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
23 * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
24 * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
25 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
26 * SUCH DAMAGE.
27 */
28
29#ifndef _IMX8MQ_CCM_H
30#define _IMX8MQ_CCM_H
31
32/*
33 * Clocks
34 */
35
36#define	CLK_DUMMY 0
37#define	CLK_32K 1
38#define	CLK_25M 2
39#define	CLK_27M 3
40#define	CLK_EXT1 4
41#define	CLK_EXT2 5
42#define	CLK_EXT3 6
43#define	CLK_EXT4 7
44#define	ARM_PLL_REF_SEL 8
45#define	ARM_PLL_REF_DIV 9
46#define	ARM_PLL 10
47#define	ARM_PLL_BYPASS 11
48#define	ARM_PLL_OUT 12
49#define	GPU_PLL_REF_SEL 13
50#define	GPU_PLL_REF_DIV 14
51#define	GPU_PLL 15
52#define	GPU_PLL_BYPASS 16
53#define	GPU_PLL_OUT 17
54#define	VPU_PLL_REF_SEL 18
55#define	VPU_PLL_REF_DIV 19
56#define	VPU_PLL 20
57#define	VPU_PLL_BYPASS 21
58#define	VPU_PLL_OUT 22
59#define	AUDIO_PLL1_REF_SEL 23
60#define	AUDIO_PLL1_REF_DIV 24
61#define	AUDIO_PLL1 25
62#define	AUDIO_PLL1_BYPASS 26
63#define	AUDIO_PLL1_OUT 27
64#define	AUDIO_PLL2_REF_SEL 28
65#define	AUDIO_PLL2_REF_DIV 29
66#define	AUDIO_PLL2 30
67#define	AUDIO_PLL2_BYPASS 31
68#define	AUDIO_PLL2_OUT 32
69#define	VIDEO_PLL1_REF_SEL 33
70#define	VIDEO_PLL1_REF_DIV 34
71#define	VIDEO_PLL1 35
72#define	VIDEO_PLL1_BYPASS 36
73#define	VIDEO_PLL1_OUT 37
74#define	SYS1_PLL1_REF_SEL 38
75#define	SYS1_PLL1_REF_DIV 39
76#define	SYS1_PLL1 40
77#define	SYS1_PLL1_OUT 41
78#define	SYS1_PLL1_OUT_DIV 42
79#define	SYS1_PLL2 43
80#define	SYS1_PLL2_DIV 44
81#define	SYS1_PLL2_OUT 45
82#define	SYS2_PLL1_REF_SEL 46
83#define	SYS2_PLL1_REF_DIV 47
84#define	SYS2_PLL1 48
85#define	SYS2_PLL1_OUT 49
86#define	SYS2_PLL1_OUT_DIV 50
87#define	SYS2_PLL2 51
88#define	SYS2_PLL2_DIV 52
89#define	SYS2_PLL2_OUT 53
90#define	SYS3_PLL1_REF_SEL 54
91#define	SYS3_PLL1_REF_DIV 55
92#define	SYS3_PLL1 56
93#define	SYS3_PLL1_OUT 57
94#define	SYS3_PLL1_OUT_DIV 58
95#define	SYS3_PLL2 59
96#define	SYS3_PLL2_DIV 60
97#define	SYS3_PLL2_OUT 61
98#define	DRAM_PLL1_REF_SEL 62
99#define	DRAM_PLL1_REF_DIV 63
100#define	DRAM_PLL1 64
101#define	DRAM_PLL1_OUT 65
102#define	DRAM_PLL1_OUT_DIV 66
103#define	DRAM_PLL2 67
104#define	DRAM_PLL2_DIV 68
105#define	DRAM_PLL2_OUT 69
106#define	SYS1_PLL_40M 70
107#define	SYS1_PLL_80M 71
108#define	SYS1_PLL_100M 72
109#define	SYS1_PLL_133M 73
110#define	SYS1_PLL_160M 74
111#define	SYS1_PLL_200M 75
112#define	SYS1_PLL_266M 76
113#define	SYS1_PLL_400M 77
114#define	SYS1_PLL_800M 78
115#define	SYS2_PLL_50M 79
116#define	SYS2_PLL_100M 80
117#define	SYS2_PLL_125M 81
118#define	SYS2_PLL_166M 82
119#define	SYS2_PLL_200M 83
120#define	SYS2_PLL_250M 84
121#define	SYS2_PLL_333M 85
122#define	SYS2_PLL_500M 86
123#define	SYS2_PLL_1000M 87
124#define	CLK_A53_SRC 88
125#define	CLK_A53_CG 89
126#define	CLK_A53_DIV 90
127#define	CLK_M4_SRC 91
128#define	CLK_M4_CG 92
129#define	CLK_M4_DIV 93
130#define	CLK_VPU_SRC 94
131#define	CLK_VPU_CG 95
132#define	CLK_VPU_DIV 96
133#define	CLK_GPU_CORE_SRC 97
134#define	CLK_GPU_CORE_CG 98
135#define	CLK_GPU_CORE_DIV 99
136#define	CLK_GPU_SHADER_SRC 100
137#define	CLK_GPU_SHADER_CG 101
138#define	CLK_GPU_SHADER_DIV 102
139#define	CLK_MAIN_AXI 103
140#define	CLK_ENET_AXI 104
141#define	CLK_NAND_USDHC_BUS 105
142#define	CLK_VPU_BUS 106
143#define	CLK_DISP_AXI 107
144#define	CLK_DISP_APB 108
145#define	CLK_DISP_RTRM 109
146#define	CLK_USB_BUS 110
147#define	CLK_GPU_AXI 111
148#define	CLK_GPU_AHB 112
149#define	CLK_NOC 113
150#define	CLK_NOC_APB 115
151#define	CLK_AHB 116
152#define	CLK_AUDIO_AHB 117
153#define	CLK_DRAM_ALT 118
154#define	CLK_DRAM_APB 119
155#define	CLK_VPU_G1 120
156#define	CLK_VPU_G2 121
157#define	CLK_DISP_DTRC 122
158#define	CLK_DISP_DC8000 123
159#define	CLK_PCIE1_CTRL 124
160#define	CLK_PCIE1_PHY 125
161#define	CLK_PCIE1_AUX 126
162#define	CLK_DC_PIXEL 127
163#define	CLK_LCDIF_PIXEL 128
164#define	CLK_SAI1 129
165#define	CLK_SAI2 130
166#define	CLK_SAI3 131
167#define	CLK_SAI4 132
168#define	CLK_SAI5 133
169#define	CLK_SAI6 134
170#define	CLK_SPDIF1 135
171#define	CLK_SPDIF2 136
172#define	CLK_ENET_REF 137
173#define	CLK_ENET_TIMER 138
174#define	CLK_ENET_PHY_REF 139
175#define	CLK_NAND 140
176#define	CLK_QSPI 141
177#define	CLK_USDHC1 142
178#define	CLK_USDHC2 143
179#define	CLK_I2C1 144
180#define	CLK_I2C2 145
181#define	CLK_I2C3 146
182#define	CLK_I2C4 147
183#define	CLK_UART1 148
184#define	CLK_UART2 149
185#define	CLK_UART3 150
186#define	CLK_UART4 151
187#define	CLK_USB_CORE_REF 152
188#define	CLK_USB_PHY_REF 153
189#define	CLK_ECSPI1 154
190#define	CLK_ECSPI2 155
191#define	CLK_PWM1 156
192#define	CLK_PWM2 157
193#define	CLK_PWM3 158
194#define	CLK_PWM4 159
195#define	CLK_GPT1 160
196#define	CLK_WDOG 161
197#define	CLK_WRCLK 162
198#define	CLK_DSI_CORE 163
199#define	CLK_DSI_PHY_REF 164
200#define	CLK_DSI_DBI 165
201#define	CLK_DSI_ESC 166
202#define	CLK_CSI1_CORE 167
203#define	CLK_CSI1_PHY_REF 168
204#define	CLK_CSI1_ESC 169
205#define	CLK_CSI2_CORE 170
206#define	CLK_CSI2_PHY_REF 171
207#define	CLK_CSI2_ESC 172
208#define	CLK_PCIE2_CTRL 173
209#define	CLK_PCIE2_PHY 174
210#define	CLK_PCIE2_AUX 175
211#define	CLK_ECSPI3 176
212#define	CLK_A53_ROOT 177
213#define	CLK_DRAM_ROOT 178
214#define	CLK_ECSPI1_ROOT 179
215#define	CLK_ECSPI2_ROOT 180
216#define	CLK_ECSPI3_ROOT 181
217#define	CLK_ENET1_ROOT 182
218#define	CLK_GPT1_ROOT 183
219#define	CLK_I2C1_ROOT 184
220#define	CLK_I2C2_ROOT 185
221#define	CLK_I2C3_ROOT 186
222#define	CLK_I2C4_ROOT 187
223#define	CLK_M4_ROOT 188
224#define	CLK_PCIE1_ROOT 189
225#define	CLK_PCIE2_ROOT 190
226#define	CLK_PWM1_ROOT 191
227#define	CLK_PWM2_ROOT 192
228#define	CLK_PWM3_ROOT 193
229#define	CLK_PWM4_ROOT 194
230#define	CLK_QSPI_ROOT 195
231#define	CLK_SAI1_ROOT 196
232#define	CLK_SAI2_ROOT 197
233#define	CLK_SAI3_ROOT 198
234#define	CLK_SAI4_ROOT 199
235#define	CLK_SAI5_ROOT 200
236#define	CLK_SAI6_ROOT 201
237#define	CLK_UART1_ROOT 202
238#define	CLK_UART2_ROOT 203
239#define	CLK_UART3_ROOT 204
240#define	CLK_UART4_ROOT 205
241#define	CLK_USB1_CTRL_ROOT 206
242#define	CLK_USB2_CTRL_ROOT 207
243#define	CLK_USB1_PHY_ROOT 208
244#define	CLK_USB2_PHY_ROOT 209
245#define	CLK_USDHC1_ROOT 210
246#define	CLK_USDHC2_ROOT 211
247#define	CLK_WDOG1_ROOT 212
248#define	CLK_WDOG2_ROOT 213
249#define	CLK_WDOG3_ROOT 214
250#define	CLK_GPU_ROOT 215
251#define	CLK_HEVC_ROOT 216
252#define	CLK_AVC_ROOT 217
253#define	CLK_VP9_ROOT 218
254#define	CLK_HEVC_INTER_ROOT 219
255#define	CLK_DISP_ROOT 220
256#define	CLK_HDMI_ROOT 221
257#define	CLK_HDMI_PHY_ROOT 222
258#define	CLK_VPU_DEC_ROOT 223
259#define	CLK_CSI1_ROOT 224
260#define	CLK_CSI2_ROOT 225
261#define	CLK_RAWNAND_ROOT 226
262#define	CLK_SDMA1_ROOT 227
263#define	CLK_SDMA2_ROOT 228
264#define	CLK_VPU_G1_ROOT 229
265#define	CLK_VPU_G2_ROOT 230
266#define	SYS1_PLL_OUT 231
267#define	SYS2_PLL_OUT 232
268#define	SYS3_PLL_OUT 233
269#define	DRAM_PLL_OUT 234
270#define	GPT_3M_CLK 235
271#define	CLK_IPG_ROOT 236
272#define	CLK_IPG_AUDIO_ROOT 237
273#define	CLK_SAI1_IPG 238
274#define	CLK_SAI2_IPG 239
275#define	CLK_SAI3_IPG 240
276#define	CLK_SAI4_IPG 241
277#define	CLK_SAI5_IPG 242
278#define	CLK_SAI6_IPG 243
279#define	CLK_DSI_AHB 244
280#define	CLK_DSI_IPG_DIV 245
281#define	CLK_TMU_ROOT 246
282#define	CLK_DISP_AXI_ROOT 247
283#define	CLK_DISP_APB_ROOT 248
284#define	CLK_DISP_RTRM_ROOT 249
285#define	CLK_OCOTP_ROOT 250
286#define	CLK_DRAM_ALT_ROOT 251
287#define	CLK_DRAM_CORE 252
288#define	CLK_MU_ROOT 253
289#define	VIDEO2_PLL_OUT 254
290#define	CLK_CLKO2 255
291#define	CLK_NAND_USDHC_BUS_RAWNAND_CLK 256
292#define	CLK_CLKO1 257
293#define	CLK_ARM 258
294#define	CLK_GPIO1_ROOT 259
295#define	CLK_GPIO2_ROOT 260
296#define	CLK_GPIO3_ROOT 261
297#define	CLK_GPIO4_ROOT 262
298#define	CLK_GPIO5_ROOT 263
299#define	CLK_SNVS_ROOT 264
300#define	CLK_GIC 265
301#define	VIDEO2_PLL1_REF_SEL 266
302#define	SYS1_PLL_40M_CG 267
303#define	SYS1_PLL_80M_CG 268
304#define	SYS1_PLL_100M_CG 269
305#define	SYS1_PLL_133M_CG 270
306#define	SYS1_PLL_160M_CG 271
307#define	SYS1_PLL_200M_CG 272
308#define	SYS1_PLL_266M_CG 273
309#define	SYS1_PLL_400M_CG 274
310#define	SYS1_PLL_800M_CG 275
311#define	SYS2_PLL_50M_CG 276
312#define	SYS2_PLL_100M_CG 277
313#define	SYS2_PLL_125M_CG 278
314#define	SYS2_PLL_166M_CG 279
315#define	SYS2_PLL_200M_CG 280
316#define	SYS2_PLL_250M_CG 281
317#define	SYS2_PLL_333M_CG 282
318#define	SYS2_PLL_500M_CG 283
319#define	SYS2_PLL_1000M_CG 284
320
321#endif /* !_IMX8MQ_CCM_H */
322