0001 // SPDX-License-Identifier: GPL-2.0+
0002 /dts-v1/;
0003
0004 #include "aspeed-g5.dtsi"
0005 #include <dt-bindings/gpio/aspeed-gpio.h>
0006 #include <dt-bindings/interrupt-controller/irq.h>
0007
0008 / {
0009 model = "Tyan S8036 BMC";
0010 compatible = "tyan,s8036-bmc", "aspeed,ast2500";
0011
0012 chosen {
0013 stdout-path = &uart5;
0014 bootargs = "console=ttyS4,115200 earlycon";
0015 };
0016
0017 memory@80000000 {
0018 device_type = "memory";
0019 reg = <0x80000000 0x20000000>;
0020 };
0021
0022 reserved-memory {
0023 #address-cells = <1>;
0024 #size-cells = <1>;
0025 ranges;
0026
0027 p2a_memory: region@987f0000 {
0028 no-map;
0029 reg = <0x987f0000 0x00010000>; /* 64KB */
0030 };
0031
0032 vga_memory: framebuffer@9f000000 {
0033 no-map;
0034 reg = <0x9f000000 0x01000000>; /* 16M */
0035 };
0036
0037 gfx_memory: framebuffer {
0038 size = <0x01000000>; /* 16M */
0039 alignment = <0x01000000>;
0040 compatible = "shared-dma-pool";
0041 reusable;
0042 };
0043 };
0044
0045 leds {
0046 compatible = "gpio-leds";
0047
0048 identify {
0049 gpios = <&gpio ASPEED_GPIO(A, 2) GPIO_ACTIVE_LOW>;
0050 };
0051
0052 heartbeat {
0053 gpios = <&gpio ASPEED_GPIO(E, 7) GPIO_ACTIVE_LOW>;
0054 };
0055 };
0056
0057 iio-hwmon {
0058 compatible = "iio-hwmon";
0059 io-channels = <&adc 0>, <&adc 1>, <&adc 2>, <&adc 3>,
0060 <&adc 4>, <&adc 5>, <&adc 6>, <&adc 7>,
0061 <&adc 8>, <&adc 9>, <&adc 10>, <&adc 11>,
0062 <&adc 12>, <&adc 13>, <&adc 14>;
0063 };
0064
0065 iio-hwmon-battery {
0066 compatible = "iio-hwmon";
0067 io-channels = <&adc 15>;
0068 };
0069 };
0070
0071 &fmc {
0072 status = "okay";
0073 flash@0 {
0074 label = "bmc";
0075 status = "okay";
0076 m25p,fast-read;
0077 #include "openbmc-flash-layout.dtsi"
0078 };
0079 };
0080
0081 &spi1 {
0082 status = "okay";
0083 pinctrl-names = "default";
0084 pinctrl-0 = <&pinctrl_spi1_default>;
0085
0086 flash@0 {
0087 status = "okay";
0088 label = "pnor";
0089 m25p,fast-read;
0090 };
0091 };
0092
0093 &uart1 {
0094 /* Rear RS-232 connector */
0095 status = "okay";
0096 pinctrl-names = "default";
0097 pinctrl-0 = <&pinctrl_txd1_default
0098 &pinctrl_rxd1_default>;
0099 };
0100
0101 &uart2 {
0102 /* RS-232 connector on header */
0103 status = "okay";
0104 pinctrl-names = "default";
0105 pinctrl-0 = <&pinctrl_txd2_default
0106 &pinctrl_rxd2_default>;
0107 };
0108
0109 &uart3 {
0110 /* Alternative to vuart to internally connect (route) to uart1
0111 * when vuart cannot be used due to BIOS limitations.
0112 */
0113 status = "okay";
0114 };
0115
0116 &uart4 {
0117 /* Alternative to vuart to internally connect (route) to the
0118 * external port usually used by uart1 when vuart cannot be
0119 * used due to BIOS limitations.
0120 */
0121 status = "okay";
0122 };
0123
0124 &uart5 {
0125 /* BMC "debug" (console) UART; connected to RS-232 connector
0126 * on header; selectable via jumpers as alternative to uart2
0127 */
0128 status = "okay";
0129 };
0130
0131 &uart_routing {
0132 status = "okay";
0133 };
0134
0135 &vuart {
0136 status = "okay";
0137
0138 /* We enable the VUART here, but leave it in a state that does
0139 * not interfere with the SuperIO. The goal is to have both the
0140 * VUART and the SuperIO available and decide at runtime whether
0141 * the VUART should actually be used. For that reason, configure
0142 * an "invalid" IO address and an IRQ that is not used by the
0143 * BMC.
0144 */
0145 aspeed,lpc-io-reg = <0xffff>;
0146 aspeed,lpc-interrupts = <15 IRQ_TYPE_LEVEL_HIGH>;
0147 };
0148
0149 &lpc_ctrl {
0150 status = "okay";
0151 };
0152
0153 &p2a {
0154 status = "okay";
0155 memory-region = <&p2a_memory>;
0156 };
0157
0158 &lpc_snoop {
0159 status = "okay";
0160 snoop-ports = <0x80>;
0161 };
0162
0163 &adc {
0164 status = "okay";
0165 };
0166
0167 &vhub {
0168 status = "okay";
0169 };
0170
0171 &pwm_tacho {
0172 status = "okay";
0173 pinctrl-names = "default";
0174 pinctrl-0 = <&pinctrl_pwm0_default
0175 &pinctrl_pwm1_default
0176 &pinctrl_pwm3_default
0177 &pinctrl_pwm4_default>;
0178
0179 /* CPU fan */
0180 fan@0 {
0181 reg = <0x00>;
0182 aspeed,fan-tach-ch = /bits/ 8 <0x00>;
0183 };
0184
0185 /* PWM group for chassis fans #1, #2, #3 and #4 */
0186 fan@2 {
0187 reg = <0x03>;
0188 aspeed,fan-tach-ch = /bits/ 8 <0x02>;
0189 };
0190
0191 fan@3 {
0192 reg = <0x03>;
0193 aspeed,fan-tach-ch = /bits/ 8 <0x03>;
0194 };
0195
0196 fan@4 {
0197 reg = <0x03>;
0198 aspeed,fan-tach-ch = /bits/ 8 <0x04>;
0199 };
0200
0201 fan@5 {
0202 reg = <0x03>;
0203 aspeed,fan-tach-ch = /bits/ 8 <0x05>;
0204 };
0205
0206 /* PWM group for chassis fans #5 and #6 */
0207 fan@6 {
0208 reg = <0x04>;
0209 aspeed,fan-tach-ch = /bits/ 8 <0x06>;
0210 };
0211
0212 fan@7 {
0213 reg = <0x04>;
0214 aspeed,fan-tach-ch = /bits/ 8 <0x07>;
0215 };
0216 };
0217
0218 &i2c0 {
0219 /* Directly connected to Sideband-Temperature Sensor Interface (APML) */
0220 status = "okay";
0221 };
0222
0223 &i2c1 {
0224 /* Directly connected to IPMB HDR. */
0225 status = "okay";
0226 };
0227
0228 &i2c2 {
0229 status = "okay";
0230
0231 /* BMC EEPROM, incl. mainboard FRU */
0232 eeprom@50 {
0233 compatible = "atmel,24c256";
0234 reg = <0x50>;
0235 };
0236 /* Also connected to:
0237 * - BCM5720
0238 * - FPGA
0239 * - FAN HDR
0240 * - FPIO HDR
0241 */
0242 };
0243
0244 &i2c3 {
0245 status = "okay";
0246
0247 /* PSU1 FRU @ 0xA0 */
0248 eeprom@50 {
0249 compatible = "atmel,24c02";
0250 reg = <0x50>;
0251 };
0252
0253 /* PSU2 FRU @ 0xA2 */
0254 eeprom@51 {
0255 compatible = "atmel,24c02";
0256 reg = <0x51>;
0257 };
0258
0259 /* PSU1 @ 0xB0 */
0260 power-supply@58 {
0261 compatible = "pmbus";
0262 reg = <0x58>;
0263 };
0264
0265 /* PSU2 @ 0xB2 */
0266 power-supply@59 {
0267 compatible = "pmbus";
0268 reg = <0x59>;
0269 };
0270
0271 };
0272
0273 &i2c4 {
0274 status = "okay";
0275 };
0276
0277 &i2c5 {
0278 status = "okay";
0279 /* Hardware monitor with temperature sensors */
0280 nct7802@28 {
0281 compatible = "nuvoton,nct7802";
0282 reg = <0x28>;
0283 #address-cells = <1>;
0284 #size-cells = <0>;
0285
0286 channel@0 { /* LTD */
0287 reg = <0>;
0288 status = "okay";
0289 };
0290
0291 channel@1 { /* RTD1 */
0292 reg = <1>;
0293 status = "okay";
0294 sensor-type = "temperature";
0295 temperature-mode = "thermistor";
0296 };
0297
0298 channel@2 { /* RTD2 */
0299 reg = <2>;
0300 status = "okay";
0301 sensor-type = "temperature";
0302 temperature-mode = "thermistor";
0303 };
0304
0305 channel@3 { /* RTD3 */
0306 reg = <3>;
0307 status = "okay";
0308 sensor-type = "temperature";
0309 };
0310 };
0311
0312 /* Also connected to:
0313 * - PCA9544
0314 * - CLK BUFF
0315 * - OCP FRU
0316 */
0317 };
0318
0319 &i2c6 {
0320 status = "okay";
0321 /* Connected to:
0322 * - PCA9548 @0xE0
0323 * - PCA9548 @0xE2
0324 * - PCA9544 @0xE4
0325 */
0326 };
0327
0328 &i2c7 {
0329 status = "okay";
0330
0331 /* Connected to:
0332 * - PCH SMBUS #4
0333 */
0334 };
0335
0336 &i2c8 {
0337 status = "okay";
0338
0339 /* Not connected */
0340 };
0341
0342 &mac0 {
0343 status = "okay";
0344 use-ncsi;
0345 pinctrl-names = "default";
0346 pinctrl-0 = <&pinctrl_rmii1_default>;
0347 };
0348
0349 &mac1 {
0350 status = "okay";
0351 pinctrl-names = "default";
0352 pinctrl-0 = <&pinctrl_rgmii2_default &pinctrl_mdio2_default>;
0353 };
0354
0355 &ibt {
0356 status = "okay";
0357 };
0358
0359 &kcs1 {
0360 status = "okay";
0361 aspeed,lpc-io-reg = <0xca8>;
0362 };
0363
0364 &kcs3 {
0365 status = "okay";
0366 aspeed,lpc-io-reg = <0xca2>;
0367 };
0368
0369 /* Enable BMC VGA output to show an early (pre-BIOS) boot screen */
0370 &gfx {
0371 status = "okay";
0372 memory-region = <&gfx_memory>;
0373 };
0374
0375 /* We're following the GPIO naming as defined at
0376 * https://github.com/openbmc/docs/blob/master/designs/device-tree-gpio-naming.md.
0377 *
0378 * Notes on led-identify and id-button:
0379 * - A physical button is connected to id-button which
0380 * triggers the clock on a D flip-flop. The /Q output of the
0381 * flip-flop drives its D input.
0382 * - The flip-flop's Q output drives led-identify which is
0383 * connected to LEDs.
0384 * - With that, every button press toggles the LED between on and off.
0385 *
0386 * Notes on power-, reset- and nmi- button and control:
0387 * - The -button signals can be used to monitor physical buttons.
0388 * - The -control signals can be used to actuate the specific
0389 * operation.
0390 * - In hardware, the -button signals are connected to the -control
0391 * signals through drivers with the -control signals being
0392 * protected through diodes.
0393 */
0394 &gpio {
0395 status = "okay";
0396 gpio-line-names =
0397 /*A0*/ "",
0398 /*A1*/ "",
0399 /*A2*/ "led-identify", /* in/out: BMC_CHASSIS_ID_LED_L */
0400 /*A3*/ "",
0401 /*A4*/ "",
0402 /*A5*/ "",
0403 /*A6*/ "",
0404 /*A7*/ "",
0405 /*B0-B7*/ "","","","","","","","",
0406 /*C0-C7*/ "","","","","","","","",
0407 /*D0*/ "",
0408 /*D1*/ "",
0409 /*D2*/ "power-chassis-good", /* in: PWR_GOOD_LED -- Check if this is Z3?*/
0410 /*D3*/ "platform-reset", /* in: RESET_LED_L */
0411 /*D4*/ "",
0412 /*D5*/ "",
0413 /*D6*/ "",
0414 /*D7*/ "",
0415 /*E0*/ "power-button", /* in: BMC_SYS_MON_PWR_BTN_L */
0416 /*E1*/ "power-chassis-control", /* out: BMC_ASSERT_PWR_BTN */
0417 /*E2*/ "reset-button", /* in: BMC_SYS_MOS_RST_BTN_L*/
0418 /*E3*/ "reset-control", /* out: BMC_ASSERT_RST_BTN */
0419 /*E4*/ "nmi-button", /* in: BMC_SYS_MON_NMI_BTN_L */
0420 /*E5*/ "nmi-control", /* out: BMC_ASSERT_NMI_BTN */
0421 /*E6*/ "TSI_RESERT",
0422 /*E7*/ "led-heartbeat", /* out: BMC_GPIOE7 */
0423 /*F0*/ "",
0424 /*F1*/ "clear-cmos-control", /* out: BMC_ASSERT_CLR_CMOS_L */
0425 /*F2*/ "",
0426 /*F3*/ "",
0427 /*F4*/ "led-fault", /* out: BMC_HWM_FAULT_LED_L */
0428 /*F5*/ "BMC_SYS_FAULT_LED_L",
0429 /*F6*/ "BMC_ASSERT_BIOS_WP_L",
0430 /*F7*/ "",
0431 /*G0-G7*/ "","","","","","","","",
0432 /*H0-H7*/ "","","","","","","","",
0433 /*I0-I7*/ "","","","","","","","",
0434 /*J0-J7*/ "","","","","","","","",
0435 /*K0-K7*/ "","","","","","","","",
0436 /*L0-L7*/ "","","","","","","","",
0437 /*M0-M7*/ "","","","","","","","",
0438 /*N0-N7*/ "","","","","","","","",
0439 /*O0-O7*/ "","","","","","","","",
0440 /*P0-P7*/ "","","","","","","","",
0441 /*Q0*/ "",
0442 /*Q1*/ "",
0443 /*Q2*/ "",
0444 /*Q3*/ "",
0445 /*Q4*/ "",
0446 /*Q5*/ "",
0447 /*Q6*/ "id-button", /* in: BMC_CHASSIS_ID_BTN_L */
0448 /*Q7*/ "",
0449 /*R0-R7*/ "","","","","","","","",
0450 /*S0-S7*/ "","","","","","","","",
0451 /*T0-T7*/ "","","","","","","","",
0452 /*U0-U7*/ "","","","","","","","",
0453 /*V0-V7*/ "","","","","","","","",
0454 /*W0-W7*/ "","","","","","","","",
0455 /*X0-X7*/ "","","","","","","","",
0456 /*Y0-Y7*/ "","","","","","","","",
0457 /*Z0-Z2*/ "","","",
0458 /*Z3*/ "post-complete", /* BMC_SYS_MON_PWROK */
0459 /*Z4-Z7*/ "","","","",
0460 /*AA0*/ "",
0461 /*AA1*/ "",
0462 /*AA2*/ "",
0463 /*AA3*/ "",
0464 /*AA4*/ "",
0465 /*AA5*/ "",
0466 /*AA6*/ "",
0467 /*AA7*/ "BMC_ASSERT_BMC_READY",
0468 /*AB0*/ "BMC_SPD_SEL",
0469 /*AB1-AB7*/ "","","","","","","";
0470 };