| From 6b83fa5022b16aa142a68cf1d08de17bc0df3bec Mon Sep 17 00:00:00 2001 | 
 | From: David Wang <davidwang@quantatw.com> | 
 | Date: Mon, 6 Nov 2023 10:14:35 +0800 | 
 | Subject: [PATCH 01/16] arm64: dts: nuvoton: Add initial NPCM8XX source | 
 |  | 
 | --- | 
 |  arch/arm64/Kconfig.platforms                  |   11 + | 
 |  arch/arm64/boot/dts/Makefile                  |    1 + | 
 |  arch/arm64/boot/dts/nuvoton/Makefile          |    2 + | 
 |  .../dts/nuvoton/nuvoton-common-npcm8xx.dtsi   | 1754 +++++++++++++++++ | 
 |  .../boot/dts/nuvoton/nuvoton-npcm845-evb.dts  |  651 ++++++ | 
 |  .../nuvoton/nuvoton-npcm845-pincfg-evb.dtsi   |   79 + | 
 |  .../boot/dts/nuvoton/nuvoton-npcm845.dtsi     |  262 +++ | 
 |  arch/arm64/configs/defconfig                  |    3 + | 
 |  8 files changed, 2763 insertions(+) | 
 |  create mode 100644 arch/arm64/boot/dts/nuvoton/Makefile | 
 |  create mode 100644 arch/arm64/boot/dts/nuvoton/nuvoton-common-npcm8xx.dtsi | 
 |  create mode 100644 arch/arm64/boot/dts/nuvoton/nuvoton-npcm845-evb.dts | 
 |  create mode 100644 arch/arm64/boot/dts/nuvoton/nuvoton-npcm845-pincfg-evb.dtsi | 
 |  create mode 100644 arch/arm64/boot/dts/nuvoton/nuvoton-npcm845.dtsi | 
 |  | 
 | diff --git a/arch/arm64/Kconfig.platforms b/arch/arm64/Kconfig.platforms | 
 | index d7772a4c34fe..c4d858a4b13c 100644 | 
 | --- a/arch/arm64/Kconfig.platforms | 
 | +++ b/arch/arm64/Kconfig.platforms | 
 | @@ -209,6 +209,17 @@ config ARCH_MXC | 
 |  	  This enables support for the ARMv8 based SoCs in the | 
 |  	  NXP i.MX family. | 
 |   | 
 | +config ARCH_NPCM | 
 | +	bool "Nuvoton NPCM Architecture" | 
 | +	select PINCTRL | 
 | +	select GPIOLIB | 
 | +	select NPCM7XX_TIMER | 
 | +	select RESET_CONTROLLER | 
 | +	select MFD_SYSCON | 
 | +	help | 
 | +	  General support for NPCM8xx BMC (Arbel). | 
 | +	  Nuvoton NPCM8xx BMC based on the Cortex A35. | 
 | + | 
 |  config ARCH_QCOM | 
 |  	bool "Qualcomm Platforms" | 
 |  	select GPIOLIB | 
 | diff --git a/arch/arm64/boot/dts/Makefile b/arch/arm64/boot/dts/Makefile | 
 | index 639e01a4d855..5c6b1a801a79 100644 | 
 | --- a/arch/arm64/boot/dts/Makefile | 
 | +++ b/arch/arm64/boot/dts/Makefile | 
 | @@ -19,6 +19,7 @@ subdir-y += lg | 
 |  subdir-y += marvell | 
 |  subdir-y += mediatek | 
 |  subdir-y += microchip | 
 | +subdir-y += nuvoton | 
 |  subdir-y += nvidia | 
 |  subdir-y += qcom | 
 |  subdir-y += realtek | 
 | diff --git a/arch/arm64/boot/dts/nuvoton/Makefile b/arch/arm64/boot/dts/nuvoton/Makefile | 
 | new file mode 100644 | 
 | index 000000000000..a99dab90472a | 
 | --- /dev/null | 
 | +++ b/arch/arm64/boot/dts/nuvoton/Makefile | 
 | @@ -0,0 +1,2 @@ | 
 | +# SPDX-License-Identifier: GPL-2.0 | 
 | +dtb-$(CONFIG_ARCH_NPCM) += nuvoton-npcm845-evb.dtb | 
 | diff --git a/arch/arm64/boot/dts/nuvoton/nuvoton-common-npcm8xx.dtsi b/arch/arm64/boot/dts/nuvoton/nuvoton-common-npcm8xx.dtsi | 
 | new file mode 100644 | 
 | index 000000000000..9d7030e3792c | 
 | --- /dev/null | 
 | +++ b/arch/arm64/boot/dts/nuvoton/nuvoton-common-npcm8xx.dtsi | 
 | @@ -0,0 +1,1754 @@ | 
 | +// SPDX-License-Identifier: GPL-2.0 | 
 | +// Copyright (c) 2021 Nuvoton Technology tomer.maimon@nuvoton.com | 
 | + | 
 | +#include <dt-bindings/clock/nuvoton,npcm845-clk.h> | 
 | +#include <dt-bindings/interrupt-controller/arm-gic.h> | 
 | +#include <dt-bindings/interrupt-controller/irq.h> | 
 | +#include <dt-bindings/gpio/gpio.h> | 
 | + | 
 | +/ { | 
 | +	#address-cells = <2>; | 
 | +	#size-cells = <2>; | 
 | +	interrupt-parent = <&gic>; | 
 | + | 
 | +	soc { | 
 | +		#address-cells = <2>; | 
 | +		#size-cells = <2>; | 
 | +		compatible = "simple-bus"; | 
 | +		interrupt-parent = <&gic>; | 
 | +		ranges; | 
 | + | 
 | +		gcr: system-controller@f0800000 { | 
 | +			compatible = "nuvoton,npcm845-gcr", "syscon", | 
 | +				"simple-mfd"; | 
 | +			reg = <0x0 0xf0800000 0x0 0x1000>; | 
 | +		}; | 
 | + | 
 | +		rst: system-controller@f0801000 { | 
 | +			compatible = "nuvoton,npcm845-rst", "syscon"; | 
 | +			reg = <0x0 0xf0801000 0x0 0xC4>; | 
 | +		}; | 
 | + | 
 | +		fuse:fuse@f0189000 { | 
 | +			compatible = "nuvoton,npcm845-fuse", "syscon", | 
 | +				"simple-mfd"; | 
 | +			reg = <0x0 0xf0189000 0x0 0x1000>; | 
 | +		}; | 
 | + | 
 | +		gic: interrupt-controller@dfff9000 { | 
 | +			compatible = "arm,gic-400"; | 
 | +			reg = <0x0 0xdfff9000 0x0 0x1000>, | 
 | +			      <0x0 0xdfffa000 0x0 0x2000>, | 
 | +			      <0x0 0xdfffc000 0x0 0x2000>, | 
 | +			      <0x0 0xdfffe000 0x0 0x2000>; | 
 | +			interrupts = <GIC_PPI 9 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>; | 
 | +			#interrupt-cells = <3>; | 
 | +			interrupt-controller; | 
 | +			#address-cells = <0>; | 
 | +			ppi-partitions { | 
 | +				ppi_cluster0: interrupt-partition-0 { | 
 | +					affinity = <&cpu0 &cpu1 &cpu2 &cpu3>; | 
 | +				}; | 
 | +			}; | 
 | +		}; | 
 | +	}; | 
 | + | 
 | +	ahb { | 
 | +		#address-cells = <2>; | 
 | +		#size-cells = <2>; | 
 | +		compatible = "simple-bus"; | 
 | +		interrupt-parent = <&gic>; | 
 | +		ranges; | 
 | + | 
 | +		rstc: reset-controller@f0801000 { | 
 | +			compatible = "nuvoton,npcm845-reset"; | 
 | +			reg = <0x0 0xf0801000 0x0 0x78>; | 
 | +			#reset-cells = <2>; | 
 | +			nuvoton,sysgcr = <&gcr>; | 
 | +		}; | 
 | + | 
 | +		clk: clock-controller@f0801000 { | 
 | +			compatible = "nuvoton,npcm845-clk"; | 
 | +			#clock-cells = <1>; | 
 | +			reg = <0x0 0xf0801000 0x0 0x1000>; | 
 | +		}; | 
 | + | 
 | +		pcie: pcie@e1000000 { | 
 | +			compatible = "nuvoton,npcm845-pcie"; | 
 | +			device_type = "pci"; | 
 | +			reg = <0x0 0xE1000000 0x0 0x1000>, | 
 | +				<0x0 0xE8000000 0x0 0x1000>; | 
 | +			bus-range = <0x0 0xF>; | 
 | +			#address-cells = <3>; | 
 | +			#size-cells = <2>; | 
 | +			#interrupt-cells = <1>; | 
 | +			ranges = <0x01000000 0 0xe9000000 0x0 0xe9000000 0 0x01000000 | 
 | +				0x02000000 0 0xea000000 0x0 0xea000000 0 0x04000000>; | 
 | +			resets = <&rstc 0x34 0x15>; | 
 | +			interrupts = <GIC_SPI 127 IRQ_TYPE_LEVEL_HIGH>; | 
 | +			interrupt-map-mask = <0 0 0 7>; | 
 | +			interrupt-map = <0 0 0 1 &gic GIC_SPI 127 IRQ_TYPE_LEVEL_HIGH>; | 
 | +			nuvoton,sysgcr = <&gcr>; | 
 | +		}; | 
 | + | 
 | +		ehci1: usb@f0828100 { | 
 | +			compatible = "nuvoton,npcm750-ehci"; | 
 | +			reg = <0x0 0xf0828100 0x0 0xf00>; | 
 | +			interrupts = <GIC_SPI 61 IRQ_TYPE_LEVEL_HIGH>; | 
 | +			status = "disabled"; | 
 | +		}; | 
 | + | 
 | +		ehci2: usb@f082a100 { | 
 | +			compatible = "nuvoton,npcm750-ehci"; | 
 | +			reg = <0x0 0xf082a100 0x0 0xf00>; | 
 | +			interrupts = <GIC_SPI 63 IRQ_TYPE_LEVEL_HIGH>; | 
 | +			status = "disabled"; | 
 | +		}; | 
 | + | 
 | +		ohci1: usb@f0829000 { | 
 | +			compatible = "nuvoton,npcm750-ohci"; | 
 | +			reg = <0x0 0xf0829000 0x0 0x1000>; | 
 | +			interrupts = <GIC_SPI 62 IRQ_TYPE_LEVEL_HIGH>; | 
 | +			status = "disabled"; | 
 | +		}; | 
 | + | 
 | +		ohci2: usb@f082b000 { | 
 | +			compatible = "nuvoton,npcm750-ohci"; | 
 | +			reg = <0x0 0xf082b000 0x0 0x1000>; | 
 | +			interrupts = <GIC_SPI 64 IRQ_TYPE_LEVEL_HIGH>; | 
 | +			status = "disabled"; | 
 | +		}; | 
 | + | 
 | +		sdhci: sdhci@f0842000 { | 
 | +			compatible = "nuvoton,npcm845-sdhci"; | 
 | +			reg = <0x0 0xf0842000 0x0 0x100>; | 
 | +			interrupts = <GIC_SPI 26 IRQ_TYPE_LEVEL_HIGH>; | 
 | +			clocks =  <&clk NPCM8XX_CLK_AHB>; | 
 | +			clock-names = "clk_mmc"; | 
 | +			pinctrl-names = "default"; | 
 | +			pinctrl-0 = <&mmc8_pins | 
 | +				     &mmc_pins>; | 
 | +			status = "disabled"; | 
 | +		}; | 
 | + | 
 | +		fiu0: spi@fb000000 { | 
 | +			compatible = "nuvoton,npcm845-fiu"; | 
 | +			#address-cells = <1>; | 
 | +			#size-cells = <0>; | 
 | +			reg = <0x0 0xfb000000 0x0 0x1000>, | 
 | +			<0x0 0x80000000 0x0 0x10000000>; | 
 | +			reg-names = "control", "memory"; | 
 | +			clocks = <&clk NPCM8XX_CLK_SPI0>; | 
 | +			clock-names = "clk_ahb"; | 
 | +			status = "disabled"; | 
 | +		}; | 
 | + | 
 | +		fiu1: spi@fb002000 { | 
 | +			compatible = "nuvoton,npcm845-fiu"; | 
 | +			#address-cells = <1>; | 
 | +			#size-cells = <0>; | 
 | +			reg = <0x0 0xfb002000 0x0 0x1000>, | 
 | +			<0x0 0x90000000 0x0 0x4000000>; | 
 | +			reg-names = "control", "memory"; | 
 | +			clocks = <&clk NPCM8XX_CLK_SPI1>; | 
 | +			clock-names = "clk_spi1"; | 
 | +			pinctrl-names = "default"; | 
 | +			pinctrl-0 = <&spi1_pins>; | 
 | +			status = "disabled"; | 
 | +		}; | 
 | + | 
 | +		fiu3: spi@c0000000 { | 
 | +			compatible = "nuvoton,npcm845-fiu"; | 
 | +			#address-cells = <1>; | 
 | +			#size-cells = <0>; | 
 | +			reg = <0x0 0xc0000000 0x0 0x1000>, | 
 | +			<0x0 0xA0000000 0x0 0x20000000>; | 
 | +			reg-names = "control", "memory"; | 
 | +			clocks = <&clk NPCM8XX_CLK_SPI3>; | 
 | +			clock-names = "clk_spi3"; | 
 | +			pinctrl-names = "default"; | 
 | +			pinctrl-0 = <&spi3_pins>; | 
 | +			status = "disabled"; | 
 | +		}; | 
 | + | 
 | +		fiux: spi@fb001000 { | 
 | +			compatible = "nuvoton,npcm845-fiu"; | 
 | +			#address-cells = <1>; | 
 | +			#size-cells = <0>; | 
 | +			reg = <0x0 0xfb001000 0x0 0x1000>, | 
 | +			<0x0 0xf8000000 0x0 0x2000000>; | 
 | +			reg-names = "control", "memory"; | 
 | +			clocks = <&clk NPCM8XX_CLK_SPIX>; | 
 | +			clock-names = "clk_ahb"; | 
 | +			status = "disabled"; | 
 | +		}; | 
 | + | 
 | +		pcimbox: pcimbox@f0848000 { | 
 | +			compatible = "nuvoton,npcm845-pci-mbox", "nuvoton,npcm750-pci-mbox", | 
 | +					"simple-mfd", "syscon"; | 
 | +			reg = <0x0 0xf084C000 0x0 0x8 | 
 | +				0x0 0xf0848000 0x0 0x3F00>; | 
 | +			interrupts = <GIC_SPI 105 IRQ_TYPE_LEVEL_HIGH>; | 
 | +		}; | 
 | + | 
 | +		vcd: vcd@f0810000 { | 
 | +			compatible = "nuvoton,npcm845-vcd"; | 
 | +			reg = <0x0 0xf0810000 0x0 0x10000>; | 
 | +			interrupts = <GIC_SPI 22 IRQ_TYPE_LEVEL_HIGH>; | 
 | +			resets = <&rstc 0x24 14>; | 
 | +			nuvoton,sysgcr = <&gcr>; | 
 | +			nuvoton,sysgfxi = <&gfxi>; | 
 | +			nuvoton,ece = <&ece>; | 
 | +			status = "disabled"; | 
 | +		}; | 
 | + | 
 | +		ece: video-codec@f0820000 { | 
 | +			compatible = "nuvoton,npcm845-ece"; | 
 | +			reg = <0x0 0xf0820000 0x0 0x2000>; | 
 | +			interrupts = <GIC_SPI 24 IRQ_TYPE_LEVEL_HIGH>; | 
 | +			resets = <&rstc 0x24 13>; | 
 | +			status = "disabled"; | 
 | +		}; | 
 | + | 
 | +		tip_mbox: mailbox@f080d000 { | 
 | +			compatible = "nuvoton,npcm845-mbox"; | 
 | +			reg = <0 0xf080d000 0 0x1000>; | 
 | +			interrupts = <GIC_SPI 2 IRQ_TYPE_LEVEL_HIGH>; | 
 | +			#mbox-cells = <2>; | 
 | +			status = "disabled"; | 
 | +		}; | 
 | + | 
 | +		apb { | 
 | +			#address-cells = <1>; | 
 | +			#size-cells = <1>; | 
 | +			compatible = "simple-bus"; | 
 | +			interrupt-parent = <&gic>; | 
 | +			ranges = <0x0 0x0 0xf0000000 0x00300000>, | 
 | +				<0xfff00000 0x0 0xfff00000 0x00016000>, | 
 | +				<0xf0800000 0x0 0xf0800000 0x00060000>; | 
 | + | 
 | +			lpc_kcs: lpc_kcs@7000 { | 
 | +				compatible = "nuvoton,npcm845-lpc-kcs", | 
 | +						"simple-mfd", "syscon"; | 
 | +				reg = <0x7000 0x40>; | 
 | +				reg-io-width = <1>; | 
 | + | 
 | +				#address-cells = <1>; | 
 | +				#size-cells = <1>; | 
 | +				ranges = <0x0 0x7000 0x40>; | 
 | + | 
 | +				kcs1: kcs1@0 { | 
 | +					compatible = "nuvoton,npcm845-kcs-bmc", "nuvoton,npcm750-kcs-bmc"; | 
 | +					reg = <0x0 0x40>; | 
 | +					interrupts = <GIC_SPI 9 IRQ_TYPE_LEVEL_HIGH>; | 
 | +					kcs_chan = <1>; | 
 | +					status = "disabled"; | 
 | +				}; | 
 | + | 
 | +				kcs2: kcs2@0 { | 
 | +					compatible = "nuvoton,npcm845-kcs-bmc", "nuvoton,npcm750-kcs-bmc"; | 
 | +					reg = <0x0 0x40>; | 
 | +					interrupts = <GIC_SPI 9 IRQ_TYPE_LEVEL_HIGH>; | 
 | +					kcs_chan = <2>; | 
 | +					status = "disabled"; | 
 | +				}; | 
 | + | 
 | +				kcs3: kcs3@0 { | 
 | +					compatible = "nuvoton,npcm845-kcs-bmc", "nuvoton,npcm750-kcs-bmc"; | 
 | +					reg = <0x0 0x40>; | 
 | +					interrupts = <GIC_SPI 9 IRQ_TYPE_LEVEL_HIGH>; | 
 | +					kcs_chan = <3>; | 
 | +					status = "disabled"; | 
 | +				}; | 
 | +			}; | 
 | + | 
 | +			lpc_host: lpc_host@7000 { | 
 | +				compatible = "nuvoton,npcm845-lpc-host", | 
 | +						"simple-mfd", "syscon"; | 
 | +				reg = <0x7000 0x60>; | 
 | + | 
 | +				#address-cells = <1>; | 
 | +				#size-cells = <1>; | 
 | +				ranges = <0x0 0x7000 0x60>; | 
 | + | 
 | +				lpc_bpc: lpc_bpc@40 { | 
 | +					compatible = "nuvoton,npcm845-lpc-bpc", "nuvoton,npcm750-lpc-bpc"; | 
 | +					reg = <0x40 0x20>; | 
 | +					interrupts = <GIC_SPI 9 IRQ_TYPE_LEVEL_HIGH>; | 
 | +					status = "disabled"; | 
 | +				}; | 
 | +			}; | 
 | + | 
 | +			espi: espi@9f000 { | 
 | +				compatible = "nuvoton,npcm845-espi", | 
 | +						"simple-mfd", "syscon"; | 
 | +				reg = <0x9f000 0x1000>; | 
 | +				vw_gpio: vw_gpio { | 
 | +					compatible = "nuvoton,npcm845-espi-vwgpio"; | 
 | +					interrupts = <GIC_SPI 18 IRQ_TYPE_LEVEL_HIGH>; | 
 | +					gpio-controller; | 
 | +					#gpio-cells = <2>; | 
 | +					status = "disabled"; | 
 | +				}; | 
 | +			}; | 
 | + | 
 | +			peci: peci-controller@100000 { | 
 | +				compatible = "nuvoton,npcm845-peci"; | 
 | +				reg = <0x100000 0x1000>; | 
 | +				interrupts = <GIC_SPI 6 IRQ_TYPE_LEVEL_HIGH>; | 
 | +				clocks = <&clk NPCM8XX_CLK_APB3>; | 
 | +				nuvoton,sysgcr = <&gcr>; | 
 | +				status = "disabled"; | 
 | +			}; | 
 | + | 
 | +			pspi: spi@201000 { | 
 | +				compatible = "nuvoton,npcm845-pspi"; | 
 | +				reg = <0x201000 0x1000>; | 
 | +				pinctrl-names = "default"; | 
 | +				pinctrl-0 = <&pspi_pins>; | 
 | +				#address-cells = <1>; | 
 | +				#size-cells = <0>; | 
 | +				interrupts = <GIC_SPI 28 IRQ_TYPE_LEVEL_HIGH>; | 
 | +				clocks = <&clk NPCM8XX_CLK_APB5>; | 
 | +				clock-names = "clk_apb5"; | 
 | +				resets = <&rstc 0x24 23>; | 
 | +				status = "disabled"; | 
 | +			}; | 
 | + | 
 | +			jtm1: jtm@208000 { | 
 | +				compatible = "nuvoton,npcm845-jtm"; | 
 | +				reg = <0x208000 0x1000>; | 
 | +				pinctrl-names = "default"; | 
 | +				pinctrl-0 = <&jm1_pins>; | 
 | +				#address-cells = <1>; | 
 | +				#size-cells = <0>; | 
 | +				interrupts = <GIC_SPI 188 IRQ_TYPE_LEVEL_HIGH>; | 
 | +				clocks = <&clk NPCM8XX_CLK_APB5>; | 
 | +				clock-names = "clk_apb5"; | 
 | +				resets = <&rstc 0x74 29>; | 
 | +				status = "disabled"; | 
 | +			}; | 
 | + | 
 | +			jtm2: jtm@209000 { | 
 | +				compatible = "nuvoton,npcm845-jtm"; | 
 | +				reg = <0x209000 0x1000>; | 
 | +				pinctrl-names = "default"; | 
 | +				pinctrl-0 = <&jm2_pins>; | 
 | +				#address-cells = <1>; | 
 | +				#size-cells = <0>; | 
 | +				interrupts = <GIC_SPI 189 IRQ_TYPE_LEVEL_HIGH>; | 
 | +				clocks = <&clk NPCM8XX_CLK_APB5>; | 
 | +				clock-names = "clk_apb5"; | 
 | +				resets = <&rstc 0x74 30>; | 
 | +				status = "disabled"; | 
 | +			}; | 
 | + | 
 | +			timer0: timer@8000 { | 
 | +				compatible = "nuvoton,npcm845-timer"; | 
 | +				interrupts = <GIC_SPI 32 IRQ_TYPE_LEVEL_HIGH>; | 
 | +				reg = <0x8000 0x1C>; | 
 | +				clocks = <&clk NPCM8XX_CLK_REFCLK>; | 
 | +				clock-names = "refclk"; | 
 | +			}; | 
 | + | 
 | +			serial0: serial@0 { | 
 | +				compatible = "nuvoton,npcm845-uart", "nuvoton,npcm750-uart"; | 
 | +				reg = <0x0 0x1000>; | 
 | +				clocks = <&clk NPCM8XX_CLK_UART>; | 
 | +				interrupts = <GIC_SPI 192 IRQ_TYPE_LEVEL_HIGH>; | 
 | +				reg-shift = <2>; | 
 | +				status = "disabled"; | 
 | +			}; | 
 | + | 
 | +			serial1: serial@1000 { | 
 | +				compatible = "nuvoton,npcm845-uart", "nuvoton,npcm750-uart"; | 
 | +				reg = <0x1000 0x1000>; | 
 | +				clocks = <&clk NPCM8XX_CLK_UART>; | 
 | +				interrupts = <GIC_SPI 193 IRQ_TYPE_LEVEL_HIGH>; | 
 | +				reg-shift = <2>; | 
 | +				status = "disabled"; | 
 | +			}; | 
 | + | 
 | +			serial2: serial@2000 { | 
 | +				compatible = "nuvoton,npcm845-uart", "nuvoton,npcm750-uart"; | 
 | +				reg = <0x2000 0x1000>; | 
 | +				clocks = <&clk NPCM8XX_CLK_UART>; | 
 | +				interrupts = <GIC_SPI 194 IRQ_TYPE_LEVEL_HIGH>; | 
 | +				reg-shift = <2>; | 
 | +				status = "disabled"; | 
 | +			}; | 
 | + | 
 | +			serial3: serial@3000 { | 
 | +				compatible = "nuvoton,npcm845-uart", "nuvoton,npcm750-uart"; | 
 | +				reg = <0x3000 0x1000>; | 
 | +				clocks = <&clk NPCM8XX_CLK_UART>; | 
 | +				interrupts = <GIC_SPI 195 IRQ_TYPE_LEVEL_HIGH>; | 
 | +				reg-shift = <2>; | 
 | +				status = "disabled"; | 
 | +			}; | 
 | + | 
 | +			serial4: serial@4000 { | 
 | +				compatible = "nuvoton,npcm845-uart", "nuvoton,npcm750-uart"; | 
 | +				reg = <0x4000 0x1000>; | 
 | +				clocks = <&clk NPCM8XX_CLK_UART2>; | 
 | +				interrupts = <GIC_SPI 196 IRQ_TYPE_LEVEL_HIGH>; | 
 | +				reg-shift = <2>; | 
 | +				pinctrl-names = "default"; | 
 | +				pinctrl-0 = <&bu4_pins>; | 
 | +				status = "disabled"; | 
 | +			}; | 
 | + | 
 | +			serial5: serial@5000 { | 
 | +				compatible = "nuvoton,npcm845-uart", "nuvoton,npcm750-uart"; | 
 | +				reg = <0x5000 0x1000>; | 
 | +				clocks = <&clk NPCM8XX_CLK_UART2>; | 
 | +				interrupts = <GIC_SPI 197 IRQ_TYPE_LEVEL_HIGH>; | 
 | +				reg-shift = <2>; | 
 | +				pinctrl-names = "default"; | 
 | +				pinctrl-0 = <&bu5_pins>; | 
 | +				status = "disabled"; | 
 | +			}; | 
 | + | 
 | +			serial6: serial@6000 { | 
 | +				compatible = "nuvoton,npcm845-uart", "nuvoton,npcm750-uart"; | 
 | +				reg = <0x6000 0x1000>; | 
 | +				clocks = <&clk NPCM8XX_CLK_UART2>; | 
 | +				interrupts = <GIC_SPI 198 IRQ_TYPE_LEVEL_HIGH>; | 
 | +				reg-shift = <2>; | 
 | +				pinctrl-names = "default"; | 
 | +				pinctrl-0 = <&bu6_pins>; | 
 | +				status = "disabled"; | 
 | +			}; | 
 | + | 
 | +			rng: rng@b000 { | 
 | +				compatible = "nuvoton,npcm845-rng"; | 
 | +				reg = <0xb000 0x8>; | 
 | +				clocks = <&clk NPCM8XX_CLK_APB1>; | 
 | +				status = "disabled"; | 
 | +			}; | 
 | + | 
 | +			adc: adc@c000 { | 
 | +				compatible = "nuvoton,npcm845-adc"; | 
 | +				reg = <0xC000 0x8>; | 
 | +				interrupts = <GIC_SPI 0 IRQ_TYPE_LEVEL_HIGH>; | 
 | +				clocks = <&clk NPCM8XX_CLK_ADC>; | 
 | +				resets = <&rstc 0x20 27>; | 
 | +				syscon = <&fuse>; | 
 | +				status = "disabled"; | 
 | +			}; | 
 | + | 
 | +			watchdog0: watchdog@801c { | 
 | +				compatible = "nuvoton,npcm845-wdt"; | 
 | +				interrupts = <GIC_SPI 47 IRQ_TYPE_LEVEL_HIGH>; | 
 | +				reg = <0x801c 0x4>; | 
 | +				status = "disabled"; | 
 | +				clocks = <&clk NPCM8XX_CLK_REFCLK>; | 
 | +				syscon = <&gcr>; | 
 | +			}; | 
 | + | 
 | +			watchdog1: watchdog@901c { | 
 | +				compatible = "nuvoton,npcm845-wdt"; | 
 | +				interrupts = <GIC_SPI 48 IRQ_TYPE_LEVEL_HIGH>; | 
 | +				reg = <0x901c 0x4>; | 
 | +				status = "disabled"; | 
 | +				clocks = <&clk NPCM8XX_CLK_REFCLK>; | 
 | +				syscon = <&gcr>; | 
 | +			}; | 
 | + | 
 | +			watchdog2: watchdog@a01c { | 
 | +				compatible = "nuvoton,npcm845-wdt"; | 
 | +				interrupts = <GIC_SPI 49 IRQ_TYPE_LEVEL_HIGH>; | 
 | +				reg = <0xa01c 0x4>; | 
 | +				status = "disabled"; | 
 | +				clocks = <&clk NPCM8XX_CLK_REFCLK>; | 
 | +				syscon = <&gcr>; | 
 | +			}; | 
 | + | 
 | +			tmps: tmps@188000 { | 
 | +				compatible = "nuvoton,npcm845-thermal"; | 
 | +				interrupts = <GIC_SPI 4 IRQ_TYPE_LEVEL_HIGH>; | 
 | +				clocks = <&clk NPCM8XX_CLK_APB4>; | 
 | +				reg = <0x188000 0x5C>; | 
 | +				#thermal-sensor-cells = <1>; | 
 | +			}; | 
 | + | 
 | +			sgpio1: sgpio@101000 { | 
 | +				compatible = "nuvoton,npcm845-sgpio"; | 
 | +				reg = <0x101000 0x200>; | 
 | +				clocks = <&clk NPCM8XX_CLK_APB3>; | 
 | +				bus-frequency = <8000000>; | 
 | +				interrupts = <GIC_SPI 19 IRQ_TYPE_LEVEL_HIGH>; | 
 | +				gpio-controller; | 
 | +				#gpio-cells = <2>; | 
 | +				pinctrl-names = "default"; | 
 | +				pinctrl-0 = <&iox1_pins>; | 
 | +				nuvoton,input-ngpios = <64>; | 
 | +				nuvoton,output-ngpios = <64>; | 
 | +				status = "disabled"; | 
 | +			}; | 
 | + | 
 | +			sgpio2: sgpio@102000 { | 
 | +				compatible = "nuvoton,npcm845-sgpio"; | 
 | +				reg = <0x102000 0x200>; | 
 | +				clocks = <&clk NPCM8XX_CLK_APB3>; | 
 | +				bus-frequency = <8000000>; | 
 | +				interrupts = <GIC_SPI 20 IRQ_TYPE_LEVEL_HIGH>; | 
 | +				gpio-controller; | 
 | +				#gpio-cells = <2>; | 
 | +				pinctrl-names = "default"; | 
 | +				pinctrl-0 = <&iox2_pins>; | 
 | +				nuvoton,input-ngpios = <64>; | 
 | +				nuvoton,output-ngpios = <64>; | 
 | +				status = "disabled"; | 
 | +			}; | 
 | + | 
 | +			pwm_fan:pwm-fan-controller@103000 { | 
 | +				compatible = "nuvoton,npcm845-pwm-fan"; | 
 | +				reg = <0x103000 0x3000>, | 
 | +					<0x180000 0x8000>; | 
 | +				reg-names = "pwm", "fan"; | 
 | +				clocks = <&clk NPCM8XX_CLK_APB3>, | 
 | +					<&clk NPCM8XX_CLK_APB4>; | 
 | +				clock-names = "pwm","fan"; | 
 | +				interrupts = <GIC_SPI 96 IRQ_TYPE_LEVEL_HIGH>, | 
 | +						<GIC_SPI 97 IRQ_TYPE_LEVEL_HIGH>, | 
 | +						<GIC_SPI 98 IRQ_TYPE_LEVEL_HIGH>, | 
 | +						<GIC_SPI 99 IRQ_TYPE_LEVEL_HIGH>, | 
 | +						<GIC_SPI 100 IRQ_TYPE_LEVEL_HIGH>, | 
 | +						<GIC_SPI 101 IRQ_TYPE_LEVEL_HIGH>, | 
 | +						<GIC_SPI 102 IRQ_TYPE_LEVEL_HIGH>, | 
 | +						<GIC_SPI 103 IRQ_TYPE_LEVEL_HIGH>; | 
 | +				pinctrl-names = "default"; | 
 | +				pinctrl-0 = <&pwm0_pins &pwm1_pins | 
 | +						&pwm2_pins &pwm3_pins | 
 | +						&pwm4_pins &pwm5_pins | 
 | +						&pwm6_pins &pwm7_pins | 
 | +						&pwm8_pins &pwm9_pins | 
 | +						&pwm10_pins &pwm11_pins | 
 | +						&fanin0_pins &fanin1_pins | 
 | +						&fanin2_pins &fanin3_pins | 
 | +						&fanin4_pins &fanin5_pins | 
 | +						&fanin6_pins &fanin7_pins | 
 | +						&fanin8_pins &fanin9_pins | 
 | +						&fanin10_pins &fanin11_pins | 
 | +						&fanin12_pins &fanin13_pins | 
 | +						&fanin14_pins &fanin15_pins>; | 
 | +				status = "disabled"; | 
 | +			}; | 
 | + | 
 | +			i3c0: i3c@fff10000 { | 
 | +				compatible = "silvaco,i3c-master"; | 
 | +				reg = <0xfff10000 0x1000>, | 
 | +				      <0xf0850000 0x1000>, | 
 | +				      <0xf0800300 0x4>; | 
 | +				pinctrl-names = "default"; | 
 | +				pinctrl-0 = <&i3c0_pins>; | 
 | +				clocks = <&clk NPCM8XX_CLK_AHB>, <&clk NPCM8XX_CLK_RCP>, | 
 | +					<&clk NPCM8XX_CLK_REFCLK>; | 
 | +				clock-names = "pclk", "fast_clk", "slow_clk"; | 
 | +				interrupts = <GIC_SPI 224 IRQ_TYPE_LEVEL_HIGH>; | 
 | +				#address-cells = <3>; | 
 | +				#size-cells = <0>; | 
 | +				dma-mux = <6>; | 
 | +				status = "disabled"; | 
 | +			}; | 
 | + | 
 | +			i3c1: i3c@fff11000 { | 
 | +				compatible = "silvaco,i3c-master"; | 
 | +				reg = <0xfff11000 0x1000>; | 
 | +				pinctrl-names = "default"; | 
 | +				pinctrl-0 = <&i3c1_pins>; | 
 | +				clocks = <&clk NPCM8XX_CLK_AHB>, <&clk NPCM8XX_CLK_RCP>, | 
 | +					<&clk NPCM8XX_CLK_REFCLK>; | 
 | +				clock-names = "pclk", "fast_clk", "slow_clk"; | 
 | +				interrupts = <GIC_SPI 225 IRQ_TYPE_LEVEL_HIGH>; | 
 | +				#address-cells = <3>; | 
 | +				#size-cells = <0>; | 
 | +				status = "disabled"; | 
 | +			}; | 
 | + | 
 | +			i3c2: i3c@fff12000 { | 
 | +				compatible = "silvaco,i3c-master"; | 
 | +				reg = <0xfff12000 0x1000>; | 
 | +				pinctrl-names = "default"; | 
 | +				pinctrl-0 = <&i3c2_pins>; | 
 | +				clocks = <&clk NPCM8XX_CLK_AHB>, <&clk NPCM8XX_CLK_RCP>, | 
 | +					<&clk NPCM8XX_CLK_REFCLK>; | 
 | +				clock-names = "pclk", "fast_clk", "slow_clk"; | 
 | +				interrupts = <GIC_SPI 226 IRQ_TYPE_LEVEL_HIGH>; | 
 | +				#address-cells = <3>; | 
 | +				#size-cells = <0>; | 
 | +				status = "disabled"; | 
 | +			}; | 
 | + | 
 | +			i3c3: i3c@fff13000 { | 
 | +				compatible = "silvaco,i3c-master"; | 
 | +				reg = <0xfff13000 0x1000>; | 
 | +				pinctrl-names = "default"; | 
 | +				pinctrl-0 = <&i3c3_pins>; | 
 | +				clocks = <&clk NPCM8XX_CLK_AHB>, <&clk NPCM8XX_CLK_RCP>, | 
 | +					<&clk NPCM8XX_CLK_REFCLK>; | 
 | +				clock-names = "pclk", "fast_clk", "slow_clk"; | 
 | +				interrupts = <GIC_SPI 227 IRQ_TYPE_LEVEL_HIGH>; | 
 | +				#address-cells = <3>; | 
 | +				#size-cells = <0>; | 
 | +				status = "disabled"; | 
 | +			}; | 
 | + | 
 | +			i3c4: i3c@fff14000 { | 
 | +				compatible = "silvaco,i3c-master"; | 
 | +				reg = <0xfff14000 0x1000>; | 
 | +				pinctrl-names = "default"; | 
 | +				pinctrl-0 = <&i3c4_pins>; | 
 | +				clocks = <&clk NPCM8XX_CLK_AHB>, <&clk NPCM8XX_CLK_RCP>, | 
 | +					<&clk NPCM8XX_CLK_REFCLK>; | 
 | +				clock-names = "pclk", "fast_clk", "slow_clk"; | 
 | +				interrupts = <GIC_SPI 228 IRQ_TYPE_LEVEL_HIGH>; | 
 | +				#address-cells = <3>; | 
 | +				#size-cells = <0>; | 
 | +				status = "disabled"; | 
 | +			}; | 
 | + | 
 | +			i3c5: i3c@fff15000 { | 
 | +				compatible = "silvaco,i3c-master"; | 
 | +				reg = <0xfff15000 0x1000>; | 
 | +				pinctrl-names = "default"; | 
 | +				pinctrl-0 = <&i3c5_pins>; | 
 | +				clocks = <&clk NPCM8XX_CLK_AHB>, <&clk NPCM8XX_CLK_RCP>, | 
 | +					<&clk NPCM8XX_CLK_REFCLK>; | 
 | +				clock-names = "pclk", "fast_clk", "slow_clk"; | 
 | +				interrupts = <GIC_SPI 229 IRQ_TYPE_LEVEL_HIGH>; | 
 | +				#address-cells = <3>; | 
 | +				#size-cells = <0>; | 
 | +				status = "disabled"; | 
 | +			}; | 
 | + | 
 | +			i2c0: i2c@80000 { | 
 | +				reg = <0x80000 0x1000>; | 
 | +				compatible = "nuvoton,npcm845-i2c"; | 
 | +				#address-cells = <1>; | 
 | +				#size-cells = <0>; | 
 | +				clocks = <&clk NPCM8XX_CLK_APB2>; | 
 | +				clock-frequency = <100000>; | 
 | +				interrupts = <GIC_SPI 128 IRQ_TYPE_LEVEL_HIGH>; | 
 | +				pinctrl-names = "default"; | 
 | +				pinctrl-0 = <&smb0_pins>; | 
 | +				nuvoton,sys-mgr = <&gcr>; | 
 | +				status = "disabled"; | 
 | +			}; | 
 | + | 
 | +			i2c1: i2c@81000 { | 
 | +				reg = <0x81000 0x1000>; | 
 | +				compatible = "nuvoton,npcm845-i2c"; | 
 | +				#address-cells = <1>; | 
 | +				#size-cells = <0>; | 
 | +				clocks = <&clk NPCM8XX_CLK_APB2>; | 
 | +				clock-frequency = <100000>; | 
 | +				interrupts = <GIC_SPI 129 IRQ_TYPE_LEVEL_HIGH>; | 
 | +				pinctrl-names = "default"; | 
 | +				pinctrl-0 = <&smb1_pins>; | 
 | +				nuvoton,sys-mgr = <&gcr>; | 
 | +				status = "disabled"; | 
 | +			}; | 
 | + | 
 | +			i2c2: i2c@82000 { | 
 | +				reg = <0x82000 0x1000>; | 
 | +				compatible = "nuvoton,npcm845-i2c"; | 
 | +				#address-cells = <1>; | 
 | +				#size-cells = <0>; | 
 | +				clocks = <&clk NPCM8XX_CLK_APB2>; | 
 | +				clock-frequency = <100000>; | 
 | +				interrupts = <GIC_SPI 130 IRQ_TYPE_LEVEL_HIGH>; | 
 | +				pinctrl-names = "default"; | 
 | +				pinctrl-0 = <&smb2_pins>; | 
 | +				nuvoton,sys-mgr = <&gcr>; | 
 | +				status = "disabled"; | 
 | +			}; | 
 | + | 
 | +			i2c3: i2c@83000 { | 
 | +				reg = <0x83000 0x1000>; | 
 | +				compatible = "nuvoton,npcm845-i2c"; | 
 | +				#address-cells = <1>; | 
 | +				#size-cells = <0>; | 
 | +				clocks = <&clk NPCM8XX_CLK_APB2>; | 
 | +				clock-frequency = <100000>; | 
 | +				interrupts = <GIC_SPI 131 IRQ_TYPE_LEVEL_HIGH>; | 
 | +				pinctrl-names = "default"; | 
 | +				pinctrl-0 = <&smb3_pins>; | 
 | +				nuvoton,sys-mgr = <&gcr>; | 
 | +				status = "disabled"; | 
 | +			}; | 
 | + | 
 | +			i2c4: i2c@84000 { | 
 | +				reg = <0x84000 0x1000>; | 
 | +				compatible = "nuvoton,npcm845-i2c"; | 
 | +				#address-cells = <1>; | 
 | +				#size-cells = <0>; | 
 | +				clocks = <&clk NPCM8XX_CLK_APB2>; | 
 | +				clock-frequency = <100000>; | 
 | +				interrupts = <GIC_SPI 132 IRQ_TYPE_LEVEL_HIGH>; | 
 | +				pinctrl-names = "default"; | 
 | +				pinctrl-0 = <&smb4_pins>; | 
 | +				nuvoton,sys-mgr = <&gcr>; | 
 | +				status = "disabled"; | 
 | +			}; | 
 | + | 
 | +			i2c5: i2c@85000 { | 
 | +				reg = <0x85000 0x1000>; | 
 | +				compatible = "nuvoton,npcm845-i2c"; | 
 | +				#address-cells = <1>; | 
 | +				#size-cells = <0>; | 
 | +				clocks = <&clk NPCM8XX_CLK_APB2>; | 
 | +				clock-frequency = <100000>; | 
 | +				interrupts = <GIC_SPI 133 IRQ_TYPE_LEVEL_HIGH>; | 
 | +				pinctrl-names = "default"; | 
 | +				pinctrl-0 = <&smb5_pins>; | 
 | +				nuvoton,sys-mgr = <&gcr>; | 
 | +				status = "disabled"; | 
 | +			}; | 
 | + | 
 | +			i2c6: i2c@86000 { | 
 | +				reg = <0x86000 0x1000>; | 
 | +				compatible = "nuvoton,npcm845-i2c"; | 
 | +				#address-cells = <1>; | 
 | +				#size-cells = <0>; | 
 | +				clocks = <&clk NPCM8XX_CLK_APB2>; | 
 | +				clock-frequency = <100000>; | 
 | +				interrupts = <GIC_SPI 134 IRQ_TYPE_LEVEL_HIGH>; | 
 | +				pinctrl-names = "default"; | 
 | +				pinctrl-0 = <&smb6_pins>; | 
 | +				nuvoton,sys-mgr = <&gcr>; | 
 | +				status = "disabled"; | 
 | +			}; | 
 | + | 
 | +			i2c7: i2c@87000 { | 
 | +				reg = <0x87000 0x1000>; | 
 | +				compatible = "nuvoton,npcm845-i2c"; | 
 | +				#address-cells = <1>; | 
 | +				#size-cells = <0>; | 
 | +				clocks = <&clk NPCM8XX_CLK_APB2>; | 
 | +				clock-frequency = <100000>; | 
 | +				interrupts = <GIC_SPI 135 IRQ_TYPE_LEVEL_HIGH>; | 
 | +				pinctrl-names = "default"; | 
 | +				pinctrl-0 = <&smb7_pins>; | 
 | +				nuvoton,sys-mgr = <&gcr>; | 
 | +				status = "disabled"; | 
 | +			}; | 
 | + | 
 | +			i2c8: i2c@88000 { | 
 | +				reg = <0x88000 0x1000>; | 
 | +				compatible = "nuvoton,npcm845-i2c"; | 
 | +				#address-cells = <1>; | 
 | +				#size-cells = <0>; | 
 | +				clocks = <&clk NPCM8XX_CLK_APB2>; | 
 | +				clock-frequency = <100000>; | 
 | +				interrupts = <GIC_SPI 136 IRQ_TYPE_LEVEL_HIGH>; | 
 | +				pinctrl-names = "default"; | 
 | +				pinctrl-0 = <&smb8_pins>; | 
 | +				nuvoton,sys-mgr = <&gcr>; | 
 | +				status = "disabled"; | 
 | +			}; | 
 | + | 
 | +			i2c9: i2c@89000 { | 
 | +				reg = <0x89000 0x1000>; | 
 | +				compatible = "nuvoton,npcm845-i2c"; | 
 | +				#address-cells = <1>; | 
 | +				#size-cells = <0>; | 
 | +				clocks = <&clk NPCM8XX_CLK_APB2>; | 
 | +				clock-frequency = <100000>; | 
 | +				interrupts = <GIC_SPI 137 IRQ_TYPE_LEVEL_HIGH>; | 
 | +				pinctrl-names = "default"; | 
 | +				pinctrl-0 = <&smb9_pins>; | 
 | +				nuvoton,sys-mgr = <&gcr>; | 
 | +				status = "disabled"; | 
 | +			}; | 
 | + | 
 | +			i2c10: i2c@8a000 { | 
 | +				reg = <0x8a000 0x1000>; | 
 | +				compatible = "nuvoton,npcm845-i2c"; | 
 | +				#address-cells = <1>; | 
 | +				#size-cells = <0>; | 
 | +				clocks = <&clk NPCM8XX_CLK_APB2>; | 
 | +				clock-frequency = <100000>; | 
 | +				interrupts = <GIC_SPI 138 IRQ_TYPE_LEVEL_HIGH>; | 
 | +				pinctrl-names = "default"; | 
 | +				pinctrl-0 = <&smb10_pins>; | 
 | +				nuvoton,sys-mgr = <&gcr>; | 
 | +				status = "disabled"; | 
 | +			}; | 
 | + | 
 | +			i2c11: i2c@8b000 { | 
 | +				reg = <0x8b000 0x1000>; | 
 | +				compatible = "nuvoton,npcm845-i2c"; | 
 | +				#address-cells = <1>; | 
 | +				#size-cells = <0>; | 
 | +				clocks = <&clk NPCM8XX_CLK_APB2>; | 
 | +				clock-frequency = <100000>; | 
 | +				interrupts = <GIC_SPI 139 IRQ_TYPE_LEVEL_HIGH>; | 
 | +				pinctrl-names = "default"; | 
 | +				pinctrl-0 = <&smb11_pins>; | 
 | +				nuvoton,sys-mgr = <&gcr>; | 
 | +				status = "disabled"; | 
 | +			}; | 
 | + | 
 | +			i2c12: i2c@8c000 { | 
 | +				reg = <0x8c000 0x1000>; | 
 | +				compatible = "nuvoton,npcm845-i2c"; | 
 | +				#address-cells = <1>; | 
 | +				#size-cells = <0>; | 
 | +				clocks = <&clk NPCM8XX_CLK_APB2>; | 
 | +				clock-frequency = <100000>; | 
 | +				interrupts = <GIC_SPI 140 IRQ_TYPE_LEVEL_HIGH>; | 
 | +				pinctrl-names = "default"; | 
 | +				pinctrl-0 = <&smb12_pins>; | 
 | +				nuvoton,sys-mgr = <&gcr>; | 
 | +				status = "disabled"; | 
 | +			}; | 
 | + | 
 | +			i2c13: i2c@8d000 { | 
 | +				reg = <0x8d000 0x1000>; | 
 | +				compatible = "nuvoton,npcm845-i2c"; | 
 | +				#address-cells = <1>; | 
 | +				#size-cells = <0>; | 
 | +				clocks = <&clk NPCM8XX_CLK_APB2>; | 
 | +				clock-frequency = <100000>; | 
 | +				interrupts = <GIC_SPI 141 IRQ_TYPE_LEVEL_HIGH>; | 
 | +				pinctrl-names = "default"; | 
 | +				pinctrl-0 = <&smb13_pins>; | 
 | +				nuvoton,sys-mgr = <&gcr>; | 
 | +				status = "disabled"; | 
 | +			}; | 
 | + | 
 | +			i2c14: i2c@8e000 { | 
 | +				reg = <0x8e000 0x1000>; | 
 | +				compatible = "nuvoton,npcm845-i2c"; | 
 | +				#address-cells = <1>; | 
 | +				#size-cells = <0>; | 
 | +				clocks = <&clk NPCM8XX_CLK_APB2>; | 
 | +				clock-frequency = <100000>; | 
 | +				interrupts = <GIC_SPI 142 IRQ_TYPE_LEVEL_HIGH>; | 
 | +				pinctrl-names = "default"; | 
 | +				pinctrl-0 = <&smb14_pins>; | 
 | +				nuvoton,sys-mgr = <&gcr>; | 
 | +				status = "disabled"; | 
 | +			}; | 
 | + | 
 | +			i2c15: i2c@8f000 { | 
 | +				reg = <0x8f000 0x1000>; | 
 | +				compatible = "nuvoton,npcm845-i2c"; | 
 | +				#address-cells = <1>; | 
 | +				#size-cells = <0>; | 
 | +				clocks = <&clk NPCM8XX_CLK_APB2>; | 
 | +				clock-frequency = <100000>; | 
 | +				interrupts = <GIC_SPI 143 IRQ_TYPE_LEVEL_HIGH>; | 
 | +				pinctrl-names = "default"; | 
 | +				pinctrl-0 = <&smb15_pins>; | 
 | +				nuvoton,sys-mgr = <&gcr>; | 
 | +				status = "disabled"; | 
 | +			}; | 
 | + | 
 | +			i2c16: i2c@fff00000 { | 
 | +				reg = <0xfff00000 0x1000>; | 
 | +				compatible = "nuvoton,npcm845-i2c"; | 
 | +				#address-cells = <1>; | 
 | +				#size-cells = <0>; | 
 | +				clocks = <&clk NPCM8XX_CLK_APB2>; | 
 | +				clock-frequency = <100000>; | 
 | +				interrupts = <GIC_SPI 144 IRQ_TYPE_LEVEL_HIGH>; | 
 | +				pinctrl-names = "default"; | 
 | +				pinctrl-0 = <&smb16_pins>; | 
 | +				nuvoton,sys-mgr = <&gcr>; | 
 | +				status = "disabled"; | 
 | +			}; | 
 | + | 
 | +			i2c17: i2c@fff01000 { | 
 | +				reg = <0xfff01000 0x1000>; | 
 | +				compatible = "nuvoton,npcm845-i2c"; | 
 | +				#address-cells = <1>; | 
 | +				#size-cells = <0>; | 
 | +				clocks = <&clk NPCM8XX_CLK_APB2>; | 
 | +				clock-frequency = <100000>; | 
 | +				interrupts = <GIC_SPI 145 IRQ_TYPE_LEVEL_HIGH>; | 
 | +				pinctrl-names = "default"; | 
 | +				pinctrl-0 = <&smb17_pins>; | 
 | +				nuvoton,sys-mgr = <&gcr>; | 
 | +				status = "disabled"; | 
 | +			}; | 
 | + | 
 | +			i2c18: i2c@fff02000 { | 
 | +				reg = <0xfff02000 0x1000>; | 
 | +				compatible = "nuvoton,npcm845-i2c"; | 
 | +				#address-cells = <1>; | 
 | +				#size-cells = <0>; | 
 | +				clocks = <&clk NPCM8XX_CLK_APB2>; | 
 | +				clock-frequency = <100000>; | 
 | +				interrupts = <GIC_SPI 146 IRQ_TYPE_LEVEL_HIGH>; | 
 | +				pinctrl-names = "default"; | 
 | +				pinctrl-0 = <&smb18_pins>; | 
 | +				nuvoton,sys-mgr = <&gcr>; | 
 | +				status = "disabled"; | 
 | +			}; | 
 | + | 
 | +			i2c19: i2c@fff03000 { | 
 | +				reg = <0xfff03000 0x1000>; | 
 | +				compatible = "nuvoton,npcm845-i2c"; | 
 | +				#address-cells = <1>; | 
 | +				#size-cells = <0>; | 
 | +				clocks = <&clk NPCM8XX_CLK_APB2>; | 
 | +				clock-frequency = <100000>; | 
 | +				interrupts = <GIC_SPI 147 IRQ_TYPE_LEVEL_HIGH>; | 
 | +				pinctrl-names = "default"; | 
 | +				pinctrl-0 = <&smb19_pins>; | 
 | +				nuvoton,sys-mgr = <&gcr>; | 
 | +				status = "disabled"; | 
 | +			}; | 
 | + | 
 | +			i2c20: i2c@fff04000 { | 
 | +				reg = <0xfff04000 0x1000>; | 
 | +				compatible = "nuvoton,npcm845-i2c"; | 
 | +				#address-cells = <1>; | 
 | +				#size-cells = <0>; | 
 | +				clocks = <&clk NPCM8XX_CLK_APB2>; | 
 | +				clock-frequency = <100000>; | 
 | +				interrupts = <GIC_SPI 148 IRQ_TYPE_LEVEL_HIGH>; | 
 | +				pinctrl-names = "default"; | 
 | +				pinctrl-0 = <&smb20_pins>; | 
 | +				nuvoton,sys-mgr = <&gcr>; | 
 | +				status = "disabled"; | 
 | +			}; | 
 | + | 
 | +			i2c21: i2c@fff05000 { | 
 | +				reg = <0xfff05000 0x1000>; | 
 | +				compatible = "nuvoton,npcm845-i2c"; | 
 | +				#address-cells = <1>; | 
 | +				#size-cells = <0>; | 
 | +				clocks = <&clk NPCM8XX_CLK_APB2>; | 
 | +				clock-frequency = <100000>; | 
 | +				interrupts = <GIC_SPI 149 IRQ_TYPE_LEVEL_HIGH>; | 
 | +				pinctrl-names = "default"; | 
 | +				pinctrl-0 = <&smb21_pins>; | 
 | +				nuvoton,sys-mgr = <&gcr>; | 
 | +				status = "disabled"; | 
 | +			}; | 
 | + | 
 | +			i2c22: i2c@fff06000 { | 
 | +				reg = <0xfff06000 0x1000>; | 
 | +				compatible = "nuvoton,npcm845-i2c"; | 
 | +				#address-cells = <1>; | 
 | +				#size-cells = <0>; | 
 | +				clocks = <&clk NPCM8XX_CLK_APB2>; | 
 | +				clock-frequency = <100000>; | 
 | +				interrupts = <GIC_SPI 150 IRQ_TYPE_LEVEL_HIGH>; | 
 | +				pinctrl-names = "default"; | 
 | +				pinctrl-0 = <&smb22_pins>; | 
 | +				nuvoton,sys-mgr = <&gcr>; | 
 | +				status = "disabled"; | 
 | +			}; | 
 | + | 
 | +			i2c23: i2c@fff07000 { | 
 | +				reg = <0xfff07000 0x1000>; | 
 | +				compatible = "nuvoton,npcm845-i2c"; | 
 | +				#address-cells = <1>; | 
 | +				#size-cells = <0>; | 
 | +				clocks = <&clk NPCM8XX_CLK_APB2>; | 
 | +				clock-frequency = <100000>; | 
 | +				interrupts = <GIC_SPI 151 IRQ_TYPE_LEVEL_HIGH>; | 
 | +				pinctrl-names = "default"; | 
 | +				pinctrl-0 = <&smb23_pins>; | 
 | +				nuvoton,sys-mgr = <&gcr>; | 
 | +				status = "disabled"; | 
 | +			}; | 
 | + | 
 | +			i2c24: i2c@fff08000 { | 
 | +				reg = <0xfff08000 0x1000>; | 
 | +				compatible = "nuvoton,npcm845-i2c"; | 
 | +				#address-cells = <1>; | 
 | +				#size-cells = <0>; | 
 | +				clocks = <&clk NPCM8XX_CLK_APB2>; | 
 | +				clock-frequency = <100000>; | 
 | +				interrupts = <GIC_SPI 152 IRQ_TYPE_LEVEL_HIGH>; | 
 | +				nuvoton,sys-mgr = <&gcr>; | 
 | +				status = "disabled"; | 
 | +			}; | 
 | + | 
 | +			i2c25: i2c@fff09000 { | 
 | +				reg = <0xfff09000 0x1000>; | 
 | +				compatible = "nuvoton,npcm845-i2c"; | 
 | +				#address-cells = <1>; | 
 | +				#size-cells = <0>; | 
 | +				clocks = <&clk NPCM8XX_CLK_APB2>; | 
 | +				clock-frequency = <100000>; | 
 | +				interrupts = <GIC_SPI 153 IRQ_TYPE_LEVEL_HIGH>; | 
 | +				nuvoton,sys-mgr = <&gcr>; | 
 | +				status = "disabled"; | 
 | +			}; | 
 | + | 
 | +			i2c26: i2c@fff0a000 { | 
 | +				reg = <0xfff0a000 0x1000>; | 
 | +				compatible = "nuvoton,npcm845-i2c"; | 
 | +				#address-cells = <1>; | 
 | +				#size-cells = <0>; | 
 | +				clocks = <&clk NPCM8XX_CLK_APB2>; | 
 | +				clock-frequency = <100000>; | 
 | +				interrupts = <GIC_SPI 154 IRQ_TYPE_LEVEL_HIGH>; | 
 | +				nuvoton,sys-mgr = <&gcr>; | 
 | +				status = "disabled"; | 
 | +			}; | 
 | + | 
 | +			gfxi: gfxi@e000 { | 
 | +				compatible = "nuvoton,npcm845-gfxi", "syscon", | 
 | +					     "simple-mfd"; | 
 | +				reg = <0xe000 0x100>; | 
 | +			}; | 
 | +		}; | 
 | +	}; | 
 | + | 
 | +	thermal-zones { | 
 | +		cpu0_thermal: cpu0-thermal { | 
 | +			polling-delay-passive = <250>; | 
 | +			polling-delay = <1000>; | 
 | +			thermal-sensors = <&tmps 0>; | 
 | +			trips { | 
 | +				cpu0_alert0: trip-point0 { | 
 | +					temperature = <90000>; | 
 | +					hysteresis = <2000>; | 
 | +					type = "passive"; | 
 | +				}; | 
 | +			}; | 
 | +		}; | 
 | +		cpu1_thermal: cpu1-thermal { | 
 | +			polling-delay-passive = <250>; | 
 | +			polling-delay = <1000>; | 
 | +			thermal-sensors = <&tmps 1>; | 
 | +			trips { | 
 | +				cpu1_alert0: trip-point0 { | 
 | +					temperature = <90000>; | 
 | +					hysteresis = <2000>; | 
 | +					type = "passive"; | 
 | +				}; | 
 | +			}; | 
 | +		}; | 
 | +	}; | 
 | + | 
 | +	pinctrl: pinctrl@f0800000 { | 
 | +		compatible = "nuvoton,npcm845-pinctrl", "syscon", "simple-mfd"; | 
 | +		ranges = <0x0 0x0 0xf0010000 0x8000>; | 
 | +		#address-cells = <1>; | 
 | +		#size-cells = <1>; | 
 | +		nuvoton,sysgcr = <&gcr>; | 
 | +		status = "okay"; | 
 | +		gpio0: gpio@f0010000 { | 
 | +			gpio-controller; | 
 | +			#gpio-cells = <2>; | 
 | +			reg = <0x0 0xB0>; | 
 | +			interrupts = <GIC_SPI 116 IRQ_TYPE_LEVEL_HIGH>; | 
 | +			gpio-ranges = <&pinctrl 0 0 32>; | 
 | +		}; | 
 | +		gpio1: gpio@f0011000 { | 
 | +			gpio-controller; | 
 | +			#gpio-cells = <2>; | 
 | +			reg = <0x1000 0xB0>; | 
 | +			interrupts = <GIC_SPI 117 IRQ_TYPE_LEVEL_HIGH>; | 
 | +			gpio-ranges = <&pinctrl 0 32 32>; | 
 | +		}; | 
 | +		gpio2: gpio@f0012000 { | 
 | +			gpio-controller; | 
 | +			#gpio-cells = <2>; | 
 | +			reg = <0x2000 0xB0>; | 
 | +			interrupts = <GIC_SPI 118 IRQ_TYPE_LEVEL_HIGH>; | 
 | +			gpio-ranges = <&pinctrl 0 64 32>; | 
 | +		}; | 
 | +		gpio3: gpio@f0013000 { | 
 | +			gpio-controller; | 
 | +			#gpio-cells = <2>; | 
 | +			reg = <0x3000 0xB0>; | 
 | +			interrupts = <GIC_SPI 119 IRQ_TYPE_LEVEL_HIGH>; | 
 | +			gpio-ranges = <&pinctrl 0 96 32>; | 
 | +		}; | 
 | +		gpio4: gpio@f0014000 { | 
 | +			gpio-controller; | 
 | +			#gpio-cells = <2>; | 
 | +			reg = <0x4000 0xB0>; | 
 | +			interrupts = <GIC_SPI 120 IRQ_TYPE_LEVEL_HIGH>; | 
 | +			gpio-ranges = <&pinctrl 0 128 32>; | 
 | +		}; | 
 | +		gpio5: gpio@f0015000 { | 
 | +			gpio-controller; | 
 | +			#gpio-cells = <2>; | 
 | +			reg = <0x5000 0xB0>; | 
 | +			interrupts = <GIC_SPI 121 IRQ_TYPE_LEVEL_HIGH>; | 
 | +			gpio-ranges = <&pinctrl 0 160 32>; | 
 | +		}; | 
 | +		gpio6: gpio@f0016000 { | 
 | +			gpio-controller; | 
 | +			#gpio-cells = <2>; | 
 | +			reg = <0x6000 0xB0>; | 
 | +			interrupts = <GIC_SPI 122 IRQ_TYPE_LEVEL_HIGH>; | 
 | +			gpio-ranges = <&pinctrl 0 192 32>; | 
 | +		}; | 
 | +		gpio7: gpio@f0017000 { | 
 | +			gpio-controller; | 
 | +			#gpio-cells = <2>; | 
 | +			reg = <0x7000 0xB0>; | 
 | +			interrupts = <GIC_SPI 123 IRQ_TYPE_LEVEL_HIGH>; | 
 | +			gpio-ranges = <&pinctrl 0 224 32>; | 
 | +		}; | 
 | + | 
 | +		iox1_pins: iox1-pins { | 
 | +			groups = "iox1"; | 
 | +			function = "iox1"; | 
 | +		}; | 
 | +		iox2_pins: iox2-pins { | 
 | +			groups = "iox2"; | 
 | +			function = "iox2"; | 
 | +		}; | 
 | +		smb1d_pins: smb1d-pins { | 
 | +			groups = "smb1d"; | 
 | +			function = "smb1d"; | 
 | +		}; | 
 | +		smb2d_pins: smb2d-pins { | 
 | +			groups = "smb2d"; | 
 | +			function = "smb2d"; | 
 | +		}; | 
 | +		lkgpo1_pins: lkgpo1-pins { | 
 | +			groups = "lkgpo1"; | 
 | +			function = "lkgpo1"; | 
 | +		}; | 
 | +		lkgpo2_pins: lkgpo2-pins { | 
 | +			groups = "lkgpo2"; | 
 | +			function = "lkgpo2"; | 
 | +		}; | 
 | +		ioxh_pins: ioxh-pins { | 
 | +			groups = "ioxh"; | 
 | +			function = "ioxh"; | 
 | +		}; | 
 | +		gspi_pins: gspi-pins { | 
 | +			groups = "gspi"; | 
 | +			function = "gspi"; | 
 | +		}; | 
 | +		smb5b_pins: smb5b-pins { | 
 | +			groups = "smb5b"; | 
 | +			function = "smb5b"; | 
 | +		}; | 
 | +		smb5c_pins: smb5c-pins { | 
 | +			groups = "smb5c"; | 
 | +			function = "smb5c"; | 
 | +		}; | 
 | +		lkgpo0_pins: lkgpo0-pins { | 
 | +			groups = "lkgpo0"; | 
 | +			function = "lkgpo0"; | 
 | +		}; | 
 | +		pspi_pins: pspi-pins { | 
 | +			groups = "pspi"; | 
 | +			function = "pspi"; | 
 | +		}; | 
 | +		jm1_pins: jm1-pins { | 
 | +			groups = "jm1"; | 
 | +			function = "jm1"; | 
 | +		}; | 
 | +		jm2_pins: jm2-pins { | 
 | +			groups = "jm2"; | 
 | +			function = "jm2"; | 
 | +		}; | 
 | +		smb4den_pins: smb4den-pins { | 
 | +			groups = "smb4den"; | 
 | +			function = "smb4den"; | 
 | +		}; | 
 | +		smb4b_pins: smb4b-pins { | 
 | +			groups = "smb4b"; | 
 | +			function = "smb4b"; | 
 | +		}; | 
 | +		smb4c_pins: smb4c-pins { | 
 | +			groups = "smb4c"; | 
 | +			function = "smb4c"; | 
 | +		}; | 
 | +		smb15_pins: smb15-pins { | 
 | +			groups = "smb15"; | 
 | +			function = "smb15"; | 
 | +		}; | 
 | +		smb16_pins: smb16-pins { | 
 | +			groups = "smb16"; | 
 | +			function = "smb16"; | 
 | +		}; | 
 | +		smb16b_pins: smb16b-pins { | 
 | +			groups = "smb16b"; | 
 | +			function = "smb16b"; | 
 | +		}; | 
 | +		smb17_pins: smb17-pins { | 
 | +			groups = "smb17"; | 
 | +			function = "smb17"; | 
 | +		}; | 
 | +		smb18_pins: smb18-pins { | 
 | +			groups = "smb18"; | 
 | +			function = "smb18"; | 
 | +		}; | 
 | +		smb19_pins: smb19-pins { | 
 | +			groups = "smb19"; | 
 | +			function = "smb19"; | 
 | +		}; | 
 | +		smb20_pins: smb20-pins { | 
 | +			groups = "smb20"; | 
 | +			function = "smb20"; | 
 | +		}; | 
 | +		smb21_pins: smb21-pins { | 
 | +			groups = "smb21"; | 
 | +			function = "smb21"; | 
 | +		}; | 
 | +		smb22_pins: smb22-pins { | 
 | +			groups = "smb22"; | 
 | +			function = "smb22"; | 
 | +		}; | 
 | +		smb23_pins: smb23-pins { | 
 | +			groups = "smb23"; | 
 | +			function = "smb23"; | 
 | +		}; | 
 | +		smb23b_pins: smb23b-pins { | 
 | +			groups = "smb23b"; | 
 | +			function = "smb23b"; | 
 | +		}; | 
 | +		smb4d_pins: smb4d-pins { | 
 | +			groups = "smb4d"; | 
 | +			function = "smb4d"; | 
 | +		}; | 
 | +		smb14_pins: smb14-pins { | 
 | +			groups = "smb14"; | 
 | +			function = "smb14"; | 
 | +		}; | 
 | +		smb5_pins: smb5-pins { | 
 | +			groups = "smb5"; | 
 | +			function = "smb5"; | 
 | +		}; | 
 | +		smb4_pins: smb4-pins { | 
 | +			groups = "smb4"; | 
 | +			function = "smb4"; | 
 | +		}; | 
 | +		smb3_pins: smb3-pins { | 
 | +			groups = "smb3"; | 
 | +			function = "smb3"; | 
 | +		}; | 
 | +		spi0cs1_pins: spi0cs1-pins { | 
 | +			groups = "spi0cs1"; | 
 | +			function = "spi0cs1"; | 
 | +		}; | 
 | +		spi0cs2_pins: spi0cs2-pins { | 
 | +			groups = "spi0cs2"; | 
 | +			function = "spi0cs2"; | 
 | +		}; | 
 | +		spi0cs3_pins: spi0cs3-pins { | 
 | +			groups = "spi0cs3"; | 
 | +			function = "spi0cs3"; | 
 | +		}; | 
 | +		smb3c_pins: smb3c-pins { | 
 | +			groups = "smb3c"; | 
 | +			function = "smb3c"; | 
 | +		}; | 
 | +		smb3b_pins: smb3b-pins { | 
 | +			groups = "smb3b"; | 
 | +			function = "smb3b"; | 
 | +		}; | 
 | +		bmcuart0a_pins: bmcuart0a-pins { | 
 | +			groups = "bmcuart0a"; | 
 | +			function = "bmcuart0a"; | 
 | +		}; | 
 | +		uart1_pins: uart1-pins { | 
 | +			groups = "uart1"; | 
 | +			function = "uart1"; | 
 | +		}; | 
 | +		jtag2_pins: jtag2-pins { | 
 | +			groups = "jtag2"; | 
 | +			function = "jtag2"; | 
 | +		}; | 
 | +		bmcuart1_pins: bmcuart1-pins { | 
 | +			groups = "bmcuart1"; | 
 | +			function = "bmcuart1"; | 
 | +		}; | 
 | +		uart2_pins: uart2-pins { | 
 | +			groups = "uart2"; | 
 | +			function = "uart2"; | 
 | +		}; | 
 | +		bmcuart0b_pins: bmcuart0b-pins { | 
 | +			groups = "bmcuart0b"; | 
 | +			function = "bmcuart0b"; | 
 | +		}; | 
 | +		r1err_pins: r1err-pins { | 
 | +			groups = "r1err"; | 
 | +			function = "r1err"; | 
 | +		}; | 
 | +		r1md_pins: r1md-pins { | 
 | +			groups = "r1md"; | 
 | +			function = "r1md"; | 
 | +		}; | 
 | +		r1oen_pins: r1oen-pins { | 
 | +			groups = "r1oen"; | 
 | +			function = "r1oen"; | 
 | +		}; | 
 | +		r2oen_pins: r2oen-pins { | 
 | +			groups = "r2oen"; | 
 | +			function = "r2oen"; | 
 | +		}; | 
 | +		rmii3_pins: rmii3_pins { | 
 | +			groups = "rmii3"; | 
 | +			function = "rmii3"; | 
 | +		}; | 
 | +		r3oen_pins: r3oen-pins { | 
 | +			groups = "r3oen"; | 
 | +			function = "r3oen"; | 
 | +		}; | 
 | +		smb3d_pins: smb3d-pins { | 
 | +			groups = "smb3d"; | 
 | +			function = "smb3d"; | 
 | +		}; | 
 | +		fanin0_pins: fanin0-pins { | 
 | +			groups = "fanin0"; | 
 | +			function = "fanin0"; | 
 | +		}; | 
 | +		fanin1_pins: fanin1-pins { | 
 | +			groups = "fanin1"; | 
 | +			function = "fanin1"; | 
 | +		}; | 
 | +		fanin2_pins: fanin2-pins { | 
 | +			groups = "fanin2"; | 
 | +			function = "fanin2"; | 
 | +		}; | 
 | +		fanin3_pins: fanin3-pins { | 
 | +			groups = "fanin3"; | 
 | +			function = "fanin3"; | 
 | +		}; | 
 | +		fanin4_pins: fanin4-pins { | 
 | +			groups = "fanin4"; | 
 | +			function = "fanin4"; | 
 | +		}; | 
 | +		fanin5_pins: fanin5-pins { | 
 | +			groups = "fanin5"; | 
 | +			function = "fanin5"; | 
 | +		}; | 
 | +		fanin6_pins: fanin6-pins { | 
 | +			groups = "fanin6"; | 
 | +			function = "fanin6"; | 
 | +		}; | 
 | +		fanin7_pins: fanin7-pins { | 
 | +			groups = "fanin7"; | 
 | +			function = "fanin7"; | 
 | +		}; | 
 | +		fanin8_pins: fanin8-pins { | 
 | +			groups = "fanin8"; | 
 | +			function = "fanin8"; | 
 | +		}; | 
 | +		fanin9_pins: fanin9-pins { | 
 | +			groups = "fanin9"; | 
 | +			function = "fanin9"; | 
 | +		}; | 
 | +		fanin10_pins: fanin10-pins { | 
 | +			groups = "fanin10"; | 
 | +			function = "fanin10"; | 
 | +		}; | 
 | +		fanin11_pins: fanin11-pins { | 
 | +			groups = "fanin11"; | 
 | +			function = "fanin11"; | 
 | +		}; | 
 | +		fanin12_pins: fanin12-pins { | 
 | +			groups = "fanin12"; | 
 | +			function = "fanin12"; | 
 | +		}; | 
 | +		fanin13_pins: fanin13-pins { | 
 | +			groups = "fanin13"; | 
 | +			function = "fanin13"; | 
 | +		}; | 
 | +		fanin14_pins: fanin14-pins { | 
 | +			groups = "fanin14"; | 
 | +			function = "fanin14"; | 
 | +		}; | 
 | +		fanin15_pins: fanin15-pins { | 
 | +			groups = "fanin15"; | 
 | +			function = "fanin15"; | 
 | +		}; | 
 | +		pwm0_pins: pwm0-pins { | 
 | +			groups = "pwm0"; | 
 | +			function = "pwm0"; | 
 | +		}; | 
 | +		pwm1_pins: pwm1-pins { | 
 | +			groups = "pwm1"; | 
 | +			function = "pwm1"; | 
 | +		}; | 
 | +		pwm2_pins: pwm2-pins { | 
 | +			groups = "pwm2"; | 
 | +			function = "pwm2"; | 
 | +		}; | 
 | +		pwm3_pins: pwm3-pins { | 
 | +			groups = "pwm3"; | 
 | +			function = "pwm3"; | 
 | +		}; | 
 | +		r2_pins: r2-pins { | 
 | +			groups = "r2"; | 
 | +			function = "r2"; | 
 | +		}; | 
 | +		r2err_pins: r2err-pins { | 
 | +			groups = "r2err"; | 
 | +			function = "r2err"; | 
 | +		}; | 
 | +		r2md_pins: r2md-pins { | 
 | +			groups = "r2md"; | 
 | +			function = "r2md"; | 
 | +		}; | 
 | +		gpio1836_pins: gpio1836_pins { | 
 | +			groups = "gpio1836"; | 
 | +			function = "gpio1836"; | 
 | +		}; | 
 | +		gpio1889_pins: gpio1889_pins { | 
 | +			groups = "gpio1889"; | 
 | +			function = "gpio1889"; | 
 | +		}; | 
 | +		r3rxer_pins: r3rxer_pins { | 
 | +			groups = "r3rxer"; | 
 | +			function = "r3rxer"; | 
 | +		}; | 
 | +		ga20kbc_pins: ga20kbc-pins { | 
 | +			groups = "ga20kbc"; | 
 | +			function = "ga20kbc"; | 
 | +		}; | 
 | +		smb5d_pins: smb5d-pins { | 
 | +			groups = "smb5d"; | 
 | +			function = "smb5d"; | 
 | +		}; | 
 | +		lpc_pins: lpc-pins { | 
 | +			groups = "lpc"; | 
 | +			function = "lpc"; | 
 | +		}; | 
 | +		espi_pins: espi-pins { | 
 | +			groups = "espi"; | 
 | +			function = "espi"; | 
 | +		}; | 
 | +		rg1_pins: rg1-pins { | 
 | +			groups = "rg1"; | 
 | +			function = "rg1"; | 
 | +		}; | 
 | +		rg1mdio_pins: rg1mdio-pins { | 
 | +			groups = "rg1mdio"; | 
 | +			function = "rg1mdio"; | 
 | +		}; | 
 | +		rg2_pins: rg2-pins { | 
 | +			groups = "rg2"; | 
 | +			function = "rg2"; | 
 | +		}; | 
 | +		ddr_pins: ddr-pins { | 
 | +			groups = "ddr"; | 
 | +			function = "ddr"; | 
 | +		}; | 
 | +		i3c0_pins: i3c0-pins { | 
 | +			groups = "i3c0"; | 
 | +			function = "i3c0"; | 
 | +		}; | 
 | +		i3c1_pins: i3c1-pins { | 
 | +			groups = "i3c1"; | 
 | +			function = "i3c1"; | 
 | +		}; | 
 | +		i3c2_pins: i3c2-pins { | 
 | +			groups = "i3c2"; | 
 | +			function = "i3c2"; | 
 | +		}; | 
 | +		i3c3_pins: i3c3-pins { | 
 | +			groups = "i3c3"; | 
 | +			function = "i3c3"; | 
 | +		}; | 
 | +		i3c4_pins: i3c4-pins { | 
 | +			groups = "i3c4"; | 
 | +			function = "i3c4"; | 
 | +		}; | 
 | +		i3c5_pins: i3c5-pins { | 
 | +			groups = "i3c5"; | 
 | +			function = "i3c5"; | 
 | +		}; | 
 | +		smb0_pins: smb0-pins { | 
 | +			groups = "smb0"; | 
 | +			function = "smb0"; | 
 | +		}; | 
 | +		smb1_pins: smb1-pins { | 
 | +			groups = "smb1"; | 
 | +			function = "smb1"; | 
 | +		}; | 
 | +		smb2_pins: smb2-pins { | 
 | +			groups = "smb2"; | 
 | +			function = "smb2"; | 
 | +		}; | 
 | +		smb2c_pins: smb2c-pins { | 
 | +			groups = "smb2c"; | 
 | +			function = "smb2c"; | 
 | +		}; | 
 | +		smb2b_pins: smb2b-pins { | 
 | +			groups = "smb2b"; | 
 | +			function = "smb2b"; | 
 | +		}; | 
 | +		smb1c_pins: smb1c-pins { | 
 | +			groups = "smb1c"; | 
 | +			function = "smb1c"; | 
 | +		}; | 
 | +		smb1b_pins: smb1b-pins { | 
 | +			groups = "smb1b"; | 
 | +			function = "smb1b"; | 
 | +		}; | 
 | +		smb8_pins: smb8-pins { | 
 | +			groups = "smb8"; | 
 | +			function = "smb8"; | 
 | +		}; | 
 | +		smb9_pins: smb9-pins { | 
 | +			groups = "smb9"; | 
 | +			function = "smb9"; | 
 | +		}; | 
 | +		smb10_pins: smb10-pins { | 
 | +			groups = "smb10"; | 
 | +			function = "smb10"; | 
 | +		}; | 
 | +		smb11_pins: smb11-pins { | 
 | +			groups = "smb11"; | 
 | +			function = "smb11"; | 
 | +		}; | 
 | +		sd1_pins: sd1-pins { | 
 | +			groups = "sd1"; | 
 | +			function = "sd1"; | 
 | +		}; | 
 | +		sd1pwr_pins: sd1pwr-pins { | 
 | +			groups = "sd1pwr"; | 
 | +			function = "sd1pwr"; | 
 | +		}; | 
 | +		pwm4_pins: pwm4-pins { | 
 | +			groups = "pwm4"; | 
 | +			function = "pwm4"; | 
 | +		}; | 
 | +		pwm5_pins: pwm5-pins { | 
 | +			groups = "pwm5"; | 
 | +			function = "pwm5"; | 
 | +		}; | 
 | +		pwm6_pins: pwm6-pins { | 
 | +			groups = "pwm6"; | 
 | +			function = "pwm6"; | 
 | +		}; | 
 | +		pwm7_pins: pwm7-pins { | 
 | +			groups = "pwm7"; | 
 | +			function = "pwm7"; | 
 | +		}; | 
 | +		pwm8_pins: pwm8-pins { | 
 | +			groups = "pwm8"; | 
 | +			function = "pwm8"; | 
 | +		}; | 
 | +		pwm9_pins: pwm9-pins { | 
 | +			groups = "pwm9"; | 
 | +			function = "pwm9"; | 
 | +		}; | 
 | +		pwm10_pins: pwm10-pins { | 
 | +			groups = "pwm10"; | 
 | +			function = "pwm10"; | 
 | +		}; | 
 | +		pwm11_pins: pwm11-pins { | 
 | +			groups = "pwm11"; | 
 | +			function = "pwm11"; | 
 | +		}; | 
 | +		mmc8_pins: mmc8-pins { | 
 | +			groups = "mmc8"; | 
 | +			function = "mmc8"; | 
 | +		}; | 
 | +		mmc_pins: mmc-pins { | 
 | +			groups = "mmc"; | 
 | +			function = "mmc"; | 
 | +		}; | 
 | +		mmcwp_pins: mmcwp-pins { | 
 | +			groups = "mmcwp"; | 
 | +			function = "mmcwp"; | 
 | +		}; | 
 | +		mmccd_pins: mmccd-pins { | 
 | +			groups = "mmccd"; | 
 | +			function = "mmccd"; | 
 | +		}; | 
 | +		mmcrst_pins: mmcrst-pins { | 
 | +			groups = "mmcrst"; | 
 | +			function = "mmcrst"; | 
 | +		}; | 
 | +		clkout_pins: clkout-pins { | 
 | +			groups = "clkout"; | 
 | +			function = "clkout"; | 
 | +		}; | 
 | +		serirq_pins: serirq-pins { | 
 | +			groups = "serirq"; | 
 | +			function = "serirq"; | 
 | +		}; | 
 | +		lpcclk_pins: lpcclk-pins { | 
 | +			groups = "lpcclk"; | 
 | +			function = "lpcclk"; | 
 | +		}; | 
 | +		scipme_pins: scipme-pins { | 
 | +			groups = "scipme"; | 
 | +			function = "scipme"; | 
 | +		}; | 
 | +		sci_pins: sci-pins { | 
 | +			groups = "sci"; | 
 | +			function = "sci"; | 
 | +		}; | 
 | +		smb6_pins: smb6-pins { | 
 | +			groups = "smb6"; | 
 | +			function = "smb6"; | 
 | +		}; | 
 | +		smb6b_pins: smb6b-pins { | 
 | +			groups = "smb6b"; | 
 | +			function = "smb6b"; | 
 | +		}; | 
 | +		smb6c_pins: smb6c-pins { | 
 | +			groups = "smb6c"; | 
 | +			function = "smb6c"; | 
 | +		}; | 
 | +		smb6d_pins: smb6d-pins { | 
 | +			groups = "smb6d"; | 
 | +			function = "smb6d"; | 
 | +		}; | 
 | +		smb7_pins: smb7-pins { | 
 | +			groups = "smb7"; | 
 | +			function = "smb7"; | 
 | +		}; | 
 | +		smb7b_pins: smb7b-pins { | 
 | +			groups = "smb7b"; | 
 | +			function = "smb7b"; | 
 | +		}; | 
 | +		smb7c_pins: smb7c-pins { | 
 | +			groups = "smb7c"; | 
 | +			function = "smb7c"; | 
 | +		}; | 
 | +		smb7d_pins: smb7d-pins { | 
 | +			groups = "smb7d"; | 
 | +			function = "smb7d"; | 
 | +		}; | 
 | +		spi1_pins: spi1-pins { | 
 | +			groups = "spi1"; | 
 | +			function = "spi1"; | 
 | +		}; | 
 | +		faninx_pins: faninx-pins { | 
 | +			groups = "faninx"; | 
 | +			function = "faninx"; | 
 | +		}; | 
 | +		r1_pins: r1-pins { | 
 | +			groups = "r1"; | 
 | +			function = "r1"; | 
 | +		}; | 
 | +		spi3_pins: spi3-pins { | 
 | +			groups = "spi3"; | 
 | +			function = "spi3"; | 
 | +		}; | 
 | +		spi3cs1_pins: spi3cs1-pins { | 
 | +			groups = "spi3cs1"; | 
 | +			function = "spi3cs1"; | 
 | +		}; | 
 | +		spi3quad_pins: spi3quad-pins { | 
 | +			groups = "spi3quad"; | 
 | +			function = "spi3quad"; | 
 | +		}; | 
 | +		spi3cs2_pins: spi3cs2-pins { | 
 | +			groups = "spi3cs2"; | 
 | +			function = "spi3cs2"; | 
 | +		}; | 
 | +		spi3cs3_pins: spi3cs3-pins { | 
 | +			groups = "spi3cs3"; | 
 | +			function = "spi3cs3"; | 
 | +		}; | 
 | +		nprd_smi_pins: nprd-smi-pins { | 
 | +			groups = "nprd_smi"; | 
 | +			function = "nprd_smi"; | 
 | +		}; | 
 | +		smb0b_pins: smb0b-pins { | 
 | +			groups = "smb0b"; | 
 | +			function = "smb0b"; | 
 | +		}; | 
 | +		smb0c_pins: smb0c-pins { | 
 | +			groups = "smb0c"; | 
 | +			function = "smb0c"; | 
 | +		}; | 
 | +		smb0den_pins: smb0den-pins { | 
 | +			groups = "smb0den"; | 
 | +			function = "smb0den"; | 
 | +		}; | 
 | +		smb0d_pins: smb0d-pins { | 
 | +			groups = "smb0d"; | 
 | +			function = "smb0d"; | 
 | +		}; | 
 | +		ddc_pins: ddc-pins { | 
 | +			groups = "ddc"; | 
 | +			function = "ddc"; | 
 | +		}; | 
 | +		rg2mdio_pins: rg2mdio-pins { | 
 | +			groups = "rg2mdio"; | 
 | +			function = "rg2mdio"; | 
 | +		}; | 
 | +		wdog1_pins: wdog1-pins { | 
 | +			groups = "wdog1"; | 
 | +			function = "wdog1"; | 
 | +		}; | 
 | +		wdog2_pins: wdog2-pins { | 
 | +			groups = "wdog2"; | 
 | +			function = "wdog2"; | 
 | +		}; | 
 | +		smb12_pins: smb12-pins { | 
 | +			groups = "smb12"; | 
 | +			function = "smb12"; | 
 | +		}; | 
 | +		smb13_pins: smb13-pins { | 
 | +			groups = "smb13"; | 
 | +			function = "smb13"; | 
 | +		}; | 
 | +		spix_pins: spix-pins { | 
 | +			groups = "spix"; | 
 | +			function = "spix"; | 
 | +		}; | 
 | +		spixcs1_pins: spixcs1-pins { | 
 | +			groups = "spixcs1"; | 
 | +			function = "spixcs1"; | 
 | +		}; | 
 | +		clkreq_pins: clkreq-pins { | 
 | +			groups = "clkreq"; | 
 | +			function = "clkreq"; | 
 | +		}; | 
 | +		hgpio0_pins: hgpio0-pins { | 
 | +			groups = "hgpio0"; | 
 | +			function = "hgpio0"; | 
 | +		}; | 
 | +		hgpio1_pins: hgpio1-pins { | 
 | +			groups = "hgpio1"; | 
 | +			function = "hgpio1"; | 
 | +		}; | 
 | +		hgpio2_pins: hgpio2-pins { | 
 | +			groups = "hgpio2"; | 
 | +			function = "hgpio2"; | 
 | +		}; | 
 | +		hgpio3_pins: hgpio3-pins { | 
 | +			groups = "hgpio3"; | 
 | +			function = "hgpio3"; | 
 | +		}; | 
 | +		hgpio4_pins: hgpio4-pins { | 
 | +			groups = "hgpio4"; | 
 | +			function = "hgpio4"; | 
 | +		}; | 
 | +		hgpio5_pins: hgpio5-pins { | 
 | +			groups = "hgpio5"; | 
 | +			function = "hgpio5"; | 
 | +		}; | 
 | +		hgpio6_pins: hgpio6-pins { | 
 | +			groups = "hgpio6"; | 
 | +			function = "hgpio6"; | 
 | +		}; | 
 | +		hgpio7_pins: hgpio7-pins { | 
 | +			groups = "hgpio7"; | 
 | +			function = "hgpio7"; | 
 | +		}; | 
 | +		bu4_pins: bu4-pins { | 
 | +			groups = "bu4"; | 
 | +			function = "bu4"; | 
 | +		}; | 
 | +		bu5_pins: bu5-pins { | 
 | +			groups = "bu5"; | 
 | +			function = "bu5"; | 
 | +		}; | 
 | +		bu6_pins: bu6-pins { | 
 | +			groups = "bu6"; | 
 | +			function = "bu6"; | 
 | +		}; | 
 | +		gpo187_pins: gpo187-pins { | 
 | +			groups = "gpo187"; | 
 | +			function = "gpo187"; | 
 | +		}; | 
 | +	}; | 
 | +}; | 
 | diff --git a/arch/arm64/boot/dts/nuvoton/nuvoton-npcm845-evb.dts b/arch/arm64/boot/dts/nuvoton/nuvoton-npcm845-evb.dts | 
 | new file mode 100644 | 
 | index 000000000000..c0adfff31fb5 | 
 | --- /dev/null | 
 | +++ b/arch/arm64/boot/dts/nuvoton/nuvoton-npcm845-evb.dts | 
 | @@ -0,0 +1,651 @@ | 
 | +// SPDX-License-Identifier: GPL-2.0 | 
 | +// Copyright (c) 2021 Nuvoton Technology tomer.maimon@nuvoton.com | 
 | + | 
 | +/dts-v1/; | 
 | +#include "nuvoton-npcm845.dtsi" | 
 | +#include "nuvoton-npcm845-pincfg-evb.dtsi" | 
 | + | 
 | +/ { | 
 | +	model = "Nuvoton npcm845 Development Board (Device Tree)"; | 
 | +	compatible = "nuvoton,npcm845-evb", "nuvoton,npcm845"; | 
 | + | 
 | +	aliases { | 
 | +		serial0 = &serial0; | 
 | +		ethernet0 = &gmac0; | 
 | +		ethernet1 = &gmac1; | 
 | +		ethernet2 = &gmac2; | 
 | +		ethernet3 = &gmac3; | 
 | +		mdio-gpio0 = &mdio0; | 
 | +		mdio-gpio1 = &mdio1; | 
 | +		udc0 = &udc0; | 
 | +		udc1 = &udc1; | 
 | +		udc2 = &udc2; | 
 | +		udc3 = &udc3; | 
 | +		udc4 = &udc4; | 
 | +		udc5 = &udc5; | 
 | +		udc6 = &udc6; | 
 | +		udc7 = &udc7; | 
 | +		fiu0 = &fiu0; | 
 | +		fiu1 = &fiu3; | 
 | +		fiu2 = &fiux; | 
 | +		fiu3 = &fiu1; | 
 | +		i2c0 = &i2c0; | 
 | +		i2c1 = &i2c1; | 
 | +		i2c2 = &i2c2; | 
 | +		i2c3 = &i2c3; | 
 | +		i2c4 = &i2c4; | 
 | +		i2c5 = &i2c5; | 
 | +		i2c6 = &i2c6; | 
 | +		i2c7 = &i2c7; | 
 | +		i2c8 = &i2c8; | 
 | +		i2c9 = &i2c9; | 
 | +		i2c10 = &i2c10; | 
 | +		i2c11 = &i2c11; | 
 | +		i2c12 = &i2c12; | 
 | +		i2c13 = &i2c13; | 
 | +		i2c14 = &i2c14; | 
 | +		i2c15 = &i2c15; | 
 | +		i2c16 = &i2c16; | 
 | +		i2c17 = &i2c17; | 
 | +		i2c18 = &i2c18; | 
 | +		i2c19 = &i2c19; | 
 | +		i2c20 = &i2c20; | 
 | +		i2c21 = &i2c21; | 
 | +		i2c22 = &i2c22; | 
 | +		i2c23 = &i2c23; | 
 | +		i2c24 = &i2c24; | 
 | +		i2c25 = &i2c25; | 
 | +		i2c26 = &i2c26; | 
 | +		spi1 = &spi_gpio; | 
 | +	}; | 
 | + | 
 | +	chosen { | 
 | +		stdout-path = &serial0; | 
 | +	}; | 
 | + | 
 | +	memory { | 
 | +		device_type = "memory"; | 
 | +		reg = <0x0 0x0 0x0 0x40000000>; | 
 | +	}; | 
 | + | 
 | +	iio-hwmon { | 
 | +		compatible = "iio-hwmon"; | 
 | +		io-channels = <&adc 0>, <&adc 1>, <&adc 2>, <&adc 3>, | 
 | +			<&adc 4>, <&adc 5>, <&adc 6>, <&adc 7>; | 
 | +	}; | 
 | + | 
 | +	spi_gpio: spi-gpio { | 
 | +		compatible = "spi-gpio"; | 
 | +		#address-cells = <1>; | 
 | +		#size-cells = <0>; | 
 | +		gpio-sck = <&gpio0 12 GPIO_ACTIVE_HIGH>; | 
 | +		gpio-mosi = <&gpio0 13 GPIO_ACTIVE_HIGH>; | 
 | +		gpio-miso = <&gpio0 14 GPIO_ACTIVE_HIGH>; | 
 | +		num-chipselects = <1>; | 
 | +		cs-gpios = <&gpio0 15 GPIO_ACTIVE_LOW>; | 
 | + | 
 | +		eeprom@0 { | 
 | +			compatible = "atmel,at25"; | 
 | +			spi-max-frequency = <5000000>; | 
 | +			size = <0x10000>; | 
 | +			pagesize = <128>; | 
 | +			reg = <0>; | 
 | +			address-width = <16>; | 
 | +		}; | 
 | +	}; | 
 | + | 
 | +	leds { | 
 | +		compatible = "gpio-leds"; | 
 | +		heartbeat { | 
 | +			label = "heartbeat"; | 
 | +			gpios = <&gpio3 2 GPIO_ACTIVE_HIGH>; /* gpio98 */ | 
 | +		}; | 
 | +		identify { | 
 | +			label = "identify"; | 
 | +			gpios = <&gpio1 29 GPIO_ACTIVE_HIGH>; /* gpio61 */ | 
 | +		}; | 
 | +	}; | 
 | + | 
 | +	firmware { | 
 | +		optee { | 
 | +			compatible = "linaro,optee-tz"; | 
 | +			method = "smc"; | 
 | +		}; | 
 | +	}; | 
 | + | 
 | +	reserved-memory { | 
 | +		#address-cells = <2>; | 
 | +		#size-cells = <2>; | 
 | +		ranges; | 
 | + | 
 | +		tip_reserved: tip@0x0 { | 
 | +			reg = <0x0 0x0 0x0 0x6200000>; | 
 | +		}; | 
 | +	}; | 
 | + | 
 | +	tip_sram: sram@fffce000 { | 
 | +		compatible = "mmio-sram"; | 
 | +		reg = <0 0xfffce000 0 0x1000>; | 
 | +		#address-cells = <1>; | 
 | +		#size-cells = <1>; | 
 | +		ranges = <0 0 0xfffce000 0x1000>; | 
 | +		ch0_shm: ch_shm@0 { | 
 | +			reg = <0 0x1000>; | 
 | +		}; | 
 | +	}; | 
 | + | 
 | +	tip { | 
 | +		compatible = "nuvoton,cerberus"; | 
 | +		mboxes = <&tip_mbox 0 16>; /*channel 0, 16th doorbell */ | 
 | +		mbox-names = "cerberus"; | 
 | +		shmem = <&ch0_shm>; | 
 | +		status = "okay"; | 
 | +	}; | 
 | +}; | 
 | + | 
 | +&tmps { | 
 | +	status = "okay"; | 
 | +}; | 
 | + | 
 | + | 
 | +&sgpio2 { | 
 | +	status = "okay"; | 
 | +	gpio-line-names = | 
 | +		"POWER_OUT","RESET_OUT","","","","","","NMI_OUT", | 
 | +		"g_led","","","","","","","", | 
 | +		"","","","","","","","", | 
 | +		"","","","","","","","", | 
 | +		"","","","","","","","", | 
 | +		"","","","","","","","", | 
 | +		"","","","","","","","", | 
 | +		"","","","","","","","", | 
 | +		"","","PS_PWROK","POST_COMPLETE","POWER_BUTTON","RESET_BUTTON","NMI_BUTTON","", | 
 | +		"","","","","","","","", | 
 | +		"","","","","","","","", | 
 | +		"","","","","","","","", | 
 | +		"","","","","","","","", | 
 | +		"","","","","","","","", | 
 | +		"","","","","","","","", | 
 | +		"","","","","","","",""; | 
 | +}; | 
 | + | 
 | +&serial0 { | 
 | +	status = "okay"; | 
 | +}; | 
 | + | 
 | +&fiu0 { | 
 | +	status = "okay"; | 
 | +	spi-nor@0 { | 
 | +		compatible = "jedec,spi-nor"; | 
 | +		#address-cells = <1>; | 
 | +		#size-cells = <1>; | 
 | +		spi-rx-bus-width = <2>; | 
 | +		spi-tx-bus-width = <2>; | 
 | +		reg = <0>; | 
 | +		spi-max-frequency = <5000000>; | 
 | +		partitions@80000000 { | 
 | +			compatible = "fixed-partitions"; | 
 | +			#address-cells = <1>; | 
 | +			#size-cells = <1>; | 
 | +			bbuboot1@0 { | 
 | +				label = "bb-uboot-1"; | 
 | +				reg = <0x0000000 0x80000>; | 
 | +				read-only; | 
 | +				}; | 
 | +			bbuboot2@80000 { | 
 | +				label = "bb-uboot-2"; | 
 | +				reg = <0x0080000 0x80000>; | 
 | +				read-only; | 
 | +				}; | 
 | +			envparam@100000 { | 
 | +				label = "env-param"; | 
 | +				reg = <0x0100000 0x40000>; | 
 | +				read-only; | 
 | +				}; | 
 | +			spare@140000 { | 
 | +				label = "spare"; | 
 | +				reg = <0x0140000 0xC0000>; | 
 | +				}; | 
 | +			kernel@200000 { | 
 | +				label = "kernel"; | 
 | +				reg = <0x0200000 0x400000>; | 
 | +				}; | 
 | +			rootfs@600000 { | 
 | +				label = "rootfs"; | 
 | +				reg = <0x0600000 0x700000>; | 
 | +				}; | 
 | +			spare1@D00000 { | 
 | +				label = "spare1"; | 
 | +				reg = <0x0D00000 0x200000>; | 
 | +				}; | 
 | +			spare2@0F00000 { | 
 | +				label = "spare2"; | 
 | +				reg = <0x0F00000 0x200000>; | 
 | +				}; | 
 | +			spare3@1100000 { | 
 | +				label = "spare3"; | 
 | +				reg = <0x1100000 0x200000>; | 
 | +				}; | 
 | +			spare4@1300000 { | 
 | +				label = "spare4"; | 
 | +				reg = <0x1300000 0x0>; | 
 | +			}; | 
 | +		}; | 
 | +	}; | 
 | +}; | 
 | + | 
 | +&fiu1 { | 
 | +	/*pinctrl-0 = <&spi1_pins>, <&spi1quad_pins>;*/ | 
 | +	status = "okay"; | 
 | +	spi-nor@0 { | 
 | +		compatible = "jedec,spi-nor"; | 
 | +		#address-cells = <1>; | 
 | +		#size-cells = <1>; | 
 | +		reg = <0>; | 
 | +		spi-max-frequency = <5000000>; | 
 | +		partitions@A0000000 { | 
 | +			compatible = "fixed-partitions"; | 
 | +			#address-cells = <1>; | 
 | +			#size-cells = <1>; | 
 | +			system1@0 { | 
 | +				label = "spi1-system1"; | 
 | +				reg = <0x0 0x0>; | 
 | +			}; | 
 | +		}; | 
 | +	}; | 
 | +}; | 
 | + | 
 | +&fiu3 { | 
 | +	pinctrl-0 = <&spi3_pins>, <&spi3quad_pins>; | 
 | +	status = "okay"; | 
 | +	spi-nor@0 { | 
 | +		compatible = "jedec,spi-nor"; | 
 | +		#address-cells = <1>; | 
 | +		#size-cells = <1>; | 
 | +		reg = <0>; | 
 | +		spi-max-frequency = <5000000>; | 
 | +		partitions@A0000000 { | 
 | +			compatible = "fixed-partitions"; | 
 | +			#address-cells = <1>; | 
 | +			#size-cells = <1>; | 
 | +			system1@0 { | 
 | +				label = "spi3-system1"; | 
 | +				reg = <0x0 0x0>; | 
 | +			}; | 
 | +		}; | 
 | +	}; | 
 | +}; | 
 | + | 
 | +&fiux { | 
 | +	spix-mode; | 
 | +}; | 
 | + | 
 | +&ehci1 { | 
 | +	status = "okay"; | 
 | +}; | 
 | + | 
 | +&ehci2 { | 
 | +	status = "okay"; | 
 | +}; | 
 | + | 
 | +&ohci1 { | 
 | +        status = "okay"; | 
 | +}; | 
 | + | 
 | +&sdhci { | 
 | +	status = "okay"; | 
 | +}; | 
 | + | 
 | +&pcie { | 
 | +	/* used for e1000e PCI -> AXI window opening */ | 
 | +	dma-ranges = <0x02000000 0 0x00000000 0x0 0x00000000 0 0x40000000>; | 
 | +	npcm-pci-ep-rst = <&gpio3 24 1>; | 
 | +	status = "okay"; | 
 | +}; | 
 | + | 
 | +&pcimbox { | 
 | +	status = "okay"; | 
 | +}; | 
 | + | 
 | +&udc0 { | 
 | +	status = "okay"; | 
 | +}; | 
 | + | 
 | +&udc1 { | 
 | +	status = "okay"; | 
 | +}; | 
 | + | 
 | +&udc2 { | 
 | +	status = "okay"; | 
 | +}; | 
 | + | 
 | +&udc3 { | 
 | +	status = "okay"; | 
 | +}; | 
 | + | 
 | +&udc4 { | 
 | +	status = "okay"; | 
 | +}; | 
 | + | 
 | +&udc5 { | 
 | +	status = "okay"; | 
 | +}; | 
 | + | 
 | +&udc6 { | 
 | +	status = "okay"; | 
 | +}; | 
 | + | 
 | +&udc7 { | 
 | +	status = "okay"; | 
 | +}; | 
 | + | 
 | +&lpc_kcs { | 
 | +	kcs1: kcs1@0 { | 
 | +		status = "okay"; | 
 | +	}; | 
 | + | 
 | +	kcs2: kcs2@0 { | 
 | +		status = "okay"; | 
 | +	}; | 
 | + | 
 | +	kcs3: kcs3@0 { | 
 | +		status = "okay"; | 
 | +	}; | 
 | +}; | 
 | + | 
 | +&lpc_host { | 
 | +	lpc_bpc: lpc_bpc@40 { | 
 | +		monitor-ports = <0x80>; | 
 | +		status = "okay"; | 
 | +	}; | 
 | +}; | 
 | + | 
 | +&peci { | 
 | +	cmd-timeout-ms = <1000>; | 
 | +	npcm,pull-down = <0>; | 
 | +	npcm,host-neg-bit-rate = <15>; | 
 | +	status = "okay"; | 
 | +	intel-peci-dimmtemp@30 { | 
 | +		compatible = "intel,peci-client"; | 
 | +		reg = <0x30>; | 
 | +		status = "okay"; | 
 | +	}; | 
 | +}; | 
 | + | 
 | +&jtm1 { | 
 | +	status = "okay"; | 
 | +}; | 
 | + | 
 | +&rng { | 
 | +	status = "okay"; | 
 | +}; | 
 | + | 
 | +&adc { | 
 | +	#io-channel-cells = <1>; | 
 | +	status = "okay"; | 
 | +}; | 
 | + | 
 | +&watchdog1 { | 
 | +	status = "okay"; | 
 | +}; | 
 | + | 
 | +&pwm_fan { | 
 | +	status = "okay"; | 
 | +	pinctrl-names = "default"; | 
 | +	pinctrl-0 = <&pwm0_pins &pwm1_pins | 
 | +		&pwm2_pins &pwm3_pins | 
 | +		&pwm4_pins &pwm5_pins | 
 | +		&pwm6_pins &pwm7_pins | 
 | +		&fanin0_pins &fanin1_pins | 
 | +		&fanin2_pins &fanin3_pins | 
 | +		&fanin4_pins &fanin5_pins | 
 | +		&fanin6_pins &fanin7_pins>; | 
 | +	#address-cells = <1>; | 
 | +	#size-cells = <0>; | 
 | +	fan@0 { | 
 | +		reg = <0x00>; | 
 | +		fan-tach-ch = /bits/ 8 <0x00 0x01>; | 
 | +		cooling-levels = <127 255>; | 
 | +	}; | 
 | +	fan@1 { | 
 | +		reg = <0x01>; | 
 | +		fan-tach-ch = /bits/ 8 <0x02 0x03>; | 
 | +		cooling-levels = /bits/ 8 <127 255>; | 
 | +	}; | 
 | +	fan@2 { | 
 | +		reg = <0x02>; | 
 | +		fan-tach-ch = /bits/ 8 <0x04 0x05>; | 
 | +		cooling-levels = /bits/ 8 <127 255>; | 
 | +	}; | 
 | +	fan@3 { | 
 | +		reg = <0x03>; | 
 | +		fan-tach-ch = /bits/ 8 <0x06 0x07>; | 
 | +		cooling-levels = /bits/ 8 <127 255>; | 
 | +	}; | 
 | +	fan@4 { | 
 | +		reg = <0x04>; | 
 | +		fan-tach-ch = /bits/ 8 <0x08 0x09>; | 
 | +		cooling-levels = /bits/ 8 <127 255>; | 
 | +	}; | 
 | +	fan@5 { | 
 | +		reg = <0x05>; | 
 | +		fan-tach-ch = /bits/ 8 <0x0A 0x0B>; | 
 | +		cooling-levels = /bits/ 8 <127 255>; | 
 | +	}; | 
 | +	fan@6 { | 
 | +		reg = <0x06>; | 
 | +		fan-tach-ch = /bits/ 8 <0x0C 0x0D>; | 
 | +		cooling-levels = /bits/ 8 <127 255>; | 
 | +	}; | 
 | +	fan@7 { | 
 | +		reg = <0x07>; | 
 | +		fan-tach-ch = /bits/ 8 <0x0E 0x0F>; | 
 | +		cooling-levels = /bits/ 8 <127 255>; | 
 | +	}; | 
 | +}; | 
 | + | 
 | +&i2c0 { | 
 | +	status = "okay"; | 
 | + | 
 | +}; | 
 | + | 
 | +&i2c1 { | 
 | +	status = "okay"; | 
 | +	eeprom@50 { | 
 | +		compatible = "atmel,24c256"; | 
 | +		reg = <0x50>; | 
 | +	}; | 
 | +}; | 
 | + | 
 | +&i2c2 { | 
 | +	status = "okay"; | 
 | +	ipmb@10 { | 
 | +		compatible = "ipmb-dev"; | 
 | +		reg = <0x10>; | 
 | +		i2c-protocol; | 
 | +	}; | 
 | +}; | 
 | + | 
 | +&i2c3 { | 
 | +	status = "okay"; | 
 | +	ipmb@11 { | 
 | +		compatible = "ipmb-dev"; | 
 | +		reg = <0x11>; | 
 | +		i2c-protocol; | 
 | +	}; | 
 | +}; | 
 | + | 
 | +&i2c4 { | 
 | +	status = "okay"; | 
 | +}; | 
 | + | 
 | +&i2c5 { | 
 | +	status = "okay"; | 
 | +}; | 
 | + | 
 | +&i2c6 { | 
 | +	status = "okay"; | 
 | +	tmp100@48 { | 
 | +		compatible = "tmp100"; | 
 | +		reg = <0x48>; | 
 | +		status = "okay"; | 
 | +	}; | 
 | +}; | 
 | + | 
 | +&i2c7 { | 
 | +	status = "okay"; | 
 | +}; | 
 | + | 
 | +&i2c8 { | 
 | +	status = "okay"; | 
 | +}; | 
 | + | 
 | +&i2c9 { | 
 | +	status = "okay"; | 
 | +}; | 
 | + | 
 | +&i2c10 { | 
 | +	status = "okay"; | 
 | +}; | 
 | + | 
 | +&i2c11 { | 
 | +	status = "okay"; | 
 | +}; | 
 | + | 
 | +&i2c12 { | 
 | +	status = "okay"; | 
 | +}; | 
 | + | 
 | +&i2c13 { | 
 | +	status = "okay"; | 
 | +}; | 
 | + | 
 | +&i2c14 { | 
 | +	status = "okay"; | 
 | +}; | 
 | + | 
 | +&i2c15 { | 
 | +	status = "okay"; | 
 | +}; | 
 | + | 
 | +&i2c16 { | 
 | +	status = "okay"; | 
 | +}; | 
 | + | 
 | +&i2c17 { | 
 | +	status = "okay"; | 
 | +}; | 
 | + | 
 | +&i2c18 { | 
 | +	status = "okay"; | 
 | +}; | 
 | + | 
 | +&i2c19 { | 
 | +	status = "okay"; | 
 | +}; | 
 | + | 
 | +&i2c20 { | 
 | +	status = "okay"; | 
 | +}; | 
 | + | 
 | +&i2c21 { | 
 | +	status = "okay"; | 
 | +}; | 
 | + | 
 | +&i2c22 { | 
 | +	status = "okay"; | 
 | +}; | 
 | + | 
 | +&i2c23 { | 
 | +	status = "okay"; | 
 | +}; | 
 | + | 
 | +&i2c24 { | 
 | +	status = "okay"; | 
 | +}; | 
 | + | 
 | +&i2c25 { | 
 | +	status = "okay"; | 
 | +}; | 
 | + | 
 | +&i2c26 { | 
 | +	status = "okay"; | 
 | +}; | 
 | + | 
 | +&i3c0 { | 
 | +	status = "okay"; | 
 | +	i3c-scl-hz = <12500000>; | 
 | +	i2c-scl-hz = <400000>; | 
 | +	use-dma; | 
 | +}; | 
 | +&i3c1 { | 
 | +	status = "okay"; | 
 | +	i3c-scl-hz = <12500000>; | 
 | +	i2c-scl-hz = <400000>; | 
 | +}; | 
 | + | 
 | +&mc { | 
 | +	status = "okay"; | 
 | +}; | 
 | + | 
 | +&gmac0 { | 
 | +	phy-mode = "rgmii-id"; | 
 | +	snps,eee-force-disable; | 
 | +	gpios = <&gpio2 14 GPIO_ACTIVE_HIGH>, | 
 | +		<&gpio2 15 GPIO_ACTIVE_HIGH>; | 
 | +	status = "okay"; | 
 | +}; | 
 | + | 
 | +&gmac1 { | 
 | +	phy-mode = "rgmii-id"; | 
 | +	snps,eee-force-disable; | 
 | +	status = "okay"; | 
 | +}; | 
 | + | 
 | +&gmac2 { | 
 | +	pinctrl-names = "default"; | 
 | +	snps,ps-speed = <100>; | 
 | +	pinctrl-0 = <&r1_pins | 
 | +			&r1oen_pins>; | 
 | +	status = "okay"; | 
 | +	use-ncsi; | 
 | +}; | 
 | + | 
 | +&gmac3 { | 
 | +	phy-mode = "rmii"; | 
 | +	pinctrl-names = "default"; | 
 | +	pinctrl-0 = <&r2_pins | 
 | +			&r2oen_pins>; | 
 | +	phy-handle = <&phy1>; | 
 | +	status = "okay"; | 
 | +}; | 
 | + | 
 | +&pinctrl { | 
 | +	pinctrl-names = "default"; | 
 | +	pinctrl-0 = < | 
 | +			&jtag2_pins | 
 | +			&lpc_pins | 
 | +			&spix_pins | 
 | +			&pin4_slew | 
 | +			&pin5_slew | 
 | +			&pin6_slew | 
 | +			&pin7_slew | 
 | +			&pin108_slew | 
 | +			&pin109_slew | 
 | +			&pin240_slew | 
 | +			&pin241_slew | 
 | +			&pin242_slew | 
 | +			&pin243_slew>; | 
 | +}; | 
 | + | 
 | +&vcd { | 
 | +	status = "okay"; | 
 | +}; | 
 | + | 
 | +&ece { | 
 | +	status = "okay"; | 
 | +}; | 
 | + | 
 | +&tip_mbox { | 
 | +	status = "okay"; | 
 | +}; | 
 | diff --git a/arch/arm64/boot/dts/nuvoton/nuvoton-npcm845-pincfg-evb.dtsi b/arch/arm64/boot/dts/nuvoton/nuvoton-npcm845-pincfg-evb.dtsi | 
 | new file mode 100644 | 
 | index 000000000000..fb3fce8437db | 
 | --- /dev/null | 
 | +++ b/arch/arm64/boot/dts/nuvoton/nuvoton-npcm845-pincfg-evb.dtsi | 
 | @@ -0,0 +1,79 @@ | 
 | +// SPDX-License-Identifier: GPL-2.0 | 
 | +// Copyright (c) 2018 Nuvoton Technology | 
 | + | 
 | +/ { | 
 | +	pinctrl: pinctrl@f0800000 { | 
 | +		pin4_slew: pin4_slew { | 
 | +			pins = "GPIO4/IOX2_DI/SMB1D_SDA"; | 
 | +			slew-rate = <1>; | 
 | +		}; | 
 | +		pin5_slew: pin5_slew { | 
 | +			pins = "GPIO5/IOX2_LD/SMB1D_SCL"; | 
 | +			slew-rate = <1>; | 
 | +		}; | 
 | +		pin6_slew: pin6_slew { | 
 | +			pins = "GPIO6/IOX2_CK/SMB2D_SDA"; | 
 | +			slew-rate = <1>; | 
 | +		}; | 
 | +		pin7_slew: pin7_slew { | 
 | +			pins = "GPIO7/IOX2_D0/SMB2D_SCL"; | 
 | +			slew-rate = <1>; | 
 | +		}; | 
 | +		pin33_slew: pin33-slew { | 
 | +			pins = "GPIO33/I3C4_SCL"; | 
 | +			slew-rate = <1>; | 
 | +		}; | 
 | +		pin34_slew: pin34-slew { | 
 | +			pins = "GPIO34/I3C4_SDA"; | 
 | +			slew-rate = <1>; | 
 | +		}; | 
 | +		pin106_slew: pin106-slew { | 
 | +			pins = "GPIO106/I3C5_SCL"; | 
 | +			slew-rate = <1>; | 
 | +		}; | 
 | +		pin107_slew: pin107-slew { | 
 | +			pins = "GPIO107/I3C5_SDA"; | 
 | +			slew-rate = <1>; | 
 | +		}; | 
 | +		pin108_slew: pin108-slew { | 
 | +			pins = "GPIO108/SG1_MDC"; | 
 | +			slew-rate = <1>; | 
 | +		}; | 
 | +		pin109_slew: pin109-slew { | 
 | +			pins = "GPIO109/SG1_MDIO"; | 
 | +			slew-rate = <1>; | 
 | +		}; | 
 | +		pin240_slew: pin240-slew { | 
 | +			pins = "GPIO240/I3C0_SCL"; | 
 | +			slew-rate = <1>; | 
 | +		}; | 
 | +		pin241_slew: pin241-slew { | 
 | +			pins = "GPIO241/I3C0_SDA"; | 
 | +			slew-rate = <1>; | 
 | +		}; | 
 | +		pin242_slew: pin242-slew { | 
 | +			pins = "GPIO242/I3C1_SCL"; | 
 | +			slew-rate = <1>; | 
 | +		}; | 
 | +		pin243_slew: pin243-slew { | 
 | +			pins = "GPIO243/I3C1_SDA"; | 
 | +			slew-rate = <1>; | 
 | +		}; | 
 | +		pin244_slew: pin244-slew { | 
 | +			pins = "GPIO244/I3C2_SCL"; | 
 | +			slew-rate = <1>; | 
 | +		}; | 
 | +		pin245_slew: pin245-slew { | 
 | +			pins = "GPIO245/I3C2_SDA"; | 
 | +			slew-rate = <1>; | 
 | +		}; | 
 | +		pin246_slew: pin246-slew { | 
 | +			pins = "GPIO246/I3C3_SCL"; | 
 | +			slew-rate = <1>; | 
 | +		}; | 
 | +		pin247_slew: pin247-slew { | 
 | +			pins = "GPIO247/I3C3_SDA"; | 
 | +			slew-rate = <1>; | 
 | +		}; | 
 | +	}; | 
 | +}; | 
 | diff --git a/arch/arm64/boot/dts/nuvoton/nuvoton-npcm845.dtsi b/arch/arm64/boot/dts/nuvoton/nuvoton-npcm845.dtsi | 
 | new file mode 100644 | 
 | index 000000000000..41dc5d1149de | 
 | --- /dev/null | 
 | +++ b/arch/arm64/boot/dts/nuvoton/nuvoton-npcm845.dtsi | 
 | @@ -0,0 +1,262 @@ | 
 | +// SPDX-License-Identifier: GPL-2.0 | 
 | +// Copyright (c) 2021 Nuvoton Technology tomer.maimon@nuvoton.com | 
 | + | 
 | +#include "nuvoton-common-npcm8xx.dtsi" | 
 | + | 
 | +/ { | 
 | +	#address-cells = <2>; | 
 | +	#size-cells = <2>; | 
 | + | 
 | +	cpus { | 
 | +		#address-cells = <2>; | 
 | +		#size-cells = <0>; | 
 | + | 
 | +		cpu0: cpu@0 { | 
 | +			device_type = "cpu"; | 
 | +			compatible = "arm,cortex-a35"; | 
 | +			clocks = <&clk NPCM8XX_CLK_CPU>; | 
 | +			reg = <0x0 0x0>; | 
 | +			next-level-cache = <&l2>; | 
 | +			enable-method = "psci"; | 
 | +		}; | 
 | + | 
 | +		cpu1: cpu@1 { | 
 | +			device_type = "cpu"; | 
 | +			compatible = "arm,cortex-a35"; | 
 | +			clocks = <&clk NPCM8XX_CLK_CPU>; | 
 | +			reg = <0x0 0x1>; | 
 | +			next-level-cache = <&l2>; | 
 | +			enable-method = "psci"; | 
 | +		}; | 
 | + | 
 | +		cpu2: cpu@2 { | 
 | +			device_type = "cpu"; | 
 | +			compatible = "arm,cortex-a35"; | 
 | +			clocks = <&clk NPCM8XX_CLK_CPU>; | 
 | +			reg = <0x0 0x2>; | 
 | +			next-level-cache = <&l2>; | 
 | +			enable-method = "psci"; | 
 | +		}; | 
 | + | 
 | +		cpu3: cpu@3 { | 
 | +			device_type = "cpu"; | 
 | +			compatible = "arm,cortex-a35"; | 
 | +			clocks = <&clk NPCM8XX_CLK_CPU>; | 
 | +			reg = <0x0 0x3>; | 
 | +			next-level-cache = <&l2>; | 
 | +			enable-method = "psci"; | 
 | +		}; | 
 | + | 
 | +		l2: l2-cache { | 
 | +			compatible = "cache"; | 
 | +		}; | 
 | +	}; | 
 | + | 
 | +	arm-pmu { | 
 | +		compatible = "arm,cortex-a35-pmu"; | 
 | +		interrupts = <GIC_SPI 242 IRQ_TYPE_LEVEL_HIGH>, | 
 | +			     <GIC_SPI 243 IRQ_TYPE_LEVEL_HIGH>, | 
 | +			     <GIC_SPI 244 IRQ_TYPE_LEVEL_HIGH>, | 
 | +			     <GIC_SPI 245 IRQ_TYPE_LEVEL_HIGH>; | 
 | +		interrupt-affinity = <&cpu0>, <&cpu1>, <&cpu2>, <&cpu3>; | 
 | +	}; | 
 | + | 
 | +	psci { | 
 | +		compatible      = "arm,psci-1.0"; | 
 | +		method          = "smc"; | 
 | +	}; | 
 | + | 
 | +	timer { | 
 | +		compatible = "arm,armv8-timer"; | 
 | +		interrupts = <GIC_PPI 13 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>, | 
 | +			     <GIC_PPI 14 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>, | 
 | +			     <GIC_PPI 11 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>, | 
 | +			     <GIC_PPI 10 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>; | 
 | +	}; | 
 | + | 
 | +	firmware { | 
 | +		optee { | 
 | +			compatible = "linaro,optee-tz"; | 
 | +			method = "smc"; | 
 | +		}; | 
 | +	}; | 
 | + | 
 | +	ahb { | 
 | +		mc: memory-controller@f0824000 { | 
 | +			compatible = "nuvoton,npcm845-memory-controller"; | 
 | +			reg = <0x0 0xf0824000 0x0 0x1000>; | 
 | +			interrupts = <GIC_SPI 25 IRQ_TYPE_LEVEL_HIGH>; | 
 | +		}; | 
 | + | 
 | +		gmac0: eth@f0802000 { | 
 | +			device_type = "network"; | 
 | +			compatible = "snps,npcm"; | 
 | +			reg = <0x0 0xf0802000 0x0 0x2000>, | 
 | +				<0x0 0xf0780000 0x0 0x200>; | 
 | +			interrupts = <GIC_SPI 14 IRQ_TYPE_LEVEL_HIGH>; | 
 | +			interrupt-names = "macirq"; | 
 | +			clocks	= <&clk NPCM8XX_CLK_AHB>; | 
 | +			clock-names = "stmmaceth"; | 
 | +			pinctrl-names = "default"; | 
 | +			pinctrl-0 = <&rg1mdio_pins>; | 
 | +			status = "disabled"; | 
 | +		}; | 
 | + | 
 | +		gmac1: eth@f0804000 { | 
 | +			device_type = "network"; | 
 | +			compatible = "snps,dwmac"; | 
 | +			reg = <0x0 0xf0804000 0x0 0x2000>; | 
 | +			interrupts = <GIC_SPI 15 IRQ_TYPE_LEVEL_HIGH>; | 
 | +			interrupt-names = "macirq"; | 
 | +			clocks	= <&clk NPCM8XX_CLK_AHB>; | 
 | +			clock-names = "stmmaceth"; | 
 | +			pinctrl-names = "default"; | 
 | +			pinctrl-0 = <&rg2_pins | 
 | +					&rg2mdio_pins>; | 
 | +			status = "disabled"; | 
 | +		}; | 
 | + | 
 | +		mdio0: mdio@0 { | 
 | +			compatible = "virtual,mdio-gpio"; | 
 | +			gpios = <&gpio1 25 GPIO_ACTIVE_HIGH>, | 
 | +				<&gpio1 26 GPIO_ACTIVE_HIGH>; | 
 | +			#address-cells = <1>; | 
 | +			#size-cells = <0>; | 
 | + | 
 | +			phy0: ethernet-phy@1 { | 
 | +			}; | 
 | +		}; | 
 | + | 
 | +		gmac2: eth@f0806000 { | 
 | +			device_type = "network"; | 
 | +			compatible = "snps,dwmac"; | 
 | +			reg = <0x0 0xf0806000 0x0 0x2000>; | 
 | +			interrupts = <GIC_SPI 16 IRQ_TYPE_LEVEL_HIGH>; | 
 | +			interrupt-names = "macirq"; | 
 | +			clocks	= <&clk NPCM8XX_CLK_AHB>; | 
 | +			clock-names = "stmmaceth"; | 
 | +			pinctrl-names = "default"; | 
 | +			pinctrl-0 = <&r1_pins | 
 | +					&r1err_pins | 
 | +					&r1md_pins>; | 
 | +			status = "disabled"; | 
 | +		}; | 
 | + | 
 | +		mdio1: mdio@1 { | 
 | +			compatible = "virtual,mdio-gpio"; | 
 | +			gpios = <&gpio2 27 GPIO_ACTIVE_HIGH>, | 
 | +				<&gpio2 28 GPIO_ACTIVE_HIGH>; | 
 | +			#address-cells = <1>; | 
 | +			#size-cells = <0>; | 
 | + | 
 | +			phy1: ethernet-phy@1 { | 
 | +			}; | 
 | +		}; | 
 | + | 
 | +		gmac3: eth@f0808000 { | 
 | +			device_type = "network"; | 
 | +			compatible = "snps,dwmac"; | 
 | +			reg = <0x0 0xf0808000 0x0 0x2000>; | 
 | +			interrupts = <GIC_SPI 17 IRQ_TYPE_LEVEL_HIGH>; | 
 | +			interrupt-names = "macirq"; | 
 | +			clocks	= <&clk NPCM8XX_CLK_AHB>; | 
 | +			clock-names = "stmmaceth"; | 
 | +			pinctrl-names = "default"; | 
 | +			pinctrl-0 = <&r2_pins | 
 | +					&r2err_pins | 
 | +					&r2md_pins>; | 
 | +			status = "disabled"; | 
 | +		}; | 
 | + | 
 | +		udc0:udc@f0830000 { | 
 | +			compatible = "nuvoton,npcm845-udc"; | 
 | +			reg = <0x0 0xf0830000 0x0 0x1000 | 
 | +			       0x0 0xfffeb000 0x0 0x800>; | 
 | +			interrupts = <GIC_SPI 51 IRQ_TYPE_LEVEL_HIGH>; | 
 | +			clocks = <&clk NPCM8XX_CLK_SU>; | 
 | +			clock-names = "clk_usb_bridge"; | 
 | +		}; | 
 | + | 
 | +		udc1:udc@f0831000 { | 
 | +			compatible = "nuvoton,npcm845-udc"; | 
 | +			reg = <0x0 0xf0831000 0x0 0x1000 | 
 | +			       0x0 0xfffeb800 0x0 0x800>; | 
 | +			interrupts = <GIC_SPI 52 IRQ_TYPE_LEVEL_HIGH>; | 
 | +			clocks = <&clk NPCM8XX_CLK_SU>; | 
 | +			clock-names = "clk_usb_bridge"; | 
 | +		}; | 
 | + | 
 | +		udc2:udc@f0832000 { | 
 | +			compatible = "nuvoton,npcm845-udc"; | 
 | +			reg = <0x0 0xf0832000 0x0 0x1000 | 
 | +			       0x0 0xfffec000 0x0 0x800>; | 
 | +			interrupts = <GIC_SPI 53 IRQ_TYPE_LEVEL_HIGH>; | 
 | +			clocks = <&clk NPCM8XX_CLK_SU>; | 
 | +			clock-names = "clk_usb_bridge"; | 
 | +		}; | 
 | + | 
 | +		udc3:udc@f0833000 { | 
 | +			compatible = "nuvoton,npcm845-udc"; | 
 | +			reg = <0x0 0xf0833000 0x0 0x1000 | 
 | +			       0x0 0xfffec800 0x0 0x800>; | 
 | +			interrupts = <GIC_SPI 54 IRQ_TYPE_LEVEL_HIGH>; | 
 | +			clocks = <&clk NPCM8XX_CLK_SU>; | 
 | +			clock-names = "clk_usb_bridge"; | 
 | +		}; | 
 | + | 
 | +		udc4:udc@f0834000 { | 
 | +			compatible = "nuvoton,npcm845-udc"; | 
 | +			reg = <0x0 0xf0834000 0x0 0x1000 | 
 | +			       0x0 0xfffed000 0x0 0x800>; | 
 | +			interrupts = <GIC_SPI 55 IRQ_TYPE_LEVEL_HIGH>; | 
 | +			clocks = <&clk NPCM8XX_CLK_SU>; | 
 | +			clock-names = "clk_usb_bridge"; | 
 | +		}; | 
 | + | 
 | +		udc5:udc@f0835000 { | 
 | +			compatible = "nuvoton,npcm845-udc"; | 
 | +			reg = <0x0 0xf0835000 0x0 0x1000 | 
 | +			       0x0 0xfffed800 0x0 0x800>; | 
 | +			interrupts = <GIC_SPI 56 IRQ_TYPE_LEVEL_HIGH>; | 
 | +			clocks = <&clk NPCM8XX_CLK_SU>; | 
 | +			clock-names = "clk_usb_bridge"; | 
 | +		}; | 
 | + | 
 | +		udc6:udc@f0836000 { | 
 | +			compatible = "nuvoton,npcm845-udc"; | 
 | +			reg = <0x0 0xf0836000 0x0 0x1000 | 
 | +			       0x0 0xfffee000 0x0 0x800>; | 
 | +			interrupts = <GIC_SPI 57 IRQ_TYPE_LEVEL_HIGH>; | 
 | +			clocks = <&clk NPCM8XX_CLK_SU>; | 
 | +			clock-names = "clk_usb_bridge"; | 
 | +		}; | 
 | + | 
 | +		udc7:udc@f0837000 { | 
 | +			compatible = "nuvoton,npcm845-udc"; | 
 | +			reg = <0x0 0xf0837000 0x0 0x1000 | 
 | +			       0x0 0xfffee800 0x0 0x800>; | 
 | +			interrupts = <GIC_SPI 58 IRQ_TYPE_LEVEL_HIGH>; | 
 | +			clocks = <&clk NPCM8XX_CLK_SU>; | 
 | +			clock-names = "clk_usb_bridge"; | 
 | +		}; | 
 | + | 
 | +		udc8:udc@f0838000 { | 
 | +			compatible = "nuvoton,npcm845-udc"; | 
 | +			reg = <0x0 0xf0838000 0x0 0x1000 | 
 | +			       0x0 0xfffef000 0x0 0x800>; | 
 | +			interrupts = <GIC_SPI 59 IRQ_TYPE_LEVEL_HIGH>; | 
 | +			clocks = <&clk NPCM8XX_CLK_SU>; | 
 | +			clock-names = "clk_usb_bridge"; | 
 | +		}; | 
 | + | 
 | +		udc9:udc@f0839000 { | 
 | +			compatible = "nuvoton,npcm845-udc"; | 
 | +			reg = <0x0 0xf0839000 0x0 0x1000 | 
 | +			       0x0 0xfffef800 0x0 0x800>; | 
 | +			interrupts = <GIC_SPI 60 IRQ_TYPE_LEVEL_HIGH>; | 
 | +			clocks = <&clk NPCM8XX_CLK_SU>; | 
 | +			clock-names = "clk_usb_bridge"; | 
 | +			status = "disable"; | 
 | +		}; | 
 | +	}; | 
 | +}; | 
 | diff --git a/arch/arm64/configs/defconfig b/arch/arm64/configs/defconfig | 
 | index 4972a81d40d6..d2f74789eddd 100644 | 
 | --- a/arch/arm64/configs/defconfig | 
 | +++ b/arch/arm64/configs/defconfig | 
 | @@ -48,6 +48,7 @@ CONFIG_ARCH_MEDIATEK=y | 
 |  CONFIG_ARCH_MESON=y | 
 |  CONFIG_ARCH_MVEBU=y | 
 |  CONFIG_ARCH_MXC=y | 
 | +CONFIG_ARCH_NPCM=y | 
 |  CONFIG_ARCH_QCOM=y | 
 |  CONFIG_ARCH_RENESAS=y | 
 |  CONFIG_ARCH_ROCKCHIP=y | 
 | @@ -596,6 +597,7 @@ CONFIG_MESON_WATCHDOG=m | 
 |  CONFIG_RENESAS_WDT=y | 
 |  CONFIG_UNIPHIER_WATCHDOG=y | 
 |  CONFIG_BCM2835_WDT=y | 
 | +CONFIG_NPCM7XX_WATCHDOG=y | 
 |  CONFIG_MFD_ALTERA_SYSMGR=y | 
 |  CONFIG_MFD_BD9571MWV=y | 
 |  CONFIG_MFD_AXP20X_I2C=y | 
 | @@ -961,6 +963,7 @@ CONFIG_COMMON_CLK_S2MPS11=y | 
 |  CONFIG_COMMON_CLK_PWM=y | 
 |  CONFIG_COMMON_CLK_VC5=y | 
 |  CONFIG_COMMON_CLK_ZYNQMP=y | 
 | +CONFIG_COMMON_CLK_NPCM8XX=y | 
 |  CONFIG_COMMON_CLK_BD718XX=m | 
 |  CONFIG_CLK_RASPBERRYPI=m | 
 |  CONFIG_CLK_IMX8MM=y | 
 | --  | 
 | 2.25.1 | 
 |  |