1// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
2//
3// Spreadtrum SC9860 platform clocks
4//
5// Copyright (C) 2017, Spreadtrum Communications Inc.
6
7#ifndef _DT_BINDINGS_CLK_SC9860_H_
8#define _DT_BINDINGS_CLK_SC9860_H_
9
10#define	CLK_FAC_4M		0
11#define	CLK_FAC_2M		1
12#define	CLK_FAC_1M		2
13#define	CLK_FAC_250K		3
14#define	CLK_FAC_RPLL0_26M	4
15#define	CLK_FAC_RPLL1_26M	5
16#define	CLK_FAC_RCO25M		6
17#define	CLK_FAC_RCO4M		7
18#define	CLK_FAC_RCO2M		8
19#define	CLK_FAC_3K2		9
20#define	CLK_FAC_1K		10
21#define	CLK_MPLL0_GATE		11
22#define	CLK_MPLL1_GATE		12
23#define	CLK_DPLL0_GATE		13
24#define	CLK_DPLL1_GATE		14
25#define	CLK_LTEPLL0_GATE	15
26#define	CLK_TWPLL_GATE		16
27#define	CLK_LTEPLL1_GATE	17
28#define	CLK_RPLL0_GATE		18
29#define	CLK_RPLL1_GATE		19
30#define	CLK_CPPLL_GATE		20
31#define	CLK_GPLL_GATE		21
32#define CLK_PMU_GATE_NUM	(CLK_GPLL_GATE + 1)
33
34#define	CLK_MPLL0		0
35#define	CLK_MPLL1		1
36#define	CLK_DPLL0		2
37#define	CLK_DPLL1		3
38#define	CLK_RPLL0		4
39#define	CLK_RPLL1		5
40#define	CLK_TWPLL		6
41#define	CLK_LTEPLL0		7
42#define	CLK_LTEPLL1		8
43#define	CLK_GPLL		9
44#define	CLK_CPPLL		10
45#define	CLK_GPLL_42M5		11
46#define	CLK_TWPLL_768M		12
47#define	CLK_TWPLL_384M		13
48#define	CLK_TWPLL_192M		14
49#define	CLK_TWPLL_96M		15
50#define	CLK_TWPLL_48M		16
51#define	CLK_TWPLL_24M		17
52#define	CLK_TWPLL_12M		18
53#define	CLK_TWPLL_512M		19
54#define	CLK_TWPLL_256M		20
55#define	CLK_TWPLL_128M		21
56#define	CLK_TWPLL_64M		22
57#define	CLK_TWPLL_307M2		23
58#define	CLK_TWPLL_153M6		24
59#define	CLK_TWPLL_76M8		25
60#define	CLK_TWPLL_51M2		26
61#define	CLK_TWPLL_38M4		27
62#define	CLK_TWPLL_19M2		28
63#define	CLK_L0_614M4		29
64#define	CLK_L0_409M6		30
65#define	CLK_L0_38M		31
66#define	CLK_L1_38M		32
67#define	CLK_RPLL0_192M		33
68#define	CLK_RPLL0_96M		34
69#define	CLK_RPLL0_48M		35
70#define	CLK_RPLL1_468M		36
71#define	CLK_RPLL1_192M		37
72#define	CLK_RPLL1_96M		38
73#define	CLK_RPLL1_64M		39
74#define	CLK_RPLL1_48M		40
75#define	CLK_DPLL0_50M		41
76#define	CLK_DPLL1_50M		42
77#define	CLK_CPPLL_50M		43
78#define	CLK_M0_39M		44
79#define	CLK_M1_63M		45
80#define CLK_PLL_NUM		(CLK_M1_63M + 1)
81
82
83#define	CLK_AP_APB		0
84#define	CLK_AP_USB3		1
85#define	CLK_UART0		2
86#define	CLK_UART1		3
87#define	CLK_UART2		4
88#define	CLK_UART3		5
89#define	CLK_UART4		6
90#define	CLK_I2C0		7
91#define	CLK_I2C1		8
92#define	CLK_I2C2		9
93#define	CLK_I2C3		10
94#define	CLK_I2C4		11
95#define	CLK_I2C5		12
96#define	CLK_SPI0		13
97#define	CLK_SPI1		14
98#define	CLK_SPI2		15
99#define	CLK_SPI3		16
100#define	CLK_IIS0		17
101#define	CLK_IIS1		18
102#define	CLK_IIS2		19
103#define	CLK_IIS3		20
104#define CLK_AP_CLK_NUM		(CLK_IIS3 + 1)
105
106#define	CLK_AON_APB		0
107#define	CLK_AUX0		1
108#define	CLK_AUX1		2
109#define	CLK_AUX2		3
110#define	CLK_PROBE		4
111#define	CLK_SP_AHB		5
112#define	CLK_CCI			6
113#define	CLK_GIC			7
114#define	CLK_CSSYS		8
115#define	CLK_SDIO0_2X		9
116#define	CLK_SDIO1_2X		10
117#define	CLK_SDIO2_2X		11
118#define	CLK_EMMC_2X		12
119#define	CLK_SDIO0_1X		13
120#define	CLK_SDIO1_1X		14
121#define	CLK_SDIO2_1X		15
122#define	CLK_EMMC_1X		16
123#define	CLK_ADI			17
124#define	CLK_PWM0		18
125#define	CLK_PWM1		19
126#define	CLK_PWM2		20
127#define	CLK_PWM3		21
128#define	CLK_EFUSE		22
129#define	CLK_CM3_UART0		23
130#define	CLK_CM3_UART1		24
131#define	CLK_THM			25
132#define	CLK_CM3_I2C0		26
133#define	CLK_CM3_I2C1		27
134#define	CLK_CM4_SPI		28
135#define	CLK_AON_I2C		29
136#define	CLK_AVS			30
137#define	CLK_CA53_DAP		31
138#define	CLK_CA53_TS		32
139#define	CLK_DJTAG_TCK		33
140#define	CLK_PMU			34
141#define	CLK_PMU_26M		35
142#define	CLK_DEBOUNCE		36
143#define	CLK_OTG2_REF		37
144#define	CLK_USB3_REF		38
145#define	CLK_AP_AXI		39
146#define CLK_AON_PREDIV_NUM	(CLK_AP_AXI + 1)
147
148#define	CLK_USB3_EB		0
149#define	CLK_USB3_SUSPEND_EB	1
150#define	CLK_USB3_REF_EB		2
151#define	CLK_DMA_EB		3
152#define	CLK_SDIO0_EB		4
153#define	CLK_SDIO1_EB		5
154#define	CLK_SDIO2_EB		6
155#define	CLK_EMMC_EB		7
156#define	CLK_ROM_EB		8
157#define	CLK_BUSMON_EB		9
158#define	CLK_CC63S_EB		10
159#define	CLK_CC63P_EB		11
160#define	CLK_CE0_EB		12
161#define	CLK_CE1_EB		13
162#define CLK_APAHB_GATE_NUM	(CLK_CE1_EB + 1)
163
164#define	CLK_AVS_LIT_EB		0
165#define	CLK_AVS_BIG_EB		1
166#define	CLK_AP_INTC5_EB		2
167#define	CLK_GPIO_EB		3
168#define	CLK_PWM0_EB		4
169#define	CLK_PWM1_EB		5
170#define	CLK_PWM2_EB		6
171#define	CLK_PWM3_EB		7
172#define	CLK_KPD_EB		8
173#define	CLK_AON_SYS_EB		9
174#define	CLK_AP_SYS_EB		10
175#define	CLK_AON_TMR_EB		11
176#define	CLK_AP_TMR0_EB		12
177#define	CLK_EFUSE_EB		13
178#define	CLK_EIC_EB		14
179#define	CLK_PUB1_REG_EB		15
180#define	CLK_ADI_EB		16
181#define	CLK_AP_INTC0_EB		17
182#define	CLK_AP_INTC1_EB		18
183#define	CLK_AP_INTC2_EB		19
184#define	CLK_AP_INTC3_EB		20
185#define	CLK_AP_INTC4_EB		21
186#define	CLK_SPLK_EB		22
187#define	CLK_MSPI_EB		23
188#define	CLK_PUB0_REG_EB		24
189#define	CLK_PIN_EB		25
190#define	CLK_AON_CKG_EB		26
191#define	CLK_GPU_EB		27
192#define	CLK_APCPU_TS0_EB	28
193#define	CLK_APCPU_TS1_EB	29
194#define	CLK_DAP_EB		30
195#define	CLK_I2C_EB		31
196#define	CLK_PMU_EB		32
197#define	CLK_THM_EB		33
198#define	CLK_AUX0_EB		34
199#define	CLK_AUX1_EB		35
200#define	CLK_AUX2_EB		36
201#define	CLK_PROBE_EB		37
202#define	CLK_GPU0_AVS_EB		38
203#define	CLK_GPU1_AVS_EB		39
204#define	CLK_APCPU_WDG_EB	40
205#define	CLK_AP_TMR1_EB		41
206#define	CLK_AP_TMR2_EB		42
207#define	CLK_DISP_EMC_EB		43
208#define	CLK_ZIP_EMC_EB		44
209#define	CLK_GSP_EMC_EB		45
210#define	CLK_OSC_AON_EB		46
211#define	CLK_LVDS_TRX_EB		47
212#define	CLK_LVDS_TCXO_EB	48
213#define	CLK_MDAR_EB		49
214#define	CLK_RTC4M0_CAL_EB	50
215#define	CLK_RCT100M_CAL_EB	51
216#define	CLK_DJTAG_EB		52
217#define	CLK_MBOX_EB		53
218#define	CLK_AON_DMA_EB		54
219#define	CLK_DBG_EMC_EB		55
220#define	CLK_LVDS_PLL_DIV_EN	56
221#define	CLK_DEF_EB		57
222#define	CLK_AON_APB_RSV0	58
223#define	CLK_ORP_JTAG_EB		59
224#define	CLK_VSP_EB		60
225#define	CLK_CAM_EB		61
226#define	CLK_DISP_EB		62
227#define	CLK_DBG_AXI_IF_EB	63
228#define	CLK_SDIO0_2X_EN		64
229#define	CLK_SDIO1_2X_EN		65
230#define	CLK_SDIO2_2X_EN		66
231#define	CLK_EMMC_2X_EN		67
232#define	CLK_ARCH_RTC_EB		68
233#define	CLK_KPB_RTC_EB		69
234#define	CLK_AON_SYST_RTC_EB	70
235#define	CLK_AP_SYST_RTC_EB	71
236#define	CLK_AON_TMR_RTC_EB	72
237#define	CLK_AP_TMR0_RTC_EB	73
238#define	CLK_EIC_RTC_EB		74
239#define	CLK_EIC_RTCDV5_EB	75
240#define	CLK_AP_WDG_RTC_EB	76
241#define	CLK_AP_TMR1_RTC_EB	77
242#define	CLK_AP_TMR2_RTC_EB	78
243#define	CLK_DCXO_TMR_RTC_EB	79
244#define	CLK_BB_CAL_RTC_EB	80
245#define	CLK_AVS_BIG_RTC_EB	81
246#define	CLK_AVS_LIT_RTC_EB	82
247#define	CLK_AVS_GPU0_RTC_EB	83
248#define	CLK_AVS_GPU1_RTC_EB	84
249#define	CLK_GPU_TS_EB		85
250#define	CLK_RTCDV10_EB		86
251#define	CLK_AON_GATE_NUM	(CLK_RTCDV10_EB + 1)
252
253#define	CLK_LIT_MCU		0
254#define	CLK_BIG_MCU		1
255#define CLK_AONSECURE_NUM	(CLK_BIG_MCU + 1)
256
257#define	CLK_AGCP_IIS0_EB	0
258#define	CLK_AGCP_IIS1_EB	1
259#define	CLK_AGCP_IIS2_EB	2
260#define	CLK_AGCP_IIS3_EB	3
261#define	CLK_AGCP_UART_EB	4
262#define	CLK_AGCP_DMACP_EB	5
263#define	CLK_AGCP_DMAAP_EB	6
264#define	CLK_AGCP_ARC48K_EB	7
265#define	CLK_AGCP_SRC44P1K_EB	8
266#define	CLK_AGCP_MCDT_EB	9
267#define	CLK_AGCP_VBCIFD_EB	10
268#define	CLK_AGCP_VBC_EB		11
269#define	CLK_AGCP_SPINLOCK_EB	12
270#define	CLK_AGCP_ICU_EB		13
271#define	CLK_AGCP_AP_ASHB_EB	14
272#define	CLK_AGCP_CP_ASHB_EB	15
273#define	CLK_AGCP_AUD_EB		16
274#define	CLK_AGCP_AUDIF_EB	17
275#define CLK_AGCP_GATE_NUM	(CLK_AGCP_AUDIF_EB + 1)
276
277#define	CLK_GPU			0
278#define CLK_GPU_NUM		(CLK_GPU + 1)
279
280#define	CLK_AHB_VSP		0
281#define	CLK_VSP			1
282#define	CLK_VSP_ENC		2
283#define	CLK_VPP			3
284#define	CLK_VSP_26M		4
285#define CLK_VSP_NUM		(CLK_VSP_26M + 1)
286
287#define	CLK_VSP_DEC_EB		0
288#define	CLK_VSP_CKG_EB		1
289#define	CLK_VSP_MMU_EB		2
290#define	CLK_VSP_ENC_EB		3
291#define	CLK_VPP_EB		4
292#define	CLK_VSP_26M_EB		5
293#define	CLK_VSP_AXI_GATE	6
294#define	CLK_VSP_ENC_GATE	7
295#define	CLK_VPP_AXI_GATE	8
296#define	CLK_VSP_BM_GATE		9
297#define	CLK_VSP_ENC_BM_GATE	10
298#define	CLK_VPP_BM_GATE		11
299#define CLK_VSP_GATE_NUM	(CLK_VPP_BM_GATE + 1)
300
301#define	CLK_AHB_CAM		0
302#define	CLK_SENSOR0		1
303#define	CLK_SENSOR1		2
304#define	CLK_SENSOR2		3
305#define	CLK_MIPI_CSI0_EB	4
306#define	CLK_MIPI_CSI1_EB	5
307#define CLK_CAM_NUM		(CLK_MIPI_CSI1_EB + 1)
308
309#define	CLK_DCAM0_EB		0
310#define	CLK_DCAM1_EB		1
311#define	CLK_ISP0_EB		2
312#define	CLK_CSI0_EB		3
313#define	CLK_CSI1_EB		4
314#define	CLK_JPG0_EB		5
315#define	CLK_JPG1_EB		6
316#define	CLK_CAM_CKG_EB		7
317#define	CLK_CAM_MMU_EB		8
318#define	CLK_ISP1_EB		9
319#define	CLK_CPP_EB		10
320#define	CLK_MMU_PF_EB		11
321#define	CLK_ISP2_EB		12
322#define	CLK_DCAM2ISP_IF_EB	13
323#define	CLK_ISP2DCAM_IF_EB	14
324#define	CLK_ISP_LCLK_EB		15
325#define	CLK_ISP_ICLK_EB		16
326#define	CLK_ISP_MCLK_EB		17
327#define	CLK_ISP_PCLK_EB		18
328#define	CLK_ISP_ISP2DCAM_EB	19
329#define	CLK_DCAM0_IF_EB		20
330#define	CLK_CLK26M_IF_EB	21
331#define	CLK_CPHY0_GATE		22
332#define	CLK_MIPI_CSI0_GATE	23
333#define	CLK_CPHY1_GATE		24
334#define	CLK_MIPI_CSI1		25
335#define	CLK_DCAM0_AXI_GATE	26
336#define	CLK_DCAM1_AXI_GATE	27
337#define	CLK_SENSOR0_GATE	28
338#define	CLK_SENSOR1_GATE	29
339#define	CLK_JPG0_AXI_GATE	30
340#define	CLK_GPG1_AXI_GATE	31
341#define	CLK_ISP0_AXI_GATE	32
342#define	CLK_ISP1_AXI_GATE	33
343#define	CLK_ISP2_AXI_GATE	34
344#define	CLK_CPP_AXI_GATE	35
345#define	CLK_D0_IF_AXI_GATE	36
346#define	CLK_D2I_IF_AXI_GATE	37
347#define	CLK_I2D_IF_AXI_GATE	38
348#define	CLK_SPARE_AXI_GATE	39
349#define	CLK_SENSOR2_GATE	40
350#define	CLK_D0IF_IN_D_EN	41
351#define	CLK_D1IF_IN_D_EN	42
352#define	CLK_D0IF_IN_D2I_EN	43
353#define	CLK_D1IF_IN_D2I_EN	44
354#define	CLK_IA_IN_D2I_EN	45
355#define	CLK_IB_IN_D2I_EN	46
356#define	CLK_IC_IN_D2I_EN	47
357#define	CLK_IA_IN_I_EN		48
358#define	CLK_IB_IN_I_EN		49
359#define	CLK_IC_IN_I_EN		50
360#define CLK_CAM_GATE_NUM	(CLK_IC_IN_I_EN + 1)
361
362#define	CLK_AHB_DISP		0
363#define	CLK_DISPC0_DPI		1
364#define	CLK_DISPC1_DPI		2
365#define CLK_DISP_NUM		(CLK_DISPC1_DPI + 1)
366
367#define	CLK_DISPC0_EB		0
368#define	CLK_DISPC1_EB		1
369#define	CLK_DISPC_MMU_EB	2
370#define	CLK_GSP0_EB		3
371#define	CLK_GSP1_EB		4
372#define	CLK_GSP0_MMU_EB		5
373#define	CLK_GSP1_MMU_EB		6
374#define	CLK_DSI0_EB		7
375#define	CLK_DSI1_EB		8
376#define	CLK_DISP_CKG_EB		9
377#define	CLK_DISP_GPU_EB		10
378#define	CLK_GPU_MTX_EB		11
379#define	CLK_GSP_MTX_EB		12
380#define	CLK_TMC_MTX_EB		13
381#define	CLK_DISPC_MTX_EB	14
382#define	CLK_DPHY0_GATE		15
383#define	CLK_DPHY1_GATE		16
384#define	CLK_GSP0_A_GATE		17
385#define	CLK_GSP1_A_GATE		18
386#define	CLK_GSP0_F_GATE		19
387#define	CLK_GSP1_F_GATE		20
388#define	CLK_D_MTX_F_GATE	21
389#define	CLK_D_MTX_A_GATE	22
390#define	CLK_D_NOC_F_GATE	23
391#define	CLK_D_NOC_A_GATE	24
392#define	CLK_GSP_MTX_F_GATE	25
393#define	CLK_GSP_MTX_A_GATE	26
394#define	CLK_GSP_NOC_F_GATE	27
395#define	CLK_GSP_NOC_A_GATE	28
396#define	CLK_DISPM0IDLE_GATE	29
397#define	CLK_GSPM0IDLE_GATE	30
398#define CLK_DISP_GATE_NUM	(CLK_GSPM0IDLE_GATE + 1)
399
400#define	CLK_SIM0_EB		0
401#define	CLK_IIS0_EB		1
402#define	CLK_IIS1_EB		2
403#define	CLK_IIS2_EB		3
404#define	CLK_IIS3_EB		4
405#define	CLK_SPI0_EB		5
406#define	CLK_SPI1_EB		6
407#define	CLK_SPI2_EB		7
408#define	CLK_I2C0_EB		8
409#define	CLK_I2C1_EB		9
410#define	CLK_I2C2_EB		10
411#define	CLK_I2C3_EB		11
412#define	CLK_I2C4_EB		12
413#define	CLK_I2C5_EB		13
414#define	CLK_UART0_EB		14
415#define	CLK_UART1_EB		15
416#define	CLK_UART2_EB		16
417#define	CLK_UART3_EB		17
418#define	CLK_UART4_EB		18
419#define	CLK_AP_CKG_EB		19
420#define	CLK_SPI3_EB		20
421#define CLK_APAPB_GATE_NUM	(CLK_SPI3_EB + 1)
422
423#endif /* _DT_BINDINGS_CLK_SC9860_H_ */
424