Back to home page

OSCL-LXR

 
 

    


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 };