// SPDX-License-Identifier: GPL-2.0-or-later
// Copyright 2022 Facebook Inc.
/dts-v1/;
#include "aspeed-g6.dtsi"
#include <dt-bindings/gpio/aspeed-gpio.h>
#include <dt-bindings/leds/leds-pca955x.h>
#include <dt-bindings/i2c/i2c.h>
/ {
model = "Facebook Yosemite 4 BMC";
compatible = "facebook,yosemite4-bmc", "aspeed,ast2600";
aliases {
serial4 = &uart5;
serial5 = &uart6;
serial6 = &uart7;
serial7 = &uart8;
serial8 = &uart9;
};
chosen {
stdout-path = "serial4: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>;
};
};
&uart1 {
status = "okay";
};
&uart2 {
status = "okay";
};
&uart3 {
status = "okay";
};
&uart4 {
status = "okay";
};
&uart5 {
status = "okay";
};
&uart6 {
status = "okay";
};
&uart7 {
status = "okay";
};
&uart8 {
status = "okay";
};
&uart9 {
status = "okay";
};
&wdt1 {
status = "okay";
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>;
};
&mac2 {
status = "okay";
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_rmii3_default>;
use-ncsi;
mellanox,multi-host;
};
&mac3 {
status = "okay";
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_rmii4_default>;
use-ncsi;
mellanox,multi-host;
};
&fmc {
status = "okay";
flash@0 {
status = "okay";
m25p,fast-read;
label = "bmc";
spi-rx-bus-width = <4>;
spi-max-frequency = <50000000>;
#include "openbmc-flash-layout-64.dtsi"
};
flash@1 {
status = "okay";
m25p,fast-read;
label = "bmc2";
spi-rx-bus-width = <4>;
spi-max-frequency = <50000000>;
};
};
&i2c0 {
status = "okay";
mctp-controller;
bus-frequency = <400000>;
multi-master;
mctp@10 {
compatible = "mctp-i2c-controller";
reg = <(0x10 | I2C_OWN_SLAVE_ADDRESS)>;
};
power-sensor@40 {
compatible = "adi,adm1278";
reg = <0x40>;
};
};
&i2c1 {
status = "okay";
mctp-controller;
bus-frequency = <400000>;
multi-master;
mctp@10 {
compatible = "mctp-i2c-controller";
reg = <(0x10 | I2C_OWN_SLAVE_ADDRESS)>;
};
power-sensor@40 {
compatible = "adi,adm1278";
reg = <0x40>;
};
};
&i2c2 {
status = "okay";
mctp-controller;
bus-frequency = <400000>;
multi-master;
mctp@10 {
compatible = "mctp-i2c-controller";
reg = <(0x10 | I2C_OWN_SLAVE_ADDRESS)>;
};
power-sensor@40 {
compatible = "adi,adm1278";
reg = <0x40>;
};
};
&i2c3 {
status = "okay";
mctp-controller;
bus-frequency = <400000>;
multi-master;
mctp@10 {
compatible = "mctp-i2c-controller";
reg = <(0x10 | I2C_OWN_SLAVE_ADDRESS)>;
};
power-sensor@40 {
compatible = "adi,adm1278";
reg = <0x40>;
};
};
&i2c4 {
status = "okay";
mctp-controller;
bus-frequency = <400000>;
multi-master;
mctp@10 {
compatible = "mctp-i2c-controller";
reg = <(0x10 | I2C_OWN_SLAVE_ADDRESS)>;
};
power-sensor@40 {
compatible = "adi,adm1278";
reg = <0x40>;
};
};
&i2c5 {
status = "okay";
mctp-controller;
bus-frequency = <400000>;
multi-master;
mctp@10 {
compatible = "mctp-i2c-controller";
reg = <(0x10 | I2C_OWN_SLAVE_ADDRESS)>;
};
power-sensor@40 {
compatible = "adi,adm1278";
reg = <0x40>;
};
};
&i2c6 {
status = "okay";
mctp-controller;
bus-frequency = <400000>;
multi-master;
mctp@10 {
compatible = "mctp-i2c-controller";
reg = <(0x10 | I2C_OWN_SLAVE_ADDRESS)>;
};
power-sensor@40 {
compatible = "adi,adm1278";
reg = <0x40>;
};
};
&i2c7 {
status = "okay";
mctp-controller;
bus-frequency = <400000>;
multi-master;
mctp@10 {
compatible = "mctp-i2c-controller";
reg = <(0x10 | I2C_OWN_SLAVE_ADDRESS)>;
};
power-sensor@40 {
compatible = "adi,adm1278";
reg = <0x40>;
};
};
&i2c8 {
status = "okay";
bus-frequency = <400000>;
i2c-mux@70 {
compatible = "nxp,pca9544";
idle-state = <0>;
i2c-mux-idle-disconnect;
reg = <0x70>;
};
};
&i2c9 {
status = "okay";
bus-frequency = <400000>;
i2c-mux@71 {
compatible = "nxp,pca9544";
idle-state = <0>;
i2c-mux-idle-disconnect;
reg = <0x71>;
};
};
&i2c10 {
status = "okay";
bus-frequency = <400000>;
};
&i2c11 {
status = "okay";
power-sensor@10 {
compatible = "adi, adm1272";
reg = <0x10>;
};
power-sensor@12 {
compatible = "adi, adm1272";
reg = <0x12>;
};
gpio@20 {
compatible = "nxp,pca9555";
reg = <0x20>;
gpio-controller;
#gpio-cells = <2>;
};
gpio@21 {
compatible = "nxp,pca9555";
reg = <0x21>;
gpio-controller;
#gpio-cells = <2>;
};
gpio@22 {
compatible = "nxp,pca9555";
reg = <0x22>;
gpio-controller;
#gpio-cells = <2>;
};
gpio@23 {
compatible = "nxp,pca9555";
reg = <0x23>;
gpio-controller;
#gpio-cells = <2>;
};
temperature-sensor@48 {
compatible = "ti,tmp75";
reg = <0x48>;
};
temperature-sensor@49 {
compatible = "ti,tmp75";
reg = <0x49>;
};
temperature-sensor@4a {
compatible = "ti,tmp75";
reg = <0x4a>;
};
temperature-sensor@4b {
compatible = "ti,tmp75";
reg = <0x4b>;
};
eeprom@54 {
compatible = "atmel,24c256";
reg = <0x54>;
};
};
&i2c12 {
status = "okay";
bus-frequency = <400000>;
temperature-sensor@48 {
compatible = "ti,tmp75";
reg = <0x48>;
};
eeprom@50 {
compatible = "atmel,24c128";
reg = <0x50>;
};
rtc@6f {
compatible = "nuvoton,nct3018y";
reg = <0x6f>;
};
};
&i2c13 {
status = "okay";
bus-frequency = <100000>;
multi-master;
ipmb@10 {
compatible = "ipmb-dev";
reg = <(0x10 | I2C_OWN_SLAVE_ADDRESS)>;
i2c-protocol;
};
};
&i2c14 {
status = "okay";
bus-frequency = <400000>;
adc@1d {
compatible = "ti,adc128d818";
reg = <0x1d>;
ti,mode = /bits/ 8 <2>;
};
adc@35 {
compatible = "ti,adc128d818";
reg = <0x35>;
ti,mode = /bits/ 8 <2>;
};
adc@37 {
compatible = "ti,adc128d818";
reg = <0x37>;
ti,mode = /bits/ 8 <2>;
};
power-sensor@40 {
compatible = "ti,ina230";
reg = <0x40>;
};
power-sensor@41 {
compatible = "ti,ina230";
reg = <0x41>;
};
power-sensor@42 {
compatible = "ti,ina230";
reg = <0x42>;
};
power-sensor@43 {
compatible = "ti,ina230";
reg = <0x43>;
};
power-sensor@44 {
compatible = "ti,ina230";
reg = <0x44>;
};
temperature-sensor@4e {
compatible = "ti,tmp75";
reg = <0x4e>;
};
temperature-sensor@4f {
compatible = "ti,tmp75";
reg = <0x4f>;
};
eeprom@51 {
compatible = "atmel,24c128";
reg = <0x51>;
};
i2c-mux@71 {
compatible = "nxp,pca9846";
#address-cells = <1>;
#size-cells = <0>;
idle-state = <0>;
i2c-mux-idle-disconnect;
reg = <0x71>;
i2c@0 {
#address-cells = <1>;
#size-cells = <0>;
reg = <0>;
adc@1f {
compatible = "ti,adc128d818";
reg = <0x1f>;
ti,mode = /bits/ 8 <2>;
};
pwm@20{
compatible = "max31790";
reg = <0x20>;
#address-cells = <1>;
#size-cells = <0>;
};
gpio@22{
compatible = "ti,tca6424";
reg = <0x22>;
};
pwm@23{
compatible = "max31790";
reg = <0x23>;
#address-cells = <1>;
#size-cells = <0>;
};
adc@33 {
compatible = "maxim,max11615";
reg = <0x33>;
};
eeprom@52 {
compatible = "atmel,24c128";
reg = <0x52>;
};
gpio@61 {
compatible = "nxp,pca9552";
reg = <0x61>;
#address-cells = <1>;
#size-cells = <0>;
gpio-controller;
#gpio-cells = <2>;
};
};
i2c@1 {
#address-cells = <1>;
#size-cells = <0>;
reg = <0>;
adc@1f {
compatible = "ti,adc128d818";
reg = <0x1f>;
ti,mode = /bits/ 8 <2>;
};
pwm@20{
compatible = "max31790";
reg = <0x20>;
#address-cells = <1>;
#size-cells = <0>;
};
gpio@22{
compatible = "ti,tca6424";
reg = <0x22>;
};
pwm@23{
compatible = "max31790";
reg = <0x23>;
#address-cells = <1>;
#size-cells = <0>;
};
adc@33 {
compatible = "maxim,max11615";
reg = <0x33>;
};
eeprom@52 {
compatible = "atmel,24c128";
reg = <0x52>;
};
gpio@61 {
compatible = "nxp,pca9552";
reg = <0x61>;
#address-cells = <1>;
#size-cells = <0>;
gpio-controller;
#gpio-cells = <2>;
};
};
};
i2c-mux@73 {
compatible = "nxp,pca9544";
#address-cells = <1>;
#size-cells = <0>;
idle-state = <0>;
i2c-mux-idle-disconnect;
reg = <0x73>;
i2c@0 {
#address-cells = <1>;
#size-cells = <0>;
reg = <0>;
adc@35 {
compatible = "maxim,max11617";
reg = <0x35>;
};
};
i2c@1 {
#address-cells = <1>;
#size-cells = <0>;
reg = <0>;
adc@35 {
compatible = "maxim,max11617";
reg = <0x35>;
};
};
};
};
&i2c15 {
status = "okay";
mctp-controller;
multi-master;
bus-frequency = <400000>;
mctp@10 {
compatible = "mctp-i2c-controller";
reg = <(0x10 | I2C_OWN_SLAVE_ADDRESS)>;
};
i2c-mux@72 {
compatible = "nxp,pca9544";
idle-state = <0>;
i2c-mux-idle-disconnect;
reg = <0x72>;
};
};
&adc0 {
status = "okay";
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 {
status = "okay";
pinctrl-0 = <&pinctrl_adc8_default &pinctrl_adc9_default>;
};
&ehci0 {
status = "okay";
};
&ehci1 {
status = "okay";
};
&uhci {
status = "okay";
};