code:
/*
 * Device Tree common file for gpio-fan on Buffalo Linkstation
 *
 * Copyright (C) 2015, 2016
 * Roger Shimizu <rogershimizu@gmail.com>
 *
 * This file is dual-licensed: you can use it either under the terms
 * of the GPL or the X11 license, at your option. Note that this dual
 * licensing only applies to this file, and not this project as a
 * whole.
 *
 *  a) This file is free software; you can redistribute it and/or
 *     modify it under the terms of the GNU General Public License as
 *     published by the Free Software Foundation; either version 2 of the
 *     License, or (at your option) any later version.
 *
 *     This file is distributed in the hope that it will be useful,
 *     but WITHOUT ANY WARRANTY; without even the implied warranty of
 *     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 *     GNU General Public License for more details.
 *
 * Or, alternatively,
 *
 *  b) Permission is hereby granted, free of charge, to any person
 *     obtaining a copy of this software and associated documentation
 *     files (the "Software"), to deal in the Software without
 *     restriction, including without limitation the rights to use,
 *     copy, modify, merge, publish, distribute, sublicense, and/or
 *     sell copies of the Software, and to permit persons to whom the
 *     Software is furnished to do so, subject to the following
 *     conditions:
 *
 *     The above copyright notice and this permission notice shall be
 *     included in all copies or substantial portions of the Software.
 *
 *     THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
 *     EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
 *     OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
 *     NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
 *     HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
 *     WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
 *     FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
 *     OTHER DEALINGS IN THE SOFTWARE.
 */

/ {
	gpio_fan {
		compatible = "gpio-fan";
		pinctrl-0 = <&pmx_fan_low &pmx_fan_high &pmx_fan_lock>;
		pinctrl-names = "default";

		gpio-fan,speed-map =
			<0		3
			1500	2
			3250	1
			5000	0>;
	};
};

&pinctrl {
	pmx_fan_low: pmx-fan-low {
		marvell,function = "gpio";
	};

	pmx_fan_high: pmx-fan-high {
		marvell,function = "gpio";
	};

	pmx_fan_lock: pmx-fan-lock {
		marvell,function = "gpio";
	};
};


code:
/*
 * Device Tree common file for gpio-{keys,leds} on Buffalo Linkstation
 *
 * Copyright (C) 2015, 2016
 * Roger Shimizu <rogershimizu@gmail.com>
 *
 * This file is dual-licensed: you can use it either under the terms
 * of the GPL or the X11 license, at your option. Note that this dual
 * licensing only applies to this file, and not this project as a
 * whole.
 *
 *  a) This file is free software; you can redistribute it and/or
 *     modify it under the terms of the GNU General Public License as
 *     published by the Free Software Foundation; either version 2 of the
 *     License, or (at your option) any later version.
 *
 *     This file is distributed in the hope that it will be useful,
 *     but WITHOUT ANY WARRANTY; without even the implied warranty of
 *     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 *     GNU General Public License for more details.
 *
 * Or, alternatively,
 *
 *  b) Permission is hereby granted, free of charge, to any person
 *     obtaining a copy of this software and associated documentation
 *     files (the "Software"), to deal in the Software without
 *     restriction, including without limitation the rights to use,
 *     copy, modify, merge, publish, distribute, sublicense, and/or
 *     sell copies of the Software, and to permit persons to whom the
 *     Software is furnished to do so, subject to the following
 *     conditions:
 *
 *     The above copyright notice and this permission notice shall be
 *     included in all copies or substantial portions of the Software.
 *
 *     THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
 *     EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
 *     OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
 *     NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
 *     HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
 *     WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
 *     FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
 *     OTHER DEALINGS IN THE SOFTWARE.
 */

#include <dt-bindings/input/input.h>

/ {
	gpio_keys {
		compatible = "gpio-keys";
		#address-cells = <1>;
		#size-cells = <0>;
		pinctrl-0 = <&pmx_power_switch>;
		pinctrl-names = "default";

		power-on-switch {
			label = "Power-on Switch";
			linux,code = <KEY_RESERVED>;
			linux,input-type = <5>;
		};

		power-auto-switch {
			label = "Power-auto Switch";
			linux,code = <KEY_ESC>;
			linux,input-type = <5>;
		};
	};

	gpio_leds {
		compatible = "gpio-leds";
		pinctrl-0 = <&pmx_led_power &pmx_led_alarm &pmx_led_info>;
		pinctrl-names = "default";

		blue-power-led {
			label = "linkstation:blue:power";
			default-state = "keep";
		};

		red-alarm-led {
			label = "linkstation:red:alarm";
		};

		amber-info-led {
			label = "linkstation:amber:info";
		};
	};
};

&pinctrl {
	pmx_power_switch: pmx-power-switch {
		marvell,function = "gpio";
	};

	pmx_led_power: pmx-leds {
		marvell,function = "gpio";
	};

	pmx_led_alarm: pmx-leds {
		marvell,function = "gpio";
	};

	pmx_led_info: pmx-leds {
		marvell,function = "gpio";
	};
};

repo_name: angery/linux


code:
/* SPDX-License-Identifier: GPL-2.0-only */
/*
 * Header providing constants for i.MX28 pinctrl bindings.
 *
 * Copyright (C) 2013 Lothar Waßmann <LW@KARO-electronics.de>
 */

#ifndef __DT_BINDINGS_MXS_PINCTRL_H__
#define __DT_BINDINGS_MXS_PINCTRL_H__

/* fsl,drive-strength property */
#define MXS_DRIVE_4mA		0
#define MXS_DRIVE_8mA		1
#define MXS_DRIVE_12mA		2
#define MXS_DRIVE_16mA		3

/* fsl,voltage property */
#define MXS_VOLTAGE_LOW		0
#define MXS_VOLTAGE_HIGH	1

/* fsl,pull-up property */
#define MXS_PULL_DISABLE	0
#define MXS_PULL_ENABLE		1

#endif /* __DT_BINDINGS_MXS_PINCTRL_H__ */


code:
// SPDX-License-Identifier: GPL-2.0-only
/*
 *  linux/arch/arm/boot/nspire-classic.dts
 *
 *  Copyright (C) 2013 Daniel Tang <tangrs@tangrs.id.au>
 */

/include/ "nspire.dtsi"

&lcd {
	port {
		clcd_pads: endpoint {
			remote-endpoint = <&panel_in>;
		};
	};
};

&fast_timer {
	/* compatible = "lsi,zevio-timer"; */
	reg = <0x90010000 0x1000>, <0x900a0010 0x8>;
};

&uart {
	compatible = "ns16550";
	reg-shift = <2>;
	reg-io-width = <4>;
	clocks = <&apb_pclk>;
	no-loopback-test;
};

&timer0 {
	/* compatible = "lsi,zevio-timer"; */
	reg = <0x900c0000 0x1000>, <0x900a0018 0x8>;
};

&timer1 {
	compatible = "lsi,zevio-timer";
	reg = <0x900d0000 0x1000>, <0x900a0020 0x8>;
};

&keypad {
	active-low;

};

&base_clk {
	compatible = "lsi,nspire-classic-clock";
};

&ahb_clk {
	compatible = "lsi,nspire-classic-ahb-divider";
};

&vbus_reg {
	gpio = <&gpio 5 0>;
};

/ {
	memory {
		device_type = "memory";
		reg = <0x10000000 0x2000000>; /* 32 MB */
	};

	ahb {
		#address-cells = <1>;
		#size-cells = <1>;

		intc: interrupt-controller@dc000000 {
			compatible = "lsi,zevio-intc";
			interrupt-controller;
			reg = <0xdc000000 0x1000>;
			#interrupt-cells = <1>;
		};
	};

	panel {
		compatible = "ti,nspire-classic-lcd-panel";
		port {
			panel_in: endpoint {
				remote-endpoint = <&clcd_pads>;
			};
		};
	};
	chosen {
		bootargs = "debug earlyprintk console=tty0 console=ttyS0,115200n8 root=/dev/ram0";
	};
};


code:
// SPDX-License-Identifier: GPL-2.0-only
/*
 *  linux/arch/arm/boot/nspire.dtsi
 *
 *  Copyright (C) 2013 Daniel Tang <tangrs@tangrs.id.au>
 */

/ {
	#address-cells = <1>;
	#size-cells = <1>;
	interrupt-parent = <&intc>;

	cpus {
		cpu@0 {
			compatible = "arm,arm926ej-s";
		};
	};

	bootrom: bootrom@0 {
		reg = <0x00000000 0x80000>;
	};

	sram: sram@a4000000 {
		device = "memory";
		reg = <0xa4000000 0x20000>;
	};

	timer_clk: timer_clk {
		#clock-cells = <0>;
		compatible = "fixed-clock";
		clock-frequency = <32768>;
	};

	base_clk: base_clk {
		#clock-cells = <0>;
		reg = <0x900b0024 0x4>;
	};

	ahb_clk: ahb_clk {
		#clock-cells = <0>;
		reg = <0x900b0024 0x4>;
		clocks = <&base_clk>;
	};

	apb_pclk: apb_pclk {
		#clock-cells = <0>;
		compatible = "fixed-factor-clock";
		clock-div = <2>;
		clock-mult = <1>;
		clocks = <&ahb_clk>;
	};

	usb_phy: usb_phy {
		compatible = "usb-nop-xceiv";
		#phy-cells = <0>;
	};

	vbus_reg: vbus_reg {
		compatible = "regulator-fixed";

		regulator-name = "USB VBUS output";
		regulator-type = "voltage";

		regulator-min-microvolt = <5000000>;
		regulator-max-microvolt = <5000000>;
	};

	ahb {
		compatible = "simple-bus";
		#address-cells = <1>;
		#size-cells = <1>;
		ranges;

		spi: spi@a9000000 {
			reg = <0xa9000000 0x1000>;
		};

		usb0: usb@b0000000 {
			compatible = "lsi,zevio-usb";
			reg = <0xb0000000 0x1000>;
			interrupts = <8>;

			usb-phy = <&usb_phy>;
			vbus-supply = <&vbus_reg>;
		};

		usb1: usb@b4000000 {
			reg = <0xb4000000 0x1000>;
			interrupts = <9>;
			status = "disabled";
		};

		lcd: lcd@c0000000 {
			compatible = "arm,pl111", "arm,primecell";
			reg = <0xc0000000 0x1000>;
			interrupts = <21>;

			/*
			 * We assume the same clock is fed to APB and CLCDCLK.
			 * There is some code to scale the clock down by a factor
			 * 48 for the display so likely the frequency to the
			 * display is 1MHz and the CLCDCLK is 48 MHz.
			 */
			clocks = <&apb_pclk>, <&apb_pclk>;
			clock-names = "clcdclk", "apb_pclk";
		};

		adc: adc@c4000000 {
			reg = <0xc4000000 0x1000>;
			interrupts = <11>;
		};

		tdes: crypto@c8010000 {
			reg = <0xc8010000 0x1000>;
		};

		sha256: crypto@cc000000 {
			reg = <0xcc000000 0x1000>;
		};

		apb@90000000 {
			compatible = "simple-bus";
			#address-cells = <1>;
			#size-cells = <1>;
			clock-ranges;
			ranges;

			gpio: gpio@90000000 {
				compatible = "lsi,zevio-gpio";
				reg = <0x90000000 0x1000>;
				interrupts = <7>;
				gpio-controller;
				#gpio-cells = <2>;
			};

			fast_timer: timer@90010000 {
				reg = <0x90010000 0x1000>;
				interrupts = <17>;
			};

			uart: serial@90020000 {
				reg = <0x90020000 0x1000>;
				interrupts = <1>;
			};

			timer0: timer@900c0000 {
				reg = <0x900c0000 0x1000>;
				clocks = <&timer_clk>, <&timer_clk>,
					 <&timer_clk>;
				clock-names = "timer0clk", "timer1clk",
					      "apb_pclk";
			};

			timer1: timer@900d0000 {
				reg = <0x900d0000 0x1000>;
				interrupts = <19>;
				clocks = <&timer_clk>, <&timer_clk>,
					 <&timer_clk>;
				clock-names = "timer0clk", "timer1clk",
					      "apb_pclk";
			};

			watchdog: watchdog@90060000 {
				compatible = "arm,amba-primecell";
				reg = <0x90060000 0x1000>;
				interrupts = <3>;
			};

			rtc: rtc@90090000 {
				reg = <0x90090000 0x1000>;
				interrupts = <4>;
			};

			misc: misc@900a0000 {
				reg = <0x900a0000 0x1000>;
			};

			pwr: pwr@900b0000 {
				reg = <0x900b0000 0x1000>;
				interrupts = <15>;
			};

			keypad: input@900e0000 {
				compatible = "ti,nspire-keypad";
				reg = <0x900e0000 0x1000>;
				interrupts = <16>;

				scan-interval = <1000>;
				row-delay = <200>;

				clocks = <&apb_pclk>;
			};

			contrast: contrast@900f0000 {
				reg = <0x900f0000 0x1000>;
			};

			led: led@90110000 {
				reg = <0x90110000 0x1000>;
			};
		};
	};
};


code:
// SPDX-License-Identifier: GPL-2.0
// Copyright (c) 2018 Nuvoton Technology tomer.maimon@nuvoton.com
// Copyright 2018 Google, Inc.

#include <dt-bindings/interrupt-controller/arm-gic.h>
#include <dt-bindings/clock/nuvoton,npcm7xx-clock.h>
#include <dt-bindings/reset/nuvoton,npcm7xx-reset.h>

