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 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 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 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 48 soc { 49 compatible = "simple-bus"; 50 #address-cells = <1>; 51 #size-cells = <1>; 52 interrupt-parent = <&aic>; 53 ranges; 54 55 gcr: syscon@b0000000 { 56 compatible = "nuvoton,wpcm450-gcr", "syscon", "simple-mfd"; 57 reg = <0xb0000000 0x200>; 58 }; 59 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 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>; 75 pinctrl-names = "default"; 76 pinctrl-0 = <&bsp_pins>; 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>; 101 }; 102 103 aic: interrupt-controller@b8002000 { 104 compatible = "nuvoton,wpcm450-aic"; 105 reg = <0xb8002000 0x1000>; 106 interrupt-controller; 107 #interrupt-cells = <2>; 108 }; 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>; 123 #interrupt-cells = <2>; 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>; 132 #interrupt-cells = <2>; 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 }; 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 }; 476 }; 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>; 485 nuvoton,shm = <&shm>; 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 }; 494 }; 495}; 496