| // 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>; |
| }; |
| }; |
| }; |