/ {
	#address-cells = <1>;
	#size-cells = <1>;
	interrupt-parent = <&gic>;

	/* external reference clock */
	clk_refclk: clk_refclk {
		compatible = "fixed-clock";
		#clock-cells = <0>;
		clock-frequency = <25000000>;
		clock-output-names = "refclk";
	};

	/* external reference clock for cpu. float in normal operation */
	clk_sysbypck: clk_sysbypck {
		compatible = "fixed-clock";
		#clock-cells = <0>;
		clock-frequency = <800000000>;
		clock-output-names = "sysbypck";
	};

	/* external reference clock for MC. float in normal operation */
	clk_mcbypck: clk_mcbypck {
		compatible = "fixed-clock";
		#clock-cells = <0>;
		clock-frequency = <800000000>;
		clock-output-names = "mcbypck";
	};

	 /* external clock signal rg1refck, supplied by the phy */
	clk_rg1refck: clk_rg1refck {
		compatible = "fixed-clock";
		#clock-cells = <0>;
		clock-frequency = <125000000>;
		clock-output-names = "clk_rg1refck";
	};

	 /* external clock signal rg2refck, supplied by the phy */
	clk_rg2refck: clk_rg2refck {
		compatible = "fixed-clock";
		#clock-cells = <0>;
		clock-frequency = <125000000>;
		clock-output-names = "clk_rg2refck";
	};

	clk_xin: clk_xin {
		compatible = "fixed-clock";
		#clock-cells = <0>;
		clock-frequency = <50000000>;
		clock-output-names = "clk_xin";
	};

	soc {
		#address-cells = <1>;
		#size-cells = <1>;
		compatible = "simple-bus";
		interrupt-parent = <&gic>;
		ranges = <0x0 0xf0000000 0x00900000>;

		scu: scu@3fe000 {
			compatible = "arm,cortex-a9-scu";
			reg = <0x3fe000 0x1000>;
		};

		l2: cache-controller@3fc000 {
			compatible = "arm,pl310-cache";
			reg = <0x3fc000 0x1000>;
			interrupts = <GIC_SPI 21 IRQ_TYPE_LEVEL_HIGH>;
			cache-unified;
			cache-level = <2>;
			clocks = <&clk NPCM7XX_CLK_AXI>;
			arm,shared-override;
		};

		gic: interrupt-controller@3ff000 {
			compatible = "arm,cortex-a9-gic";
			interrupt-controller;
			#interrupt-cells = <3>;
			reg = <0x3ff000 0x1000>,
				<0x3fe100 0x100>;
		};

		gcr: gcr@800000 {
			compatible = "nuvoton,npcm750-gcr", "syscon", "simple-mfd";
			reg = <0x800000 0x1000>;
		};

		rst: rst@801000 {
			compatible = "nuvoton,npcm750-rst", "syscon", "simple-mfd";
			reg = <0x801000 0x6C>;
		};
	};

	ahb {
		#address-cells = <1>;
		#size-cells = <1>;
		compatible = "simple-bus";
		interrupt-parent = <&gic>;
		ranges;

		rstc: rstc@f0801000 {
			compatible = "nuvoton,npcm750-reset";
			reg = <0xf0801000 0x70>;
			#reset-cells = <2>;
			nuvoton,sysgcr = <&gcr>;
		};

		clk: clock-controller@f0801000 {
			compatible = "nuvoton,npcm750-clk", "syscon";
			#clock-cells = <1>;
			clock-controller;
			reg = <0xf0801000 0x1000>;
			clock-names = "refclk", "sysbypck", "mcbypck";
			clocks = <&clk_refclk>, <&clk_sysbypck>, <&clk_mcbypck>;
		};

		gmac0: eth@f0802000 {
			device_type = "network";
			compatible = "snps,dwmac";
			reg = <0xf0802000 0x2000>;
			interrupts = <GIC_SPI 14 IRQ_TYPE_LEVEL_HIGH>;
			interrupt-names = "macirq";
			ethernet = <0>;
			clocks = <&clk_rg1refck>, <&clk NPCM7XX_CLK_AHB>;
			clock-names = "stmmaceth", "clk_gmac";
			pinctrl-names = "default";
			pinctrl-0 = <&rg1_pins
					&rg1mdio_pins>;
			status = "disabled";
		};

		ehci1: usb@f0806000 {
			compatible = "nuvoton,npcm750-ehci";
			reg = <0xf0806000 0x1000>;
			interrupts = <GIC_SPI 61 IRQ_TYPE_LEVEL_HIGH>;
			status = "disabled";
		};

		fiu0: spi@fb000000 {
			compatible = "nuvoton,npcm750-fiu";
			#address-cells = <1>;
			#size-cells = <0>;
			reg = <0xfb000000 0x1000>;
			reg-names = "control", "memory";
			clocks = <&clk NPCM7XX_CLK_SPI0>;
			clock-names = "clk_spi0";
			status = "disabled";
		};

		fiu3: spi@c0000000 {
			compatible = "nuvoton,npcm750-fiu";
			#address-cells = <1>;
			#size-cells = <0>;
			reg = <0xc0000000 0x1000>;
			reg-names = "control", "memory";
			clocks = <&clk NPCM7XX_CLK_SPI3>;
			clock-names = "clk_spi3";
			pinctrl-names = "default";
			pinctrl-0 = <&spi3_pins>;
			status = "disabled";
		};

		fiux: spi@fb001000 {
			compatible = "nuvoton,npcm750-fiu";
			#address-cells = <1>;
			#size-cells = <0>;
			reg = <0xfb001000 0x1000>;
			reg-names = "control", "memory";
			clocks = <&clk NPCM7XX_CLK_SPIX>;
			clock-names = "clk_spix";
			status = "disabled";
		};

		apb {
			#address-cells = <1>;
			#size-cells = <1>;
			compatible = "simple-bus";
			interrupt-parent = <&gic>;
			ranges = <0x0 0xf0000000 0x00300000>;

			lpc_kcs: lpc_kcs@7000 {
				compatible = "nuvoton,npcm750-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,npcm750-kcs-bmc";
					reg = <0x0 0x40>;
					interrupts = <GIC_SPI 9 IRQ_TYPE_LEVEL_HIGH>;
					kcs_chan = <1>;
					status = "disabled";
				};

				kcs2: kcs2@0 {
					compatible = "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,npcm750-kcs-bmc";
					reg = <0x0 0x40>;
					interrupts = <GIC_SPI 9 IRQ_TYPE_LEVEL_HIGH>;
					kcs_chan = <3>;
					status = "disabled";
				};
			};

			spi0: spi@200000 {
				compatible = "nuvoton,npcm750-pspi";
				reg = <0x200000 0x1000>;
				pinctrl-names = "default";
				pinctrl-0 = <&pspi1_pins>;
				#address-cells = <1>;
				#size-cells = <0>;
				interrupts = <GIC_SPI 31 IRQ_TYPE_LEVEL_HIGH>;
				clocks = <&clk NPCM7XX_CLK_APB5>;
				clock-names = "clk_apb5";
				resets = <&rstc NPCM7XX_RESET_IPSRST2 NPCM7XX_RESET_PSPI1>;
				status = "disabled";
			};

			spi1: spi@201000 {
				compatible = "nuvoton,npcm750-pspi";
				reg = <0x201000 0x1000>;
				pinctrl-names = "default";
				pinctrl-0 = <&pspi2_pins>;
				#address-cells = <1>;
				#size-cells = <0>;
				interrupts = <GIC_SPI 28 IRQ_TYPE_LEVEL_HIGH>;
				clocks = <&clk NPCM7XX_CLK_APB5>;
				clock-names = "clk_apb5";
				resets = <&rstc NPCM7XX_RESET_IPSRST2 NPCM7XX_RESET_PSPI2>;
				status = "disabled";
			};

			timer0: timer@8000 {
				compatible = "nuvoton,npcm750-timer";
				interrupts = <GIC_SPI 32 IRQ_TYPE_LEVEL_HIGH>;
				reg = <0x8000 0x1C>;
				clocks = <&clk NPCM7XX_CLK_TIMER>;
			};

			watchdog0: watchdog@801C {
				compatible = "nuvoton,npcm750-wdt";
				interrupts = <GIC_SPI 47 IRQ_TYPE_LEVEL_HIGH>;
				reg = <0x801C 0x4>;
				status = "disabled";
				clocks = <&clk NPCM7XX_CLK_TIMER>;
			};

			watchdog1: watchdog@901C {
				compatible = "nuvoton,npcm750-wdt";
				interrupts = <GIC_SPI 48 IRQ_TYPE_LEVEL_HIGH>;
				reg = <0x901C 0x4>;
				status = "disabled";
				clocks = <&clk NPCM7XX_CLK_TIMER>;
			};

			watchdog2: watchdog@a01C {
				compatible = "nuvoton,npcm750-wdt";
				interrupts = <GIC_SPI 49 IRQ_TYPE_LEVEL_HIGH>;
				reg = <0xa01C 0x4>;
				status = "disabled";
				clocks = <&clk NPCM7XX_CLK_TIMER>;
			};

			serial0: serial@1000 {
				compatible = "nuvoton,npcm750-uart";
				reg = <0x1000 0x1000>;
				clocks = <&clk NPCM7XX_CLK_UART>;
				interrupts = <GIC_SPI 2 IRQ_TYPE_LEVEL_HIGH>;
				reg-shift = <2>;
				status = "disabled";
			};

			serial1: serial@2000 {
				compatible = "nuvoton,npcm750-uart";
				reg = <0x2000 0x1000>;
				clocks = <&clk NPCM7XX_CLK_UART>;
				interrupts = <GIC_SPI 3 IRQ_TYPE_LEVEL_HIGH>;
				reg-shift = <2>;
				status = "disabled";
			};

			serial2: serial@3000 {
				compatible = "nuvoton,npcm750-uart";
				reg = <0x3000 0x1000>;
				clocks = <&clk NPCM7XX_CLK_UART>;
				interrupts = <GIC_SPI 4 IRQ_TYPE_LEVEL_HIGH>;
				reg-shift = <2>;
				status = "disabled";
			};

			serial3: serial@4000 {
				compatible = "nuvoton,npcm750-uart";
				reg = <0x4000 0x1000>;
				clocks = <&clk NPCM7XX_CLK_UART>;
				interrupts = <GIC_SPI 5 IRQ_TYPE_LEVEL_HIGH>;
				reg-shift = <2>;
				status = "disabled";
			};

			rng: rng@b000 {
				compatible = "nuvoton,npcm750-rng";
				reg = <0xb000 0x8>;
				status = "disabled";
			};

			adc: adc@c000 {
				compatible = "nuvoton,npcm750-adc";
				reg = <0xc000 0x8>;
				interrupts = <GIC_SPI 0 IRQ_TYPE_LEVEL_HIGH>;
				clocks = <&clk NPCM7XX_CLK_ADC>;
				resets = <&rstc NPCM7XX_RESET_IPSRST1 NPCM7XX_RESET_ADC>;
				status = "disabled";
			};

			pwm_fan: pwm-fan-controller@103000 {
				#address-cells = <1>;
				#size-cells = <0>;
				compatible = "nuvoton,npcm750-pwm-fan";
				reg = <0x103000 0x2000>, <0x180000 0x8000>;
				reg-names = "pwm", "fan";
				clocks = <&clk NPCM7XX_CLK_APB3>,
					<&clk NPCM7XX_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
						&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";
			};

			i2c0: i2c@80000 {
				reg = <0x80000 0x1000>;
				compatible = "nuvoton,npcm750-i2c";
				#address-cells = <1>;
				#size-cells = <0>;
				clocks = <&clk NPCM7XX_CLK_APB2>;
				interrupts = <GIC_SPI 64 IRQ_TYPE_LEVEL_HIGH>;
				pinctrl-names = "default";
				pinctrl-0 = <&smb0_pins>;
				status = "disabled";
			};

			i2c1: i2c@81000 {
				reg = <0x81000 0x1000>;
				compatible = "nuvoton,npcm750-i2c";
				#address-cells = <1>;
				#size-cells = <0>;
				clocks = <&clk NPCM7XX_CLK_APB2>;
				interrupts = <GIC_SPI 65 IRQ_TYPE_LEVEL_HIGH>;
				pinctrl-names = "default";
				pinctrl-0 = <&smb1_pins>;
				status = "disabled";
			};

			i2c2: i2c@82000 {
				reg = <0x82000 0x1000>;
				compatible = "nuvoton,npcm750-i2c";
				#address-cells = <1>;
				#size-cells = <0>;
				clocks = <&clk NPCM7XX_CLK_APB2>;
				interrupts = <GIC_SPI 66 IRQ_TYPE_LEVEL_HIGH>;
				pinctrl-names = "default";
				pinctrl-0 = <&smb2_pins>;
				status = "disabled";
			};

			i2c3: i2c@83000 {
				reg = <0x83000 0x1000>;
				compatible = "nuvoton,npcm750-i2c";
				#address-cells = <1>;
				#size-cells = <0>;
				clocks = <&clk NPCM7XX_CLK_APB2>;
				interrupts = <GIC_SPI 67 IRQ_TYPE_LEVEL_HIGH>;
				pinctrl-names = "default";
				pinctrl-0 = <&smb3_pins>;
				status = "disabled";
			};

			i2c4: i2c@84000 {
				reg = <0x84000 0x1000>;
				compatible = "nuvoton,npcm750-i2c";
				#address-cells = <1>;
				#size-cells = <0>;
				clocks = <&clk NPCM7XX_CLK_APB2>;
				interrupts = <GIC_SPI 68 IRQ_TYPE_LEVEL_HIGH>;
				pinctrl-names = "default";
				pinctrl-0 = <&smb4_pins>;
				status = "disabled";
			};

			i2c5: i2c@85000 {
				reg = <0x85000 0x1000>;
				compatible = "nuvoton,npcm750-i2c";
				#address-cells = <1>;
				#size-cells = <0>;
				clocks = <&clk NPCM7XX_CLK_APB2>;
				interrupts = <GIC_SPI 69 IRQ_TYPE_LEVEL_HIGH>;
				pinctrl-names = "default";
				pinctrl-0 = <&smb5_pins>;
				status = "disabled";
			};

			i2c6: i2c@86000 {
				reg = <0x86000 0x1000>;
				compatible = "nuvoton,npcm750-i2c";
				#address-cells = <1>;
				#size-cells = <0>;
				clocks = <&clk NPCM7XX_CLK_APB2>;
				interrupts = <GIC_SPI 70 IRQ_TYPE_LEVEL_HIGH>;
				pinctrl-names = "default";
				pinctrl-0 = <&smb6_pins>;
				status = "disabled";
			};

			i2c7: i2c@87000 {
				reg = <0x87000 0x1000>;
				compatible = "nuvoton,npcm750-i2c";
				#address-cells = <1>;
				#size-cells = <0>;
				clocks = <&clk NPCM7XX_CLK_APB2>;
				interrupts = <GIC_SPI 71 IRQ_TYPE_LEVEL_HIGH>;
				pinctrl-names = "default";
				pinctrl-0 = <&smb7_pins>;
				status = "disabled";
			};

			i2c8: i2c@88000 {
				reg = <0x88000 0x1000>;
				compatible = "nuvoton,npcm750-i2c";
				#address-cells = <1>;
				#size-cells = <0>;
				clocks = <&clk NPCM7XX_CLK_APB2>;
				interrupts = <GIC_SPI 72 IRQ_TYPE_LEVEL_HIGH>;
				pinctrl-names = "default";
				pinctrl-0 = <&smb8_pins>;
				status = "disabled";
			};

			i2c9: i2c@89000 {
				reg = <0x89000 0x1000>;
				compatible = "nuvoton,npcm750-i2c";
				#address-cells = <1>;
				#size-cells = <0>;
				clocks = <&clk NPCM7XX_CLK_APB2>;
				interrupts = <GIC_SPI 73 IRQ_TYPE_LEVEL_HIGH>;
				pinctrl-names = "default";
				pinctrl-0 = <&smb9_pins>;
				status = "disabled";
			};

			i2c10: i2c@8a000 {
				reg = <0x8a000 0x1000>;
				compatible = "nuvoton,npcm750-i2c";
				#address-cells = <1>;
				#size-cells = <0>;
				clocks = <&clk NPCM7XX_CLK_APB2>;
				interrupts = <GIC_SPI 74 IRQ_TYPE_LEVEL_HIGH>;
				pinctrl-names = "default";
				pinctrl-0 = <&smb10_pins>;
				status = "disabled";
			};

			i2c11: i2c@8b000 {
				reg = <0x8b000 0x1000>;
				compatible = "nuvoton,npcm750-i2c";
				#address-cells = <1>;
				#size-cells = <0>;
				clocks = <&clk NPCM7XX_CLK_APB2>;
				interrupts = <GIC_SPI 75 IRQ_TYPE_LEVEL_HIGH>;
				pinctrl-names = "default";
				pinctrl-0 = <&smb11_pins>;
				status = "disabled";
			};

			i2c12: i2c@8c000 {
				reg = <0x8c000 0x1000>;
				compatible = "nuvoton,npcm750-i2c";
				#address-cells = <1>;
				#size-cells = <0>;
				clocks = <&clk NPCM7XX_CLK_APB2>;
				interrupts = <GIC_SPI 76 IRQ_TYPE_LEVEL_HIGH>;
				pinctrl-names = "default";
				pinctrl-0 = <&smb12_pins>;
				status = "disabled";
			};

			i2c13: i2c@8d000 {
				reg = <0x8d000 0x1000>;
				compatible = "nuvoton,npcm750-i2c";
				#address-cells = <1>;
				#size-cells = <0>;
				clocks = <&clk NPCM7XX_CLK_APB2>;
				interrupts = <GIC_SPI 77 IRQ_TYPE_LEVEL_HIGH>;
				pinctrl-names = "default";
				pinctrl-0 = <&smb13_pins>;
				status = "disabled";
			};

			i2c14: i2c@8e000 {
				reg = <0x8e000 0x1000>;
				compatible = "nuvoton,npcm750-i2c";
				#address-cells = <1>;
				#size-cells = <0>;
				clocks = <&clk NPCM7XX_CLK_APB2>;
				interrupts = <GIC_SPI 78 IRQ_TYPE_LEVEL_HIGH>;
				pinctrl-names = "default";
				pinctrl-0 = <&smb14_pins>;
				status = "disabled";
			};

			i2c15: i2c@8f000 {
				reg = <0x8f000 0x1000>;
				compatible = "nuvoton,npcm750-i2c";
				#address-cells = <1>;
				#size-cells = <0>;
				clocks = <&clk NPCM7XX_CLK_APB2>;
				interrupts = <GIC_SPI 79 IRQ_TYPE_LEVEL_HIGH>;
				pinctrl-names = "default";
				pinctrl-0 = <&smb15_pins>;
				status = "disabled";
			};
		};
	};

	pinctrl: pinctrl@f0800000 {
		#address-cells = <1>;
		#size-cells = <1>;
		compatible = "nuvoton,npcm750-pinctrl", "syscon", "simple-mfd";
		ranges = <0 0xf0010000 0x8000>;
		gpio0: gpio@f0010000 {
			gpio-controller;
			#gpio-cells = <2>;
			reg = <0x0 0x80>;
			interrupts = <GIC_SPI 116 IRQ_TYPE_LEVEL_HIGH>;
			gpio-ranges = <&pinctrl 0 0 32>;
		};
		gpio1: gpio@f0011000 {
			gpio-controller;
			#gpio-cells = <2>;
			reg = <0x1000 0x80>;
			interrupts = <GIC_SPI 117 IRQ_TYPE_LEVEL_HIGH>;
			gpio-ranges = <&pinctrl 0 32 32>;
		};
		gpio2: gpio@f0012000 {
			gpio-controller;
			#gpio-cells = <2>;
			reg = <0x2000 0x80>;
			interrupts = <GIC_SPI 118 IRQ_TYPE_LEVEL_HIGH>;
			gpio-ranges = <&pinctrl 0 64 32>;
		};
		gpio3: gpio@f0013000 {
			gpio-controller;
			#gpio-cells = <2>;
			reg = <0x3000 0x80>;
			interrupts = <GIC_SPI 119 IRQ_TYPE_LEVEL_HIGH>;
			gpio-ranges = <&pinctrl 0 96 32>;
		};
		gpio4: gpio@f0014000 {
			gpio-controller;
			#gpio-cells = <2>;
			reg = <0x4000 0x80>;
			interrupts = <GIC_SPI 120 IRQ_TYPE_LEVEL_HIGH>;
			gpio-ranges = <&pinctrl 0 128 32>;
		};
		gpio5: gpio@f0015000 {
			gpio-controller;
			#gpio-cells = <2>;
			reg = <0x5000 0x80>;
			interrupts = <GIC_SPI 121 IRQ_TYPE_LEVEL_HIGH>;
			gpio-ranges = <&pinctrl 0 160 32>;
		};
		gpio6: gpio@f0016000 {
			gpio-controller;
			#gpio-cells = <2>;
			reg = <0x6000 0x80>;
			interrupts = <GIC_SPI 122 IRQ_TYPE_LEVEL_HIGH>;
			gpio-ranges = <&pinctrl 0 192 32>;
		};
		gpio7: gpio@f0017000 {
			gpio-controller;
			#gpio-cells = <2>;
			reg = <0x7000 0x80>;
			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";
		};
		pspi2_pins: pspi2-pins {
			groups = "pspi2";
			function = "pspi2";
		};
		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";
		};
		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";
		};
		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";
		};
		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";
		};
		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";
		};
		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";
		};
		smb7_pins: smb7-pins {
			groups = "smb7";
			function = "smb7";
		};
		pspi1_pins: pspi1-pins {
			groups = "pspi1";
			function = "pspi1";
		};
		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";
		};
	};
};


