1 // SPDX-License-Identifier: GPL-2.0
2 #include <dt-bindings/clock/ingenic,tcu.h>
3 #include <dt-bindings/clock/ingenic,x1000-cgu.h>
4 #include <dt-bindings/dma/x1000-dma.h>
9 compatible = "ingenic,x1000", "ingenic,x1000e";
17 compatible = "ingenic,xburst-fpu1.0-mxu1.1";
20 clocks = <&cgu X1000_CLK_CPU>;
25 cpuintc: interrupt-controller {
27 #interrupt-cells = <1>;
29 compatible = "mti,cpu-interrupt-controller";
32 intc: interrupt-controller@10001000 {
33 compatible = "ingenic,x1000-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: x1000-cgu@10000000 {
55 compatible = "ingenic,x1000-cgu", "simple-mfd";
56 reg = <0x10000000 0x100>;
59 ranges = <0x0 0x10000000 0x100>;
63 clocks = <&exclk>, <&rtclk>;
64 clock-names = "ext", "rtc";
67 compatible = "ingenic,x1000-phy";
70 clocks = <&cgu X1000_CLK_OTGPHY>;
78 compatible = "ingenic,x1000-rng";
84 mac_phy_ctrl: mac-phy-ctrl@e8 {
85 compatible = "syscon";
91 compatible = "ingenic,x1000-ost";
92 reg = <0x12000000 0x3c>;
96 clocks = <&cgu X1000_CLK_OST>;
99 interrupt-parent = <&cpuintc>;
103 tcu: timer@10002000 {
104 compatible = "ingenic,x1000-tcu", "simple-mfd";
105 reg = <0x10002000 0x1000>;
106 #address-cells = <1>;
108 ranges = <0x0 0x10002000 0x1000>;
112 clocks = <&cgu X1000_CLK_RTCLK>,
113 <&cgu X1000_CLK_EXCLK>,
114 <&cgu X1000_CLK_PCLK>;
115 clock-names = "rtc", "ext", "pclk";
117 interrupt-controller;
118 #interrupt-cells = <1>;
120 interrupt-parent = <&intc>;
121 interrupts = <27 26 25>;
124 compatible = "ingenic,x1000-watchdog", "ingenic,jz4780-watchdog";
127 clocks = <&tcu TCU_CLK_WDT>;
132 compatible = "ingenic,x1000-pwm";
137 clocks = <&tcu TCU_CLK_TIMER0>, <&tcu TCU_CLK_TIMER1>,
138 <&tcu TCU_CLK_TIMER2>, <&tcu TCU_CLK_TIMER3>,
139 <&tcu TCU_CLK_TIMER4>;
140 clock-names = "timer0", "timer1", "timer2", "timer3", "timer4";
145 compatible = "ingenic,x1000-rtc", "ingenic,jz4780-rtc";
146 reg = <0x10003000 0x4c>;
148 interrupt-parent = <&intc>;
151 clocks = <&cgu X1000_CLK_RTCLK>;
155 pinctrl: pin-controller@10010000 {
156 compatible = "ingenic,x1000-pinctrl";
157 reg = <0x10010000 0x800>;
158 #address-cells = <1>;
162 compatible = "ingenic,x1000-gpio";
166 gpio-ranges = <&pinctrl 0 0 32>;
169 interrupt-controller;
170 #interrupt-cells = <2>;
172 interrupt-parent = <&intc>;
177 compatible = "ingenic,x1000-gpio";
181 gpio-ranges = <&pinctrl 0 32 32>;
184 interrupt-controller;
185 #interrupt-cells = <2>;
187 interrupt-parent = <&intc>;
192 compatible = "ingenic,x1000-gpio";
196 gpio-ranges = <&pinctrl 0 64 32>;
199 interrupt-controller;
200 #interrupt-cells = <2>;
202 interrupt-parent = <&intc>;
207 compatible = "ingenic,x1000-gpio";
211 gpio-ranges = <&pinctrl 0 96 32>;
214 interrupt-controller;
215 #interrupt-cells = <2>;
217 interrupt-parent = <&intc>;
222 uart0: serial@10030000 {
223 compatible = "ingenic,x1000-uart";
224 reg = <0x10030000 0x100>;
226 interrupt-parent = <&intc>;
229 clocks = <&exclk>, <&cgu X1000_CLK_UART0>;
230 clock-names = "baud", "module";
235 uart1: serial@10031000 {
236 compatible = "ingenic,x1000-uart";
237 reg = <0x10031000 0x100>;
239 interrupt-parent = <&intc>;
242 clocks = <&exclk>, <&cgu X1000_CLK_UART1>;
243 clock-names = "baud", "module";
248 uart2: serial@10032000 {
249 compatible = "ingenic,x1000-uart";
250 reg = <0x10032000 0x100>;
252 interrupt-parent = <&intc>;
255 clocks = <&exclk>, <&cgu X1000_CLK_UART2>;
256 clock-names = "baud", "module";
262 compatible = "ingenic,x1000-spi";
263 reg = <0x10043000 0x20>;
264 #address-cells = <1>;
267 interrupt-parent = <&intc>;
270 clocks = <&cgu X1000_CLK_SSI>;
273 dmas = <&pdma X1000_DMA_SSI0_RX 0xffffffff>,
274 <&pdma X1000_DMA_SSI0_TX 0xffffffff>;
275 dma-names = "rx", "tx";
280 i2c0: i2c-controller@10050000 {
281 compatible = "ingenic,x1000-i2c";
282 reg = <0x10050000 0x1000>;
283 #address-cells = <1>;
286 interrupt-parent = <&intc>;
289 clocks = <&cgu X1000_CLK_I2C0>;
294 i2c1: i2c-controller@10051000 {
295 compatible = "ingenic,x1000-i2c";
296 reg = <0x10051000 0x1000>;
297 #address-cells = <1>;
300 interrupt-parent = <&intc>;
303 clocks = <&cgu X1000_CLK_I2C1>;
308 i2c2: i2c-controller@10052000 {
309 compatible = "ingenic,x1000-i2c";
310 reg = <0x10052000 0x1000>;
311 #address-cells = <1>;
314 interrupt-parent = <&intc>;
317 clocks = <&cgu X1000_CLK_I2C2>;
322 pdma: dma-controller@13420000 {
323 compatible = "ingenic,x1000-dma";
324 reg = <0x13420000 0x400>, <0x13421000 0x40>;
328 interrupt-parent = <&intc>;
331 clocks = <&cgu X1000_CLK_PDMA>;
335 compatible = "ingenic,x1000-mmc";
336 reg = <0x13450000 0x1000>;
338 interrupt-parent = <&intc>;
341 clocks = <&cgu X1000_CLK_MSC0>;
348 dmas = <&pdma X1000_DMA_MSC0_RX 0xffffffff>,
349 <&pdma X1000_DMA_MSC0_TX 0xffffffff>;
350 dma-names = "rx", "tx";
356 compatible = "ingenic,x1000-mmc";
357 reg = <0x13460000 0x1000>;
359 interrupt-parent = <&intc>;
362 clocks = <&cgu X1000_CLK_MSC1>;
369 dmas = <&pdma X1000_DMA_MSC1_RX 0xffffffff>,
370 <&pdma X1000_DMA_MSC1_TX 0xffffffff>;
371 dma-names = "rx", "tx";
376 mac: ethernet@134b0000 {
377 compatible = "ingenic,x1000-mac", "snps,dwmac";
378 reg = <0x134b0000 0x2000>;
380 interrupt-parent = <&intc>;
382 interrupt-names = "macirq";
384 clocks = <&cgu X1000_CLK_MAC>;
385 clock-names = "stmmaceth";
387 mode-reg = <&mac_phy_ctrl>;
392 compatible = "snps,dwmac-mdio";
393 #address-cells = <1>;
401 compatible = "ingenic,x1000-otg";
402 reg = <0x13500000 0x40000>;
404 interrupt-parent = <&intc>;
407 clocks = <&cgu X1000_CLK_OTG>;
411 phy-names = "usb2-phy";
413 g-rx-fifo-size = <768>;
414 g-np-tx-fifo-size = <256>;
415 g-tx-fifo-size = <256 256 256 256 256 256 256 512>;