Merge tag 'nuvoton-5.11-devicetree' of git://git.kernel.org/pub/scm/linux/kernel...
authorArnd Bergmann <arnd@arndb.de>
Tue, 8 Dec 2020 22:43:33 +0000 (23:43 +0100)
committerArnd Bergmann <arnd@arndb.de>
Tue, 8 Dec 2020 22:43:33 +0000 (23:43 +0100)
Nuvoton device tree updates for 5.11

 - New machines

   * Fii Kudo, a NPCM730 BMC
   * Quanta GSJ, a NPCM750 BMC
   * Qanta Olympus RunBMC, a NPCM750 BMC

 - Updates to the common device trees and NCPM750 EVB

* tag 'nuvoton-5.11-devicetree' of git://git.kernel.org/pub/scm/linux/kernel/git/joel/bmc:
  dt-bindings: vendor-prefixes: Add FII
  ARM: dts: nuvoton: Add Fii Kudo system
  ARM: dts: nuvoton: Add NPCM7xx RunBMC Olympus Quanta machine
  ARM: dts: nuvoton: Add Quanta GSJ BMC
  ARM: dts: nuvoton: Add Quanta GSJ BMC pinctrl
  ARM: dts: nuvoton: Add Nuvoton NPCM730 device tree
  ARM: dts: nuvoton: Add new device nodes to NPCM750 EVB
  ARM: dts: nuvoton: Add new device nodes
  ARM: dts: nuvoton: Add pinctrl and GPIO node
  ARM: dts: nuvoton: Modify timer register size
  ARM: dts: nuvoton: Modify clock parameters

Link: https://lore.kernel.org/r/CACPK8Xd8RaLv_p6t9ckBwCwtZww+2YYOAoAYQdvni0dxc2mS7A@mail.gmail.com
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
Documentation/devicetree/bindings/vendor-prefixes.yaml
arch/arm/boot/dts/Makefile
arch/arm/boot/dts/nuvoton-common-npcm7xx.dtsi
arch/arm/boot/dts/nuvoton-npcm730-gsj-gpio.dtsi [new file with mode: 0644]
arch/arm/boot/dts/nuvoton-npcm730-gsj.dts [new file with mode: 0644]
arch/arm/boot/dts/nuvoton-npcm730-kudo.dts [new file with mode: 0644]
arch/arm/boot/dts/nuvoton-npcm750-evb.dts
arch/arm/boot/dts/nuvoton-npcm750-pincfg-evb.dtsi [new file with mode: 0644]
arch/arm/boot/dts/nuvoton-npcm750-runbmc-olympus-pincfg.dtsi [new file with mode: 0644]
arch/arm/boot/dts/nuvoton-npcm750-runbmc-olympus.dts [new file with mode: 0644]
arch/arm/boot/dts/nuvoton-npcm750.dtsi

index a8fb89e..5c2e8e8 100644 (file)
@@ -379,6 +379,8 @@ patternProperties:
     description: Shenzhen Feixin Photoelectic Co., Ltd
   "^feiyang,.*":
     description: Shenzhen Fly Young Technology Co.,LTD.
+  "^fii,.*":
+    description: Foxconn Industrial Internet
   "^firefly,.*":
     description: Firefly
   "^focaltech,.*":
index d229d94..82368f3 100644 (file)
@@ -339,7 +339,10 @@ dtb-$(CONFIG_ARCH_LPC32XX) += \
        lpc3250-ea3250.dtb \
        lpc3250-phy3250.dtb
 dtb-$(CONFIG_ARCH_NPCM7XX) += \
-       nuvoton-npcm750-evb.dtb
+       nuvoton-npcm730-gsj.dtb \
+       nuvoton-npcm730-kudo.dtb \
+       nuvoton-npcm750-evb.dtb \
+       nuvoton-npcm750-runbmc-olympus.dtb
 dtb-$(CONFIG_MACH_MESON6) += \
        meson6-atv1200.dtb
 dtb-$(CONFIG_MACH_MESON8) += \
index d2d0761..3696980 100644 (file)
@@ -3,6 +3,8 @@
 // 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>;
                interrupt-parent = <&gic>;
                ranges = <0x0 0xf0000000 0x00900000>;
 
-               gcr: gcr@800000 {
-                       compatible = "nuvoton,npcm750-gcr", "syscon",
-                               "simple-mfd";
-                       reg = <0x800000 0x1000>;
-               };
-
                scu: scu@3fe000 {
                        compatible = "arm,cortex-a9-scu";
                        reg = <0x3fe000 0x1000>;
@@ -80,7 +76,7 @@
                        interrupts = <GIC_SPI 21 IRQ_TYPE_LEVEL_HIGH>;
                        cache-unified;
                        cache-level = <2>;
-                       clocks = <&clk 10>;
+                       clocks = <&clk NPCM7XX_CLK_AXI>;
                        arm,shared-override;
                };
 
                        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 {
                interrupt-parent = <&gic>;
                ranges;
 
+               rstc: rstc@f0801000 {
+                       compatible = "nuvoton,npcm750-reset";
+                       reg = <0xf0801000 0x70>;
+                       #reset-cells = <2>;
+               };
+
                clk: clock-controller@f0801000 {
                        compatible = "nuvoton,npcm750-clk", "syscon";
                        #clock-cells = <1>;
                        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>;
                        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 0x50>;
-                               clocks = <&clk 5>;
+                               reg = <0x8000 0x1C>;
+                               clocks = <&clk NPCM7XX_CLK_TIMER>;
                        };
 
                        watchdog0: watchdog@801C {
                                interrupts = <GIC_SPI 47 IRQ_TYPE_LEVEL_HIGH>;
                                reg = <0x801C 0x4>;
                                status = "disabled";
-                               clocks = <&clk 5>;
+                               clocks = <&clk NPCM7XX_CLK_TIMER>;
                        };
 
                        watchdog1: watchdog@901C {
                                interrupts = <GIC_SPI 48 IRQ_TYPE_LEVEL_HIGH>;
                                reg = <0x901C 0x4>;
                                status = "disabled";
-                               clocks = <&clk 5>;
+                               clocks = <&clk NPCM7XX_CLK_TIMER>;
                        };
 
                        watchdog2: watchdog@a01C {
                                interrupts = <GIC_SPI 49 IRQ_TYPE_LEVEL_HIGH>;
                                reg = <0xa01C 0x4>;
                                status = "disabled";
-                               clocks = <&clk 5>;
+                               clocks = <&clk NPCM7XX_CLK_TIMER>;
                        };
 
                        serial0: serial@1000 {
                                compatible = "nuvoton,npcm750-uart";
                                reg = <0x1000 0x1000>;
-                               clocks = <&clk 6>;
+                               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 6>;
+                               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 6>;
+                               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 6>;
+                               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";
                };
        };
 };
