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";
11 cpuintc: interrupt-controller {
13 #interrupt-cells = <1>;
15 compatible = "mti,cpu-interrupt-controller";
18 intc: interrupt-controller@10001000 {
19 compatible = "ingenic,x1000-intc", "ingenic,jz4780-intc";
20 reg = <0x10001000 0x50>;
23 #interrupt-cells = <1>;
25 interrupt-parent = <&cpuintc>;
30 compatible = "fixed-clock";
35 compatible = "fixed-clock";
37 clock-frequency = <32768>;
40 cgu: x1000-cgu@10000000 {
41 compatible = "ingenic,x1000-cgu";
42 reg = <0x10000000 0x100>;
46 clocks = <&exclk>, <&rtclk>;
47 clock-names = "ext", "rtc";
51 compatible = "ingenic,x1000-tcu",
54 reg = <0x10002000 0x1000>;
57 ranges = <0x0 0x10002000 0x1000>;
61 clocks = <&cgu X1000_CLK_RTCLK
64 clock-names = "rtc", "ext", "pclk";
67 #interrupt-cells = <1>;
69 interrupt-parent = <&intc>;
70 interrupts = <27 26 25>;
73 compatible = "ingenic,x1000-watchdog", "ingenic,jz4780-watchdog";
76 clocks = <&tcu TCU_CLK_WDT>;
82 compatible = "ingenic,x1000-rtc", "ingenic,jz4780-rtc";
83 reg = <0x10003000 0x4c>;
85 interrupt-parent = <&intc>;
88 clocks = <&cgu X1000_CLK_RTCLK>;
92 pinctrl: pin-controller@10010000 {
93 compatible = "ingenic,x1000-pinctrl";
94 reg = <0x10010000 0x800>;
99 compatible = "ingenic,x1000-gpio";
103 gpio-ranges = <&pinctrl 0 0 32>;
106 interrupt-controller;
107 #interrupt-cells = <2>;
109 interrupt-parent = <&intc>;
114 compatible = "ingenic,x1000-gpio";
118 gpio-ranges = <&pinctrl 0 32 32>;
121 interrupt-controller;
122 #interrupt-cells = <2>;
124 interrupt-parent = <&intc>;
129 compatible = "ingenic,x1000-gpio";
133 gpio-ranges = <&pinctrl 0 64 32>;
136 interrupt-controller;
137 #interrupt-cells = <2>;
139 interrupt-parent = <&intc>;
144 compatible = "ingenic,x1000-gpio";
148 gpio-ranges = <&pinctrl 0 96 32>;
151 interrupt-controller;
152 #interrupt-cells = <2>;
154 interrupt-parent = <&intc>;
159 i2c0: i2c-controller@10050000 {
160 compatible = "ingenic,x1000-i2c";
161 reg = <0x10050000 0x1000>;
162 #address-cells = <1>;
165 interrupt-parent = <&intc>;
168 clocks = <&cgu X1000_CLK_I2C0>;
173 i2c1: i2c-controller@10051000 {
174 compatible = "ingenic,x1000-i2c";
175 reg = <0x10051000 0x1000>;
176 #address-cells = <1>;
179 interrupt-parent = <&intc>;
182 clocks = <&cgu X1000_CLK_I2C1>;
187 i2c2: i2c-controller@10052000 {
188 compatible = "ingenic,x1000-i2c";
189 reg = <0x10052000 0x1000>;
190 #address-cells = <1>;
193 interrupt-parent = <&intc>;
196 clocks = <&cgu X1000_CLK_I2C2>;
201 uart0: serial@10030000 {
202 compatible = "ingenic,x1000-uart";
203 reg = <0x10030000 0x100>;
205 interrupt-parent = <&intc>;
208 clocks = <&exclk>, <&cgu X1000_CLK_UART0>;
209 clock-names = "baud", "module";
214 uart1: serial@10031000 {
215 compatible = "ingenic,x1000-uart";
216 reg = <0x10031000 0x100>;
218 interrupt-parent = <&intc>;
221 clocks = <&exclk>, <&cgu X1000_CLK_UART1>;
222 clock-names = "baud", "module";
227 uart2: serial@10032000 {
228 compatible = "ingenic,x1000-uart";
229 reg = <0x10032000 0x100>;
231 interrupt-parent = <&intc>;
234 clocks = <&exclk>, <&cgu X1000_CLK_UART2>;
235 clock-names = "baud", "module";
240 pdma: dma-controller@13420000 {
241 compatible = "ingenic,x1000-dma";
242 reg = <0x13420000 0x400
246 interrupt-parent = <&intc>;
249 clocks = <&cgu X1000_CLK_PDMA>;
252 mac: ethernet@134b0000 {
253 compatible = "ingenic,x1000-mac", "snps,dwmac";
254 reg = <0x134b0000 0x2000>;
256 interrupt-parent = <&intc>;
258 interrupt-names = "macirq";
260 clocks = <&cgu X1000_CLK_MAC>;
261 clock-names = "stmmaceth";
266 compatible = "snps,dwmac-mdio";
267 #address-cells = <1>;
275 compatible = "ingenic,x1000-mmc";
276 reg = <0x13450000 0x1000>;
278 interrupt-parent = <&intc>;
281 clocks = <&cgu X1000_CLK_MSC0>;
288 dmas = <&pdma X1000_DMA_MSC0_RX 0xffffffff>,
289 <&pdma X1000_DMA_MSC0_TX 0xffffffff>;
290 dma-names = "rx", "tx";
296 compatible = "ingenic,x1000-mmc";
297 reg = <0x13460000 0x1000>;
299 interrupt-parent = <&intc>;
302 clocks = <&cgu X1000_CLK_MSC1>;
309 dmas = <&pdma X1000_DMA_MSC1_RX 0xffffffff>,
310 <&pdma X1000_DMA_MSC1_TX 0xffffffff>;
311 dma-names = "rx", "tx";