diff mbox series

[v4,linux,dev-5.8] Fii Kudo project device tree file

Message ID 20201112220510.14373-1-lancelot.kao@fii-usa.com
State New
Headers show
Series [v4,linux,dev-5.8] Fii Kudo project device tree file | expand

Commit Message

Lancelot Kao Nov. 12, 2020, 10:05 p.m. UTC
Add device tree for the Kudo BMC. Kudo is an Ampere (Altra)
server platform manufactured by Fii and is based on a Nuvoton
NPCM730 SoC.

Signed-off-by: Mustatfa Shehabi <Mustafa.Shehabi@fii-na.com>
Signed-off-by: Mohaimen alsmarai <Mohaimen.alsamarai@fii-na.com>

---
v2:
 - Remove the duplicate the full path and address of node.
 - modified syntax

---
v3:
 - Modify the platform description
 - Merge uvoton-npcm730-kudo-gpio.dtsi to uvoton-npcm730-kudo.dts
 - Removed re-describe statement
 - move comment to above

---
v4:
 - correct mail title
---
 arch/arm/boot/dts/nuvoton-npcm730-kudo.dts | 871 +++++++++++++++++++++
 1 file changed, 871 insertions(+)
 create mode 100644 arch/arm/boot/dts/nuvoton-npcm730-kudo.dts

Comments

Joel Stanley Nov. 16, 2020, 3:30 a.m. UTC | #1
On Thu, 12 Nov 2020 at 22:05, Lancelot Kao <lancelot.kao@fii-usa.com> wrote:
>
> Add device tree for the Kudo BMC. Kudo is an Ampere (Altra)
> server platform manufactured by Fii and is based on a Nuvoton
> NPCM730 SoC.
>
> Signed-off-by: Mustatfa Shehabi <Mustafa.Shehabi@fii-na.com>
> Signed-off-by: Mohaimen alsmarai <Mohaimen.alsamarai@fii-na.com>

Looks good! I'll give Ben a chance  to review before applying.

Reviewed-by: Joel Stanley <joel@jms.id.au>

