// SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause // Copyright 2021 Jonathan Neuschäfer #include <dt-bindings/interrupt-controller/irq.h> / { compatible = "nuvoton,wpcm450"; #address-cells = <1>; #size-cells = <1>; aliases { gpio0 = &gpio0; gpio1 = &gpio1; gpio2 = &gpio2; gpio3 = &gpio3; gpio4 = &gpio4; gpio5 = &gpio5; gpio6 = &gpio6; gpio7 = &gpio7; }; cpus { #address-cells = <1>; #size-cells = <0>; cpu@0 { compatible = "arm,arm926ej-s"; device_type = "cpu"; reg = <0>; }; }; clk24m: clock-24mhz { /* 24 MHz dummy clock */ compatible = "fixed-clock"; clock-frequency = <24000000>; #clock-cells = <0>; }; refclk: clock-48mhz { /* 48 MHz reference oscillator */ compatible = "fixed-clock"; clock-output-names = "ref"; clock-frequency = <48000000>; #clock-cells = <0>; }; soc { compatible = "simple-bus"; #address-cells = <1>; #size-cells = <1>; interrupt-parent = <&aic>; ranges; gcr: syscon@b0000000 { compatible = "nuvoton,wpcm450-gcr", "syscon", "simple-mfd"; reg = <0xb0000000 0x200>; }; clk: clock-controller@b0000200 { compatible = "nuvoton,wpcm450-clk"; reg = <0xb0000200 0x100>; clocks = <&refclk>; clock-names = "ref"; #clock-cells = <1>; #reset-cells = <1>; }; serial0: serial@b8000000 { compatible = "nuvoton,wpcm450-uart"; reg = <0xb8000000 0x20>; reg-shift = <2>; interrupts = <7 IRQ_TYPE_LEVEL_HIGH>; clocks = <&clk24m>; pinctrl-names = "default"; pinctrl-0 = <&bsp_pins>; status = "disabled"; }; serial1: serial@b8000100 { compatible = "nuvoton,wpcm450-uart"; reg = <0xb8000100 0x20>; reg-shift = <2>; interrupts = <8 IRQ_TYPE_LEVEL_HIGH>; clocks = <&clk24m>; status = "disabled"; }; timer0: timer@b8001000 { compatible = "nuvoton,wpcm450-timer"; interrupts = <12 IRQ_TYPE_LEVEL_HIGH>; reg = <0xb8001000 0x1c>; clocks = <&clk24m>; }; watchdog0: watchdog@b800101c { compatible = "nuvoton,wpcm450-wdt"; interrupts = <1 IRQ_TYPE_LEVEL_HIGH>; reg = <0xb800101c 0x4>; clocks = <&clk24m>; }; aic: interrupt-controller@b8002000 { compatible = "nuvoton,wpcm450-aic"; reg = <0xb8002000 0x1000>; interrupt-controller; #interrupt-cells = <2>; }; pinctrl: pinctrl@b8003000 { compatible = "nuvoton,wpcm450-pinctrl"; reg = <0xb8003000 0x1000>; #address-cells = <1>; #size-cells = <0>; gpio0: gpio@0 { reg = <0>; gpio-controller; #gpio-cells = <2>; interrupts = <2 IRQ_TYPE_LEVEL_HIGH>, <3 IRQ_TYPE_LEVEL_HIGH>, <4 IRQ_TYPE_LEVEL_HIGH>; interrupt-controller; }; gpio1: gpio@1 { reg = <1>; gpio-controller; #gpio-cells = <2>; interrupts = <5 IRQ_TYPE_LEVEL_HIGH>; interrupt-controller; }; gpio2: gpio@2 { reg = <2>; gpio-controller; #gpio-cells = <2>; }; gpio3: gpio@3 { reg = <3>; gpio-controller; #gpio-cells = <2>; }; gpio4: gpio@4 { reg = <4>; gpio-controller; #gpio-cells = <2>; }; gpio5: gpio@5 { reg = <5>; gpio-controller; #gpio-cells = <2>; }; gpio6: gpio@6 { reg = <6>; gpio-controller; #gpio-cells = <2>; }; gpio7: gpio@7 { reg = <7>; gpio-controller; #gpio-cells = <2>; }; smb3_pins: mux-smb3 { groups = "smb3"; function = "smb3"; }; smb4_pins: mux-smb4 { groups = "smb4"; function = "smb4"; }; smb5_pins: mux-smb5 { groups = "smb5"; function = "smb5"; }; scs1_pins: mux-scs1 { groups = "scs1"; function = "scs1"; }; scs2_pins: mux-scs2 { groups = "scs2"; function = "scs2"; }; scs3_pins: mux-scs3 { groups = "scs3"; function = "scs3"; }; smb0_pins: mux-smb0 { groups = "smb0"; function = "smb0"; }; smb1_pins: mux-smb1 { groups = "smb1"; function = "smb1"; }; smb2_pins: mux-smb2 { groups = "smb2"; function = "smb2"; }; bsp_pins: mux-bsp { groups = "bsp"; function = "bsp"; }; hsp1_pins: mux-hsp1 { groups = "hsp1"; function = "hsp1"; }; hsp2_pins: mux-hsp2 { groups = "hsp2"; function = "hsp2"; }; r1err_pins: mux-r1err { groups = "r1err"; function = "r1err"; }; r1md_pins: mux-r1md { groups = "r1md"; function = "r1md"; }; rmii2_pins: mux-rmii2 { groups = "rmii2"; function = "rmii2"; }; r2err_pins: mux-r2err { groups = "r2err"; function = "r2err"; }; r2md_pins: mux-r2md { groups = "r2md"; function = "r2md"; }; kbcc_pins: mux-kbcc { groups = "kbcc"; function = "kbcc"; }; dvo0_pins: mux-dvo0 { groups = "dvo"; function = "dvo0"; }; dvo3_pins: mux-dvo3 { groups = "dvo"; function = "dvo3"; }; clko_pins: mux-clko { groups = "clko"; function = "clko"; }; smi_pins: mux-smi { groups = "smi"; function = "smi"; }; uinc_pins: mux-uinc { groups = "uinc"; function = "uinc"; }; gspi_pins: mux-gspi { groups = "gspi"; function = "gspi"; }; mben_pins: mux-mben { groups = "mben"; function = "mben"; }; xcs2_pins: mux-xcs2 { groups = "xcs2"; function = "xcs2"; }; xcs1_pins: mux-xcs1 { groups = "xcs1"; function = "xcs1"; }; sdio_pins: mux-sdio { groups = "sdio"; function = "sdio"; }; sspi_pins: mux-sspi { groups = "sspi"; function = "sspi"; }; fi0_pins: mux-fi0 { groups = "fi0"; function = "fi0"; }; fi1_pins: mux-fi1 { groups = "fi1"; function = "fi1"; }; fi2_pins: mux-fi2 { groups = "fi2"; function = "fi2"; }; fi3_pins: mux-fi3 { groups = "fi3"; function = "fi3"; }; fi4_pins: mux-fi4 { groups = "fi4"; function = "fi4"; }; fi5_pins: mux-fi5 { groups = "fi5"; function = "fi5"; }; fi6_pins: mux-fi6 { groups = "fi6"; function = "fi6"; }; fi7_pins: mux-fi7 { groups = "fi7"; function = "fi7"; }; fi8_pins: mux-fi8 { groups = "fi8"; function = "fi8"; }; fi9_pins: mux-fi9 { groups = "fi9"; function = "fi9"; }; fi10_pins: mux-fi10 { groups = "fi10"; function = "fi10"; }; fi11_pins: mux-fi11 { groups = "fi11"; function = "fi11"; }; fi12_pins: mux-fi12 { groups = "fi12"; function = "fi12"; }; fi13_pins: mux-fi13 { groups = "fi13"; function = "fi13"; }; fi14_pins: mux-fi14 { groups = "fi14"; function = "fi14"; }; fi15_pins: mux-fi15 { groups = "fi15"; function = "fi15"; }; pwm0_pins: mux-pwm0 { groups = "pwm0"; function = "pwm0"; }; pwm1_pins: mux-pwm1 { groups = "pwm1"; function = "pwm1"; }; pwm2_pins: mux-pwm2 { groups = "pwm2"; function = "pwm2"; }; pwm3_pins: mux-pwm3 { groups = "pwm3"; function = "pwm3"; }; pwm4_pins: mux-pwm4 { groups = "pwm4"; function = "pwm4"; }; pwm5_pins: mux-pwm5 { groups = "pwm5"; function = "pwm5"; }; pwm6_pins: mux-pwm6 { groups = "pwm6"; function = "pwm6"; }; pwm7_pins: mux-pwm7 { groups = "pwm7"; function = "pwm7"; }; hg0_pins: mux-hg0 { groups = "hg0"; function = "hg0"; }; hg1_pins: mux-hg1 { groups = "hg1"; function = "hg1"; }; hg2_pins: mux-hg2 { groups = "hg2"; function = "hg2"; }; hg3_pins: mux-hg3 { groups = "hg3"; function = "hg3"; }; hg4_pins: mux-hg4 { groups = "hg4"; function = "hg4"; }; hg5_pins: mux-hg5 { groups = "hg5"; function = "hg5"; }; hg6_pins: mux-hg6 { groups = "hg6"; function = "hg6"; }; hg7_pins: mux-hg7 { groups = "hg7"; function = "hg7"; }; }; fiu: spi-controller@c8000000 { compatible = "nuvoton,wpcm450-fiu"; #address-cells = <1>; #size-cells = <0>; reg = <0xc8000000 0x1000>, <0xc0000000 0x4000000>; reg-names = "control", "memory"; clocks = <&clk 0>; nuvoton,shm = <&shm>; status = "disabled"; }; shm: syscon@c8001000 { compatible = "nuvoton,wpcm450-shm", "syscon"; reg = <0xc8001000 0x1000>; reg-io-width = <1>; }; }; };