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

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

		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>;
			status = "disabled";
		};

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