ARM: dts: aspeed: Add Facebook Cloudripper (AST2600) BMC
authorTao Ren <rentao.bupt@gmail.com>
Thu, 5 Aug 2021 22:28:16 +0000 (15:28 -0700)
committerJoel Stanley <joel@jms.id.au>
Fri, 13 Aug 2021 01:32:11 +0000 (11:02 +0930)
Add initial version of device tree for Facebook Cloudripper (AST2600) BMC.

Cloudripper is Facebook's next generation switch platform with an AST2600
BMC integrated for health monitoring purpose.

Signed-off-by: Tao Ren <rentao.bupt@gmail.com>
Signed-off-by: Joel Stanley <joel@jms.id.au>
Link: https://lore.kernel.org/r/20210805222818.8391-5-rentao.bupt@gmail.com
Signed-off-by: Joel Stanley <joel@jms.id.au>
arch/arm/boot/dts/Makefile
arch/arm/boot/dts/aspeed-bmc-facebook-cloudripper.dts [new file with mode: 0644]

index 3897ad8e8d9dd4a965785cfd29327bb86758d58d..da19be093c51de0f836b2ea4de223bc45f5cf68c 100644 (file)
@@ -1433,6 +1433,7 @@ dtb-$(CONFIG_ARCH_ASPEED) += \
        aspeed-bmc-arm-stardragon4800-rep2.dtb \
        aspeed-bmc-asrock-e3c246d4i.dtb \
        aspeed-bmc-bytedance-g220a.dtb \
+       aspeed-bmc-facebook-cloudripper.dtb \
        aspeed-bmc-facebook-cmm.dtb \
        aspeed-bmc-facebook-galaxy100.dtb \
        aspeed-bmc-facebook-minipack.dtb \
