1// SPDX-License-Identifier: GPL-2.0+ 2/dts-v1/; 3 4#include "aspeed-g4.dtsi" 5#include <dt-bindings/gpio/aspeed-gpio.h> 6 7#define EFUSE_OUTPUT(n) \ 8 efuse##n { \ 9 compatible = "regulator-output"; \ 10 vout-supply = <&efuse##n>; \ 11 } 12 13#define __stringify(x) #x 14 15#define EFUSE(hexaddr, num) \ 16 efuse@##hexaddr { \ 17 compatible = "ti,lm25066"; \ 18 reg = <0x##hexaddr>; \ 19 shunt-resistor-micro-ohms = <675>; \ 20 regulators { \ 21 efuse##num: vout { \ 22 regulator-name = __stringify(efuse##num##-reg); \ 23 }; \ 24 }; \ 25 } 26 27/{ 28 model = "Delta Power AHE-50DC"; 29 compatible = "delta,ahe50dc-bmc", "aspeed,ast2400"; 30 31 aliases { 32 serial4 = &uart5; 33 34 /* 35 * pca9541-arbitrated logical i2c buses are numbered as the 36 * corresponding physical bus plus 20 37 */ 38 i2c20 = &i2carb0; 39 i2c21 = &i2carb1; 40 i2c22 = &i2carb2; 41 i2c23 = &i2carb3; 42 i2c24 = &i2carb4; 43 i2c26 = &i2carb6; 44 i2c27 = &i2carb7; 45 i2c28 = &i2carb8; 46 i2c32 = &i2carb12; 47 }; 48 49 chosen { 50 stdout-path = &uart3; 51 bootargs = "console=ttyS2,115200n8 earlycon"; 52 }; 53 54 memory@40000000 { 55 reg = <0x40000000 0x10000000>; 56 }; 57 58 leds { 59 compatible = "gpio-leds"; 60 61 heartbeat { 62 gpios = <&gpio ASPEED_GPIO(P, 0) GPIO_ACTIVE_HIGH>; 63 linux,default-trigger = "heartbeat"; 64 }; 65 66 panic { 67 gpios = <&gpio ASPEED_GPIO(P, 2) GPIO_ACTIVE_HIGH>; 68 linux,default-trigger = "panic"; 69 }; 70 }; 71 72 iio-hwmon { 73 compatible = "iio-hwmon"; 74 io-channels = <&adc 0>, <&adc 1>, <&adc 2>, <&adc 3>, <&adc 4>, 75 <&adc 5>, <&adc 6>, <&adc 7>, <&adc 8>, <&adc 9>; 76 }; 77 78 EFUSE_OUTPUT(01); 79 EFUSE_OUTPUT(02); 80 EFUSE_OUTPUT(03); 81 EFUSE_OUTPUT(04); 82 EFUSE_OUTPUT(05); 83 EFUSE_OUTPUT(06); 84 EFUSE_OUTPUT(07); 85 EFUSE_OUTPUT(08); 86 EFUSE_OUTPUT(09); 87 EFUSE_OUTPUT(10); 88 EFUSE_OUTPUT(11); 89 EFUSE_OUTPUT(12); 90 EFUSE_OUTPUT(13); 91 EFUSE_OUTPUT(14); 92 EFUSE_OUTPUT(15); 93 EFUSE_OUTPUT(16); 94 EFUSE_OUTPUT(17); 95 EFUSE_OUTPUT(18); 96 EFUSE_OUTPUT(19); 97 EFUSE_OUTPUT(20); 98 EFUSE_OUTPUT(21); 99 EFUSE_OUTPUT(22); 100 EFUSE_OUTPUT(23); 101 EFUSE_OUTPUT(24); 102 EFUSE_OUTPUT(25); 103 EFUSE_OUTPUT(26); 104 EFUSE_OUTPUT(27); 105 EFUSE_OUTPUT(28); 106 EFUSE_OUTPUT(29); 107 EFUSE_OUTPUT(30); 108 EFUSE_OUTPUT(31); 109 EFUSE_OUTPUT(32); 110 EFUSE_OUTPUT(33); 111 EFUSE_OUTPUT(34); 112 EFUSE_OUTPUT(35); 113 EFUSE_OUTPUT(36); 114 EFUSE_OUTPUT(37); 115 EFUSE_OUTPUT(38); 116 EFUSE_OUTPUT(39); 117 EFUSE_OUTPUT(40); 118 EFUSE_OUTPUT(41); 119 EFUSE_OUTPUT(42); 120 EFUSE_OUTPUT(43); 121 EFUSE_OUTPUT(44); 122 EFUSE_OUTPUT(45); 123 EFUSE_OUTPUT(46); 124 EFUSE_OUTPUT(47); 125 EFUSE_OUTPUT(48); 126 EFUSE_OUTPUT(49); 127 EFUSE_OUTPUT(50); 128 129}; 130 131&fmc { 132 status = "okay"; 133 134 flash@0 { 135 status = "okay"; 136 m25p,fast-read; 137 label = "flash0"; 138 spi-max-frequency = <50000000>; // 50 MHz 139#include "openbmc-flash-layout.dtsi" 140 }; 141}; 142 143&uart3 { 144 status = "okay"; 145}; 146 147&mac1 { 148 status = "okay"; 149 pinctrl-names = "default"; 150 pinctrl-0 = <&pinctrl_rgmii2_default &pinctrl_mdio2_default>; 151}; 152 153&i2c0 { 154 status = "okay"; 155 bus-frequency = <200000>; 156 157 pca9541@79 { 158 compatible = "nxp,pca9541"; 159 reg = <0x79>; 160 161 i2carb0: i2c-arb { 162 #address-cells = <1>; 163 #size-cells = <0>; 164 165 /* lm25066 efuses @ 10-17, 40-47, 50-57 */ 166 EFUSE(10, 03); 167 EFUSE(11, 04); 168 EFUSE(12, 01); 169 EFUSE(13, 02); 170 EFUSE(14, 13); 171 EFUSE(15, 14); 172 EFUSE(16, 15); 173 EFUSE(17, 16); 174 EFUSE(40, 12); 175 EFUSE(41, 11); 176 EFUSE(42, 10); 177 EFUSE(43, 09); 178 EFUSE(44, 08); 179 EFUSE(45, 07); 180 EFUSE(46, 05); 181 EFUSE(47, 06); 182 EFUSE(50, 17); 183 EFUSE(51, 18); 184 EFUSE(52, 20); 185 EFUSE(53, 19); 186 EFUSE(54, 22); 187 EFUSE(55, 21); 188 EFUSE(56, 24); 189 EFUSE(57, 23); 190 }; 191 }; 192}; 193 194&i2c1 { 195 status = "okay"; 196 bus-frequency = <200000>; 197 198 pca9541@72 { 199 compatible = "nxp,pca9541"; 200 reg = <0x72>; 201 202 i2carb1: i2c-arb { 203 #address-cells = <1>; 204 #size-cells = <0>; 205 }; 206 }; 207}; 208 209&i2c2 { 210 status = "okay"; 211 bus-frequency = <200000>; 212 213 pca9541@73 { 214 compatible = "nxp,pca9541"; 215 reg = <0x73>; 216 217 i2carb2: i2c-arb { 218 #address-cells = <1>; 219 #size-cells = <0>; 220 }; 221 }; 222}; 223 224&i2c3 { 225 status = "okay"; 226 bus-frequency = <200000>; 227 228 pca9541@74 { 229 compatible = "nxp,pca9541"; 230 reg = <0x74>; 231 232 i2carb3: i2c-arb { 233 #address-cells = <1>; 234 #size-cells = <0>; 235 }; 236 }; 237}; 238 239&i2c4 { 240 status = "okay"; 241 bus-frequency = <200000>; 242 243 pca9541@7a { 244 compatible = "nxp,pca9541"; 245 reg = <0x7a>; 246 247 i2carb4: i2c-arb { 248 #address-cells = <1>; 249 #size-cells = <0>; 250 251 gpio@20 { 252 compatible = "nxp,pca9534"; 253 reg = <0x20>; 254 gpio-controller; 255 #gpio-cells = <2>; 256 }; 257 258 /* lm25066 efuses @ 10-17, 40-47, 50-57, 59, 5a */ 259 EFUSE(10, 27); 260 EFUSE(11, 28); 261 EFUSE(12, 25); 262 EFUSE(13, 26); 263 EFUSE(14, 37); 264 EFUSE(15, 38); 265 EFUSE(16, 39); 266 EFUSE(17, 40); 267 EFUSE(40, 36); 268 EFUSE(41, 35); 269 EFUSE(42, 34); 270 EFUSE(43, 33); 271 EFUSE(44, 32); 272 EFUSE(45, 31); 273 EFUSE(46, 29); 274 EFUSE(47, 30); 275 EFUSE(50, 41); 276 EFUSE(51, 42); 277 EFUSE(52, 44); 278 EFUSE(53, 43); 279 EFUSE(54, 46); 280 EFUSE(55, 45); 281 EFUSE(56, 48); 282 EFUSE(57, 47); 283 EFUSE(59, 49); 284 EFUSE(5a, 50); 285 }; 286 }; 287}; 288 289&i2c6 { 290 status = "okay"; 291 bus-frequency = <200000>; 292 293 pca9541@75 { 294 compatible = "nxp,pca9541"; 295 reg = <0x75>; 296 297 i2carb6: i2c-arb { 298 #address-cells = <1>; 299 #size-cells = <0>; 300 }; 301 }; 302}; 303 304&i2c7 { 305 status = "okay"; 306 bus-frequency = <200000>; 307 308 pca9541@76 { 309 compatible = "nxp,pca9541"; 310 reg = <0x76>; 311 312 i2carb7: i2c-arb { 313 #address-cells = <1>; 314 #size-cells = <0>; 315 }; 316 }; 317}; 318 319&i2c8 { 320 status = "okay"; 321 bus-frequency = <200000>; 322 323 pca9541@7c { 324 compatible = "nxp,pca9541"; 325 reg = <0x7c>; 326 327 i2carb8: i2c-arb { 328 #address-cells = <1>; 329 #size-cells = <0>; 330 331 fancontrol@30 { 332 compatible = "delta,ahe50dc-fan"; 333 reg = <0x30>; 334 }; 335 336 /* Baseboard FRU eeprom */ 337 eeprom@50 { 338 compatible = "atmel,24c02"; 339 reg = <0x50>; 340 }; 341 }; 342 }; 343}; 344 345&i2c12 { 346 status = "okay"; 347 bus-frequency = <200000>; 348 349 pca9541@71 { 350 compatible = "nxp,pca9541"; 351 reg = <0x71>; 352 353 i2carb12: i2c-arb { 354 #address-cells = <1>; 355 #size-cells = <0>; 356 }; 357 }; 358}; 359 360&gpio { 361 status = "okay"; 362 gpio-line-names = 363 /* A */ "", "", "", "", "", "", "", "", 364 /* B */ "", "", "", "", "", "", "", "", 365 /* C */ "RESET_PEER_N", "HEARTBEAT_OUT", "", "", "", "", "", "", 366 /* D */ "", "", "", "", "", "", "", "", 367 /* E */ "DOOM_N", "", "", "", "", "LED_PWR_BLUE", "", "", 368 /* F */ "", "", "", "", "", "", "", "", 369 /* G */ "", "", "", "", "", "", "", "", 370 /* H */ "", "", "", "", "", "", "", "", 371 /* I */ "", "", "", "", "", "", "", "", 372 /* J */ "", "", "BMC_ID", "", "", "", "", "", 373 /* K */ "", "", "", "", "", "", "", "", 374 /* L */ "", "", "", "", "", "", "", "", 375 /* M */ "", "", "", "", "", "", "", "", 376 /* N */ "", "", "", "", "", "", "", "", 377 /* O */ "", "", "", "", "", "", "", "", 378 /* P */ "LED_GREEN", "", "LED_RED", "", "", "", "", "", 379 /* Q */ "", "", "", "", "", "", "", "", 380 /* R */ "", "", "", "", "", "", "", "", 381 /* S */ "", "", "", "", "", "", "", "", 382 /* T */ "", "", "", "", "", "", "", "", 383 /* U */ "", "", "", "", "", "", "", "", 384 /* V */ "", "", "", "", "", "", "", "", 385 /* W */ "", "", "", "", "", "", "", "", 386 /* X */ "", "", "", "", "", "", "", "", 387 /* Y */ "HEARTBEAT_IN", "BOARDREV0", "BOARDREV1", "", 388 /* Z */ "", "", "", "", "", "", "", "", 389 /* AA */ "", "", "", "", "", "", "", "", 390 /* AB */ "", "", "", ""; 391 392 /* 393 * I don't rightly know what this GPIO really *is*, but setting it to 394 * zero causes the fans to run at full speed, after which setting it 395 * back to one causes a power output glitch, so install a hog to keep 396 * it at one as a failsafe to ensure nothing accidentally touches it. 397 */ 398 doom-guardrail { 399 gpio-hog; 400 gpios = <ASPEED_GPIO(E, 0) GPIO_ACTIVE_LOW>; 401 output-low; 402 }; 403}; 404 405&adc { 406 status = "okay"; 407 pinctrl-names = "default"; 408 pinctrl-0 = <&pinctrl_adc0_default 409 &pinctrl_adc1_default 410 &pinctrl_adc2_default 411 &pinctrl_adc3_default 412 &pinctrl_adc4_default 413 &pinctrl_adc5_default 414 &pinctrl_adc6_default 415 &pinctrl_adc7_default 416 &pinctrl_adc8_default 417 &pinctrl_adc9_default>; 418}; 419