1/* SPDX-License-Identifier: GPL-2.0 OR MIT */
2/*
3 * Copyright 2022 Emil Renner Berthing <kernel@esmil.dk>
4 * Copyright 2022 StarFive Technology Co., Ltd.
5 */
6
7#ifndef __DT_BINDINGS_CLOCK_STARFIVE_JH7110_CRG_H__
8#define __DT_BINDINGS_CLOCK_STARFIVE_JH7110_CRG_H__
9
10/* PLL clocks */
11#define JH7110_PLLCLK_PLL0_OUT			0
12#define JH7110_PLLCLK_PLL1_OUT			1
13#define JH7110_PLLCLK_PLL2_OUT			2
14#define JH7110_PLLCLK_END			3
15
16/* SYSCRG clocks */
17#define JH7110_SYSCLK_CPU_ROOT			0
18#define JH7110_SYSCLK_CPU_CORE			1
19#define JH7110_SYSCLK_CPU_BUS			2
20#define JH7110_SYSCLK_GPU_ROOT			3
21#define JH7110_SYSCLK_PERH_ROOT			4
22#define JH7110_SYSCLK_BUS_ROOT			5
23#define JH7110_SYSCLK_NOCSTG_BUS		6
24#define JH7110_SYSCLK_AXI_CFG0			7
25#define JH7110_SYSCLK_STG_AXIAHB		8
26#define JH7110_SYSCLK_AHB0			9
27#define JH7110_SYSCLK_AHB1			10
28#define JH7110_SYSCLK_APB_BUS			11
29#define JH7110_SYSCLK_APB0			12
30#define JH7110_SYSCLK_PLL0_DIV2			13
31#define JH7110_SYSCLK_PLL1_DIV2			14
32#define JH7110_SYSCLK_PLL2_DIV2			15
33#define JH7110_SYSCLK_AUDIO_ROOT		16
34#define JH7110_SYSCLK_MCLK_INNER		17
35#define JH7110_SYSCLK_MCLK			18
36#define JH7110_SYSCLK_MCLK_OUT			19
37#define JH7110_SYSCLK_ISP_2X			20
38#define JH7110_SYSCLK_ISP_AXI			21
39#define JH7110_SYSCLK_GCLK0			22
40#define JH7110_SYSCLK_GCLK1			23
41#define JH7110_SYSCLK_GCLK2			24
42#define JH7110_SYSCLK_CORE			25
43#define JH7110_SYSCLK_CORE1			26
44#define JH7110_SYSCLK_CORE2			27
45#define JH7110_SYSCLK_CORE3			28
46#define JH7110_SYSCLK_CORE4			29
47#define JH7110_SYSCLK_DEBUG			30
48#define JH7110_SYSCLK_RTC_TOGGLE		31
49#define JH7110_SYSCLK_TRACE0			32
50#define JH7110_SYSCLK_TRACE1			33
51#define JH7110_SYSCLK_TRACE2			34
52#define JH7110_SYSCLK_TRACE3			35
53#define JH7110_SYSCLK_TRACE4			36
54#define JH7110_SYSCLK_TRACE_COM			37
55#define JH7110_SYSCLK_NOC_BUS_CPU_AXI		38
56#define JH7110_SYSCLK_NOC_BUS_AXICFG0_AXI	39
57#define JH7110_SYSCLK_OSC_DIV2			40
58#define JH7110_SYSCLK_PLL1_DIV4			41
59#define JH7110_SYSCLK_PLL1_DIV8			42
60#define JH7110_SYSCLK_DDR_BUS			43
61#define JH7110_SYSCLK_DDR_AXI			44
62#define JH7110_SYSCLK_GPU_CORE			45
63#define JH7110_SYSCLK_GPU_CORE_CLK		46
64#define JH7110_SYSCLK_GPU_SYS_CLK		47
65#define JH7110_SYSCLK_GPU_APB			48
66#define JH7110_SYSCLK_GPU_RTC_TOGGLE		49
67#define JH7110_SYSCLK_NOC_BUS_GPU_AXI		50
68#define JH7110_SYSCLK_ISP_TOP_CORE		51
69#define JH7110_SYSCLK_ISP_TOP_AXI		52
70#define JH7110_SYSCLK_NOC_BUS_ISP_AXI		53
71#define JH7110_SYSCLK_HIFI4_CORE		54
72#define JH7110_SYSCLK_HIFI4_AXI			55
73#define JH7110_SYSCLK_AXI_CFG1_MAIN		56
74#define JH7110_SYSCLK_AXI_CFG1_AHB		57
75#define JH7110_SYSCLK_VOUT_SRC			58
76#define JH7110_SYSCLK_VOUT_AXI			59
77#define JH7110_SYSCLK_NOC_BUS_DISP_AXI		60
78#define JH7110_SYSCLK_VOUT_TOP_AHB		61
79#define JH7110_SYSCLK_VOUT_TOP_AXI		62
80#define JH7110_SYSCLK_VOUT_TOP_HDMITX0_MCLK	63
81#define JH7110_SYSCLK_VOUT_TOP_MIPIPHY_REF	64
82#define JH7110_SYSCLK_JPEGC_AXI			65
83#define JH7110_SYSCLK_CODAJ12_AXI		66
84#define JH7110_SYSCLK_CODAJ12_CORE		67
85#define JH7110_SYSCLK_CODAJ12_APB		68
86#define JH7110_SYSCLK_VDEC_AXI			69
87#define JH7110_SYSCLK_WAVE511_AXI		70
88#define JH7110_SYSCLK_WAVE511_BPU		71
89#define JH7110_SYSCLK_WAVE511_VCE		72
90#define JH7110_SYSCLK_WAVE511_APB		73
91#define JH7110_SYSCLK_VDEC_JPG			74
92#define JH7110_SYSCLK_VDEC_MAIN			75
93#define JH7110_SYSCLK_NOC_BUS_VDEC_AXI		76
94#define JH7110_SYSCLK_VENC_AXI			77
95#define JH7110_SYSCLK_WAVE420L_AXI		78
96#define JH7110_SYSCLK_WAVE420L_BPU		79
97#define JH7110_SYSCLK_WAVE420L_VCE		80
98#define JH7110_SYSCLK_WAVE420L_APB		81
99#define JH7110_SYSCLK_NOC_BUS_VENC_AXI		82
100#define JH7110_SYSCLK_AXI_CFG0_MAIN_DIV		83
101#define JH7110_SYSCLK_AXI_CFG0_MAIN		84
102#define JH7110_SYSCLK_AXI_CFG0_HIFI4		85
103#define JH7110_SYSCLK_AXIMEM2_AXI		86
104#define JH7110_SYSCLK_QSPI_AHB			87
105#define JH7110_SYSCLK_QSPI_APB			88
106#define JH7110_SYSCLK_QSPI_REF_SRC		89
107#define JH7110_SYSCLK_QSPI_REF			90
108#define JH7110_SYSCLK_SDIO0_AHB			91
109#define JH7110_SYSCLK_SDIO1_AHB			92
110#define JH7110_SYSCLK_SDIO0_SDCARD		93
111#define JH7110_SYSCLK_SDIO1_SDCARD		94
112#define JH7110_SYSCLK_USB_125M			95
113#define JH7110_SYSCLK_NOC_BUS_STG_AXI		96
114#define JH7110_SYSCLK_GMAC1_AHB			97
115#define JH7110_SYSCLK_GMAC1_AXI			98
116#define JH7110_SYSCLK_GMAC_SRC			99
117#define JH7110_SYSCLK_GMAC1_GTXCLK		100
118#define JH7110_SYSCLK_GMAC1_RMII_RTX		101
119#define JH7110_SYSCLK_GMAC1_PTP			102
120#define JH7110_SYSCLK_GMAC1_RX			103
121#define JH7110_SYSCLK_GMAC1_RX_INV		104
122#define JH7110_SYSCLK_GMAC1_TX			105
123#define JH7110_SYSCLK_GMAC1_TX_INV		106
124#define JH7110_SYSCLK_GMAC1_GTXC		107
125#define JH7110_SYSCLK_GMAC0_GTXCLK		108
126#define JH7110_SYSCLK_GMAC0_PTP			109
127#define JH7110_SYSCLK_GMAC_PHY			110
128#define JH7110_SYSCLK_GMAC0_GTXC		111
129#define JH7110_SYSCLK_IOMUX_APB			112
130#define JH7110_SYSCLK_MAILBOX_APB		113
131#define JH7110_SYSCLK_INT_CTRL_APB		114
132#define JH7110_SYSCLK_CAN0_APB			115
133#define JH7110_SYSCLK_CAN0_TIMER		116
134#define JH7110_SYSCLK_CAN0_CAN			117
135#define JH7110_SYSCLK_CAN1_APB			118
136#define JH7110_SYSCLK_CAN1_TIMER		119
137#define JH7110_SYSCLK_CAN1_CAN			120
138#define JH7110_SYSCLK_PWM_APB			121
139#define JH7110_SYSCLK_WDT_APB			122
140#define JH7110_SYSCLK_WDT_CORE			123
141#define JH7110_SYSCLK_TIMER_APB			124
142#define JH7110_SYSCLK_TIMER0			125
143#define JH7110_SYSCLK_TIMER1			126
144#define JH7110_SYSCLK_TIMER2			127
145#define JH7110_SYSCLK_TIMER3			128
146#define JH7110_SYSCLK_TEMP_APB			129
147#define JH7110_SYSCLK_TEMP_CORE			130
148#define JH7110_SYSCLK_SPI0_APB			131
149#define JH7110_SYSCLK_SPI1_APB			132
150#define JH7110_SYSCLK_SPI2_APB			133
151#define JH7110_SYSCLK_SPI3_APB			134
152#define JH7110_SYSCLK_SPI4_APB			135
153#define JH7110_SYSCLK_SPI5_APB			136
154#define JH7110_SYSCLK_SPI6_APB			137
155#define JH7110_SYSCLK_I2C0_APB			138
156#define JH7110_SYSCLK_I2C1_APB			139
157#define JH7110_SYSCLK_I2C2_APB			140
158#define JH7110_SYSCLK_I2C3_APB			141
159#define JH7110_SYSCLK_I2C4_APB			142
160#define JH7110_SYSCLK_I2C5_APB			143
161#define JH7110_SYSCLK_I2C6_APB			144
162#define JH7110_SYSCLK_UART0_APB			145
163#define JH7110_SYSCLK_UART0_CORE		146
164#define JH7110_SYSCLK_UART1_APB			147
165#define JH7110_SYSCLK_UART1_CORE		148
166#define JH7110_SYSCLK_UART2_APB			149
167#define JH7110_SYSCLK_UART2_CORE		150
168#define JH7110_SYSCLK_UART3_APB			151
169#define JH7110_SYSCLK_UART3_CORE		152
170#define JH7110_SYSCLK_UART4_APB			153
171#define JH7110_SYSCLK_UART4_CORE		154
172#define JH7110_SYSCLK_UART5_APB			155
173#define JH7110_SYSCLK_UART5_CORE		156
174#define JH7110_SYSCLK_PWMDAC_APB		157
175#define JH7110_SYSCLK_PWMDAC_CORE		158
176#define JH7110_SYSCLK_SPDIF_APB			159
177#define JH7110_SYSCLK_SPDIF_CORE		160
178#define JH7110_SYSCLK_I2STX0_APB		161
179#define JH7110_SYSCLK_I2STX0_BCLK_MST		162
180#define JH7110_SYSCLK_I2STX0_BCLK_MST_INV	163
181#define JH7110_SYSCLK_I2STX0_LRCK_MST		164
182#define JH7110_SYSCLK_I2STX0_BCLK		165
183#define JH7110_SYSCLK_I2STX0_BCLK_INV		166
184#define JH7110_SYSCLK_I2STX0_LRCK		167
185#define JH7110_SYSCLK_I2STX1_APB		168
186#define JH7110_SYSCLK_I2STX1_BCLK_MST		169
187#define JH7110_SYSCLK_I2STX1_BCLK_MST_INV	170
188#define JH7110_SYSCLK_I2STX1_LRCK_MST		171
189#define JH7110_SYSCLK_I2STX1_BCLK		172
190#define JH7110_SYSCLK_I2STX1_BCLK_INV		173
191#define JH7110_SYSCLK_I2STX1_LRCK		174
192#define JH7110_SYSCLK_I2SRX_APB			175
193#define JH7110_SYSCLK_I2SRX_BCLK_MST		176
194#define JH7110_SYSCLK_I2SRX_BCLK_MST_INV	177
195#define JH7110_SYSCLK_I2SRX_LRCK_MST		178
196#define JH7110_SYSCLK_I2SRX_BCLK		179
197#define JH7110_SYSCLK_I2SRX_BCLK_INV		180
198#define JH7110_SYSCLK_I2SRX_LRCK		181
199#define JH7110_SYSCLK_PDM_DMIC			182
200#define JH7110_SYSCLK_PDM_APB			183
201#define JH7110_SYSCLK_TDM_AHB			184
202#define JH7110_SYSCLK_TDM_APB			185
203#define JH7110_SYSCLK_TDM_INTERNAL		186
204#define JH7110_SYSCLK_TDM_TDM			187
205#define JH7110_SYSCLK_TDM_TDM_INV		188
206#define JH7110_SYSCLK_JTAG_CERTIFICATION_TRNG	189
207
208#define JH7110_SYSCLK_END			190
209
210/* AONCRG clocks */
211#define JH7110_AONCLK_OSC_DIV4			0
212#define JH7110_AONCLK_APB_FUNC			1
213#define JH7110_AONCLK_GMAC0_AHB			2
214#define JH7110_AONCLK_GMAC0_AXI			3
215#define JH7110_AONCLK_GMAC0_RMII_RTX		4
216#define JH7110_AONCLK_GMAC0_TX			5
217#define JH7110_AONCLK_GMAC0_TX_INV		6
218#define JH7110_AONCLK_GMAC0_RX			7
219#define JH7110_AONCLK_GMAC0_RX_INV		8
220#define JH7110_AONCLK_OTPC_APB			9
221#define JH7110_AONCLK_RTC_APB			10
222#define JH7110_AONCLK_RTC_INTERNAL		11
223#define JH7110_AONCLK_RTC_32K			12
224#define JH7110_AONCLK_RTC_CAL			13
225
226#define JH7110_AONCLK_END			14
227
228/* STGCRG clocks */
229#define JH7110_STGCLK_HIFI4_CLK_CORE		0
230#define JH7110_STGCLK_USB0_APB			1
231#define JH7110_STGCLK_USB0_UTMI_APB		2
232#define JH7110_STGCLK_USB0_AXI			3
233#define JH7110_STGCLK_USB0_LPM			4
234#define JH7110_STGCLK_USB0_STB			5
235#define JH7110_STGCLK_USB0_APP_125		6
236#define JH7110_STGCLK_USB0_REFCLK		7
237#define JH7110_STGCLK_PCIE0_AXI_MST0		8
238#define JH7110_STGCLK_PCIE0_APB			9
239#define JH7110_STGCLK_PCIE0_TL			10
240#define JH7110_STGCLK_PCIE1_AXI_MST0		11
241#define JH7110_STGCLK_PCIE1_APB			12
242#define JH7110_STGCLK_PCIE1_TL			13
243#define JH7110_STGCLK_PCIE_SLV_MAIN		14
244#define JH7110_STGCLK_SEC_AHB			15
245#define JH7110_STGCLK_SEC_MISC_AHB		16
246#define JH7110_STGCLK_GRP0_MAIN			17
247#define JH7110_STGCLK_GRP0_BUS			18
248#define JH7110_STGCLK_GRP0_STG			19
249#define JH7110_STGCLK_GRP1_MAIN			20
250#define JH7110_STGCLK_GRP1_BUS			21
251#define JH7110_STGCLK_GRP1_STG			22
252#define JH7110_STGCLK_GRP1_HIFI			23
253#define JH7110_STGCLK_E2_RTC			24
254#define JH7110_STGCLK_E2_CORE			25
255#define JH7110_STGCLK_E2_DBG			26
256#define JH7110_STGCLK_DMA1P_AXI			27
257#define JH7110_STGCLK_DMA1P_AHB			28
258
259#define JH7110_STGCLK_END			29
260
261/* ISPCRG clocks */
262#define JH7110_ISPCLK_DOM4_APB_FUNC		0
263#define JH7110_ISPCLK_MIPI_RX0_PXL		1
264#define JH7110_ISPCLK_DVP_INV			2
265#define JH7110_ISPCLK_M31DPHY_CFG_IN		3
266#define JH7110_ISPCLK_M31DPHY_REF_IN		4
267#define JH7110_ISPCLK_M31DPHY_TX_ESC_LAN0	5
268#define JH7110_ISPCLK_VIN_APB			6
269#define JH7110_ISPCLK_VIN_SYS			7
270#define JH7110_ISPCLK_VIN_PIXEL_IF0		8
271#define JH7110_ISPCLK_VIN_PIXEL_IF1		9
272#define JH7110_ISPCLK_VIN_PIXEL_IF2		10
273#define JH7110_ISPCLK_VIN_PIXEL_IF3		11
274#define JH7110_ISPCLK_VIN_P_AXI_WR		12
275#define JH7110_ISPCLK_ISPV2_TOP_WRAPPER_C	13
276
277#define JH7110_ISPCLK_END			14
278
279/* VOUTCRG clocks */
280#define JH7110_VOUTCLK_APB			0
281#define JH7110_VOUTCLK_DC8200_PIX		1
282#define JH7110_VOUTCLK_DSI_SYS			2
283#define JH7110_VOUTCLK_TX_ESC			3
284#define JH7110_VOUTCLK_DC8200_AXI		4
285#define JH7110_VOUTCLK_DC8200_CORE		5
286#define JH7110_VOUTCLK_DC8200_AHB		6
287#define JH7110_VOUTCLK_DC8200_PIX0		7
288#define JH7110_VOUTCLK_DC8200_PIX1		8
289#define JH7110_VOUTCLK_DOM_VOUT_TOP_LCD		9
290#define JH7110_VOUTCLK_DSITX_APB		10
291#define JH7110_VOUTCLK_DSITX_SYS		11
292#define JH7110_VOUTCLK_DSITX_DPI		12
293#define JH7110_VOUTCLK_DSITX_TXESC		13
294#define JH7110_VOUTCLK_MIPITX_DPHY_TXESC	14
295#define JH7110_VOUTCLK_HDMI_TX_MCLK		15
296#define JH7110_VOUTCLK_HDMI_TX_BCLK		16
297#define JH7110_VOUTCLK_HDMI_TX_SYS		17
298
299#define JH7110_VOUTCLK_END			18
300
301#endif /* __DT_BINDINGS_CLOCK_STARFIVE_JH7110_CRG_H__ */
302