linux/arch/arm/boot/dts/aspeed/aspeed-bmc-facebook-minerva.dts

// SPDX-License-Identifier: GPL-2.0+
// Copyright (c) 2023 Facebook Inc.
/dts-v1/;

#include "aspeed-g6.dtsi"
#include <dt-bindings/gpio/aspeed-gpio.h>
#include <dt-bindings/i2c/i2c.h>

/ {
	model = "Facebook Minerva CMM";
	compatible = "facebook,minerva-cmc", "aspeed,ast2600";

	aliases {
		serial5 = &uart5;
		/*
		 * PCA9548 (2-0077) provides 8 channels connecting to
		 * 6 pcs of FCB (Fan Controller Board).
		 */
		i2c16 = &imux16;
		i2c17 = &imux17;
		i2c18 = &imux18;
		i2c19 = &imux19;
		i2c20 = &imux20;
		i2c21 = &imux21;
	};

	chosen {
		stdout-path = "serial5: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 2>;
	};

	leds {
		compatible = "gpio-leds";

		led-fan-fault {
			label = "led-fan-fault";
			gpios = <&leds_gpio 9 GPIO_ACTIVE_HIGH>;
			default-state = "off";
		};
	};
};

&uart6 {
	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>;
};

&mac3 {
	status = "okay";
	phy-mode = "rmii";
	pinctrl-names = "default";
	pinctrl-0 = <&pinctrl_rmii4_default>;
	fixed-link {
		speed = <100>;
		full-duplex;
	};
};

&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>;
	};
};

&rtc {
	status = "okay";
};

&sgpiom0 {
	status = "okay";
	ngpios = <128>;
	bus-frequency = <2000000>;
};

&i2c0 {
	status = "okay";

	power-monitor@40 {
		compatible = "ti,ina230";
		reg = <0x40>;
		shunt-resistor = <1000>;
	};

	power-monitor@41 {
		compatible = "ti,ina230";
		reg = <0x41>;
		shunt-resistor = <1000>;
	};

	power-monitor@67 {
		compatible = "adi,ltc2945";
		reg = <0x67>;
	};

	power-monitor@68 {
		compatible = "adi,ltc2945";
		reg = <0x68>;
	};

	leds_gpio: gpio@19 {
		compatible = "nxp,pca9555";
		reg = <0x19>;
		gpio-controller;
		#gpio-cells = <2>;
	};
};

&i2c1 {
	status = "okay";

	temperature-sensor@4b {
		compatible = "ti,tmp75";
		reg = <0x4b>;
	};

	temperature-sensor@48 {
		compatible = "ti,tmp75";
		reg = <0x48>;
	};

	eeprom@54 {
		compatible = "atmel,24c128";
		reg = <0x54>;
	};
};

&i2c2 {
	status = "okay";

	i2c-mux@77 {
		compatible = "nxp,pca9548";
		reg = <0x77>;
		#address-cells = <1>;
		#size-cells = <0>;
		i2c-mux-idle-disconnect;

		imux16: i2c@0 {
			#address-cells = <1>;
			#size-cells = <0>;
			reg = <0>;

			eeprom@50 {
				compatible = "atmel,24c128";
				reg = <0x50>;
			};

			pwm@5e{
				compatible = "max31790";
				reg = <0x5e>;
				#address-cells = <1>;
				#size-cells = <0>;
			};
		};

		imux17: i2c@1 {
			#address-cells = <1>;
			#size-cells = <0>;
			reg = <1>;

			eeprom@50 {
				compatible = "atmel,24c128";
				reg = <0x50>;
			};

			pwm@5e{
				compatible = "max31790";
				reg = <0x5e>;
				#address-cells = <1>;
				#size-cells = <0>;
			};
		};

		imux18: i2c@2 {
			#address-cells = <1>;
			#size-cells = <0>;
			reg = <2>;

			eeprom@50 {
				compatible = "atmel,24c128";
				reg = <0x50>;
			};

			pwm@5e{
				compatible = "max31790";
				reg = <0x5e>;
				#address-cells = <1>;
				#size-cells = <0>;
			};
		};

		imux19: i2c@3 {
			#address-cells = <1>;
			#size-cells = <0>;
			reg = <3>;

			eeprom@50 {
				compatible = "atmel,24c128";
				reg = <0x50>;
			};

			pwm@5e{
				compatible = "max31790";
				reg = <0x5e>;
				#address-cells = <1>;
				#size-cells = <0>;
			};
		};

		imux20: i2c@4 {
			#address-cells = <1>;
			#size-cells = <0>;
			reg = <4>;

			eeprom@50 {
				compatible = "atmel,24c128";
				reg = <0x50>;
			};

			pwm@5e{
				compatible = "max31790";
				reg = <0x5e>;
				#address-cells = <1>;
				#size-cells = <0>;
			};
		};

		imux21: i2c@5 {
			#address-cells = <1>;
			#size-cells = <0>;
			reg = <5>;

			eeprom@50 {
				compatible = "atmel,24c128";
				reg = <0x50>;
			};

			pwm@5e{
				compatible = "max31790";
				reg = <0x5e>;
				#address-cells = <1>;
				#size-cells = <0>;
			};
		};
	};
};

