1// SPDX-License-Identifier: GPL-2.0
2#include <dt-bindings/clock/jz4780-cgu.h>
3
4/ {
5	#address-cells = <1>;
6	#size-cells = <1>;
7	compatible = "ingenic,jz4780";
8
9	cpuintc: interrupt-controller {
10		#address-cells = <0>;
11		#interrupt-cells = <1>;
12		interrupt-controller;
13		compatible = "mti,cpu-interrupt-controller";
14	};
15
16	intc: interrupt-controller@10001000 {
17		compatible = "ingenic,jz4780-intc";
18		reg = <0x10001000 0x50>;
19
20		interrupt-controller;
21		#interrupt-cells = <1>;
22
23		interrupt-parent = <&cpuintc>;
24		interrupts = <2>;
25	};
26
27	ext: ext {
28		compatible = "fixed-clock";
29		#clock-cells = <0>;
30	};
31
32	rtc: rtc {
33		compatible = "fixed-clock";
34		#clock-cells = <0>;
35		clock-frequency = <32768>;
36	};
37
38	cgu: jz4780-cgu@10000000 {
39		compatible = "ingenic,jz4780-cgu";
40		reg = <0x10000000 0x100>;
41
42		clocks = <&ext>, <&rtc>;
43		clock-names = "ext", "rtc";
44
45		#clock-cells = <1>;
46	};
47
48	rtc_dev: rtc@10003000 {
49		compatible = "ingenic,jz4780-rtc";
50		reg = <0x10003000 0x4c>;
51
52		interrupt-parent = <&intc>;
53		interrupts = <32>;
54
55		clocks = <&cgu JZ4780_CLK_RTCLK>;
56		clock-names = "rtc";
57	};
58
59	pinctrl: pin-controller@10010000 {
60		compatible = "ingenic,jz4780-pinctrl";
61		reg = <0x10010000 0x600>;
62
63		#address-cells = <1>;
64		#size-cells = <0>;
65
66		gpa: gpio@0 {
67			compatible = "ingenic,jz4780-gpio";
68			reg = <0>;
69
70			gpio-controller;
71			gpio-ranges = <&pinctrl 0 0 32>;
72			#gpio-cells = <2>;
73
74			interrupt-controller;
75			#interrupt-cells = <2>;
76
77			interrupt-parent = <&intc>;
78			interrupts = <17>;
79		};
80
81		gpb: gpio@1 {
82			compatible = "ingenic,jz4780-gpio";
83			reg = <1>;
84
85			gpio-controller;
86			gpio-ranges = <&pinctrl 0 32 32>;
87			#gpio-cells = <2>;
88
89			interrupt-controller;
90			#interrupt-cells = <2>;
91
92			interrupt-parent = <&intc>;
93			interrupts = <16>;
94		};
95
96		gpc: gpio@2 {
97			compatible = "ingenic,jz4780-gpio";
98			reg = <2>;
99
100			gpio-controller;
101			gpio-ranges = <&pinctrl 0 64 32>;
102			#gpio-cells = <2>;
103
104			interrupt-controller;
105			#interrupt-cells = <2>;
106
107			interrupt-parent = <&intc>;
108			interrupts = <15>;
109		};
110
111		gpd: gpio@3 {
112			compatible = "ingenic,jz4780-gpio";
113			reg = <3>;
114
115			gpio-controller;
116			gpio-ranges = <&pinctrl 0 96 32>;
117			#gpio-cells = <2>;
118
119			interrupt-controller;
120			#interrupt-cells = <2>;
121
122			interrupt-parent = <&intc>;
123			interrupts = <14>;
124		};
125
126		gpe: gpio@4 {
127			compatible = "ingenic,jz4780-gpio";
128			reg = <4>;
129
130			gpio-controller;
131			gpio-ranges = <&pinctrl 0 128 32>;
132			#gpio-cells = <2>;
133
134			interrupt-controller;
135			#interrupt-cells = <2>;
136
137			interrupt-parent = <&intc>;
138			interrupts = <13>;
139		};
140
141		gpf: gpio@5 {
142			compatible = "ingenic,jz4780-gpio";
143			reg = <5>;
144
145			gpio-controller;
146			gpio-ranges = <&pinctrl 0 160 32>;
147			#gpio-cells = <2>;
148
149			interrupt-controller;
150			#interrupt-cells = <2>;
151
152			interrupt-parent = <&intc>;
153			interrupts = <12>;
154		};
155	};
156
157	uart0: serial@10030000 {
158		compatible = "ingenic,jz4780-uart";
159		reg = <0x10030000 0x100>;
160
161		interrupt-parent = <&intc>;
162		interrupts = <51>;
163
164		clocks = <&ext>, <&cgu JZ4780_CLK_UART0>;
165		clock-names = "baud", "module";
166
167		status = "disabled";
168	};
169
170	uart1: serial@10031000 {
171		compatible = "ingenic,jz4780-uart";
172		reg = <0x10031000 0x100>;
173
174		interrupt-parent = <&intc>;
175		interrupts = <50>;
176
177		clocks = <&ext>, <&cgu JZ4780_CLK_UART1>;
178		clock-names = "baud", "module";
179
180		status = "disabled";
181	};
182
183	uart2: serial@10032000 {
184		compatible = "ingenic,jz4780-uart";
185		reg = <0x10032000 0x100>;
186
187		interrupt-parent = <&intc>;
188		interrupts = <49>;
189
190		clocks = <&ext>, <&cgu JZ4780_CLK_UART2>;
191		clock-names = "baud", "module";
192
193		status = "disabled";
194	};
195
196	uart3: serial@10033000 {
197		compatible = "ingenic,jz4780-uart";
198		reg = <0x10033000 0x100>;
199
200		interrupt-parent = <&intc>;
201		interrupts = <48>;
202
203		clocks = <&ext>, <&cgu JZ4780_CLK_UART3>;
204		clock-names = "baud", "module";
205
206		status = "disabled";
207	};
208
209	uart4: serial@10034000 {
210		compatible = "ingenic,jz4780-uart";
211		reg = <0x10034000 0x100>;
212
213		interrupt-parent = <&intc>;
214		interrupts = <34>;
215
216		clocks = <&ext>, <&cgu JZ4780_CLK_UART4>;
217		clock-names = "baud", "module";
218
219		status = "disabled";
220	};
221
222	watchdog: watchdog@10002000 {
223		compatible = "ingenic,jz4780-watchdog";
224		reg = <0x10002000 0x100>;
225	};
226
227	nemc: nemc@13410000 {
228		compatible = "ingenic,jz4780-nemc";
229		reg = <0x13410000 0x10000>;
230		#address-cells = <2>;
231		#size-cells = <1>;
232		ranges = <1 0 0x1b000000 0x1000000
233			  2 0 0x1a000000 0x1000000
234			  3 0 0x19000000 0x1000000
235			  4 0 0x18000000 0x1000000
236			  5 0 0x17000000 0x1000000
237			  6 0 0x16000000 0x1000000>;
238
239		clocks = <&cgu JZ4780_CLK_NEMC>;
240
241		status = "disabled";
242	};
243
244	bch: bch@134d0000 {
245		compatible = "ingenic,jz4780-bch";
246		reg = <0x134d0000 0x10000>;
247
248		clocks = <&cgu JZ4780_CLK_BCH>;
249
250		status = "disabled";
251	};
252};
253