code:
// SPDX-License-Identifier: GPL-2.0
// Copyright (c) 2020 Quanta Computer Inc. George.Hung@quantatw.com

/dts-v1/;
#include "nuvoton-npcm730.dtsi"
#include <dt-bindings/gpio/gpio.h>

/ {
	model = "Quanta GBS Board (Device Tree)";
	compatible = "quanta,gbs-bmc","nuvoton,npcm730";

	aliases {
		ethernet1 = &gmac0;
		serial0 = &serial0;
		serial1 = &serial1;
		serial2 = &serial2;
		serial3 = &serial3;
		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 = &i2c0_slotPE0_0;
		i2c17 = &i2c0_slotPE1_1;
		i2c18 = &i2c0_slotUSB_2;
		i2c19 = &i2c0_3;
		i2c20 = &i2c5_i2cool_0;
		i2c21 = &i2c5_i2cool_1;
		i2c22 = &i2c5_i2cool_2;
		i2c23 = &i2c5_hsbp_fru_3;
		i2c24 = &i2c6_u2_15_0;
		i2c25 = &i2c6_u2_14_1;
		i2c26 = &i2c6_u2_13_2;
		i2c27 = &i2c6_u2_12_3;
		i2c28 = &i2c7_u2_11_0;
		i2c29 = &i2c7_u2_10_1;
		i2c30 = &i2c7_u2_9_2;
		i2c31 = &i2c7_u2_8_3;
		i2c32 = &i2c9_vddcr_cpu;
		i2c33 = &i2c9_vddcr_soc;
		i2c34 = &i2c9_vddio_efgh;
		i2c35 = &i2c9_vddio_abcd;
		i2c36 = &i2c10_u2_7_0;
		i2c37 = &i2c10_u2_6_1;
		i2c38 = &i2c10_u2_5_2;
		i2c39 = &i2c10_u2_4_3;
		i2c40 = &i2c11_clk_buf0_0;
		i2c41 = &i2c11_clk_buf1_1;
		i2c42 = &i2c11_clk_buf2_2;
		i2c43 = &i2c11_clk_buf3_3;
		i2c44 = &i2c14_u2_3_0;
		i2c45 = &i2c14_u2_2_1;
		i2c46 = &i2c14_u2_1_2;
		i2c47 = &i2c14_u2_0_3;
		fiu0 = &fiu0;
		fiu1 = &fiu3;
	};

	chosen {
		stdout-path = &serial0;
	};

	memory {
		reg = <0 0x40000000>;
	};

	gpio-keys {
		compatible = "gpio-keys";
		sas-cable0 {
			label = "sas-cable0";
			gpios = <&gpio2 9 GPIO_ACTIVE_LOW>;
			linux,code = <73>;
		};

		sas-cable1 {
			label = "sas-cable1";
			gpios = <&gpio2 8 GPIO_ACTIVE_LOW>;
			linux,code = <72>;
		};

		sas-cable2 {
			label = "sas-cable2";
			gpios = <&gpio2 7 GPIO_ACTIVE_LOW>;
			linux,code = <71>;
		};

		sas-cable3 {
			label = "sas-cable3";
			gpios = <&gpio2 6 GPIO_ACTIVE_LOW>;
			linux,code = <70>;
		};

		sata0 {
			label = "sata0";
			gpios = <&gpio0 5 GPIO_ACTIVE_LOW>;
			linux,code = <5>;
		};

		hsbp-cable {
			label = "hsbp-cable";
			gpios = <&gpio1 25 GPIO_ACTIVE_LOW>;
			linux,code = <57>;
		};

		fanbd-cable {
			label = "fanbd-cable";
			gpios = <&gpio1 26 GPIO_ACTIVE_HIGH>;
			linux,code = <58>;
		};

		bp12v-cable {
			label = "bp12v-cable";
			gpios = <&gpio2 5 GPIO_ACTIVE_HIGH>;
			linux,code = <69>;
		};

		pe-slot0 {
			label = "pe-slot0";
			gpios = <&gpio3 24 GPIO_ACTIVE_LOW>;
			linux,code = <120>;
		};

		pe-slot1 {
			label = "pe-slot1";
			gpios = <&gpio3 25 GPIO_ACTIVE_LOW>;
			linux,code = <121>;
		};
	};

	iio-hwmon {
		compatible = "iio-hwmon";
		io-channels = <&adc 1>, <&adc 2>;
	};

	iio-hwmon-battery {
		compatible = "iio-hwmon";
		io-channels = <&adc 0>;
	};

	leds {
		compatible = "gpio-leds";

		heartbeat { /* gpio153 */
			gpios = <&gpio4 25 GPIO_ACTIVE_LOW>;
			linux,default-trigger = "heartbeat";
		};

		attention { /* gpio215 */
			gpios = <&gpio6 23 GPIO_ACTIVE_HIGH>;
			default-state = "off";
		};

		sys_boot_status { /* gpio216 */
			gpios = <&gpio6 24 GPIO_ACTIVE_HIGH>;
			default-state = "keep";
			retain-state-shutdown;
		};

		bmc_fault { /* gpio217 */
			gpios = <&gpio6 25 GPIO_ACTIVE_HIGH>;
			default-state = "off";
			linux,default-trigger = "panic";
			panic-indicator;
		};

		led_u2_0_locate {
			gpios = <&pca9535_ledlocate 3 GPIO_ACTIVE_LOW>;
			default-state = "off";
		};

		led_u2_1_locate {
			gpios = <&pca9535_ledlocate 2 GPIO_ACTIVE_LOW>;
			default-state = "off";
		};

		led_u2_2_locate {
			gpios = <&pca9535_ledlocate 1 GPIO_ACTIVE_LOW>;
			default-state = "off";
		};

		led_u2_3_locate {
			gpios = <&pca9535_ledlocate 0 GPIO_ACTIVE_LOW>;
			default-state = "off";
		};

		led_u2_4_locate {
			gpios = <&pca9535_ledlocate 7 GPIO_ACTIVE_LOW>;
			default-state = "off";
		};

		led_u2_5_locate {
			gpios = <&pca9535_ledlocate 6 GPIO_ACTIVE_LOW>;
			default-state = "off";
		};

		led_u2_6_locate {
			gpios = <&pca9535_ledlocate 5 GPIO_ACTIVE_LOW>;
			default-state = "off";
		};

		led_u2_7_locate {
			gpios = <&pca9535_ledlocate 4 GPIO_ACTIVE_LOW>;
			default-state = "off";
		};

		led_u2_8_locate {
			gpios = <&pca9535_ledlocate 11 GPIO_ACTIVE_LOW>;
			default-state = "off";
		};

		led_u2_9_locate {
			gpios = <&pca9535_ledlocate 10 GPIO_ACTIVE_LOW>;
			default-state = "off";
		};

		led_u2_10_locate {
			gpios = <&pca9535_ledlocate 9 GPIO_ACTIVE_LOW>;
			default-state = "off";
		};

		led_u2_11_locate {
			gpios = <&pca9535_ledlocate 8 GPIO_ACTIVE_LOW>;
			default-state = "off";
		};

		led_u2_12_locate {
			gpios = <&pca9535_ledlocate 15 GPIO_ACTIVE_LOW>;
			default-state = "off";
		};

		led_u2_13_locate {
			gpios = <&pca9535_ledlocate 14 GPIO_ACTIVE_LOW>;
			default-state = "off";
		};

		led_u2_14_locate {
			gpios = <&pca9535_ledlocate 13 GPIO_ACTIVE_LOW>;
			default-state = "off";
		};

		led_u2_15_locate {
			gpios = <&pca9535_ledlocate 12 GPIO_ACTIVE_LOW>;
			default-state = "off";
		};

		led_u2_0_fault {
			gpios = <&pca9535_ledfault 3 GPIO_ACTIVE_LOW>;
			default-state = "off";
		};

		led_u2_1_fault {
			gpios = <&pca9535_ledfault 2 GPIO_ACTIVE_LOW>;
			default-state = "off";
		};

		led_u2_2_fault {
			gpios = <&pca9535_ledfault 1 GPIO_ACTIVE_LOW>;
			default-state = "off";
		};

		led_u2_3_fault {
			gpios = <&pca9535_ledfault 0 GPIO_ACTIVE_LOW>;
			default-state = "off";
		};

		led_u2_4_fault {
			gpios = <&pca9535_ledfault 7 GPIO_ACTIVE_LOW>;
			default-state = "off";
		};

		led_u2_5_fault {
			gpios = <&pca9535_ledfault 6 GPIO_ACTIVE_LOW>;
			default-state = "off";
		};

		led_u2_6_fault {
			gpios = <&pca9535_ledfault 5 GPIO_ACTIVE_LOW>;
			default-state = "off";
		};

		led_u2_7_fault {
			gpios = <&pca9535_ledfault 4 GPIO_ACTIVE_LOW>;
			default-state = "off";
		};

		led_u2_8_fault {
			gpios = <&pca9535_ledfault 11 GPIO_ACTIVE_LOW>;
			default-state = "off";
		};

		led_u2_9_fault {
			gpios = <&pca9535_ledfault 10 GPIO_ACTIVE_LOW>;
			default-state = "off";
		};

		led_u2_10_fault {
			gpios = <&pca9535_ledfault 9 GPIO_ACTIVE_LOW>;
			default-state = "off";
		};

		led_u2_11_fault {
			gpios = <&pca9535_ledfault 8 GPIO_ACTIVE_LOW>;
			default-state = "off";
		};

		led_u2_12_fault {
			gpios = <&pca9535_ledfault 15 GPIO_ACTIVE_LOW>;
			default-state = "off";
		};

		led_u2_13_fault {
			gpios = <&pca9535_ledfault 14 GPIO_ACTIVE_LOW>;
			default-state = "off";
		};

		led_u2_14_fault {
			gpios = <&pca9535_ledfault 13 GPIO_ACTIVE_LOW>;
			default-state = "off";
		};

		led_u2_15_fault {
			gpios = <&pca9535_ledfault 12 GPIO_ACTIVE_LOW>;
			default-state = "off";
		};

	};

	seven-seg-disp {
		compatible = "seven-seg-gpio-dev";
		refresh-interval-ms = /bits/ 16 <600>;
		clock-gpios = <&gpio0 2 GPIO_ACTIVE_LOW>;
		data-gpios = <&gpio0 3 GPIO_ACTIVE_HIGH>;
		clear-gpios = <&gpio0 1 GPIO_ACTIVE_HIGH>;
	};

	pcie-slot {
		pcie1: pcie-slot@1 {
			label = "PE0";
		};
		pcie2: pcie-slot@2 {
			label = "PE1";
		};
	};
};

