1// SPDX-License-Identifier: GPL-2.0+ 2// Copyright (c) 2019 Facebook Inc. 3/dts-v1/; 4 5#include <dt-bindings/gpio/aspeed-gpio.h> 6#include "ast2500-facebook-netbmc-common.dtsi" 7 8/ { 9 model = "Facebook Wedge 400 BMC"; 10 compatible = "facebook,wedge400-bmc", "aspeed,ast2500"; 11 12 aliases { 13 /* 14 * PCA9548 (2-0070) provides 8 channels connecting to 15 * SCM (System Controller Module). 16 */ 17 i2c16 = &imux16; 18 i2c17 = &imux17; 19 i2c18 = &imux18; 20 i2c19 = &imux19; 21 i2c20 = &imux20; 22 i2c21 = &imux21; 23 i2c22 = &imux22; 24 i2c23 = &imux23; 25 26 /* 27 * PCA9548 (8-0070) provides 8 channels connecting to 28 * SMB (Switch Main Board). 29 */ 30 i2c24 = &imux24; 31 i2c25 = &imux25; 32 i2c26 = &imux26; 33 i2c27 = &imux27; 34 i2c28 = &imux28; 35 i2c29 = &imux29; 36 i2c30 = &imux30; 37 i2c31 = &imux31; 38 39 /* 40 * PCA9548 (11-0076) provides 8 channels connecting to 41 * FCM (Fan Controller Module). 42 */ 43 i2c32 = &imux32; 44 i2c33 = &imux33; 45 i2c34 = &imux34; 46 i2c35 = &imux35; 47 i2c36 = &imux36; 48 i2c37 = &imux37; 49 i2c38 = &imux38; 50 i2c39 = &imux39; 51 52 spi2 = &spi_gpio; 53 }; 54 55 chosen { 56 stdout-path = &uart1; 57 bootargs = "console=ttyS0,9600n8 root=/dev/ram rw"; 58 }; 59 60 ast-adc-hwmon { 61 compatible = "iio-hwmon"; 62 io-channels = <&adc 0>, <&adc 1>, <&adc 2>, <&adc 3>, <&adc 4>; 63 }; 64 65 /* 66 * GPIO-based SPI Master is required to access SPI TPM, because 67 * full-duplex SPI transactions are not supported by ASPEED SPI 68 * Controllers. 69 */ 70 spi_gpio: spi { 71 status = "okay"; 72 compatible = "spi-gpio"; 73 #address-cells = <1>; 74 #size-cells = <0>; 75 76 cs-gpios = <&gpio ASPEED_GPIO(R, 2) GPIO_ACTIVE_LOW>; 77 gpio-sck = <&gpio ASPEED_GPIO(R, 3) GPIO_ACTIVE_HIGH>; 78 gpio-mosi = <&gpio ASPEED_GPIO(R, 4) GPIO_ACTIVE_HIGH>; 79 gpio-miso = <&gpio ASPEED_GPIO(R, 5) GPIO_ACTIVE_HIGH>; 80 num-chipselects = <1>; 81 82 tpmdev@0 { 83 compatible = "tcg,tpm_tis-spi"; 84 spi-max-frequency = <33000000>; 85 reg = <0>; 86 }; 87 }; 88}; 89 90/* 91 * Both firmware flashes are 128MB on Wedge400 BMC. 92 */ 93&fmc_flash0 { 94#include "facebook-bmc-flash-layout-128.dtsi" 95}; 96 97&fmc_flash1 { 98 partitions { 99 compatible = "fixed-partitions"; 100 #address-cells = <1>; 101 #size-cells = <1>; 102 103 flash1@0 { 104 reg = <0x0 0x8000000>; 105 label = "flash1"; 106 }; 107 }; 108}; 109 110&uart2 { 111 status = "okay"; 112 pinctrl-names = "default"; 113 pinctrl-0 = <&pinctrl_txd2_default 114 &pinctrl_rxd2_default>; 115}; 116 117&uart4 { 118 status = "okay"; 119 pinctrl-names = "default"; 120 pinctrl-0 = <&pinctrl_txd4_default 121 &pinctrl_rxd4_default>; 122}; 123 124/* 125 * I2C bus #0 is multi-master environment dedicated for BMC and Bridge IC 126 * communication. 127 */ 128&i2c0 { 129 status = "okay"; 130 multi-master; 131 bus-frequency = <1000000>; 132}; 133 134&i2c1 { 135 status = "okay"; 136}; 137 138&i2c2 { 139 status = "okay"; 140 141 i2c-switch@70 { 142 compatible = "nxp,pca9548"; 143 #address-cells = <1>; 144 #size-cells = <0>; 145 reg = <0x70>; 146 i2c-mux-idle-disconnect; 147 148 imux16: i2c@0 { 149 #address-cells = <1>; 150 #size-cells = <0>; 151 reg = <0>; 152 }; 153 154 imux17: i2c@1 { 155 #address-cells = <1>; 156 #size-cells = <0>; 157 reg = <1>; 158 }; 159 160 imux18: i2c@2 { 161 #address-cells = <1>; 162 #size-cells = <0>; 163 reg = <2>; 164 }; 165 166 imux19: i2c@3 { 167 #address-cells = <1>; 168 #size-cells = <0>; 169 reg = <3>; 170 }; 171 172 imux20: i2c@4 { 173 #address-cells = <1>; 174 #size-cells = <0>; 175 reg = <4>; 176 }; 177 178 imux21: i2c@5 { 179 #address-cells = <1>; 180 #size-cells = <0>; 181 reg = <5>; 182 }; 183 184 imux22: i2c@6 { 185 #address-cells = <1>; 186 #size-cells = <0>; 187 reg = <6>; 188 }; 189 190 imux23: i2c@7 { 191 #address-cells = <1>; 192 #size-cells = <0>; 193 reg = <7>; 194 }; 195 }; 196}; 197 198&i2c3 { 199 status = "okay"; 200}; 201 202&i2c4 { 203 status = "okay"; 204}; 205 206&i2c5 { 207 status = "okay"; 208}; 209 210&i2c6 { 211 status = "okay"; 212}; 213 214&i2c7 { 215 status = "okay"; 216}; 217 218&i2c8 { 219 status = "okay"; 220 221 i2c-switch@70 { 222 compatible = "nxp,pca9548"; 223 #address-cells = <1>; 224 #size-cells = <0>; 225 reg = <0x70>; 226 i2c-mux-idle-disconnect; 227 228 imux24: i2c@0 { 229 #address-cells = <1>; 230 #size-cells = <0>; 231 reg = <0>; 232 }; 233 234 imux25: i2c@1 { 235 #address-cells = <1>; 236 #size-cells = <0>; 237 reg = <1>; 238 }; 239 240 imux26: i2c@2 { 241 #address-cells = <1>; 242 #size-cells = <0>; 243 reg = <2>; 244 }; 245 246 imux27: i2c@3 { 247 #address-cells = <1>; 248 #size-cells = <0>; 249 reg = <3>; 250 }; 251 252 imux28: i2c@4 { 253 #address-cells = <1>; 254 #size-cells = <0>; 255 reg = <4>; 256 }; 257 258 imux29: i2c@5 { 259 #address-cells = <1>; 260 #size-cells = <0>; 261 reg = <5>; 262 }; 263 264 imux30: i2c@6 { 265 #address-cells = <1>; 266 #size-cells = <0>; 267 reg = <6>; 268 }; 269 270 imux31: i2c@7 { 271 #address-cells = <1>; 272 #size-cells = <0>; 273 reg = <7>; 274 }; 275 276 }; 277}; 278 279&i2c9 { 280 status = "okay"; 281}; 282 283&i2c10 { 284 status = "okay"; 285}; 286 287&i2c11 { 288 status = "okay"; 289 290 i2c-switch@76 { 291 compatible = "nxp,pca9548"; 292 #address-cells = <1>; 293 #size-cells = <0>; 294 reg = <0x76>; 295 i2c-mux-idle-disconnect; 296 297 imux32: i2c@0 { 298 #address-cells = <1>; 299 #size-cells = <0>; 300 reg = <0>; 301 }; 302 303 imux33: i2c@1 { 304 #address-cells = <1>; 305 #size-cells = <0>; 306 reg = <1>; 307 }; 308 309 imux34: i2c@2 { 310 #address-cells = <1>; 311 #size-cells = <0>; 312 reg = <2>; 313 }; 314 315 imux35: i2c@3 { 316 #address-cells = <1>; 317 #size-cells = <0>; 318 reg = <3>; 319 }; 320 321 imux36: i2c@4 { 322 #address-cells = <1>; 323 #size-cells = <0>; 324 reg = <4>; 325 }; 326 327 imux37: i2c@5 { 328 #address-cells = <1>; 329 #size-cells = <0>; 330 reg = <5>; 331 }; 332 333 imux38: i2c@6 { 334 #address-cells = <1>; 335 #size-cells = <0>; 336 reg = <6>; 337 }; 338 339 imux39: i2c@7 { 340 #address-cells = <1>; 341 #size-cells = <0>; 342 reg = <7>; 343 }; 344 345 }; 346}; 347 348&i2c12 { 349 status = "okay"; 350}; 351 352&i2c13 { 353 status = "okay"; 354}; 355 356&adc { 357 status = "okay"; 358}; 359 360&ehci1 { 361 status = "okay"; 362}; 363 364&uhci { 365 status = "okay"; 366}; 367 368&sdhci1 { 369 /* 370 * DMA mode needs to be disabled to avoid conflicts with UHCI 371 * Controller in AST2500 SoC. 372 */ 373 sdhci-caps-mask = <0x0 0x580000>; 374}; 375