Merge tag 'x86-asm-2024-03-11' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip
[linux-2.6-block.git] / arch / arm / boot / dts / nuvoton / nuvoton-wpcm450.dtsi
CommitLineData
ed09d269
JN
1// SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
2// Copyright 2021 Jonathan Neuschäfer
3
4#include <dt-bindings/interrupt-controller/irq.h>
5
6/ {
7 compatible = "nuvoton,wpcm450";
8 #address-cells = <1>;
9 #size-cells = <1>;
10
733bc2f4
JN
11 aliases {
12 gpio0 = &gpio0;
13 gpio1 = &gpio1;
14 gpio2 = &gpio2;
15 gpio3 = &gpio3;
16 gpio4 = &gpio4;
17 gpio5 = &gpio5;
18 gpio6 = &gpio6;
19 gpio7 = &gpio7;
20 };
21
ed09d269
JN
22 cpus {
23 #address-cells = <1>;
24 #size-cells = <0>;
25
26 cpu@0 {
27 compatible = "arm,arm926ej-s";
28 device_type = "cpu";
29 reg = <0>;
30 };
31 };
32
33 clk24m: clock-24mhz {
34 /* 24 MHz dummy clock */
35 compatible = "fixed-clock";
36 clock-frequency = <24000000>;
37 #clock-cells = <0>;
38 };
39
362e8be2
JN
40 refclk: clock-48mhz {
41 /* 48 MHz reference oscillator */
42 compatible = "fixed-clock";
43 clock-output-names = "ref";
44 clock-frequency = <48000000>;
45 #clock-cells = <0>;
46 };
47
ed09d269
JN
48 soc {
49 compatible = "simple-bus";
50 #address-cells = <1>;
51 #size-cells = <1>;
52 interrupt-parent = <&aic>;
53 ranges;
54
f14a5809
JN
55 gcr: syscon@b0000000 {
56 compatible = "nuvoton,wpcm450-gcr", "syscon", "simple-mfd";
57 reg = <0xb0000000 0x200>;
58 };
59
362e8be2
JN
60 clk: clock-controller@b0000200 {
61 compatible = "nuvoton,wpcm450-clk";
62 reg = <0xb0000200 0x100>;
63 clocks = <&refclk>;
64 clock-names = "ref";
65 #clock-cells = <1>;
66 #reset-cells = <1>;
67 };
68
ed09d269
JN
69 serial0: serial@b8000000 {
70 compatible = "nuvoton,wpcm450-uart";
71 reg = <0xb8000000 0x20>;
72 reg-shift = <2>;
73 interrupts = <7 IRQ_TYPE_LEVEL_HIGH>;
74 clocks = <&clk24m>;
e6cb1fc9
JN
75 pinctrl-names = "default";
76 pinctrl-0 = <&bsp_pins>;
ed09d269
JN
77 status = "disabled";
78 };
79
80 serial1: serial@b8000100 {
81 compatible = "nuvoton,wpcm450-uart";
82 reg = <0xb8000100 0x20>;
83 reg-shift = <2>;
84 interrupts = <8 IRQ_TYPE_LEVEL_HIGH>;
85 clocks = <&clk24m>;
86 status = "disabled";
87 };
88
89 timer0: timer@b8001000 {
90 compatible = "nuvoton,wpcm450-timer";
91 interrupts = <12 IRQ_TYPE_LEVEL_HIGH>;
92 reg = <0xb8001000 0x1c>;
93 clocks = <&clk24m>;
94 };
95
96 watchdog0: watchdog@b800101c {
97 compatible = "nuvoton,wpcm450-wdt";
98 interrupts = <1 IRQ_TYPE_LEVEL_HIGH>;
99 reg = <0xb800101c 0x4>;
100 clocks = <&clk24m>;
ed09d269
JN
101 };
102
103 aic: interrupt-controller@b8002000 {
104 compatible = "nuvoton,wpcm450-aic";
105 reg = <0xb8002000 0x1000>;
106 interrupt-controller;
107 #interrupt-cells = <2>;
108 };
733bc2f4
JN
109
110 pinctrl: pinctrl@b8003000 {
111 compatible = "nuvoton,wpcm450-pinctrl";
112 reg = <0xb8003000 0x1000>;
113 #address-cells = <1>;
114 #size-cells = <0>;
115
116 gpio0: gpio@0 {
117 reg = <0>;
118 gpio-controller;
119 #gpio-cells = <2>;
120 interrupts = <2 IRQ_TYPE_LEVEL_HIGH>,
121 <3 IRQ_TYPE_LEVEL_HIGH>,
122 <4 IRQ_TYPE_LEVEL_HIGH>;
96fd598e 123 #interrupt-cells = <2>;
733bc2f4
JN
124 interrupt-controller;
125 };
126
127 gpio1: gpio@1 {
128 reg = <1>;
129 gpio-controller;
130 #gpio-cells = <2>;
131 interrupts = <5 IRQ_TYPE_LEVEL_HIGH>;
96fd598e 132 #interrupt-cells = <2>;
733bc2f4
JN
133 interrupt-controller;
134 };
135
136 gpio2: gpio@2 {
137 reg = <2>;
138 gpio-controller;
139 #gpio-cells = <2>;
140 };
141
142 gpio3: gpio@3 {
143 reg = <3>;
144 gpio-controller;
145 #gpio-cells = <2>;
146 };
147
148 gpio4: gpio@4 {
149 reg = <4>;
150 gpio-controller;
151 #gpio-cells = <2>;
152 };
153
154 gpio5: gpio@5 {
155 reg = <5>;
156 gpio-controller;
157 #gpio-cells = <2>;
158 };
159
160 gpio6: gpio@6 {
161 reg = <6>;
162 gpio-controller;
163 #gpio-cells = <2>;
164 };
165
166 gpio7: gpio@7 {
167 reg = <7>;
168 gpio-controller;
169 #gpio-cells = <2>;
170 };
871e181b
JN
171
172 smb3_pins: mux-smb3 {
173 groups = "smb3";
174 function = "smb3";
175 };
176
177 smb4_pins: mux-smb4 {
178 groups = "smb4";
179 function = "smb4";
180 };
181
182 smb5_pins: mux-smb5 {
183 groups = "smb5";
184 function = "smb5";
185 };
186
187 scs1_pins: mux-scs1 {
188 groups = "scs1";
189 function = "scs1";
190 };
191
192 scs2_pins: mux-scs2 {
193 groups = "scs2";
194 function = "scs2";
195 };
196
197 scs3_pins: mux-scs3 {
198 groups = "scs3";
199 function = "scs3";
200 };
201
202 smb0_pins: mux-smb0 {
203 groups = "smb0";
204 function = "smb0";
205 };
206
207 smb1_pins: mux-smb1 {
208 groups = "smb1";
209 function = "smb1";
210 };
211
212 smb2_pins: mux-smb2 {
213 groups = "smb2";
214 function = "smb2";
215 };
216
217 bsp_pins: mux-bsp {
218 groups = "bsp";
219 function = "bsp";
220 };
221
222 hsp1_pins: mux-hsp1 {
223 groups = "hsp1";
224 function = "hsp1";
225 };
226
227 hsp2_pins: mux-hsp2 {
228 groups = "hsp2";
229 function = "hsp2";
230 };
231
232 r1err_pins: mux-r1err {
233 groups = "r1err";
234 function = "r1err";
235 };
236
237 r1md_pins: mux-r1md {
238 groups = "r1md";
239 function = "r1md";
240 };
241
242 rmii2_pins: mux-rmii2 {
243 groups = "rmii2";
244 function = "rmii2";
245 };
246
247 r2err_pins: mux-r2err {
248 groups = "r2err";
249 function = "r2err";
250 };
251
252 r2md_pins: mux-r2md {
253 groups = "r2md";
254 function = "r2md";
255 };
256
257 kbcc_pins: mux-kbcc {
258 groups = "kbcc";
259 function = "kbcc";
260 };
261
262 dvo0_pins: mux-dvo0 {
263 groups = "dvo";
264 function = "dvo0";
265 };
266
267 dvo3_pins: mux-dvo3 {
268 groups = "dvo";
269 function = "dvo3";
270 };
271
272 clko_pins: mux-clko {
273 groups = "clko";
274 function = "clko";
275 };
276
277 smi_pins: mux-smi {
278 groups = "smi";
279 function = "smi";
280 };
281
282 uinc_pins: mux-uinc {
283 groups = "uinc";
284 function = "uinc";
285 };
286
287 gspi_pins: mux-gspi {
288 groups = "gspi";
289 function = "gspi";
290 };
291
292 mben_pins: mux-mben {
293 groups = "mben";
294 function = "mben";
295 };
296
297 xcs2_pins: mux-xcs2 {
298 groups = "xcs2";
299 function = "xcs2";
300 };
301
302 xcs1_pins: mux-xcs1 {
303 groups = "xcs1";
304 function = "xcs1";
305 };
306
307 sdio_pins: mux-sdio {
308 groups = "sdio";
309 function = "sdio";
310 };
311
312 sspi_pins: mux-sspi {
313 groups = "sspi";
314 function = "sspi";
315 };
316
317 fi0_pins: mux-fi0 {
318 groups = "fi0";
319 function = "fi0";
320 };
321
322 fi1_pins: mux-fi1 {
323 groups = "fi1";
324 function = "fi1";
325 };
326
327 fi2_pins: mux-fi2 {
328 groups = "fi2";
329 function = "fi2";
330 };
331
332 fi3_pins: mux-fi3 {
333 groups = "fi3";
334 function = "fi3";
335 };
336
337 fi4_pins: mux-fi4 {
338 groups = "fi4";
339 function = "fi4";
340 };
341
342 fi5_pins: mux-fi5 {
343 groups = "fi5";
344 function = "fi5";
345 };
346
347 fi6_pins: mux-fi6 {
348 groups = "fi6";
349 function = "fi6";
350 };
351
352 fi7_pins: mux-fi7 {
353 groups = "fi7";
354 function = "fi7";
355 };
356
357 fi8_pins: mux-fi8 {
358 groups = "fi8";
359 function = "fi8";
360 };
361
362 fi9_pins: mux-fi9 {
363 groups = "fi9";
364 function = "fi9";
365 };
366
367 fi10_pins: mux-fi10 {
368 groups = "fi10";
369 function = "fi10";
370 };
371
372 fi11_pins: mux-fi11 {
373 groups = "fi11";
374 function = "fi11";
375 };
376
377 fi12_pins: mux-fi12 {
378 groups = "fi12";
379 function = "fi12";
380 };
381
382 fi13_pins: mux-fi13 {
383 groups = "fi13";
384 function = "fi13";
385 };
386
387 fi14_pins: mux-fi14 {
388 groups = "fi14";
389 function = "fi14";
390 };
391
392 fi15_pins: mux-fi15 {
393 groups = "fi15";
394 function = "fi15";
395 };
396
397 pwm0_pins: mux-pwm0 {
398 groups = "pwm0";
399 function = "pwm0";
400 };
401
402 pwm1_pins: mux-pwm1 {
403 groups = "pwm1";
404 function = "pwm1";
405 };
406
407 pwm2_pins: mux-pwm2 {
408 groups = "pwm2";
409 function = "pwm2";
410 };
411
412 pwm3_pins: mux-pwm3 {
413 groups = "pwm3";
414 function = "pwm3";
415 };
416
417 pwm4_pins: mux-pwm4 {
418 groups = "pwm4";
419 function = "pwm4";
420 };
421
422 pwm5_pins: mux-pwm5 {
423 groups = "pwm5";
424 function = "pwm5";
425 };
426
427 pwm6_pins: mux-pwm6 {
428 groups = "pwm6";
429 function = "pwm6";
430 };
431
432 pwm7_pins: mux-pwm7 {
433 groups = "pwm7";
434 function = "pwm7";
435 };
436
437 hg0_pins: mux-hg0 {
438 groups = "hg0";
439 function = "hg0";
440 };
441
442 hg1_pins: mux-hg1 {
443 groups = "hg1";
444 function = "hg1";
445 };
446
447 hg2_pins: mux-hg2 {
448 groups = "hg2";
449 function = "hg2";
450 };
451
452 hg3_pins: mux-hg3 {
453 groups = "hg3";
454 function = "hg3";
455 };
456
457 hg4_pins: mux-hg4 {
458 groups = "hg4";
459 function = "hg4";
460 };
461
462 hg5_pins: mux-hg5 {
463 groups = "hg5";
464 function = "hg5";
465 };
466
467 hg6_pins: mux-hg6 {
468 groups = "hg6";
469 function = "hg6";
470 };
471
472 hg7_pins: mux-hg7 {
473 groups = "hg7";
474 function = "hg7";
475 };
733bc2f4 476 };
38abcb0d
JN
477
478 fiu: spi-controller@c8000000 {
479 compatible = "nuvoton,wpcm450-fiu";
480 #address-cells = <1>;
481 #size-cells = <0>;
482 reg = <0xc8000000 0x1000>, <0xc0000000 0x4000000>;
483 reg-names = "control", "memory";
484 clocks = <&clk 0>;
5efb6480 485 nuvoton,shm = <&shm>;
38abcb0d
JN
486 status = "disabled";
487 };
488
489 shm: syscon@c8001000 {
490 compatible = "nuvoton,wpcm450-shm", "syscon";
491 reg = <0xc8001000 0x1000>;
492 reg-io-width = <1>;
493 };
ed09d269
JN
494 };
495};