[PATCH v4] ARM: dts: aspeed: Adding Facebook Yosemite V3.5 BMC

Zev Weiss zweiss at equinix.com
Thu Jul 21 09:16:31 AEST 2022


On Wed, Jul 20, 2022 at 03:53:31AM PDT, Logananth Sundararaj wrote:
>The Yosemite V3.5 is a facebook multi-node server
>platform that host four OCP server. The BMC
>in the Yosemite V3.5 platform based on AST2600 SoC.
>
>This patch adds linux device tree entry related to
>Yosemite V3.5 specific devices connected to BMC SoC.
>
>Signed-off-by: Logananth Sundararaj <logananth_s at hcl.com>
>
>---
>--- v4 - Bootagrs and memory removed.
>--- v3 - Addressed v2 patch comments.
>--- v2 - Enabled i2c drivers.
>--- v1 - Initial draft.
>---
>---
> arch/arm/boot/dts/Makefile                    |   1 +
> .../boot/dts/aspeed-bmc-facebook-fby35.dts    | 260 ++++++++++++++++++
> 2 files changed, 261 insertions(+)
> create mode 100644 arch/arm/boot/dts/aspeed-bmc-facebook-fby35.dts
>
>diff --git a/arch/arm/boot/dts/Makefile b/arch/arm/boot/dts/Makefile
>index 7e0934180724..58add093e5fb 100644
>--- a/arch/arm/boot/dts/Makefile
>+++ b/arch/arm/boot/dts/Makefile
>@@ -1465,6 +1465,7 @@ dtb-$(CONFIG_ARCH_ASPEED) += \
> 	aspeed-bmc-facebook-cloudripper.dtb \
> 	aspeed-bmc-facebook-cmm.dtb \
> 	aspeed-bmc-facebook-elbert.dtb \
>+	aspeed-bmc-facebook-fby35.dtb \
> 	aspeed-bmc-facebook-fuji.dtb \
> 	aspeed-bmc-facebook-galaxy100.dtb \
> 	aspeed-bmc-facebook-minipack.dtb \
>diff --git a/arch/arm/boot/dts/aspeed-bmc-facebook-fby35.dts b/arch/arm/boot/dts/aspeed-bmc-facebook-fby35.dts
>new file mode 100644
>index 000000000000..05efba7117a8
>--- /dev/null
>+++ b/arch/arm/boot/dts/aspeed-bmc-facebook-fby35.dts
>@@ -0,0 +1,260 @@
>+// SPDX-License-Identifier: GPL-2.0-or-later
>+// Copyright (c) 2020 Facebook Inc.
>+
>+/dts-v1/;
>+
>+#include "aspeed-g6.dtsi"
>+#include <dt-bindings/gpio/aspeed-gpio.h>
>+#include <dt-bindings/i2c/i2c.h>
>+
>+/ {
>+	model = "Facebook fby35";
>+	compatible = "facebook,fby35", "aspeed,ast2600";
>+
>+	aliases {
>+		serial4 = &uart5;
>+	};
>+
>+	chosen {
>+		stdout-path = &uart5;
>+	};
>+
>+	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>;
>+	};

A blank line here would be nice for formatting consistency...

>+	spi_gpio: spi-gpio {
>+		status = "okay";
>+		compatible = "spi-gpio";
>+		#address-cells = <1>;
>+		#size-cells = <0>;
>+
>+		gpio-sck = <&gpio0 ASPEED_GPIO(X, 3) GPIO_ACTIVE_HIGH>;
>+		gpio-mosi = <&gpio0 ASPEED_GPIO(X, 4) GPIO_ACTIVE_HIGH>;
>+		gpio-miso = <&gpio0 ASPEED_GPIO(X, 5) GPIO_ACTIVE_HIGH>;
>+		num-chipselects = <1>;
>+		cs-gpios = <&gpio0 ASPEED_GPIO(X, 0) GPIO_ACTIVE_LOW>;
>+
>+		tpmdev at 0 {
>+			compatible = "tcg,tpm_tis-spi";
>+			spi-max-frequency = <33000000>;
>+			reg = <0>;
>+		};
>+	};
>+

...and this one could be removed.