>
> ---
> v2:
>  - Remove the duplicate the full path and address of node.
>  - modified syntax
>
> ---
> v3:
>  - Modify the platform description
>  - Merge uvoton-npcm730-kudo-gpio.dtsi to uvoton-npcm730-kudo.dts
>  - Removed re-describe statement
>  - move comment to above
>
> ---
> v4:
>  - correct mail title
> ---
>  arch/arm/boot/dts/nuvoton-npcm730-kudo.dts | 871 +++++++++++++++++++++
>  1 file changed, 871 insertions(+)
>  create mode 100644 arch/arm/boot/dts/nuvoton-npcm730-kudo.dts
>
> diff --git a/arch/arm/boot/dts/nuvoton-npcm730-kudo.dts b/arch/arm/boot/dts/nuvoton-npcm730-kudo.dts
> new file mode 100644
> index 000000000000..077d815e84fc
> --- /dev/null
> +++ b/arch/arm/boot/dts/nuvoton-npcm730-kudo.dts
> @@ -0,0 +1,871 @@
> +// SPDX-License-Identifier: GPL-2.0
> +// Copyright (c) 2020 Fii USA Inc.
> +
> +/dts-v1/;
> +#include "nuvoton-npcm730.dtsi"
> +
> +/ {
> +       model = "Fii Kudo Board";
> +       compatible = "fii,kudo", "nuvoton,npcm730";
> +
> +       aliases {
> +               ethernet0 = &emc0;
> +               ethernet1 = &gmac0;
> +               serial0 = &serial0;
> +               serial1 = &serial1;
> +               serial2 = &serial2;
> +               serial3 = &serial3;
> +               udc9 = &udc9;
> +               emmc0 = &sdhci0;
> +               vdma = &vdma;
> +               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;
> +       };
> +
> +       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";
> +};
> +
> +&emc0 {
> +       status = "okay";
> +};
> +
> +&ehci1 {
> +       status = "okay";
> +};
> +
> +&ohci1 {
> +       status = "okay";
> +};
> +
> +&udc9 {
> +       status = "okay";
> +};
> +
> +&aes {
> +       status = "okay";
> +};
> +
> +&sha {
> +       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>;
> +               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 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@1d00000 {
> +                               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>;
> +                       };
> +               };
> +       };
> +};
> +
> +&sdhci0 {
> +       status = "okay";
> +};
> +
> +&vdma {
> +       status = "okay";
> +};
> +
> +&pcimbox {
> +       status = "okay";
> +};
> +
> +&vcd {
> +       status = "okay";
> +};
> +
> +&ece {
> +       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";
> +};
> +
> +&otp {
> +       status = "okay";
> +};
> +
> +&i2c1 {
> +       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 {
> +       smpro@4f {
> +               compatible = "ampere,smpro";
> +               reg = <0x4f>;
> +       };
> +
> +       smpro@4e {
> +               compatible = "ampere,smpro";
> +               reg = <0x4e>;
> +       };
> +};
> +
> +&i2c3 {
> +       status = "okay";
> +};
> +
> +&i2c4 {
> +       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 {
> +       ssif-bmc@10 {
> +               compatible = "ssif-bmc";
> +               reg = <0x10>;
> +       };
> +};
> +
> +&i2c13 {
> +       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>;
> +       };
> +};
> --
> 2.17.1
>
Vivekanand Veeracholan Nov. 16, 2020, 5:48 p.m. UTC | #2
On Sun, Nov 15, 2020 at 7:31 PM Joel Stanley <joel@jms.id.au> wrote:
>
> On Thu, 12 Nov 2020 at 22:05, Lancelot Kao <lancelot.kao@fii-usa.com> wrote:
> >
> > Add device tree for the Kudo BMC. Kudo is an Ampere (Altra)
> > server platform manufactured by Fii and is based on a Nuvoton
> > NPCM730 SoC.
> >
> > Signed-off-by: Mustatfa Shehabi <Mustafa.Shehabi@fii-na.com>
> > Signed-off-by: Mohaimen alsmarai <Mohaimen.alsamarai@fii-na.com>
>
> Looks good! I'll give Ben a chance  to review before applying.
>
> Reviewed-by: Joel Stanley <joel@jms.id.au>
>
> >
> > ---
> > v2:
> >  - Remove the duplicate the full path and address of node.
> >  - modified syntax
> >
> > ---
> > v3:
> >  - Modify the platform description
> >  - Merge uvoton-npcm730-kudo-gpio.dtsi to uvoton-npcm730-kudo.dts
> >  - Removed re-describe statement
> >  - move comment to above
> >
> > ---
> > v4:
> >  - correct mail title
> > ---
> >  arch/arm/boot/dts/nuvoton-npcm730-kudo.dts | 871 +++++++++++++++++++++
> >  1 file changed, 871 insertions(+)
> >  create mode 100644 arch/arm/boot/dts/nuvoton-npcm730-kudo.dts
> >
> > diff --git a/arch/arm/boot/dts/nuvoton-npcm730-kudo.dts b/arch/arm/boot/dts/nuvoton-npcm730-kudo.dts
> > new file mode 100644
> > index 000000000000..077d815e84fc
> > --- /dev/null
> > +++ b/arch/arm/boot/dts/nuvoton-npcm730-kudo.dts
> > @@ -0,0 +1,871 @@
> > +// SPDX-License-Identifier: GPL-2.0
> > +// Copyright (c) 2020 Fii USA Inc.
> > +
> > +/dts-v1/;
> > +#include "nuvoton-npcm730.dtsi"
> > +
> > +/ {
> > +       model = "Fii Kudo Board";
> > +       compatible = "fii,kudo", "nuvoton,npcm730";
> > +
> > +       aliases {
> > +               ethernet0 = &emc0;
> > +               ethernet1 = &gmac0;
> > +               serial0 = &serial0;
> > +               serial1 = &serial1;
> > +               serial2 = &serial2;
> > +               serial3 = &serial3;
> > +               udc9 = &udc9;
> > +               emmc0 = &sdhci0;
> > +               vdma = &vdma;
> > +               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;
> > +       };
> > +
> > +       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";
> > +};
> > +
> > +&emc0 {
> > +       status = "okay";
> > +};
> > +
> > +&ehci1 {
> > +       status = "okay";
> > +};
> > +
> > +&ohci1 {
> > +       status = "okay";
> > +};
> > +
> > +&udc9 {
> > +       status = "okay";
> > +};
> > +
> > +&aes {
> > +       status = "okay";
> > +};
> > +
> > +&sha {
> > +       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>;
> > +               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 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@1d00000 {
> > +                               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>;
> > +                       };
> > +               };
> > +       };
> > +};
> > +
> > +&sdhci0 {
> > +       status = "okay";
> > +};
> > +
> > +&vdma {
> > +       status = "okay";
> > +};
> > +
> > +&pcimbox {
> > +       status = "okay";
> > +};
> > +
> > +&vcd {
> > +       status = "okay";
> > +};
> > +
> > +&ece {
> > +       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";
> > +};
> > +
> > +&otp {
> > +       status = "okay";
> > +};
> > +
> > +&i2c1 {
> > +       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 {
> > +       smpro@4f {
> > +               compatible = "ampere,smpro";
> > +               reg = <0x4f>;
> > +       };
> > +
> > +       smpro@4e {
> > +               compatible = "ampere,smpro";
> > +               reg = <0x4e>;
> > +       };
> > +};
i2c2 is explicitly disabled in the nuvoton-common-npcm7xx.dtsi
(included in nuvoton-npcm730.dtsi)
Do we need status=okay here?
Same for i2c4.
> > +
> > +&i2c3 {
> > +       status = "okay";
> > +};
> > +
> > +&i2c4 {
> > +       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 {
> > +       ssif-bmc@10 {
> > +               compatible = "ssif-bmc";
> > +               reg = <0x10>;
> > +       };
> > +};
> > +
> > +&i2c13 {
> > +       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>;
> > +       };
> > +};
> > --
> > 2.17.1
> >
Benjamin Fair Nov. 16, 2020, 7:10 p.m. UTC | #3
On Mon, 16 Nov 2020 at 09:48, Vivekanand Veeracholan
<vveerach@google.com> wrote:
>
> On Sun, Nov 15, 2020 at 7:31 PM Joel Stanley <joel@jms.id.au> wrote:
> >
> > On Thu, 12 Nov 2020 at 22:05, Lancelot Kao <lancelot.kao@fii-usa.com> wrote:
> > >
> > > Add device tree for the Kudo BMC. Kudo is an Ampere (Altra)
> > > server platform manufactured by Fii and is based on a Nuvoton
> > > NPCM730 SoC.
> > >
> > > Signed-off-by: Mustatfa Shehabi <Mustafa.Shehabi@fii-na.com>
> > > Signed-off-by: Mohaimen alsmarai <Mohaimen.alsamarai@fii-na.com>
> >
> > Looks good! I'll give Ben a chance  to review before applying.
> >
> > Reviewed-by: Joel Stanley <joel@jms.id.au>
> >
> > >
> > > ---
> > > v2:
> > >  - Remove the duplicate the full path and address of node.
> > >  - modified syntax
> > >
> > > ---
> > > v3:
> > >  - Modify the platform description
> > >  - Merge uvoton-npcm730-kudo-gpio.dtsi to uvoton-npcm730-kudo.dts
> > >  - Removed re-describe statement
> > >  - move comment to above
> > >
> > > ---
> > > v4:
> > >  - correct mail title
> > > ---
> > >  arch/arm/boot/dts/nuvoton-npcm730-kudo.dts | 871 +++++++++++++++++++++
> > >  1 file changed, 871 insertions(+)
> > >  create mode 100644 arch/arm/boot/dts/nuvoton-npcm730-kudo.dts
> > >
> > > diff --git a/arch/arm/boot/dts/nuvoton-npcm730-kudo.dts b/arch/arm/boot/dts/nuvoton-npcm730-kudo.dts
> > > new file mode 100644
> > > index 000000000000..077d815e84fc
> > > --- /dev/null
> > > +++ b/arch/arm/boot/dts/nuvoton-npcm730-kudo.dts
> > > @@ -0,0 +1,871 @@
> > > +// SPDX-License-Identifier: GPL-2.0
> > > +// Copyright (c) 2020 Fii USA Inc.
> > > +
> > > +/dts-v1/;
> > > +#include "nuvoton-npcm730.dtsi"
> > > +
> > > +/ {
> > > +       model = "Fii Kudo Board";
> > > +       compatible = "fii,kudo", "nuvoton,npcm730";
> > > +
> > > +       aliases {
> > > +               ethernet0 = &emc0;
> > > +               ethernet1 = &gmac0;
> > > +               serial0 = &serial0;
> > > +               serial1 = &serial1;
> > > +               serial2 = &serial2;
> > > +               serial3 = &serial3;
> > > +               udc9 = &udc9;
> > > +               emmc0 = &sdhci0;
> > > +               vdma = &vdma;
> > > +               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;
> > > +       };
> > > +
> > > +       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";
> > > +};
> > > +
> > > +&emc0 {
> > > +       status = "okay";
> > > +};
> > > +
> > > +&ehci1 {
> > > +       status = "okay";
> > > +};
> > > +
> > > +&ohci1 {
> > > +       status = "okay";
> > > +};
> > > +
> > > +&udc9 {
> > > +       status = "okay";
> > > +};
> > > +
> > > +&aes {
> > > +       status = "okay";
> > > +};
> > > +
> > > +&sha {
> > > +       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>;
> > > +               partitions@80000000 {
> > > +                       compatible = "fixed-partitions";
> > > +                       #address-cells = <1>;
> > > +                       #size-cells = <1>;
> > > +                       bmc@0{
> > > +                               label = "bmc";
> > > +                               reg = <0x000000 0x2000000>;

This only covers half of the chip.

Instead of creating this partition, I recommend adding a 'label =
"bmc"' property to the spi-nor node. Since
CONFIG_MTD_PARTITIONED_MASTER is enabled, this will cause an MTD
device to be created for the full chip with the label "bmc".

> > > +                       };
> > > +                       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@1d00000 {

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>;
> > > +                       };
> > > +               };
> > > +       };
> > > +};
> > > +
> > > +&sdhci0 {
> > > +       status = "okay";
> > > +};
> > > +
> > > +&vdma {
> > > +       status = "okay";
> > > +};
> > > +
> > > +&pcimbox {
> > > +       status = "okay";
> > > +};
> > > +
> > > +&vcd {
> > > +       status = "okay";
> > > +};
> > > +
> > > +&ece {
> > > +       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";
> > > +};
> > > +
> > > +&otp {
> > > +       status = "okay";
> > > +};
> > > +
> > > +&i2c1 {
> > > +       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 {
> > > +       smpro@4f {
> > > +               compatible = "ampere,smpro";
> > > +               reg = <0x4f>;
> > > +       };
> > > +
> > > +       smpro@4e {
> > > +               compatible = "ampere,smpro";
> > > +               reg = <0x4e>;
> > > +       };
> > > +};
> i2c2 is explicitly disabled in the nuvoton-common-npcm7xx.dtsi
> (included in nuvoton-npcm730.dtsi)
> Do we need status=okay here?
> Same for i2c4.

Right. Pretty much all the devices are disabled by default in
Nuvoton's common dtsi so that dts files can explicitly enable them.

> > > +
> > > +&i2c3 {
> > > +       status = "okay";
> > > +};
> > > +
> > > +&i2c4 {
> > > +       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 {
> > > +       ssif-bmc@10 {
> > > +               compatible = "ssif-bmc";
> > > +               reg = <0x10>;
> > > +       };
> > > +};
> > > +
> > > +&i2c13 {
> > > +       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>;
> > > +       };
> > > +};
> > > --
> > > 2.17.1
> > >
diff mbox series

Patch

diff --git a/arch/arm/boot/dts/nuvoton-npcm730-kudo.dts b/arch/arm/boot/dts/nuvoton-npcm730-kudo.dts
new file mode 100644
index 000000000000..077d815e84fc
--- /dev/null
+++ b/arch/arm/boot/dts/nuvoton-npcm730-kudo.dts
@@ -0,0 +1,871 @@ 
+// SPDX-License-Identifier: GPL-2.0
+// Copyright (c) 2020 Fii USA Inc. 
+
+/dts-v1/;
+#include "nuvoton-npcm730.dtsi"
+
+/ {
+	model = "Fii Kudo Board";
+	compatible = "fii,kudo", "nuvoton,npcm730";
+
+	aliases {
+		ethernet0 = &emc0;
+		ethernet1 = &gmac0;
+		serial0 = &serial0;
+		serial1 = &serial1;
+		serial2 = &serial2;
+		serial3 = &serial3;
+		udc9 = &udc9;
+		emmc0 = &sdhci0;
+		vdma = &vdma;
+		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;
+	};
+
+	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";
+};
+
+&emc0 {
+	status = "okay";
+};
+
+&ehci1 {
+	status = "okay";
+};
+
+&ohci1 {
+	status = "okay";
+};
+
+&udc9 {
+	status = "okay";
+};
+
+&aes {
+	status = "okay";
+};
+
+&sha {
+	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>;
+		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 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@1d00000 {
+				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>;
+			};
+		};
+	};
+};
+
+&sdhci0 {
+	status = "okay";
+};
+
+&vdma {
+	status = "okay";
+};
+
+&pcimbox {
+	status = "okay";
+};
+
+&vcd {
+	status = "okay";
+};
+
+&ece {
+	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";
+};
+
+&otp {
+	status = "okay";
+};
+
+&i2c1 {
+	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 {
+	smpro@4f {
+		compatible = "ampere,smpro";
+		reg = <0x4f>;
+	};
+
+	smpro@4e {
+		compatible = "ampere,smpro";
+		reg = <0x4e>;
+	};
+};
+
+&i2c3 {
+	status = "okay";
+};
+
+&i2c4 {
+	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 {
+	ssif-bmc@10 {
+		compatible = "ssif-bmc";
+		reg = <0x10>;
+	};
+};
+
+&i2c13 {
+	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>;
+	};
+};