]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
ARM: dts: aspeed: yosemite5: Add Meta Yosemite5 BMC
authorKevin Tung <kevin.tung.openbmc@gmail.com>
Wed, 1 Oct 2025 08:47:51 +0000 (16:47 +0800)
committerAndrew Jeffery <andrew@codeconstruct.com.au>
Fri, 17 Oct 2025 04:58:34 +0000 (15:28 +1030)
Add device tree for the Meta (Facebook) Yosemite5 compute node,
based on the AST2600 BMC.

The Yosemite5 platform provides monitoring of voltages, power,
temperatures, and other critical parameters across the motherboard,
CXL board, E1.S expansion board, and NIC components. The BMC also
logs relevant events and performs appropriate system actions in
response to abnormal conditions.

Signed-off-by: Kevin Tung <kevin.tung.openbmc@gmail.com>
Signed-off-by: Andrew Jeffery <andrew@codeconstruct.com.au>
arch/arm/boot/dts/aspeed/Makefile
arch/arm/boot/dts/aspeed/aspeed-bmc-facebook-yosemite5.dts [new file with mode: 0644]

index b56429777c7ef8ed81c92588a1ff64d9059a59a8..9adf9278dc94f84653775296c93150e61cc99328 100644 (file)
@@ -39,6 +39,7 @@ dtb-$(CONFIG_ARCH_ASPEED) += \
        aspeed-bmc-facebook-yamp.dtb \
        aspeed-bmc-facebook-yosemitev2.dtb \
        aspeed-bmc-facebook-yosemite4.dtb \
+       aspeed-bmc-facebook-yosemite5.dtb \
        aspeed-bmc-ibm-balcones.dtb \
        aspeed-bmc-ibm-blueridge.dtb \
        aspeed-bmc-ibm-bonnell.dtb \