>+};
>+
>+&mac3 {
>+	status = "okay";
>+
>+	pinctrl-names = "default";
>+	pinctrl-0 = <&pinctrl_rmii4_default>;
>+	no-hw-checksum;
>+	use-ncsi;
>+	mlx,multi-host;
>+	ncsi-ctrl,start-redo-probe;
>+	ncsi-ctrl,no-channel-monitor;
>+	ncsi-package = <1>;
>+	ncsi-channel = <1>;
>+	ncsi-rexmit = <1>;
>+	ncsi-timeout = <2>;
>+};
>+
>+&uart1 {
>+	status = "okay";
>+};
>+
>+&uart2 {
>+	status = "okay";
>+};
>+
>+&uart3 {
>+	status = "okay";
>+};
>+
>+&uart4 {
>+	status = "okay";
>+};
>+
>+&uart5 {
>+	status = "okay";
>+	compatible = "snps,dw-apb-uart";
>+};
>+
>+&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>;
>+};
>+
>+&rtc {
>+	status = "okay";
>+};
>+
>+&fmc {
>+	status = "okay";
>+	flash at 0 {
>+		status = "okay";
>+		m25p,fast-read;
>+		label = "spi0.1";
>+		spi-max-frequency = <50000000>;
>+		#include "openbmc-flash-layout-128.dtsi"
>+	};
>+	flash at 1 {
>+		status = "okay";
>+		m25p,fast-read;
>+		label = "spi0.0";
>+		spi-max-frequency = <50000000>;
>+		#include "openbmc-flash-layout.dtsi"
>+	};

The labels on these look backwards from what I'd guess was probably
intended (flash at 0 is spi0.1 and flash at 1 is spi0.0).

>+};
>+
>+&i2c0 {
>+	//Host1 IPMB bus

While it's not currently 100% consistent, I think the generally
preferred style is to put a space after '//' (here and elsewhere).

>+	status = "okay";
>+	multi-master;
>+	ipmb0 at 10 {
>+		compatible = "ipmb-dev";
>+		reg = <(0x10 | I2C_OWN_SLAVE_ADDRESS)>;
>+		i2c-protocol;
>+	};
>+};
>+
>+&i2c1 {
>+	//Host2 IPMB bus
>+	status = "okay";
>+	multi-master;
>+	ipmb1 at 10 {
>+		compatible = "ipmb-dev";
>+		reg = <(0x10 | I2C_OWN_SLAVE_ADDRESS)>;
>+		i2c-protocol;
>+	};
>+};
>+
>+&i2c2 {
>+	//Host3 IPMB bus
>+	status = "okay";
>+	multi-master;
>+	ipmb2 at 10 {
>+		compatible = "ipmb-dev";
>+		reg = <(0x10 | I2C_OWN_SLAVE_ADDRESS)>;
>+		i2c-protocol;
>+	};
>+};
>+
>+&i2c3 {
>+	//Host1 IPMB bus
>+	status = "okay";
>+	multi-master;
>+	ipmb3 at 10 {
>+		compatible = "ipmb-dev";
>+		reg = <(0x10 | I2C_OWN_SLAVE_ADDRESS)>;
>+		i2c-protocol;
>+	};
>+};
>+
>+&i2c4 {
>+	status = "okay";
>+};
>+
>+&i2c5 {
>+	status = "okay";
>+};
>+
>+&i2c6 {
>+	status = "okay";
>+};
>+
>+&i2c7 {
>+	status = "okay";
>+};
>+
>+&i2c8 {
>+	//NIC SENSOR TEMP
>+	status = "okay";
>+	tmp421 at 1f {
>+		compatible = "ti,tmp421";
>+		reg = <0x1f>;
>+	};
>+};
>+
>+&i2c9 {
>+	// Debug-Card IPMB bus
>+	status = "okay";
>+	multi-master;
>+	ipmb9 at 30 {
>+		compatible = "ipmb-dev";
>+		reg = <(0x30 | I2C_OWN_SLAVE_ADDRESS)>;
>+		i2c-protocol;
>+	};
>+};
>+
>+&i2c10 {
>+	status = "okay";
>+};
>+
>+&i2c11 {
>+	status = "okay";
>+	//FRU EEPROM
>+	eeprom at 51 {
>+		compatible = "atmel,24c64";
>+		reg = <0x51>;
>+		pagesize = <32>;
>+	};
>+};
>+
>+&i2c12 {
>+	status = "okay";
>+	//INLET TEMP
>+	tmp75 at 4e {
>+		compatible = "ti,tmp75";
>+		reg = <0x4e>;
>+	};
>+	//OUTLET TEMP
>+	tmp75 at 4f {
>+		compatible = "ti,tmp75";
>+		reg = <0x4f>;
>+	};
>+};
>+
>+&i2c13 {
>+	status = "okay";
>+};
>+
>+&adc0 {
>+	ref_voltage = <2500>;
>+	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 {
>+	ref_voltage = <2500>;
>+	status = "okay";
>+
>+	pinctrl-0 = <&pinctrl_adc8_default &pinctrl_adc9_default
>+		&pinctrl_adc10_default &pinctrl_adc11_default
>+		&pinctrl_adc12_default &pinctrl_adc13_default>;
>+};

Missing blank line.

>+&ehci0 {
>+	status = "okay";
>+};
>+
>+&ehci1 {
>+	status = "okay";
>+};
>+
>+&uhci {
>+	status = "okay";
>+};
>-- 
>2.17.1
>


More information about the Linux-aspeed mailing list