1 // SPDX-License-Identifier: GPL-2.0
2 #include <dt-bindings/clock/jz4780-cgu.h>
3 #include <dt-bindings/clock/ingenic,tcu.h>
4 #include <dt-bindings/dma/jz4780-dma.h>
9 compatible = "ingenic,jz4780";
11 cpuintc: interrupt-controller {
13 #interrupt-cells = <1>;
15 compatible = "mti,cpu-interrupt-controller";
18 intc: interrupt-controller@10001000 {
19 compatible = "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: jz4780-cgu@10000000 {
41 compatible = "ingenic,jz4780-cgu";
42 reg = <0x10000000 0x100>;
44 clocks = <&ext>, <&rtc>;
45 clock-names = "ext", "rtc";
51 compatible = "ingenic,jz4780-tcu",
54 reg = <0x10002000 0x1000>;
57 ranges = <0x0 0x10002000 0x1000>;
61 clocks = <&cgu JZ4780_CLK_RTCLK>,
62 <&cgu JZ4780_CLK_EXCLK>,
63 <&cgu JZ4780_CLK_PCLK>;
64 clock-names = "rtc", "ext", "pclk";
67 #interrupt-cells = <1>;
69 interrupt-parent = <&intc>;
70 interrupts = <27 26 25>;
72 watchdog: watchdog@0 {
73 compatible = "ingenic,jz4780-watchdog";
76 clocks = <&tcu TCU_CLK_WDT>;
81 compatible = "ingenic,jz4780-pwm", "ingenic,jz4740-pwm";
86 clocks = <&tcu TCU_CLK_TIMER0>, <&tcu TCU_CLK_TIMER1>,
87 <&tcu TCU_CLK_TIMER2>, <&tcu TCU_CLK_TIMER3>,
88 <&tcu TCU_CLK_TIMER4>, <&tcu TCU_CLK_TIMER5>,
89 <&tcu TCU_CLK_TIMER6>, <&tcu TCU_CLK_TIMER7>;
90 clock-names = "timer0", "timer1", "timer2", "timer3",
91 "timer4", "timer5", "timer6", "timer7";
95 compatible = "ingenic,jz4780-ost", "ingenic,jz4770-ost";
98 clocks = <&tcu TCU_CLK_OST>;
105 rtc_dev: rtc@10003000 {
106 compatible = "ingenic,jz4780-rtc";
107 reg = <0x10003000 0x4c>;
109 interrupt-parent = <&intc>;
112 clocks = <&cgu JZ4780_CLK_RTCLK>;
116 pinctrl: pin-controller@10010000 {
117 compatible = "ingenic,jz4780-pinctrl";
118 reg = <0x10010000 0x600>;
120 #address-cells = <1>;
124 compatible = "ingenic,jz4780-gpio";
128 gpio-ranges = <&pinctrl 0 0 32>;
131 interrupt-controller;
132 #interrupt-cells = <2>;
134 interrupt-parent = <&intc>;
139 compatible = "ingenic,jz4780-gpio";
143 gpio-ranges = <&pinctrl 0 32 32>;
146 interrupt-controller;
147 #interrupt-cells = <2>;
149 interrupt-parent = <&intc>;
154 compatible = "ingenic,jz4780-gpio";
158 gpio-ranges = <&pinctrl 0 64 32>;
161 interrupt-controller;
162 #interrupt-cells = <2>;
164 interrupt-parent = <&intc>;
169 compatible = "ingenic,jz4780-gpio";
173 gpio-ranges = <&pinctrl 0 96 32>;
176 interrupt-controller;
177 #interrupt-cells = <2>;
179 interrupt-parent = <&intc>;
184 compatible = "ingenic,jz4780-gpio";
188 gpio-ranges = <&pinctrl 0 128 32>;
191 interrupt-controller;
192 #interrupt-cells = <2>;
194 interrupt-parent = <&intc>;
199 compatible = "ingenic,jz4780-gpio";
203 gpio-ranges = <&pinctrl 0 160 32>;
206 interrupt-controller;
207 #interrupt-cells = <2>;
209 interrupt-parent = <&intc>;
215 compatible = "spi-gpio";
216 #address-cells = <1>;
218 num-chipselects = <2>;
220 gpio-miso = <&gpe 14 0>;
221 gpio-sck = <&gpe 15 0>;
222 gpio-mosi = <&gpe 17 0>;
223 cs-gpios = <&gpe 16 0>, <&gpe 18 0>;
226 compatible = "spidev";
228 spi-max-frequency = <1000000>;
232 uart0: serial@10030000 {
233 compatible = "ingenic,jz4780-uart";
234 reg = <0x10030000 0x100>;
236 interrupt-parent = <&intc>;
239 clocks = <&ext>, <&cgu JZ4780_CLK_UART0>;
240 clock-names = "baud", "module";
245 uart1: serial@10031000 {
246 compatible = "ingenic,jz4780-uart";
247 reg = <0x10031000 0x100>;
249 interrupt-parent = <&intc>;
252 clocks = <&ext>, <&cgu JZ4780_CLK_UART1>;
253 clock-names = "baud", "module";
258 uart2: serial@10032000 {
259 compatible = "ingenic,jz4780-uart";
260 reg = <0x10032000 0x100>;
262 interrupt-parent = <&intc>;
265 clocks = <&ext>, <&cgu JZ4780_CLK_UART2>;
266 clock-names = "baud", "module";
271 uart3: serial@10033000 {
272 compatible = "ingenic,jz4780-uart";
273 reg = <0x10033000 0x100>;
275 interrupt-parent = <&intc>;
278 clocks = <&ext>, <&cgu JZ4780_CLK_UART3>;
279 clock-names = "baud", "module";
284 uart4: serial@10034000 {
285 compatible = "ingenic,jz4780-uart";
286 reg = <0x10034000 0x100>;
288 interrupt-parent = <&intc>;
291 clocks = <&ext>, <&cgu JZ4780_CLK_UART4>;
292 clock-names = "baud", "module";
298 compatible = "ingenic,jz4780-i2c";
299 #address-cells = <1>;
302 reg = <0x10050000 0x1000>;
304 interrupt-parent = <&intc>;
307 clocks = <&cgu JZ4780_CLK_SMB0>;
308 clock-frequency = <100000>;
309 pinctrl-names = "default";
310 pinctrl-0 = <&pins_i2c0_data>;
316 compatible = "ingenic,jz4780-i2c";
317 #address-cells = <1>;
319 reg = <0x10051000 0x1000>;
321 interrupt-parent = <&intc>;
324 clocks = <&cgu JZ4780_CLK_SMB1>;
325 clock-frequency = <100000>;
326 pinctrl-names = "default";
327 pinctrl-0 = <&pins_i2c1_data>;
333 compatible = "ingenic,jz4780-i2c";
334 #address-cells = <1>;
336 reg = <0x10052000 0x1000>;
338 interrupt-parent = <&intc>;
341 clocks = <&cgu JZ4780_CLK_SMB2>;
342 clock-frequency = <100000>;
343 pinctrl-names = "default";
344 pinctrl-0 = <&pins_i2c2_data>;
350 compatible = "ingenic,jz4780-i2c";
351 #address-cells = <1>;
353 reg = <0x10053000 0x1000>;
355 interrupt-parent = <&intc>;
358 clocks = <&cgu JZ4780_CLK_SMB3>;
359 clock-frequency = <100000>;
360 pinctrl-names = "default";
361 pinctrl-0 = <&pins_i2c3_data>;
367 compatible = "ingenic,jz4780-i2c";
368 #address-cells = <1>;
370 reg = <0x10054000 0x1000>;
372 interrupt-parent = <&intc>;
375 clocks = <&cgu JZ4780_CLK_SMB4>;
376 clock-frequency = <100000>;
377 pinctrl-names = "default";
378 pinctrl-0 = <&pins_i2c4_data>;
383 nemc: nemc@13410000 {
384 compatible = "ingenic,jz4780-nemc", "simple-mfd";
385 reg = <0x13410000 0x10000>;
386 #address-cells = <2>;
388 ranges = <0 0 0x13410000 0x10000>,
389 <1 0 0x1b000000 0x1000000>,
390 <2 0 0x1a000000 0x1000000>,
391 <3 0 0x19000000 0x1000000>,
392 <4 0 0x18000000 0x1000000>,
393 <5 0 0x17000000 0x1000000>,
394 <6 0 0x16000000 0x1000000>;
396 clocks = <&cgu JZ4780_CLK_NEMC>;
402 compatible = "ingenic,jz4780-efuse";
404 clocks = <&cgu JZ4780_CLK_AHB2>;
406 #address-cells = <1>;
409 eth0_addr: eth-mac-addr@0x22 {
416 compatible = "ingenic,jz4780-dma";
417 reg = <0x13420000 0x400>, <0x13421000 0x40>;
420 interrupt-parent = <&intc>;
423 clocks = <&cgu JZ4780_CLK_PDMA>;
427 compatible = "ingenic,jz4780-mmc";
428 reg = <0x13450000 0x1000>;
430 interrupt-parent = <&intc>;
433 clocks = <&cgu JZ4780_CLK_MSC0>;
439 dmas = <&dma JZ4780_DMA_MSC0_RX 0xffffffff>,
440 <&dma JZ4780_DMA_MSC0_TX 0xffffffff>;
441 dma-names = "rx", "tx";
447 compatible = "ingenic,jz4780-mmc";
448 reg = <0x13460000 0x1000>;
450 interrupt-parent = <&intc>;
453 clocks = <&cgu JZ4780_CLK_MSC1>;
459 dmas = <&dma JZ4780_DMA_MSC1_RX 0xffffffff>,
460 <&dma JZ4780_DMA_MSC1_TX 0xffffffff>;
461 dma-names = "rx", "tx";
467 compatible = "ingenic,jz4780-bch";
468 reg = <0x134d0000 0x10000>;
470 clocks = <&cgu JZ4780_CLK_BCH>;