1 // SPDX-License-Identifier: GPL-2.0+
2 // Copyright (c) 2021 Facebook Inc.
5 #include "aspeed-g6.dtsi"
6 #include <dt-bindings/gpio/aspeed-gpio.h>
7 #include <dt-bindings/usb/pd.h>
8 #include <dt-bindings/leds/leds-pca955x.h>
9 #include <dt-bindings/interrupt-controller/irq.h>
10 #include <dt-bindings/i2c/i2c.h>
13 model = "Facebook Bletchley BMC";
14 compatible = "facebook,bletchley-bmc", "aspeed,ast2600";
21 bootargs = "console=ttyS4,57600n8";
25 device_type = "memory";
26 reg = <0x80000000 0x80000000>;
30 compatible = "iio-hwmon";
31 io-channels = <&adc0 0>, <&adc0 1>, <&adc0 2>, <&adc0 3>,
32 <&adc0 4>, <&adc0 5>, <&adc0 6>, <&adc0 7>,
33 <&adc1 0>, <&adc1 1>, <&adc1 2>, <&adc1 3>,
34 <&adc1 4>, <&adc1 5>, <&adc1 6>, <&adc1 7>;
37 spi1_gpio: spi1-gpio {
38 compatible = "spi-gpio";
42 gpio-sck = <&gpio0 ASPEED_GPIO(Z, 3) GPIO_ACTIVE_HIGH>;
43 gpio-mosi = <&gpio0 ASPEED_GPIO(Z, 4) GPIO_ACTIVE_HIGH>;
44 gpio-miso = <&gpio0 ASPEED_GPIO(Z, 5) GPIO_ACTIVE_HIGH>;
45 num-chipselects = <1>;
46 cs-gpios = <&gpio0 ASPEED_GPIO(Z, 0) GPIO_ACTIVE_LOW>;
49 compatible = "tcg,tpm_tis-spi";
50 spi-max-frequency = <33000000>;
55 switchphy: ethernet-phy@0 {
60 compatible = "gpio-leds";
62 default-state = "off";
63 gpios = <&front_leds 0 GPIO_ACTIVE_HIGH>;
68 compatible = "gpio-leds";
70 retain-state-shutdown;
72 gpios = <&fan_leds 8 GPIO_ACTIVE_HIGH>;
75 retain-state-shutdown;
77 gpios = <&fan_leds 9 GPIO_ACTIVE_HIGH>;
80 retain-state-shutdown;
82 gpios = <&fan_leds 10 GPIO_ACTIVE_HIGH>;
85 retain-state-shutdown;
87 gpios = <&fan_leds 11 GPIO_ACTIVE_HIGH>;
90 retain-state-shutdown;
91 default-state = "off";
92 gpios = <&fan_leds 12 GPIO_ACTIVE_HIGH>;
95 retain-state-shutdown;
96 default-state = "off";
97 gpios = <&fan_leds 13 GPIO_ACTIVE_HIGH>;
100 retain-state-shutdown;
101 default-state = "off";
102 gpios = <&fan_leds 14 GPIO_ACTIVE_HIGH>;
105 retain-state-shutdown;
106 default-state = "off";
107 gpios = <&fan_leds 15 GPIO_ACTIVE_HIGH>;
112 compatible = "gpio-leds";
114 retain-state-shutdown;
115 default-state = "keep";
116 gpios = <&sled1_leds 0 GPIO_ACTIVE_LOW>;
119 retain-state-shutdown;
120 default-state = "keep";
121 gpios = <&sled1_leds 1 GPIO_ACTIVE_LOW>;
126 compatible = "gpio-leds";
128 retain-state-shutdown;
129 default-state = "keep";
130 gpios = <&sled2_leds 0 GPIO_ACTIVE_LOW>;
133 retain-state-shutdown;
134 default-state = "keep";
135 gpios = <&sled2_leds 1 GPIO_ACTIVE_LOW>;
140 compatible = "gpio-leds";
142 retain-state-shutdown;
143 default-state = "keep";
144 gpios = <&sled3_leds 0 GPIO_ACTIVE_LOW>;
147 retain-state-shutdown;
148 default-state = "keep";
149 gpios = <&sled3_leds 1 GPIO_ACTIVE_LOW>;
154 compatible = "gpio-leds";
156 retain-state-shutdown;
157 default-state = "keep";
158 gpios = <&sled4_leds 0 GPIO_ACTIVE_LOW>;
161 retain-state-shutdown;
162 default-state = "keep";
163 gpios = <&sled4_leds 1 GPIO_ACTIVE_LOW>;
168 compatible = "gpio-leds";
170 retain-state-shutdown;
171 default-state = "keep";
172 gpios = <&sled5_leds 0 GPIO_ACTIVE_LOW>;
175 retain-state-shutdown;
176 default-state = "keep";
177 gpios = <&sled5_leds 1 GPIO_ACTIVE_LOW>;
182 compatible = "gpio-leds";
184 retain-state-shutdown;
185 default-state = "keep";
186 gpios = <&sled6_leds 0 GPIO_ACTIVE_LOW>;
189 retain-state-shutdown;
190 default-state = "keep";
191 gpios = <&sled6_leds 1 GPIO_ACTIVE_LOW>;
199 phy-handle = <&switchphy>;
200 pinctrl-names = "default";
201 pinctrl-0 = <&pinctrl_rgmii3_default>;
215 spi-max-frequency = <50000000>;
216 #include "openbmc-flash-layout-128.dtsi"
222 spi-max-frequency = <50000000>;
228 pinctrl-names = "default";
229 pinctrl-0 = <&pinctrl_spi2_default>;
235 spi-max-frequency = <50000000>;
242 compatible = "ti,ina230";
244 shunt-resistor = <2000>;
248 compatible = "mps,mp5023";
253 compatible = "ti,tmp421";
257 sled1_ioexp41: pca9536@41 {
258 compatible = "nxp,pca9536";
264 "SLED1_SWD_MUX", "SLED1_XRES_SWD_N",
265 "SLED1_CLKREQ_N", "SLED1_PCIE_PWR_EN";
268 sled1_ioexp: pca9539@76 {
269 compatible = "nxp,pca9539";
271 #address-cells = <1>;
276 interrupt-parent = <&gpio0>;
277 interrupts = <ASPEED_GPIO(M, 0) IRQ_TYPE_LEVEL_LOW>;
280 "SLED1_MS_DETECT1","SLED1_VBUS_BMC_EN","SLED1_INA230_ALERT","SLED1_P12V_STBY_ALERT",
281 "SLED1_SSD_ALERT","SLED1_MS_DETECT0","SLED1_RST_CCG5","SLED1_FUSB302_INT",
282 "SLED1_MD_STBY_RESET","SLED1_MD_IOEXP_EN_FAULT","SLED1_MD_DIR","SLED1_MD_DECAY",
283 "SLED1_MD_MODE1","SLED1_MD_MODE2","SLED1_MD_MODE3","power-host1";
286 sled1_leds: pca9552@67 {
287 compatible = "nxp,pca9552";
289 #address-cells = <1>;
295 "led-sled1-amber","led-sled1-blue","SLED1_RST_IOEXP","SLED1_MD_REF_PWM",
301 sled1_fusb302: typec-portc@22 {
302 compatible = "fcs,fusb302";
306 compatible = "usb-c-connector";
309 try-power-role = "sink";
311 source-pdos = <PDO_FIXED(5000, 3000, PDO_FIXED_USB_COMM)>;
312 sink-pdos = <PDO_FIXED(5000, 3000, PDO_FIXED_USB_COMM)
313 PDO_VAR(3000, 12000, 3000)
314 PDO_PPS_APDO(3000, 11000, 3000)>;
315 op-sink-microwatt = <10000000>;
320 compatible = "atmel,24c64";
328 compatible = "ti,ina230";
330 shunt-resistor = <2000>;
334 compatible = "mps,mp5023";
339 compatible = "ti,tmp421";
343 sled2_ioexp41: pca9536@41 {
344 compatible = "nxp,pca9536";
350 "SLED2_SWD_MUX", "SLED2_XRES_SWD_N",
351 "SLED2_CLKREQ_N", "SLED2_PCIE_PWR_EN";
354 sled2_ioexp: pca9539@76 {
355 compatible = "nxp,pca9539";
357 #address-cells = <1>;
362 interrupt-parent = <&gpio0>;
363 interrupts = <ASPEED_GPIO(M, 1) IRQ_TYPE_LEVEL_LOW>;
366 "SLED2_MS_DETECT1","SLED2_VBUS_BMC_EN","SLED2_INA230_ALERT","SLED2_P12V_STBY_ALERT",
367 "SLED2_SSD_ALERT","SLED2_MS_DETECT0","SLED2_RST_CCG5","SLED2_FUSB302_INT",
368 "SLED2_MD_STBY_RESET","SLED2_MD_IOEXP_EN_FAULT","SLED2_MD_DIR","SLED2_MD_DECAY",
369 "SLED2_MD_MODE1","SLED2_MD_MODE2","SLED2_MD_MODE3","power-host2";
372 sled2_leds: pca9552@67 {
373 compatible = "nxp,pca9552";
375 #address-cells = <1>;
381 "led-sled2-amber","led-sled2-blue","SLED2_RST_IOEXP","SLED2_MD_REF_PWM",
387 sled2_fusb302: typec-portc@22 {
388 compatible = "fcs,fusb302";
392 compatible = "usb-c-connector";
395 try-power-role = "sink";
397 source-pdos = <PDO_FIXED(5000, 3000, PDO_FIXED_USB_COMM)>;
398 sink-pdos = <PDO_FIXED(5000, 3000, PDO_FIXED_USB_COMM)
399 PDO_VAR(3000, 12000, 3000)
400 PDO_PPS_APDO(3000, 11000, 3000)>;
401 op-sink-microwatt = <10000000>;
406 compatible = "atmel,24c64";
414 compatible = "ti,ina230";
416 shunt-resistor = <2000>;
420 compatible = "mps,mp5023";
425 compatible = "ti,tmp421";
429 sled3_ioexp41: pca9536@41 {
430 compatible = "nxp,pca9536";
436 "SLED3_SWD_MUX", "SLED3_XRES_SWD_N",
437 "SLED3_CLKREQ_N", "SLED3_PCIE_PWR_EN";
440 sled3_ioexp: pca9539@76 {
441 compatible = "nxp,pca9539";
443 #address-cells = <1>;
448 interrupt-parent = <&gpio0>;
449 interrupts = <ASPEED_GPIO(M, 2) IRQ_TYPE_LEVEL_LOW>;
452 "SLED3_MS_DETECT1","SLED3_VBUS_BMC_EN","SLED3_INA230_ALERT","SLED3_P12V_STBY_ALERT",
453 "SLED3_SSD_ALERT","SLED3_MS_DETECT0","SLED3_RST_CCG5","SLED3_FUSB302_INT",
454 "SLED3_MD_STBY_RESET","SLED3_MD_IOEXP_EN_FAULT","SLED3_MD_DIR","SLED3_MD_DECAY",
455 "SLED3_MD_MODE1","SLED3_MD_MODE2","SLED3_MD_MODE3","power-host3";
458 sled3_leds: pca9552@67 {
459 compatible = "nxp,pca9552";
461 #address-cells = <1>;
467 "led-sled3-amber","led-sled3-blue","SLED3_RST_IOEXP","SLED3_MD_REF_PWM",
473 sled3_fusb302: typec-portc@22 {
474 compatible = "fcs,fusb302";
478 compatible = "usb-c-connector";
481 try-power-role = "sink";
483 source-pdos = <PDO_FIXED(5000, 3000, PDO_FIXED_USB_COMM)>;
484 sink-pdos = <PDO_FIXED(5000, 3000, PDO_FIXED_USB_COMM)
485 PDO_VAR(3000, 12000, 3000)
486 PDO_PPS_APDO(3000, 11000, 3000)>;
487 op-sink-microwatt = <10000000>;
492 compatible = "atmel,24c64";
500 compatible = "ti,ina230";
502 shunt-resistor = <2000>;
506 compatible = "mps,mp5023";
511 compatible = "ti,tmp421";
515 sled4_ioexp41: pca9536@41 {
516 compatible = "nxp,pca9536";
522 "SLED4_SWD_MUX", "SLED4_XRES_SWD_N",
523 "SLED4_CLKREQ_N", "SLED4_PCIE_PWR_EN";
526 sled4_ioexp: pca9539@76 {
527 compatible = "nxp,pca9539";
529 #address-cells = <1>;
534 interrupt-parent = <&gpio0>;
535 interrupts = <ASPEED_GPIO(M, 3) IRQ_TYPE_LEVEL_LOW>;
538 "SLED4_MS_DETECT1","SLED4_VBUS_BMC_EN","SLED4_INA230_ALERT","SLED4_P12V_STBY_ALERT",
539 "SLED4_SSD_ALERT","SLED4_MS_DETECT0","SLED4_RST_CCG5","SLED4_FUSB302_INT",
540 "SLED4_MD_STBY_RESET","SLED4_MD_IOEXP_EN_FAULT","SLED4_MD_DIR","SLED4_MD_DECAY",
541 "SLED4_MD_MODE1","SLED4_MD_MODE2","SLED4_MD_MODE3","power-host4";
544 sled4_leds: pca9552@67 {
545 compatible = "nxp,pca9552";
547 #address-cells = <1>;
553 "led-sled4-amber","led-sled4-blue","SLED4_RST_IOEXP","SLED4_MD_REF_PWM",
559 sled4_fusb302: typec-portc@22 {
560 compatible = "fcs,fusb302";
564 compatible = "usb-c-connector";
567 try-power-role = "sink";
569 source-pdos = <PDO_FIXED(5000, 3000, PDO_FIXED_USB_COMM)>;
570 sink-pdos = <PDO_FIXED(5000, 3000, PDO_FIXED_USB_COMM)
571 PDO_VAR(3000, 12000, 3000)
572 PDO_PPS_APDO(3000, 11000, 3000)>;
573 op-sink-microwatt = <10000000>;
578 compatible = "atmel,24c64";
586 compatible = "ti,ina230";
588 shunt-resistor = <2000>;
592 compatible = "mps,mp5023";
597 compatible = "ti,tmp421";
601 sled5_ioexp41: pca9536@41 {
602 compatible = "nxp,pca9536";
608 "SLED5_SWD_MUX", "SLED5_XRES_SWD_N",
609 "SLED5_CLKREQ_N", "SLED5_PCIE_PWR_EN";
612 sled5_ioexp: pca9539@76 {
613 compatible = "nxp,pca9539";
615 #address-cells = <1>;
620 interrupt-parent = <&gpio0>;
621 interrupts = <ASPEED_GPIO(M, 4) IRQ_TYPE_LEVEL_LOW>;
624 "SLED5_MS_DETECT1","SLED5_VBUS_BMC_EN","SLED5_INA230_ALERT","SLED5_P12V_STBY_ALERT",
625 "SLED5_SSD_ALERT","SLED5_MS_DETECT0","SLED5_RST_CCG5","SLED5_FUSB302_INT",
626 "SLED5_MD_STBY_RESET","SLED5_MD_IOEXP_EN_FAULT","SLED5_MD_DIR","SLED5_MD_DECAY",
627 "SLED5_MD_MODE1","SLED5_MD_MODE2","SLED5_MD_MODE3","power-host5";
630 sled5_leds: pca9552@67 {
631 compatible = "nxp,pca9552";
633 #address-cells = <1>;
639 "led-sled5-amber","led-sled5-blue","SLED5_RST_IOEXP","SLED5_MD_REF_PWM",
645 sled5_fusb302: typec-portc@22 {
646 compatible = "fcs,fusb302";
650 compatible = "usb-c-connector";
653 try-power-role = "sink";
655 source-pdos = <PDO_FIXED(5000, 3000, PDO_FIXED_USB_COMM)>;
656 sink-pdos = <PDO_FIXED(5000, 3000, PDO_FIXED_USB_COMM)
657 PDO_VAR(3000, 12000, 3000)
658 PDO_PPS_APDO(3000, 11000, 3000)>;
659 op-sink-microwatt = <10000000>;
664 compatible = "atmel,24c64";
672 compatible = "ti,ina230";
674 shunt-resistor = <2000>;
678 compatible = "mps,mp5023";
683 compatible = "ti,tmp421";
687 sled6_ioexp41: pca9536@41 {
688 compatible = "nxp,pca9536";
694 "SLED6_SWD_MUX", "SLED6_XRES_SWD_N",
695 "SLED6_CLKREQ_N", "SLED6_PCIE_PWR_EN";
698 sled6_ioexp: pca9539@76 {
699 compatible = "nxp,pca9539";
701 #address-cells = <1>;
706 interrupt-parent = <&gpio0>;
707 interrupts = <ASPEED_GPIO(M, 5) IRQ_TYPE_LEVEL_LOW>;
710 "SLED6_MS_DETECT1","SLED6_VBUS_BMC_EN","SLED6_INA230_ALERT","SLED6_P12V_STBY_ALERT",
711 "SLED6_SSD_ALERT","SLED6_MS_DETECT0","SLED6_RST_CCG5","SLED6_FUSB302_INT",
712 "SLED6_MD_STBY_RESET","SLED6_MD_IOEXP_EN_FAULT","SLED6_MD_DIR","SLED6_MD_DECAY",
713 "SLED6_MD_MODE1","SLED6_MD_MODE2","SLED6_MD_MODE3","power-host6";
716 sled6_leds: pca9552@67 {
717 compatible = "nxp,pca9552";
719 #address-cells = <1>;
725 "led-sled6-amber","led-sled6-blue","SLED6_RST_IOEXP","SLED6_MD_REF_PWM",
731 sled6_fusb302: typec-portc@22 {
732 compatible = "fcs,fusb302";
736 compatible = "usb-c-connector";
739 try-power-role = "sink";
741 source-pdos = <PDO_FIXED(5000, 3000, PDO_FIXED_USB_COMM)>;
742 sink-pdos = <PDO_FIXED(5000, 3000, PDO_FIXED_USB_COMM)
743 PDO_VAR(3000, 12000, 3000)
744 PDO_PPS_APDO(3000, 11000, 3000)>;
745 op-sink-microwatt = <10000000>;
750 compatible = "atmel,24c64";
759 compatible = "atmel,24c64";
764 /* in-chip rtc disabled, use external rtc (battery-backed) */
765 compatible = "nxp,pcf85263";
774 compatible = "atmel,24c64";
783 compatible = "ti,tmp421";
792 compatible = "ti,tmp421";
796 front_leds: pca9552@67 {
797 compatible = "nxp,pca9552";
799 #address-cells = <1>;
805 "led-fault-identify","power-p5v-stby-good",
806 "power-p1v0-dvdd-good","power-p1v0-avdd-good",
817 compatible = "adi,adm1278";
819 shunt-resistor-micro-ohms = <300>;
820 adi,volt-curr-sample-average = <128>;
821 adi,power-sample-average = <128>;
825 compatible = "ti,tmp421";
830 compatible = "ti,tmp421";
834 fan_leds: pca9552@67 {
835 compatible = "nxp,pca9552";
837 #address-cells = <1>;
843 "presence-fan0","presence-fan1",
844 "presence-fan2","presence-fan3",
845 "power-fan0-good","power-fan1-good",
846 "power-fan2-good","power-fan3-good",
854 aspeed,hw-timeout-ms = <1000>;
857 //USB Debug Connector
859 compatible = "ipmb-dev";
860 reg = <(0x10 | I2C_OWN_SLAVE_ADDRESS)>;
867 /*A0-A7*/ "","","","","","","","",
868 /*B0-B7*/ "FUSB302_SLED1_INT_N","FUSB302_SLED2_INT_N",
869 "SEL_SPI2_MUX","SPI2_MUX1",
870 "SPI2_MUX2","SPI2_MUX3",
871 "","FUSB302_SLED3_INT_N",
872 /*C0-C7*/ "","","","","","","","",
873 /*D0-D7*/ "","","","","","","","",
874 /*E0-E7*/ "","","","","","","","",
875 /*F0-F7*/ "BMC_SLED1_STCK","BMC_SLED2_STCK",
876 "BMC_SLED3_STCK","BMC_SLED4_STCK",
877 "BMC_SLED5_STCK","BMC_SLED6_STCK",
879 /*G0-G7*/ "BSM_FRU_WP","SWITCH_FRU_MUX","","FM_SOL_UART_CH_SEL",
880 "PWRGD_P1V05_VDDCORE","PWRGD_P1V5_VDD","","",
881 /*H0-H7*/ "presence-riser1","presence-riser2",
882 "presence-sled1","presence-sled2",
883 "presence-sled3","presence-sled4",
884 "presence-sled5","presence-sled6",
885 /*I0-I7*/ "REV_ID0","",
887 "","BSM_FLASH_WP_STATUS",
888 "BMC_TPM_PRES_N","FUSB302_SLED6_INT_N",
889 /*J0-J7*/ "","","","","","","","",
890 /*K0-K7*/ "","","","","","","","",
891 /*L0-L7*/ "","","","","","BMC_RTC_INT","","",
892 /*M0-M7*/ "ALERT_SLED1_N","ALERT_SLED2_N",
893 "ALERT_SLED3_N","ALERT_SLED4_N",
894 "ALERT_SLED5_N","ALERT_SLED6_N",
896 /*N0-N7*/ "LED_POSTCODE_0","LED_POSTCODE_1",
897 "LED_POSTCODE_2","LED_POSTCODE_3",
898 "LED_POSTCODE_4","LED_POSTCODE_5",
899 "LED_POSTCODE_5","LED_POSTCODE_7",
900 /*O0-O7*/ "","","","",
901 "","BOARD_ID0","BOARD_ID1","BOARD_ID2",
902 /*P0-P7*/ "","","","","","","","BMC_HEARTBEAT",
903 /*Q0-Q7*/ "","","","","","","","",
904 /*R0-R7*/ "","","","","","","","",
905 /*S0-S7*/ "","","","BAT_DETECT",
906 "BMC_BT_WP0_N","BMC_BT_WP1_N","","FUSB302_SLED4_INT_N",
907 /*T0-T7*/ "","","","","","","","",
908 /*U0-U7*/ "","","","","","","","",
909 /*V0-V7*/ "PWRGD_CNS_PSU","RST_BMC_MVL_N",
910 "P12V_AUX_ALERT1_N","PSU_PRSNT",
911 "USB2_SEL0_A","USB2_SEL1_A",
912 "USB2_SEL0_B","USB2_SEL1_B",
913 /*W0-W7*/ "RST_FRONT_IOEXP_N","","","","","","","",
914 /*X0-X7*/ "","","","","","","","",
915 /*Y0-Y7*/ "BMC_SELF_HW_RST","BSM_PRSNT_N",
916 "BSM_FLASH_LATCH_N","FUSB302_SLED5_INT_N",
918 /*Z0-Z7*/ "","","","","","","","";
925 pinctrl-names = "default";
926 pinctrl-0 = <&pinctrl_adc0_default &pinctrl_adc1_default
927 &pinctrl_adc2_default &pinctrl_adc3_default
928 &pinctrl_adc4_default &pinctrl_adc5_default
929 &pinctrl_adc6_default &pinctrl_adc7_default>;
936 pinctrl-names = "default";
937 pinctrl-0 = <&pinctrl_adc8_default &pinctrl_adc9_default
938 &pinctrl_adc10_default &pinctrl_adc11_default
939 &pinctrl_adc12_default &pinctrl_adc13_default
940 &pinctrl_adc14_default &pinctrl_adc15_default>;
945 /* TODO: Add Marvell 88E6191X */
950 /* TODO: Add Marvell 88X3310 */