diff --git a/arch/arm/boot/dts/nuvoton-npcm730-gsj-gpio.dtsi b/arch/arm/boot/dts/nuvoton-npcm730-gsj-gpio.dtsi
new file mode 100644 (file)
index 0000000..53cfd15
--- /dev/null
@@ -0,0 +1,477 @@
+// 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;
+               };
+       };
+};
diff --git a/arch/arm/boot/dts/nuvoton-npcm730-gsj.dts b/arch/arm/boot/dts/nuvoton-npcm730-gsj.dts
new file mode 100644 (file)
index 0000000..d4ff499
--- /dev/null
@@ -0,0 +1,490 @@
+// 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";
+
+       spi-nor@0 {
+               compatible = "jedec,spi-nor";
+               #address-cells = <1>;
+               #size-cells = <1>;
+               reg = <0>;
+               spi-rx-bus-width = <2>;
+
+               partitions@80000000 {
+                       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
+                       >;
+};
diff --git a/arch/arm/boot/dts/nuvoton-npcm730-kudo.dts b/arch/arm/boot/dts/nuvoton-npcm730-kudo.dts
new file mode 100644 (file)
index 0000000..82a104b
--- /dev/null
@@ -0,0 +1,826 @@
+// 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";
+       spi-nor@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@80000000 {
+                       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>;
+                       };
+               };
+       };
+       spi-nor@1 {
+               compatible = "jedec,spi-nor";
+               #address-cells = <1>;
+               #size-cells = <1>;
+               reg = <1>;
+               spi-max-frequency = <5000000>;
+               spi-rx-bus-width = <2>;
+               partitions@88000000 {
+                       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>;
+       spi-nor@0 {
+               compatible = "jedec,spi-nor";
+               #address-cells = <1>;
+               #size-cells = <1>;
+               reg = <0>;
+               spi-max-frequency = <5000000>;
+               spi-rx-bus-width = <2>;
+               partitions@A0000000 {
+                       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>;
+       };
+};
index 15f744f..9f13d08 100644 (file)
 
 /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";
 
+       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 {
-               reg = <0 0x40000000>;
+               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";
+       spi-nor@0 {
+               compatible = "jedec,spi-nor";
+               #address-cells = <1>;
+               #size-cells = <1>;
+               spi-rx-bus-width = <2>;
+               reg = <0>;
+               spi-max-frequency = <5000000>;
+               partitions@80000000 {
+                       compatible = "fixed-partitions";
+                       #address-cells = <1>;
+                       #size-cells = <1>;
+                       bbuboot1@0 {
+                               label = "bb-uboot-1";
+                               reg = <0x0000000 0x80000>;
+                               read-only;
+                               };
+                       bbuboot2@80000 {
+                               label = "bb-uboot-2";
+                               reg = <0x0080000 0x80000>;
+                               read-only;
+                               };
+                       envparam@100000 {
+                               label = "env-param";
+                               reg = <0x0100000 0x40000>;
+                               read-only;
+                               };
+                       spare@140000 {
+                               label = "spare";
+                               reg = <0x0140000 0xC0000>;
+                               };
+                       kernel@200000 {
+                               label = "kernel";
+                               reg = <0x0200000 0x400000>;
+                               };
+                       rootfs@600000 {
+                               label = "rootfs";
+                               reg = <0x0600000 0x700000>;
+                               };
+                       spare1@D00000 {
+                               label = "spare1";
+                               reg = <0x0D00000 0x200000>;
+                               };
+                       spare2@0F00000 {
+                               label = "spare2";
+                               reg = <0x0F00000 0x200000>;
+                               };
+                       spare3@1100000 {
+                               label = "spare3";
+                               reg = <0x1100000 0x200000>;
+                               };
+                       spare4@1300000 {
+                               label = "spare4";
+                               reg = <0x1300000 0x0>;
+                       };
+               };
+       };
+};
+
+&fiu3 {
+       pinctrl-0 = <&spi3_pins>, <&spi3quad_pins>;
+       status = "okay";
+       spi-nor@0 {
+               compatible = "jedec,spi-nor";
+               #address-cells = <1>;
+               #size-cells = <1>;
+               spi-rx-bus-width = <2>;
+               reg = <0>;
+               spi-max-frequency = <5000000>;
+               partitions@A0000000 {
+                       compatible = "fixed-partitions";
+                       #address-cells = <1>;
+                       #size-cells = <1>;
+                       system1@0 {
+                               label = "spi3-system1";
+                               reg = <0x0 0x0>;
+                       };
+               };
        };
 };
 
+&fiux {
+       spix-mode;
+};
+
 &watchdog1 {
        status = "okay";
 };
 
+&rng {
+       status = "okay";
+};
+
 &serial0 {
        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>;
+};
+
diff --git a/arch/arm/boot/dts/nuvoton-npcm750-pincfg-evb.dtsi b/arch/arm/boot/dts/nuvoton-npcm750-pincfg-evb.dtsi
new file mode 100644 (file)
index 0000000..3b38062
--- /dev/null
@@ -0,0 +1,157 @@
+// SPDX-License-Identifier: GPL-2.0
+// Copyright (c) 2018 Nuvoton Technology
+
+/ {
+       pinctrl: pinctrl@f0800000 {
+               pin8_input: pin8-input {
+                       pins = "GPIO8/LKGPO1";
+                       bias-disable;
+                       input-enable;
+               };
+               pin9_output_high: pin9-output-high {
+                       pins = "GPIO9/LKGPO2";
+                       bias-disable;
+                       output-high;
+               };
+               pin10_input: pin10-input {
+                       pins = "GPIO10/IOXHLD";
+                       bias-disable;
+                       input-enable;
+               };
+               pin11_output_high: pin11-output-high {
+                       pins = "GPIO11/IOXHCK";
+                       bias-disable;
+                       output-high;
+               };
+               pin16_input: pin16-input {
+                       pins = "GPIO16/LKGPO0";
+                       bias-disable;
+                       input-enable;
+               };
+               pin24_output_high: pin24-output-high {
+                       pins = "GPIO24/IOXHDO";
+                       bias-disable;
+                       output-high;
+               };
+               pin25_output_low: pin25-output-low {
+                       pins = "GPIO25/IOXHDI";
+                       bias-disable;
+                       output-low;
+               };
+               pin32_output_high: pin32-output-high {
+                       pins = "GPIO32/nSPI0CS1";
+                       bias-disable;
+                       output-high;
+               };
+               pin61_output_high: pin61-output-high {
+                       pins = "GPO61/nDTR1_BOUT1/STRAP6";
+                       bias-disable;
+                       output-high;
+               };
+               pin62_output_high: pin62-output-high {
+                       pins = "GPO62/nRTST1/STRAP5";
+                       bias-disable;
+                       output-high;
+               };
+               pin63_output_high: pin63-output-high {
+                       pins = "GPO63/TXD1/STRAP4";
+                       bias-disable;
+                       output-high;
+               };
+               pin160_input: pin160-input {
+                       pins = "GPIO160/CLKOUT/RNGOSCOUT";
+                       bias-disable;
+                       input-enable;
+               };
+               pin162_input: pin162-input {
+                       pins = "GPIO162/SERIRQ";
+                       bias-disable;
+                       input-enable;
+               };
+               pin168_input: pin168-input {
+                       pins = "GPIO168/nCLKRUN/nESPIALERT";
+                       bias-disable;
+                       input-enable;
+               };
+               pin169_input: pin169-input {
+                       pins = "GPIO169/nSCIPME";
+                       bias-disable;
+                       input-enable;
+               };
+               pin170_input: pin170-input {
+                       pins = "GPIO170/nSMI";
+                       bias-disable;
+                       input-enable;
+               };
+               pin187_output_high: pin187-output-high {
+                       pins = "GPIO187/nSPI3CS1";
+                       bias-disable;
+                       output-high;
+               };
+               pin190_input: pin190-input {
+                       pins = "GPIO190/nPRD_SMI";
+                       bias-disable;
+                       input-enable;
+               };
+               pin191_output_high: pin191-output-high {
+                       pins = "GPIO191";
+                       bias-disable;
+                       output-high;
+               };
+               pin192_output_high: pin192-output-high {
+                       pins = "GPIO192";
+                       bias-disable;
+                       output-high;
+               };
+               pin197_output_low: pin197-output-low {
+                       pins = "GPIO197/SMB0DEN";
+                       bias-disable;
+                       output-low;
+               };
+               pin218_input: pin218-input {
+                       pins = "GPIO218/nWDO1";
+                       bias-disable;
+                       input-enable;
+               };
+               pin219_output_low: pin219-output-low {
+                       pins = "GPIO219/nWDO2";
+                       bias-disable;
+                       output-low;
+               };
+               pin220_output_low: pin220-output-low {
+                       pins = "GPIO220/SMB12SCL";
+                       bias-disable;
+                       output-low;
+               };
+               pin221_output_high: pin221-output-high {
+                       pins = "GPIO221/SMB12SDA";
+                       bias-disable;
+                       output-high;
+               };
+               pin222_input: pin222-input {
+                       pins = "GPIO222/SMB13SCL";
+                       bias-disable;
+                       input-enable;
+               };
+               pin223_output_low: pin223-output-low {
+                       pins = "GPIO223/SMB13SDA";
+                       bias-disable;
+                       output-low;
+               };
+               pin228_output_low: pin228-output-low {
+                       pins = "GPIO228/nSPIXCS1";
+                       bias-disable;
+                       output-low;
+               };
+               pin231_output_high: pin231-output-high {
+                       pins = "GPIO230/SPIXD3";
+                       bias-disable;
+                       output-high;
+               };
+               pin255_input: pin255-input {
+                       pins = "GPI255/DACOSEL";
+                       bias-disable;
+                       input-enable;
+               };
+       };
+};
diff --git a/arch/arm/boot/dts/nuvoton-npcm750-runbmc-olympus-pincfg.dtsi b/arch/arm/boot/dts/nuvoton-npcm750-runbmc-olympus-pincfg.dtsi
new file mode 100644 (file)
index 0000000..230cb34
--- /dev/null
@@ -0,0 +1,517 @@
+// SPDX-License-Identifier: GPL-2.0
+// Copyright (c) 2019 Quanta Computer Inc. Samuel.Jiang@quantatw.com
+
+/ {
+       pinctrl: pinctrl@f0800000 {
+               gpio0ol_pins: gpio0ol-pins {
+                       pins = "GPIO0/IOX1DI";
+                       bias-disable;
+                       output-low;
+               };
+               gpio1ol_pins: gpio1ol-pins {
+                       pins = "GPIO1/IOX1LD";
+                       bias-disable;
+                       output-low;
+               };
+               gpio2ol_pins: gpio2ol-pins {
+                       pins = "GPIO2/IOX1CK";
+                       bias-disable;
+                       output-low;
+               };
+               gpio3ol_pins: gpio3ol-pins {
+                       pins = "GPIO3/IOX1D0";
+                       bias-disable;
+                       output-low;
+               };
+               gpio5_pins: gpio5-pins {
+                       pins = "GPIO5/IOX2LD/SMB1DSCL";
+                       bias-disable;
+                       input-enable;
+               };
+               gpio6_pins: gpio6-pins {
+                       pins = "GPIO6/IOX2CK/SMB2DSDA";
+                       bias-disable;
+                       input-enable;
+               };
+               gpio7_pins: gpio7-pins {
+                       pins = "GPIO7/IOX2D0/SMB2DSCL";
+                       bias-disable;
+                       input-enable;
+               };
+               gpio8o_pins: gpio8o-pins {
+                       pins = "GPIO8/LKGPO1";
+                       bias-disable;
+                       output-high;
+               };
+               gpio9ol_pins: gpio9ol-pins {
+                       pins = "GPIO9/LKGPO2";
+                       bias-disable;
+                       output-low;
+               };
+               gpio10_pins: gpio10-pins {
+                       pins = "GPIO10/IOXHLD";
+                       bias-disable;
+                       input-enable;
+               };
+               gpio11_pins: gpio11-pins {
+                       pins = "GPIO11/IOXHCK";
+                       bias-disable;
+                       input-enable;
+               };
+               gpio12ol_pins: gpio12ol-pins {
+                       pins = "GPIO12/GSPICK/SMB5BSCL";
+                       bias-disable;
+                       output-low;
+               };
+               gpio13ol_pins: gpio13ol-pins {
+                       pins = "GPIO13/GSPIDO/SMB5BSDA";
+                       bias-disable;
+                       output-low;
+               };
+               gpio14ol_pins: gpio14ol-pins {
+                       pins = "GPIO14/GSPIDI/SMB5CSCL";
+                       bias-disable;
+                       output-low;
+               };
+               gpio15ol_pins: gpio15ol-pins {
+                       pins = "GPIO15/GSPICS/SMB5CSDA";
+                       bias-disable;
+                       output-low;
+               };
+               gpio20_pins: gpio20-pins {
+                       pins = "GPIO20/SMB4CSDA/SMB15SDA";
+                       bias-disable;
+                       input-enable;
+               };
+               gpio21_pins: gpio21-pins {
+                       pins = "GPIO21/SMB4CSCL/SMB15SCL";
+                       bias-disable;
+                       input-enable;
+               };
+               gpio22o_pins: gpio22o-pins {
+                       pins = "GPIO22/SMB4DSDA/SMB14SDA";
+                       bias-disable;
+                       output-high;
+               };
+               gpio23_pins: gpio23-pins {
+                       pins = "GPIO23/SMB4DSCL/SMB14SCL";
+                       bias-disable;
+                       input-enable;
+               };
+               gpio24_pins: gpio24-pins {
+                       pins = "GPIO24/IOXHDO";
+                       bias-disable;
+                       input-enable;
+               };
+               gpio25_pins: gpio25-pins {
+                       pins = "GPIO25/IOXHDI";
+                       bias-disable;
+                       input-enable;
+               };
+               gpio30_pins: gpio30-pins {
+                       pins = "GPIO30/SMB3SDA";
+                       bias-disable;
+                       input-enable;
+               };
+               gpio31_pins: gpio31-pins {
+                       pins = "GPIO31/SMB3SCL";
+                       bias-disable;
+                       input-enable;
+               };
+               gpio37o_pins: gpio37o-pins {
+                       pins = "GPIO37/SMB3CSDA";
+                       bias-disable;
+                       output-high;
+               };
+               gpio38_pins: gpio38-pins {
+                       pins = "GPIO38/SMB3CSCL";
+                       bias-disable;
+                       input-enable;
+               };
+               gpio39_pins: gpio39-pins {
+                       pins = "GPIO39/SMB3BSDA";
+                       bias-disable;
+                       input-enable;
+               };
+               gpio40o_pins: gpio40o-pins {
+                       pins = "GPIO40/SMB3BSCL";
+                       bias-disable;
+                       output-high;
+               };
+               gpio59_pins: gpio59-pins {
+                       pins = "GPIO59/SMB3DSDA";
+                       bias-disable;
+                       input-enable;
+               };
+               gpio76_pins: gpio76-pins {
+                       pins = "GPIO76/FANIN12";
+                       bias-disable;
+                       input-enable;
+               };
+               gpio77_pins: gpio77-pins {
+                       pins = "GPIO77/FANIN13";
+                       bias-disable;
+                       input-enable;
+               };
+               gpio78o_pins: gpio78o-pins {
+                       pins = "GPIO78/FANIN14";
+                       bias-disable;
+                       output-high;
+               };
+               gpio79_pins: gpio79-pins {
+                       pins = "GPIO79/FANIN15";
+                       bias-disable;
+                       input-enable;
+               };
+               gpio82_pins: gpio82-pins {
+                       pins = "GPIO82/PWM2";
+                       bias-disable;
+                       input-enable;
+               };
+               gpio83_pins: gpio83-pins {
+                       pins = "GPIO83/PWM3";
+                       bias-disable;
+                       input-enable;
+               };
+               gpio84_pins: gpio84-pins {
+                       pins = "GPIO84/R2TXD0";
+                       bias-disable;
+                       input-enable;
+               };
+               gpio85o_pins: gpio85o-pins {
+                       pins = "GPIO85/R2TXD1";
+                       bias-disable;
+                       output-high;
+               };
+               gpio86ol_pins: gpio86ol-pins {
+                       pins = "GPIO86/R2TXEN";
+                       bias-disable;
+                       output-low;
+               };
+               gpio87_pins: gpio87-pins {
+                       pins = "GPIO87/R2RXD0";
+                       bias-disable;
+                       input-enable;
+               };
+               gpio88_pins: gpio88-pins {
+                       pins = "GPIO88/R2RXD1";
+                       bias-disable;
+                       input-enable;
+               };
+               gpio89_pins: gpio89-pins {
+                       pins = "GPIO89/R2CRSDV";
+                       bias-disable;
+                       input-enable;
+               };
+               gpio90_pins: gpio90-pins {
+                       pins = "GPIO90/R2RXERR";
+                       bias-disable;
+                       input-enable;
+               };
+               gpio93_pins: gpio93-pins {
+                       pins = "GPIO93/GA20/SMB5DSCL";
+                       bias-disable;
+                       input-enable;
+               };
+               gpio94ol_pins: gpio94ol-pins {
+                       pins = "GPIO94/nKBRST/SMB5DSDA";
+                       bias-disable;
+                       output-low;
+               };
+               gpio108ol_pins: gpio108ol-pins {
+                       pins = "GPIO108/RG1MDC";
+                       bias-disable;
+                       output-low;
+               };
+               gpio109ol_pins: gpio109ol-pins {
+                       pins = "GPIO109/RG1MDIO";
+                       bias-disable;
+                       output-low;
+               };
+               gpio110ol_pins: gpio110ol-pins {
+                       pins = "GPIO110/RG2TXD0/DDRV0";
+                       bias-disable;
+                       output-low;
+               };
+               gpio111ol_pins: gpio111ol-pins {
+                       pins = "GPIO111/RG2TXD1/DDRV1";
+                       bias-disable;
+                       output-low;
+               };
+               gpio112ol_pins: gpio112ol-pins {
+                       pins = "GPIO112/RG2TXD2/DDRV2";
+                       bias-disable;
+                       output-low;
+               };
+               gpio113ol_pins: gpio113ol-pins {
+                       pins = "GPIO113/RG2TXD3/DDRV3";
+                       bias-disable;
+                       output-low;
+               };
+               gpio114o_pins: gpio114o-pins {
+                       pins = "GPIO114/SMB0SCL";
+                       bias-disable;
+                       output-high;
+               };
+               gpio115_pins: gpio115-pins {
+                       pins = "GPIO115/SMB0SDA";
+                       bias-disable;
+                       input-enable;
+               };
+               gpio120_pins: gpio120-pins {
+                       pins = "GPIO120/SMB2CSDA";
+                       bias-disable;
+                       input-enable;
+               };
+               gpio121_pins: gpio121-pins {
+                       pins = "GPIO121/SMB2CSCL";
+                       bias-disable;
+                       input-enable;
+               };
+               gpio122_pins: gpio122-pins {
+                       pins = "GPIO122/SMB2BSDA";
+                       bias-disable;
+                       input-enable;
+               };
+               gpio123_pins: gpio123-pins {
+                       pins = "GPIO123/SMB2BSCL";
+                       bias-disable;
+                       input-enable;
+               };
+               gpio124_pins: gpio124-pins {
+                       pins = "GPIO124/SMB1CSDA";
+                       bias-disable;
+                       input-enable;
+               };
+               gpio125_pins: gpio125-pins {
+                       pins = "GPIO125/SMB1CSCL";
+                       bias-disable;
+                       input-enable;
+               };
+               gpio126_pins: gpio126-pins {
+                       pins = "GPIO126/SMB1BSDA";
+                       bias-disable;
+                       input-enable;
+               };
+               gpio127o_pins: gpio127o-pins {
+                       pins = "GPIO127/SMB1BSCL";
+                       bias-disable;
+                       output-high;
+               };
+               gpio136_pins: gpio136-pins {
+                       pins = "GPIO136/SD1DT0";
+                       bias-disable;
+                       input-enable;
+               };
+               gpio137_pins: gpio137-pins {
+                       pins = "GPIO137/SD1DT1";
+                       bias-disable;
+                       input-enable;
+               };
+               gpio138_pins: gpio138-pins {
+                       pins = "GPIO138/SD1DT2";
+                       bias-disable;
+                       input-enable;
+               };
+               gpio139_pins: gpio139-pins {
+                       pins = "GPIO139/SD1DT3";
+                       bias-disable;
+                       input-enable;
+               };
+               gpio140_pins: gpio140-pins {
+                       pins = "GPIO140/SD1CLK";
+                       bias-disable;
+                       input-enable;
+               };
+               gpio141_pins: gpio141-pins {
+                       pins = "GPIO141/SD1WP";
+                       bias-disable;
+                       input-enable;
+               };
+               gpio142_pins: gpio142-pins {
+                       pins = "GPIO142/SD1CMD";
+                       bias-disable;
+                       input-enable;
+               };
+               gpio143_pins: gpio143-pins {
+                       pins = "GPIO143/SD1CD/SD1PWR";
+                       bias-disable;
+                       input-enable;
+               };
+               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;
+               };
+               gpio153o_pins: gpio153o-pins {
+                       pins = "GPIO153/MMCWP";
+                       bias-disable;
+                       output-high;
+               };
+               gpio155_pins: gpio155-pins {
+                       pins = "GPIO155/nMMCCD/nMMCRST";
+                       bias-disable;
+                       input-enable;
+               };
+               gpio160o_pins: gpio160o-pins {
+                       pins = "GPIO160/CLKOUT/RNGOSCOUT";
+                       bias-disable;
+                       output-high;
+               };
+               gpio169o_pins: gpio169o-pins {
+                       pins = "GPIO169/nSCIPME";
+                       bias-disable;
+                       output-high;
+               };
+               gpio188o_pins: gpio188o-pins {
+                       pins = "GPIO188/SPI3D2/nSPI3CS2";
+                       bias-disable;
+                       output-high;
+               };
+               gpio189_pins: gpio189-pins {
+                       pins = "GPIO189/SPI3D3/nSPI3CS3";
+                       bias-disable;
+                       input-enable;
+               };
+               gpio196_pins: gpio196-pins {
+                       pins = "GPIO196/SMB0CSCL";
+                       bias-disable;
+                       input-enable;
+               };
+               gpio197_pins: gpio197-pins {
+                       pins = "GPIO197/SMB0DEN";
+                       bias-disable;
+                       input-enable;
+               };
+               gpio198o_pins: gpio198o-pins {
+                       pins = "GPIO198/SMB0DSDA";
+                       bias-disable;
+                       output-high;
+               };
+               gpio199o_pins: gpio199o-pins {
+                       pins = "GPIO199/SMB0DSCL";
+                       bias-disable;
+                       output-high;
+               };
+               gpio200_pins: gpio200-pins {
+                       pins = "GPIO200/R2CK";
+                       input-enable;
+                       bias-disable;
+               };
+               gpio202_pins: gpio202-pins {
+                       pins = "GPIO202/SMB0CSDA";
+                       bias-disable;
+                       input-enable;
+               };
+               gpio203o_pins: gpio203o-pins {
+                       pins = "GPIO203/FANIN16";
+                       bias-disable;
+                       output-high;
+               };
+               gpio208_pins: gpio208-pins {
+                       pins = "GPIO208/RG2TXC/DVCK";
+                       bias-disable;
+                       input-enable;
+               };
+               gpio209ol_pins: gpio209ol-pins {
+                       pins = "GPIO209/RG2TXCTL/DDRV4";
+                       bias-disable;
+                       output-low;
+               };
+               gpio210ol_pins: gpio210ol-pins {
+                       pins = "GPIO210/RG2RXD0/DDRV5";
+                       bias-disable;
+                       output-low;
+               };
+               gpio211ol_pins: gpio211ol-pins {
+                       pins = "GPIO211/RG2RXD1/DDRV6";
+                       bias-disable;
+                       output-low;
+               };
+               gpio212ol_pins: gpio212ol-pins {
+                       pins = "GPIO212/RG2RXD2/DDRV7";
+                       bias-disable;
+                       output-low;
+               };
+               gpio213ol_pins: gpio213ol-pins {
+                       pins = "GPIO213/RG2RXD3/DDRV8";
+                       bias-disable;
+                       output-low;
+               };
+               gpio214ol_pins: gpio214ol-pins {
+                       pins = "GPIO214/RG2RXC/DDRV9";
+                       bias-disable;
+                       output-low;
+               };
+               gpio215ol_pins: gpio215ol-pins {
+                       pins = "GPIO215/RG2RXCTL/DDRV10";
+                       bias-disable;
+                       output-low;
+               };
+               gpio216ol_pins: gpio216ol-pins {
+                       pins = "GPIO216/RG2MDC/DDRV11";
+                       bias-disable;
+                       output-low;
+               };
+               gpio217ol_pins: gpio217ol-pins {
+                       pins = "GPIO217/RG2MDIO/DVHSYNC";
+                       bias-disable;
+                       output-low;
+               };
+               gpio224_pins: gpio224-pins {
+                       pins = "GPIO224/SPIXCK";
+                       bias-disable;
+                       input-enable;
+               };
+               gpio225ol_pins: gpio225ol-pins {
+                       pins = "GPO225/SPIXD0/STRAP12";
+                       bias-disable;
+                       output-low;
+               };
+               gpio226ol_pins: gpio226ol-pins {
+                       pins = "GPO226/SPIXD1/STRAP13";
+                       bias-disable;
+                       output-low;
+               };
+               gpio227ol_pins: gpio227ol-pins {
+                       pins = "GPIO227/nSPIXCS0";
+                       bias-disable;
+                       output-low;
+               };
+               gpio228o_pins: gpio228ol-pins {
+                       pins = "GPIO228/nSPIXCS1";
+                       bias-disable;
+                       output-high;
+               };
+               gpio229o_pins: gpio229o-pins {
+                       pins = "GPO229/SPIXD2/STRAP3";
+                       bias-disable;
+                       output-high;
+               };
+               gpio230_pins: gpio230-pins {
+                       pins = "GPIO230/SPIXD3";
+                       bias-disable;
+                       input-enable;
+               };
+               gpio231o_pins: gpio231o-pins {
+                       pins = "GPIO231/nCLKREQ";
+                       bias-disable;
+                       output-high;
+               };
+       };
+};
diff --git a/arch/arm/boot/dts/nuvoton-npcm750-runbmc-olympus.dts b/arch/arm/boot/dts/nuvoton-npcm750-runbmc-olympus.dts
new file mode 100644 (file)
index 0000000..767e0ac
--- /dev/null
@@ -0,0 +1,1052 @@
+// SPDX-License-Identifier: GPL-2.0
+// Copyright (c) 2019 Nuvoton Technology <kwliu@nuvoton.com>
+// Copyright (c) 2019 Quanta Computer Inc. <Samuel.Jiang@quantatw.com>
+
+/dts-v1/;
+#include "nuvoton-npcm750.dtsi"
+#include "nuvoton-npcm750-runbmc-olympus-pincfg.dtsi"
+
+#include <dt-bindings/i2c/i2c.h>
+#include <dt-bindings/gpio/gpio.h>
+
+/ {
+       model = "Nuvoton npcm750 RunBMC Olympus";
+       compatible = "nuvoton,npcm750";
+
+       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;
+               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>;
+       };
+
+       leds {
+               compatible = "gpio-leds";
+               heartbeat {
+               label = "heartbeat";
+                       gpios = <&gpio3 14 1>;
+               };
+
+               identify {
+                       label = "identify";
+                       gpios = <&gpio3 15 1>;
+               };
+       };
+
+       jtag {
+               compatible = "nuvoton,npcm750-jtag";
+               enable_pspi_jtag = <1>;
+               pspi-index = <2>;
+               tck {
+                       label = "tck";
+                       gpios = <&gpio0 19 0>; /* gpio19 */
+                       regbase = <0xf0010000 0x1000>;
+               };
+
+               tdi {
+                       label = "tdi";
+                       gpios = <&gpio0 18 0>; /* gpio18 */
+                       regbase = <0xf0010000 0x1000>;
+               };
+
+               tdo {
+                       label = "tdo";
+                       gpios = <&gpio0 17 0>; /* gpio17 */
+                       regbase = <0xf0010000 0x1000>;
+               };
+               tms {
+                       label = "tms";
+                       gpios = <&gpio0 16 0>; /* gpio16 */
+                       regbase = <0xf0010000 0x1000>;
+               };
+       };
+};
+
+&fiu0 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&spi0cs1_pins>;
+       status = "okay";
+
+       spi-nor@0 {
+               compatible = "jedec,spi-nor";
+               #address-cells = <1>;
+               #size-cells = <1>;
+               reg = <0>;
+               spi-rx-bus-width = <2>;
+
+               partitions@80000000 {
+                       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 0x1500000>;
+                       };
+                       rwfs@1d00000 {
+                               label = "rwfs";
+                               reg = <0x1d00000 0x300000>;
+                       };
+               };
+       };
+
+       spi-nor@1 {
+               compatible = "jedec,spi-nor";
+               #address-cells = <1>;
+               #size-cells = <1>;
+               reg = <1>;
+               npcm,fiu-rx-bus-width = <2>;
+
+               partitions@88000000 {
+                       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>;
+       status = "okay";
+
+       spi-nor@0 {
+               compatible = "jedec,spi-nor";
+               #address-cells = <1>;
+               #size-cells = <1>;
+               reg = <0>;
+               spi-rx-bus-width = <2>;
+
+               partitions@A0000000 {
+                       compatible = "fixed-partitions";
+                       #address-cells = <1>;
+                       #size-cells = <1>;
+                       system1@0 {
+                               label = "spi3-system1";
+                               reg = <0x0 0x800000>;
+                       };
+                       system2@800000 {
+                               label = "spi3-system2";
+                               reg = <0x800000 0x0>;
+                       };
+               };
+       };
+};
+
+&gcr {
+       mux-controller {
+               compatible = "mmio-mux";
+               #mux-control-cells = <1>;
+
+               mux-reg-masks = <0x38 0x07>;
+               idle-states = <6>;
+       };
+};
+
+&gmac0 {
+       phy-mode = "rgmii-id";
+       snps,eee-force-disable;
+       status = "okay";
+};
+
+&i2c1 {
+       status = "okay";
+
+       i2c-switch@70 {
+               compatible = "nxp,pca9548";
+               #address-cells = <1>;
+               #size-cells = <0>;
+               reg = <0x70>;
+               i2c-mux-idle-disconnect;
+
+               i2c_slot1a: i2c-bus@0 {
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       reg = <0>;
+               };
+
+               i2c_slot1b: i2c-bus@1 {
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       reg = <1>;
+               };
+
+               i2c_slot2a: i2c-bus@2 {
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       reg = <2>;
+               };
+
+               i2c_slot2b: i2c-bus@3 {
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       reg = <3>;
+               };
+
+               i2c_slot3: i2c-bus@4 {
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       reg = <4>;
+               };
+
+               i2c_slot4: i2c-bus@5 {
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       reg = <5>;
+               };
+
+               i2c_slot5: i2c-bus@6 {
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       reg = <6>;
+               };
+       };
+
+       i2c-switch@71 {
+               compatible = "nxp,pca9546";
+               reg = <0x71>;
+               #address-cells = <1>;
+               #size-cells = <0>;
+               i2c-mux-idle-disconnect;
+
+               i2c_m2_s1: i2c-bus@0 {
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       reg = <0>;
+               };
+
+               i2c_m2_s2: i2c-bus@1 {
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       reg = <1>;
+               };
+               i2c_m2_s3: i2c-bus@2 {
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       reg = <2>;
+               };
+
+               i2c_m2_s4: i2c-bus@3 {
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       reg = <3>;
+               };
+       };
+};
+
+&i2c2 {
+       status = "okay";
+
+       tmp421@4c {
+               compatible = "ti,tmp421";
+               reg = <0x4c>;
+       };
+
+       power-supply@58 {
+               compatible = "delta,dps800";
+               reg = <0x58>;
+       };
+};
+
+&i2c3 {
+       status = "okay";
+};
+
+&i2c4 {
+       status = "okay";
+
+       eeprom@54 {
+               compatible = "atmel,24c64";
+               reg = <0x54>;
+       };
+};
+
+&i2c5 {
+       status = "okay";
+
+       i2c-slave-mqueue@10 {
+               compatible = "i2c-slave-mqueue";
+               reg = <(I2C_OWN_SLAVE_ADDRESS | 0x10)>;
+       };
+};
+
+&i2c6 {
+       status = "okay";
+
+       ina219@40 {
+               compatible = "ti,ina219";
+               reg = <0x40>;
+       };
+       ina219@41 {
+               compatible = "ti,ina219";
+               reg = <0x41>;
+       };
+       ina219@44 {
+               compatible = "ti,ina219";
+               reg = <0x44>;
+       };
+       ina219@45 {
+               compatible = "ti,ina219";
+               reg = <0x45>;
+       };
+       tps53679@60 {
+               compatible = "ti,tps53679";
+               reg = <0x60>;
+       };
+       tps53659@62 {
+               compatible = "ti,tps53659";
+               reg = <0x62>;
+       };
+       tps53659@64 {
+               compatible = "ti,tps53659";
+               reg = <0x64>;
+       };
+       tps53622@67 {
+               compatible = "ti,tps53622";
+               reg = <0x67>;
+       };
+       tps53622@69 {
+               compatible = "ti,tps53622";
+               reg = <0x69>;
+       };
+       tps53679@70 {
+               compatible = "ti,tps53679";
+               reg = <0x70>;
+       };
+       tps53659@72 {
+               compatible = "ti,tps53659";
+               reg = <0x72>;
+       };
+       tps53659@74 {
+               compatible = "ti,tps53659";
+               reg = <0x74>;
+       };
+       tps53622@77 {
+               compatible = "ti,tps53622";
+               reg = <0x77>;
+       };
+};
+
+&i2c7 {
+       status = "okay";
+
+       tmp421@4c {
+               compatible = "ti,tmp421";
+               reg = <0x4c>;
+       };
+};
+
+&i2c8 {
+       status = "okay";
+
+       adm1278@11 {
+               compatible = "adm1278";
+               reg = <0x11>;
+               Rsense = <500>;
+       };
+};
+
+&i2c9 {
+       status = "okay";
+};
+
+&i2c10 {
+       status = "okay";
+
+       gpio: pca9555@27 {
+               compatible = "nxp,pca9555";
+               reg = <0x27>;
+
+               gpio-controller;
+               #gpio-cells = <2>;
+       };
+};
+
+&i2c11 {
+       status = "okay";
+
+       pca9539_g1a: pca9539-g1a@74 {
+               compatible = "nxp,pca9539";
+               reg = <0x74>;
+               gpio-controller;
+               #gpio-cells = <2>;
+               reset-gpios = <&gpio7 4 GPIO_ACTIVE_LOW>;
+               G1A_P0_0 {
+                       gpio-hog;
+                       gpios = <0 0>;
+                       output-high;
+                       line-name = "TPM_BMC_ALERT_N";
+               };
+               G1A_P0_1 {
+                       gpio-hog;
+                       gpios = <1 0>;
+                       input;
+                       line-name = "FM_BIOS_TOP_SWAP";
+               };
+               G1A_P0_2 {
+                       gpio-hog;
+                       gpios = <2 0>;
+                       input;
+                       line-name = "FM_BIOS_PREFRB2_GOOD";
+               };
+               G1A_P0_3 {
+                       gpio-hog;
+                       gpios = <3 0>;
+                       input;
+                       line-name = "BMC_SATAXPCIE_0TO3_SEL";
+               };
+               G1A_P0_4 {
+                       gpio-hog;
+                       gpios = <4 0>;
+                       input;
+                       line-name = "BMC_SATAXPCIE_4TO7_SEL";
+               };
+               G1A_P0_5 {
+                       gpio-hog;
+                       gpios = <5 0>;
+                       output-low;
+                       line-name = "FM_UV_ADR_TRIGGER_EN_N";
+               };
+               G1A_P0_6 {
+                       gpio-hog;
+                       gpios = <6 0>;
+                       input;
+                       line-name = "RM_THROTTLE_EN_N";
+               };
+               G1A_P1_0 {
+                       gpio-hog;
+                       gpios = <8 0>;
+                       input;
+                       line-name = "FM_BMC_TPM_PRES_N";
+               };
+               G1A_P1_1 {
+                       gpio-hog;
+                       gpios = <9 0>;
+                       input;
+                       line-name = "FM_CPU0_SKTOCC_LVT3_N";
+               };
+               G1A_P1_2 {
+                       gpio-hog;
+                       gpios = <10 0>;
+                       input;
+                       line-name = "FM_CPU1_SKTOCC_LVT3_N";
+               };
+               G1A_P1_3 {
+                       gpio-hog;
+                       gpios = <11 0>;
+                       input;
+                       line-name = "PSU1_ALERT_N";
+               };
+               G1A_P1_4 {
+                       gpio-hog;
+                       gpios = <12 0>;
+                       input;
+                       line-name = "PSU2_ALERT_N";
+               };
+               G1A_P1_5 {
+                       gpio-hog;
+                       gpios = <13 0>;
+                       input;
+                       line-name = "H_CPU0_FAST_WAKE_LVT3_N";
+               };
+               G1A_P1_6 {
+                       gpio-hog;
+                       gpios = <14 0>;
+                       output-high;
+                       line-name = "I2C_MUX1_RESET_N";
+               };
+               G1A_P1_7 {
+                       gpio-hog;
+                       gpios = <15 0>;
+                       input;
+                       line-name = "FM_CPU_CATERR_LVT3_N";
+               };
+       };
+
+       pca9539_g1b: pca9539-g1b@75 {
+               compatible = "nxp,pca9539";
+               reg = <0x75>;
+               gpio-controller;
+               #gpio-cells = <2>;
+               G1B_P0_0 {
+                       gpio-hog;
+                       gpios = <0 0>;
+                       input;
+                       line-name = "PVDDQ_ABC_PINALERT_N";
+               };
+               G1B_P0_1 {
+                       gpio-hog;
+                       gpios = <1 0>;
+                       input;
+                       line-name = "PVDDQ_DEF_PINALERT_N";
+               };
+               G1B_P0_2 {
+                       gpio-hog;
+                       gpios = <2 0>;
+                       input;
+                       line-name = "PVDDQ_GHJ_PINALERT_N";
+               };
+               G1B_P0_3 {
+                       gpio-hog;
+                       gpios = <3 0>;
+                       input;
+                       line-name = "PVDDQ_KLM_PINALERT_N";
+               };
+               G1B_P0_5 {
+                       gpio-hog;
+                       gpios = <5 0>;
+                       input;
+                       line-name = "FM_BOARD_REV_ID0";
+               };
+               G1B_P0_6 {
+                       gpio-hog;
+                       gpios = <6 0>;
+                       input;
+                       line-name = "FM_BOARD_REV_ID1";
+               };
+               G1B_P0_7 {
+                       gpio-hog;
+                       gpios = <7 0>;
+                       input;
+                       line-name = "FM_BOARD_REV_ID2";
+               };
+               G1B_P1_0 {
+                       gpio-hog;
+                       gpios = <8 0>;
+                       input;
+                       line-name = "FM_OC_DETECT_EN_N";
+               };
+               G1B_P1_1 {
+                       gpio-hog;
+                       gpios = <9 0>;
+                       input;
+                       line-name = "FM_FLASH_DESC_OVERRIDE";
+               };
+               G1B_P1_2 {
+                       gpio-hog;
+                       gpios = <10 0>;
+                       output-low;
+                       line-name = "FP_PWR_ID_LED_N";
+               };
+               G1B_P1_3 {
+                       gpio-hog;
+                       gpios = <11 0>;
+                       output-low;
+                       line-name = "BMC_LED_PWR_GRN";
+               };
+               G1B_P1_4 {
+                       gpio-hog;
+                       gpios = <12 0>;
+                       output-low;
+                       line-name = "BMC_LED_PWR_AMBER";
+               };
+               G1B_P1_5 {
+                       gpio-hog;
+                       gpios = <13 0>;
+                       output-high;
+                       line-name = "FM_BMC_FAULT_LED_N";
+               };
+               G1B_P1_6 {
+                       gpio-hog;
+                       gpios = <14 0>;
+                       output-high;
+                       line-name = "FM_CPLD_BMC_PWRDN_N";
+               };
+               G1B_P1_7 {
+                       gpio-hog;
+                       gpios = <15 0>;
+                       output-high;
+                       line-name = "BMC_LED_CATERR_N";
+               };
+       };
+};
+
+&i2c12 {
+       status = "okay";
+
+       pca9539_g2a: pca9539-g2a@74 {
+               compatible = "nxp,pca9539";
+               reg = <0x74>;
+               gpio-controller;
+               #gpio-cells = <2>;
+               reset-gpios = <&gpio5 28 GPIO_ACTIVE_LOW>;
+               G2A_P0_0 {
+                       gpio-hog;
+                       gpios = <0 0>;
+                       output-high;
+                       line-name = "BMC_PON_RST_REQ_N";
+               };
+               G2A_P0_1 {
+                       gpio-hog;
+                       gpios = <1 0>;
+                       output-high;
+                       line-name = "BMC_RST_IND_REQ_N";
+               };
+               G2A_P0_2 {
+                       gpio-hog;
+                       gpios = <2 0>;
+                       input;
+                       line-name = "RST_BMC_RTCRST";
+               };
+               G2A_P0_3 {
+                       gpio-hog;
+                       gpios = <3 0>;
+                       output-high;
+                       line-name = "FM_BMC_PWRBTN_OUT_N";
+               };
+               G2A_P0_4 {
+                       gpio-hog;
+                       gpios = <4 0>;
+                       output-high;
+                       line-name = "RST_BMC_SYSRST_BTN_OUT_N";
+               };
+               G2A_P0_5 {
+                       gpio-hog;
+                       gpios = <5 0>;
+                       output-high;
+                       line-name = "FM_BATTERY_SENSE_EN_N";
+               };
+               G2A_P0_6 {
+                       gpio-hog;
+                       gpios = <6 0>;
+                       output-high;
+                       line-name = "FM_BMC_READY_N";
+               };
+               G2A_P0_7 {
+                       gpio-hog;
+                       gpios = <7 0>;
+                       input;
+                       line-name = "IRQ_BMC_PCH_SMI_LPC_N";
+               };
+               G2A_P1_0 {
+                       gpio-hog;
+                       gpios = <8 0>;
+                       input;
+                       line-name = "FM_SLOT4_CFG0";
+               };
+               G2A_P1_1 {
+                       gpio-hog;
+                       gpios = <9 0>;
+                       input;
+                       line-name = "FM_SLOT4_CFG1";
+               };
+               G2A_P1_2 {
+                       gpio-hog;
+                       gpios = <10 0>;
+                       input;
+                       line-name = "FM_NVDIMM_EVENT_N";
+               };
+               G2A_P1_3 {
+                       gpio-hog;
+                       gpios = <11 0>;
+                       input;
+                       line-name = "PSU1_BLADE_EN_N";
+               };
+               G2A_P1_4 {
+                       gpio-hog;
+                       gpios = <12 0>;
+                       input;
+                       line-name = "BMC_PCH_FNM";
+               };
+               G2A_P1_5 {
+                       gpio-hog;
+                       gpios = <13 0>;
+                       input;
+                       line-name = "FM_SOL_UART_CH_SEL";
+               };
+               G2A_P1_6 {
+                       gpio-hog;
+                       gpios = <14 0>;
+                       input;
+                       line-name = "FM_BIOS_POST_CMPLT_N";
+               };
+       };
+
+       pca9539_g2b: pca9539-g2b@75 {
+               compatible = "nxp,pca9539";
+               reg = <0x75>;
+               gpio-controller;
+               #gpio-cells = <2>;
+               G2B_P0_0 {
+                       gpio-hog;
+                       gpios = <0 0>;
+                       input;
+                       line-name = "FM_CPU_MSMI_LVT3_N";
+               };
+               G2B_P0_1 {
+                       gpio-hog;
+                       gpios = <1 0>;
+                       input;
+                       line-name = "FM_BIOS_MRC_DEBUG_MSG_DIS";
+               };
+               G2B_P0_2 {
+                       gpio-hog;
+                       gpios = <2 0>;
+                       input;
+                       line-name = "FM_CPU1_DISABLE_BMC_N";
+               };
+               G2B_P0_3 {
+                       gpio-hog;
+                       gpios = <3 0>;
+                       output-low;
+                       line-name = "BMC_JTAG_SELECT";
+               };
+               G2B_P0_4 {
+                       gpio-hog;
+                       gpios = <4 0>;
+                       output-high;
+                       line-name = "PECI_MUX_SELECT";
+               };
+               G2B_P0_5 {
+                       gpio-hog;
+                       gpios = <5 0>;
+                       output-high;
+                       line-name = "I2C_MUX2_RESET_N";
+               };
+               G2B_P0_6 {
+                       gpio-hog;
+                       gpios = <6 0>;
+                       input;
+                       line-name = "FM_BMC_CPLD_PSU2_ON";
+               };
+               G2B_P0_7 {
+                       gpio-hog;
+                       gpios = <7 0>;
+                       output-high;
+                       line-name = "PSU2_ALERT_EN_N";
+               };
+               G2B_P1_0 {
+                       gpio-hog;
+                       gpios = <8 0>;
+                       output-high;
+                       line-name = "FM_CPU_BMC_INIT";
+               };
+               G2B_P1_1 {
+                       gpio-hog;
+                       gpios = <9 0>;
+                       output-high;
+                       line-name = "IRQ_BMC_PCH_SCI_LPC_N";
+               };
+               G2B_P1_2 {
+                       gpio-hog;
+                       gpios = <10 0>;
+                       output-low;
+                       line-name = "PMB_ALERT_EN_N";
+               };
+               G2B_P1_3 {
+                       gpio-hog;
+                       gpios = <11 0>;
+                       output-high;
+                       line-name = "FM_FAST_PROCHOT_EN_N";
+               };
+               G2B_P1_4 {
+                       gpio-hog;
+                       gpios = <12 0>;
+                       output-high;
+                       line-name = "BMC_NVDIMM_PRSNT_N";
+               };
+               G2B_P1_5 {
+                       gpio-hog;
+                       gpios = <13 0>;
+                       output-low;
+                       line-name = "FM_BACKUP_BIOS_SEL_H_BMC";
+               };
+               G2B_P1_6 {
+                       gpio-hog;
+                       gpios = <14 0>;
+                       output-high;
+                       line-name = "FM_PWRBRK_N";
+               };
+       };
+};
+
+&i2c13 {
+       status = "okay";
+
+       tmp75@4a {
+               compatible = "ti,tmp75";
+               reg = <0x4a>;
+               status = "okay";
+       };
+       m24128_fru@51 {
+               compatible = "atmel,24c128";
+               reg = <0x51>;
+               pagesize = <64>;
+               status = "okay";
+       };
+};
+
+&pwm_fan {
+       pinctrl-names = "default";
+       pinctrl-0 = <   &pwm0_pins &pwm1_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>;
+       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>;
+       };
+};
+
+&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";
+};
+
+&kcs1 {
+       status = "okay";
+};
+
+&kcs2 {
+       status = "okay";
+};
+
+&kcs3 {
+       status = "okay";
+};
+
+&spi0 {
+       cs-gpios = <&gpio6 11 GPIO_ACTIVE_LOW>;
+       status = "okay";
+};
+
+&spi1 {
+       status = "okay";
+};
+
+&pinctrl {
+       pinctrl-names = "default";
+       pinctrl-0 = <
+                       /******* RunBMC inside Module pins *******/
+                       &gpio0ol_pins
+                       &gpio1ol_pins
+                       &gpio2ol_pins
+                       &gpio3ol_pins
+                       &gpio8o_pins
+                       &gpio9ol_pins
+                       &gpio12ol_pins
+                       &gpio13ol_pins
+                       &gpio14ol_pins
+                       &gpio15ol_pins
+                       &gpio37o_pins
+                       &gpio38_pins
+                       &gpio39_pins
+                       &gpio94ol_pins
+                       &gpio108ol_pins
+                       &gpio109ol_pins
+                       &gpio111ol_pins
+                       &gpio112ol_pins
+                       &gpio113ol_pins
+                       &gpio208_pins
+                       &gpio209ol_pins
+                       &gpio210ol_pins
+                       &gpio211ol_pins
+                       &gpio212ol_pins
+                       &gpio213ol_pins
+                       &gpio214ol_pins
+                       &gpio215ol_pins
+                       &gpio216ol_pins
+                       &gpio217ol_pins
+                       /******* RunBMC outside Connector pins *******/
+                       &gpio5_pins
+                       &gpio6_pins
+                       &gpio7_pins
+                       &gpio10_pins
+                       &gpio11_pins
+                       &gpio20_pins
+                       &gpio21_pins
+                       &gpio22o_pins
+                       &gpio23_pins
+                       &gpio24_pins
+                       &gpio25_pins
+                       &gpio30_pins
+                       &gpio31_pins
+                       &gpio40o_pins
+                       &gpio59_pins
+                       &gpio76_pins
+                       &gpio77_pins
+                       &gpio78o_pins
+                       &gpio79_pins
+                       &gpio82_pins
+                       &gpio83_pins
+                       &gpio84_pins
+                       &gpio85o_pins
+                       &gpio86ol_pins
+                       &gpio87_pins
+                       &gpio88_pins
+                       &gpio89_pins
+                       &gpio90_pins
+                       &gpio93_pins
+                       &gpio114o_pins
+                       &gpio115_pins
+                       &gpio120_pins
+                       &gpio121_pins
+                       &gpio122_pins
+                       &gpio123_pins
+                       &gpio124_pins
+                       &gpio125_pins
+                       &gpio126_pins
+                       &gpio127o_pins
+                       &gpio136_pins
+                       &gpio137_pins
+                       &gpio138_pins
+                       &gpio139_pins
+                       &gpio140_pins
+                       &gpio141_pins
+                       &gpio142_pins
+                       &gpio143_pins
+                       &gpio144_pins
+                       &gpio146_pins
+                       &gpio145_pins
+                       &gpio147_pins
+                       &gpio153o_pins
+                       &gpio155_pins
+                       &gpio160o_pins
+                       &gpio169o_pins
+                       &gpio188o_pins
+                       &gpio189_pins
+                       &gpio196_pins
+                       &gpio197_pins
+                       &gpio198o_pins
+                       &gpio199o_pins
+                       &gpio200_pins
+                       &gpio202_pins
+                       &gpio203o_pins
+                       &gpio224_pins
+                       &gpio225ol_pins
+                       &gpio226ol_pins
+                       &gpio227ol_pins
+                       &gpio228o_pins
+                       &gpio229o_pins
+                       &gpio230_pins
+                       &gpio231o_pins
+                       &ddc_pins
+                       &wdog1_pins
+                       &wdog2_pins
+                       >;
+};
index 6ac3405..13eee0f 100644 (file)
@@ -17,7 +17,7 @@
                cpu@0 {
                        device_type = "cpu";
                        compatible = "arm,cortex-a9";
-                       clocks = <&clk 0>;
+                       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 0>;
+                       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 5>;
+                       clocks = <&clk NPCM7XX_CLK_AHB>;
+               };
+       };
+
+       ahb {
+               gmac1: eth@f0804000 {
+                       device_type = "network";
+                       compatible = "snps,dwmac";
+                       reg = <0xf0804000 0x2000>;
+                       interrupts = <GIC_SPI 17 IRQ_TYPE_LEVEL_HIGH>;
+                       interrupt-names = "macirq";
+                       ethernet = <1>;
+                       clocks  = <&clk_rg2refck>, <&clk NPCM7XX_CLK_AHB>;
+                       clock-names = "stmmaceth", "clk_gmac";
+                       pinctrl-names = "default";
+                       pinctrl-0 = <&rg2_pins
+                                       &rg2mdio_pins>;
+                       status = "disabled";
                };
        };
 };