&fiu0 {
	pinctrl-names = "default";
	pinctrl-0 = <&spi0cs1_pins>;
	status = "okay";
	flash@0 {
		compatible = "jedec,spi-nor";
		#address-cells = <1>;
		#size-cells = <1>;
		reg = <0>;
		spi-max-frequency = <20000000>;
		spi-rx-bus-width = <2>;
		label = "bmc";
		partitions {
			compatible = "fixed-partitions";
			#address-cells = <1>;
			#size-cells = <1>;
			u-boot@0 {
				label = "u-boot";
				reg = <0x0000000 0xf0000>;
			};
			image-descriptor@f0000 {
				label = "image-descriptor";
				reg = <0xf0000 0x10000>;
			};
			hoth-update@100000 {
				label = "hoth-update";
				reg = <0x100000 0x100000>;
			};
			kernel@200000 {
				label = "kernel";
				reg = <0x200000 0x500000>;
			};
			rofs@700000 {
				label = "rofs";
				reg = <0x700000 0x35f0000>;
			};
			rwfs@3cf0000 {
				label = "rwfs";
				reg = <0x3cf0000 0x300000>;
			};
			hoth-mailbox@3ff0000 {
				label = "hoth-mailbox";
				reg = <0x3ff0000 0x10000>;
			};
		};
	};
};

&fiu3 {
	pinctrl-0 = <&spi3_pins>, <&spi3cs1_pins>;
	status = "okay";

	flash@0 {
		compatible = "jedec,spi-nor";
		#address-cells = <1>;
		#size-cells = <1>;
		reg = <0>;
		spi-max-frequency = <50000000>;
		spi-rx-bus-width = <2>;
		m25p,fast-read;
		label = "pnor";
	};
	flash@1 {
		compatible = "jedec,spi-nor";
		#address-cells = <1>;
		#size-cells = <1>;
		reg = <1>;
		spi-max-frequency = <50000000>;
		spi-rx-bus-width = <2>;
		m25p,fast-read;
	};
};

&gcr {
	serial_port_mux: uart-mux-controller {
		compatible = "mmio-mux";
		#mux-control-cells = <1>;
		mux-reg-masks = <0x38 0x07>;
		idle-states = <2>; /* Serial port mode 3 (takeover) */
	};

	uart1_mode_mux: uart1-mode-mux-controller {
		compatible = "mmio-mux";
		#mux-control-cells = <1>;
		mux-reg-masks = <0x64 0x01000000>;
		idle-states = <0>; /* Set UART1 mode to normal (follow SPMOD) */
	};
};

&gmac0 {
	status = "okay";
	phy-mode = "rgmii-id";
	snps,eee-force-disable;
};

&ehci1 {
	status = "okay";
};

&watchdog1 {
	status = "okay";
};

&rng {
	status = "okay";
};

&serial0 {
	status = "okay";
};

&serial1 {
	status = "okay";
};

&serial2 {
	status = "okay";
};

&serial3 {
	status = "okay";
};

&adc {
	#io-channel-cells = <1>;
	status = "okay";
};

&lpc_kcs {
	kcs1: kcs1@0 {
		status = "okay";
	};

	kcs2: kcs2@0 {
		status = "okay";
	};

	kcs3: kcs3@0 {
		status = "okay";
	};
};

&spi1 {
	cs-gpios = <&gpio4 19 GPIO_ACTIVE_HIGH>; /* dummy - gpio147 */
	pinctrl-names = "default";
	pinctrl-0 = <&gpio224ol_pins &gpio227o_pins
			&gpio228_pins>;
	status = "okay";

	jtag_master@0 {
		compatible = "nuvoton,npcm750-jtag-master";
		spi-max-frequency = <25000000>;
		reg = <0>;
		status = "okay";

		pinctrl-names = "pspi", "gpio";
		pinctrl-0 = <&pspi2_pins>;
		pinctrl-1 = <&gpio224ol_pins &gpio227o_pins
				&gpio228_pins>;

		tck-gpios = <&gpio7 0 GPIO_ACTIVE_HIGH>;
		tdi-gpios = <&gpio7 3 GPIO_ACTIVE_HIGH>;
		tdo-gpios = <&gpio7 4 GPIO_ACTIVE_HIGH>;
		tms-gpios = <&gpio7 6 GPIO_ACTIVE_HIGH>;
	};
};

&i2c0 {
	clock-frequency = <100000>;
	status = "okay";

	i2c-switch@71 {
		compatible = "nxp,pca9546";
		#address-cells = <1>;
		#size-cells = <0>;
		reg = <0x71>;
		i2c-mux-idle-disconnect;
		reset-gpios = <&gpio2 20 GPIO_ACTIVE_LOW>;

		i2c0_slotPE0_0: i2c@0 {
			#address-cells = <1>;
			#size-cells = <0>;
			reg = <0>;
			pcie-slot = &pcie1;
		};

		i2c0_slotPE1_1: i2c@1 {
			#address-cells = <1>;
			#size-cells = <0>;
			reg = <1>;
			pcie-slot = &pcie2;
		};

		i2c0_slotUSB_2: i2c@2 {
			#address-cells = <1>;
			#size-cells = <0>;
			reg = <2>;
		};

		i2c0_3: i2c@3 {
			#address-cells = <1>;
			#size-cells = <0>;
			reg = <3>;
		};
	};
};

&i2c1 {
	clock-frequency = <100000>;
	status = "okay";

	pca9535_ifdet: pca9535-ifdet@24 {
		compatible = "nxp,pca9535";
		reg = <0x24>;
		gpio-controller;
		#gpio-cells = <2>;
	};

	pca9535_pwren: pca9535-pwren@20 {
		compatible = "nxp,pca9535";
		reg = <0x20>;
		gpio-controller;
		#gpio-cells = <2>;

		gpio-line-names =
			"pwr_u2_3_en","pwr_u2_2_en",
			"pwr_u2_1_en","pwr_u2_0_en",
			"pwr_u2_7_en","pwr_u2_6_en",
			"pwr_u2_5_en","pwr_u2_4_en",
			"pwr_u2_11_en","pwr_u2_10_en",
			"pwr_u2_9_en","pwr_u2_8_en",
			"pwr_u2_15_en","pwr_u2_14_en",
			"pwr_u2_13_en","pwr_u2_12_en";
	};

	pca9535_pwrgd: pca9535-pwrgd@21 {
		compatible = "nxp,pca9535";
		reg = <0x21>;
		gpio-controller;
		#gpio-cells = <2>;
	};

	pca9535_ledlocate: pca9535-ledlocate@22 {
		compatible = "nxp,pca9535";
		reg = <0x22>;
		gpio-controller;
		#gpio-cells = <2>;

	};

	pca9535_ledfault: pca9535-ledfault@23 {
		compatible = "nxp,pca9535";
		reg = <0x23>;
		gpio-controller;
		#gpio-cells = <2>;

	};

	pca9535_pwrdisable: pca9535-pwrdisable@25 {
		compatible = "nxp,pca9535";
		reg = <0x25>;
		gpio-controller;
		#gpio-cells = <2>;

		gpio-line-names =
			"u2_3_pwr_dis","u2_2_pwr_dis",
			"u2_1_pwr_dis","u2_0_pwr_dis",
			"u2_7_pwr_dis","u2_6_pwr_dis",
			"u2_5_pwr_dis","u2_4_pwr_dis",
			"u2_11_pwr_dis","u2_10_pwr_dis",
			"u2_9_pwr_dis","u2_8_pwr_dis",
			"u2_15_pwr_dis","u2_14_pwr_dis",
			"u2_13_pwr_dis","u2_12_pwr_dis";
	};

	pca9535_perst: pca9535-perst@26 {
		compatible = "nxp,pca9535";
		reg = <0x26>;
		gpio-controller;
		#gpio-cells = <2>;

		gpio-line-names =
			"u2_15_perst","u2_14_perst",
			"u2_13_perst","u2_12_perst",
			"u2_11_perst","u2_10_perst",
			"u2_9_perst","u2_8_perst",
			"u2_7_perst","u2_6_perst",
			"u2_5_perst","u2_4_perst",
			"u2_3_perst","u2_2_perst",
			"u2_1_perst","u2_0_perst";
	};
};

&i2c2 {
	clock-frequency = <100000>;
	status = "okay";

	sbtsi@4c {
		compatible = "amd,sbtsi";
		reg = <0x4c>;
	};
};

&i2c5 {
	clock-frequency = <100000>;
	status = "okay";

	mb_fru@50 {
		compatible = "atmel,24c64";
		reg = <0x50>;
	};

	i2c-switch@71 {
		compatible = "nxp,pca9546";
		#address-cells = <1>;
		#size-cells = <0>;
		reg = <0x71>;
		i2c-mux-idle-disconnect;

		i2c5_i2cool_0: i2c@0 {
			#address-cells = <1>;
			#size-cells = <0>;
			reg = <0>;
			max31725@54 {
				compatible = "maxim,max31725";
				reg = <0x54>;
				status = "okay";
			};
		};

		i2c5_i2cool_1: i2c@1 {
			#address-cells = <1>;
			#size-cells = <0>;
			reg = <1>;
			max31725@55 {
				compatible = "maxim,max31725";
				reg = <0x55>;
				status = "okay";
			};
		};

		i2c5_i2cool_2: i2c@2 {
			#address-cells = <1>;
			#size-cells = <0>;
			reg = <2>;
			max31725@5d {
				compatible = "maxim,max31725";
				reg = <0x5d>;
				status = "okay";
			};
			fan_fru@51 {
				compatible = "atmel,24c64";
				reg = <0x51>;
			};
		};

		i2c5_hsbp_fru_3: i2c@3 {
			#address-cells = <1>;
			#size-cells = <0>;
			reg = <3>;
			hsbp_fru@52 {
				compatible = "atmel,24c64";
				reg = <0x52>;
				status = "okay";
			};
		};
	};
};

&i2c6 {
	clock-frequency = <100000>;
	status = "okay";

	i2c-switch@73 {
		compatible = "nxp,pca9545";
		#address-cells = <1>;
		#size-cells = <0>;
		reg = <0x73>;
		i2c-mux-idle-disconnect;

		i2c6_u2_15_0: i2c@0 {
			#address-cells = <1>;
			#size-cells = <0>;
			reg = <0>;
		};

		i2c6_u2_14_1: i2c@1 {
			#address-cells = <1>;
			#size-cells = <0>;
			reg = <1>;
		};
		i2c6_u2_13_2: i2c@2 {
			#address-cells = <1>;
			#size-cells = <0>;
			reg = <2>;
		};

		i2c6_u2_12_3: i2c@3 {
			#address-cells = <1>;
			#size-cells = <0>;
			reg = <3>;
		};
	};
};

&i2c7 {
	clock-frequency = <100000>;
	status = "okay";

	i2c-switch@72 {
		compatible = "nxp,pca9545";
		#address-cells = <1>;
		#size-cells = <0>;
		reg = <0x72>;
		i2c-mux-idle-disconnect;

		i2c7_u2_11_0: i2c@0 {
			#address-cells = <1>;
			#size-cells = <0>;
			reg = <0>;
		};

		i2c7_u2_10_1: i2c@1 {
			#address-cells = <1>;
			#size-cells = <0>;
			reg = <1>;
		};
		i2c7_u2_9_2: i2c@2 {
			#address-cells = <1>;
			#size-cells = <0>;
			reg = <2>;
		};

		i2c7_u2_8_3: i2c@3 {
			#address-cells = <1>;
			#size-cells = <0>;
			reg = <3>;
		};
	};
};

&i2c8 {
	clock-frequency = <100000>;
	status = "okay";

	i2c8_adm1272: adm1272@10 {
		compatible = "adi,adm1272";
		#address-cells = <1>;
		#size-cells = <0>;
		reg = <0x10>;
		shunt-resistor-micro-ohms = <300>;
	};
};

&i2c9 {
	clock-frequency = <100000>;
	status = "okay";

	i2c-switch@71 {
		compatible = "nxp,pca9546";
		#address-cells = <1>;
		#size-cells = <0>;
		reg = <0x71>;
		i2c-mux-idle-disconnect;
		reset-gpios = <&gpio2 22 GPIO_ACTIVE_LOW>;

		i2c9_vddcr_cpu: i2c@0 {
			#address-cells = <1>;
			#size-cells = <0>;
			reg = <0>;
			vrm@60 {
				compatible = "isil,isl68137";
				reg = <0x60>;
			};
		};

		i2c9_vddcr_soc: i2c@1 {
			#address-cells = <1>;
			#size-cells = <0>;
			reg = <1>;
			vrm@61 {
				compatible = "isil,isl68137";
				reg = <0x61>;
			};
		};

		i2c9_vddio_efgh: i2c@2 {
			#address-cells = <1>;
			#size-cells = <0>;
			reg = <2>;
			vrm@63 {
				compatible = "isil,isl68137";
				reg = <0x63>;
			};
		};

		i2c9_vddio_abcd: i2c@3 {
			#address-cells = <1>;
			#size-cells = <0>;
			reg = <3>;
			vrm@45 {
				compatible = "isil,isl68137";
				reg = <0x45>;
			};
		};
	};
};

