1 // SPDX-License-Identifier: GPL-2.0
2 #include <dt-bindings/clock/ingenic,tcu.h>
3 #include <dt-bindings/clock/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";
86 compatible = "ingenic,x1000-ost";
87 reg = <0x12000000 0x3c>;
91 clocks = <&cgu X1000_CLK_OST>;
94 interrupt-parent = <&cpuintc>;
99 compatible = "ingenic,x1000-tcu", "simple-mfd";
100 reg = <0x10002000 0x1000>;
101 #address-cells = <1>;
103 ranges = <0x0 0x10002000 0x1000>;
107 clocks = <&cgu X1000_CLK_RTCLK>,
108 <&cgu X1000_CLK_EXCLK>,
109 <&cgu X1000_CLK_PCLK>;
110 clock-names = "rtc", "ext", "pclk";
112 interrupt-controller;
113 #interrupt-cells = <1>;
115 interrupt-parent = <&intc>;
116 interrupts = <27 26 25>;
119 compatible = "ingenic,x1000-watchdog", "ingenic,jz4780-watchdog";
122 clocks = <&tcu TCU_CLK_WDT>;
128 compatible = "ingenic,x1000-rtc", "ingenic,jz4780-rtc";
129 reg = <0x10003000 0x4c>;
131 interrupt-parent = <&intc>;
134 clocks = <&cgu X1000_CLK_RTCLK>;
138 pinctrl: pin-controller@10010000 {
139 compatible = "ingenic,x1000-pinctrl";
140 reg = <0x10010000 0x800>;
141 #address-cells = <1>;
145 compatible = "ingenic,x1000-gpio";
149 gpio-ranges = <&pinctrl 0 0 32>;
152 interrupt-controller;
153 #interrupt-cells = <2>;
155 interrupt-parent = <&intc>;
160 compatible = "ingenic,x1000-gpio";
164 gpio-ranges = <&pinctrl 0 32 32>;
167 interrupt-controller;
168 #interrupt-cells = <2>;
170 interrupt-parent = <&intc>;
175 compatible = "ingenic,x1000-gpio";
179 gpio-ranges = <&pinctrl 0 64 32>;
182 interrupt-controller;
183 #interrupt-cells = <2>;
185 interrupt-parent = <&intc>;
190 compatible = "ingenic,x1000-gpio";
194 gpio-ranges = <&pinctrl 0 96 32>;
197 interrupt-controller;
198 #interrupt-cells = <2>;
200 interrupt-parent = <&intc>;
205 uart0: serial@10030000 {
206 compatible = "ingenic,x1000-uart";
207 reg = <0x10030000 0x100>;
209 interrupt-parent = <&intc>;
212 clocks = <&exclk>, <&cgu X1000_CLK_UART0>;
213 clock-names = "baud", "module";
218 uart1: serial@10031000 {
219 compatible = "ingenic,x1000-uart";
220 reg = <0x10031000 0x100>;
222 interrupt-parent = <&intc>;
225 clocks = <&exclk>, <&cgu X1000_CLK_UART1>;
226 clock-names = "baud", "module";
231 uart2: serial@10032000 {
232 compatible = "ingenic,x1000-uart";
233 reg = <0x10032000 0x100>;
235 interrupt-parent = <&intc>;
238 clocks = <&exclk>, <&cgu X1000_CLK_UART2>;
239 clock-names = "baud", "module";
244 i2c0: i2c-controller@10050000 {
245 compatible = "ingenic,x1000-i2c";
246 reg = <0x10050000 0x1000>;
247 #address-cells = <1>;
250 interrupt-parent = <&intc>;
253 clocks = <&cgu X1000_CLK_I2C0>;
258 i2c1: i2c-controller@10051000 {
259 compatible = "ingenic,x1000-i2c";
260 reg = <0x10051000 0x1000>;
261 #address-cells = <1>;
264 interrupt-parent = <&intc>;
267 clocks = <&cgu X1000_CLK_I2C1>;
272 i2c2: i2c-controller@10052000 {
273 compatible = "ingenic,x1000-i2c";
274 reg = <0x10052000 0x1000>;
275 #address-cells = <1>;
278 interrupt-parent = <&intc>;
281 clocks = <&cgu X1000_CLK_I2C2>;
286 pdma: dma-controller@13420000 {
287 compatible = "ingenic,x1000-dma";
288 reg = <0x13420000 0x400>, <0x13421000 0x40>;
291 interrupt-parent = <&intc>;
294 clocks = <&cgu X1000_CLK_PDMA>;
298 compatible = "ingenic,x1000-mmc";
299 reg = <0x13450000 0x1000>;
301 interrupt-parent = <&intc>;
304 clocks = <&cgu X1000_CLK_MSC0>;
311 dmas = <&pdma X1000_DMA_MSC0_RX 0xffffffff>,
312 <&pdma X1000_DMA_MSC0_TX 0xffffffff>;
313 dma-names = "rx", "tx";
319 compatible = "ingenic,x1000-mmc";
320 reg = <0x13460000 0x1000>;
322 interrupt-parent = <&intc>;
325 clocks = <&cgu X1000_CLK_MSC1>;
332 dmas = <&pdma X1000_DMA_MSC1_RX 0xffffffff>,
333 <&pdma X1000_DMA_MSC1_TX 0xffffffff>;
334 dma-names = "rx", "tx";
339 mac: ethernet@134b0000 {
340 compatible = "ingenic,x1000-mac", "snps,dwmac";
341 reg = <0x134b0000 0x2000>;
343 interrupt-parent = <&intc>;
345 interrupt-names = "macirq";
347 clocks = <&cgu X1000_CLK_MAC>;
348 clock-names = "stmmaceth";
353 compatible = "snps,dwmac-mdio";
354 #address-cells = <1>;
362 compatible = "ingenic,x1000-otg", "snps,dwc2";
363 reg = <0x13500000 0x40000>;
365 interrupt-parent = <&intc>;
368 clocks = <&cgu X1000_CLK_OTG>;
372 phy-names = "usb2-phy";
374 g-rx-fifo-size = <768>;
375 g-np-tx-fifo-size = <256>;
376 g-tx-fifo-size = <256 256 256 256 256 256 256 512>;