// SPDX-License-Identifier: GPL-2.0+ /dts-v1/; #include "aspeed-g5.dtsi" #include <dt-bindings/gpio/aspeed-gpio.h> #include <dt-bindings/interrupt-controller/irq.h> / { model = "Tyan S8036 BMC"; compatible = "tyan,s8036-bmc", "aspeed,ast2500"; chosen { stdout-path = &uart5; bootargs = "console=ttyS4,115200 earlycon"; }; memory@80000000 { device_type = "memory"; reg = <0x80000000 0x20000000>; }; reserved-memory { #address-cells = <1>; #size-cells = <1>; ranges; p2a_memory: region@987f0000 { no-map; reg = <0x987f0000 0x00010000>; /* 64KB */ }; vga_memory: framebuffer@9f000000 { no-map; reg = <0x9f000000 0x01000000>; /* 16M */ }; gfx_memory: framebuffer { size = <0x01000000>; /* 16M */ alignment = <0x01000000>; compatible = "shared-dma-pool"; reusable; }; }; leds { compatible = "gpio-leds"; identify { gpios = <&gpio ASPEED_GPIO(A, 2) GPIO_ACTIVE_LOW>; }; heartbeat { gpios = <&gpio ASPEED_GPIO(E, 7) GPIO_ACTIVE_LOW>; }; }; iio-hwmon { compatible = "iio-hwmon"; io-channels = <&adc 0>, <&adc 1>, <&adc 2>, <&adc 3>, <&adc 4>, <&adc 5>, <&adc 6>, <&adc 7>, <&adc 8>, <&adc 9>, <&adc 10>, <&adc 11>, <&adc 12>, <&adc 13>, <&adc 14>; }; iio-hwmon-battery { compatible = "iio-hwmon"; io-channels = <&adc 15>; }; }; &fmc { status = "okay"; flash@0 { label = "bmc"; status = "okay"; m25p,fast-read; #include "openbmc-flash-layout.dtsi" }; }; &spi1 { status = "okay"; pinctrl-names = "default"; pinctrl-0 = <&pinctrl_spi1_default>; flash@0 { status = "okay"; label = "pnor"; m25p,fast-read; }; }; &uart1 { /* Rear RS-232 connector */ status = "okay"; pinctrl-names = "default"; pinctrl-0 = <&pinctrl_txd1_default &pinctrl_rxd1_default>; }; &uart2 { /* RS-232 connector on header */ status = "okay"; pinctrl-names = "default"; pinctrl-0 = <&pinctrl_txd2_default &pinctrl_rxd2_default>; }; &uart3 { /* Alternative to vuart to internally connect (route) to uart1 * when vuart cannot be used due to BIOS limitations. */ status = "okay"; }; &uart4 { /* Alternative to vuart to internally connect (route) to the * external port usually used by uart1 when vuart cannot be * used due to BIOS limitations. */ status = "okay"; }; &uart5 { /* BMC "debug" (console) UART; connected to RS-232 connector * on header; selectable via jumpers as alternative to uart2 */ status = "okay"; }; &uart_routing { status = "okay"; }; &vuart { status = "okay"; /* We enable the VUART here, but leave it in a state that does * not interfere with the SuperIO. The goal is to have both the * VUART and the SuperIO available and decide at runtime whether * the VUART should actually be used. For that reason, configure * an "invalid" IO address and an IRQ that is not used by the * BMC. */ aspeed,lpc-io-reg = <0xffff>; aspeed,lpc-interrupts = <15 IRQ_TYPE_LEVEL_HIGH>; }; &lpc_ctrl { status = "okay"; }; &p2a { status = "okay"; memory-region = <&p2a_memory>; }; &lpc_snoop { status = "okay"; snoop-ports = <0x80>; }; &adc { status = "okay"; }; &vhub { status = "okay"; }; &pwm_tacho { status = "okay"; pinctrl-names = "default"; pinctrl-0 = <&pinctrl_pwm0_default &pinctrl_pwm1_default &pinctrl_pwm3_default &pinctrl_pwm4_default>; /* CPU fan */ fan@0 { reg = <0x00>; aspeed,fan-tach-ch = /bits/ 8 <0x00>; }; /* PWM group for chassis fans #1, #2, #3 and #4 */ fan@2 { reg = <0x03>; aspeed,fan-tach-ch = /bits/ 8 <0x02>; }; fan@3 { reg = <0x03>; aspeed,fan-tach-ch = /bits/ 8 <0x03>; }; fan@4 { reg = <0x03>; aspeed,fan-tach-ch = /bits/ 8 <0x04>; }; fan@5 { reg = <0x03>; aspeed,fan-tach-ch = /bits/ 8 <0x05>; }; /* PWM group for chassis fans #5 and #6 */ fan@6 { reg = <0x04>; aspeed,fan-tach-ch = /bits/ 8 <0x06>; }; fan@7 { reg = <0x04>; aspeed,fan-tach-ch = /bits/ 8 <0x07>; }; }; &i2c0 { /* Directly connected to Sideband-Temperature Sensor Interface (APML) */ status = "okay"; }; &i2c1 { /* Directly connected to IPMB HDR. */ status = "okay"; }; &i2c2 { status = "okay"; /* BMC EEPROM, incl. mainboard FRU */ eeprom@50 { compatible = "atmel,24c256"; reg = <0x50>; }; /* Also connected to: * - BCM5720 * - FPGA * - FAN HDR * - FPIO HDR */ }; &i2c3 { status = "okay"; /* PSU1 FRU @ 0xA0 */ eeprom@50 { compatible = "atmel,24c02"; reg = <0x50>; }; /* PSU2 FRU @ 0xA2 */ eeprom@51 { compatible = "atmel,24c02"; reg = <0x51>; }; /* PSU1 @ 0xB0 */ power-supply@58 { compatible = "pmbus"; reg = <0x58>; }; /* PSU2 @ 0xB2 */ power-supply@59 { compatible = "pmbus"; reg = <0x59>; }; }; &i2c4 { status = "okay"; }; &i2c5 { status = "okay"; /* Hardware monitor with temperature sensors */ nct7802@28 { compatible = "nuvoton,nct7802"; reg = <0x28>; #address-cells = <1>; #size-cells = <0>; channel@0 { /* LTD */ reg = <0>; status = "okay"; }; channel@1 { /* RTD1 */ reg = <1>; status = "okay"; sensor-type = "temperature"; temperature-mode = "thermistor"; }; channel@2 { /* RTD2 */ reg = <2>; status = "okay"; sensor-type = "temperature"; temperature-mode = "thermistor"; }; channel@3 { /* RTD3 */ reg = <3>; status = "okay"; sensor-type = "temperature"; }; }; /* Also connected to: * - PCA9544 * - CLK BUFF * - OCP FRU */ }; &i2c6 { status = "okay"; /* Connected to: * - PCA9548 @0xE0 * - PCA9548 @0xE2 * - PCA9544 @0xE4 */ }; &i2c7 { status = "okay"; /* Connected to: * - PCH SMBUS #4 */ }; &i2c8 { status = "okay"; /* Not connected */ }; &mac0 { status = "okay"; use-ncsi; pinctrl-names = "default"; pinctrl-0 = <&pinctrl_rmii1_default>; }; &mac1 { status = "okay"; pinctrl-names = "default"; pinctrl-0 = <&pinctrl_rgmii2_default &pinctrl_mdio2_default>; }; &ibt { status = "okay"; }; &kcs1 { status = "okay"; aspeed,lpc-io-reg = <0xca8>; }; &kcs3 { status = "okay"; aspeed,lpc-io-reg = <0xca2>; aspeed,lpc-interrupts = <1 IRQ_TYPE_LEVEL_HIGH>; }; /* Enable BMC VGA output to show an early (pre-BIOS) boot screen */ &gfx { status = "okay"; memory-region = <&gfx_memory>; }; /* We're following the GPIO naming as defined at * https://github.com/openbmc/docs/blob/master/designs/device-tree-gpio-naming.md. * * Notes on led-identify and id-button: * - A physical button is connected to id-button which * triggers the clock on a D flip-flop. The /Q output of the * flip-flop drives its D input. * - The flip-flop's Q output drives led-identify which is * connected to LEDs. * - With that, every button press toggles the LED between on and off. * * Notes on power-, reset- and nmi- button and control: * - The -button signals can be used to monitor physical buttons. * - The -control signals can be used to actuate the specific * operation. * - In hardware, the -button signals are connected to the -control * signals through drivers with the -control signals being * protected through diodes. */ &gpio { status = "okay"; gpio-line-names = /*A0*/ "", /*A1*/ "", /*A2*/ "led-identify", /* in/out: BMC_CHASSIS_ID_LED_L */ /*A3*/ "", /*A4*/ "", /*A5*/ "", /*A6*/ "", /*A7*/ "", /*B0-B7*/ "","","","","","","","", /*C0-C7*/ "","","","","","","","", /*D0*/ "", /*D1*/ "", /*D2*/ "power-chassis-good", /* in: PWR_GOOD_LED -- Check if this is Z3?*/ /*D3*/ "platform-reset", /* in: RESET_LED_L */ /*D4*/ "", /*D5*/ "", /*D6*/ "", /*D7*/ "", /*E0*/ "power-button", /* in: BMC_SYS_MON_PWR_BTN_L */ /*E1*/ "power-chassis-control", /* out: BMC_ASSERT_PWR_BTN */ /*E2*/ "reset-button", /* in: BMC_SYS_MOS_RST_BTN_L*/ /*E3*/ "reset-control", /* out: BMC_ASSERT_RST_BTN */ /*E4*/ "nmi-button", /* in: BMC_SYS_MON_NMI_BTN_L */ /*E5*/ "nmi-control", /* out: BMC_ASSERT_NMI_BTN */ /*E6*/ "TSI_RESERT", /*E7*/ "led-heartbeat", /* out: BMC_GPIOE7 */ /*F0*/ "", /*F1*/ "clear-cmos-control", /* out: BMC_ASSERT_CLR_CMOS_L */ /*F2*/ "", /*F3*/ "", /*F4*/ "led-fault", /* out: BMC_HWM_FAULT_LED_L */ /*F5*/ "BMC_SYS_FAULT_LED_L", /*F6*/ "BMC_ASSERT_BIOS_WP_L", /*F7*/ "", /*G0-G7*/ "","","","","","","","", /*H0-H7*/ "","","","","","","","", /*I0-I7*/ "","","","","","","","", /*J0-J7*/ "","","","","","","","", /*K0-K7*/ "","","","","","","","", /*L0-L7*/ "","","","","","","","", /*M0-M7*/ "","","","","","","","", /*N0-N7*/ "","","","","","","","", /*O0-O7*/ "","","","","","","","", /*P0-P7*/ "","","","","","","","", /*Q0*/ "", /*Q1*/ "", /*Q2*/ "", /*Q3*/ "", /*Q4*/ "", /*Q5*/ "", /*Q6*/ "id-button", /* in: BMC_CHASSIS_ID_BTN_L */ /*Q7*/ "", /*R0-R7*/ "","","","","","","","", /*S0-S7*/ "","","","","","","","", /*T0-T7*/ "","","","","","","","", /*U0-U7*/ "","","","","","","","", /*V0-V7*/ "","","","","","","","", /*W0-W7*/ "","","","","","","","", /*X0-X7*/ "","","","","","","","", /*Y0-Y7*/ "","","","","","","","", /*Z0-Z2*/ "","","", /*Z3*/ "post-complete", /* BMC_SYS_MON_PWROK */ /*Z4-Z7*/ "","","","", /*AA0*/ "", /*AA1*/ "", /*AA2*/ "", /*AA3*/ "", /*AA4*/ "", /*AA5*/ "", /*AA6*/ "", /*AA7*/ "BMC_ASSERT_BMC_READY", /*AB0*/ "BMC_SPD_SEL", /*AB1-AB7*/ "","","","","","",""; };