&i2c10 {
	clock-frequency = <100000>;
	status = "okay";

	i2c-switch@71 {
		compatible = "nxp,pca9545";
		#address-cells = <1>;
		#size-cells = <0>;
		reg = <0x71>;
		i2c-mux-idle-disconnect;

		i2c10_u2_7_0: i2c@0 {
			#address-cells = <1>;
			#size-cells = <0>;
			reg = <0>;
		};

		i2c10_u2_6_1: i2c@1 {
			#address-cells = <1>;
			#size-cells = <0>;
			reg = <1>;
		};
		i2c10_u2_5_2: i2c@2 {
			#address-cells = <1>;
			#size-cells = <0>;
			reg = <2>;
		};

		i2c10_u2_4_3: i2c@3 {
			#address-cells = <1>;
			#size-cells = <0>;
			reg = <3>;
		};
	};
};

&i2c11 {
	clock-frequency = <100000>;
	status = "okay";

	i2c-switch@76 {
		compatible = "nxp,pca9545";
		#address-cells = <1>;
		#size-cells = <0>;
		reg = <0x76>;
		i2c-mux-idle-disconnect;

		i2c11_clk_buf0_0: i2c@0 {
			#address-cells = <1>;
			#size-cells = <0>;
			reg = <0>;
		};

		i2c11_clk_buf1_1: i2c@1 {
			#address-cells = <1>;
			#size-cells = <0>;
			reg = <1>;
		};
		i2c11_clk_buf2_2: i2c@2 {
			#address-cells = <1>;
			#size-cells = <0>;
			reg = <2>;
		};

		i2c11_clk_buf3_3: i2c@3 {
			#address-cells = <1>;
			#size-cells = <0>;
			reg = <3>;
		};
	};
};

&i2c12 {
	clock-frequency = <100000>;
	status = "okay";

	max34451@4e {
		compatible = "maxim,max34451";
		reg = <0x4e>;
	};
	vrm@5d {
		compatible = "isil,isl68137";
		reg = <0x5d>;
	};
	vrm@5e {
		compatible = "isil,isl68137";
		reg = <0x5e>;
	};
};

&i2c13 {
	clock-frequency = <100000>;
	status = "okay";
};

&i2c14 {
	clock-frequency = <100000>;
	status = "okay";

	i2c-switch@70 {
		compatible = "nxp,pca9545";
		#address-cells = <1>;
		#size-cells = <0>;
		reg = <0x70>;
		i2c-mux-idle-disconnect;

		i2c14_u2_3_0: i2c@0 {
			#address-cells = <1>;
			#size-cells = <0>;
			reg = <0>;
		};

		i2c14_u2_2_1: i2c@1 {
			#address-cells = <1>;
			#size-cells = <0>;
			reg = <1>;
		};

		i2c14_u2_1_2: i2c@2 {
			#address-cells = <1>;
			#size-cells = <0>;
			reg = <2>;
		};

		i2c14_u2_0_3: i2c@3 {
			#address-cells = <1>;
			#size-cells = <0>;
			reg = <3>;
		};
	};
};

&pwm_fan {
	pinctrl-names = "default";
	pinctrl-0 = <
		&pwm0_pins &pwm1_pins
		&pwm2_pins &pwm3_pins
		&pwm4_pins
		&fanin0_pins &fanin1_pins
		&fanin2_pins &fanin3_pins
		&fanin4_pins
	>;
	status = "okay";

	fan@0 {
		reg = <0x00>;
		fan-tach-ch = /bits/ 8 <0x00>;
	};
	fan@1 {
		reg = <0x01>;
		fan-tach-ch = /bits/ 8 <0x01>;
	};
	fan@2 {
		reg = <0x02>;
		fan-tach-ch = /bits/ 8 <0x02>;
	};
	fan@3 {
		reg = <0x04>;
		fan-tach-ch = /bits/ 8 <0x04>;
	};
	fan@4 {
		reg = <0x03>;
		fan-tach-ch = /bits/ 8 <0x03>;
	};
};

&pinctrl {
	pinctrl-names = "default";

	gpio0: gpio@f0010000 {
		/* POWER_OUT=gpio07, RESET_OUT=gpio06, PS_PWROK=gpio13 */
		gpio-line-names =
		/*0-31*/
		"","","","","","","RESET_OUT","POWER_OUT",
		"","","","","","PS_PWROK","","",
		"","","","","","","","",
		"","","","","","","","";
	};
	gpio1: gpio@f0011000 {
		/* SIO_POWER_GOOD=gpio59 */
		gpio-line-names =
		/*32-63*/
		"","","","","","","","",
		"","","","","","","","",
		"","","","","","","","",
		"","","","SIO_POWER_GOOD","","","","";
	};
	gpio2: gpio@f0012000 {
		bmc_usb_mux_oe_n {
			gpio-hog;
			gpios = <25 GPIO_ACTIVE_HIGH>;
			output-low;
			line-name = "bmc-usb-mux-oe-n";
		};
		bmc_usb_mux_sel {
			gpio-hog;
			gpios = <26 GPIO_ACTIVE_HIGH>;
			output-low;
			line-name = "bmc-usb-mux-sel";
		};
		bmc_usb2517_reset_n {
			gpio-hog;
			gpios = <27 GPIO_ACTIVE_LOW>;
			output-low;
			line-name = "bmc-usb2517-reset-n";
		};
	};
	gpio3: gpio@f0013000 {
		assert_cpu0_reset {
			gpio-hog;
			gpios = <14 GPIO_ACTIVE_HIGH>;
			output-low;
			line-name = "assert-cpu0-reset";
		};
		assert_pwrok_cpu0_n {
			gpio-hog;
			gpios = <15 GPIO_ACTIVE_HIGH>;
			output-low;
			line-name = "assert-pwrok-cpu0-n";
		};
		assert_cpu0_prochot {
			gpio-hog;
			gpios = <16 GPIO_ACTIVE_HIGH>;
			output-low;
			line-name = "assert-cpu0-prochot";
		};
	};
	gpio4: gpio@f0014000 {
		/* POST_COMPLETE=gpio143 */
		gpio-line-names =
			/*128-159*/
			"","","","","","","","",
			"","","","","","","","POST_COMPLETE",
			"","","","","","","","",
			"","","","","","","","";
	};
	gpio5: gpio@f0015000 {
		/* POWER_BUTTON=gpio177 */
		gpio-line-names =
			/*160-191*/
			"","","","","","","","",
			"","","","","","","","",
			"","POWER_BUTTON","","","","","","",
			"","","","","","","","";
	};
	gpio6: gpio@f0016000 {
		/* SIO_S5=gpio199, RESET_BUTTON=gpio203 */
		gpio-line-names =
			/*192-223*/
			"","","","","","","","SIO_S5",
			"","","","RESET_BUTTON","","","","",
			"","","","","","","","",
			"","","","","","","","";
	};

	gpio224ol_pins: gpio224ol-pins {
		pins = "GPIO224/SPIXCK";
		bias-disable;
		output-low;
	};
	gpio227o_pins: gpio227o-pins {
		pins = "GPIO227/nSPIXCS0";
		bias-disable;
		output-high;
	};
	gpio228_pins: gpio228-pins {
		pins = "GPIO228/nSPIXCS1";
		bias-disable;
		input-enable;
	};
};


code:
// SPDX-License-Identifier: GPL-2.0
// Copyright (c) 2018 Nuvoton Technology tomer.maimon@nuvoton.com

/ {
	pinctrl: pinctrl@f0800000 {
		gpio0pp_pins: gpio0pp-pins {
			pins = "GPIO0/IOX1DI";
			bias-disable;
			drive-push-pull;
		};
		gpio1pp_pins: gpio1pp-pins {
			pins = "GPIO1/IOX1LD";
			bias-disable;
			drive-push-pull;
		};
		gpio2pp_pins: gpio2pp-pins {
			pins = "GPIO2/IOX1CK";
			bias-disable;
			drive-push-pull;
		};
		gpio3pp_pins: gpio3pp-pins {
			pins = "GPIO3/IOX1D0";
			bias-disable;
			drive-push-pull;
		};
		gpio4pp_pins: gpio4pp-pins {
			pins = "GPIO4/IOX2DI/SMB1DSDA";
			bias-disable;
			drive-push-pull;
		};
		gpio5pp_pins: gpio5pp-pins {
			pins = "GPIO5/IOX2LD/SMB1DSCL";
			bias-disable;
			drive-push-pull;
		};
		gpio6pp_pins: gpio6pp-pins {
			pins = "GPIO6/IOX2CK/SMB2DSDA";
			bias-disable;
			drive-push-pull;
		};
		gpio7pp_pins: gpio7pp-pins {
			pins = "GPIO7/IOX2D0/SMB2DSCL";
			bias-disable;
			drive-push-pull;
		};
		gpio8_pins: gpio8-pins {
			pins = "GPIO8/LKGPO1";
			bias-disable;
			input-enable;
		};
		gpio9_pins: gpio9-pins {
			pins = "GPIO9/LKGPO2";
			bias-disable;
			input-enable;
		};
		gpio10pp_pins: gpio10pp-pins {
			pins = "GPIO10/IOXHLD";
			bias-disable;
			drive-push-pull;
		};
		gpio11pp_pins: gpio11pp-pins {
			pins = "GPIO11/IOXHCK";
			bias-disable;
			drive-push-pull;
		};
		gpio12_pins: gpio12-pins {
			pins = "GPIO12/GSPICK/SMB5BSCL";
			bias-disable;
			input-enable;
		};
		gpio13_pins: gpio13-pins {
			pins = "GPIO13/GSPIDO/SMB5BSDA";
			bias-disable;
			input-enable;
		};
		gpio14_pins: gpio14-pins {
			pins = "GPIO14/GSPIDI/SMB5CSCL";
			bias-disable;
			input-enable;
		};
		gpio15od_pins: gpio15od-pins {
			pins = "GPIO15/GSPICS/SMB5CSDA";
			bias-disable;
			drive-open-drain;
		};
		gpio17pp_pins: gpio17pp-pins {
			pins = "GPIO17/PSPI2DI/SMB4DEN";
			bias-disable;
			drive-push-pull;
		};
		gpio18pp_pins: gpio18pp-pins {
			pins = "GPIO18/PSPI2D0/SMB4BSDA";
			bias-disable;
			drive-push-pull;
		};
		gpio19pp_pins: gpio19pp-pins {
			pins = "GPIO19/PSPI2CK/SMB4BSCL";
			bias-disable;
			drive-push-pull;
		};
		gpio24pp_pins: gpio24pp-pins {
			pins = "GPIO24/IOXHDO";
			bias-disable;
			drive-push-pull;
		};
		gpio25pp_pins: gpio25pp-pins {
			pins = "GPIO25/IOXHDI";
			bias-disable;
			drive-push-pull;
		};
		gpio37od_pins: gpio37od-pins {
			pins = "GPIO37/SMB3CSDA";
			bias-disable;
			drive-open-drain;
		};
		gpio59pp_pins: gpio59pp-pins {
			pins = "GPIO59/SMB3DSDA";
			bias-disable;
			drive-push-pull;
		};
		gpio60_pins: gpio60-pins {
			pins = "GPIO60/SMB3DSCL";
			bias-disable;
			input-enable;
		};
		gpio72od_pins: gpio72od-pins {
			pins = "GPIO72/FANIN8";
			bias-disable;
			drive-open-drain;
		};
		gpio73od_pins: gpio73od-pins {
			pins = "GPIO73/FANIN9";
			bias-disable;
			drive-open-drain;
		};
		gpio74od_pins: gpio74od-pins {
			pins = "GPIO74/FANIN10";
			bias-disable;
			drive-open-drain;
		};
		gpio75od_pins: gpio75od-pins {
			pins = "GPIO75/FANIN11";
			bias-disable;
			drive-open-drain;
		};
		gpio76od_pins: gpio76od-pins {
			pins = "GPIO76/FANIN12";
			bias-disable;
			drive-open-drain;
		};
		gpio77od_pins: gpio77od-pins {
			pins = "GPIO77/FANIN13";
			bias-disable;
			drive-open-drain;
		};
		gpio78od_pins: gpio78od-pins {
			pins = "GPIO78/FANIN14";
			bias-disable;
			drive-open-drain;
		};
		gpio79od_pins: gpio79od-pins {
			pins = "GPIO79/FANIN15";
			bias-disable;
			drive-open-drain;
		};
		gpio83_pins: gpio83-pins {
			pins = "GPIO83/PWM3";
			bias-disable;
			input-enable;
		};
		gpio84pp_pins: gpio84pp-pins {
			pins = "GPIO84/R2TXD0";
			bias-disable;
			drive-push-pull;
		};
		gpio85pp_pins: gpio85pp-pins {
			pins = "GPIO85/R2TXD1";
			bias-disable;
			drive-push-pull;
		};
		gpio86pp_pins: gpio86pp-pins {
			pins = "GPIO86/R2TXEN";
			bias-disable;
			drive-push-pull;
		};
		gpio87pp_pins: gpio87pp-pins {
			pins = "GPIO87/R2RXD0";
			bias-disable;
			drive-push-pull;
		};
		gpio88pp_pins: gpio88pp-pins {
			pins = "GPIO88/R2RXD1";
			bias-disable;
			drive-push-pull;
		};
		gpio89pp_pins: gpio89pp-pins {
			pins = "GPIO89/R2CRSDV";
			bias-disable;
			drive-push-pull;
		};
		gpio90pp_pins: gpio90pp-pins {
			pins = "GPIO90/R2RXERR";
			bias-disable;
			drive-push-pull;
		};
		gpio91_pins: gpio91-pins {
			pins = "GPIO91/R2MDC";
			bias-disable;
			input-enable;
		};
		gpio92_pins: gpio92-pins {
			pins = "GPIO92/R2MDIO";
			bias-disable;
			input-enable;
		};
		gpio93pp_pins: gpio93pp-pins {
			pins = "GPIO93/GA20/SMB5DSCL";
			bias-disable;
			drive-push-pull;
		};
		gpio94pp_pins: gpio94pp-pins {
			pins = "GPIO94/nKBRST/SMB5DSDA";
			bias-disable;
			drive-push-pull;
		};
		gpio95_pins: gpio95-pins {
			pins = "GPIO95/nLRESET/nESPIRST";
			bias-disable;
			input-enable;
		};
		gpio125pp_pins: gpio125pp-pins {
			pins = "GPIO125/SMB1CSCL";
			bias-disable;
			drive-push-pull;
		};
		gpio126od_pins: gpio126od-pins {
			pins = "GPIO126/SMB1BSDA";
			bias-disable;
			drive-open-drain;
		};
		gpio127od_pins: gpio127od-pins {
			pins = "GPIO127/SMB1BSCL";
			bias-disable;
			drive-open-drain;
		};
		gpio136_pins: gpio136-pins {
			pins = "GPIO136/SD1DT0";
			bias-disable;
			input-enable;
		};
		gpio137_pins: gpio137-pins {
			pins = "GPIO137/SD1DT1";
			bias-disable;
			input-enable;
		};
		gpio141_pins: gpio141-pins {
			pins = "GPIO141/SD1WP";
			bias-disable;
			input-enable;
		};
		gpio142od_pins: gpio142od-pins {
			pins = "GPIO142/SD1CMD";
			bias-disable;
			drive-open-drain;
		};
		gpio143ol_pins: gpio143ol-pins {
			pins = "GPIO143/SD1CD/SD1PWR";
			bias-disable;
			output-low;
		};
		gpio144_pins: gpio144-pins {
			pins = "GPIO144/PWM4";
			bias-disable;
			input-enable;
		};
		gpio145_pins: gpio145-pins {
			pins = "GPIO145/PWM5";
			bias-disable;
			input-enable;
		};
		gpio146_pins: gpio146-pins {
			pins = "GPIO146/PWM6";
			bias-disable;
			input-enable;
		};
		gpio147_pins: gpio147-pins {
			pins = "GPIO147/PWM7";
			bias-disable;
			input-enable;
		};
		gpio148_pins: gpio148-pins {
			pins = "GPIO148/MMCDT4";
			bias-disable;
			input-enable;
		};
		gpio149_pins: gpio149-pins {
			pins = "GPIO149/MMCDT5";
			bias-disable;
			input-enable;
		};
		gpio150_pins: gpio150-pins {
			pins = "GPIO150/MMCDT6";
			bias-disable;
			input-enable;
		};
		gpio151_pins: gpio151-pins {
			pins = "GPIO151/MMCDT7";
			bias-disable;
			input-enable;
		};
		gpio152_pins: gpio152-pins {
			pins = "GPIO152/MMCCLK";
			bias-disable;
			input-enable;
		};
		gpio153_pins: gpio153-pins {
			pins = "GPIO153/MMCWP";
			bias-disable;
			input-enable;
		};
		gpio154_pins: gpio154-pins {
			pins = "GPIO154/MMCCMD";
			bias-disable;
			input-enable;
		};
		gpio155_pins: gpio155-pins {
			pins = "GPIO155/nMMCCD/nMMCRST";
			bias-disable;
			input-enable;
		};
		gpio156_pins: gpio156-pins {
			pins = "GPIO156/MMCDT0";
			bias-disable;
			input-enable;
		};
		gpio157_pins: gpio157-pins {
			pins = "GPIO157/MMCDT1";
			bias-disable;
			input-enable;
		};
		gpio158_pins: gpio158-pins {
			pins = "GPIO158/MMCDT2";
			bias-disable;
			input-enable;
		};
		gpio159_pins: gpio159-pins {
			pins = "GPIO159/MMCDT3";
			bias-disable;
			input-enable;
		};
		gpio161_pins: gpio161-pins {
			pins = "GPIO161/nLFRAME/nESPICS";
			bias-disable;
			input-enable;
		};
		gpio162_pins: gpio162-pins {
			pins = "GPIO162/SERIRQ";
			bias-disable;
			input-enable;
		};
		gpio163_pins: gpio163-pins {
			pins = "GPIO163/LCLK/ESPICLK";
			bias-disable;
			input-enable;
		};
		gpio164_pins: gpio164-pins {
			pins = "GPIO164/LAD0/ESPI_IO0";
			bias-disable;
			input-enable;
		};
		gpio165_pins: gpio165-pins {
			pins = "GPIO165/LAD1/ESPI_IO1";
			bias-disable;
			input-enable;
		};
		gpio166_pins: gpio166-pins {
			pins = "GPIO166/LAD2/ESPI_IO2";
			bias-disable;
			input-enable;
		};
		gpio167_pins: gpio167-pins {
			pins = "GPIO167/LAD3/ESPI_IO3";
			bias-disable;
			input-enable;
		};
		gpio168_pins: gpio168-pins {
			pins = "GPIO168/nCLKRUN/nESPIALERT";
			bias-disable;
			input-enable;
		};
		gpio169_pins: gpio169-pins {
			pins = "GPIO169/nSCIPME";
			bias-disable;
			input-enable;
		};
		gpio170_pins: gpio170-pins {
			pins = "GPIO170/nSMI";
			bias-disable;
			input-enable;
		};
		gpio175od_pins: gpio175od-pins {
			pins = "GPIO175/PSPI1CK/FANIN19";
			bias-disable;
			drive-open-drain;
		};
		gpio176od_pins: gpio176od-pins {
			pins = "GPIO176/PSPI1DO/FANIN18";
			bias-disable;
			drive-open-drain;
		};
		gpio177_pins: gpio177-pins {
			pins = "GPIO177/PSPI1DI/FANIN17";
			bias-disable;
			input-enable;
		};
		gpio190od_pins: gpio190od-pins {
			pins = "GPIO190/nPRD_SMI";
			bias-disable;
			drive-open-drain;
		};
		gpio191_pins: gpio191-pins {
			pins = "GPIO191";
			bias-disable;
			input-enable;
		};
		gpio192_pins: gpio192-pins {
			pins = "GPIO192";
			bias-disable;
			input-enable;
		};
		gpio194pp_pins: gpio194pp-pins {
			pins = "GPIO194/SMB0BSCL";
			bias-disable;
			drive-push-pull;
		};
		gpio195od_pins: gpio195od-pins {
			pins = "GPIO195/SMB0BSDA";
			bias-disable;
			drive-open-drain;
		};
		gpio196od_pins: gpio196od-pins {
			pins = "GPIO196/SMB0CSCL";
			bias-disable;
			drive-open-drain;
		};
		gpio197od_pins: gpio197od-pins {
			pins = "GPIO197/SMB0DEN";
			bias-disable;
			drive-open-drain;
		};
		gpio198od_pins: gpio198od-pins {
			pins = "GPIO198/SMB0DSDA";
			bias-disable;
			drive-open-drain;
		};
		gpio199od_pins: gpio199od-pins {
			pins = "GPIO199/SMB0DSCL";
			bias-disable;
			drive-open-drain;
		};
		gpio200pp_pins: gpio200pp-pins {
			pins = "GPIO200/R2CK";
			bias-disable;
			drive-push-pull;
		};
		gpio202od_pins: gpio202od-pins {
			pins = "GPIO202/SMB0CSDA";
			bias-disable;
			drive-open-drain;
		};
		gpio203_pins: gpio203-pins {
			pins = "GPIO203/FANIN16";
			bias-disable;
			input-enable;
		};
	};
};


