xref: /freebsd/sys/contrib/device-tree/include/dt-bindings/clock/hi6220-clock.h (revision c66ec88fed842fbaad62c30d510644ceb7bd2d71)
1*c66ec88fSEmmanuel Vadot /* SPDX-License-Identifier: GPL-2.0-only */
2*c66ec88fSEmmanuel Vadot /*
3*c66ec88fSEmmanuel Vadot  * Copyright (c) 2015 Hisilicon Limited.
4*c66ec88fSEmmanuel Vadot  *
5*c66ec88fSEmmanuel Vadot  * Author: Bintian Wang <bintian.wang@huawei.com>
6*c66ec88fSEmmanuel Vadot  */
7*c66ec88fSEmmanuel Vadot 
8*c66ec88fSEmmanuel Vadot #ifndef __DT_BINDINGS_CLOCK_HI6220_H
9*c66ec88fSEmmanuel Vadot #define __DT_BINDINGS_CLOCK_HI6220_H
10*c66ec88fSEmmanuel Vadot 
11*c66ec88fSEmmanuel Vadot /* clk in Hi6220 AO (always on) controller */
12*c66ec88fSEmmanuel Vadot #define HI6220_NONE_CLOCK	0
13*c66ec88fSEmmanuel Vadot 
14*c66ec88fSEmmanuel Vadot /* fixed rate clocks */
15*c66ec88fSEmmanuel Vadot #define HI6220_REF32K		1
16*c66ec88fSEmmanuel Vadot #define HI6220_CLK_TCXO		2
17*c66ec88fSEmmanuel Vadot #define HI6220_MMC1_PAD		3
18*c66ec88fSEmmanuel Vadot #define HI6220_MMC2_PAD		4
19*c66ec88fSEmmanuel Vadot #define HI6220_MMC0_PAD		5
20*c66ec88fSEmmanuel Vadot #define HI6220_PLL_BBP		6
21*c66ec88fSEmmanuel Vadot #define HI6220_PLL_GPU		7
22*c66ec88fSEmmanuel Vadot #define HI6220_PLL1_DDR		8
23*c66ec88fSEmmanuel Vadot #define HI6220_PLL_SYS		9
24*c66ec88fSEmmanuel Vadot #define HI6220_PLL_SYS_MEDIA	10
25*c66ec88fSEmmanuel Vadot #define HI6220_DDR_SRC		11
26*c66ec88fSEmmanuel Vadot #define HI6220_PLL_MEDIA	12
27*c66ec88fSEmmanuel Vadot #define HI6220_PLL_DDR		13
28*c66ec88fSEmmanuel Vadot 
29*c66ec88fSEmmanuel Vadot /* fixed factor clocks */
30*c66ec88fSEmmanuel Vadot #define HI6220_300M		14
31*c66ec88fSEmmanuel Vadot #define HI6220_150M		15
32*c66ec88fSEmmanuel Vadot #define HI6220_PICOPHY_SRC	16
33*c66ec88fSEmmanuel Vadot #define HI6220_MMC0_SRC_SEL	17
34*c66ec88fSEmmanuel Vadot #define HI6220_MMC1_SRC_SEL	18
35*c66ec88fSEmmanuel Vadot #define HI6220_MMC2_SRC_SEL	19
36*c66ec88fSEmmanuel Vadot #define HI6220_VPU_CODEC	20
37*c66ec88fSEmmanuel Vadot #define HI6220_MMC0_SMP		21
38*c66ec88fSEmmanuel Vadot #define HI6220_MMC1_SMP		22
39*c66ec88fSEmmanuel Vadot #define HI6220_MMC2_SMP		23
40*c66ec88fSEmmanuel Vadot 
41*c66ec88fSEmmanuel Vadot /* gate clocks */
42*c66ec88fSEmmanuel Vadot #define HI6220_WDT0_PCLK	24
43*c66ec88fSEmmanuel Vadot #define HI6220_WDT1_PCLK	25
44*c66ec88fSEmmanuel Vadot #define HI6220_WDT2_PCLK	26
45*c66ec88fSEmmanuel Vadot #define HI6220_TIMER0_PCLK	27
46*c66ec88fSEmmanuel Vadot #define HI6220_TIMER1_PCLK	28
47*c66ec88fSEmmanuel Vadot #define HI6220_TIMER2_PCLK	29
48*c66ec88fSEmmanuel Vadot #define HI6220_TIMER3_PCLK	30
49*c66ec88fSEmmanuel Vadot #define HI6220_TIMER4_PCLK	31
50*c66ec88fSEmmanuel Vadot #define HI6220_TIMER5_PCLK	32
51*c66ec88fSEmmanuel Vadot #define HI6220_TIMER6_PCLK	33
52*c66ec88fSEmmanuel Vadot #define HI6220_TIMER7_PCLK	34
53*c66ec88fSEmmanuel Vadot #define HI6220_TIMER8_PCLK	35
54*c66ec88fSEmmanuel Vadot #define HI6220_UART0_PCLK	36
55*c66ec88fSEmmanuel Vadot #define HI6220_RTC0_PCLK	37
56*c66ec88fSEmmanuel Vadot #define HI6220_RTC1_PCLK	38
57*c66ec88fSEmmanuel Vadot #define HI6220_AO_NR_CLKS	39
58*c66ec88fSEmmanuel Vadot 
59*c66ec88fSEmmanuel Vadot /* clk in Hi6220 systrl */
60*c66ec88fSEmmanuel Vadot /* gate clock */
61*c66ec88fSEmmanuel Vadot #define HI6220_MMC0_CLK		1
62*c66ec88fSEmmanuel Vadot #define HI6220_MMC0_CIUCLK	2
63*c66ec88fSEmmanuel Vadot #define HI6220_MMC1_CLK		3
64*c66ec88fSEmmanuel Vadot #define HI6220_MMC1_CIUCLK	4
65*c66ec88fSEmmanuel Vadot #define HI6220_MMC2_CLK		5
66*c66ec88fSEmmanuel Vadot #define HI6220_MMC2_CIUCLK	6
67*c66ec88fSEmmanuel Vadot #define HI6220_USBOTG_HCLK	7
68*c66ec88fSEmmanuel Vadot #define HI6220_CLK_PICOPHY	8
69*c66ec88fSEmmanuel Vadot #define HI6220_HIFI		9
70*c66ec88fSEmmanuel Vadot #define HI6220_DACODEC_PCLK	10
71*c66ec88fSEmmanuel Vadot #define HI6220_EDMAC_ACLK	11
72*c66ec88fSEmmanuel Vadot #define HI6220_CS_ATB		12
73*c66ec88fSEmmanuel Vadot #define HI6220_I2C0_CLK		13
74*c66ec88fSEmmanuel Vadot #define HI6220_I2C1_CLK		14
75*c66ec88fSEmmanuel Vadot #define HI6220_I2C2_CLK		15
76*c66ec88fSEmmanuel Vadot #define HI6220_I2C3_CLK		16
77*c66ec88fSEmmanuel Vadot #define HI6220_UART1_PCLK	17
78*c66ec88fSEmmanuel Vadot #define HI6220_UART2_PCLK	18
79*c66ec88fSEmmanuel Vadot #define HI6220_UART3_PCLK	19
80*c66ec88fSEmmanuel Vadot #define HI6220_UART4_PCLK	20
81*c66ec88fSEmmanuel Vadot #define HI6220_SPI_CLK		21
82*c66ec88fSEmmanuel Vadot #define HI6220_TSENSOR_CLK	22
83*c66ec88fSEmmanuel Vadot #define HI6220_MMU_CLK		23
84*c66ec88fSEmmanuel Vadot #define HI6220_HIFI_SEL		24
85*c66ec88fSEmmanuel Vadot #define HI6220_MMC0_SYSPLL	25
86*c66ec88fSEmmanuel Vadot #define HI6220_MMC1_SYSPLL	26
87*c66ec88fSEmmanuel Vadot #define HI6220_MMC2_SYSPLL	27
88*c66ec88fSEmmanuel Vadot #define HI6220_MMC0_SEL		28
89*c66ec88fSEmmanuel Vadot #define HI6220_MMC1_SEL		29
90*c66ec88fSEmmanuel Vadot #define HI6220_BBPPLL_SEL	30
91*c66ec88fSEmmanuel Vadot #define HI6220_MEDIA_PLL_SRC	31
92*c66ec88fSEmmanuel Vadot #define HI6220_MMC2_SEL		32
93*c66ec88fSEmmanuel Vadot #define HI6220_CS_ATB_SYSPLL	33
94*c66ec88fSEmmanuel Vadot 
95*c66ec88fSEmmanuel Vadot /* mux clocks */
96*c66ec88fSEmmanuel Vadot #define HI6220_MMC0_SRC		34
97*c66ec88fSEmmanuel Vadot #define HI6220_MMC0_SMP_IN	35
98*c66ec88fSEmmanuel Vadot #define HI6220_MMC1_SRC		36
99*c66ec88fSEmmanuel Vadot #define HI6220_MMC1_SMP_IN	37
100*c66ec88fSEmmanuel Vadot #define HI6220_MMC2_SRC		38
101*c66ec88fSEmmanuel Vadot #define HI6220_MMC2_SMP_IN	39
102*c66ec88fSEmmanuel Vadot #define HI6220_HIFI_SRC		40
103*c66ec88fSEmmanuel Vadot #define HI6220_UART1_SRC	41
104*c66ec88fSEmmanuel Vadot #define HI6220_UART2_SRC	42
105*c66ec88fSEmmanuel Vadot #define HI6220_UART3_SRC	43
106*c66ec88fSEmmanuel Vadot #define HI6220_UART4_SRC	44
107*c66ec88fSEmmanuel Vadot #define HI6220_MMC0_MUX0	45
108*c66ec88fSEmmanuel Vadot #define HI6220_MMC1_MUX0	46
109*c66ec88fSEmmanuel Vadot #define HI6220_MMC2_MUX0	47
110*c66ec88fSEmmanuel Vadot #define HI6220_MMC0_MUX1	48
111*c66ec88fSEmmanuel Vadot #define HI6220_MMC1_MUX1	49
112*c66ec88fSEmmanuel Vadot #define HI6220_MMC2_MUX1	50
113*c66ec88fSEmmanuel Vadot 
114*c66ec88fSEmmanuel Vadot /* divider clocks */
115*c66ec88fSEmmanuel Vadot #define HI6220_CLK_BUS		51
116*c66ec88fSEmmanuel Vadot #define HI6220_MMC0_DIV		52
117*c66ec88fSEmmanuel Vadot #define HI6220_MMC1_DIV		53
118*c66ec88fSEmmanuel Vadot #define HI6220_MMC2_DIV		54
119*c66ec88fSEmmanuel Vadot #define HI6220_HIFI_DIV		55
120*c66ec88fSEmmanuel Vadot #define HI6220_BBPPLL0_DIV	56
121*c66ec88fSEmmanuel Vadot #define HI6220_CS_DAPB		57
122*c66ec88fSEmmanuel Vadot #define HI6220_CS_ATB_DIV	58
123*c66ec88fSEmmanuel Vadot 
124*c66ec88fSEmmanuel Vadot /* gate clock */
125*c66ec88fSEmmanuel Vadot #define HI6220_DAPB_CLK		59
126*c66ec88fSEmmanuel Vadot 
127*c66ec88fSEmmanuel Vadot #define HI6220_SYS_NR_CLKS	60
128*c66ec88fSEmmanuel Vadot 
129*c66ec88fSEmmanuel Vadot /* clk in Hi6220 media controller */
130*c66ec88fSEmmanuel Vadot /* gate clocks */
131*c66ec88fSEmmanuel Vadot #define HI6220_DSI_PCLK		1
132*c66ec88fSEmmanuel Vadot #define HI6220_G3D_PCLK		2
133*c66ec88fSEmmanuel Vadot #define HI6220_ACLK_CODEC_VPU	3
134*c66ec88fSEmmanuel Vadot #define HI6220_ISP_SCLK		4
135*c66ec88fSEmmanuel Vadot #define HI6220_ADE_CORE		5
136*c66ec88fSEmmanuel Vadot #define HI6220_MED_MMU		6
137*c66ec88fSEmmanuel Vadot #define HI6220_CFG_CSI4PHY	7
138*c66ec88fSEmmanuel Vadot #define HI6220_CFG_CSI2PHY	8
139*c66ec88fSEmmanuel Vadot #define HI6220_ISP_SCLK_GATE	9
140*c66ec88fSEmmanuel Vadot #define HI6220_ISP_SCLK_GATE1	10
141*c66ec88fSEmmanuel Vadot #define HI6220_ADE_CORE_GATE	11
142*c66ec88fSEmmanuel Vadot #define HI6220_CODEC_VPU_GATE	12
143*c66ec88fSEmmanuel Vadot #define HI6220_MED_SYSPLL	13
144*c66ec88fSEmmanuel Vadot 
145*c66ec88fSEmmanuel Vadot /* mux clocks */
146*c66ec88fSEmmanuel Vadot #define HI6220_1440_1200	14
147*c66ec88fSEmmanuel Vadot #define HI6220_1000_1200	15
148*c66ec88fSEmmanuel Vadot #define HI6220_1000_1440	16
149*c66ec88fSEmmanuel Vadot 
150*c66ec88fSEmmanuel Vadot /* divider clocks */
151*c66ec88fSEmmanuel Vadot #define HI6220_CODEC_JPEG	17
152*c66ec88fSEmmanuel Vadot #define HI6220_ISP_SCLK_SRC	18
153*c66ec88fSEmmanuel Vadot #define HI6220_ISP_SCLK1	19
154*c66ec88fSEmmanuel Vadot #define HI6220_ADE_CORE_SRC	20
155*c66ec88fSEmmanuel Vadot #define HI6220_ADE_PIX_SRC	21
156*c66ec88fSEmmanuel Vadot #define HI6220_G3D_CLK		22
157*c66ec88fSEmmanuel Vadot #define HI6220_CODEC_VPU_SRC	23
158*c66ec88fSEmmanuel Vadot 
159*c66ec88fSEmmanuel Vadot #define HI6220_MEDIA_NR_CLKS	24
160*c66ec88fSEmmanuel Vadot 
161*c66ec88fSEmmanuel Vadot /* clk in Hi6220 power controller */
162*c66ec88fSEmmanuel Vadot /* gate clocks */
163*c66ec88fSEmmanuel Vadot #define HI6220_PLL_GPU_GATE	1
164*c66ec88fSEmmanuel Vadot #define HI6220_PLL1_DDR_GATE	2
165*c66ec88fSEmmanuel Vadot #define HI6220_PLL_DDR_GATE	3
166*c66ec88fSEmmanuel Vadot #define HI6220_PLL_MEDIA_GATE	4
167*c66ec88fSEmmanuel Vadot #define HI6220_PLL0_BBP_GATE	5
168*c66ec88fSEmmanuel Vadot 
169*c66ec88fSEmmanuel Vadot /* divider clocks */
170*c66ec88fSEmmanuel Vadot #define HI6220_DDRC_SRC		6
171*c66ec88fSEmmanuel Vadot #define HI6220_DDRC_AXI1	7
172*c66ec88fSEmmanuel Vadot 
173*c66ec88fSEmmanuel Vadot #define HI6220_POWER_NR_CLKS	8
174*c66ec88fSEmmanuel Vadot 
175*c66ec88fSEmmanuel Vadot /* clk in Hi6220 acpu sctrl */
176*c66ec88fSEmmanuel Vadot #define HI6220_ACPU_SFT_AT_S		0
177*c66ec88fSEmmanuel Vadot 
178*c66ec88fSEmmanuel Vadot #endif
179