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