1 // SPDX-License-Identifier: GPL-2.0
2 #include <dt-bindings/clock/x1000-cgu.h>
3 #include <dt-bindings/dma/x1000-dma.h>
8 compatible = "ingenic,x1000", "ingenic,x1000e";
10 cpuintc: interrupt-controller {
12 #interrupt-cells = <1>;
14 compatible = "mti,cpu-interrupt-controller";
17 intc: interrupt-controller@10001000 {
18 compatible = "ingenic,x1000-intc", "ingenic,jz4780-intc";
19 reg = <0x10001000 0x50>;
22 #interrupt-cells = <1>;
24 interrupt-parent = <&cpuintc>;
29 compatible = "fixed-clock";
34 compatible = "fixed-clock";
36 clock-frequency = <32768>;
39 cgu: x1000-cgu@10000000 {
40 compatible = "ingenic,x1000-cgu";
41 reg = <0x10000000 0x100>;
45 clocks = <&exclk>, <&rtclk>;
46 clock-names = "ext", "rtc";
50 compatible = "ingenic,x1000-tcu",
53 reg = <0x10002000 0x1000>;
56 ranges = <0x0 0x10002000 0x1000>;
60 clocks = <&cgu X1000_CLK_RTCLK
63 clock-names = "rtc", "ext", "pclk";
66 #interrupt-cells = <1>;
68 interrupt-parent = <&intc>;
69 interrupts = <27 26 25>;
72 compatible = "ingenic,x1000-watchdog", "ingenic,jz4780-watchdog";
75 clocks = <&cgu X1000_CLK_RTCLK>;
81 compatible = "ingenic,x1000-rtc", "ingenic,jz4780-rtc";
82 reg = <0x10003000 0x4c>;
84 interrupt-parent = <&intc>;
87 clocks = <&cgu X1000_CLK_RTCLK>;
91 pinctrl: pin-controller@10010000 {
92 compatible = "ingenic,x1000-pinctrl";
93 reg = <0x10010000 0x800>;
98 compatible = "ingenic,x1000-gpio";
102 gpio-ranges = <&pinctrl 0 0 32>;
105 interrupt-controller;
106 #interrupt-cells = <2>;
108 interrupt-parent = <&intc>;
113 compatible = "ingenic,x1000-gpio";
117 gpio-ranges = <&pinctrl 0 32 32>;
120 interrupt-controller;
121 #interrupt-cells = <2>;
123 interrupt-parent = <&intc>;
128 compatible = "ingenic,x1000-gpio";
132 gpio-ranges = <&pinctrl 0 64 32>;
135 interrupt-controller;
136 #interrupt-cells = <2>;
138 interrupt-parent = <&intc>;
143 compatible = "ingenic,x1000-gpio";
147 gpio-ranges = <&pinctrl 0 96 32>;
150 interrupt-controller;
151 #interrupt-cells = <2>;
153 interrupt-parent = <&intc>;
158 i2c0: i2c-controller@10050000 {
159 compatible = "ingenic,x1000-i2c";
160 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>;
177 #address-cells = <1>;
180 interrupt-parent = <&intc>;
183 clocks = <&cgu X1000_CLK_I2C1>;
188 i2c2: i2c-controller@10052000 {
189 compatible = "ingenic,x1000-i2c";
190 reg = <0x10052000 0x1000>;
192 #address-cells = <1>;
195 interrupt-parent = <&intc>;
198 clocks = <&cgu X1000_CLK_I2C2>;
203 uart0: serial@10030000 {
204 compatible = "ingenic,x1000-uart";
205 reg = <0x10030000 0x100>;
207 interrupt-parent = <&intc>;
210 clocks = <&exclk>, <&cgu X1000_CLK_UART0>;
211 clock-names = "baud", "module";
216 uart1: serial@10031000 {
217 compatible = "ingenic,x1000-uart";
218 reg = <0x10031000 0x100>;
220 interrupt-parent = <&intc>;
223 clocks = <&exclk>, <&cgu X1000_CLK_UART1>;
224 clock-names = "baud", "module";
229 uart2: serial@10032000 {
230 compatible = "ingenic,x1000-uart";
231 reg = <0x10032000 0x100>;
233 interrupt-parent = <&intc>;
236 clocks = <&exclk>, <&cgu X1000_CLK_UART2>;
237 clock-names = "baud", "module";
242 pdma: dma-controller@13420000 {
243 compatible = "ingenic,x1000-dma";
244 reg = <0x13420000 0x400
248 interrupt-parent = <&intc>;
251 clocks = <&cgu X1000_CLK_PDMA>;
254 mac: ethernet@134b0000 {
255 compatible = "ingenic,x1000-mac", "snps,dwmac";
256 reg = <0x134b0000 0x2000>;
258 interrupt-parent = <&intc>;
260 interrupt-names = "macirq";
262 clocks = <&cgu X1000_CLK_MAC>;
263 clock-names = "stmmaceth";
268 compatible = "snps,dwmac-mdio";
269 #address-cells = <1>;
277 compatible = "ingenic,x1000-mmc";
278 reg = <0x13450000 0x1000>;
280 interrupt-parent = <&intc>;
283 clocks = <&cgu X1000_CLK_MSC0>;
290 dmas = <&pdma X1000_DMA_MSC0_RX 0xffffffff>,
291 <&pdma X1000_DMA_MSC0_TX 0xffffffff>;
292 dma-names = "rx", "tx";
298 compatible = "ingenic,x1000-mmc";
299 reg = <0x13460000 0x1000>;
301 interrupt-parent = <&intc>;
304 clocks = <&cgu X1000_CLK_MSC1>;
311 dmas = <&pdma X1000_DMA_MSC1_RX 0xffffffff>,
312 <&pdma X1000_DMA_MSC1_TX 0xffffffff>;
313 dma-names = "rx", "tx";