1 // SPDX-License-Identifier: GPL-2.0
3 #include <dt-bindings/clock/jz4770-cgu.h>
4 #include <dt-bindings/clock/ingenic,tcu.h>
9 compatible = "ingenic,jz4770";
11 cpuintc: interrupt-controller {
13 #interrupt-cells = <1>;
15 compatible = "mti,cpu-interrupt-controller";
18 intc: interrupt-controller@10001000 {
19 compatible = "ingenic,jz4770-intc";
20 reg = <0x10001000 0x40>;
23 #interrupt-cells = <1>;
25 interrupt-parent = <&cpuintc>;
30 compatible = "fixed-clock";
35 compatible = "fixed-clock";
37 clock-frequency = <32768>;
40 cgu: jz4770-cgu@10000000 {
41 compatible = "ingenic,jz4770-cgu";
42 reg = <0x10000000 0x100>;
44 clocks = <&ext>, <&osc32k>;
45 clock-names = "ext", "osc32k";
51 compatible = "ingenic,jz4770-tcu", "simple-mfd";
52 reg = <0x10002000 0x1000>;
55 ranges = <0x0 0x10002000 0x1000>;
59 clocks = <&cgu JZ4770_CLK_RTC>,
60 <&cgu JZ4770_CLK_EXT>,
61 <&cgu JZ4770_CLK_PCLK>;
62 clock-names = "rtc", "ext", "pclk";
65 #interrupt-cells = <1>;
67 interrupt-parent = <&intc>;
68 interrupts = <27 26 25>;
70 watchdog: watchdog@0 {
71 compatible = "ingenic,jz4770-watchdog",
72 "ingenic,jz4740-watchdog";
75 clocks = <&tcu TCU_CLK_WDT>;
80 compatible = "ingenic,jz4770-pwm", "ingenic,jz4740-pwm";
85 clocks = <&tcu TCU_CLK_TIMER0>, <&tcu TCU_CLK_TIMER1>,
86 <&tcu TCU_CLK_TIMER2>, <&tcu TCU_CLK_TIMER3>,
87 <&tcu TCU_CLK_TIMER4>, <&tcu TCU_CLK_TIMER5>,
88 <&tcu TCU_CLK_TIMER6>, <&tcu TCU_CLK_TIMER7>;
89 clock-names = "timer0", "timer1", "timer2", "timer3",
90 "timer4", "timer5", "timer6", "timer7";
94 compatible = "ingenic,jz4770-ost";
97 clocks = <&tcu TCU_CLK_OST>;
104 pinctrl: pin-controller@10010000 {
105 compatible = "ingenic,jz4770-pinctrl";
106 reg = <0x10010000 0x600>;
108 #address-cells = <1>;
112 compatible = "ingenic,jz4770-gpio";
116 gpio-ranges = <&pinctrl 0 0 32>;
119 interrupt-controller;
120 #interrupt-cells = <2>;
122 interrupt-parent = <&intc>;
127 compatible = "ingenic,jz4770-gpio";
131 gpio-ranges = <&pinctrl 0 32 32>;
134 interrupt-controller;
135 #interrupt-cells = <2>;
137 interrupt-parent = <&intc>;
142 compatible = "ingenic,jz4770-gpio";
146 gpio-ranges = <&pinctrl 0 64 32>;
149 interrupt-controller;
150 #interrupt-cells = <2>;
152 interrupt-parent = <&intc>;
157 compatible = "ingenic,jz4770-gpio";
161 gpio-ranges = <&pinctrl 0 96 32>;
164 interrupt-controller;
165 #interrupt-cells = <2>;
167 interrupt-parent = <&intc>;
172 compatible = "ingenic,jz4770-gpio";
176 gpio-ranges = <&pinctrl 0 128 32>;
179 interrupt-controller;
180 #interrupt-cells = <2>;
182 interrupt-parent = <&intc>;
187 compatible = "ingenic,jz4770-gpio";
191 gpio-ranges = <&pinctrl 0 160 32>;
194 interrupt-controller;
195 #interrupt-cells = <2>;
197 interrupt-parent = <&intc>;
202 uart0: serial@10030000 {
203 compatible = "ingenic,jz4770-uart";
204 reg = <0x10030000 0x100>;
206 clocks = <&ext>, <&cgu JZ4770_CLK_UART0>;
207 clock-names = "baud", "module";
209 interrupt-parent = <&intc>;
215 uart1: serial@10031000 {
216 compatible = "ingenic,jz4770-uart";
217 reg = <0x10031000 0x100>;
219 clocks = <&ext>, <&cgu JZ4770_CLK_UART1>;
220 clock-names = "baud", "module";
222 interrupt-parent = <&intc>;
228 uart2: serial@10032000 {
229 compatible = "ingenic,jz4770-uart";
230 reg = <0x10032000 0x100>;
232 clocks = <&ext>, <&cgu JZ4770_CLK_UART2>;
233 clock-names = "baud", "module";
235 interrupt-parent = <&intc>;
241 uart3: serial@10033000 {
242 compatible = "ingenic,jz4770-uart";
243 reg = <0x10033000 0x100>;
245 clocks = <&ext>, <&cgu JZ4770_CLK_UART3>;
246 clock-names = "baud", "module";
248 interrupt-parent = <&intc>;
254 dmac0: dma-controller@13420000 {
255 compatible = "ingenic,jz4770-dma";
256 reg = <0x13420000 0xC0>, <0x13420300 0x20>;
260 clocks = <&cgu JZ4770_CLK_DMA>;
261 interrupt-parent = <&intc>;
264 /* Disable dmac0 until we have something that uses it */
268 dmac1: dma-controller@13420100 {
269 compatible = "ingenic,jz4770-dma";
270 reg = <0x13420100 0xC0>, <0x13420400 0x20>;
274 clocks = <&cgu JZ4770_CLK_DMA>;
275 interrupt-parent = <&intc>;
278 /* Disable dmac1 until we have something that uses it */
283 compatible = "generic-ohci";
284 reg = <0x13430000 0x1000>;
286 clocks = <&cgu JZ4770_CLK_UHC>, <&cgu JZ4770_CLK_UHC_PHY>;
287 assigned-clocks = <&cgu JZ4770_CLK_UHC>;
288 assigned-clock-rates = <48000000>;
290 interrupt-parent = <&intc>;