1 // SPDX-License-Identifier: GPL-2.0
2 #include <dt-bindings/clock/ingenic,tcu.h>
3 #include <dt-bindings/clock/ingenic,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>;
77 mac_phy_ctrl: mac-phy-ctrl@e8 {
78 compatible = "syscon";
84 compatible = "ingenic,x1830-ost", "ingenic,x1000-ost";
85 reg = <0x12000000 0x3c>;
89 clocks = <&cgu X1830_CLK_OST>;
92 interrupt-parent = <&cpuintc>;
97 compatible = "ingenic,x1830-tcu", "ingenic,x1000-tcu", "simple-mfd";
98 reg = <0x10002000 0x1000>;
101 ranges = <0x0 0x10002000 0x1000>;
105 clocks = <&cgu X1830_CLK_RTCLK>,
106 <&cgu X1830_CLK_EXCLK>,
107 <&cgu X1830_CLK_PCLK>,
108 <&cgu X1830_CLK_TCU>;
109 clock-names = "rtc", "ext", "pclk", "tcu";
111 interrupt-controller;
112 #interrupt-cells = <1>;
114 interrupt-parent = <&intc>;
115 interrupts = <27 26 25>;
118 compatible = "ingenic,x1830-watchdog", "ingenic,jz4780-watchdog";
121 clocks = <&tcu TCU_CLK_WDT>;
126 compatible = "ingenic,x1830-pwm", "ingenic,jz4740-pwm";
131 clocks = <&tcu TCU_CLK_TIMER0>, <&tcu TCU_CLK_TIMER1>,
132 <&tcu TCU_CLK_TIMER2>, <&tcu TCU_CLK_TIMER3>,
133 <&tcu TCU_CLK_TIMER4>, <&tcu TCU_CLK_TIMER5>,
134 <&tcu TCU_CLK_TIMER6>, <&tcu TCU_CLK_TIMER7>;
135 clock-names = "timer0", "timer1", "timer2", "timer3",
136 "timer4", "timer5", "timer6", "timer7";
141 compatible = "ingenic,x1830-rtc", "ingenic,jz4780-rtc";
142 reg = <0x10003000 0x4c>;
144 interrupt-parent = <&intc>;
147 clocks = <&cgu X1830_CLK_RTCLK>;
151 pinctrl: pin-controller@10010000 {
152 compatible = "ingenic,x1830-pinctrl";
153 reg = <0x10010000 0x800>;
154 #address-cells = <1>;
158 compatible = "ingenic,x1830-gpio";
162 gpio-ranges = <&pinctrl 0 0 32>;
165 interrupt-controller;
166 #interrupt-cells = <2>;
168 interrupt-parent = <&intc>;
173 compatible = "ingenic,x1830-gpio";
177 gpio-ranges = <&pinctrl 0 32 32>;
180 interrupt-controller;
181 #interrupt-cells = <2>;
183 interrupt-parent = <&intc>;
188 compatible = "ingenic,x1830-gpio";
192 gpio-ranges = <&pinctrl 0 64 32>;
195 interrupt-controller;
196 #interrupt-cells = <2>;
198 interrupt-parent = <&intc>;
203 compatible = "ingenic,x1830-gpio";
207 gpio-ranges = <&pinctrl 0 96 32>;
210 interrupt-controller;
211 #interrupt-cells = <2>;
213 interrupt-parent = <&intc>;
218 uart0: serial@10030000 {
219 compatible = "ingenic,x1830-uart", "ingenic,x1000-uart";
220 reg = <0x10030000 0x100>;
222 interrupt-parent = <&intc>;
225 clocks = <&exclk>, <&cgu X1830_CLK_UART0>;
226 clock-names = "baud", "module";
231 uart1: serial@10031000 {
232 compatible = "ingenic,x1830-uart", "ingenic,x1000-uart";
233 reg = <0x10031000 0x100>;
235 interrupt-parent = <&intc>;
238 clocks = <&exclk>, <&cgu X1830_CLK_UART1>;
239 clock-names = "baud", "module";
245 compatible = "ingenic,x1830-spi", "ingenic,x1000-spi";
246 reg = <0x10043000 0x20>;
247 #address-cells = <1>;
250 interrupt-parent = <&intc>;
253 clocks = <&cgu X1830_CLK_SSI0>;
256 dmas = <&pdma X1830_DMA_SSI0_RX 0xffffffff>,
257 <&pdma X1830_DMA_SSI0_TX 0xffffffff>;
258 dma-names = "rx", "tx";
264 compatible = "ingenic,x1830-spi", "ingenic,x1000-spi";
265 reg = <0x10044000 0x20>;
266 #address-cells = <1>;
269 interrupt-parent = <&intc>;
272 clocks = <&cgu X1830_CLK_SSI1>;
275 dmas = <&pdma X1830_DMA_SSI1_RX 0xffffffff>,
276 <&pdma X1830_DMA_SSI1_TX 0xffffffff>;
277 dma-names = "rx", "tx";
282 i2c0: i2c-controller@10050000 {
283 compatible = "ingenic,x1830-i2c", "ingenic,x1000-i2c";
284 reg = <0x10050000 0x1000>;
285 #address-cells = <1>;
288 interrupt-parent = <&intc>;
291 clocks = <&cgu X1830_CLK_SMB0>;
296 i2c1: i2c-controller@10051000 {
297 compatible = "ingenic,x1830-i2c", "ingenic,x1000-i2c";
298 reg = <0x10051000 0x1000>;
299 #address-cells = <1>;
302 interrupt-parent = <&intc>;
305 clocks = <&cgu X1830_CLK_SMB1>;
310 i2c2: i2c-controller@10052000 {
311 compatible = "ingenic,x1830-i2c", "ingenic,x1000-i2c";
312 reg = <0x10052000 0x1000>;
313 #address-cells = <1>;
316 interrupt-parent = <&intc>;
319 clocks = <&cgu X1830_CLK_SMB2>;
324 dtrng: trng@10072000 {
325 compatible = "ingenic,x1830-dtrng";
326 reg = <0x10072000 0xc>;
328 clocks = <&cgu X1830_CLK_DTRNG>;
333 pdma: dma-controller@13420000 {
334 compatible = "ingenic,x1830-dma";
335 reg = <0x13420000 0x400>, <0x13421000 0x40>;
339 interrupt-parent = <&intc>;
342 clocks = <&cgu X1830_CLK_PDMA>;
346 compatible = "ingenic,x1830-mmc", "ingenic,x1000-mmc";
347 reg = <0x13450000 0x1000>;
349 interrupt-parent = <&intc>;
352 clocks = <&cgu X1830_CLK_MSC0>;
359 dmas = <&pdma X1830_DMA_MSC0_RX 0xffffffff>,
360 <&pdma X1830_DMA_MSC0_TX 0xffffffff>;
361 dma-names = "rx", "tx";
367 compatible = "ingenic,x1830-mmc", "ingenic,x1000-mmc";
368 reg = <0x13460000 0x1000>;
370 interrupt-parent = <&intc>;
373 clocks = <&cgu X1830_CLK_MSC1>;
380 dmas = <&pdma X1830_DMA_MSC1_RX 0xffffffff>,
381 <&pdma X1830_DMA_MSC1_TX 0xffffffff>;
382 dma-names = "rx", "tx";
387 mac: ethernet@134b0000 {
388 compatible = "ingenic,x1830-mac", "snps,dwmac";
389 reg = <0x134b0000 0x2000>;
391 interrupt-parent = <&intc>;
393 interrupt-names = "macirq";
395 clocks = <&cgu X1830_CLK_MAC>;
396 clock-names = "stmmaceth";
398 mode-reg = <&mac_phy_ctrl>;
403 compatible = "snps,dwmac-mdio";
404 #address-cells = <1>;
412 compatible = "ingenic,x1830-otg";
413 reg = <0x13500000 0x40000>;
415 interrupt-parent = <&intc>;
418 clocks = <&cgu X1830_CLK_OTG>;
422 phy-names = "usb2-phy";
424 g-rx-fifo-size = <768>;
425 g-np-tx-fifo-size = <256>;
426 g-tx-fifo-size = <256 256 256 256 256 256 256 512>;