diff --git a/arch/arm/boot/dts/aspeed-bmc-facebook-cloudripper.dts b/arch/arm/boot/dts/aspeed-bmc-facebook-cloudripper.dts
new file mode 100644 (file)
index 0000000..01ec3ce
--- /dev/null
@@ -0,0 +1,539 @@
+// SPDX-License-Identifier: GPL-2.0+
+// Copyright (c) 2020 Facebook Inc.
+
+/dts-v1/;
+
+#include <dt-bindings/leds/common.h>
+#include "ast2600-facebook-netbmc-common.dtsi"
+
+/ {
+       model = "Facebook Cloudripper BMC";
+       compatible = "facebook,cloudripper-bmc", "aspeed,ast2600";
+
+       aliases {
+               /*
+                * PCA9548 (1-0070) provides 8 channels connecting to
+                * SMB (Switch Main Board).
+                */
+               i2c16 = &imux16;
+               i2c17 = &imux17;
+               i2c18 = &imux18;
+               i2c19 = &imux19;
+               i2c20 = &imux20;
+               i2c21 = &imux21;
+               i2c22 = &imux22;
+               i2c23 = &imux23;
+
+               /*
+                * PCA9548 (2-0070) provides 8 channels connecting to
+                * SCM (System Controller Module).
+                */
+               i2c24 = &imux24;
+               i2c25 = &imux25;
+               i2c26 = &imux26;
+               i2c27 = &imux27;
+               i2c28 = &imux28;
+               i2c29 = &imux29;
+               i2c30 = &imux30;
+               i2c31 = &imux31;
+
+               /*
+                * PCA9548 (3-0070) provides 8 channels connecting to
+                * SMB (Switch Main Board).
+                */
+               i2c32 = &imux32;
+               i2c33 = &imux33;
+               i2c34 = &imux34;
+               i2c35 = &imux35;
+               i2c36 = &imux36;
+               i2c37 = &imux37;
+               i2c38 = &imux38;
+               i2c39 = &imux39;
+
+               /*
+                * PCA9548 (8-0070) provides 8 channels connecting to
+                * PDB (Power Delivery Board).
+                */
+               i2c40 = &imux40;
+               i2c41 = &imux41;
+               i2c42 = &imux42;
+               i2c43 = &imux43;
+               i2c44 = &imux44;
+               i2c45 = &imux45;
+               i2c46 = &imux46;
+               i2c47 = &imux47;
+
+               /*
+                * PCA9548 (15-0076) provides 8 channels connecting to
+                * FCM (Fan Controller Module).
+                */
+               i2c48 = &imux48;
+               i2c49 = &imux49;
+               i2c50 = &imux50;
+               i2c51 = &imux51;
+               i2c52 = &imux52;
+               i2c53 = &imux53;
+               i2c54 = &imux54;
+               i2c55 = &imux55;
+       };
+
+       spi_gpio: spi-gpio {
+               num-chipselects = <2>;
+               cs-gpios = <&gpio0 ASPEED_GPIO(X, 0) GPIO_ACTIVE_LOW>,
+                          <&gpio0 ASPEED_GPIO(X, 1) GPIO_ACTIVE_HIGH>;
+
+               eeprom@1 {
+                       compatible = "atmel,at93c46d";
+                       spi-max-frequency = <250000>;
+                       data-size = <16>;
+                       spi-cs-high;
+                       reg = <1>;
+               };
+       };
+};
+
+&ehci1 {
+       status = "okay";
+};
+
+&mdio1 {
+       status = "okay";
+};
+
+&mdio3 {
+       status = "okay";
+
+       ethphy1: ethernet-phy@13 {
+               compatible = "ethernet-phy-ieee802.3-c22";
+               reg = <0x0d>;
+       };
+};
+
+&mac3 {
+       status = "okay";
+       phy-mode = "rgmii";
+       phy-handle = <&ethphy1>;
+       pinctrl-names = "default";
+       pinctrl-0 = <&pinctrl_rgmii4_default>;
+};
+
+&i2c0 {
+       multi-master;
+       bus-frequency = <1000000>;
+};
+
+&i2c1 {
+       /*
+        * PCA9548 (1-0070) provides 8 channels connecting to SMB (Switch
+        * Main Board).
+        */
+       i2c-switch@70 {
+               compatible = "nxp,pca9548";
+               #address-cells = <1>;
+               #size-cells = <0>;
+               reg = <0x70>;
+               i2c-mux-idle-disconnect;
+
+               imux16: i2c@0 {
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       reg = <0>;
+               };
+
+               imux17: i2c@1 {
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       reg = <1>;
+               };
+
+               imux18: i2c@2 {
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       reg = <2>;
+               };
+
+               imux19: i2c@3 {
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       reg = <3>;
+               };
+
+               imux20: i2c@4 {
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       reg = <4>;
+               };
+
+               imux21: i2c@5 {
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       reg = <5>;
+               };
+
+               imux22: i2c@6 {
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       reg = <6>;
+               };
+
+               imux23: i2c@7 {
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       reg = <7>;
+               };
+       };
+};
+
+&i2c2 {
+       /*
+        * PCA9548 (2-0070) provides 8 channels connecting to SCM (System
+        * Controller Module).
+        */
+       i2c-switch@70 {
+               compatible = "nxp,pca9548";
+               #address-cells = <1>;
+               #size-cells = <0>;
+               reg = <0x70>;
+               i2c-mux-idle-disconnect;
+
+               imux24: i2c@0 {
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       reg = <0>;
+               };
+
+               imux25: i2c@1 {
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       reg = <1>;
+               };
+
+               imux26: i2c@2 {
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       reg = <2>;
+               };
+
+               imux27: i2c@3 {
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       reg = <3>;
+               };
+
+               imux28: i2c@4 {
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       reg = <4>;
+               };
+
+               imux29: i2c@5 {
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       reg = <5>;
+               };
+
+               imux30: i2c@6 {
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       reg = <6>;
+               };
+
+               imux31: i2c@7 {
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       reg = <7>;
+               };
+       };
+};
+
+&i2c3 {
+       /*
+        * PCA9548 (3-0070) provides 8 channels connecting to SMB (Switch
+        * Main Board).
+        */
+       i2c-switch@70 {
+               compatible = "nxp,pca9548";
+               #address-cells = <1>;
+               #size-cells = <0>;
+               reg = <0x70>;
+               i2c-mux-idle-disconnect;
+
+               imux32: i2c@0 {
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       reg = <0>;
+               };
+
+               imux33: i2c@1 {
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       reg = <1>;
+               };
+
+               imux34: i2c@2 {
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       reg = <2>;
+               };
+
+               imux35: i2c@3 {
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       reg = <3>;
+               };
+
+               imux36: i2c@4 {
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       reg = <4>;
+               };
+
+               imux37: i2c@5 {
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       reg = <5>;
+               };
+
+               imux38: i2c@6 {
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       reg = <6>;
+               };
+
+               imux39: i2c@7 {
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       reg = <7>;
+               };
+       };
+};
+
+&i2c6 {
+       lp5012@14 {
+               compatible = "ti,lp5012";
+               reg = <0x14>;
+               #address-cells = <1>;
+               #size-cells = <0>;
+
+               multi-led@0 {
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       reg = <0>;
+                       color = <LED_COLOR_ID_MULTI>;
+                       function = LED_FUNCTION_ACTIVITY;
+                       label = "sys";
+
+                       led@0 {
+                               reg = <0>;
+                               color = <LED_COLOR_ID_RED>;
+                       };
+
+                       led@1 {
+                               reg = <1>;
+                               color = <LED_COLOR_ID_BLUE>;
+                       };
+
+                       led@2 {
+                               reg = <2>;
+                               color = <LED_COLOR_ID_GREEN>;
+                       };
+               };
+
+               multi-led@1 {
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       reg = <1>;
+                       color = <LED_COLOR_ID_MULTI>;
+                       function = LED_FUNCTION_ACTIVITY;
+                       label = "fan";
+
+                       led@0 {
+                               reg = <0>;
+                               color = <LED_COLOR_ID_RED>;
+                       };
+
+                       led@1 {
+                               reg = <1>;
+                               color = <LED_COLOR_ID_BLUE>;
+                       };
+
+                       led@2 {
+                               reg = <2>;
+                               color = <LED_COLOR_ID_GREEN>;
+                       };
+               };
+
+               multi-led@2 {
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       reg = <2>;
+                       color = <LED_COLOR_ID_MULTI>;
+                       function = LED_FUNCTION_ACTIVITY;
+                       label = "psu";
+
+                       led@0 {
+                               reg = <0>;
+                               color = <LED_COLOR_ID_RED>;
+                       };
+
+                       led@1 {
+                               reg = <1>;
+                               color = <LED_COLOR_ID_BLUE>;
+                       };
+
+                       led@2 {
+                               reg = <2>;
+                               color = <LED_COLOR_ID_GREEN>;
+                       };
+               };
+
+               multi-led@3 {
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       reg = <3>;
+                       color = <LED_COLOR_ID_MULTI>;
+                       function = LED_FUNCTION_ACTIVITY;
+                       label = "scm";
+
+                       led@0 {
+                               reg = <0>;
+                               color = <LED_COLOR_ID_RED>;
+                       };
+
+                       led@1 {
+                               reg = <1>;
+                               color = <LED_COLOR_ID_BLUE>;
+                       };
+
+                       led@2 {
+                               reg = <2>;
+                               color = <LED_COLOR_ID_GREEN>;
+                       };
+               };
+       };
+};
+
+&i2c8 {
+       /*
+        * PCA9548 (8-0070) provides 8 channels connecting to PDB (Power
+        * Delivery Board).
+        */
+       i2c-switch@70 {
+               compatible = "nxp,pca9548";
+               #address-cells = <1>;
+               #size-cells = <0>;
+               reg = <0x70>;
+               i2c-mux-idle-disconnect;
+
+               imux40: i2c@0 {
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       reg = <0>;
+               };
+
+               imux41: i2c@1 {
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       reg = <1>;
+               };
+
+               imux42: i2c@2 {
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       reg = <2>;
+               };
+
+               imux43: i2c@3 {
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       reg = <3>;
+               };
+
+               imux44: i2c@4 {
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       reg = <4>;
+               };
+
+               imux45: i2c@5 {
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       reg = <5>;
+               };
+
+               imux46: i2c@6 {
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       reg = <6>;
+               };
+
+               imux47: i2c@7 {
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       reg = <7>;
+               };
+
+       };
+};
+
+&i2c15 {
+       /*
+        * PCA9548 (15-0076) provides 8 channels connecting to FCM (Fan
+        * Controller Module).
+        */
+       i2c-switch@76 {
+               compatible = "nxp,pca9548";
+               #address-cells = <1>;
+               #size-cells = <0>;
+               reg = <0x76>;
+               i2c-mux-idle-disconnect;
+
+               imux48: i2c@0 {
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       reg = <0>;
+               };
+
+               imux49: i2c@1 {
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       reg = <1>;
+               };
+
+               imux50: i2c@2 {
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       reg = <2>;
+               };
+
+               imux51: i2c@3 {
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       reg = <3>;
+               };
+
+               imux52: i2c@4 {
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       reg = <4>;
+               };
+
+               imux53: i2c@5 {
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       reg = <5>;
+               };
+
+               imux54: i2c@6 {
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       reg = <6>;
+               };
+
+               imux55: i2c@7 {
+                       #address-cells = <1>;
+                       #size-cells = <0>;
+                       reg = <7>;
+               };
+       };
+};