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