&i2c3 {
	status = "okay";
};

&i2c4 {
	status = "okay";
};

&i2c5 {
	status = "okay";
};

&i2c6 {
	status = "okay";
};

&i2c7 {
	status = "okay";
};

&i2c8 {
	status = "okay";
};

&i2c9 {
	status = "okay";
};

&i2c10 {
	status = "okay";
};

&i2c11 {
	status = "okay";
};

&i2c12 {
	status = "okay";
};

&i2c13 {
	status = "okay";
};

&i2c14 {
	status = "okay";
	multi-master;

	ipmb@10 {
		compatible = "ipmb-dev";
		reg = <(0x10 | I2C_OWN_SLAVE_ADDRESS)>;
		i2c-protocol;
	};
};

&i2c15 {
	status = "okay";

	eeprom@50 {
		compatible = "atmel,24c128";
		reg = <0x50>;
	};
};

&adc0 {
	aspeed,int-vref-microvolt = <2500000>;
	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 {
	aspeed,int-vref-microvolt = <2500000>;
	status = "okay";
	pinctrl-0 = <&pinctrl_adc10_default>;
};

&ehci1 {
	status = "okay";
};

&uhci {
	status = "okay";
};

&gpio0 {
	gpio-line-names =
	/*A0-A7*/	"","","","","","","","",
	/*B0-B7*/	"","","","","","","","",
	/*C0-C7*/	"","","","","BLADE_UART_SEL2","","","",
	/*D0-D7*/	"","","","","","","","",
	/*E0-E7*/	"","","","","","","","",
	/*F0-F7*/	"","","","","","","","",
	/*G0-G7*/	"","","","","","","","",
	/*H0-H7*/	"","","","","","","","",
	/*I0-I7*/	"","","","","","","","",
	/*J0-J7*/	"","","","","","","","",
	/*K0-K7*/	"","","","","","","","",
	/*L0-L7*/	"","","","","BLADE_UART_SEL0","","","",
	/*M0-M7*/	"","","","","","BLADE_UART_SEL1","","",
	/*N0-N7*/	"","","","","","","","",
	/*O0-O7*/	"","","","","","","","",
	/*P0-P7*/	"","","","","","","","",
	/*Q0-Q7*/	"","","","","","","","",
	/*R0-R7*/	"","","","","","","","",
	/*S0-S7*/	"","","","","","","","",
	/*T0-T7*/	"","","","","","","","",
	/*U0-U7*/	"","","","","","","","",
	/*V0-V7*/	"","","","","BAT_DETECT","","","",
	/*W0-W7*/	"","","","","","","","",
	/*X0-X7*/	"","","BLADE_UART_SEL3","","","","","",
	/*Y0-Y7*/	"","","","","","","","",
	/*Z0-Z7*/	"","","","","","","","";
};

&sgpiom0 {
	gpio-line-names =
	/*"input pin","output pin"*/
	/*A0 - A7*/
	"PRSNT_MTIA_BLADE0_N","PWREN_MTIA_BLADE0_EN",
	"PRSNT_MTIA_BLADE1_N","PWREN_MTIA_BLADE1_EN",
	"PRSNT_MTIA_BLADE2_N","PWREN_MTIA_BLADE2_EN",
	"PRSNT_MTIA_BLADE3_N","PWREN_MTIA_BLADE3_EN",
	"PRSNT_MTIA_BLADE4_N","PWREN_MTIA_BLADE4_EN",
	"PRSNT_MTIA_BLADE5_N","PWREN_MTIA_BLADE5_EN",
	"PRSNT_MTIA_BLADE6_N","PWREN_MTIA_BLADE6_EN",
	"PRSNT_MTIA_BLADE7_N","PWREN_MTIA_BLADE7_EN",
	/*B0 - B7*/
	"PRSNT_MTIA_BLADE8_N","PWREN_MTIA_BLADE8_EN",
	"PRSNT_MTIA_BLADE9_N","PWREN_MTIA_BLADE9_EN",
	"PRSNT_MTIA_BLADE10_N","PWREN_MTIA_BLADE10_EN",
	"PRSNT_MTIA_BLADE11_N","PWREN_MTIA_BLADE11_EN",
	"PRSNT_MTIA_BLADE12_N","PWREN_MTIA_BLADE12_EN",
	"PRSNT_MTIA_BLADE13_N","PWREN_MTIA_BLADE13_EN",
	"PRSNT_MTIA_BLADE14_N","PWREN_MTIA_BLADE14_EN",
	"PRSNT_MTIA_BLADE15_N","PWREN_MTIA_BLADE15_EN",
	/*C0 - C7*/
	"PRSNT_NW_BLADE0_N","PWREN_NW_BLADE0_EN",
	"PRSNT_NW_BLADE1_N","PWREN_NW_BLADE1_EN",
	"PRSNT_NW_BLADE2_N","PWREN_NW_BLADE2_EN",
	"PRSNT_NW_BLADE3_N","PWREN_NW_BLADE3_EN",
	"PRSNT_NW_BLADE4_N","PWREN_NW_BLADE4_EN",
	"PRSNT_NW_BLADE5_N","PWREN_NW_BLADE5_EN",
	"PRSNT_FCB_TOP_0_N","PWREN_MTIA_BLADE0_HSC_EN",
	"PRSNT_FCB_TOP_1_N","PWREN_MTIA_BLADE1_HSC_EN",
	/*D0 - D7*/
	"PRSNT_FCB_MIDDLE_0_N","PWREN_MTIA_BLADE2_HSC_EN",
	"PRSNT_FCB_MIDDLE_1_N","PWREN_MTIA_BLADE3_HSC_EN",
	"PRSNT_FCB_BOTTOM_0_N","PWREN_MTIA_BLADE4_HSC_EN",
	"PRSNT_FCB_BOTTOM_1_N","PWREN_MTIA_BLADE5_HSC_EN",
	"PWRGD_MTIA_BLADE0_PWROK_L_BUF","PWREN_MTIA_BLADE6_HSC_EN",
	"PWRGD_MTIA_BLADE1_PWROK_L_BUF","PWREN_MTIA_BLADE7_HSC_EN",
	"PWRGD_MTIA_BLADE2_PWROK_L_BUF","PWREN_MTIA_BLADE8_HSC_EN",
	"PWRGD_MTIA_BLADE3_PWROK_L_BUF","PWREN_MTIA_BLADE9_HSC_EN",
	/*E0 - E7*/
	"PWRGD_MTIA_BLADE4_PWROK_L_BUF","PWREN_MTIA_BLADE10_HSC_EN",
	"PWRGD_MTIA_BLADE5_PWROK_L_BUF","PWREN_MTIA_BLADE11_HSC_EN",
	"PWRGD_MTIA_BLADE6_PWROK_L_BUF","PWREN_MTIA_BLADE12_HSC_EN",
	"PWRGD_MTIA_BLADE7_PWROK_L_BUF","PWREN_MTIA_BLADE13_HSC_EN",
	"PWRGD_MTIA_BLADE8_PWROK_L_BUF","PWREN_MTIA_BLADE14_HSC_EN",
	"PWRGD_MTIA_BLADE9_PWROK_L_BUF","PWREN_MTIA_BLADE15_HSC_EN",
	"PWRGD_MTIA_BLADE10_PWROK_L_BUF","PWREN_NW_BLADE0_HSC_EN",
	"PWRGD_MTIA_BLADE11_PWROK_L_BUF","PWREN_NW_BLADE1_HSC_EN",
	/*F0 - F7*/
	"PWRGD_MTIA_BLADE12_PWROK_L_BUF","PWREN_NW_BLADE2_HSC_EN",
	"PWRGD_MTIA_BLADE13_PWROK_L_BUF","PWREN_NW_BLADE3_HSC_EN",
	"PWRGD_MTIA_BLADE14_PWROK_L_BUF","PWREN_NW_BLADE4_HSC_EN",
	"PWRGD_MTIA_BLADE15_PWROK_L_BUF","PWREN_NW_BLADE5_HSC_EN",
	"PWRGD_NW_BLADE0_PWROK_L_BUF","PWREN_FCB_TOP_L_EN",
	"PWRGD_NW_BLADE1_PWROK_L_BUF","PWREN_FCB_TOP_R_EN",
	"PWRGD_NW_BLADE2_PWROK_L_BUF","PWREN_FCB_MIDDLE_L_EN",
	"PWRGD_NW_BLADE3_PWROK_L_BUF","PWREN_FCB_MIDDLE_R_EN",
	/*G0 - G7*/
	"PWRGD_NW_BLADE4_PWROK_L_BUF","PWREN_FCB_BOTTOM_L_EN",
	"PWRGD_NW_BLADE5_PWROK_L_BUF","PWREN_FCB_BOTTOM_R_EN",
	"PWRGD_FCB_TOP_0_PWROK_L_BUF","FM_CMM_AC_CYCLE_N",
	"PWRGD_FCB_TOP_1_PWROK_L_BUF","MGMT_SFP_TX_DIS",
	"PWRGD_FCB_MIDDLE_0_PWROK_L_BUF","",
	"PWRGD_FCB_MIDDLE_1_PWROK_L_BUF","RST_I2CRST_MTIA_BLADE0_1_N",
	"PWRGD_FCB_BOTTOM_0_PWROK_L_BUF","RST_I2CRST_MTIA_BLADE2_3_N",
	"PWRGD_FCB_BOTTOM_1_PWROK_L_BUF","RST_I2CRST_MTIA_BLADE4_5_N",
	/*H0 - H7*/
	"LEAK_DETECT_MTIA_BLADE0_N_BUF","RST_I2CRST_MTIA_BLADE6_7_N",
	"LEAK_DETECT_MTIA_BLADE1_N_BUF","RST_I2CRST_MTIA_BLADE8_9_N",
	"LEAK_DETECT_MTIA_BLADE2_N_BUF","RST_I2CRST_MTIA_BLADE10_11_N",
	"LEAK_DETECT_MTIA_BLADE3_N_BUF","RST_I2CRST_MTIA_BLADE12_13_N",
	"LEAK_DETECT_MTIA_BLADE4_N_BUF","RST_I2CRST_MTIA_BLADE14_15_N",
	"LEAK_DETECT_MTIA_BLADE5_N_BUF","RST_I2CRST_NW_BLADE0_1_2_N",
	"LEAK_DETECT_MTIA_BLADE6_N_BUF","RST_I2CRST_NW_BLADE3_4_5_N",
	"LEAK_DETECT_MTIA_BLADE7_N_BUF","RST_I2CRST_FCB_N",
	/*I0 - I7*/
	"LEAK_DETECT_MTIA_BLADE8_N_BUF","RST_I2CRST_FCB_B_L_N",
	"LEAK_DETECT_MTIA_BLADE9_N_BUF","RST_I2CRST_FCB_B_R_N",
	"LEAK_DETECT_MTIA_BLADE10_N_BUF","RST_I2CRST_FCB_M_L_N",
	"LEAK_DETECT_MTIA_BLADE11_N_BUF","RST_I2CRST_FCB_M_R_N",
	"LEAK_DETECT_MTIA_BLADE12_N_BUF","RST_I2CRST_FCB_T_L_N",
	"LEAK_DETECT_MTIA_BLADE13_N_BUF","RST_I2CRST_FCB_T_R_N",
	"LEAK_DETECT_MTIA_BLADE14_N_BUF","BMC_READY",
	"LEAK_DETECT_MTIA_BLADE15_N_BUF","wFM_88E6393X_BIN_UPDATE_EN_N",
	/*J0 - J7*/
	"LEAK_DETECT_NW_BLADE0_N_BUF","WATER_VALVE_CLOSED_N",
	"LEAK_DETECT_NW_BLADE1_N_BUF","",
	"LEAK_DETECT_NW_BLADE2_N_BUF","",
	"LEAK_DETECT_NW_BLADE3_N_BUF","",
	"LEAK_DETECT_NW_BLADE4_N_BUF","",
	"LEAK_DETECT_NW_BLADE5_N_BUF","",
	"MTIA_BLADE0_STATUS_LED","",
	"MTIA_BLADE1_STATUS_LED","",
	/*K0 - K7*/
	"MTIA_BLADE2_STATUS_LED","",
	"MTIA_BLADE3_STATUS_LED","",
	"MTIA_BLADE4_STATUS_LED","",
	"MTIA_BLADE5_STATUS_LED","",
	"MTIA_BLADE6_STATUS_LED","",
	"MTIA_BLADE7_STATUS_LED","",
	"MTIA_BLADE8_STATUS_LED","",
	"MTIA_BLADE9_STATUS_LED","",
	/*L0 - L7*/
	"MTIA_BLADE10_STATUS_LED","",
	"MTIA_BLADE11_STATUS_LED","",
	"MTIA_BLADE12_STATUS_LED","",
	"MTIA_BLADE13_STATUS_LED","",
	"MTIA_BLADE14_STATUS_LED","",
	"MTIA_BLADE15_STATUS_LED","",
	"NW_BLADE0_STATUS_LED","",
	"NW_BLADE1_STATUS_LED","",
	/*M0 - M7*/
	"NW_BLADE2_STATUS_LED","",
	"NW_BLADE3_STATUS_LED","",
	"NW_BLADE4_STATUS_LED","",
	"NW_BLADE5_STATUS_LED","",
	"RPU_READY","",
	"IT_GEAR_RPU_LINK_N","",
	"IT_GEAR_LEAK","",
	"WATER_VALVE_CLOSED_N","",
	/*N0 - N7*/
	"VALVE_STS0","",
	"VALVE_STS1","",
	"VALVE_STS2","",
	"VALVE_STS3","",
	"CR_TOGGLE_BOOT_BUF_N","",
	"CMM_LC_RDY_LED_N","",
	"CMM_LC_UNRDY_LED_N","",
	"CMM_CABLE_CARTRIDGE_PRSNT_BOT_N","",
	/*O0 - O7*/
	"CMM_CABLE_CARTRIDGE_PRSNT_TOP_N","",
	"BOT_BCB_CABLE_PRSNT_N","",
	"TOP_BCB_CABLE_PRSNT_N","",
	"CHASSIS0_LEAK_Q_N","",
	"CHASSIS1_LEAK_Q_N","",
	"LEAK0_DETECT","",
	"LEAK1_DETECT","",
	"MGMT_SFP_PRSNT_N","",
	/*P0 - P7*/
	"MGMT_SFP_TX_FAULT","",
	"MGMT_SFP_RX_LOS","",
	"","",
	"","",
	"","",
	"","",
	"","",
	"","";
};