ARM: dts: aspeed: Adding Facebook Bletchley BMC

Initial introduction of Facebook Bletchley equipped with
Aspeed 2600 BMC SoC.

Signed-off-by: Howard Chiu <howard.chiu@quantatw.com>
Link: https://lore.kernel.org/r/20211207094923.422422-1-howard.chiu@quantatw.com
Signed-off-by: Joel Stanley <joel@jms.id.au>
This commit is contained in:
Howard Chiu 2021-12-07 17:49:24 +08:00 committed by Joel Stanley
parent b26965e997
commit a8c729e966
2 changed files with 757 additions and 0 deletions

View File

@ -1482,6 +1482,7 @@ dtb-$(CONFIG_ARCH_ASPEED) += \
aspeed-bmc-arm-stardragon4800-rep2.dtb \
aspeed-bmc-asrock-e3c246d4i.dtb \
aspeed-bmc-bytedance-g220a.dtb \
aspeed-bmc-facebook-bletchley.dtb \
aspeed-bmc-facebook-cloudripper.dtb \
aspeed-bmc-facebook-cmm.dtb \
aspeed-bmc-facebook-elbert.dtb \

View File

@ -0,0 +1,756 @@
// SPDX-License-Identifier: GPL-2.0+
// Copyright (c) 2021 Facebook Inc.
/dts-v1/;
#include "aspeed-g6.dtsi"
#include <dt-bindings/gpio/aspeed-gpio.h>
#include <dt-bindings/usb/pd.h>
/ {
model = "Facebook Bletchley BMC";
compatible = "facebook,bletchley-bmc", "aspeed,ast2600";
aliases {
serial4 = &uart5;
};
chosen {
bootargs = "console=ttyS4,57600n8";
};
memory@80000000 {
device_type = "memory";
reg = <0x80000000 0x80000000>;
};
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>;
};
spi_gpio: spi-gpio {
compatible = "spi-gpio";
#address-cells = <1>;
#size-cells = <0>;
gpio-sck = <&gpio0 ASPEED_GPIO(Z, 3) GPIO_ACTIVE_HIGH>;
gpio-mosi = <&gpio0 ASPEED_GPIO(Z, 4) GPIO_ACTIVE_HIGH>;
gpio-miso = <&gpio0 ASPEED_GPIO(Z, 5) GPIO_ACTIVE_HIGH>;
num-chipselects = <1>;
cs-gpios = <&gpio0 ASPEED_GPIO(Z, 0) GPIO_ACTIVE_LOW>;
tpmdev@0 {
compatible = "tcg,tpm_tis-spi";
spi-max-frequency = <33000000>;
reg = <0>;
};
};
switchphy: ethernet-phy@0 {
// Fixed link
};
leds {
compatible = "gpio-leds";
sys_log_id {
retain-state-shutdown;
default-state = "keep";
gpios = <&front_leds 0 GPIO_ACTIVE_HIGH>;
};
fan0_blue {
retain-state-shutdown;
default-state = "on";
gpios = <&fan_ioexp 8 GPIO_ACTIVE_HIGH>;
};
fan1_blue {
retain-state-shutdown;
default-state = "on";
gpios = <&fan_ioexp 9 GPIO_ACTIVE_HIGH>;
};
fan2_blue {
retain-state-shutdown;
default-state = "on";
gpios = <&fan_ioexp 10 GPIO_ACTIVE_HIGH>;
};
fan3_blue {
retain-state-shutdown;
default-state = "on";
gpios = <&fan_ioexp 11 GPIO_ACTIVE_HIGH>;
};
fan0_amber {
retain-state-shutdown;
default-state = "off";
gpios = <&fan_ioexp 12 GPIO_ACTIVE_HIGH>;
};
fan1_amber {
retain-state-shutdown;
default-state = "off";
gpios = <&fan_ioexp 13 GPIO_ACTIVE_HIGH>;
};
fan2_amber {
retain-state-shutdown;
default-state = "off";
gpios = <&fan_ioexp 14 GPIO_ACTIVE_HIGH>;
};
fan3_amber {
retain-state-shutdown;
default-state = "off";
gpios = <&fan_ioexp 15 GPIO_ACTIVE_HIGH>;
};
sled0_amber {
retain-state-shutdown;
default-state = "off";
gpios = <&sled0_leds 0 GPIO_ACTIVE_LOW>;
};
sled0_blue {
retain-state-shutdown;
default-state = "off";
gpios = <&sled0_leds 1 GPIO_ACTIVE_LOW>;
};
sled1_amber {
retain-state-shutdown;
default-state = "off";
gpios = <&sled1_leds 0 GPIO_ACTIVE_LOW>;
};
sled1_blue {
retain-state-shutdown;
default-state = "off";
gpios = <&sled1_leds 1 GPIO_ACTIVE_LOW>;
};
sled2_amber {
retain-state-shutdown;
default-state = "off";
gpios = <&sled2_leds 0 GPIO_ACTIVE_LOW>;
};
sled2_blue {
retain-state-shutdown;
default-state = "off";
gpios = <&sled2_leds 1 GPIO_ACTIVE_LOW>;
};
sled3_amber {
retain-state-shutdown;
default-state = "off";
gpios = <&sled3_leds 0 GPIO_ACTIVE_LOW>;
};
sled3_blue {
retain-state-shutdown;
default-state = "off";
gpios = <&sled3_leds 1 GPIO_ACTIVE_LOW>;
};
sled4_amber {
retain-state-shutdown;
default-state = "off";
gpios = <&sled4_leds 0 GPIO_ACTIVE_LOW>;
};
sled4_blue {
retain-state-shutdown;
default-state = "off";
gpios = <&sled4_leds 1 GPIO_ACTIVE_LOW>;
};
sled5_amber {
retain-state-shutdown;
default-state = "off";
gpios = <&sled5_leds 0 GPIO_ACTIVE_LOW>;
};
sled5_blue {
retain-state-shutdown;
default-state = "off";
gpios = <&sled5_leds 1 GPIO_ACTIVE_LOW>;
};
};
};
&mac2 {
status = "okay";
phy-mode = "rgmii";
phy-handle = <&switchphy>;
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_rgmii3_default>;
fixed-link {
speed = <1000>;
full-duplex;
};
};
&rtc {
status = "okay";
};
&fmc {
status = "okay";
flash@0 {
status = "okay";
m25p,fast-read;
label = "bmc";
spi-max-frequency = <50000000>;
#include "openbmc-flash-layout-128.dtsi"
};
};
&spi2 {
status = "okay";
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_spi2_default>;
flash@0 {
status = "okay";
m25p,fast-read;
label = "pnor";
spi-max-frequency = <100000000>;
};
};
&i2c0 {
status = "okay";
/* TODO: Add ADC INA230 */
mp5023@40 {
compatible = "mps,mp5023";
reg = <0x40>;
};
tmp421@4f {
compatible = "ti,tmp421";
reg = <0x4f>;
};
sled0_ioexp: pca9539@76 {
compatible = "nxp,pca9539";
reg = <0x76>;
#address-cells = <1>;
#size-cells = <0>;
gpio-controller;
#gpio-cells = <2>;
gpio-line-names =
"SLED0_MS_DETECT1","SLED0_VBUS_BMC_EN","SLED0_INA230_ALERT","SLED0_P12V_STBY_ALERT",
"SLED0_SSD_ALERT","SLED0_MS_DETECT0","SLED0_RST_CCG5","SLED0_FUSB302_INT",
"SLED0_MD_STBY_RESET","SLED0_MD_IOEXP_EN_FAULT","SLED0_MD_DIR","SLED0_MD_DECAY",
"SLED0_MD_MODE1","SLED0_MD_MODE2","SLED0_MD_MODE3","power-host0";
};
sled0_leds: pca9552@67 {
compatible = "nxp,pca9552";
reg = <0x67>;
#address-cells = <1>;
#size-cells = <0>;
gpio-controller;
#gpio-cells = <2>;
gpio-line-names =
"led-sled0-amber","led-sled0-blue","SLED0_RST_IOEXP","",
"","","","",
"","","","",
"","","","";
};
sled0_fusb302: typec-portc@22 {
compatible = "fcs,fusb302";
reg = <0x22>;
connector {
compatible = "usb-c-connector";
label = "USB-C";
power-role = "dual";
try-power-role = "sink";
data-role = "dual";
source-pdos = <PDO_FIXED(5000, 3000, PDO_FIXED_USB_COMM)>;
sink-pdos = <PDO_FIXED(5000, 3000, PDO_FIXED_USB_COMM)
PDO_VAR(3000, 12000, 3000)
PDO_PPS_APDO(3000, 11000, 3000)>;
op-sink-microwatt = <10000000>;
};
};
};
&i2c1 {
status = "okay";
/* TODO: Add ADC INA230 */
mp5023@40 {
compatible = "mps,mp5023";
reg = <0x40>;
};
tmp421@4f {
compatible = "ti,tmp421";
reg = <0x4f>;
};
sled1_ioexp: pca9539@76 {
compatible = "nxp,pca9539";
reg = <0x76>;
#address-cells = <1>;
#size-cells = <0>;
gpio-controller;
#gpio-cells = <2>;
gpio-line-names =
"SLED1_MS_DETECT1","SLED1_VBUS_BMC_EN","SLED1_INA230_ALERT","SLED1_P12V_STBY_ALERT",
"SLED1_SSD_ALERT","SLED1_MS_DETECT0","SLED1_RST_CCG5","SLED1_FUSB302_INT",
"SLED1_MD_STBY_RESET","SLED1_MD_IOEXP_EN_FAULT","SLED1_MD_DIR","SLED1_MD_DECAY",
"SLED1_MD_MODE1","SLED1_MD_MODE2","SLED1_MD_MODE3","power-host1";
};
sled1_leds: pca9552@67 {
compatible = "nxp,pca9552";
reg = <0x67>;
#address-cells = <1>;
#size-cells = <0>;
gpio-controller;
#gpio-cells = <2>;
gpio-line-names =
"led-sled1-amber","led-sled1-blue","SLED1_RST_IOEXP","",
"","","","",
"","","","",
"","","","";
};
sled1_fusb302: typec-portc@22 {
compatible = "fcs,fusb302";
reg = <0x22>;
connector {
compatible = "usb-c-connector";
label = "USB-C";
power-role = "dual";
try-power-role = "sink";
data-role = "dual";
source-pdos = <PDO_FIXED(5000, 3000, PDO_FIXED_USB_COMM)>;
sink-pdos = <PDO_FIXED(5000, 3000, PDO_FIXED_USB_COMM)
PDO_VAR(3000, 12000, 3000)
PDO_PPS_APDO(3000, 11000, 3000)>;
op-sink-microwatt = <10000000>;
};
};
};
&i2c1 {
status = "okay";
};
&i2c2 {
status = "okay";
/* TODO: Add ADC INA230 */
mp5023@40 {
compatible = "mps,mp5023";
reg = <0x40>;
};
tmp421@4f {
compatible = "ti,tmp421";
reg = <0x4f>;
};
sled2_ioexp: pca9539@76 {
compatible = "nxp,pca9539";
reg = <0x76>;
#address-cells = <1>;
#size-cells = <0>;
gpio-controller;
#gpio-cells = <2>;
gpio-line-names =
"SLED2_MS_DETECT1","SLED2_VBUS_BMC_EN","SLED2_INA230_ALERT","SLED2_P12V_STBY_ALERT",
"SLED2_SSD_ALERT","SLED2_MS_DETECT0","SLED2_RST_CCG5","SLED2_FUSB302_INT",
"SLED2_MD_STBY_RESET","SLED2_MD_IOEXP_EN_FAULT","SLED2_MD_DIR","SLED2_MD_DECAY",
"SLED2_MD_MODE1","SLED2_MD_MODE2","SLED2_MD_MODE3","power-host2";
};
sled2_leds: pca9552@67 {
compatible = "nxp,pca9552";
reg = <0x67>;
#address-cells = <1>;
#size-cells = <0>;
gpio-controller;
#gpio-cells = <2>;
gpio-line-names =
"led-sled2-amber","led-sled2-blue","SLED2_RST_IOEXP","",
"","","","",
"","","","",
"","","","";
};
sled2_fusb302: typec-portc@22 {
compatible = "fcs,fusb302";
reg = <0x22>;
connector {
compatible = "usb-c-connector";
label = "USB-C";
power-role = "dual";
try-power-role = "sink";
data-role = "dual";
source-pdos = <PDO_FIXED(5000, 3000, PDO_FIXED_USB_COMM)>;
sink-pdos = <PDO_FIXED(5000, 3000, PDO_FIXED_USB_COMM)
PDO_VAR(3000, 12000, 3000)
PDO_PPS_APDO(3000, 11000, 3000)>;
op-sink-microwatt = <10000000>;
};
};
};
&i2c3 {
status = "okay";
/* TODO: Add ADC INA230 */
mp5023@40 {
compatible = "mps,mp5023";
reg = <0x40>;
};
tmp421@4f {
compatible = "ti,tmp421";
reg = <0x4f>;
};
sled3_ioexp: pca9539@76 {
compatible = "nxp,pca9539";
reg = <0x76>;
#address-cells = <1>;
#size-cells = <0>;
gpio-controller;
#gpio-cells = <2>;
gpio-line-names =
"SLED3_MS_DETECT1","SLED3_VBUS_BMC_EN","SLED3_INA230_ALERT","SLED3_P12V_STBY_ALERT",
"SLED3_SSD_ALERT","SLED3_MS_DETECT0","SLED3_RST_CCG5","SLED3_FUSB302_INT",
"SLED3_MD_STBY_RESET","SLED3_MD_IOEXP_EN_FAULT","SLED3_MD_DIR","SLED3_MD_DECAY",
"SLED3_MD_MODE1","SLED3_MD_MODE2","SLED3_MD_MODE3","power-host3";
};
sled3_leds: pca9552@67 {
compatible = "nxp,pca9552";
reg = <0x67>;
#address-cells = <1>;
#size-cells = <0>;
gpio-controller;
#gpio-cells = <2>;
gpio-line-names =
"led-sled3-amber","led-sled3-blue","SLED3_RST_IOEXP","",
"","","","",
"","","","",
"","","","";
};
sled3_fusb302: typec-portc@22 {
compatible = "fcs,fusb302";
reg = <0x22>;
connector {
compatible = "usb-c-connector";
label = "USB-C";
power-role = "dual";
try-power-role = "sink";
data-role = "dual";
source-pdos = <PDO_FIXED(5000, 3000, PDO_FIXED_USB_COMM)>;
sink-pdos = <PDO_FIXED(5000, 3000, PDO_FIXED_USB_COMM)
PDO_VAR(3000, 12000, 3000)
PDO_PPS_APDO(3000, 11000, 3000)>;
op-sink-microwatt = <10000000>;
};
};
};
&i2c4 {
status = "okay";
/* TODO: Add ADC INA230 */
mp5023@40 {
compatible = "mps,mp5023";
reg = <0x40>;
};
tmp421@4f {
compatible = "ti,tmp421";
reg = <0x4f>;
};
sled4_ioexp: pca9539@76 {
compatible = "nxp,pca9539";
reg = <0x76>;
#address-cells = <1>;
#size-cells = <0>;
gpio-controller;
#gpio-cells = <2>;
gpio-line-names =
"SLED4_MS_DETECT1","SLED4_VBUS_BMC_EN","SLED4_INA230_ALERT","SLED4_P12V_STBY_ALERT",
"SLED4_SSD_ALERT","SLED4_MS_DETECT0","SLED4_RST_CCG5","SLED4_FUSB302_INT",
"SLED4_MD_STBY_RESET","SLED4_MD_IOEXP_EN_FAULT","SLED4_MD_DIR","SLED4_MD_DECAY",
"SLED4_MD_MODE1","SLED4_MD_MODE2","SLED4_MD_MODE3","power-host4";
};
sled4_leds: pca9552@67 {
compatible = "nxp,pca9552";
reg = <0x67>;
#address-cells = <1>;
#size-cells = <0>;
gpio-controller;
#gpio-cells = <2>;
gpio-line-names =
"led-sled4-amber","led-sled4-blue","SLED4_RST_IOEXP","",
"","","","",
"","","","",
"","","","";
};
sled4_fusb302: typec-portc@22 {
compatible = "fcs,fusb302";
reg = <0x22>;
connector {
compatible = "usb-c-connector";
label = "USB-C";
power-role = "dual";
try-power-role = "sink";
data-role = "dual";
source-pdos = <PDO_FIXED(5000, 3000, PDO_FIXED_USB_COMM)>;
sink-pdos = <PDO_FIXED(5000, 3000, PDO_FIXED_USB_COMM)
PDO_VAR(3000, 12000, 3000)
PDO_PPS_APDO(3000, 11000, 3000)>;
op-sink-microwatt = <10000000>;
};
};
};
&i2c5 {
status = "okay";
/* TODO: Add ADC INA230 */
mp5023@40 {
compatible = "mps,mp5023";
reg = <0x40>;
};
tmp421@4f {
compatible = "ti,tmp421";
reg = <0x4f>;
};
sled5_ioexp: pca9539@76 {
compatible = "nxp,pca9539";
reg = <0x76>;
#address-cells = <1>;
#size-cells = <0>;
gpio-controller;
#gpio-cells = <2>;
gpio-line-names =
"SLED5_MS_DETECT1","SLED5_VBUS_BMC_EN","SLED5_INA230_ALERT","SLED5_P12V_STBY_ALERT",
"SLED5_SSD_ALERT","SLED5_MS_DETECT0","SLED5_RST_CCG5","SLED5_FUSB302_INT",
"SLED5_MD_STBY_RESET","SLED5_MD_IOEXP_EN_FAULT","SLED5_MD_DIR","SLED5_MD_DECAY",
"SLED5_MD_MODE1","SLED5_MD_MODE2","SLED5_MD_MODE3","power-host5";
};
sled5_leds: pca9552@67 {
compatible = "nxp,pca9552";
reg = <0x67>;
#address-cells = <1>;
#size-cells = <0>;
gpio-controller;
#gpio-cells = <2>;
gpio-line-names =
"led-sled5-amber","led-sled5-blue","SLED5_RST_IOEXP","",
"","","","",
"","","","",
"","","","";
};
sled5_fusb302: typec-portc@22 {
compatible = "fcs,fusb302";
reg = <0x22>;
connector {
compatible = "usb-c-connector";
label = "USB-C";
power-role = "dual";
try-power-role = "sink";
data-role = "dual";
source-pdos = <PDO_FIXED(5000, 3000, PDO_FIXED_USB_COMM)>;
sink-pdos = <PDO_FIXED(5000, 3000, PDO_FIXED_USB_COMM)
PDO_VAR(3000, 12000, 3000)
PDO_PPS_APDO(3000, 11000, 3000)>;
op-sink-microwatt = <10000000>;
};
};
};
&i2c6 {
status = "okay";
eeprom@56 {
compatible = "atmel,24c64";
reg = <0x56>;
};
rtc@51 {
compatible = "nxp,pcf85263";
reg = <0x51>;
};
};
&i2c7 {
status = "okay";
eeprom@54 {
compatible = "atmel,24c64";
reg = <0x54>;
};
};
&i2c9 {
status = "okay";
tmp421@4f {
compatible = "ti,tmp421";
reg = <0x4f>;
};
};
&i2c10 {
status = "okay";
tmp421@4f {
compatible = "ti,tmp421";
reg = <0x4f>;
};
hdc1080@40 {
compatible = "ti,hdc1080";
reg = <0x40>;
};
front_leds: pca9552@67 {
compatible = "nxp,pca9552";
reg = <0x67>;
#address-cells = <1>;
#size-cells = <0>;
gpio-controller;
#gpio-cells = <2>;
gpio-line-names =
"led-fault-identify","power-p5v-stby-good",
"power-p1v0-dvdd-good","power-p1v0-avdd-good",
"","","","",
"","","","",
"","","","";
};
};
&i2c12 {
status = "okay";
adm1278@11 {
compatible = "adi,adm1278";
reg = <0x11>;
};
tmp421@4c {
compatible = "ti,tmp421";
reg = <0x4c>;
};
tmp421@4d {
compatible = "ti,tmp421";
reg = <0x4d>;
};
fan_ioexp: pca9552@67 {
compatible = "nxp,pca9552";
reg = <0x67>;
#address-cells = <1>;
#size-cells = <0>;
gpio-controller;
#gpio-cells = <2>;
gpio-line-names =
"presence-fan0","presence-fan1",
"presence-fan2","presence-fan3",
"power-fan0-good","power-fan1-good",
"power-fan2-good","power-fan3-good",
"","","","",
"","","","";
};
};
&i2c13 {
multi-master;
aspeed,hw-timeout-ms = <1000>;
status = "okay";
};
&gpio0 {
gpio-line-names =
/*A0-A7*/ "","","","","","","","",
/*B0-B7*/ "","","SEL_SPI2_MUX","SPI2_MUX1",
"SPI2_MUX2","SPI2_MUX3","","",
/*C0-C7*/ "","","","","","","","",
/*D0-D7*/ "","","","","","","","",
/*E0-E7*/ "","","","","","","","",
/*F0-F7*/ "","","","","","","","",
/*G0-G7*/ "","SWITCH_FRU_MUX","","","","","","",
/*H0-H7*/ "presence-riser1","presence-riser2",
"presence-sled0","presence-sled1",
"presence-sled2","presence-sled3",
"presence-sled4","presence-sled5",
/*I0-I7*/ "REV_ID0","","REV_ID1","REV_ID2",
"","","","",
/*J0-J7*/ "","","","","","","","",
/*K0-K7*/ "","","","","","","","",
/*L0-L7*/ "","","","","","","","",
/*M0-M7*/ "ALERT_SLED0","ALERT_SLED1",
"ALERT_SLED2","ALERT_SLED3",
"ALERT_SLED4","ALERT_SLED5",
"P12V_AUX_ALERT1","",
/*N0-N7*/ "","","","","","","","",
/*O0-O7*/ "","","","",
"","BOARD_ID0","BOARD_ID1","BOARD_ID2",
/*P0-P7*/ "","","","","","","","",
/*Q0-Q7*/ "","","","","","","","",
/*R0-R7*/ "","","","","","","","",
/*S0-S7*/ "","","","BAT_DETECT",
"BMC_BT_WP0","BMC_BT_WP1","","",
/*T0-T7*/ "","","","","","","","",
/*U0-U7*/ "","","","","","","","",
/*V0-V7*/ "","RST_BMC_MVL","","",
"USB2_SEL0_A","USB2_SEL1_A",
"USB2_SEL0_B","USB2_SEL1_B",
/*W0-W7*/ "RST_FRONT_IOEXP","","","","","","","",
/*X0-X7*/ "","","","","","","","",
/*Y0-Y7*/ "","","BSM_FLASH_LATCH","","","","","",
/*Z0-Z7*/ "","","","","","","","";
};
&adc0 {
vref = <1800>;
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>;
};