// SPDX-License-Identifier: GPL-2.0-or-later
// Copyright 2022 Quanta Corp.
/dts-v1/;
#include "aspeed-g6.dtsi"
#include <dt-bindings/gpio/aspeed-gpio.h>
#include <dt-bindings/i2c/i2c.h>
/ {
model = "Quanta S6Q BMC";
compatible = "quanta,s6q-bmc", "aspeed,ast2600";
aliases {
// bus 0
i2c20 = &SMB_HOST_DB2000_3V3AUX_SCL;
i2c21 = &U12_PCA9546_CH1;
i2c22 = &SMB_HOST_DB800_B_SCL;
i2c23 = &SMB_HOST_DB800_C_SCL;
// bus 1
i2c24 = &SMB_M2_P0_1V8AUX_SCL;
i2c25 = &SMB_M2_P1_1V8AUX_SCL;
i2c26 = &SMB_CPU_PIROM_3V3AUX_SCL;
i2c27 = &SMB_TEMP_3V3AUX_SCL;
i2c28 = &SMB_IPMB_3V3AUX_SSDSB_SCL;
i2c29 = &SMB_IPMB_3V3AUX_SCL;
i2c31 = &SMB_FB_SCL;
// bus 1 - Fan board
i2c32 = &SMB_IOEXP_SCL;
i2c33 = &SMB_PROGRAM_SCL;
i2c34 = &SMB_FB_SCL_CH2;
i2c35 = &SMB_FAN_SENSE_SCL;
// bus 6
i2c36 = &U197_PCA9546_CH0;
i2c37 = &U197_PCA9546_CH1;
i2c38 = &U197_PCA9546_CH2;
i2c39 = &U197_PCA9546_CH3;
//bus 7
i2c40 = &SMB_OCP_SFF_3V3AUX_SCL; //OCP1
i2c41 = &SMB_OCP_LFF_3V3AUX_SCL; //OCP2
};
chosen {
stdout-path = &uart5;
bootargs = "console=ttyS4,115200n8 earlycon";
};
memory@80000000 {
device_type = "memory";
reg = <0x80000000 0x40000000>;
};
iio-hwmon {
compatible = "iio-hwmon";
io-channels = <&adc0 0>, <&adc0 1>, <&adc0 2>, <&adc0 3>,
<&adc0 4>, <&adc0 5>, <&adc0 6>, <&adc0 7>,
<&adc1 0>, <&adc1 1>, <&adc1 2>, <&adc1 3>,
<&adc1 4>, <&adc1 5>, <&adc1 6>, <&adc1 7>;
};
leds {
compatible = "gpio-leds";
BMC_HEARTBEAT_N {
label = "BMC_HEARTBEAT_N";
gpios = <&gpio0 ASPEED_GPIO(P, 7) GPIO_ACTIVE_LOW>;
linux,default-trigger = "heartbeat";
};
BMC_LED_STATUS_AMBER_N {
label = "BMC_LED_STATUS_AMBER_N";
gpios = <&gpio0 ASPEED_GPIO(S, 6) GPIO_ACTIVE_LOW>;
default-state = "off";
};
FM_ID_LED_N {
label = "FM_ID_LED_N";
gpios = <&gpio0 ASPEED_GPIO(B, 5) GPIO_ACTIVE_LOW>;
default-state = "off";
};
};
};
&gpio0 {
gpio-line-names =
/*A0 - A7*/ "", "", "", "", "", "", "", "",
/*B0 - B7*/ "", "", "", "", "", "", "", "",
/*C0 - C7*/ "", "", "", "", "", "", "", "",
/*D0 - D7*/ "", "", "", "", "", "", "", "",
/*E0 - E7*/ "", "", "", "", "", "", "", "",
/*F0 - F7*/ "PLTRST_N", "", "PWR_DEBUG_N", "", "", "", "", "",
/*G0 - G7*/ "", "", "", "", "", "", "", "",
/*H0 - H7*/ "", "", "", "", "", "", "", "",
/*I0 - I7*/ "", "", "", "", "", "", "", "",
/*J0 - J7*/ "", "", "", "", "", "", "", "",
/*K0 - K7*/ "", "", "", "", "", "", "", "",
/*L0 - L7*/ "", "", "", "", "PREQ_N", "TCK_MUX_SEL", "", "",
/*M0 - M7*/ "", "", "", "PWRGD_SYS_PWROK", "", "PRDY_N", "", "",
/*N0 - N7*/ "", "", "", "", "", "", "", "",
/*O0 - O7*/ "", "", "", "", "", "", "", "",
/*P0 - P7*/ "SYS_BMC_PWRBTN_R_N", "SYS_PWRBTN_N", "FM_MB_RST_BTN", "RST_BMC_RSTBTN_OUT_N", "", "", "", "",
/*Q0 - Q7*/ "", "", "", "", "", "", "", "",
/*R0 - R7*/ "", "", "", "", "", "", "", "",
/*S0 - S7*/ "", "", "", "FP_ID_BTN_SCM_N", "", "", "", "",
/*T0 - T7*/ "", "", "", "", "", "", "", "",
/*U0 - U7*/ "", "", "", "", "", "", "", "",
/*V0 - V7*/ "", "", "", "", "", "SMI", "", "",
/*W0 - W7*/ "", "", "", "", "", "", "", "",
/*X0 - X7*/ "", "", "", "", "", "", "", "",
/*Y0 - Y7*/ "", "", "", "", "", "", "", "",
/*Z0 - Z7*/ "FM_BMC_READY_N", "", "", "", "", "", "", "",
/*AA0 - AA7*/ "", "", "", "", "", "", "", "",
/*AB0 - AB7*/ "", "", "", "", "", "", "", "",
/*AC0 - AC7*/ "", "", "", "", "", "", "", "";
};
&sgpiom0 {
status = "okay";
ngpios = <128>;
bus-frequency = <48000>;
gpio-line-names =
/* SGPIO input lines */
/*IOA0-IOA7*/ "","", "SIO_POWER_GOOD","OA1", "XDP_PRST_N","", "","", "FM_SLPS3_PLD_N","", "FM_SLPS4_PLD_N","", "FM_BIOS_POST_CMPLT_BMC_N","", "FM_ADR_TRIGGER_N","OA7",
/*IOB0-IOB7*/ "FM_ADR_COMPLETE","", "FM_PMBUS_ALERT_B_EN","", "PSU0_PRESENT_N","", "PSU1_PRESENT_N","", "PSU0_VIN_BUF_GOOD","", "PSU01_VIN_BUF_GOOD","", "PWRGD_PS0_PWROK_R","", "PWRGD_PS1_PWROK_R","",
/*IOC0-IOC7*/ "PWRGD_PS_PWROK_PLD_R","", "CHASSIS_INTRUSION","", "BMC_MFG_MODE","", "FM_BMC_EN_DET_R","", "FM_ME_BT_DONE","", "CPU1_PRESENCE","", "CPU2_PRESENCE","", "IRQ_PSYS_CRIT_N","",
/*IOD0-IOD7*/ "","", "CPU1_THERMTRIP","", "CPU2_THERMTRIP","", "CPU1_MEM_THERM_EVENT","", "CPU2_MEM_THERM_EVENT","", "CPU1_VRHOT","", "CPU2_VRHOT","", "","",
/*IOE0-IOE7*/ "","", "CPU1_MEM_VRHOT","", "CPU2_MEM_VRHOT","", "","", "PCH_BMC_THERMTRIP","", "","", "","", "","",
/*IOF0-IOF7*/ "CPU_ERR0","", "CPU_ERR1","", "CPU_ERR2","", "","", "","", "CPU_CATERR","", "","", "","",
/*IOG0-IOG7*/ "","", "","", "","", "","", "","", "","", "","", "","",
/*IOH0-IOH7*/ "","", "FP_ID_BTN_R1_N","", "FP_RST_BTN_N","", "","", "","", "FP_PWR_BTN_PLD_N_R","", "","", "","",
/*IOI0-IOI7*/ "","", "","", "","", "","", "","", "","", "","", "","",
/*IOJ0-IOJ7*/ "","", "","", "","", "","", "","", "","", "","", "","",
/*IOK0-IOK7*/ "","", "","", "","", "","", "","", "","", "","", "","",
/*IOL0-IOL7*/ "","", "","", "","", "","", "","", "","", "","", "","",
/*IOM0-IOM7*/ "","", "","", "","", "","", "","", "","", "","", "","",
/*ION0-ION7*/ "","BMC_SW_HEARTBEAT_N_R", "","FP_LED_FAULT_N", "","FP_ID_LED_N", "","FM_BMC_RSTBTN_OUT_N", "","FM_THERMTRIP_DLY_LVC1_R_N", "","", "","RST_PCA9548_SENSOR_PLD_N", "","USB_OC1_REAR_N",
/*IOO0-IOO7*/ "","IRQ_TPM_SPI_N", "","", "","IRQ_PCH_SCI_WHEA_R_N", "","IRQ_BMC_PCH_NMI_R", "","H_CPU_NMI_LVC1_R_N", "","", "","", "","FM_JTAG_BMC_PLD_MUX_SEL",
/*IOP0-IOP7*/ "IP0","OP0", "","", "","", "","", "","", "","", "","", "IP7","OP7";
};
&adc0 {
vref = <2500>;
status = "okay";
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>;
};
&adc1 {
vref = <2500>;
status = "okay";
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_adc8_default &pinctrl_adc9_default
&pinctrl_adc10_default &pinctrl_adc11_default
&pinctrl_adc12_default &pinctrl_adc13_default
&pinctrl_adc14_default &pinctrl_adc15_default>;
};
&mdio2 {
status = "okay";
ethphy2: ethernet-phy@0 {
compatible = "ethernet-phy-ieee802.3-c22";
reg = <0>;
};
};
&mac2 {
status = "okay";
phy-mode = "rgmii";
phy-handle = <ðphy2>;
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_rgmii3_default>;
};
&mac3 {
status = "okay";
phy-mode = "rmii";
use-ncsi;
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_rmii4_default>;
};
&fmc {
status = "okay";
flash@0 {
status = "okay";
m25p,fast-read;
label = "bmc";
spi-max-frequency = <50000000>;
#include "openbmc-flash-layout-64.dtsi"
};
};
&spi2 {
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_spi2_default &pinctrl_spi2cs1_default
&pinctrl_spi2cs2_default>;
status = "okay";
flash@0 {
status = "okay";
m25p,fast-read;
label = "spi2:0";
spi-max-frequency = <50000000>;
};
};
&kcs1 {
status = "okay";
aspeed,lpc-io-reg = <0xCA0>;
};
&kcs2 {
status = "okay";
aspeed,lpc-io-reg = <0xCA8>;
};
&kcs3 {
status = "okay";
aspeed,lpc-io-reg = <0xCA2>;
};
&emmc_controller {
status = "okay";
};
&emmc {
non-removable;
bus-width = <4>;
max-frequency = <100000000>;
};
&vhub {
status = "okay";
};
&lpc_snoop {
status = "okay";
snoop-ports = <0x80>;
};
&uart1 {
status = "okay";
};
&uart2 {
status = "okay";
};
&uart4 {
status = "okay";
};
&uart5 {
status = "okay";
};
&uart_routing {
status = "okay";
};
&i2c0 {
status = "okay";
U34_PWR_ADC@48 {
compatible = "ti,ads7830";
reg = <0x48>;
};
U35_PWR_ADC@4b {
compatible = "ti,ads7830";
reg = <0x4b>;
};
i2c-mux@70 {
compatible = "nxp,pca9546";
reg = <0x70>;
#address-cells = <1>;
#size-cells = <0>;
i2c-mux-idle-disconnect;
SMB_HOST_DB2000_3V3AUX_SCL: i2c@0 {
#address-cells = <1>;
#size-cells = <0>;
reg = <0>;
};
U12_PCA9546_CH1: i2c@1 {
#address-cells = <1>;
#size-cells = <0>;
reg = <1>;
};
SMB_HOST_DB800_B_SCL: i2c@2 {
#address-cells = <1>;
#size-cells = <0>;
reg = <2>;
};
SMB_HOST_DB800_C_SCL: i2c@3 {
#address-cells = <1>;
#size-cells = <0>;
reg = <3>;
};
};
};
&i2c1 {
status = "okay";
i2c-mux@59 {
compatible = "nxp,pca9848";
reg = <0x59>;
#address-cells = <1>;
#size-cells = <0>;
i2c-mux-idle-disconnect;
SMB_M2_P0_1V8AUX_SCL: i2c@0 {
#address-cells = <1>;
#size-cells = <0>;
reg = <0>;
};
SMB_M2_P1_1V8AUX_SCL: i2c@1 {
#address-cells = <1>;
#size-cells = <0>;
reg = <1>;
};
SMB_CPU_PIROM_3V3AUX_SCL: i2c@2 {
#address-cells = <1>;
#size-cells = <0>;
reg = <2>;
};
SMB_TEMP_3V3AUX_SCL: i2c@3 {
#address-cells = <1>;
#size-cells = <0>;
reg = <3>;
U163_tmp75@48 {
compatible = "ti,tmp75";
reg = <0x48>;
};
U114_tmp75@49 {
compatible = "ti,tmp75";
reg = <0x49>;
};
};
SMB_IPMB_3V3AUX_SSDSB_SCL: i2c@4 {
#address-cells = <1>;
#size-cells = <0>;
reg = <4>;
U4_tmp75@4c {
compatible = "ti,tmp75";
reg = <0x4c>;
};
U73_tmp75@4d {
compatible = "ti,tmp75";
reg = <0x4d>;
};
};
SMB_IPMB_3V3AUX_SCL: i2c@5 {
#address-cells = <1>;
#size-cells = <0>;
reg = <5>;
U190_fru@51 {
compatible = "atmel,24c128";
reg = <0x51>;
pagesize = <32>;
};
};
SMB_FB_SCL: i2c@7 {
#address-cells = <1>;
#size-cells = <0>;
reg = <7>;
i2c-mux@77 {
compatible = "nxp,pca9546";
reg = <0x77>;
#address-cells = <1>;
#size-cells = <0>;
i2c-mux-idle-disconnect;
SMB_IOEXP_SCL: i2c@0 {
#address-cells = <1>;
#size-cells = <0>;
reg = <0>;
};
SMB_PROGRAM_SCL: i2c@1 {
#address-cells = <1>;
#size-cells = <0>;
reg = <1>;
};
SMB_FB_SCL_CH2: i2c@2 {
#address-cells = <1>;
#size-cells = <0>;
reg = <2>;
};
SMB_FAN_SENSE_SCL: i2c@3 {
#address-cells = <1>;
#size-cells = <0>;
reg = <3>;
Current_Meter_U2@45 {
compatible = "ti,ina219";
reg = <0x45>;
shunt-resistor = <1000>; /* = 1 mOhm */
};
Current_Meter_U3@44 {
compatible = "ti,ina219";
reg = <0x44>;
shunt-resistor = <1000>; /* = 1 mOhm */
};
TEMP_sensor_U2@4b {
compatible = "ti,tmp75";
reg = <0x4b>;
};
};
};
};
};
};
&i2c2 {
status = "okay";
bus-frequency = <400000>;
ipmb@10 {
compatible = "ipmb-dev";
reg = <(0x10 | I2C_OWN_SLAVE_ADDRESS)>;
i2c-protocol;
};
};
&i2c3 {
status = "okay";
/* MB FRU (U173) @ 0xA2 */
mb_fru: mb_fru@51 {
compatible = "atmel,24c128";
reg = <0x51>;
pagesize = <32>;
};
/* FP_U1 Inlet */
FP_U1_tmp75@4a {
compatible = "ti,tmp75";
reg = <0x4a>;
};
FP_U4_fru@52 {
compatible = "atmel,24c02";
reg = <0x52>;
pagesize = <16>;
};
};
&i2c4 {
status = "okay";
};
&i2c5 {
status = "okay";
};
&i2c6 {
status = "okay";
i2c-mux@77 {
compatible = "nxp,pca9548";
#address-cells = <1>;
#size-cells = <0>;
reg = <0x77>;
i2c-mux-idle-disconnect;
U197_PCA9546_CH0: i2c@0 {
#address-cells = <1>;
#size-cells = <0>;
reg = <0>;
};
U197_PCA9546_CH1: i2c@1 {
#address-cells = <1>;
#size-cells = <0>;
reg = <1>;
cpu0_pvccin@60 {
compatible = "isil,raa229004";
reg = <0x60>;
};
cpu0_pvccinfaon@61 {
compatible = "isil,isl69260";
reg = <0x61>;
};
cpu0_pvccd_hv@63 {
compatible = "isil,isl69260";
reg = <0x63>;
};
};
U197_PCA9546_CH2: i2c@2 {
#address-cells = <1>;
#size-cells = <0>;
reg = <2>;
cpu1_pvccin@72 {
compatible = "isil,raa229004";
reg = <0x72>;
};
cpu1_pvccinfaon@74 {
compatible = "isil,isl69260";
reg = <0x74>;
};
cpu1_pvccd_hv@76 {
compatible = "isil,isl69260";
reg = <0x76>;
};
};
U197_PCA9546_CH3: i2c@3 {
#address-cells = <1>;
#size-cells = <0>;
reg = <3>;
};
};
};
&i2c7 {
status = "okay";
i2c-mux@75 {
compatible = "nxp,pca9546";
#address-cells = <1>;
#size-cells = <0>;
reg = <0x75>;
i2c-mux-idle-disconnect;
SMB_OCP_SFF_3V3AUX_SCL: i2c@0 {
#address-cells = <1>;
#size-cells = <0>;
reg = <0>;
};
SMB_OCP_LFF_3V3AUX_SCL: i2c@1 {
#address-cells = <1>;
#size-cells = <0>;
reg = <1>;
};
};
};
&i2c8 {
status = "okay";
};
&i2c9 {
status = "okay";
};
&i2c11 {
status = "okay";
};
&i2c14 {
status = "okay";
/* SCM FRU (U19) @ 0xA2 */
scm_fru: scm_fru@51 {
compatible = "atmel,24c128";
reg = <0x51>;
pagesize = <32>;
};
scm_tmp75_u4@4a {
compatible = "ti,tmp75";
reg = <0x4a>;
};
};
&i2c15 {
status = "okay";
};