code:
// SPDX-License-Identifier: GPL-2.0
// Copyright (c) 2019 Quanta Computer lnc. Fran.Hsu@quantatw.com

/dts-v1/;
#include "nuvoton-npcm730.dtsi"
#include "nuvoton-npcm730-gsj-gpio.dtsi"

#include <dt-bindings/gpio/gpio.h>

/ {
	model = "Quanta GSJ Board (Device Tree v12)";
	compatible = "nuvoton,npcm750";

	aliases {
		ethernet1 = &gmac0;
		serial3 = &serial3;
		i2c1 = &i2c1;
		i2c2 = &i2c2;
		i2c3 = &i2c3;
		i2c4 = &i2c4;
		i2c8 = &i2c8;
		i2c9 = &i2c9;
		i2c10 = &i2c10;
		i2c11 = &i2c11;
		i2c12 = &i2c12;
		i2c15 = &i2c15;
		fiu0 = &fiu0;
	};

	chosen {
		stdout-path = &serial3;
	};

	memory {
		reg = <0 0x40000000>;
	};

	leds {
		compatible = "gpio-leds";

		led-bmc-live {
			gpios = <&gpio4 15 GPIO_ACTIVE_HIGH>;
			linux,default-trigger = "heartbeat";
		};

		LED_U2_0_LOCATE {
			gpios = <&gpio0 0 GPIO_ACTIVE_HIGH>;
			default-state = "off";
		};

		LED_U2_1_LOCATE {
			gpios = <&gpio0 1 GPIO_ACTIVE_HIGH>;
			default-state = "off";
		};

		LED_U2_2_LOCATE {
			gpios = <&gpio0 2 GPIO_ACTIVE_HIGH>;
			default-state = "off";
		};

		LED_U2_3_LOCATE {
			gpios = <&gpio0 3 GPIO_ACTIVE_HIGH>;
			default-state = "off";
		};

		LED_U2_4_LOCATE {
			gpios = <&gpio0 10 GPIO_ACTIVE_HIGH>;
			default-state = "off";
		};

		LED_U2_5_LOCATE {
			gpios = <&gpio0 11 GPIO_ACTIVE_HIGH>;
			default-state = "off";
		};

		LED_BMC_TRAY_PWRGD {
			gpios = <&gpio0 19 GPIO_ACTIVE_HIGH>;
			default-state = "off";
		};

		LED_U2_7_FAULT {
			gpios = <&gpio6 8 GPIO_ACTIVE_HIGH>;
			default-state = "off";
		};

		LED_U2_6_LOCATE {
			gpios = <&gpio0 24 GPIO_ACTIVE_HIGH>;
			default-state = "off";
		};

		LED_U2_7_LOCATE {
			gpios = <&gpio0 25 GPIO_ACTIVE_HIGH>;
			default-state = "off";
		};

		LED_U2_0_FAULT {
			gpios = <&gpio2 20 GPIO_ACTIVE_HIGH>;
			default-state = "off";
		};

		LED_U2_1_FAULT {
			gpios = <&gpio2 21 GPIO_ACTIVE_HIGH>;
			default-state = "off";
		};

		LED_U2_2_FAULT {
			gpios = <&gpio2 22 GPIO_ACTIVE_HIGH>;
			default-state = "off";
		};

		LED_U2_3_FAULT {
			gpios = <&gpio2 23 GPIO_ACTIVE_HIGH>;
			default-state = "off";
		};

		LED_U2_4_FAULT {
			gpios = <&gpio2 24 GPIO_ACTIVE_HIGH>;
			default-state = "off";
		};

		LED_U2_5_FAULT {
			gpios = <&gpio2 25 GPIO_ACTIVE_HIGH>;
			default-state = "off";
		};

		LED_U2_6_FAULT {
			gpios = <&gpio2 26 GPIO_ACTIVE_HIGH>;
			default-state = "off";
		};
	};
};

&fiu0 {
	pinctrl-names = "default";
	pinctrl-0 = <&spi0cs1_pins>;
	status = "okay";

	flash@0 {
		compatible = "jedec,spi-nor";
		#address-cells = <1>;
		#size-cells = <1>;
		reg = <0>;
		spi-rx-bus-width = <2>;

		partitions {
			compatible = "fixed-partitions";
			#address-cells = <1>;
			#size-cells = <1>;
			bmc@0{
				label = "bmc";
				reg = <0x000000 0x2000000>;
			};
			u-boot@0 {
				label = "u-boot";
				reg = <0x0000000 0x80000>;
				read-only;
			};
			u-boot-env@100000{
				label = "u-boot-env";
				reg = <0x00100000 0x40000>;
			};
			kernel@200000 {
				label = "kernel";
				reg = <0x0200000 0x600000>;
			};
			rofs@800000 {
				label = "rofs";
				reg = <0x800000 0x1400000>;
			};
			rwfs@1c00000 {
				label = "rwfs";
				reg = <0x1c00000 0x300000>;
			};
			reserved@1f00000 {
				label = "reserved";
				reg = <0x1f00000 0x100000>;
			};
		};
	};
};

&gmac0 {
	phy-mode = "rgmii-id";
	status = "okay";
};

&ehci1 {
	status = "okay";
};

&watchdog1 {
	status = "okay";
};

&rng {
	status = "okay";
};

&serial0 {
	status = "okay";
};

&serial1 {
	status = "okay";
};

&serial2 {
	status = "okay";
};

&serial3 {
	status = "okay";
};

&adc {
	status = "okay";
};

&i2c1 {
	status = "okay";

	lm75@5c {
		compatible = "maxim,max31725";
		reg = <0x5c>;
		status = "okay";
	};
};

&i2c2 {
	status = "okay";

	lm75@5c {
		compatible = "maxim,max31725";
		reg = <0x5c>;
		status = "okay";
	};
};

&i2c3 {
	status = "okay";

	lm75@5c {
		compatible = "maxim,max31725";
		reg = <0x5c>;
	};
};

&i2c4 {
	status = "okay";

	lm75@5c {
		compatible = "maxim,max31725";
		reg = <0x5c>;
	};
};

&i2c8 {
	status = "okay";
};

&i2c9 {
	status = "okay";

	eeprom@55 {
		compatible = "atmel,24c64";
		reg = <0x55>;
	};
};

&i2c10 {
	status = "okay";

	eeprom@55 {
		compatible = "atmel,24c64";
		reg = <0x55>;
	};
};

&i2c11 {
	status = "okay";

	/* P12V Quarter Brick DC/DC Power Module Q54SH12050 @60 */
	power-brick@36 {
		compatible = "delta,dps800";
		reg = <0x36>;
	};

	hotswap@15 {
		compatible = "ti,lm5066i";
		reg = <0x15>;
	};
};

&i2c12 {
	status = "okay";

	ucd90160@6b {
		compatible = "ti,ucd90160";
		reg = <0x6b>;
	};
};

&i2c15 {
	status = "okay";

	i2c-switch@75 {
		compatible = "nxp,pca9548";
		#address-cells = <1>;
		#size-cells = <0>;
		reg = <0x75>;
		i2c-mux-idle-disconnect;

		i2c_u20: i2c@0 {
			#address-cells = <1>;
			#size-cells = <0>;
			reg = <0>;
		};

		i2c_u21: i2c@1 {
			#address-cells = <1>;
			#size-cells = <0>;
			reg = <1>;
		};

		i2c_u22: i2c@2 {
			#address-cells = <1>;
			#size-cells = <0>;
			reg = <2>;
		};

		i2c_u23: i2c@3 {
			#address-cells = <1>;
			#size-cells = <0>;
			reg = <3>;
		};

		i2c_u24: i2c@4 {
			#address-cells = <1>;
			#size-cells = <0>;
			reg = <4>;
		};

		i2c_u25: i2c@5 {
			#address-cells = <1>;
			#size-cells = <0>;
			reg = <5>;
		};

		i2c_u26: i2c@6 {
			#address-cells = <1>;
			#size-cells = <0>;
			reg = <6>;
		};

		i2c_u27: i2c@7 {
			#address-cells = <1>;
			#size-cells = <0>;
			reg = <7>;
		};
	};
};

