diff options
Diffstat (limited to 'arch/mips/boot/dts/ingenic/x1830.dtsi')
-rw-r--r-- | arch/mips/boot/dts/ingenic/x1830.dtsi | 314 |
1 files changed, 314 insertions, 0 deletions
diff --git a/arch/mips/boot/dts/ingenic/x1830.dtsi b/arch/mips/boot/dts/ingenic/x1830.dtsi new file mode 100644 index 000000000..b05dac3ae --- /dev/null +++ b/arch/mips/boot/dts/ingenic/x1830.dtsi | |||
@@ -0,0 +1,314 @@ | |||
1 | // SPDX-License-Identifier: GPL-2.0 | ||
2 | #include <dt-bindings/clock/ingenic,tcu.h> | ||
3 | #include <dt-bindings/clock/x1830-cgu.h> | ||
4 | #include <dt-bindings/dma/x1830-dma.h> | ||
5 | |||
6 | / { | ||
7 | #address-cells = <1>; | ||
8 | #size-cells = <1>; | ||
9 | compatible = "ingenic,x1830"; | ||
10 | |||
11 | cpus { | ||
12 | #address-cells = <1>; | ||
13 | #size-cells = <0>; | ||
14 | |||
15 | cpu0: cpu@0 { | ||
16 | device_type = "cpu"; | ||
17 | compatible = "ingenic,xburst-fpu2.0-mxu2.0"; | ||
18 | reg = <0>; | ||
19 | |||
20 | clocks = <&cgu X1830_CLK_CPU>; | ||
21 | clock-names = "cpu"; | ||
22 | }; | ||
23 | }; | ||
24 | |||
25 | cpuintc: interrupt-controller { | ||
26 | #address-cells = <0>; | ||
27 | #interrupt-cells = <1>; | ||
28 | interrupt-controller; | ||
29 | compatible = "mti,cpu-interrupt-controller"; | ||
30 | }; | ||
31 | |||
32 | intc: interrupt-controller@10001000 { | ||
33 | compatible = "ingenic,x1830-intc", "ingenic,jz4780-intc"; | ||
34 | reg = <0x10001000 0x50>; | ||
35 | |||
36 | interrupt-controller; | ||
37 | #interrupt-cells = <1>; | ||
38 | |||
39 | interrupt-parent = <&cpuintc>; | ||
40 | interrupts = <2>; | ||
41 | }; | ||
42 | |||
43 | exclk: ext { | ||
44 | compatible = "fixed-clock"; | ||
45 | #clock-cells = <0>; | ||
46 | }; | ||
47 | |||
48 | rtclk: rtc { | ||
49 | compatible = "fixed-clock"; | ||
50 | #clock-cells = <0>; | ||
51 | clock-frequency = <32768>; | ||
52 | }; | ||
53 | |||
54 | cgu: x1830-cgu@10000000 { | ||
55 | compatible = "ingenic,x1830-cgu"; | ||
56 | reg = <0x10000000 0x100>; | ||
57 | |||
58 | #clock-cells = <1>; | ||
59 | |||
60 | clocks = <&exclk>, <&rtclk>; | ||
61 | clock-names = "ext", "rtc"; | ||
62 | }; | ||
63 | |||
64 | tcu: timer@10002000 { | ||
65 | compatible = "ingenic,x1830-tcu", "ingenic,x1000-tcu", "simple-mfd"; | ||
66 | reg = <0x10002000 0x1000>; | ||
67 | #address-cells = <1>; | ||
68 | #size-cells = <1>; | ||
69 | ranges = <0x0 0x10002000 0x1000>; | ||
70 | |||
71 | #clock-cells = <1>; | ||
72 | |||
73 | clocks = <&cgu X1830_CLK_RTCLK | ||
74 | &cgu X1830_CLK_EXCLK | ||
75 | &cgu X1830_CLK_PCLK>; | ||
76 | clock-names = "rtc", "ext", "pclk"; | ||
77 | |||
78 | interrupt-controller; | ||
79 | #interrupt-cells = <1>; | ||
80 | |||
81 | interrupt-parent = <&intc>; | ||
82 | interrupts = <27 26 25>; | ||
83 | |||
84 | wdt: watchdog@0 { | ||
85 | compatible = "ingenic,x1830-watchdog", "ingenic,jz4780-watchdog"; | ||
86 | reg = <0x0 0x10>; | ||
87 | |||
88 | clocks = <&tcu TCU_CLK_WDT>; | ||
89 | clock-names = "wdt"; | ||
90 | }; | ||
91 | }; | ||
92 | |||
93 | rtc: rtc@10003000 { | ||
94 | compatible = "ingenic,x1830-rtc", "ingenic,jz4780-rtc"; | ||
95 | reg = <0x10003000 0x4c>; | ||
96 | |||
97 | interrupt-parent = <&intc>; | ||
98 | interrupts = <32>; | ||
99 | |||
100 | clocks = <&cgu X1830_CLK_RTCLK>; | ||
101 | clock-names = "rtc"; | ||
102 | }; | ||
103 | |||
104 | pinctrl: pin-controller@10010000 { | ||
105 | compatible = "ingenic,x1830-pinctrl"; | ||
106 | reg = <0x10010000 0x800>; | ||
107 | #address-cells = <1>; | ||
108 | #size-cells = <0>; | ||
109 | |||
110 | gpa: gpio@0 { | ||
111 | compatible = "ingenic,x1830-gpio"; | ||
112 | reg = <0>; | ||
113 | |||
114 | gpio-controller; | ||
115 | gpio-ranges = <&pinctrl 0 0 32>; | ||
116 | #gpio-cells = <2>; | ||
117 | |||
118 | interrupt-controller; | ||
119 | #interrupt-cells = <2>; | ||
120 | |||
121 | interrupt-parent = <&intc>; | ||
122 | interrupts = <17>; | ||
123 | }; | ||
124 | |||
125 | gpb: gpio@1 { | ||
126 | compatible = "ingenic,x1830-gpio"; | ||
127 | reg = <1>; | ||
128 | |||
129 | gpio-controller; | ||
130 | gpio-ranges = <&pinctrl 0 32 32>; | ||
131 | #gpio-cells = <2>; | ||
132 | |||
133 | interrupt-controller; | ||
134 | #interrupt-cells = <2>; | ||
135 | |||
136 | interrupt-parent = <&intc>; | ||
137 | interrupts = <16>; | ||
138 | }; | ||
139 | |||
140 | gpc: gpio@2 { | ||
141 | compatible = "ingenic,x1830-gpio"; | ||
142 | reg = <2>; | ||
143 | |||
144 | gpio-controller; | ||
145 | gpio-ranges = <&pinctrl 0 64 32>; | ||
146 | #gpio-cells = <2>; | ||
147 | |||
148 | interrupt-controller; | ||
149 | #interrupt-cells = <2>; | ||
150 | |||
151 | interrupt-parent = <&intc>; | ||
152 | interrupts = <15>; | ||
153 | }; | ||
154 | |||
155 | gpd: gpio@3 { | ||
156 | compatible = "ingenic,x1830-gpio"; | ||
157 | reg = <3>; | ||
158 | |||
159 | gpio-controller; | ||
160 | gpio-ranges = <&pinctrl 0 96 32>; | ||
161 | #gpio-cells = <2>; | ||
162 | |||
163 | interrupt-controller; | ||
164 | #interrupt-cells = <2>; | ||
165 | |||
166 | interrupt-parent = <&intc>; | ||
167 | interrupts = <14>; | ||
168 | }; | ||
169 | }; | ||
170 | |||
171 | uart0: serial@10030000 { | ||
172 | compatible = "ingenic,x1830-uart", "ingenic,x1000-uart"; | ||
173 | reg = <0x10030000 0x100>; | ||
174 | |||
175 | interrupt-parent = <&intc>; | ||
176 | interrupts = <51>; | ||
177 | |||
178 | clocks = <&exclk>, <&cgu X1830_CLK_UART0>; | ||
179 | clock-names = "baud", "module"; | ||
180 | |||
181 | status = "disabled"; | ||
182 | }; | ||
183 | |||
184 | uart1: serial@10031000 { | ||
185 | compatible = "ingenic,x1830-uart", "ingenic,x1000-uart"; | ||
186 | reg = <0x10031000 0x100>; | ||
187 | |||
188 | interrupt-parent = <&intc>; | ||
189 | interrupts = <50>; | ||
190 | |||
191 | clocks = <&exclk>, <&cgu X1830_CLK_UART1>; | ||
192 | clock-names = "baud", "module"; | ||
193 | |||
194 | status = "disabled"; | ||
195 | }; | ||
196 | |||
197 | i2c0: i2c-controller@10050000 { | ||
198 | compatible = "ingenic,x1830-i2c", "ingenic,x1000-i2c"; | ||
199 | reg = <0x10050000 0x1000>; | ||
200 | #address-cells = <1>; | ||
201 | #size-cells = <0>; | ||
202 | |||
203 | interrupt-parent = <&intc>; | ||
204 | interrupts = <60>; | ||
205 | |||
206 | clocks = <&cgu X1830_CLK_SMB0>; | ||
207 | |||
208 | status = "disabled"; | ||
209 | }; | ||
210 | |||
211 | i2c1: i2c-controller@10051000 { | ||
212 | compatible = "ingenic,x1830-i2c", "ingenic,x1000-i2c"; | ||
213 | reg = <0x10051000 0x1000>; | ||
214 | #address-cells = <1>; | ||
215 | #size-cells = <0>; | ||
216 | |||
217 | interrupt-parent = <&intc>; | ||
218 | interrupts = <59>; | ||
219 | |||
220 | clocks = <&cgu X1830_CLK_SMB1>; | ||
221 | |||
222 | status = "disabled"; | ||
223 | }; | ||
224 | |||
225 | i2c2: i2c-controller@10052000 { | ||
226 | compatible = "ingenic,x1830-i2c", "ingenic,x1000-i2c"; | ||
227 | reg = <0x10052000 0x1000>; | ||
228 | #address-cells = <1>; | ||
229 | #size-cells = <0>; | ||
230 | |||
231 | interrupt-parent = <&intc>; | ||
232 | interrupts = <58>; | ||
233 | |||
234 | clocks = <&cgu X1830_CLK_SMB2>; | ||
235 | |||
236 | status = "disabled"; | ||
237 | }; | ||
238 | |||
239 | pdma: dma-controller@13420000 { | ||
240 | compatible = "ingenic,x1830-dma"; | ||
241 | reg = <0x13420000 0x400 | ||
242 | 0x13421000 0x40>; | ||
243 | #dma-cells = <2>; | ||
244 | |||
245 | interrupt-parent = <&intc>; | ||
246 | interrupts = <10>; | ||
247 | |||
248 | clocks = <&cgu X1830_CLK_PDMA>; | ||
249 | }; | ||
250 | |||
251 | msc0: mmc@13450000 { | ||
252 | compatible = "ingenic,x1830-mmc", "ingenic,x1000-mmc"; | ||
253 | reg = <0x13450000 0x1000>; | ||
254 | |||
255 | interrupt-parent = <&intc>; | ||
256 | interrupts = <37>; | ||
257 | |||
258 | clocks = <&cgu X1830_CLK_MSC0>; | ||
259 | clock-names = "mmc"; | ||
260 | |||
261 | cap-sd-highspeed; | ||
262 | cap-mmc-highspeed; | ||
263 | cap-sdio-irq; | ||
264 | |||
265 | dmas = <&pdma X1830_DMA_MSC0_RX 0xffffffff>, | ||
266 | <&pdma X1830_DMA_MSC0_TX 0xffffffff>; | ||
267 | dma-names = "rx", "tx"; | ||
268 | |||
269 | status = "disabled"; | ||
270 | }; | ||
271 | |||
272 | msc1: mmc@13460000 { | ||
273 | compatible = "ingenic,x1830-mmc", "ingenic,x1000-mmc"; | ||
274 | reg = <0x13460000 0x1000>; | ||
275 | |||
276 | interrupt-parent = <&intc>; | ||
277 | interrupts = <36>; | ||
278 | |||
279 | clocks = <&cgu X1830_CLK_MSC1>; | ||
280 | clock-names = "mmc"; | ||
281 | |||
282 | cap-sd-highspeed; | ||
283 | cap-mmc-highspeed; | ||
284 | cap-sdio-irq; | ||
285 | |||
286 | dmas = <&pdma X1830_DMA_MSC1_RX 0xffffffff>, | ||
287 | <&pdma X1830_DMA_MSC1_TX 0xffffffff>; | ||
288 | dma-names = "rx", "tx"; | ||
289 | |||
290 | status = "disabled"; | ||
291 | }; | ||
292 | |||
293 | mac: ethernet@134b0000 { | ||
294 | compatible = "ingenic,x1830-mac", "snps,dwmac"; | ||
295 | reg = <0x134b0000 0x2000>; | ||
296 | |||
297 | interrupt-parent = <&intc>; | ||
298 | interrupts = <55>; | ||
299 | interrupt-names = "macirq"; | ||
300 | |||
301 | clocks = <&cgu X1830_CLK_MAC>; | ||
302 | clock-names = "stmmaceth"; | ||
303 | |||
304 | status = "disabled"; | ||
305 | |||
306 | mdio: mdio { | ||
307 | compatible = "snps,dwmac-mdio"; | ||
308 | #address-cells = <1>; | ||
309 | #size-cells = <0>; | ||
310 | |||
311 | status = "disabled"; | ||
312 | }; | ||
313 | }; | ||
314 | }; | ||