0001 // SPDX-License-Identifier: GPL-2.0+
0002 // Copyright (c) 2018 Facebook Inc.
0003 // Author: Vijay Khemka <vijaykhemka@fb.com>
0004 /dts-v1/;
0005
0006 #include "aspeed-g5.dtsi"
0007 #include <dt-bindings/gpio/aspeed-gpio.h>
0008 #include <dt-bindings/i2c/i2c.h>
0009
0010 / {
0011 model = "Facebook TiogaPass BMC";
0012 compatible = "facebook,tiogapass-bmc", "aspeed,ast2500";
0013 aliases {
0014 serial0 = &uart1;
0015 serial4 = &uart5;
0016
0017 /*
0018 * Hardcode the bus number of i2c switches' channels to
0019 * avoid breaking the legacy applications.
0020 */
0021 i2c16 = &imux16;
0022 i2c17 = &imux17;
0023 i2c18 = &imux18;
0024 i2c19 = &imux19;
0025 i2c20 = &imux20;
0026 i2c21 = &imux21;
0027 i2c22 = &imux22;
0028 i2c23 = &imux23;
0029 i2c24 = &imux24;
0030 i2c25 = &imux25;
0031 i2c26 = &imux26;
0032 i2c27 = &imux27;
0033 i2c28 = &imux28;
0034 i2c29 = &imux29;
0035 i2c30 = &imux30;
0036 i2c31 = &imux31;
0037 };
0038 chosen {
0039 stdout-path = &uart5;
0040 bootargs = "console=ttyS4,115200 earlycon";
0041 };
0042
0043 memory@80000000 {
0044 reg = <0x80000000 0x20000000>;
0045 };
0046
0047 iio-hwmon {
0048 compatible = "iio-hwmon";
0049 io-channels = <&adc 0>, <&adc 1>, <&adc 2>, <&adc 3>,
0050 <&adc 4>, <&adc 5>, <&adc 6>, <&adc 7>;
0051 };
0052
0053 };
0054
0055 &fmc {
0056 status = "okay";
0057 flash@0 {
0058 status = "okay";
0059 m25p,fast-read;
0060 #include "openbmc-flash-layout.dtsi"
0061 };
0062 };
0063
0064 &spi1 {
0065 status = "okay";
0066 pinctrl-names = "default";
0067 pinctrl-0 = <&pinctrl_spi1_default>;
0068 flash@0 {
0069 status = "okay";
0070 m25p,fast-read;
0071 label = "pnor";
0072 };
0073 };
0074
0075 &lpc_snoop {
0076 status = "okay";
0077 snoop-ports = <0x80>;
0078 };
0079
0080 &lpc_ctrl {
0081 // Enable lpc clock
0082 status = "okay";
0083 };
0084
0085 &uart1 {
0086 // Host Console
0087 status = "okay";
0088 pinctrl-names = "default";
0089 pinctrl-0 = <&pinctrl_txd1_default
0090 &pinctrl_rxd1_default>;
0091 };
0092
0093 &uart2 {
0094 // SoL Host Console
0095 status = "okay";
0096 };
0097
0098 &uart3 {
0099 // SoL BMC Console
0100 status = "okay";
0101 };
0102
0103 &uart5 {
0104 // BMC Console
0105 status = "okay";
0106 };
0107
0108 &kcs2 {
0109 // BMC KCS channel 2
0110 status = "okay";
0111 aspeed,lpc-io-reg = <0xca8>;
0112 };
0113
0114 &kcs3 {
0115 // BMC KCS channel 3
0116 status = "okay";
0117 aspeed,lpc-io-reg = <0xca2>;
0118 };
0119
0120 &gpio {
0121 status = "okay";
0122 gpio-line-names =
0123 /*A0-A7*/ "BMC_CPLD_FPGA_SEL","","","","","","","",
0124 /*B0-B7*/ "","BMC_DEBUG_EN","","","","BMC_PPIN","PS_PWROK",
0125 "IRQ_PVDDQ_GHJ_VRHOT_LVT3",
0126 /*C0-C7*/ "","","","","","","","",
0127 /*D0-D7*/ "BIOS_MRC_DEBUG_MSG_DIS","BOARD_REV_ID0","",
0128 "BOARD_REV_ID1","IRQ_DIMM_SAVE_LVT3","BOARD_REV_ID2",
0129 "CPU_ERR0_LVT3_BMC","CPU_ERR1_LVT3_BMC",
0130 /*E0-E7*/ "RESET_BUTTON","RESET_OUT","POWER_BUTTON",
0131 "POWER_OUT","NMI_BUTTON","","CPU0_PROCHOT_LVT3_ BMC",
0132 "CPU1_PROCHOT_LVT3_ BMC",
0133 /*F0-F7*/ "IRQ_PVDDQ_ABC_VRHOT_LVT3","",
0134 "IRQ_PVCCIN_CPU0_VRHOT_LVC3",
0135 "IRQ_PVCCIN_CPU1_VRHOT_LVC3",
0136 "IRQ_PVDDQ_KLM_VRHOT_LVT3","","P3VBAT_BRIDGE_EN","",
0137 /*G0-G7*/ "CPU_ERR2_LVT3","CPU_CATERR_LVT3","PCH_BMC_THERMTRIP",
0138 "CPU0_SKTOCC_LVT3","","","","BIOS_SMI_ACTIVE",
0139 /*H0-H7*/ "LED_POST_CODE_0","LED_POST_CODE_1","LED_POST_CODE_2",
0140 "LED_POST_CODE_3","LED_POST_CODE_4","LED_POST_CODE_5",
0141 "LED_POST_CODE_6","LED_POST_CODE_7",
0142 /*I0-I7*/ "CPU0_FIVR_FAULT_LVT3","CPU1_FIVR_FAULT_LVT3",
0143 "FORCE_ADR","UV_ADR_TRIGGER_EN","","","","",
0144 /*J0-J7*/ "","","","","","","","",
0145 /*K0-K7*/ "","","","","","","","",
0146 /*L0-L7*/ "IRQ_UV_DETECT","IRQ_OC_DETECT","HSC_TIMER_EXP","",
0147 "MEM_THERM_EVENT_PCH","PMBUS_ALERT_BUF_EN","","",
0148 /*M0-M7*/ "CPU0_RC_ERROR","CPU1_RC_ERROR","","OC_DETECT_EN",
0149 "CPU0_THERMTRIP_LATCH_LVT3",
0150 "CPU1_THERMTRIP_LATCH_LVT3","","",
0151 /*N0-N7*/ "","","","CPU_MSMI_LVT3","","BIOS_SPI_BMC_CTRL","","",
0152 /*O0-O7*/ "","","","","","","","",
0153 /*P0-P7*/ "BOARD_SKU_ID0","BOARD_SKU_ID1","BOARD_SKU_ID2",
0154 "BOARD_SKU_ID3","BOARD_SKU_ID4","BMC_PREQ",
0155 "BMC_PWR_DEBUG","RST_RSMRST",
0156 /*Q0-Q7*/ "","","","","UARTSW_LSB","UARTSW_MSB",
0157 "POST_CARD_PRES_BMC","PE_BMC_WAKE",
0158 /*R0-R7*/ "","","BMC_TCK_MUX_SEL","BMC_PRDY",
0159 "BMC_XDP_PRSNT_IN","RST_BMC_PLTRST_BUF","SLT_CFG0",
0160 "SLT_CFG1",
0161 /*S0-S7*/ "THROTTLE","BMC_READY","","HSC_SMBUS_SWITCH_EN","",
0162 "","","",
0163 /*T0-T7*/ "","","","","","","","",
0164 /*U0-U7*/ "","","","","","BMC_FAULT","","",
0165 /*V0-V7*/ "","","","FAST_PROCHOT_EN","","","","",
0166 /*W0-W7*/ "","","","","","","","",
0167 /*X0-X7*/ "","","","GLOBAL_RST_WARN",
0168 "CPU0_MEMABC_MEMHOT_LVT3_BMC",
0169 "CPU0_MEMDEF_MEMHOT_LVT3_BMC",
0170 "CPU1_MEMGHJ_MEMHOT_LVT3_BMC",
0171 "CPU1_MEMKLM_MEMHOT_LVT3_BMC",
0172 /*Y0-Y7*/ "SIO_S3","SIO_S5","BMC_JTAG_SEL","SIO_ONCONTROL","",
0173 "","","",
0174 /*Z0-Z7*/ "","SIO_POWER_GOOD","IRQ_PVDDQ_DEF_VRHOT_LVT3","",
0175 "","","","",
0176 /*AA0-AA7*/ "CPU1_SKTOCC_LVT3","IRQ_SML1_PMBUS_ALERT",
0177 "SERVER_POWER_LED","","PECI_MUX_SELECT","UV_HIGH_SET",
0178 "","POST_COMPLETE",
0179 /*AB0-AB7*/ "IRQ_HSC_FAULT","OCP_MEZZA_PRES","","","","","","",
0180 /*AC0-AC7*/ "","","","","","","","";
0181 };
0182
0183 &mac0 {
0184 status = "okay";
0185
0186 pinctrl-names = "default";
0187 pinctrl-0 = <&pinctrl_rmii1_default>;
0188 clocks = <&syscon ASPEED_CLK_GATE_MAC1CLK>,
0189 <&syscon ASPEED_CLK_MAC1RCLK>;
0190 clock-names = "MACCLK", "RCLK";
0191 use-ncsi;
0192 };
0193
0194 &mac1 {
0195 status = "okay";
0196
0197 pinctrl-names = "default";
0198 pinctrl-0 = <&pinctrl_rmii2_default>;
0199 use-ncsi;
0200 };
0201
0202 &adc {
0203 status = "okay";
0204 };
0205
0206 &i2c0 {
0207 status = "okay";
0208 //Airmax Conn B, CPU0 PIROM, CPU1 PIROM
0209 };
0210
0211 &i2c1 {
0212 status = "okay";
0213 //X24 Riser
0214 i2c-switch@71 {
0215 compatible = "nxp,pca9544";
0216 #address-cells = <1>;
0217 #size-cells = <0>;
0218 reg = <0x71>;
0219
0220 imux16: i2c@0 {
0221 #address-cells = <1>;
0222 #size-cells = <0>;
0223 reg = <0>;
0224
0225 ina230@45 {
0226 compatible = "ti,ina230";
0227 reg = <0x45>;
0228 };
0229
0230 tmp75@48 {
0231 compatible = "ti,tmp75";
0232 reg = <0x48>;
0233 };
0234
0235 tmp421@49 {
0236 compatible = "ti,tmp75";
0237 reg = <0x49>;
0238 };
0239
0240 eeprom@50 {
0241 compatible = "atmel,24c64";
0242 reg = <0x50>;
0243 pagesize = <32>;
0244 };
0245
0246 i2c-switch@73 {
0247 compatible = "nxp,pca9546";
0248 #address-cells = <1>;
0249 #size-cells = <0>;
0250 reg = <0x73>;
0251
0252 imux20: i2c@0 {
0253 #address-cells = <1>;
0254 #size-cells = <0>;
0255 reg = <0>;
0256 };
0257
0258 imux21: i2c@1 {
0259 #address-cells = <1>;
0260 #size-cells = <0>;
0261 reg = <1>;
0262 };
0263
0264 imux22: i2c@2 {
0265 #address-cells = <1>;
0266 #size-cells = <0>;
0267 reg = <2>;
0268 };
0269
0270 imux23: i2c@3 {
0271 #address-cells = <1>;
0272 #size-cells = <0>;
0273 reg = <3>;
0274 };
0275
0276 };
0277
0278 };
0279
0280 imux17: i2c@1 {
0281 #address-cells = <1>;
0282 #size-cells = <0>;
0283 reg = <1>;
0284
0285 ina230@45 {
0286 compatible = "ti,ina230";
0287 reg = <0x45>;
0288 };
0289
0290 tmp421@48 {
0291 compatible = "ti,tmp75";
0292 reg = <0x48>;
0293 };
0294
0295 tmp421@49 {
0296 compatible = "ti,tmp75";
0297 reg = <0x49>;
0298 };
0299
0300 eeprom@50 {
0301 compatible = "atmel,24c64";
0302 reg = <0x50>;
0303 pagesize = <32>;
0304 };
0305
0306 i2c-switch@73 {
0307 compatible = "nxp,pca9546";
0308 #address-cells = <1>;
0309 #size-cells = <0>;
0310 reg = <0x73>;
0311
0312 imux24: i2c@0 {
0313 #address-cells = <1>;
0314 #size-cells = <0>;
0315 reg = <0>;
0316 };
0317
0318 imux25: i2c@1 {
0319 #address-cells = <1>;
0320 #size-cells = <0>;
0321 reg = <1>;
0322 };
0323
0324 imux26: i2c@2 {
0325 #address-cells = <1>;
0326 #size-cells = <0>;
0327 reg = <2>;
0328 };
0329
0330 imux27: i2c@3 {
0331 #address-cells = <1>;
0332 #size-cells = <0>;
0333 reg = <3>;
0334 };
0335
0336 };
0337
0338 };
0339
0340 imux18: i2c@2 {
0341 #address-cells = <1>;
0342 #size-cells = <0>;
0343 reg = <2>;
0344
0345 ina230@45 {
0346 compatible = "ti,ina230";
0347 reg = <0x45>;
0348 };
0349
0350 tmp421@48 {
0351 compatible = "ti,tmp75";
0352 reg = <0x48>;
0353 };
0354
0355 tmp421@49 {
0356 compatible = "ti,tmp75";
0357 reg = <0x49>;
0358 };
0359
0360 eeprom@50 {
0361 compatible = "atmel,24c64";
0362 reg = <0x50>;
0363 pagesize = <32>;
0364 };
0365
0366 i2c-switch@73 {
0367 compatible = "nxp,pca9546";
0368 #address-cells = <1>;
0369 #size-cells = <0>;
0370 reg = <0x73>;
0371
0372 imux28: i2c@0 {
0373 #address-cells = <1>;
0374 #size-cells = <0>;
0375 reg = <0>;
0376 };
0377
0378 imux29: i2c@1 {
0379 #address-cells = <1>;
0380 #size-cells = <0>;
0381 reg = <1>;
0382 };
0383
0384 imux30: i2c@2 {
0385 #address-cells = <1>;
0386 #size-cells = <0>;
0387 reg = <2>;
0388 };
0389
0390 imux31: i2c@3 {
0391 #address-cells = <1>;
0392 #size-cells = <0>;
0393 reg = <3>;
0394 };
0395
0396 };
0397
0398 };
0399
0400 imux19: i2c@3 {
0401 #address-cells = <1>;
0402 #size-cells = <0>;
0403 reg = <3>;
0404
0405 i2c-switch@40 {
0406 compatible = "ti,ina230";
0407 reg = <0x40>;
0408 };
0409
0410 i2c-switch@41 {
0411 compatible = "ti,ina230";
0412 reg = <0x41>;
0413 };
0414
0415 i2c-switch@45 {
0416 compatible = "ti,ina230";
0417 reg = <0x45>;
0418 };
0419
0420 };
0421
0422 };
0423 };
0424
0425 &i2c2 {
0426 status = "okay";
0427 // Mezz Management SMBus
0428 };
0429
0430 &i2c3 {
0431 status = "okay";
0432 // SMBus to Board ID EEPROM
0433 };
0434
0435 &i2c4 {
0436 status = "okay";
0437 // BMC Debug Header
0438 ipmb0@10 {
0439 compatible = "ipmb-dev";
0440 reg = <(0x10 | I2C_OWN_SLAVE_ADDRESS)>;
0441 i2c-protocol;
0442 };
0443 };
0444
0445 &i2c5 {
0446 status = "okay";
0447 // CPU Voltage regulators
0448 regulator@48 {
0449 compatible = "infineon,pxe1610";
0450 reg = <0x48>;
0451 };
0452 regulator@4a {
0453 compatible = "infineon,pxe1610";
0454 reg = <0x4a>;
0455 };
0456 regulator@50 {
0457 compatible = "infineon,pxe1610";
0458 reg = <0x50>;
0459 };
0460 regulator@52 {
0461 compatible = "infineon,pxe1610";
0462 reg = <0x52>;
0463 };
0464 regulator@58 {
0465 compatible = "infineon,pxe1610";
0466 reg = <0x58>;
0467 };
0468 regulator@5a {
0469 compatible = "infineon,pxe1610";
0470 reg = <0x5a>;
0471 };
0472 regulator@68 {
0473 compatible = "infineon,pxe1610";
0474 reg = <0x68>;
0475 };
0476 regulator@70 {
0477 compatible = "infineon,pxe1610";
0478 reg = <0x70>;
0479 };
0480 regulator@72 {
0481 compatible = "infineon,pxe1610";
0482 reg = <0x72>;
0483 };
0484 };
0485
0486 &i2c6 {
0487 status = "okay";
0488 tpm@20 {
0489 compatible = "infineon,slb9645tt";
0490 reg = <0x20>;
0491 };
0492 tmp421@4e {
0493 compatible = "ti,tmp421";
0494 reg = <0x4e>;
0495 };
0496 tmp421@4f {
0497 compatible = "ti,tmp421";
0498 reg = <0x4f>;
0499 };
0500 eeprom@54 {
0501 compatible = "atmel,24c64";
0502 reg = <0x54>;
0503 pagesize = <32>;
0504 };
0505 };
0506
0507 &i2c7 {
0508 status = "okay";
0509 //HSC, AirMax Conn A
0510 adm1278@45 {
0511 compatible = "adm1275";
0512 reg = <0x45>;
0513 shunt-resistor-micro-ohms = <250>;
0514 };
0515 };
0516
0517 &i2c8 {
0518 status = "okay";
0519 tmp421@1f {
0520 compatible = "ti,tmp421";
0521 reg = <0x1f>;
0522 };
0523 //Mezz Sensor SMBus
0524 };
0525
0526 &i2c9 {
0527 status = "okay";
0528 //USB Debug Connector
0529 ipmb0@10 {
0530 compatible = "ipmb-dev";
0531 reg = <(0x10 | I2C_OWN_SLAVE_ADDRESS)>;
0532 i2c-protocol;
0533 };
0534 };
0535
0536 &pwm_tacho {
0537 status = "okay";
0538 pinctrl-names = "default";
0539 pinctrl-0 = <&pinctrl_pwm0_default &pinctrl_pwm1_default>;
0540 fan@0 {
0541 reg = <0x00>;
0542 aspeed,fan-tach-ch = /bits/ 8 <0x00>;
0543 };
0544
0545 fan@1 {
0546 reg = <0x01>;
0547 aspeed,fan-tach-ch = /bits/ 8 <0x02>;
0548 };
0549 };