1724ba675SRob Herring// SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause 2724ba675SRob Herring// Copyright 2021 Jonathan Neuschäfer 3724ba675SRob Herring 4724ba675SRob Herring#include <dt-bindings/interrupt-controller/irq.h> 5724ba675SRob Herring 6724ba675SRob Herring/ { 7724ba675SRob Herring compatible = "nuvoton,wpcm450"; 8724ba675SRob Herring #address-cells = <1>; 9724ba675SRob Herring #size-cells = <1>; 10724ba675SRob Herring 11724ba675SRob Herring aliases { 12724ba675SRob Herring gpio0 = &gpio0; 13724ba675SRob Herring gpio1 = &gpio1; 14724ba675SRob Herring gpio2 = &gpio2; 15724ba675SRob Herring gpio3 = &gpio3; 16724ba675SRob Herring gpio4 = &gpio4; 17724ba675SRob Herring gpio5 = &gpio5; 18724ba675SRob Herring gpio6 = &gpio6; 19724ba675SRob Herring gpio7 = &gpio7; 20724ba675SRob Herring }; 21724ba675SRob Herring 22724ba675SRob Herring cpus { 23724ba675SRob Herring #address-cells = <1>; 24724ba675SRob Herring #size-cells = <0>; 25724ba675SRob Herring 26724ba675SRob Herring cpu@0 { 27724ba675SRob Herring compatible = "arm,arm926ej-s"; 28724ba675SRob Herring device_type = "cpu"; 29724ba675SRob Herring reg = <0>; 30724ba675SRob Herring }; 31724ba675SRob Herring }; 32724ba675SRob Herring 33724ba675SRob Herring clk24m: clock-24mhz { 34724ba675SRob Herring /* 24 MHz dummy clock */ 35724ba675SRob Herring compatible = "fixed-clock"; 36724ba675SRob Herring clock-frequency = <24000000>; 37724ba675SRob Herring #clock-cells = <0>; 38724ba675SRob Herring }; 39724ba675SRob Herring 40724ba675SRob Herring refclk: clock-48mhz { 41724ba675SRob Herring /* 48 MHz reference oscillator */ 42724ba675SRob Herring compatible = "fixed-clock"; 43724ba675SRob Herring clock-output-names = "ref"; 44724ba675SRob Herring clock-frequency = <48000000>; 45724ba675SRob Herring #clock-cells = <0>; 46724ba675SRob Herring }; 47724ba675SRob Herring 48724ba675SRob Herring soc { 49724ba675SRob Herring compatible = "simple-bus"; 50724ba675SRob Herring #address-cells = <1>; 51724ba675SRob Herring #size-cells = <1>; 52724ba675SRob Herring interrupt-parent = <&aic>; 53724ba675SRob Herring ranges; 54724ba675SRob Herring 55724ba675SRob Herring gcr: syscon@b0000000 { 56724ba675SRob Herring compatible = "nuvoton,wpcm450-gcr", "syscon", "simple-mfd"; 57724ba675SRob Herring reg = <0xb0000000 0x200>; 58724ba675SRob Herring }; 59724ba675SRob Herring 60724ba675SRob Herring clk: clock-controller@b0000200 { 61724ba675SRob Herring compatible = "nuvoton,wpcm450-clk"; 62724ba675SRob Herring reg = <0xb0000200 0x100>; 63724ba675SRob Herring clocks = <&refclk>; 64724ba675SRob Herring clock-names = "ref"; 65724ba675SRob Herring #clock-cells = <1>; 66724ba675SRob Herring #reset-cells = <1>; 67724ba675SRob Herring }; 68724ba675SRob Herring 69724ba675SRob Herring serial0: serial@b8000000 { 70724ba675SRob Herring compatible = "nuvoton,wpcm450-uart"; 71724ba675SRob Herring reg = <0xb8000000 0x20>; 72724ba675SRob Herring reg-shift = <2>; 73724ba675SRob Herring interrupts = <7 IRQ_TYPE_LEVEL_HIGH>; 74724ba675SRob Herring clocks = <&clk24m>; 75724ba675SRob Herring pinctrl-names = "default"; 76724ba675SRob Herring pinctrl-0 = <&bsp_pins>; 77724ba675SRob Herring status = "disabled"; 78724ba675SRob Herring }; 79724ba675SRob Herring 80724ba675SRob Herring serial1: serial@b8000100 { 81724ba675SRob Herring compatible = "nuvoton,wpcm450-uart"; 82724ba675SRob Herring reg = <0xb8000100 0x20>; 83724ba675SRob Herring reg-shift = <2>; 84724ba675SRob Herring interrupts = <8 IRQ_TYPE_LEVEL_HIGH>; 85724ba675SRob Herring clocks = <&clk24m>; 86724ba675SRob Herring status = "disabled"; 87724ba675SRob Herring }; 88724ba675SRob Herring 89724ba675SRob Herring timer0: timer@b8001000 { 90724ba675SRob Herring compatible = "nuvoton,wpcm450-timer"; 91724ba675SRob Herring interrupts = <12 IRQ_TYPE_LEVEL_HIGH>; 92724ba675SRob Herring reg = <0xb8001000 0x1c>; 93724ba675SRob Herring clocks = <&clk24m>; 94724ba675SRob Herring }; 95724ba675SRob Herring 96724ba675SRob Herring watchdog0: watchdog@b800101c { 97724ba675SRob Herring compatible = "nuvoton,wpcm450-wdt"; 98724ba675SRob Herring interrupts = <1 IRQ_TYPE_LEVEL_HIGH>; 99724ba675SRob Herring reg = <0xb800101c 0x4>; 100724ba675SRob Herring clocks = <&clk24m>; 101724ba675SRob Herring }; 102724ba675SRob Herring 103724ba675SRob Herring aic: interrupt-controller@b8002000 { 104724ba675SRob Herring compatible = "nuvoton,wpcm450-aic"; 105724ba675SRob Herring reg = <0xb8002000 0x1000>; 106724ba675SRob Herring interrupt-controller; 107724ba675SRob Herring #interrupt-cells = <2>; 108724ba675SRob Herring }; 109724ba675SRob Herring 110724ba675SRob Herring pinctrl: pinctrl@b8003000 { 111724ba675SRob Herring compatible = "nuvoton,wpcm450-pinctrl"; 112724ba675SRob Herring reg = <0xb8003000 0x1000>; 113724ba675SRob Herring #address-cells = <1>; 114724ba675SRob Herring #size-cells = <0>; 115724ba675SRob Herring 116724ba675SRob Herring gpio0: gpio@0 { 117724ba675SRob Herring reg = <0>; 118724ba675SRob Herring gpio-controller; 119724ba675SRob Herring #gpio-cells = <2>; 120724ba675SRob Herring interrupts = <2 IRQ_TYPE_LEVEL_HIGH>, 121724ba675SRob Herring <3 IRQ_TYPE_LEVEL_HIGH>, 122724ba675SRob Herring <4 IRQ_TYPE_LEVEL_HIGH>; 123*96fd598eSRob Herring #interrupt-cells = <2>; 124724ba675SRob Herring interrupt-controller; 125724ba675SRob Herring }; 126724ba675SRob Herring 127724ba675SRob Herring gpio1: gpio@1 { 128724ba675SRob Herring reg = <1>; 129724ba675SRob Herring gpio-controller; 130724ba675SRob Herring #gpio-cells = <2>; 131724ba675SRob Herring interrupts = <5 IRQ_TYPE_LEVEL_HIGH>; 132*96fd598eSRob Herring #interrupt-cells = <2>; 133724ba675SRob Herring interrupt-controller; 134724ba675SRob Herring }; 135724ba675SRob Herring 136724ba675SRob Herring gpio2: gpio@2 { 137724ba675SRob Herring reg = <2>; 138724ba675SRob Herring gpio-controller; 139724ba675SRob Herring #gpio-cells = <2>; 140724ba675SRob Herring }; 141724ba675SRob Herring 142724ba675SRob Herring gpio3: gpio@3 { 143724ba675SRob Herring reg = <3>; 144724ba675SRob Herring gpio-controller; 145724ba675SRob Herring #gpio-cells = <2>; 146724ba675SRob Herring }; 147724ba675SRob Herring 148724ba675SRob Herring gpio4: gpio@4 { 149724ba675SRob Herring reg = <4>; 150724ba675SRob Herring gpio-controller; 151724ba675SRob Herring #gpio-cells = <2>; 152724ba675SRob Herring }; 153724ba675SRob Herring 154724ba675SRob Herring gpio5: gpio@5 { 155724ba675SRob Herring reg = <5>; 156724ba675SRob Herring gpio-controller; 157724ba675SRob Herring #gpio-cells = <2>; 158724ba675SRob Herring }; 159724ba675SRob Herring 160724ba675SRob Herring gpio6: gpio@6 { 161724ba675SRob Herring reg = <6>; 162724ba675SRob Herring gpio-controller; 163724ba675SRob Herring #gpio-cells = <2>; 164724ba675SRob Herring }; 165724ba675SRob Herring 166724ba675SRob Herring gpio7: gpio@7 { 167724ba675SRob Herring reg = <7>; 168724ba675SRob Herring gpio-controller; 169724ba675SRob Herring #gpio-cells = <2>; 170724ba675SRob Herring }; 171724ba675SRob Herring 172724ba675SRob Herring smb3_pins: mux-smb3 { 173724ba675SRob Herring groups = "smb3"; 174724ba675SRob Herring function = "smb3"; 175724ba675SRob Herring }; 176724ba675SRob Herring 177724ba675SRob Herring smb4_pins: mux-smb4 { 178724ba675SRob Herring groups = "smb4"; 179724ba675SRob Herring function = "smb4"; 180724ba675SRob Herring }; 181724ba675SRob Herring 182724ba675SRob Herring smb5_pins: mux-smb5 { 183724ba675SRob Herring groups = "smb5"; 184724ba675SRob Herring function = "smb5"; 185724ba675SRob Herring }; 186724ba675SRob Herring 187724ba675SRob Herring scs1_pins: mux-scs1 { 188724ba675SRob Herring groups = "scs1"; 189724ba675SRob Herring function = "scs1"; 190724ba675SRob Herring }; 191724ba675SRob Herring 192724ba675SRob Herring scs2_pins: mux-scs2 { 193724ba675SRob Herring groups = "scs2"; 194724ba675SRob Herring function = "scs2"; 195724ba675SRob Herring }; 196724ba675SRob Herring 197724ba675SRob Herring scs3_pins: mux-scs3 { 198724ba675SRob Herring groups = "scs3"; 199724ba675SRob Herring function = "scs3"; 200724ba675SRob Herring }; 201724ba675SRob Herring 202724ba675SRob Herring smb0_pins: mux-smb0 { 203724ba675SRob Herring groups = "smb0"; 204724ba675SRob Herring function = "smb0"; 205724ba675SRob Herring }; 206724ba675SRob Herring 207724ba675SRob Herring smb1_pins: mux-smb1 { 208724ba675SRob Herring groups = "smb1"; 209724ba675SRob Herring function = "smb1"; 210724ba675SRob Herring }; 211724ba675SRob Herring 212724ba675SRob Herring smb2_pins: mux-smb2 { 213724ba675SRob Herring groups = "smb2"; 214724ba675SRob Herring function = "smb2"; 215724ba675SRob Herring }; 216724ba675SRob Herring 217724ba675SRob Herring bsp_pins: mux-bsp { 218724ba675SRob Herring groups = "bsp"; 219724ba675SRob Herring function = "bsp"; 220724ba675SRob Herring }; 221724ba675SRob Herring 222724ba675SRob Herring hsp1_pins: mux-hsp1 { 223724ba675SRob Herring groups = "hsp1"; 224724ba675SRob Herring function = "hsp1"; 225724ba675SRob Herring }; 226724ba675SRob Herring 227724ba675SRob Herring hsp2_pins: mux-hsp2 { 228724ba675SRob Herring groups = "hsp2"; 229724ba675SRob Herring function = "hsp2"; 230724ba675SRob Herring }; 231724ba675SRob Herring 232724ba675SRob Herring r1err_pins: mux-r1err { 233724ba675SRob Herring groups = "r1err"; 234724ba675SRob Herring function = "r1err"; 235724ba675SRob Herring }; 236724ba675SRob Herring 237724ba675SRob Herring r1md_pins: mux-r1md { 238724ba675SRob Herring groups = "r1md"; 239724ba675SRob Herring function = "r1md"; 240724ba675SRob Herring }; 241724ba675SRob Herring 242724ba675SRob Herring rmii2_pins: mux-rmii2 { 243724ba675SRob Herring groups = "rmii2"; 244724ba675SRob Herring function = "rmii2"; 245724ba675SRob Herring }; 246724ba675SRob Herring 247724ba675SRob Herring r2err_pins: mux-r2err { 248724ba675SRob Herring groups = "r2err"; 249724ba675SRob Herring function = "r2err"; 250724ba675SRob Herring }; 251724ba675SRob Herring 252724ba675SRob Herring r2md_pins: mux-r2md { 253724ba675SRob Herring groups = "r2md"; 254724ba675SRob Herring function = "r2md"; 255724ba675SRob Herring }; 256724ba675SRob Herring 257724ba675SRob Herring kbcc_pins: mux-kbcc { 258724ba675SRob Herring groups = "kbcc"; 259724ba675SRob Herring function = "kbcc"; 260724ba675SRob Herring }; 261724ba675SRob Herring 262724ba675SRob Herring dvo0_pins: mux-dvo0 { 263724ba675SRob Herring groups = "dvo"; 264724ba675SRob Herring function = "dvo0"; 265724ba675SRob Herring }; 266724ba675SRob Herring 267724ba675SRob Herring dvo3_pins: mux-dvo3 { 268724ba675SRob Herring groups = "dvo"; 269724ba675SRob Herring function = "dvo3"; 270724ba675SRob Herring }; 271724ba675SRob Herring 272724ba675SRob Herring clko_pins: mux-clko { 273724ba675SRob Herring groups = "clko"; 274724ba675SRob Herring function = "clko"; 275724ba675SRob Herring }; 276724ba675SRob Herring 277724ba675SRob Herring smi_pins: mux-smi { 278724ba675SRob Herring groups = "smi"; 279724ba675SRob Herring function = "smi"; 280724ba675SRob Herring }; 281724ba675SRob Herring 282724ba675SRob Herring uinc_pins: mux-uinc { 283724ba675SRob Herring groups = "uinc"; 284724ba675SRob Herring function = "uinc"; 285724ba675SRob Herring }; 286724ba675SRob Herring 287724ba675SRob Herring gspi_pins: mux-gspi { 288724ba675SRob Herring groups = "gspi"; 289724ba675SRob Herring function = "gspi"; 290724ba675SRob Herring }; 291724ba675SRob Herring 292724ba675SRob Herring mben_pins: mux-mben { 293724ba675SRob Herring groups = "mben"; 294724ba675SRob Herring function = "mben"; 295724ba675SRob Herring }; 296724ba675SRob Herring 297724ba675SRob Herring xcs2_pins: mux-xcs2 { 298724ba675SRob Herring groups = "xcs2"; 299724ba675SRob Herring function = "xcs2"; 300724ba675SRob Herring }; 301724ba675SRob Herring 302724ba675SRob Herring xcs1_pins: mux-xcs1 { 303724ba675SRob Herring groups = "xcs1"; 304724ba675SRob Herring function = "xcs1"; 305724ba675SRob Herring }; 306724ba675SRob Herring 307724ba675SRob Herring sdio_pins: mux-sdio { 308724ba675SRob Herring groups = "sdio"; 309724ba675SRob Herring function = "sdio"; 310724ba675SRob Herring }; 311724ba675SRob Herring 312724ba675SRob Herring sspi_pins: mux-sspi { 313724ba675SRob Herring groups = "sspi"; 314724ba675SRob Herring function = "sspi"; 315724ba675SRob Herring }; 316724ba675SRob Herring 317724ba675SRob Herring fi0_pins: mux-fi0 { 318724ba675SRob Herring groups = "fi0"; 319724ba675SRob Herring function = "fi0"; 320724ba675SRob Herring }; 321724ba675SRob Herring 322724ba675SRob Herring fi1_pins: mux-fi1 { 323724ba675SRob Herring groups = "fi1"; 324724ba675SRob Herring function = "fi1"; 325724ba675SRob Herring }; 326724ba675SRob Herring 327724ba675SRob Herring fi2_pins: mux-fi2 { 328724ba675SRob Herring groups = "fi2"; 329724ba675SRob Herring function = "fi2"; 330724ba675SRob Herring }; 331724ba675SRob Herring 332724ba675SRob Herring fi3_pins: mux-fi3 { 333724ba675SRob Herring groups = "fi3"; 334724ba675SRob Herring function = "fi3"; 335724ba675SRob Herring }; 336724ba675SRob Herring 337724ba675SRob Herring fi4_pins: mux-fi4 { 338724ba675SRob Herring groups = "fi4"; 339724ba675SRob Herring function = "fi4"; 340724ba675SRob Herring }; 341724ba675SRob Herring 342724ba675SRob Herring fi5_pins: mux-fi5 { 343724ba675SRob Herring groups = "fi5"; 344724ba675SRob Herring function = "fi5"; 345724ba675SRob Herring }; 346724ba675SRob Herring 347724ba675SRob Herring fi6_pins: mux-fi6 { 348724ba675SRob Herring groups = "fi6"; 349724ba675SRob Herring function = "fi6"; 350724ba675SRob Herring }; 351724ba675SRob Herring 352724ba675SRob Herring fi7_pins: mux-fi7 { 353724ba675SRob Herring groups = "fi7"; 354724ba675SRob Herring function = "fi7"; 355724ba675SRob Herring }; 356724ba675SRob Herring 357724ba675SRob Herring fi8_pins: mux-fi8 { 358724ba675SRob Herring groups = "fi8"; 359724ba675SRob Herring function = "fi8"; 360724ba675SRob Herring }; 361724ba675SRob Herring 362724ba675SRob Herring fi9_pins: mux-fi9 { 363724ba675SRob Herring groups = "fi9"; 364724ba675SRob Herring function = "fi9"; 365724ba675SRob Herring }; 366724ba675SRob Herring 367724ba675SRob Herring fi10_pins: mux-fi10 { 368724ba675SRob Herring groups = "fi10"; 369724ba675SRob Herring function = "fi10"; 370724ba675SRob Herring }; 371724ba675SRob Herring 372724ba675SRob Herring fi11_pins: mux-fi11 { 373724ba675SRob Herring groups = "fi11"; 374724ba675SRob Herring function = "fi11"; 375724ba675SRob Herring }; 376724ba675SRob Herring 377724ba675SRob Herring fi12_pins: mux-fi12 { 378724ba675SRob Herring groups = "fi12"; 379724ba675SRob Herring function = "fi12"; 380724ba675SRob Herring }; 381724ba675SRob Herring 382724ba675SRob Herring fi13_pins: mux-fi13 { 383724ba675SRob Herring groups = "fi13"; 384724ba675SRob Herring function = "fi13"; 385724ba675SRob Herring }; 386724ba675SRob Herring 387724ba675SRob Herring fi14_pins: mux-fi14 { 388724ba675SRob Herring groups = "fi14"; 389724ba675SRob Herring function = "fi14"; 390724ba675SRob Herring }; 391724ba675SRob Herring 392724ba675SRob Herring fi15_pins: mux-fi15 { 393724ba675SRob Herring groups = "fi15"; 394724ba675SRob Herring function = "fi15"; 395724ba675SRob Herring }; 396724ba675SRob Herring 397724ba675SRob Herring pwm0_pins: mux-pwm0 { 398724ba675SRob Herring groups = "pwm0"; 399724ba675SRob Herring function = "pwm0"; 400724ba675SRob Herring }; 401724ba675SRob Herring 402724ba675SRob Herring pwm1_pins: mux-pwm1 { 403724ba675SRob Herring groups = "pwm1"; 404724ba675SRob Herring function = "pwm1"; 405724ba675SRob Herring }; 406724ba675SRob Herring 407724ba675SRob Herring pwm2_pins: mux-pwm2 { 408724ba675SRob Herring groups = "pwm2"; 409724ba675SRob Herring function = "pwm2"; 410724ba675SRob Herring }; 411724ba675SRob Herring 412724ba675SRob Herring pwm3_pins: mux-pwm3 { 413724ba675SRob Herring groups = "pwm3"; 414724ba675SRob Herring function = "pwm3"; 415724ba675SRob Herring }; 416724ba675SRob Herring 417724ba675SRob Herring pwm4_pins: mux-pwm4 { 418724ba675SRob Herring groups = "pwm4"; 419724ba675SRob Herring function = "pwm4"; 420724ba675SRob Herring }; 421724ba675SRob Herring 422724ba675SRob Herring pwm5_pins: mux-pwm5 { 423724ba675SRob Herring groups = "pwm5"; 424724ba675SRob Herring function = "pwm5"; 425724ba675SRob Herring }; 426724ba675SRob Herring 427724ba675SRob Herring pwm6_pins: mux-pwm6 { 428724ba675SRob Herring groups = "pwm6"; 429724ba675SRob Herring function = "pwm6"; 430724ba675SRob Herring }; 431724ba675SRob Herring 432724ba675SRob Herring pwm7_pins: mux-pwm7 { 433724ba675SRob Herring groups = "pwm7"; 434724ba675SRob Herring function = "pwm7"; 435724ba675SRob Herring }; 436724ba675SRob Herring 437724ba675SRob Herring hg0_pins: mux-hg0 { 438724ba675SRob Herring groups = "hg0"; 439724ba675SRob Herring function = "hg0"; 440724ba675SRob Herring }; 441724ba675SRob Herring 442724ba675SRob Herring hg1_pins: mux-hg1 { 443724ba675SRob Herring groups = "hg1"; 444724ba675SRob Herring function = "hg1"; 445724ba675SRob Herring }; 446724ba675SRob Herring 447724ba675SRob Herring hg2_pins: mux-hg2 { 448724ba675SRob Herring groups = "hg2"; 449724ba675SRob Herring function = "hg2"; 450724ba675SRob Herring }; 451724ba675SRob Herring 452724ba675SRob Herring hg3_pins: mux-hg3 { 453724ba675SRob Herring groups = "hg3"; 454724ba675SRob Herring function = "hg3"; 455724ba675SRob Herring }; 456724ba675SRob Herring 457724ba675SRob Herring hg4_pins: mux-hg4 { 458724ba675SRob Herring groups = "hg4"; 459724ba675SRob Herring function = "hg4"; 460724ba675SRob Herring }; 461724ba675SRob Herring 462724ba675SRob Herring hg5_pins: mux-hg5 { 463724ba675SRob Herring groups = "hg5"; 464724ba675SRob Herring function = "hg5"; 465724ba675SRob Herring }; 466724ba675SRob Herring 467724ba675SRob Herring hg6_pins: mux-hg6 { 468724ba675SRob Herring groups = "hg6"; 469724ba675SRob Herring function = "hg6"; 470724ba675SRob Herring }; 471724ba675SRob Herring 472724ba675SRob Herring hg7_pins: mux-hg7 { 473724ba675SRob Herring groups = "hg7"; 474724ba675SRob Herring function = "hg7"; 475724ba675SRob Herring }; 476724ba675SRob Herring }; 477724ba675SRob Herring 478724ba675SRob Herring fiu: spi-controller@c8000000 { 479724ba675SRob Herring compatible = "nuvoton,wpcm450-fiu"; 480724ba675SRob Herring #address-cells = <1>; 481724ba675SRob Herring #size-cells = <0>; 482724ba675SRob Herring reg = <0xc8000000 0x1000>, <0xc0000000 0x4000000>; 483724ba675SRob Herring reg-names = "control", "memory"; 484724ba675SRob Herring clocks = <&clk 0>; 485724ba675SRob Herring nuvoton,shm = <&shm>; 486724ba675SRob Herring status = "disabled"; 487724ba675SRob Herring }; 488724ba675SRob Herring 489724ba675SRob Herring shm: syscon@c8001000 { 490724ba675SRob Herring compatible = "nuvoton,wpcm450-shm", "syscon"; 491724ba675SRob Herring reg = <0xc8001000 0x1000>; 492724ba675SRob Herring reg-io-width = <1>; 493724ba675SRob Herring }; 494724ba675SRob Herring }; 495724ba675SRob Herring}; 496