1501139a9SRenze Nicolai// SPDX-License-Identifier: GPL-2.0+ 2501139a9SRenze Nicolai/dts-v1/; 3501139a9SRenze Nicolai#include "aspeed-g5.dtsi" 4501139a9SRenze Nicolai#include <dt-bindings/gpio/aspeed-gpio.h> 5501139a9SRenze Nicolai#include <dt-bindings/leds/common.h> 6501139a9SRenze Nicolai 7501139a9SRenze Nicolai/ { 8501139a9SRenze Nicolai model = "Asrock Rack X570D4U BMC"; 9501139a9SRenze Nicolai compatible = "asrock,x570d4u-bmc", "aspeed,ast2500"; 10501139a9SRenze Nicolai 11501139a9SRenze Nicolai aliases { 12501139a9SRenze Nicolai i2c40 = &i2c4mux0ch0; 13501139a9SRenze Nicolai i2c41 = &i2c4mux0ch1; 14501139a9SRenze Nicolai i2c42 = &i2c4mux0ch2; 15501139a9SRenze Nicolai i2c43 = &i2c4mux0ch3; 16501139a9SRenze Nicolai }; 17501139a9SRenze Nicolai 18501139a9SRenze Nicolai chosen { 19501139a9SRenze Nicolai stdout-path = &uart5; 20501139a9SRenze Nicolai }; 21501139a9SRenze Nicolai 22501139a9SRenze Nicolai memory@80000000 { 23501139a9SRenze Nicolai reg = <0x80000000 0x20000000>; 24501139a9SRenze Nicolai }; 25501139a9SRenze Nicolai 26501139a9SRenze Nicolai reserved-memory { 27501139a9SRenze Nicolai #address-cells = <1>; 28501139a9SRenze Nicolai #size-cells = <1>; 29501139a9SRenze Nicolai ranges; 30501139a9SRenze Nicolai 31501139a9SRenze Nicolai pci_memory: region@9a000000 { 32501139a9SRenze Nicolai no-map; 33501139a9SRenze Nicolai reg = <0x9a000000 0x00010000>; /* 64K */ 34501139a9SRenze Nicolai }; 35501139a9SRenze Nicolai 36501139a9SRenze Nicolai video_engine_memory: jpegbuffer { 37501139a9SRenze Nicolai size = <0x02800000>; /* 40M */ 38501139a9SRenze Nicolai alignment = <0x01000000>; 39501139a9SRenze Nicolai compatible = "shared-dma-pool"; 40501139a9SRenze Nicolai reusable; 41501139a9SRenze Nicolai }; 42501139a9SRenze Nicolai 43501139a9SRenze Nicolai gfx_memory: framebuffer { 44501139a9SRenze Nicolai size = <0x01000000>; 45501139a9SRenze Nicolai alignment = <0x01000000>; 46501139a9SRenze Nicolai compatible = "shared-dma-pool"; 47501139a9SRenze Nicolai reusable; 48501139a9SRenze Nicolai }; 49501139a9SRenze Nicolai }; 50501139a9SRenze Nicolai 51501139a9SRenze Nicolai leds { 52501139a9SRenze Nicolai compatible = "gpio-leds"; 53501139a9SRenze Nicolai 54501139a9SRenze Nicolai led-0 { 55501139a9SRenze Nicolai /* led-heartbeat-n */ 56501139a9SRenze Nicolai gpios = <&gpio ASPEED_GPIO(H, 6) GPIO_ACTIVE_LOW>; 57501139a9SRenze Nicolai color = <LED_COLOR_ID_GREEN>; 58501139a9SRenze Nicolai function = LED_FUNCTION_HEARTBEAT; 59501139a9SRenze Nicolai linux,default-trigger = "timer"; 60501139a9SRenze Nicolai }; 61501139a9SRenze Nicolai 62501139a9SRenze Nicolai led-1 { 63501139a9SRenze Nicolai /* led-fault-n */ 64501139a9SRenze Nicolai gpios = <&gpio ASPEED_GPIO(Z, 2) GPIO_ACTIVE_LOW>; 65501139a9SRenze Nicolai color = <LED_COLOR_ID_AMBER>; 66501139a9SRenze Nicolai function = LED_FUNCTION_FAULT; 67501139a9SRenze Nicolai panic-indicator; 68501139a9SRenze Nicolai }; 69501139a9SRenze Nicolai }; 70501139a9SRenze Nicolai 71501139a9SRenze Nicolai iio-hwmon { 72501139a9SRenze Nicolai compatible = "iio-hwmon"; 73501139a9SRenze Nicolai io-channels = <&adc 0>, <&adc 1>, <&adc 2>, <&adc 3>, <&adc 4>, 74501139a9SRenze Nicolai <&adc 5>, <&adc 6>, <&adc 7>, <&adc 8>, <&adc 9>, 75501139a9SRenze Nicolai <&adc 10>, <&adc 11>, <&adc 12>; 76501139a9SRenze Nicolai }; 77501139a9SRenze Nicolai}; 78501139a9SRenze Nicolai 79501139a9SRenze Nicolai&gpio { 80501139a9SRenze Nicolai status = "okay"; 81501139a9SRenze Nicolai gpio-line-names = 8216252419SRenze Nicolai /* A */ "input-locatorled-n", "", "", "", "", "", "", "", 8316252419SRenze Nicolai /* B */ "input-bios-post-cmplt-n", "", "", "", "", "", "", "", 8416252419SRenze Nicolai /* C */ "", "", "", "", "", "", "control-locatorbutton-n", "", 8516252419SRenze Nicolai /* D */ "button-power-n", "control-power-n", "button-reset-n", 8616252419SRenze Nicolai "control-reset-n", "", "", "", "", 8716252419SRenze Nicolai /* E */ "", "", "", "", "", "", "", "", 8816252419SRenze Nicolai /* F */ "", "", "", "", "", "", "", "", 8916252419SRenze Nicolai /* G */ "output-hwm-vbat-enable", "input-id0-n", "input-id1-n", 9016252419SRenze Nicolai "input-id2-n", "input-aux-smb-alert-n", "", 9116252419SRenze Nicolai "input-psu-smb-alert-n", "", 9216252419SRenze Nicolai /* H */ "", "", "", "", "input-mfg-mode-n", "", 9316252419SRenze Nicolai "led-heartbeat-n", "input-case-open-n", 9416252419SRenze Nicolai /* I */ "", "", "", "", "", "", "", "", 9516252419SRenze Nicolai /* J */ "output-bmc-ready-n", "", "", "", "", "", "", "", 9616252419SRenze Nicolai /* K */ "", "", "", "", "", "", "", "", 9716252419SRenze Nicolai /* L */ "", "", "", "", "", "", "", "", 9816252419SRenze Nicolai /* M */ "", "", "", "", "", "", "", "", 9916252419SRenze Nicolai /* N */ "", "", "", "", "", "", "", "", 10016252419SRenze Nicolai /* O */ "", "", "", "", "", "", "", "", 10116252419SRenze Nicolai /* P */ "", "", "", "", "", "", "", "", 10216252419SRenze Nicolai /* Q */ "", "", "", "", "input-bmc-smb-present-n", "", "", 10316252419SRenze Nicolai "input-pcie-wake-n", 10416252419SRenze Nicolai /* R */ "", "", "", "", "", "", "", "", 10516252419SRenze Nicolai /* S */ "input-bmc-pchhot-n", "", "", "", "", "", "", "", 10616252419SRenze Nicolai /* T */ "", "", "", "", "", "", "", "", 10716252419SRenze Nicolai /* U */ "", "", "", "", "", "", "", "", 10816252419SRenze Nicolai /* V */ "", "", "", "", "", "", "", "", 10916252419SRenze Nicolai /* W */ "", "", "", "", "", "", "", "", 11016252419SRenze Nicolai /* X */ "", "", "", "", "", "", "", "", 11116252419SRenze Nicolai /* Y */ "input-sleep-s3-n", "input-sleep-s5-n", "", "", "", "", 11216252419SRenze Nicolai "", "", 11316252419SRenze Nicolai /* Z */ "", "", "led-fault-n", "output-bmc-throttle-n", "", "", 11416252419SRenze Nicolai "", "", 11516252419SRenze Nicolai /* AA */ "input-cpu1-thermtrip-latch-n", "", 11616252419SRenze Nicolai "input-cpu1-prochot-n", "", "", "", "", "", 11716252419SRenze Nicolai /* AB */ "", "input-power-good", "", "", "", "", "", "", 11816252419SRenze Nicolai /* AC */ "", "", "", "", "", "", "", ""; 119501139a9SRenze Nicolai}; 120501139a9SRenze Nicolai 121501139a9SRenze Nicolai&fmc { 122501139a9SRenze Nicolai status = "okay"; 123501139a9SRenze Nicolai flash@0 { 124501139a9SRenze Nicolai status = "okay"; 125501139a9SRenze Nicolai label = "bmc"; 126501139a9SRenze Nicolai m25p,fast-read; 127501139a9SRenze Nicolai spi-max-frequency = <10000000>; 128501139a9SRenze Nicolai#include "openbmc-flash-layout-64.dtsi" 129501139a9SRenze Nicolai }; 130501139a9SRenze Nicolai}; 131501139a9SRenze Nicolai 132501139a9SRenze Nicolai&uart5 { 133501139a9SRenze Nicolai status = "okay"; 134501139a9SRenze Nicolai}; 135501139a9SRenze Nicolai 136501139a9SRenze Nicolai&vuart { 137501139a9SRenze Nicolai status = "okay"; 138501139a9SRenze Nicolai}; 139501139a9SRenze Nicolai 140501139a9SRenze Nicolai&mac0 { 141501139a9SRenze Nicolai status = "okay"; 142501139a9SRenze Nicolai pinctrl-names = "default"; 143501139a9SRenze Nicolai pinctrl-0 = <&pinctrl_rgmii1_default &pinctrl_mdio1_default>; 144501139a9SRenze Nicolai 145501139a9SRenze Nicolai nvmem-cells = <ð0_macaddress>; 146501139a9SRenze Nicolai nvmem-cell-names = "mac-address"; 147501139a9SRenze Nicolai}; 148501139a9SRenze Nicolai 149501139a9SRenze Nicolai&mac1 { 150501139a9SRenze Nicolai status = "okay"; 151501139a9SRenze Nicolai pinctrl-names = "default"; 152501139a9SRenze Nicolai pinctrl-0 = <&pinctrl_rmii2_default &pinctrl_mdio2_default>; 153501139a9SRenze Nicolai use-ncsi; 154501139a9SRenze Nicolai 155501139a9SRenze Nicolai nvmem-cells = <ð1_macaddress>; 156501139a9SRenze Nicolai nvmem-cell-names = "mac-address"; 157501139a9SRenze Nicolai}; 158501139a9SRenze Nicolai 159501139a9SRenze Nicolai&i2c0 { 160501139a9SRenze Nicolai /* SMBus on auxiliary panel header (AUX_PANEL1) */ 161501139a9SRenze Nicolai status = "okay"; 162501139a9SRenze Nicolai}; 163501139a9SRenze Nicolai 164501139a9SRenze Nicolai&i2c1 { 165*d326aebcSRenze Nicolai /* Hardware monitoring SMBus */ 166501139a9SRenze Nicolai status = "okay"; 167501139a9SRenze Nicolai 168501139a9SRenze Nicolai w83773g@4c { 169501139a9SRenze Nicolai compatible = "nuvoton,w83773g"; 170501139a9SRenze Nicolai reg = <0x4c>; 171501139a9SRenze Nicolai }; 172501139a9SRenze Nicolai}; 173501139a9SRenze Nicolai 174501139a9SRenze Nicolai&i2c2 { 175501139a9SRenze Nicolai /* PSU SMBus (PSU_SMB1) */ 176501139a9SRenze Nicolai status = "okay"; 177501139a9SRenze Nicolai}; 178501139a9SRenze Nicolai 179501139a9SRenze Nicolai&i2c3 { 180501139a9SRenze Nicolai status = "okay"; 181501139a9SRenze Nicolai}; 182501139a9SRenze Nicolai 183501139a9SRenze Nicolai&i2c4 { 184501139a9SRenze Nicolai status = "okay"; 185501139a9SRenze Nicolai 186501139a9SRenze Nicolai i2c-mux@70 { 187501139a9SRenze Nicolai compatible = "nxp,pca9545"; 188501139a9SRenze Nicolai reg = <0x70>; 189501139a9SRenze Nicolai #address-cells = <1>; 190501139a9SRenze Nicolai #size-cells = <0>; 191501139a9SRenze Nicolai 192501139a9SRenze Nicolai i2c4mux0ch0: i2c@0 { 193501139a9SRenze Nicolai /* SMBus on PCI express 16x slot */ 194501139a9SRenze Nicolai #address-cells = <1>; 195501139a9SRenze Nicolai #size-cells = <0>; 196501139a9SRenze Nicolai reg = <0>; 197501139a9SRenze Nicolai }; 198501139a9SRenze Nicolai 199501139a9SRenze Nicolai i2c4mux0ch1: i2c@1 { 200501139a9SRenze Nicolai /* SMBus on PCI express 8x slot */ 201501139a9SRenze Nicolai #address-cells = <1>; 202501139a9SRenze Nicolai #size-cells = <0>; 203501139a9SRenze Nicolai reg = <1>; 204501139a9SRenze Nicolai }; 205501139a9SRenze Nicolai 206501139a9SRenze Nicolai i2c4mux0ch2: i2c@2 { 207501139a9SRenze Nicolai /* Unknown */ 208501139a9SRenze Nicolai #address-cells = <1>; 209501139a9SRenze Nicolai #size-cells = <0>; 210501139a9SRenze Nicolai reg = <2>; 211501139a9SRenze Nicolai }; 212501139a9SRenze Nicolai 213501139a9SRenze Nicolai i2c4mux0ch3: i2c@3 { 214501139a9SRenze Nicolai /* SMBus on PCI express 1x slot */ 215501139a9SRenze Nicolai #address-cells = <1>; 216501139a9SRenze Nicolai #size-cells = <0>; 217501139a9SRenze Nicolai reg = <3>; 218501139a9SRenze Nicolai }; 219501139a9SRenze Nicolai }; 220501139a9SRenze Nicolai}; 221501139a9SRenze Nicolai 222501139a9SRenze Nicolai&i2c5 { 223*d326aebcSRenze Nicolai /* SMBus on BMC connector (BMC_SMB_1) */ 224501139a9SRenze Nicolai status = "okay"; 225501139a9SRenze Nicolai}; 226501139a9SRenze Nicolai 227501139a9SRenze Nicolai&i2c7 { 228501139a9SRenze Nicolai /* FRU and SPD EEPROM SMBus */ 229501139a9SRenze Nicolai status = "okay"; 230501139a9SRenze Nicolai 231501139a9SRenze Nicolai eeprom@57 { 232501139a9SRenze Nicolai compatible = "st,24c128", "atmel,24c128"; 233501139a9SRenze Nicolai reg = <0x57>; 234501139a9SRenze Nicolai pagesize = <16>; 235501139a9SRenze Nicolai #address-cells = <1>; 236501139a9SRenze Nicolai #size-cells = <1>; 237501139a9SRenze Nicolai 238501139a9SRenze Nicolai eth0_macaddress: macaddress@3f80 { 239501139a9SRenze Nicolai reg = <0x3f80 6>; 240501139a9SRenze Nicolai }; 241501139a9SRenze Nicolai 242501139a9SRenze Nicolai eth1_macaddress: macaddress@3f88 { 243501139a9SRenze Nicolai reg = <0x3f88 6>; 244501139a9SRenze Nicolai }; 245501139a9SRenze Nicolai }; 246501139a9SRenze Nicolai}; 247501139a9SRenze Nicolai 248*d326aebcSRenze Nicolai&i2c8 { 249*d326aebcSRenze Nicolai /* SMBus on intelligent platform management bus header (IPMB_1) */ 250*d326aebcSRenze Nicolai status = "okay"; 251*d326aebcSRenze Nicolai}; 252*d326aebcSRenze Nicolai 253501139a9SRenze Nicolai&gfx { 254501139a9SRenze Nicolai status = "okay"; 255501139a9SRenze Nicolai}; 256501139a9SRenze Nicolai 257501139a9SRenze Nicolai&vhub { 258501139a9SRenze Nicolai status = "okay"; 259501139a9SRenze Nicolai}; 260501139a9SRenze Nicolai 261501139a9SRenze Nicolai&ehci1 { 262501139a9SRenze Nicolai status = "okay"; 263501139a9SRenze Nicolai}; 264501139a9SRenze Nicolai 265501139a9SRenze Nicolai&uhci { 266501139a9SRenze Nicolai status = "okay"; 267501139a9SRenze Nicolai}; 268501139a9SRenze Nicolai 269501139a9SRenze Nicolai&kcs3 { 270501139a9SRenze Nicolai aspeed,lpc-io-reg = <0xca2>; 271501139a9SRenze Nicolai status = "okay"; 272501139a9SRenze Nicolai}; 273501139a9SRenze Nicolai 274501139a9SRenze Nicolai&lpc_ctrl { 275501139a9SRenze Nicolai status = "okay"; 276501139a9SRenze Nicolai}; 277501139a9SRenze Nicolai 278501139a9SRenze Nicolai&lpc_snoop { 279501139a9SRenze Nicolai status = "okay"; 280501139a9SRenze Nicolai snoop-ports = <0x80>; 281501139a9SRenze Nicolai}; 282501139a9SRenze Nicolai 283501139a9SRenze Nicolai&p2a { 284501139a9SRenze Nicolai status = "okay"; 285501139a9SRenze Nicolai memory-region = <&pci_memory>; 286501139a9SRenze Nicolai}; 287501139a9SRenze Nicolai 288501139a9SRenze Nicolai&video { 289501139a9SRenze Nicolai status = "okay"; 290501139a9SRenze Nicolai memory-region = <&video_engine_memory>; 291501139a9SRenze Nicolai}; 292501139a9SRenze Nicolai 293501139a9SRenze Nicolai&pwm_tacho { 294501139a9SRenze Nicolai status = "okay"; 295501139a9SRenze Nicolai pinctrl-names = "default"; 296501139a9SRenze Nicolai pinctrl-0 = <&pinctrl_pwm0_default 297501139a9SRenze Nicolai &pinctrl_pwm1_default 298501139a9SRenze Nicolai &pinctrl_pwm2_default 299501139a9SRenze Nicolai &pinctrl_pwm3_default 300501139a9SRenze Nicolai &pinctrl_pwm4_default 301501139a9SRenze Nicolai &pinctrl_pwm5_default>; 302501139a9SRenze Nicolai 303501139a9SRenze Nicolai fan@0 { 304501139a9SRenze Nicolai /* FAN1 (4-pin) */ 305501139a9SRenze Nicolai reg = <0x00>; 306501139a9SRenze Nicolai aspeed,fan-tach-ch = /bits/ 8 <0x00>; 307501139a9SRenze Nicolai }; 308501139a9SRenze Nicolai 309501139a9SRenze Nicolai fan@1 { 310501139a9SRenze Nicolai /* FAN2 (4-pin) */ 311501139a9SRenze Nicolai reg = <0x01>; 312501139a9SRenze Nicolai aspeed,fan-tach-ch = /bits/ 8 <0x01>; 313501139a9SRenze Nicolai }; 314501139a9SRenze Nicolai 315501139a9SRenze Nicolai fan@2 { 316501139a9SRenze Nicolai /* FAN3 (4-pin) */ 317501139a9SRenze Nicolai reg = <0x02>; 318501139a9SRenze Nicolai aspeed,fan-tach-ch = /bits/ 8 <0x02>; 319501139a9SRenze Nicolai }; 320501139a9SRenze Nicolai 321501139a9SRenze Nicolai fan@3 { 322501139a9SRenze Nicolai /* FAN4 (6-pin) */ 323501139a9SRenze Nicolai reg = <0x03>; 324501139a9SRenze Nicolai aspeed,fan-tach-ch = /bits/ 8 <0x04 0x0b>; 325501139a9SRenze Nicolai }; 326501139a9SRenze Nicolai 327501139a9SRenze Nicolai fan@4 { 328501139a9SRenze Nicolai /* FAN6 (6-pin) */ 329501139a9SRenze Nicolai reg = <0x04>; 330501139a9SRenze Nicolai aspeed,fan-tach-ch = /bits/ 8 <0x06 0x0d>; 331501139a9SRenze Nicolai }; 332501139a9SRenze Nicolai 333501139a9SRenze Nicolai fan@5 { 334501139a9SRenze Nicolai /* FAN5 (6-pin) */ 335501139a9SRenze Nicolai reg = <0x05>; 336501139a9SRenze Nicolai aspeed,fan-tach-ch = /bits/ 8 <0x05 0x0c>; 337501139a9SRenze Nicolai }; 338501139a9SRenze Nicolai}; 339501139a9SRenze Nicolai 340501139a9SRenze Nicolai&adc { 341501139a9SRenze Nicolai status = "okay"; 342501139a9SRenze Nicolai pinctrl-names = "default"; 343da10d27dSRenze Nicolai pinctrl-0 = <&pinctrl_adc0_default /* 3VSB */ 344da10d27dSRenze Nicolai &pinctrl_adc1_default /* 5VSB */ 345da10d27dSRenze Nicolai &pinctrl_adc2_default /* VCPU */ 346da10d27dSRenze Nicolai &pinctrl_adc3_default /* VSOC */ 347da10d27dSRenze Nicolai &pinctrl_adc4_default /* VCCM */ 348da10d27dSRenze Nicolai &pinctrl_adc5_default /* APU-VDDP */ 349da10d27dSRenze Nicolai &pinctrl_adc6_default /* PM-VDD-CLDO */ 350da10d27dSRenze Nicolai &pinctrl_adc7_default /* PM-VDDCR-S5 */ 351da10d27dSRenze Nicolai &pinctrl_adc8_default /* PM-VDDCR */ 352da10d27dSRenze Nicolai &pinctrl_adc9_default /* VBAT */ 353da10d27dSRenze Nicolai &pinctrl_adc10_default /* 3V */ 354da10d27dSRenze Nicolai &pinctrl_adc11_default /* 5V */ 355da10d27dSRenze Nicolai &pinctrl_adc12_default>; /* 12V */ 356501139a9SRenze Nicolai}; 357