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>
9 compatible = "ingenic,x1830";
17 compatible = "ingenic,xburst-fpu2.0-mxu2.0";
20 clocks = <&cgu X1830_CLK_CPU>;
25 cpuintc: interrupt-controller {
27 #interrupt-cells = <1>;
29 compatible = "mti,cpu-interrupt-controller";
32 intc: interrupt-controller@10001000 {
33 compatible = "ingenic,x1830-intc", "ingenic,jz4780-intc";
34 reg = <0x10001000 0x50>;
37 #interrupt-cells = <1>;
39 interrupt-parent = <&cpuintc>;
44 compatible = "fixed-clock";
49 compatible = "fixed-clock";
51 clock-frequency = <32768>;
54 cgu: x1830-cgu@10000000 {
55 compatible = "ingenic,x1830-cgu", "simple-mfd";
56 reg = <0x10000000 0x100>;
59 ranges = <0x0 0x10000000 0x100>;
63 clocks = <&exclk>, <&rtclk>;
64 clock-names = "ext", "rtc";
67 compatible = "ingenic,x1830-phy";
70 clocks = <&cgu X1830_CLK_OTGPHY>;
79 compatible = "ingenic,x1830-ost", "ingenic,x1000-ost";
80 reg = <0x12000000 0x3c>;
84 clocks = <&cgu X1830_CLK_OST>;
87 interrupt-parent = <&cpuintc>;
92 compatible = "ingenic,x1830-tcu", "ingenic,x1000-tcu", "simple-mfd";
93 reg = <0x10002000 0x1000>;
96 ranges = <0x0 0x10002000 0x1000>;
100 clocks = <&cgu X1830_CLK_RTCLK
102 &cgu X1830_CLK_PCLK>;
103 clock-names = "rtc", "ext", "pclk";
105 interrupt-controller;
106 #interrupt-cells = <1>;
108 interrupt-parent = <&intc>;
109 interrupts = <27 26 25>;
112 compatible = "ingenic,x1830-watchdog", "ingenic,jz4780-watchdog";
115 clocks = <&tcu TCU_CLK_WDT>;
121 compatible = "ingenic,x1830-rtc", "ingenic,jz4780-rtc";
122 reg = <0x10003000 0x4c>;
124 interrupt-parent = <&intc>;
127 clocks = <&cgu X1830_CLK_RTCLK>;
131 pinctrl: pin-controller@10010000 {
132 compatible = "ingenic,x1830-pinctrl";
133 reg = <0x10010000 0x800>;
134 #address-cells = <1>;
138 compatible = "ingenic,x1830-gpio";
142 gpio-ranges = <&pinctrl 0 0 32>;
145 interrupt-controller;
146 #interrupt-cells = <2>;
148 interrupt-parent = <&intc>;
153 compatible = "ingenic,x1830-gpio";
157 gpio-ranges = <&pinctrl 0 32 32>;
160 interrupt-controller;
161 #interrupt-cells = <2>;
163 interrupt-parent = <&intc>;
168 compatible = "ingenic,x1830-gpio";
172 gpio-ranges = <&pinctrl 0 64 32>;
175 interrupt-controller;
176 #interrupt-cells = <2>;
178 interrupt-parent = <&intc>;
183 compatible = "ingenic,x1830-gpio";
187 gpio-ranges = <&pinctrl 0 96 32>;
190 interrupt-controller;
191 #interrupt-cells = <2>;
193 interrupt-parent = <&intc>;
198 uart0: serial@10030000 {
199 compatible = "ingenic,x1830-uart", "ingenic,x1000-uart";
200 reg = <0x10030000 0x100>;
202 interrupt-parent = <&intc>;
205 clocks = <&exclk>, <&cgu X1830_CLK_UART0>;
206 clock-names = "baud", "module";
211 uart1: serial@10031000 {
212 compatible = "ingenic,x1830-uart", "ingenic,x1000-uart";
213 reg = <0x10031000 0x100>;
215 interrupt-parent = <&intc>;
218 clocks = <&exclk>, <&cgu X1830_CLK_UART1>;
219 clock-names = "baud", "module";
224 i2c0: i2c-controller@10050000 {
225 compatible = "ingenic,x1830-i2c", "ingenic,x1000-i2c";
226 reg = <0x10050000 0x1000>;
227 #address-cells = <1>;
230 interrupt-parent = <&intc>;
233 clocks = <&cgu X1830_CLK_SMB0>;
238 i2c1: i2c-controller@10051000 {
239 compatible = "ingenic,x1830-i2c", "ingenic,x1000-i2c";
240 reg = <0x10051000 0x1000>;
241 #address-cells = <1>;
244 interrupt-parent = <&intc>;
247 clocks = <&cgu X1830_CLK_SMB1>;
252 i2c2: i2c-controller@10052000 {
253 compatible = "ingenic,x1830-i2c", "ingenic,x1000-i2c";
254 reg = <0x10052000 0x1000>;
255 #address-cells = <1>;
258 interrupt-parent = <&intc>;
261 clocks = <&cgu X1830_CLK_SMB2>;
266 dtrng: trng@10072000 {
267 compatible = "ingenic,x1830-dtrng";
268 reg = <0x10072000 0xc>;
270 clocks = <&cgu X1830_CLK_DTRNG>;
275 pdma: dma-controller@13420000 {
276 compatible = "ingenic,x1830-dma";
277 reg = <0x13420000 0x400
281 interrupt-parent = <&intc>;
284 clocks = <&cgu X1830_CLK_PDMA>;
288 compatible = "ingenic,x1830-mmc", "ingenic,x1000-mmc";
289 reg = <0x13450000 0x1000>;
291 interrupt-parent = <&intc>;
294 clocks = <&cgu X1830_CLK_MSC0>;
301 dmas = <&pdma X1830_DMA_MSC0_RX 0xffffffff>,
302 <&pdma X1830_DMA_MSC0_TX 0xffffffff>;
303 dma-names = "rx", "tx";
309 compatible = "ingenic,x1830-mmc", "ingenic,x1000-mmc";
310 reg = <0x13460000 0x1000>;
312 interrupt-parent = <&intc>;
315 clocks = <&cgu X1830_CLK_MSC1>;
322 dmas = <&pdma X1830_DMA_MSC1_RX 0xffffffff>,
323 <&pdma X1830_DMA_MSC1_TX 0xffffffff>;
324 dma-names = "rx", "tx";
329 mac: ethernet@134b0000 {
330 compatible = "ingenic,x1830-mac", "snps,dwmac";
331 reg = <0x134b0000 0x2000>;
333 interrupt-parent = <&intc>;
335 interrupt-names = "macirq";
337 clocks = <&cgu X1830_CLK_MAC>;
338 clock-names = "stmmaceth";
343 compatible = "snps,dwmac-mdio";
344 #address-cells = <1>;
352 compatible = "ingenic,x1830-otg", "snps,dwc2";
353 reg = <0x13500000 0x40000>;
355 interrupt-parent = <&intc>;
358 clocks = <&cgu X1830_CLK_OTG>;
362 phy-names = "usb2-phy";
364 g-rx-fifo-size = <768>;
365 g-np-tx-fifo-size = <256>;
366 g-tx-fifo-size = <256 256 256 256 256 256 256 512>;