&pwm_fan {
	pinctrl-names = "default";
	pinctrl-0 = <&pwm0_pins &pwm1_pins &pwm2_pins
			&fanin0_pins &fanin1_pins
			&fanin2_pins &fanin3_pins
			&fanin4_pins &fanin5_pins>;
	status = "okay";

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

&pinctrl {
	pinctrl-names = "default";
	pinctrl-0 = <
			/* GPI pins*/
			&gpio8_pins
			&gpio9_pins
			&gpio12_pins
			&gpio13_pins
			&gpio14_pins
			&gpio60_pins
			&gpio83_pins
			&gpio91_pins
			&gpio92_pins
			&gpio95_pins
			&gpio136_pins
			&gpio137_pins
			&gpio141_pins
			&gpio144_pins
			&gpio145_pins
			&gpio146_pins
			&gpio147_pins
			&gpio148_pins
			&gpio149_pins
			&gpio150_pins
			&gpio151_pins
			&gpio152_pins
			&gpio153_pins
			&gpio154_pins
			&gpio155_pins
			&gpio156_pins
			&gpio157_pins
			&gpio158_pins
			&gpio159_pins
			&gpio161_pins
			&gpio162_pins
			&gpio163_pins
			&gpio164_pins
			&gpio165_pins
			&gpio166_pins
			&gpio167_pins
			&gpio168_pins
			&gpio169_pins
			&gpio170_pins
			&gpio177_pins
			&gpio191_pins
			&gpio192_pins
			&gpio203_pins
			/* GPO pins*/
			&gpio0pp_pins
			&gpio1pp_pins
			&gpio2pp_pins
			&gpio3pp_pins
			&gpio4pp_pins
			&gpio5pp_pins
			&gpio6pp_pins
			&gpio7pp_pins
			&gpio10pp_pins
			&gpio11pp_pins
			&gpio15od_pins
			&gpio17pp_pins
			&gpio18pp_pins
			&gpio19pp_pins
			&gpio24pp_pins
			&gpio25pp_pins
			&gpio37od_pins
			&gpio59pp_pins
			&gpio72od_pins
			&gpio73od_pins
			&gpio74od_pins
			&gpio75od_pins
			&gpio76od_pins
			&gpio77od_pins
			&gpio78od_pins
			&gpio79od_pins
			&gpio84pp_pins
			&gpio85pp_pins
			&gpio86pp_pins
			&gpio87pp_pins
			&gpio88pp_pins
			&gpio89pp_pins
			&gpio90pp_pins
			&gpio93pp_pins
			&gpio94pp_pins
			&gpio125pp_pins
			&gpio126od_pins
			&gpio127od_pins
			&gpio142od_pins
			&gpio143ol_pins
			&gpio175od_pins
			&gpio176od_pins
			&gpio190od_pins
			&gpio194pp_pins
			&gpio195od_pins
			&gpio196od_pins
			&gpio197od_pins
			&gpio198od_pins
			&gpio199od_pins
			&gpio200pp_pins
			&gpio202od_pins
			>;
};


code:
// SPDX-License-Identifier: GPL-2.0
// Copyright (c) 2020 Fii USA Inc.

/dts-v1/;
#include "nuvoton-npcm730.dtsi"

#include <dt-bindings/gpio/gpio.h>

/ {
	model = "Fii Kudo Board";
	compatible = "fii,kudo", "nuvoton,npcm730";

	aliases {
		ethernet1 = &gmac0;
		serial0 = &serial0;
		serial1 = &serial1;
		serial2 = &serial2;
		serial3 = &serial3;
		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;
		spi0 = &spi0;
		spi1 = &spi1;
		fiu0 = &fiu0;
		fiu1 = &fiu3;
	};

	chosen {
		stdout-path = &serial3;
	};

	memory {
		reg = <0 0x40000000>;
	};

	iio-hwmon {
		compatible = "iio-hwmon";
		io-channels = <&adc 0>, <&adc 1>, <&adc 2>, <&adc 3>,
			<&adc 4>, <&adc 5>, <&adc 6>, <&adc 7>;
	};

	jtag_master {
		compatible = "nuvoton,npcm750-jtag-master";
		#address-cells = <1>;
		#size-cells = <1>;

		// dev/jtag0
		dev-num = <0>;
		// pspi or gpio
		mode = "pspi";

		// pspi2
		pspi-controller = <2>;
		reg = <0xf0201000 0x1000>;
		interrupts = <GIC_SPI 28 IRQ_TYPE_LEVEL_HIGH>;
		clocks = <&clk NPCM7XX_CLK_APB5>;

		// TCK, TDI, TDO, TMS
		jtag-gpios = <&gpio0 19 GPIO_ACTIVE_HIGH>,
				<&gpio0 18 GPIO_ACTIVE_HIGH>,
				<&gpio0 17 GPIO_ACTIVE_HIGH>,
				<&gpio0 16 GPIO_ACTIVE_HIGH>;
	};

	leds {
		compatible = "gpio-leds";
		heartbeat {
			label = "heartbeat";
			gpios = <&gpio0 14 1>;
		};
	};

	pinctrl: pinctrl@f0800000 {
		gpio61oh_pins: gpio61oh-pins {
			pins = "GPO61/nDTR1_BOUT1/STRAP6";
			bias-disable;
			output-high;
		};
		gpio62oh_pins: gpio62oh-pins {
			pins = "GPO62/nRTST1/STRAP5";
			bias-disable;
			output-high;
		};
		gpio161ol_pins: gpio161ol-pins {
			pins = "GPIO161/nLFRAME/nESPICS";
			bias-disable;
			output-low;
		};
		gpio163i_pins: gpio163i-pins {
			pins = "GPIO163/LCLK/ESPICLK";
			bias-disable;
			input-enable;
		};
		gpio167ol_pins: gpio167ol-pins {
			pins = "GPIO167/LAD3/ESPI_IO3";
			bias-disable;
			output-low;
		};
		gpio95i_pins: gpio95i-pins {
			pins = "GPIO95/nLRESET/nESPIRST";
			bias-disable;
			input-enable;
		};
		gpio65ol_pins: gpio65ol-pins {
			pins = "GPIO65/FANIN1";
			bias-disable;
			output-low;
		};
		gpio66oh_pins: gpio66oh-pins {
			pins = "GPIO66/FANIN2";
			bias-disable;
			output-high;
		};
		gpio67oh_pins: gpio67oh-pins {
			pins = "GPIO67/FANIN3";
			bias-disable;
			output-high;
		};
		gpio68ol_pins: gpio68ol-pins {
			pins = "GPIO68/FANIN4";
			bias-disable;
			output-low;
		};
		gpio69i_pins: gpio69i-pins {
			pins = "GPIO69/FANIN5";
			bias-disable;
			input-enable;
		};
		gpio70ol_pins: gpio70ol-pins {
			pins = "GPIO70/FANIN6";
			bias-disable;
			output-low;
		};
		gpio71i_pins: gpio71i-pins {
			pins = "GPIO71/FANIN7";
			bias-disable;
			input-enable;
		};
		gpio72i_pins: gpio72i-pins {
			pins = "GPIO72/FANIN8";
			bias-disable;
			input-enable;
		};
		gpio73i_pins: gpio73i-pins {
			pins = "GPIO73/FANIN9";
			bias-disable;
			input-enable;
		};
		gpio74i_pins: gpio74i-pins {
			pins = "GPIO74/FANIN10";
			bias-disable;
			input-enable;
		};
		gpio75i_pins: gpio75i-pins {
			pins = "GPIO75/FANIN11";
			bias-disable;
			input-enable;
		};
		gpio76i_pins: gpio76i-pins {
			pins = "GPIO76/FANIN12";
			bias-disable;
			input-enable;
		};
		gpio77i_pins: gpio77i-pins {
			pins = "GPIO77/FANIN13";
			bias-disable;
			input-enable;
		};
		gpio78i_pins: gpio78i-pins {
			pins = "GPIO78/FANIN14";
			bias-disable;
			input-enable;
		};
		gpio79ol_pins: gpio79ol-pins {
			pins = "GPIO79/FANIN15";
			bias-disable;
			output-low;
		};
		gpio80oh_pins: gpio80oh-pins {
			pins = "GPIO80/PWM0";
			bias-disable;
			output-high;
		};
		gpio81i_pins: gpio81i-pins {
			pins = "GPIO81/PWM1";
			bias-disable;
			input-enable;
		};
		gpio82i_pins: gpio82i-pins {
			pins = "GPIO82/PWM2";
			bias-disable;
			input-enable;
		};
		gpio83i_pins: gpio83i-pins {
			pins = "GPIO83/PWM3";
			bias-disable;
			input-enable;
		};
		gpio144i_pins: gpio144i-pins {
			pins = "GPIO144/PWM4";
			bias-disable;
			input-enable;
		};
		gpio145i_pins: gpio145i-pins {
			pins = "GPIO145/PWM5";
			bias-disable;
			input-enable;
		};
		gpio146i_pins: gpio146i-pins {
			pins = "GPIO146/PWM6";
			bias-disable;
			input-enable;
		};
		gpio147oh_pins: gpio147oh-pins {
			pins = "GPIO147/PWM7";
			bias-disable;
			output-high;
		};
		gpio168ol_pins: gpio168ol-pins {
			pins = "GPIO168/nCLKRUN/nESPIALERT";
			bias-disable;
			output-low;
		};
		gpio169oh_pins: gpio169oh-pins {
			pins = "GPIO169/nSCIPME";
			bias-disable;
			output-high;
		};
		gpio170ol_pins: gpio170ol-pins {
			pins = "GPIO170/nSMI";
			bias-disable;
			output-low;
		};
		gpio218oh_pins: gpio218oh-pins {
			pins = "GPIO218/nWDO1";
			bias-disable;
			output-high;
		};
		gpio37i_pins: gpio37i-pins {
			pins = "GPIO37/SMB3CSDA";
			bias-disable;
			input-enable;
		};
		gpio38i_pins: gpio38i-pins {
			pins = "GPIO38/SMB3CSCL";
			bias-disable;
			input-enable;
		};
		gpio39i_pins: gpio39i-pins {
			pins = "GPIO39/SMB3BSDA";
			bias-disable;
			input-enable;
		};
		gpio40i_pins: gpio40i-pins {
			pins = "GPIO40/SMB3BSCL";
			bias-disable;
			input-enable;
		};
		gpio121i_pins: gpio121i-pins {
			pins = "GPIO121/SMB2CSCL";
			bias-disable;
			input-enable;
		};
		gpio122i_pins: gpio122i-pins {
			pins = "GPIO122/SMB2BSDA";
			bias-disable;
			input-enable;
		};
		gpio123i_pins: gpio123i-pins {
			pins = "GPIO123/SMB2BSCL";
			bias-disable;
			input-enable;
		};
		gpio124i_pins: gpio124i-pins {
			pins = "GPIO124/SMB1CSDA";
			bias-disable;
			input-enable;
		};
		gpio125i_pins: gpio125i-pins {
			pins = "GPIO125/SMB1CSCL";
			bias-disable;
			input-enable;
		};
		gpio126i_pins: gpio126i-pins {
			pins = "GPIO126/SMB1BSDA";
			bias-disable;
			input-enable;
		};
		gpio127i_pins: gpio127i-pins {
			pins = "GPIO127/SMB1BSCL";
			bias-disable;
			input-enable;
		};
		gpio136i_pins: gpio136i-pins {
			pins = "GPIO136/SD1DT0";
			bias-disable;
			input-enable;
		};
		gpio137oh_pins: gpio137oh-pins {
			pins = "GPIO137/SD1DT1";
			bias-disable;
			output-high;
		};
		gpio138i_pins: gpio138i-pins {
			pins = "GPIO138/SD1DT2";
			bias-disable;
			input-enable;
		};
		gpio139i_pins: gpio139i-pins {
			pins = "GPIO139/SD1DT3";
			bias-disable;
			input-enable;
		};
		gpio140i_pins: gpio140i-pins {
			pins = "GPIO140/SD1CLK";
			bias-disable;
			input-enable;
		};
		gpio141i_pins: gpio141i-pins {
			pins = "GPIO141/SD1WP";
			bias-disable;
			input-enable;
		};
		gpio190oh_pins: gpio190oh-pins {
			pins = "GPIO190/nPRD_SMI";
			bias-disable;
			output-high;
		};
		gpio191oh_pins: gpio191oh-pins {
			pins = "GPIO191";
			bias-disable;
			output-high;
		};
		gpio195ol_pins: gpio195ol-pins {
			pins = "GPIO195/SMB0BSDA";
			bias-disable;
			output-low;
		};
		gpio196ol_pins: gpio196ol-pins {
			pins = "GPIO196/SMB0CSCL";
			bias-disable;
			output-low;
		};
		gpio199i_pins: gpio199i-pins {
			pins = "GPIO199/SMB0DSCL";
			bias-disable;
			input-enable;
		};
		gpio202ol_pins: gpio202ol-pins {
			pins = "GPIO202/SMB0CSDA";
			bias-disable;
			output-low;
		};
	};
};

&gmac0 {
	phy-mode = "rgmii-id";
	snps,eee-force-disable;
	status = "okay";
};

&ehci1 {
	status = "okay";
};

&fiu0 {
	pinctrl-names = "default";
	pinctrl-0 = <&spi0cs1_pins>;
	status = "okay";
	flash@0 {
		compatible = "jedec,spi-nor";
		#address-cells = <1>;
		#size-cells = <1>;
		reg = <0>;
		spi-max-frequency = <5000000>;
		spi-rx-bus-width = <2>;
		label = "bmc";
		partitions {
			compatible = "fixed-partitions";
			#address-cells = <1>;
			#size-cells = <1>;
			u-boot@0 {
				label = "u-boot";
				reg = <0x0000000 0xC0000>;
				read-only;
			};
			u-boot-env@100000{
				label = "u-boot-env";
				reg = <0x00100000 0x40000>;
			};
			kernel@200000 {
				label = "kernel";
				reg = <0x0200000 0x600000>;
			};
			rofs@800000 {
				label = "rofs";
				reg = <0x800000 0x3500000>;
			};
			rwfs@3d00000 {
				label = "rwfs";
				reg = <0x3d00000 0x300000>;
			};
		};
	};
	flash@1 {
		compatible = "jedec,spi-nor";
		#address-cells = <1>;
		#size-cells = <1>;
		reg = <1>;
		spi-max-frequency = <5000000>;
		spi-rx-bus-width = <2>;
		partitions {
			compatible = "fixed-partitions";
			#address-cells = <1>;
			#size-cells = <1>;
			spare1@0 {
				label = "spi0-cs1-spare1";
				reg = <0x0 0x800000>;
			};
			spare2@800000 {
				label = "spi0-cs1-spare2";
				reg = <0x800000 0x0>;
			};
		};
	};
};

&fiu3 {
	pinctrl-0 = <&spi3_pins>;
	flash@0 {
		compatible = "jedec,spi-nor";
		#address-cells = <1>;
		#size-cells = <1>;
		reg = <0>;
		spi-max-frequency = <5000000>;
		spi-rx-bus-width = <2>;
		partitions {
			compatible = "fixed-partitions";
			#address-cells = <1>;
			#size-cells = <1>;
			system1@0 {
				label = "bios";
				reg = <0x0 0x0>;
			};
			system2@800000 {
				label = "spi3-system2";
				reg = <0x800000 0x0>;
			};
		};
	};
};

&watchdog1 {
	status = "okay";
};

&rng {
	status = "okay";
};

&serial0 {
	status = "okay";
};

&serial1 {
	status = "okay";
};

&serial2 {
	status = "okay";
};

&serial3 {
	status = "okay";
};

&adc {
	#io-channel-cells = <1>;
	status = "okay";
};

&i2c1 {
	status = "okay";
	i2c-switch@75 {
		compatible = "nxp,pca9548";
		#address-cells = <1>;
		#size-cells = <0>;
		reg = <0x75>;
		i2c-mux-idle-disconnect;

		i2c@2 {
			#address-cells = <1>;
			#size-cells = <0>;
			reg = <2>;

			// Rear-Fan
			max31790@58 {
				compatible = "maxim,max31790";
				reg = <0x58>;
			};
		};

		i2c@3 {
			#address-cells = <1>;
			#size-cells = <0>;
			reg = <3>;

			// Mid-Fan
			max31790@58 {
				compatible = "maxim,max31790";
				reg = <0x58>;
			};
		};

		i2c-bus@4 {
			#address-cells = <1>;
			#size-cells = <0>;
			reg = <4>;

			// INLET1_T
			lm75@5c {
				compatible = "ti,lm75";
				reg = <0x5c>;
			};
		};

		i2c-bus@5 {
			#address-cells = <1>;
			#size-cells = <0>;
			reg = <5>;

			// OUTLET1_T
			lm75@5c {
				compatible = "ti,lm75";
				reg = <0x5c>;
			};
		};

		i2c-bus@6 {
			#address-cells = <1>;
			#size-cells = <0>;
			reg = <6>;

			// OUTLET2_T
			lm75@5c {
				compatible = "ti,lm75";
				reg = <0x5c>;
			};
		};

		i2c-bus@7 {
			#address-cells = <1>;
			#size-cells = <0>;
			reg = <7>;

			// OUTLET3_T
			lm75@5c {
				compatible = "ti,lm75";
				reg = <0x5c>;
			};
		};
	};
	i2c-switch@77 {
		compatible = "nxp,pca9548";
		#address-cells = <1>;
		#size-cells = <0>;
		reg = <0x77>;
		i2c-mux-idle-disconnect;

		i2c-bus@2 {
			#address-cells = <1>;
			#size-cells = <0>;
			reg = <2>;

			// STB-T
			pmbus@74 {
				compatible = "pmbus";
				reg = <0x74>;
			};
		};
	};
};

&i2c2 {
	status = "okay";
	smpro@4f {
		compatible = "ampere,smpro";
		reg = <0x4f>;
	};

	smpro@4e {
		compatible = "ampere,smpro";
		reg = <0x4e>;
	};
};

&i2c3 {
	status = "okay";
};

&i2c4 {
	status = "okay";
	i2c-switch@77 {
		compatible = "nxp,pca9548";
		#address-cells = <1>;
		#size-cells = <0>;
		reg = <0x77>;
		i2c-mux-idle-disconnect;

		i2c-bus@0 {
			#address-cells = <1>;
			#size-cells = <0>;
			reg = <0>;

			// ADC sensors
			adm1266@40 {
				compatible = "adi,adm1266";
				reg = <0x40>;
			};
		};

		i2c-bus@1 {
			#address-cells = <1>;
			#size-cells = <0>;
			reg = <1>;

			// ADC sensors
			adm1266@41 {
				compatible = "adi,adm1266";
				reg = <0x41>;
			};
		};
	};
};

&i2c5 {
	status = "okay";
};

&i2c6 {
	status = "okay";
};

&i2c7 {
	status = "okay";
};

&i2c8 {
	status = "okay";
};

&i2c9 {
	status = "okay";
};

&i2c10 {
	status = "okay";
};

&i2c11 {
	status = "okay";
};

&i2c12 {
	status = "okay";
	ssif-bmc@10 {
		compatible = "ssif-bmc";
		reg = <0x10>;
	};
};

&i2c13 {
	status = "okay";
	i2c-switch@77 {
		compatible = "nxp,pca9548";
		#address-cells = <1>;
		#size-cells = <0>;
		reg = <0x77>;
		i2c-mux-idle-disconnect;

		i2c-bus@3 {
			#address-cells = <1>;
			#size-cells = <0>;
			reg = <3>;

			// M2_ZONE_T
			lm75@28 {
				compatible = "ti,lm75";
				reg = <0x28>;
			};
		};

		i2c-bus@4 {
			#address-cells = <1>;
			#size-cells = <0>;
			reg = <4>;

			// BATT_ZONE_T
			lm75@29 {
				compatible = "ti,lm75";
				reg = <0x29>;
			};
		};

		i2c-bus@5 {
			#address-cells = <1>;
			#size-cells = <0>;
			reg = <5>;

			// NBM1_ZONE_T
			lm75@28 {
				compatible = "ti,lm75";
				reg = <0x28>;
			};
		};
		i2c-bus@6 {
			#address-cells = <1>;
			#size-cells = <0>;
			reg = <6>;

			// NBM2_ZONE_T
			lm75@29 {
				compatible = "ti,lm75";
				reg = <0x29>;
			};
		};
	};
};

&i2c14 {
	status = "okay";
};

&i2c15 {
	status = "okay";
};

&spi0 {
	cs-gpios = <&gpio6 11 GPIO_ACTIVE_LOW>;
	status = "okay";
};

&pinctrl {
	pinctrl-names = "default";
	pinctrl-0 = <
			&gpio61oh_pins
			&gpio62oh_pins
			&gpio161ol_pins
			&gpio163i_pins
			&gpio167ol_pins
			&gpio95i_pins
			&gpio65ol_pins
			&gpio66oh_pins
			&gpio67oh_pins
			&gpio68ol_pins
			&gpio69i_pins
			&gpio70ol_pins
			&gpio71i_pins
			&gpio72i_pins
			&gpio73i_pins
			&gpio74i_pins
			&gpio75i_pins
			&gpio76i_pins
			&gpio77i_pins
			&gpio78i_pins
			&gpio79ol_pins
			&gpio80oh_pins
			&gpio81i_pins
			&gpio82i_pins
			&gpio83i_pins
			&gpio144i_pins
			&gpio145i_pins
			&gpio146i_pins
			&gpio147oh_pins
			&gpio168ol_pins
			&gpio169oh_pins
			&gpio170ol_pins
			&gpio218oh_pins
			&gpio37i_pins
			&gpio38i_pins
			&gpio39i_pins
			&gpio40i_pins
			&gpio121i_pins
			&gpio122i_pins
			&gpio123i_pins
			&gpio124i_pins
			&gpio125i_pins
			&gpio126i_pins
			&gpio127i_pins
			&gpio136i_pins
			&gpio137oh_pins
			&gpio138i_pins
			&gpio139i_pins
			&gpio140i_pins
			&gpio141i_pins
			&gpio190oh_pins
			&gpio191oh_pins
			&gpio195ol_pins
			&gpio196ol_pins
			&gpio199i_pins
			&gpio202ol_pins
			>;
};

&gcr {
	serial_port_mux: mux-controller {
		compatible = "mmio-mux";
		#mux-control-cells = <1>;

		mux-reg-masks = <0x38 0x07>;
		idle-states = <2>;
	};
};


code:
// SPDX-License-Identifier: GPL-2.0
// Copyright (c) 2020 Nuvoton Technology

#include "nuvoton-common-npcm7xx.dtsi"

/ {
	#address-cells = <1>;
	#size-cells = <1>;
	interrupt-parent = <&gic>;

	cpus {
		#address-cells = <1>;
		#size-cells = <0>;
		enable-method = "nuvoton,npcm750-smp";

		cpu@0 {
			device_type = "cpu";
			compatible = "arm,cortex-a9";
			clocks = <&clk NPCM7XX_CLK_CPU>;
			clock-names = "clk_cpu";
			reg = <0>;
			next-level-cache = <&l2>;
		};

		cpu@1 {
			device_type = "cpu";
			compatible = "arm,cortex-a9";
			clocks = <&clk NPCM7XX_CLK_CPU>;
			clock-names = "clk_cpu";
			reg = <1>;
			next-level-cache = <&l2>;
		};
	};

	soc {
		timer@3fe600 {
			compatible = "arm,cortex-a9-twd-timer";
			reg = <0x3fe600 0x20>;
			interrupts = <GIC_PPI 13 (GIC_CPU_MASK_SIMPLE(2) |
						  IRQ_TYPE_LEVEL_HIGH)>;
			clocks = <&clk NPCM7XX_CLK_AHB>;
		};
	};
};


code:
// SPDX-License-Identifier: GPL-2.0
// Copyright (c) 2018 Nuvoton Technology tomer.maimon@nuvoton.com
// Copyright 2018 Google, Inc.

/dts-v1/;
#include "nuvoton-npcm750.dtsi"
#include "dt-bindings/gpio/gpio.h"
#include "nuvoton-npcm750-pincfg-evb.dtsi"

/ {
	model = "Nuvoton npcm750 Development Board (Device Tree)";
	compatible = "nuvoton,npcm750-evb", "nuvoton,npcm750";

	aliases {
		ethernet2 = &gmac0;
		ethernet3 = &gmac1;
		serial0 = &serial0;
		serial1 = &serial1;
		serial2 = &serial2;
		serial3 = &serial3;
		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;
		spi0 = &spi0;
		spi1 = &spi1;
		fiu0 = &fiu0;
		fiu1 = &fiu3;
		fiu2 = &fiux;
	};

	chosen {
		stdout-path = &serial3;
	};

	memory {
		device_type = "memory";
		reg = <0x0 0x20000000>;
	};
};

&gmac0 {
	phy-mode = "rgmii-id";
	status = "okay";
};

&gmac1 {
	phy-mode = "rgmii-id";
	status = "okay";
};

&ehci1 {
	status = "okay";
};

&fiu0 {
	status = "okay";
	flash@0 {
		compatible = "jedec,spi-nor";
		#address-cells = <1>;
		#size-cells = <1>;
		spi-rx-bus-width = <2>;
		reg = <0>;
		spi-max-frequency = <5000000>;
		partitions {
			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@f00000 {
				label = "spare2";
				reg = <0x0F00000 0x200000>;
				};
			spare3@1100000 {
				label = "spare3";
				reg = <0x1100000 0x200000>;
				};
			spare4@1300000 {
				label = "spare4";
				reg = <0x1300000 0x0>;
			};
		};
	};
};

&fiu3 {
	pinctrl-0 = <&spi3_pins>, <&spi3quad_pins>;
	status = "okay";
	flash@0 {
		compatible = "jedec,spi-nor";
		#address-cells = <1>;
		#size-cells = <1>;
		spi-rx-bus-width = <2>;
		reg = <0>;
		spi-max-frequency = <5000000>;
		partitions {
			compatible = "fixed-partitions";
			#address-cells = <1>;
			#size-cells = <1>;
			system1@0 {
				label = "spi3-system1";
				reg = <0x0 0x0>;
			};
		};
	};
};

&fiux {
	spix-mode;
};

&watchdog1 {
	status = "okay";
};

&rng {
	status = "okay";
};

&serial0 {
	status = "okay";
};

&serial1 {
	status = "okay";
};

&serial2 {
	status = "okay";
};

&serial3 {
	status = "okay";
};

&adc {
	status = "okay";
};

&lpc_kcs {
	kcs1: kcs1@0 {
		status = "okay";
	};

	kcs2: kcs2@0 {
		status = "okay";
	};

	kcs3: kcs3@0 {
		status = "okay";
	};
};

/* lm75 on SVB */
&i2c0 {
	clock-frequency = <100000>;
	status = "okay";
	lm75@48 {
		compatible = "lm75";
		reg = <0x48>;
		status = "okay";
	};
};

/* lm75 on EB */
&i2c1 {
	clock-frequency = <100000>;
	status = "okay";
	lm75@48 {
		compatible = "lm75";
		reg = <0x48>;
		status = "okay";
	};
};

/* tmp100 on EB */
&i2c2 {
	clock-frequency = <100000>;
	status = "okay";
	tmp100@48 {
		compatible = "tmp100";
		reg = <0x48>;
		status = "okay";
	};
};

&i2c3 {
	clock-frequency = <100000>;
	status = "okay";
};

&i2c5 {
	clock-frequency = <100000>;
	status = "okay";
};

/* tmp100 on SVB */
&i2c6 {
	clock-frequency = <100000>;
	status = "okay";
	tmp100@48 {
		compatible = "tmp100";
		reg = <0x48>;
		status = "okay";
	};
};

&i2c7 {
	clock-frequency = <100000>;
	status = "okay";
};

&i2c8 {
	clock-frequency = <100000>;
	status = "okay";
};

&i2c9 {
	clock-frequency = <100000>;
	status = "okay";
};

&i2c10 {
	clock-frequency = <100000>;
	status = "okay";
};

&i2c11 {
	clock-frequency = <100000>;
	status = "okay";
};

&i2c14 {
	clock-frequency = <100000>;
	status = "okay";
};

&pwm_fan {
	status = "okay";
	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>;
	};
};

