1724ba675SRob Herring// SPDX-License-Identifier: GPL-2.0+ 2724ba675SRob Herring/dts-v1/; 3724ba675SRob Herring 4724ba675SRob Herring#include "aspeed-g4.dtsi" 5724ba675SRob Herring#include <dt-bindings/gpio/aspeed-gpio.h> 6724ba675SRob Herring 7724ba675SRob Herring#define EFUSE_OUTPUT(n) \ 8724ba675SRob Herring efuse##n { \ 9724ba675SRob Herring compatible = "regulator-output"; \ 10724ba675SRob Herring vout-supply = <&efuse##n>; \ 11724ba675SRob Herring } 12724ba675SRob Herring 13724ba675SRob Herring#define __stringify(x) #x 14724ba675SRob Herring 15724ba675SRob Herring#define EFUSE(hexaddr, num) \ 16724ba675SRob Herring efuse@##hexaddr { \ 17471c23ecSZev Weiss compatible = "ti,lm25066"; \ 18724ba675SRob Herring reg = <0x##hexaddr>; \ 19724ba675SRob Herring shunt-resistor-micro-ohms = <675>; \ 20724ba675SRob Herring regulators { \ 217af851f2SZev Weiss efuse##num: vout { \ 22724ba675SRob Herring regulator-name = __stringify(efuse##num##-reg); \ 23724ba675SRob Herring }; \ 24724ba675SRob Herring }; \ 25724ba675SRob Herring } 26724ba675SRob Herring 27724ba675SRob Herring/{ 28724ba675SRob Herring model = "Delta Power AHE-50DC"; 29724ba675SRob Herring compatible = "delta,ahe50dc-bmc", "aspeed,ast2400"; 30724ba675SRob Herring 31724ba675SRob Herring aliases { 32724ba675SRob Herring serial4 = &uart5; 33724ba675SRob Herring 34724ba675SRob Herring /* 35724ba675SRob Herring * pca9541-arbitrated logical i2c buses are numbered as the 36724ba675SRob Herring * corresponding physical bus plus 20 37724ba675SRob Herring */ 38724ba675SRob Herring i2c20 = &i2carb0; 39724ba675SRob Herring i2c21 = &i2carb1; 40724ba675SRob Herring i2c22 = &i2carb2; 41724ba675SRob Herring i2c23 = &i2carb3; 42724ba675SRob Herring i2c24 = &i2carb4; 43724ba675SRob Herring i2c26 = &i2carb6; 44724ba675SRob Herring i2c27 = &i2carb7; 45724ba675SRob Herring i2c28 = &i2carb8; 46724ba675SRob Herring i2c32 = &i2carb12; 47724ba675SRob Herring }; 48724ba675SRob Herring 49724ba675SRob Herring chosen { 50724ba675SRob Herring stdout-path = &uart3; 51724ba675SRob Herring bootargs = "console=ttyS2,115200n8 earlycon"; 52724ba675SRob Herring }; 53724ba675SRob Herring 54724ba675SRob Herring memory@40000000 { 55724ba675SRob Herring reg = <0x40000000 0x10000000>; 56724ba675SRob Herring }; 57724ba675SRob Herring 58724ba675SRob Herring leds { 59724ba675SRob Herring compatible = "gpio-leds"; 60724ba675SRob Herring 61724ba675SRob Herring heartbeat { 62724ba675SRob Herring gpios = <&gpio ASPEED_GPIO(P, 0) GPIO_ACTIVE_HIGH>; 63724ba675SRob Herring linux,default-trigger = "heartbeat"; 64724ba675SRob Herring }; 65724ba675SRob Herring 66724ba675SRob Herring panic { 67724ba675SRob Herring gpios = <&gpio ASPEED_GPIO(P, 2) GPIO_ACTIVE_HIGH>; 68724ba675SRob Herring linux,default-trigger = "panic"; 69724ba675SRob Herring }; 70724ba675SRob Herring }; 71724ba675SRob Herring 72724ba675SRob Herring iio-hwmon { 73724ba675SRob Herring compatible = "iio-hwmon"; 74724ba675SRob Herring io-channels = <&adc 0>, <&adc 1>, <&adc 2>, <&adc 3>, <&adc 4>, 75724ba675SRob Herring <&adc 5>, <&adc 6>, <&adc 7>, <&adc 8>, <&adc 9>; 76724ba675SRob Herring }; 77724ba675SRob Herring 78724ba675SRob Herring EFUSE_OUTPUT(01); 79724ba675SRob Herring EFUSE_OUTPUT(02); 80724ba675SRob Herring EFUSE_OUTPUT(03); 81724ba675SRob Herring EFUSE_OUTPUT(04); 82724ba675SRob Herring EFUSE_OUTPUT(05); 83724ba675SRob Herring EFUSE_OUTPUT(06); 84724ba675SRob Herring EFUSE_OUTPUT(07); 85724ba675SRob Herring EFUSE_OUTPUT(08); 86724ba675SRob Herring EFUSE_OUTPUT(09); 87724ba675SRob Herring EFUSE_OUTPUT(10); 88724ba675SRob Herring EFUSE_OUTPUT(11); 89724ba675SRob Herring EFUSE_OUTPUT(12); 90724ba675SRob Herring EFUSE_OUTPUT(13); 91724ba675SRob Herring EFUSE_OUTPUT(14); 92724ba675SRob Herring EFUSE_OUTPUT(15); 93724ba675SRob Herring EFUSE_OUTPUT(16); 94724ba675SRob Herring EFUSE_OUTPUT(17); 95724ba675SRob Herring EFUSE_OUTPUT(18); 96724ba675SRob Herring EFUSE_OUTPUT(19); 97724ba675SRob Herring EFUSE_OUTPUT(20); 98724ba675SRob Herring EFUSE_OUTPUT(21); 99724ba675SRob Herring EFUSE_OUTPUT(22); 100724ba675SRob Herring EFUSE_OUTPUT(23); 101724ba675SRob Herring EFUSE_OUTPUT(24); 102724ba675SRob Herring EFUSE_OUTPUT(25); 103724ba675SRob Herring EFUSE_OUTPUT(26); 104724ba675SRob Herring EFUSE_OUTPUT(27); 105724ba675SRob Herring EFUSE_OUTPUT(28); 106724ba675SRob Herring EFUSE_OUTPUT(29); 107724ba675SRob Herring EFUSE_OUTPUT(30); 108724ba675SRob Herring EFUSE_OUTPUT(31); 109724ba675SRob Herring EFUSE_OUTPUT(32); 110724ba675SRob Herring EFUSE_OUTPUT(33); 111724ba675SRob Herring EFUSE_OUTPUT(34); 112724ba675SRob Herring EFUSE_OUTPUT(35); 113724ba675SRob Herring EFUSE_OUTPUT(36); 114724ba675SRob Herring EFUSE_OUTPUT(37); 115724ba675SRob Herring EFUSE_OUTPUT(38); 116724ba675SRob Herring EFUSE_OUTPUT(39); 117724ba675SRob Herring EFUSE_OUTPUT(40); 118724ba675SRob Herring EFUSE_OUTPUT(41); 119724ba675SRob Herring EFUSE_OUTPUT(42); 120724ba675SRob Herring EFUSE_OUTPUT(43); 121724ba675SRob Herring EFUSE_OUTPUT(44); 122724ba675SRob Herring EFUSE_OUTPUT(45); 123724ba675SRob Herring EFUSE_OUTPUT(46); 124724ba675SRob Herring EFUSE_OUTPUT(47); 125724ba675SRob Herring EFUSE_OUTPUT(48); 126724ba675SRob Herring EFUSE_OUTPUT(49); 127724ba675SRob Herring EFUSE_OUTPUT(50); 128724ba675SRob Herring 129724ba675SRob Herring}; 130724ba675SRob Herring 131724ba675SRob Herring&fmc { 132724ba675SRob Herring status = "okay"; 133724ba675SRob Herring 134724ba675SRob Herring flash@0 { 135724ba675SRob Herring status = "okay"; 136724ba675SRob Herring m25p,fast-read; 137724ba675SRob Herring label = "flash0"; 138724ba675SRob Herring spi-max-frequency = <50000000>; // 50 MHz 139724ba675SRob Herring#include "openbmc-flash-layout.dtsi" 140724ba675SRob Herring }; 141724ba675SRob Herring}; 142724ba675SRob Herring 143724ba675SRob Herring&uart3 { 144724ba675SRob Herring status = "okay"; 145724ba675SRob Herring}; 146724ba675SRob Herring 147724ba675SRob Herring&mac1 { 148724ba675SRob Herring status = "okay"; 149724ba675SRob Herring pinctrl-names = "default"; 150724ba675SRob Herring pinctrl-0 = <&pinctrl_rgmii2_default &pinctrl_mdio2_default>; 151724ba675SRob Herring}; 152724ba675SRob Herring 153724ba675SRob Herring&i2c0 { 154724ba675SRob Herring status = "okay"; 155724ba675SRob Herring bus-frequency = <200000>; 156724ba675SRob Herring 157724ba675SRob Herring pca9541@79 { 158724ba675SRob Herring compatible = "nxp,pca9541"; 159724ba675SRob Herring reg = <0x79>; 160724ba675SRob Herring 161724ba675SRob Herring i2carb0: i2c-arb { 162724ba675SRob Herring #address-cells = <1>; 163724ba675SRob Herring #size-cells = <0>; 164724ba675SRob Herring 165724ba675SRob Herring /* lm25066 efuses @ 10-17, 40-47, 50-57 */ 166724ba675SRob Herring EFUSE(10, 03); 167724ba675SRob Herring EFUSE(11, 04); 168724ba675SRob Herring EFUSE(12, 01); 169724ba675SRob Herring EFUSE(13, 02); 170724ba675SRob Herring EFUSE(14, 13); 171724ba675SRob Herring EFUSE(15, 14); 172724ba675SRob Herring EFUSE(16, 15); 173724ba675SRob Herring EFUSE(17, 16); 174724ba675SRob Herring EFUSE(40, 12); 175724ba675SRob Herring EFUSE(41, 11); 176724ba675SRob Herring EFUSE(42, 10); 177724ba675SRob Herring EFUSE(43, 09); 178724ba675SRob Herring EFUSE(44, 08); 179724ba675SRob Herring EFUSE(45, 07); 180724ba675SRob Herring EFUSE(46, 05); 181724ba675SRob Herring EFUSE(47, 06); 182724ba675SRob Herring EFUSE(50, 17); 183724ba675SRob Herring EFUSE(51, 18); 184724ba675SRob Herring EFUSE(52, 20); 185724ba675SRob Herring EFUSE(53, 19); 186724ba675SRob Herring EFUSE(54, 22); 187724ba675SRob Herring EFUSE(55, 21); 188724ba675SRob Herring EFUSE(56, 24); 189724ba675SRob Herring EFUSE(57, 23); 190724ba675SRob Herring }; 191724ba675SRob Herring }; 192724ba675SRob Herring}; 193724ba675SRob Herring 194724ba675SRob Herring&i2c1 { 195724ba675SRob Herring status = "okay"; 196724ba675SRob Herring bus-frequency = <200000>; 197724ba675SRob Herring 198724ba675SRob Herring pca9541@72 { 199724ba675SRob Herring compatible = "nxp,pca9541"; 200724ba675SRob Herring reg = <0x72>; 201724ba675SRob Herring 202724ba675SRob Herring i2carb1: i2c-arb { 203724ba675SRob Herring #address-cells = <1>; 204724ba675SRob Herring #size-cells = <0>; 205724ba675SRob Herring }; 206724ba675SRob Herring }; 207724ba675SRob Herring}; 208724ba675SRob Herring 209724ba675SRob Herring&i2c2 { 210724ba675SRob Herring status = "okay"; 211724ba675SRob Herring bus-frequency = <200000>; 212724ba675SRob Herring 213724ba675SRob Herring pca9541@73 { 214724ba675SRob Herring compatible = "nxp,pca9541"; 215724ba675SRob Herring reg = <0x73>; 216724ba675SRob Herring 217724ba675SRob Herring i2carb2: i2c-arb { 218724ba675SRob Herring #address-cells = <1>; 219724ba675SRob Herring #size-cells = <0>; 220724ba675SRob Herring }; 221724ba675SRob Herring }; 222724ba675SRob Herring}; 223724ba675SRob Herring 224724ba675SRob Herring&i2c3 { 225724ba675SRob Herring status = "okay"; 226724ba675SRob Herring bus-frequency = <200000>; 227724ba675SRob Herring 228724ba675SRob Herring pca9541@74 { 229724ba675SRob Herring compatible = "nxp,pca9541"; 230724ba675SRob Herring reg = <0x74>; 231724ba675SRob Herring 232724ba675SRob Herring i2carb3: i2c-arb { 233724ba675SRob Herring #address-cells = <1>; 234724ba675SRob Herring #size-cells = <0>; 235724ba675SRob Herring }; 236724ba675SRob Herring }; 237724ba675SRob Herring}; 238724ba675SRob Herring 239724ba675SRob Herring&i2c4 { 240724ba675SRob Herring status = "okay"; 241724ba675SRob Herring bus-frequency = <200000>; 242724ba675SRob Herring 243724ba675SRob Herring pca9541@7a { 244724ba675SRob Herring compatible = "nxp,pca9541"; 245724ba675SRob Herring reg = <0x7a>; 246724ba675SRob Herring 247724ba675SRob Herring i2carb4: i2c-arb { 248724ba675SRob Herring #address-cells = <1>; 249724ba675SRob Herring #size-cells = <0>; 250724ba675SRob Herring 251724ba675SRob Herring gpio@20 { 252724ba675SRob Herring compatible = "nxp,pca9534"; 253724ba675SRob Herring reg = <0x20>; 254724ba675SRob Herring gpio-controller; 255724ba675SRob Herring #gpio-cells = <2>; 256724ba675SRob Herring }; 257724ba675SRob Herring 258724ba675SRob Herring /* lm25066 efuses @ 10-17, 40-47, 50-57, 59, 5a */ 259724ba675SRob Herring EFUSE(10, 27); 260724ba675SRob Herring EFUSE(11, 28); 261724ba675SRob Herring EFUSE(12, 25); 262724ba675SRob Herring EFUSE(13, 26); 263724ba675SRob Herring EFUSE(14, 37); 264724ba675SRob Herring EFUSE(15, 38); 265724ba675SRob Herring EFUSE(16, 39); 266724ba675SRob Herring EFUSE(17, 40); 267724ba675SRob Herring EFUSE(40, 36); 268724ba675SRob Herring EFUSE(41, 35); 269724ba675SRob Herring EFUSE(42, 34); 270724ba675SRob Herring EFUSE(43, 33); 271724ba675SRob Herring EFUSE(44, 32); 272724ba675SRob Herring EFUSE(45, 31); 273724ba675SRob Herring EFUSE(46, 29); 274724ba675SRob Herring EFUSE(47, 30); 275724ba675SRob Herring EFUSE(50, 41); 276724ba675SRob Herring EFUSE(51, 42); 277724ba675SRob Herring EFUSE(52, 44); 278724ba675SRob Herring EFUSE(53, 43); 279724ba675SRob Herring EFUSE(54, 46); 280724ba675SRob Herring EFUSE(55, 45); 281724ba675SRob Herring EFUSE(56, 48); 282724ba675SRob Herring EFUSE(57, 47); 283724ba675SRob Herring EFUSE(59, 49); 284724ba675SRob Herring EFUSE(5a, 50); 285724ba675SRob Herring }; 286724ba675SRob Herring }; 287724ba675SRob Herring}; 288724ba675SRob Herring 289724ba675SRob Herring&i2c6 { 290724ba675SRob Herring status = "okay"; 291724ba675SRob Herring bus-frequency = <200000>; 292724ba675SRob Herring 293724ba675SRob Herring pca9541@75 { 294724ba675SRob Herring compatible = "nxp,pca9541"; 295724ba675SRob Herring reg = <0x75>; 296724ba675SRob Herring 297724ba675SRob Herring i2carb6: i2c-arb { 298724ba675SRob Herring #address-cells = <1>; 299724ba675SRob Herring #size-cells = <0>; 300724ba675SRob Herring }; 301724ba675SRob Herring }; 302724ba675SRob Herring}; 303724ba675SRob Herring 304724ba675SRob Herring&i2c7 { 305724ba675SRob Herring status = "okay"; 306724ba675SRob Herring bus-frequency = <200000>; 307724ba675SRob Herring 308724ba675SRob Herring pca9541@76 { 309724ba675SRob Herring compatible = "nxp,pca9541"; 310724ba675SRob Herring reg = <0x76>; 311724ba675SRob Herring 312724ba675SRob Herring i2carb7: i2c-arb { 313724ba675SRob Herring #address-cells = <1>; 314724ba675SRob Herring #size-cells = <0>; 315724ba675SRob Herring }; 316724ba675SRob Herring }; 317724ba675SRob Herring}; 318724ba675SRob Herring 319724ba675SRob Herring&i2c8 { 320724ba675SRob Herring status = "okay"; 321724ba675SRob Herring bus-frequency = <200000>; 322724ba675SRob Herring 323724ba675SRob Herring pca9541@7c { 324724ba675SRob Herring compatible = "nxp,pca9541"; 325724ba675SRob Herring reg = <0x7c>; 326724ba675SRob Herring 327724ba675SRob Herring i2carb8: i2c-arb { 328724ba675SRob Herring #address-cells = <1>; 329724ba675SRob Herring #size-cells = <0>; 330724ba675SRob Herring 331724ba675SRob Herring fancontrol@30 { 332724ba675SRob Herring compatible = "delta,ahe50dc-fan"; 333724ba675SRob Herring reg = <0x30>; 334724ba675SRob Herring }; 335724ba675SRob Herring 336724ba675SRob Herring /* Baseboard FRU eeprom */ 337724ba675SRob Herring eeprom@50 { 338724ba675SRob Herring compatible = "atmel,24c02"; 339724ba675SRob Herring reg = <0x50>; 340724ba675SRob Herring }; 341724ba675SRob Herring }; 342724ba675SRob Herring }; 343724ba675SRob Herring}; 344724ba675SRob Herring 345724ba675SRob Herring&i2c12 { 346724ba675SRob Herring status = "okay"; 347724ba675SRob Herring bus-frequency = <200000>; 348724ba675SRob Herring 349724ba675SRob Herring pca9541@71 { 350724ba675SRob Herring compatible = "nxp,pca9541"; 351724ba675SRob Herring reg = <0x71>; 352724ba675SRob Herring 353724ba675SRob Herring i2carb12: i2c-arb { 354724ba675SRob Herring #address-cells = <1>; 355724ba675SRob Herring #size-cells = <0>; 356724ba675SRob Herring }; 357724ba675SRob Herring }; 358724ba675SRob Herring}; 359724ba675SRob Herring 360724ba675SRob Herring&gpio { 361724ba675SRob Herring status = "okay"; 362724ba675SRob Herring gpio-line-names = 363724ba675SRob Herring /* A */ "", "", "", "", "", "", "", "", 364724ba675SRob Herring /* B */ "", "", "", "", "", "", "", "", 365724ba675SRob Herring /* C */ "RESET_PEER_N", "HEARTBEAT_OUT", "", "", "", "", "", "", 366724ba675SRob Herring /* D */ "", "", "", "", "", "", "", "", 367724ba675SRob Herring /* E */ "DOOM_N", "", "", "", "", "LED_PWR_BLUE", "", "", 368724ba675SRob Herring /* F */ "", "", "", "", "", "", "", "", 369724ba675SRob Herring /* G */ "", "", "", "", "", "", "", "", 370724ba675SRob Herring /* H */ "", "", "", "", "", "", "", "", 371724ba675SRob Herring /* I */ "", "", "", "", "", "", "", "", 372724ba675SRob Herring /* J */ "", "", "BMC_ID", "", "", "", "", "", 373724ba675SRob Herring /* K */ "", "", "", "", "", "", "", "", 374724ba675SRob Herring /* L */ "", "", "", "", "", "", "", "", 375724ba675SRob Herring /* M */ "", "", "", "", "", "", "", "", 376724ba675SRob Herring /* N */ "", "", "", "", "", "", "", "", 377724ba675SRob Herring /* O */ "", "", "", "", "", "", "", "", 378724ba675SRob Herring /* P */ "LED_GREEN", "", "LED_RED", "", "", "", "", "", 379724ba675SRob Herring /* Q */ "", "", "", "", "", "", "", "", 380724ba675SRob Herring /* R */ "", "", "", "", "", "", "", "", 381724ba675SRob Herring /* S */ "", "", "", "", "", "", "", "", 382724ba675SRob Herring /* T */ "", "", "", "", "", "", "", "", 383724ba675SRob Herring /* U */ "", "", "", "", "", "", "", "", 384724ba675SRob Herring /* V */ "", "", "", "", "", "", "", "", 385724ba675SRob Herring /* W */ "", "", "", "", "", "", "", "", 386724ba675SRob Herring /* X */ "", "", "", "", "", "", "", "", 387724ba675SRob Herring /* Y */ "HEARTBEAT_IN", "BOARDREV0", "BOARDREV1", "", 388724ba675SRob Herring /* Z */ "", "", "", "", "", "", "", "", 389724ba675SRob Herring /* AA */ "", "", "", "", "", "", "", "", 390724ba675SRob Herring /* AB */ "", "", "", ""; 391724ba675SRob Herring 392724ba675SRob Herring /* 393724ba675SRob Herring * I don't rightly know what this GPIO really *is*, but setting it to 394724ba675SRob Herring * zero causes the fans to run at full speed, after which setting it 395724ba675SRob Herring * back to one causes a power output glitch, so install a hog to keep 396724ba675SRob Herring * it at one as a failsafe to ensure nothing accidentally touches it. 397724ba675SRob Herring */ 398724ba675SRob Herring doom-guardrail { 399724ba675SRob Herring gpio-hog; 400724ba675SRob Herring gpios = <ASPEED_GPIO(E, 0) GPIO_ACTIVE_LOW>; 401724ba675SRob Herring output-low; 402724ba675SRob Herring }; 403724ba675SRob Herring}; 404724ba675SRob Herring 405724ba675SRob Herring&adc { 406724ba675SRob Herring status = "okay"; 407724ba675SRob Herring pinctrl-names = "default"; 408724ba675SRob Herring pinctrl-0 = <&pinctrl_adc0_default 409724ba675SRob Herring &pinctrl_adc1_default 410724ba675SRob Herring &pinctrl_adc2_default 411724ba675SRob Herring &pinctrl_adc3_default 412724ba675SRob Herring &pinctrl_adc4_default 413724ba675SRob Herring &pinctrl_adc5_default 414724ba675SRob Herring &pinctrl_adc6_default 415724ba675SRob Herring &pinctrl_adc7_default 416724ba675SRob Herring &pinctrl_adc8_default 417724ba675SRob Herring &pinctrl_adc9_default>; 418724ba675SRob Herring}; 419