diff --git a/arch/arm/boot/dts/aspeed/aspeed-bmc-facebook-yosemite5.dts b/arch/arm/boot/dts/aspeed/aspeed-bmc-facebook-yosemite5.dts
new file mode 100644 (file)
index 0000000..2486981
--- /dev/null
@@ -0,0 +1,1067 @@
+// SPDX-License-Identifier: GPL-2.0+
+// Copyright (c) 2025 Facebook Inc.
+
+/dts-v1/;
+#include "aspeed-g6.dtsi"
+#include <dt-bindings/gpio/aspeed-gpio.h>
+#include <dt-bindings/i2c/i2c.h>
+
+/ {
+       model = "Facebook Yosemite 5 BMC";
+       compatible = "facebook,yosemite5-bmc", "aspeed,ast2600";
+
+       aliases {
+               i2c16 = &i2c5mux0ch0;
+               i2c17 = &i2c5mux0ch1;
+               i2c18 = &i2c5mux0ch2;
+               i2c19 = &i2c5mux0ch3;
+               i2c20 = &i2c5mux1ch0;
+               i2c21 = &i2c5mux1ch1;
+               i2c22 = &i2c5mux1ch2;
+               i2c23 = &i2c5mux1ch3;
+               i2c24 = &i2c6mux0ch0;
+               i2c25 = &i2c6mux0ch1;
+               i2c26 = &i2c6mux0ch2;
+               i2c27 = &i2c6mux0ch3;
+               i2c28 = &i2c8mux0ch0;
+               i2c29 = &i2c8mux0ch1;
+               i2c30 = &i2c8mux0ch2;
+               i2c31 = &i2c8mux0ch3;
+               i2c32 = &i2c30mux0ch0;
+               i2c33 = &i2c30mux0ch1;
+               i2c34 = &i2c30mux0ch2;
+               i2c35 = &i2c30mux0ch3;
+               serial0 = &uart1;
+               serial2 = &uart3;
+               serial3 = &uart4;
+               serial4 = &uart5;
+       };
+
+       chosen {
+               stdout-path = "serial4:57600n8";
+       };
+
+       iio-hwmon {
+               compatible = "iio-hwmon";
+               io-channels = <&adc0 0>, <&adc0 1>, <&adc0 2>, <&adc0 3>,
+                                         <&adc0 4>, <&adc0 5>, <&adc0 6>, <&adc0 7>,
+                                         <&adc1 2>;
+       };
+
+       leds {
+               compatible = "gpio-leds";
+
+               led-0 {
+                       label = "bmc_heartbeat_amber";
+                       gpios = <&gpio0 ASPEED_GPIO(P, 7) GPIO_ACTIVE_LOW>;
+                       linux,default-trigger = "heartbeat";
+               };
+
+               led-1 {
+                       label = "fp_id_amber";
+                       default-state = "off";
+                       gpios = <&gpio0 ASPEED_GPIO(B, 5) GPIO_ACTIVE_HIGH>;
+               };
+
+               led-2 {
+                       label = "power_blue";
+                       default-state = "off";
+                       gpios = <&gpio0 ASPEED_GPIO(P, 4) GPIO_ACTIVE_HIGH>;
+               };
+       };
+
+       memory@80000000 {
+               device_type = "memory";
+               reg = <0x80000000 0x80000000>;
+       };
+
+       spi_gpio: spi {
+               compatible = "spi-gpio";
+               #address-cells = <1>;
+               #size-cells = <0>;
+
+               sck-gpios = <&gpio0 ASPEED_GPIO(Z, 3) GPIO_ACTIVE_HIGH>;
+               mosi-gpios = <&gpio0 ASPEED_GPIO(Z, 4) GPIO_ACTIVE_HIGH>;
+               miso-gpios = <&gpio0 ASPEED_GPIO(Z, 5) GPIO_ACTIVE_HIGH>;
+               cs-gpios = <&gpio0 ASPEED_GPIO(Z, 0) GPIO_ACTIVE_LOW>;
+               num-chipselects = <1>;
+               status = "okay";
+
+               tpm@0 {
+                       compatible = "infineon,slb9670", "tcg,tpm_tis-spi";
+                       spi-max-frequency = <33000000>;
+                       reg = <0>;
+               };
+       };
+};
+
+&adc0 {
+       aspeed,int-vref-microvolt = <2500000>;
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_adc0_default
+               &pinctrl_adc1_default
+               &pinctrl_adc2_default
+               &pinctrl_adc3_default
+               &pinctrl_adc4_default
+               &pinctrl_adc5_default
+               &pinctrl_adc6_default
+               &pinctrl_adc7_default>;
+       status = "okay";
+};
+
+&adc1 {
+       aspeed,int-vref-microvolt = <2500000>;
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_adc10_default>;
+       status = "okay";
+};
+
+&ehci0 {
+       status = "okay";
+};
+
+&ehci1 {
+       status = "okay";
+};
+
+&fmc {
+       status = "okay";
+
+       flash@0 {
+               status = "okay";
+               m25p,fast-read;
+               label = "bmc";
+               spi-max-frequency = <50000000>;
+#include "openbmc-flash-layout-128.dtsi"
+       };
+
+       flash@1 {
+               status = "okay";
+               m25p,fast-read;
+               label = "alt-bmc";
+               spi-max-frequency = <50000000>;
+       };
+};
+
+&gpio0 {
+       gpio-line-names =
+       /*A0-A7*/       "","","","","","","","",
+       /*B0-B7*/       "BATTERY_DETECT","","BMC_I2C1_FPGA_ALERT","BMC_READY",
+                       "IOEXP_INT_3V3","FM_ID_LED","","",
+       /*C0-C7*/       "","","","",
+                       "PMBUS_REQ_N","PSU_FW_UPDATE_REQ_N","","BMC_I2C_SSIF_ALERT",
+       /*D0-D7*/       "","","","","","","","",
+       /*E0-E7*/       "","","","","","","","",
+       /*F0-F7*/       "","","","","","","","",
+       /*G0-G7*/       "FM_BMC_MUX1_SEL","","","",
+                       "","","FM_DEBUG_PORT_PRSNT_N","FM_BMC_DBP_PRESENT_N",
+       /*H0-H7*/       "","","","","","","","",
+       /*I0-I7*/       "","","","","","FLASH_WP_STATUS","BMC_JTAG_MUX_SEL","",
+       /*J0-J7*/       "","","","","","","","",
+       /*K0-K7*/       "","","","","","","","",
+       /*L0-L7*/       "","","","","","","","",
+       /*M0-M7*/       "PCIE_EP_RST_EN","BMC_FRU_WP","SCM_HPM_STBY_RST_N",
+                       "SCM_HPM_STBY_EN","STBY_POWER_PG_3V3","TH500_SHDN_OK","","",
+       /*N0-N7*/       "led-postcode-0","led-postcode-1","led-postcode-2",
+                       "led-postcode-3","led-postcode-4","led-postcode-5",
+                       "led-postcode-6","led-postcode-7",
+       /*O0-O7*/       "RUN_POWER_PG","PWR_BRAKE","CHASSIS_AC_LOSS","BSM_PRSNT_N",
+                       "PSU_SMB_ALERT","FM_TPM_PRSNT_0_N","PSU_FW_UPDATING_N","",
+       /*P0-P7*/       "PWR_BTN_BMC_N","IPEX_CABLE_PRSNT","ID_RST_BTN_BMC_N",
+                       "RST_BMC_RSTBTN_OUT_N","BMC_PWR_LED","RUN_POWER_EN","SHDN_FORCE","",
+       /*Q0-Q7*/       "IRQ_PCH_TPM_SPI_LV3_N","USB_OC0_REAR_N","UART_MUX_SEL",
+                       "I2C_MUX_RESET","RSVD_NV_PLT_DETECT","SPI_TPM_INT",
+                       "CPU_JTAG_MUX_SELECT","THERM_BB_OVERT",
+       /*R0-R7*/       "THERM_BB_WARN","SPI_BMC_FPGA_INT","CPU_BOOT_DONE","PMBUS_GNT",
+                       "CHASSIS_PWR_BRK","PCIE_WAKE","PDB_THERM_OVERT","SHDN_REQ",
+       /*S0-S7*/       "","","SYS_BMC_PWRBTN_N","FM_TPM_PRSNT_1_N",
+                       "FM_BMC_DEBUG_SW_N","UID_LED_N","SYS_FAULT_LED_N","RUN_POWER_FAULT",
+       /*T0-T7*/       "","","","","","","","",
+       /*U0-U7*/       "FM_DBP_BMC_PRDY_N","","","","","","","",
+       /*V0-V7*/       "L2_RST_REQ_OUT","L0L1_RST_REQ_OUT","BMC_ID_BEEP_SEL",
+                       "BMC_I2C0_FPGA_ALERT","SMB_BMC_TMP_ALERT","PWR_LED_N",
+                       "SYS_RST_OUT","IRQ_TPM_SPI_N",
+       /*W0-W7*/       "","","","","","","IRQ_ESPI_LPC_SERIRQ_ALERT0_N","",
+       /*X0-X7*/       "","FM_DBP_CPU_PREQ_GF_N","","","","","","",
+       /*Y0-Y7*/       "","","FM_FLASH_LATCH_N","BMC_EMMC_RST_N","","","","",
+       /*Z0-Z7*/       "","","","","","","","";
+};
+
+&gpio1 {
+       gpio-line-names =
+       /*18A0-18A7*/   "","","","","","","","",
+       /*18B0-18B7*/   "","","","","FM_BOARD_BMC_REV_ID0",
+                       "FM_BOARD_BMC_REV_ID1","FM_BOARD_BMC_REV_ID2","",
+       /*18C0-18C7*/   "","","SPI_BMC_BIOS_ROM_IRQ0_N","","","","","",
+       /*18D0-18D7*/   "","","","","","","","",
+       /*18E0-18E3*/   "FM_BMC_PROT_LS_EN","AC_PWR_BMC_BTN_N","","";
+};
+
+/* MB CPLD I2C */
+&i2c0 {
+       status = "okay";
+};
+
+/* CPU I2C */
+&i2c1 {
+       status = "okay";
+};
+
+/* MCIO 2A I2C */
+&i2c2 {
+       status = "okay";
+};
+
+&i2c3 {
+       status = "okay";
+
+       /* Socket 0 SBRMI */
+       sbrmi@3c {
+               compatible = "amd,sbrmi";
+               reg = <0x3c>;
+       };
+
+       /* Socket 0 SBTSI */
+       sbtsi@4c {
+               compatible = "amd,sbtsi";
+               reg = <0x4c>;
+       };
+};
+
+&i2c4 {
+       multi-master;
+       mctp-controller;
+       status = "okay";
+
+       mctp@10 {
+               compatible = "mctp-i2c-controller";
+               reg = <(0x10 | I2C_OWN_SLAVE_ADDRESS)>;
+       };
+
+       /* OCP NIC TEMP */
+       temperature-sensor@1f {
+               compatible = "ti,tmp421";
+               reg = <0x1f>;
+       };
+
+       /* OCP NIC FRU EEPROM */
+       eeprom@50 {
+               compatible = "atmel,24c64";
+               reg = <0x50>;
+       };
+};
+
+&i2c5 {
+       status = "okay";
+
+       /* I2C MUX for MCIO 1A */
+       i2c-mux@70 {
+               compatible = "nxp,pca9546";
+               reg = <0x70>;
+               #address-cells = <1>;
+               #size-cells = <0>;
+               i2c-mux-idle-disconnect;
+
+               i2c5mux0ch0: i2c@0 {
+                       reg = <0>;
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+               };
+
+               i2c5mux0ch1: i2c@1 {
+                       reg = <1>;
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+               };
+
+               i2c5mux0ch2: i2c@2 {
+                       reg = <2>;
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+               };
+
+               i2c5mux0ch3: i2c@3 {
+                       reg = <3>;
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+               };
+       };
+
+       /* I2C MUX for MCIO 0A */
+       i2c-mux@77 {
+               compatible = "nxp,pca9546";
+               reg = <0x77>;
+               #address-cells = <1>;
+               #size-cells = <0>;
+               i2c-mux-idle-disconnect;
+
+               i2c5mux1ch0: i2c@0 {
+                       reg = <0>;
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+               };
+
+               i2c5mux1ch1: i2c@1 {
+                       reg = <1>;
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+               };
+
+               i2c5mux1ch2: i2c@2 {
+                       reg = <2>;
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+               };
+
+               i2c5mux1ch3: i2c@3 {
+                       reg = <3>;
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+               };
+       };
+};
+
+&i2c6 {
+       status = "okay";
+
+       /* I2C MUX for PWRPIC #13 ~ #16 */
+       i2c-mux@77 {
+               compatible = "nxp,pca9546";
+               reg = <0x77>;
+               #address-cells = <1>;
+               #size-cells = <0>;
+               i2c-mux-idle-disconnect;
+
+               /* PWRPIC #13 */
+               i2c6mux0ch0: i2c@0 {
+                       reg = <0>;
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+               };
+
+               /* PWRPIC #14 */
+               i2c6mux0ch1: i2c@1 {
+                       reg = <1>;
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+               };
+
+               /* PWRPIC #16 */
+               i2c6mux0ch2: i2c@2 {
+                       reg = <2>;
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+               };
+
+               /* PWRPIC #15 */
+               i2c6mux0ch3: i2c@3 {
+                       reg = <3>;
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+               };
+       };
+};
+
+/* SCM CPLD I2C */
+&i2c7 {
+       status = "okay";
+};
+
+&i2c8 {
+       status = "okay";
+
+       power-monitor@14 {
+               compatible = "infineon,xdp710";
+               reg = <0x14>;
+       };
+
+       adc@1d {
+               compatible = "ti,adc128d818";
+               reg = <0x1d>;
+               ti,mode = /bits/ 8 <1>;
+       };
+
+       power-sensor@40 {
+               compatible = "ti,ina238";
+               reg = <0x40>;
+               shunt-resistor = <1000>;
+       };
+
+       /* PADDLE BD IOEXP */
+       gpio-expander@41 {
+               compatible = "nxp,pca9536";
+               reg = <0x41>;
+               gpio-controller;
+               #gpio-cells = <2>;
+               gpio-line-names =
+                       "HSC_OC_GPIO0", "HSC_OC_GPIO1",
+                       "HSC_OC_GPIO2", "HSC_OC_GPIO3";
+       };
+
+       power-sensor@42 {
+               compatible = "ti,ina238";
+               reg = <0x42>;
+               shunt-resistor = <1000>;
+       };
+
+       power-monitor@43 {
+               compatible = "lltc,ltc4287";
+               reg = <0x43>;
+               shunt-resistor-micro-ohms = <250>;
+       };
+
+       power-sensor@44 {
+               compatible = "ti,ina238";
+               reg = <0x44>;
+               shunt-resistor = <1000>;
+       };
+
+       power-sensor@45 {
+               compatible = "ti,ina238";
+               reg = <0x45>;
+               shunt-resistor = <1000>;
+       };
+
+       power-monitor@47 {
+               compatible = "ti,tps25990";
+               reg = <0x47>;
+               ti,rimon-micro-ohms = <430000000>;
+       };
+
+       temperature-sensor@48 {
+               compatible = "ti,tmp75";
+               reg = <0x48>;
+       };
+
+       temperature-sensor@49 {
+               compatible = "ti,tmp75";
+               reg = <0x49>;
+       };
+
+       /* PDB FRU */
+       eeprom@56 {
+               compatible = "atmel,24c128";
+               reg = <0x56>;
+       };
+
+       /* Paddle BD FRU */
+       eeprom@57 {
+               compatible = "atmel,24c128";
+               reg = <0x57>;
+       };
+
+       power-monitor@58 {
+               compatible = "renesas,isl28022";
+               reg = <0x58>;
+               shunt-resistor-micro-ohms = <1000>;
+       };
+
+       power-monitor@59 {
+               compatible = "renesas,isl28022";
+               reg = <0x59>;
+               shunt-resistor-micro-ohms = <1000>;
+       };
+
+       power-monitor@5a {
+               compatible = "renesas,isl28022";
+               reg = <0x5a>;
+               shunt-resistor-micro-ohms = <1000>;
+       };
+
+       power-monitor@5b {
+               compatible = "renesas,isl28022";
+               reg = <0x5b>;
+               shunt-resistor-micro-ohms = <1000>;
+       };
+
+       psu@5c {
+               compatible = "renesas,raa228006";
+               reg = <0x5c>;
+       };
+
+       fan-controller@5e{
+               compatible = "maxim,max31790";
+               reg = <0x5e>;
+       };
+
+       /* I2C MUX for PWRPIC #1, #2, #11, #12 */
+       i2c-mux@77 {
+               compatible = "nxp,pca9546";
+               reg = <0x77>;
+               #address-cells = <1>;
+               #size-cells = <0>;
+               i2c-mux-idle-disconnect;
+
+               /* PWRPIC #1 */
+               i2c8mux0ch0: i2c@0 {
+                       reg = <0>;
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+               };
+
+               /* PWRPIC #2 */
+               i2c8mux0ch1: i2c@1 {
+                       reg = <1>;
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+               };
+
+               /* PWRPIC #12 (Connector to CXL BD) */
+               i2c8mux0ch2: i2c@2 {
+                       reg = <2>;
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+
+                       i2c-mux@70 {
+                               compatible = "nxp,pca9546";
+                               reg = <0x70>;
+                               #address-cells = <1>;
+                               #size-cells = <0>;
+                               i2c-mux-idle-disconnect;
+
+                               i2c30mux0ch0: i2c@0 {
+                                       reg = <0>;
+                                       #address-cells = <1>;
+                                       #size-cells = <0>;
+                               };
+
+                               i2c30mux0ch1: i2c@1 {
+                                       reg = <1>;
+                                       #address-cells = <1>;
+                                       #size-cells = <0>;
+                               };
+
+                               i2c30mux0ch2: i2c@2 {
+                                       reg = <2>;
+                                       #address-cells = <1>;
+                                       #size-cells = <0>;
+
+                                       adc@1e {
+                                               compatible = "ti,adc128d818";
+                                               reg = <0x1e>;
+                                               ti,mode = /bits/ 8 <1>;
+                                       };
+
+                                       adc@1f {
+                                               compatible = "ti,adc128d818";
+                                               reg = <0x1f>;
+                                               ti,mode = /bits/ 8 <1>;
+                                       };
+
+                                       /* CXL BD IOEXP */
+                                       gpio-expander@27 {
+                                               compatible = "nxp,pca9535";
+                                               reg = <0x27>;
+                                               gpio-controller;
+                                               #gpio-cells = <2>;
+                                               gpio-line-names =
+                                               "IRQ_TEMP_0_ALERT_N","IRQ_TEMP_1_ALERT_N",
+                                               "ALERT_PMBUS_0_N","ALERT_PMBUS_1_N",
+                                               "ALERT_PMBUS_2_N","IRQ_INA230_12V_ALERT_N",
+                                               "RST_IOX_CXL_N","DEBUG_UART_SEL_0",
+                                               "DEBUG_UART_SEL_1","BMC_REMOTEJTAG_EN_N",
+                                               "JTAG_BMC_3V3_CTL_CLR_N","DDR_CH02_I2C_MUX_SEL",
+                                               "DDR_CH13_I2C_MUX_SEL","SYS_OK",
+                                               "CXL_VRHOT_ALERT_R1_N","";
+                                       };
+
+                                       temperature-sensor@4a {
+                                               compatible = "ti,tmp75";
+                                               reg = <0x4a>;
+                                       };
+
+                                       temperature-sensor@4c {
+                                               compatible = "ti,tmp432";
+                                               reg = <0x4c>;
+                                       };
+
+                                       power-sensor@4d {
+                                               compatible = "ti,ina230";
+                                               reg = <0x4d>;
+                                               shunt-resistor = <2000>;
+                                       };
+
+                                       temperature-sensor@4e {
+                                               compatible = "ti,tmp75";
+                                               reg = <0x4e>;
+                                       };
+
+                                       /* CXL FRU */
+                                       eeprom@50 {
+                                               compatible = "atmel,24c64";
+                                               reg = <0x50>;
+                                       };
+                               };
+
+                               i2c30mux0ch3: i2c@3 {
+                                       reg = <3>;
+                                       #address-cells = <1>;
+                                       #size-cells = <0>;
+                               };
+                       };
+               };
+
+               /* PWRPIC #11 */
+               i2c8mux0ch3: i2c@3 {
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       reg = <3>;
+               };
+       };
+};
+
+&i2c9 {
+       status = "okay";
+
+       temperature-sensor@4b {
+               compatible = "ti,tmp75";
+               reg = <0x4b>;
+       };
+
+       /* SCM FRU */
+       eeprom@50 {
+               compatible = "atmel,24c128";
+               reg = <0x50>;
+       };
+
+       /* BSM FRU */
+       eeprom@56 {
+               compatible = "atmel,24c64";
+               reg = <0x56>;
+       };
+};
+
+/* MCIO 0A I2C */
+&i2c10 {
+       status = "okay";
+
+       /* E1S EB IOEXP0 */
+       gpio-expander@21 {
+               compatible = "nxp,pca9535";
+               interrupt-parent = <&sgpiom0>;
+               interrupts = <172 IRQ_TYPE_EDGE_FALLING>;
+               reg = <0x21>;
+               gpio-controller;
+               #gpio-cells = <2>;
+               gpio-line-names =
+                       "RST_SMB_E1S_0","LED_ACTIVE_E1S_0",
+                       "E1S_0_PRSNT_N","RST_PCIE_E1S_0_PERST",
+                       "E1S_0_PWRDIS","ALERT_INA_0",
+                       "","",
+                       "RST_SMB_E1S_1","LED_ACTIVE_E1S_1",
+                       "E1S_1_PRSNT_N","RST_PCIE_E1S_1_PERST",
+                       "E1S_1_PWRDIS","ALERT_INA_1",
+                       "","";
+       };
+
+       /* E1S EB IOEXP1 */
+       gpio-expander@22 {
+               compatible = "nxp,pca9535";
+               interrupt-parent = <&sgpiom0>;
+               interrupts = <174 IRQ_TYPE_EDGE_FALLING>;
+               reg = <0x22>;
+               gpio-controller;
+               #gpio-cells = <2>;
+               gpio-line-names =
+                       "P12V_E1S_EN_0","PWRGD_P12V_E1S_0",
+                       "P12V_E1S_FLTB_0","PWRGD_P3V3_E1S_0",
+                       "FM_P3V3_E1S_0_FAULT","P12V_E1S_EN_1",
+                       "PWRGD_P12V_E1S_1","P12V_E1S_FLTB_1",
+                       "PWRGD_P3V3_E1S_1","FM_P3V3_E1S_1_FAULT",
+                       "","",
+                       "","",
+                       "PWRGD_P3V3_AUX","ALERT_TEMP";
+       };
+
+       power-sensor@40 {
+               compatible = "ti,ina233";
+               reg = <0x40>;
+               shunt-resistor = <2000>;
+               ti,maximum-expected-current-microamp = <32768000>;
+       };
+
+       power-sensor@45 {
+               compatible = "ti,ina233";
+               reg = <0x45>;
+               shunt-resistor = <2000>;
+               ti,maximum-expected-current-microamp = <32768000>;
+       };
+
+       adc@48 {
+               compatible = "ti,ads7830";
+               reg = <0x48>;
+       };
+
+       temperature-sensor@49 {
+               compatible = "ti,tmp75";
+               reg = <0x49>;
+       };
+
+       /* E1S EB FRU */
+       eeprom@54 {
+               compatible = "atmel,24c128";
+               reg = <0x54>;
+       };
+};
+
+&i2c11 {
+       status = "okay";
+
+       /* MB IOEXP */
+       gpio-expander@21 {
+               compatible = "nxp,pca9535";
+               interrupt-parent = <&sgpiom0>;
+               interrupts = <170 IRQ_TYPE_EDGE_FALLING>;
+               reg = <0x21>;
+               gpio-controller;
+               #gpio-cells = <2>;
+               gpio-line-names =
+                       "ALERT_CLKMUX_0_LOSS_N","ALERT_CLKMUX_1_LOSS_N",
+                       "ALERT_CLKMUX_2_LOSS_N","ALERT_CLKMUX_3_LOSS_N",
+                       "FM_CLKMUX_0_SEL","FM_CLKMUX_1_SEL",
+                       "FM_CLKMUX_2_SEL","FM_CLKMUX_3_SEL",
+                       "RST_USB_HUB_0_N","FM_CLKGEN_GPIO2",
+                       "","FM_BMC_RTC_RST",
+                       "FM_P3V_BAT_SCALED_EN","",
+                       "FM_CLKGEN_GPIO4","RST_USB_HUB_1_N";
+       };
+
+       power-sensor@40 {
+               compatible = "ti,ina230";
+               reg = <0x40>;
+               shunt-resistor = <2000>;
+       };
+
+       power-sensor@41 {
+               compatible = "ti,ina230";
+               reg = <0x41>;
+               shunt-resistor = <2000>;
+       };
+
+       power-sensor@42 {
+               compatible = "ti,ina230";
+               reg = <0x42>;
+               shunt-resistor = <2000>;
+       };
+
+       power-sensor@43 {
+               compatible = "ti,ina230";
+               reg = <0x43>;
+               shunt-resistor = <2000>;
+       };
+
+       power-sensor@44 {
+               compatible = "ti,ina230";
+               reg = <0x44>;
+               shunt-resistor = <2000>;
+       };
+
+       power-sensor@45 {
+               compatible = "ti,ina230";
+               reg = <0x45>;
+               shunt-resistor = <2000>;
+       };
+
+       adc@48 {
+               compatible = "ti,ads7830";
+               reg = <0x48>;
+       };
+
+       adc@49 {
+               compatible = "ti,ads7830";
+               reg = <0x49>;
+       };
+
+       adc@4b {
+               compatible = "ti,ads7830";
+               reg = <0x4b>;
+       };
+};
+
+/* MCIO 4A I2C */
+&i2c12 {
+       multi-master;
+       mctp-controller;
+       status = "okay";
+
+       mctp@10 {
+               compatible = "mctp-i2c-controller";
+               reg = <(0x10 | I2C_OWN_SLAVE_ADDRESS)>;
+       };
+};
+
+&i2c13 {
+       status = "okay";
+
+       power-sensor@40 {
+               compatible = "ti,ina230";
+               reg = <0x40>;
+               shunt-resistor = <2000>;
+       };
+
+       power-sensor@41 {
+               compatible = "ti,ina230";
+               reg = <0x41>;
+               shunt-resistor = <2000>;
+       };
+
+       power-sensor@44 {
+               compatible = "ti,ina230";
+               reg = <0x44>;
+               shunt-resistor = <2000>;
+       };
+
+       power-sensor@45 {
+               compatible = "ti,ina230";
+               reg = <0x45>;
+               shunt-resistor = <2000>;
+       };
+
+       temperature-sensor@48 {
+               compatible = "national,lm75b";
+               reg = <0x48>;
+       };
+
+       temperature-sensor@49 {
+               compatible = "national,lm75b";
+               reg = <0x49>;
+       };
+
+       /* CLKGEN FRU */
+       eeprom@50 {
+               compatible = "atmel,24c16";
+               reg = <0x50>;
+       };
+
+       /* MB FRU */
+       eeprom@51 {
+               compatible = "atmel,24c128";
+               reg = <0x51>;
+       };
+
+       /* CPU FRU */
+       eeprom@53 {
+               compatible = "atmel,24c128";
+               reg = <0x53>;
+       };
+
+       rtc@68 {
+               compatible = "dallas,ds1339";
+               reg = <0x68>;
+       };
+};
+
+/* PROT reserve */
+&i2c14 {
+       status = "okay";
+};
+
+/* MCIO 3A I2C */
+&i2c15 {
+       status = "okay";
+};
+
+&kcs2 {
+       aspeed,lpc-io-reg = <0xca8>;
+       status = "okay";
+};
+
+&kcs3 {
+       aspeed,lpc-io-reg = <0xca2>;
+       status = "okay";
+};
+
+&mac2 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_ncsi3_default>;
+       use-ncsi;
+       status = "okay";
+};
+
+&pinctrl {
+       pinctrl_ncsi3_default: ncsi3_default {
+               function = "RMII3";
+               groups = "NCSI3";
+       };
+};
+
+&sgpiom0 {
+       ngpios = <128>;
+       bus-frequency = <2000000>;
+       gpio-line-names =
+       /*"input pin","output pin"*/
+       /*bit0-bit7*/
+       "PWRGD_CPU_PWROK","SGPIO_RSTBTN_OUT",
+       "PWRGD_CPU_PWROK_1","SGPIO_BMC_READY",
+       "PWRGD_CPU_PWROK_2","IBB_BMC_SRST",
+       "host0-ready","FM_I3C_SPD_AH_SEL_R",
+       "PCIe_HP_BOOT","FM_I3C_SPD_IP_SEL_R",
+       "PCIe_HP_DATA","FM_JTAG_BMC_MUX_S0_R",
+       "PCIe_HP_NIC","FM_JTAG_BMC_MUX_S1_R",
+       "","FM_JTAG_BMC_OE_1_R_N",
+       /*bit8-bit15*/
+       "PWRGD_PVDDCR_CPU0_P0","FM_JTAG_BMC_OE_R_N",
+       "PWRGD_PVDDCR_SOC_P0","FM_REMOTEJTAG_EN_R_N",
+       "PWRGD_PVDDCR_CPU1_P0","FM_CPU_FORCE_SELFREFRESH_R",
+       "PWRGD_P3V3_STBY","FM_CPU_NMI_SYNC_FLOOD_R_N",
+       "PWRGD_PVDD33_S5","FM_CPU_TRIGGERTSC_OE_R_N",
+       "PWRGD_PVDD18_S5_P0","FM_PASSWORD_CLEAR_R_N",
+       "PWRGD_PVDDIO_P0","FM_BIOS_USB_RECOVERY_N",
+       "PWRGD_PVDDIO_MEM_S3_P0","FM_USB_MUX_OE_R_N",
+       /*bit16-bit23*/
+       "PWRGD_P1V8_STBY","FM_USB_MUX_SEL_R",
+       "PWRGD_P1V0_STBY","RST_SMB_BOOT_R_N",
+       "PWRGD_P1V2_STBY","RST_SMB_MCIO0A_R_N",
+       "IBB_BMC_SRST","RST_SMB_NIC_R_N",
+       "PWRGD_P12V_E1S_0","FM_PPS_NIC_IN_BUF_OE_R_N",
+       "PWRGD_P12V_E1S_1","FM_PPS_NIC_IN_EN_R",
+       "RST_PCIE_BOOT_PERST_N","FM_PPS_NIC_IN_OE_R_N",
+       "PWRGD_P12V_NIC","FM_PPS_NIC_IN_S0_R",
+       /*bit24-bit31*/
+       "PWRGD_P12V_SCM","FM_PPS_NIC_IN_S1_R",
+       "PWRGD_P12V_DIMM","FM_PPS_NIC_OUT_BUF_OE_R_N",
+       "PWRGD_CPU_DIMM0_AH","FM_PPS_NIC_OUT_CPU_OE_R_N",
+       "PWRGD_CPU_DIMM1_IP","FM_PPS_NIC_OUT_EN_R",
+       "PWRGD_NIC_CPLD","JTAG_CPLD_DBREQ_R_N",
+       "ALERT_INA230_DIMM_0_N","HDT_HDR_RESET_R_N",
+       "ALERT_INA230_DIMM_1_N","FM_SMB_AUTH_MUX_OE_R_N",
+       "ALERT_INA230_E1S_0_N","FM_SCM_LED_R_N",
+       /*bit32-bit39*/
+       "ALERT_INA230_E1S_1_N","",
+       "ALERT_INA230_FAN0_N","",
+       "ALERT_INA230_FAN1_N","",
+       "ALERT_INA230_FAN2_N","",
+       "ALERT_INA230_FAN3_N","",
+       "ALERT_INA230_NIC_N","",
+       "ALERT_INA230_SCM_N","",
+       "ALERT_IRQ_PMBUS_PWR11_N","",
+       /*bit40-bit47*/
+       "ALERT_MCIO2A_LEAK_DETECT_N","",
+       "ALERT_MCIO3A_LEAK_DETECT_N","",
+       "ALERT_MCIO4A_LEAK_DETECT_N","",
+       "ALERT_OC_PADDLE2_N","",
+       "ALERT_OC_PWR2_N","",
+       "ALERT_OC_PWR11_N","",
+       "ALERT_PADDLE2_SMB_N","",
+       "ALERT_PWR14_SB2_LEAK_DETECT_N","",
+       /*bit48-bit55*/
+       "ALERT_PWR14_SB3_LEAK_DETECT_N","",
+       "ALERT_PWR15_SB2_LEAK_DETECT_N","",
+       "ALERT_PWR15_SB3_LEAK_DETECT_N","",
+       "ALERT_SMB_MCIO0A_N","",
+       "ALERT_SMB_MCIO1A_N","",
+       "ALERT_SMB_MCIO2A_N","",
+       "ALERT_SMB_MCIO2B_N","",
+       "ALERT_SMB_MCIO3A_N","",
+       /*bit56-bit63*/
+       "ALERT_SMB_MCIO3B_N","",
+       "ALERT_SMB_MCIO4A_N","",
+       "ALERT_SMB_MCIO4B_N","",
+       "ALERT_THERMALTRIP_MCIO1A_N","",
+       "ALERT_THERMALTRIP_MCIO2A_N","",
+       "ALERT_THERMALTRIP_MCIO3A_N","",
+       "ALERT_THERMALTRIP_MCIO4A_N","",
+       "ALERT_UV_PADDLE2_N","",
+       /*bit64-bit71*/
+       "ALERT_UV_PWR2_N","",
+       "ALERT_UV_PWR11_N","",
+       "ALERT_VR_SMB_N","",
+       "FAULT_FAN_0_N","",
+       "FAULT_FAN_1_N","",
+       "FAULT_FAN_2_N","",
+       "FAULT_FAN_3_N","",
+       "FAULT_P3V3_E1S_0_N","",
+       /*bit72-bit79*/
+       "FAULT_P3V3_E1S_1_N","",
+       "FAULT_P3V3_NIC_N","",
+       "FAULT_P12V_NIC_N","",
+       "FAULT_P12V_SCM_N","",
+       "P0_I3C_APML_ALERT_L","",
+       "ALERT_INLET_TEMP_N","",
+       "FM_CPU_PROCHOT_R_N","",
+       "FM_CPU_THERMTRIP_N","",
+       /*bit80-bit87*/
+       "ALERT_OUTLET_TEMP_N","",
+       "ALERT_RTC_N","",
+       "PVDDCR_CPU0_P0_OCP_N","",
+       "PVDDCR_CPU1_P0_OCP_N","",
+       "PVDDCR_SOC_P0_OCP_N","",
+       "MB_IOEXP_INT","",
+       "E1S_0_BD_IOEXP","",
+       "E1S_1_BD_IOEXP","",
+       /*bit88-bit95*/
+       "PADDLE_BD_IOEXP_INT","",
+       "FM_BOARD_REV_ID0","",
+       "FM_BOARD_REV_ID1","",
+       "FM_BOARD_REV_ID2","",
+       "FM_VR_TYPE_ID0","",
+       "FM_VR_TYPE_ID1","",
+       "PRSNT_BOOT_N_IOEXP","",
+       "PRSNT_DATA_N_IOEXP","",
+       /*bit96-bit103*/
+       "PRSNT_NIC_N_IOEXP","",
+       "PRSNT_BOOT_N_FF","",
+       "PRSNT_MCIO1A_N_FF","",
+       "NIC_PRSNT_N","",
+       "","",
+       "","",
+       "","",
+       "","",
+       /*bit104-bit111*/
+       "","","","","","","","","","","","","","","","",
+       /*bit112-bit119*/
+       "","","","","","","","","","","","","","","","",
+       /*bit120-bit127*/
+       "","","","","","","","","","","","","","","","";
+       status = "okay";
+};
+
+/* BIOS Flash */
+&spi2 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_spi2_default>;
+       status = "okay";
+
+       flash@0 {
+               m25p,fast-read;
+               label = "pnor";
+               spi-max-frequency = <12000000>;
+               spi-tx-bus-width = <2>;
+               spi-rx-bus-width = <2>;
+               status = "okay";
+       };
+};
+
+/* Host Console */
+&uart1 {
+       status = "okay";
+};
+
+&uart2 {
+       status = "okay";
+};
+
+/* SOL */
+&uart3 {
+       status = "okay";
+};
+
+&uart4 {
+       status = "okay";
+};
+
+/* BMC Console */
+&uart5 {
+       status = "okay";
+};
+
+&wdt1 {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_wdtrst1_default>;
+       aspeed,reset-type = "soc";
+       aspeed,external-signal;
+       aspeed,ext-push-pull;
+       aspeed,ext-active-high;
+       aspeed,ext-pulse-duration = <256>;
+       status = "okay";
+};