&spi0 {
	cs-gpios = <&gpio6 11 GPIO_ACTIVE_LOW>;
	status = "okay";
	flash@0 {
		compatible = "winbond,w25q128",
		"jedec,spi-nor";
		reg = <0x0>;
		#address-cells = <1>;
		#size-cells = <1>;
		spi-max-frequency = <5000000>;
		partition@0 {
			label = "spi0_spare1";
			reg = <0x0000000 0x800000>;
		};
		partition@1 {
			label = "spi0_spare2";
			reg = <0x800000 0x0>;
		};
	};
};

&spi1 {
	cs-gpios = <&gpio0 20 GPIO_ACTIVE_LOW>;
	status = "okay";
	flash@0 {
		compatible = "winbond,w25q128fw",
		"jedec,spi-nor";
		reg = <0x0>;
		#address-cells = <1>;
		#size-cells = <1>;
		spi-max-frequency = <5000000>;
		partition@0 {
			label = "spi1_spare1";
			reg = <0x0000000 0x800000>;
		};
		partition@1 {
			label = "spi1_spare2";
			reg = <0x800000 0x0>;
		};
	};
};

&pinctrl {
	pinctrl-names = "default";
	pinctrl-0 = <	&iox1_pins
			&pin8_input
			&pin9_output_high
			&pin10_input
			&pin11_output_high
			&pin16_input
			&pin24_output_high
			&pin25_output_low
			&pin32_output_high
			&jtag2_pins
			&pin61_output_high
			&pin62_output_high
			&pin63_output_high
			&lpc_pins
			&pin160_input
			&pin162_input
			&pin168_input
			&pin169_input
			&pin170_input
			&pin187_output_high
			&pin190_input
			&pin191_output_high
			&pin192_output_high
			&pin197_output_low
			&ddc_pins
			&pin218_input
			&pin219_output_low
			&pin220_output_low
			&pin221_output_high
			&pin222_input
			&pin223_output_low
			&spix_pins
			&pin228_output_low
			&pin231_output_high
			&pin255_input>;
};