1724ba675SRob Herring// SPDX-License-Identifier: GPL-2.0+ 2724ba675SRob Herring// Copyright (c) 2019 Facebook Inc. 3724ba675SRob Herring/dts-v1/; 4724ba675SRob Herring 5724ba675SRob Herring#include <dt-bindings/gpio/aspeed-gpio.h> 6724ba675SRob Herring#include "ast2500-facebook-netbmc-common.dtsi" 7724ba675SRob Herring 8724ba675SRob Herring/ { 9724ba675SRob Herring model = "Facebook Wedge 400 BMC"; 10724ba675SRob Herring compatible = "facebook,wedge400-bmc", "aspeed,ast2500"; 11724ba675SRob Herring 12724ba675SRob Herring aliases { 13724ba675SRob Herring /* 14724ba675SRob Herring * PCA9548 (2-0070) provides 8 channels connecting to 15724ba675SRob Herring * SCM (System Controller Module). 16724ba675SRob Herring */ 17724ba675SRob Herring i2c16 = &imux16; 18724ba675SRob Herring i2c17 = &imux17; 19724ba675SRob Herring i2c18 = &imux18; 20724ba675SRob Herring i2c19 = &imux19; 21724ba675SRob Herring i2c20 = &imux20; 22724ba675SRob Herring i2c21 = &imux21; 23724ba675SRob Herring i2c22 = &imux22; 24724ba675SRob Herring i2c23 = &imux23; 25724ba675SRob Herring 26724ba675SRob Herring /* 27724ba675SRob Herring * PCA9548 (8-0070) provides 8 channels connecting to 28724ba675SRob Herring * SMB (Switch Main Board). 29724ba675SRob Herring */ 30724ba675SRob Herring i2c24 = &imux24; 31724ba675SRob Herring i2c25 = &imux25; 32724ba675SRob Herring i2c26 = &imux26; 33724ba675SRob Herring i2c27 = &imux27; 34724ba675SRob Herring i2c28 = &imux28; 35724ba675SRob Herring i2c29 = &imux29; 36724ba675SRob Herring i2c30 = &imux30; 37724ba675SRob Herring i2c31 = &imux31; 38724ba675SRob Herring 39724ba675SRob Herring /* 40724ba675SRob Herring * PCA9548 (11-0076) provides 8 channels connecting to 41724ba675SRob Herring * FCM (Fan Controller Module). 42724ba675SRob Herring */ 43724ba675SRob Herring i2c32 = &imux32; 44724ba675SRob Herring i2c33 = &imux33; 45724ba675SRob Herring i2c34 = &imux34; 46724ba675SRob Herring i2c35 = &imux35; 47724ba675SRob Herring i2c36 = &imux36; 48724ba675SRob Herring i2c37 = &imux37; 49724ba675SRob Herring i2c38 = &imux38; 50724ba675SRob Herring i2c39 = &imux39; 51724ba675SRob Herring 52724ba675SRob Herring spi2 = &spi_gpio; 53724ba675SRob Herring }; 54724ba675SRob Herring 55724ba675SRob Herring chosen { 56724ba675SRob Herring stdout-path = &uart1; 57724ba675SRob Herring bootargs = "console=ttyS0,9600n8 root=/dev/ram rw"; 58724ba675SRob Herring }; 59724ba675SRob Herring 60724ba675SRob Herring ast-adc-hwmon { 61724ba675SRob Herring compatible = "iio-hwmon"; 622901b71cSTao Ren io-channels = <&adc 0>, <&adc 1>, <&adc 2>, <&adc 3>, <&adc 4>, 632901b71cSTao Ren <&adc 5>, <&adc 6>, <&adc 7>, <&adc 8>; 64724ba675SRob Herring }; 65724ba675SRob Herring 66724ba675SRob Herring /* 67724ba675SRob Herring * GPIO-based SPI Master is required to access SPI TPM, because 68724ba675SRob Herring * full-duplex SPI transactions are not supported by ASPEED SPI 69724ba675SRob Herring * Controllers. 70724ba675SRob Herring */ 71724ba675SRob Herring spi_gpio: spi { 72724ba675SRob Herring status = "okay"; 73724ba675SRob Herring compatible = "spi-gpio"; 74724ba675SRob Herring #address-cells = <1>; 75724ba675SRob Herring #size-cells = <0>; 76724ba675SRob Herring 77724ba675SRob Herring cs-gpios = <&gpio ASPEED_GPIO(R, 2) GPIO_ACTIVE_LOW>; 78724ba675SRob Herring gpio-sck = <&gpio ASPEED_GPIO(R, 3) GPIO_ACTIVE_HIGH>; 79724ba675SRob Herring gpio-mosi = <&gpio ASPEED_GPIO(R, 4) GPIO_ACTIVE_HIGH>; 80724ba675SRob Herring gpio-miso = <&gpio ASPEED_GPIO(R, 5) GPIO_ACTIVE_HIGH>; 81724ba675SRob Herring num-chipselects = <1>; 82724ba675SRob Herring 83*8412c47dSLukas Wunner tpm@0 { 84*8412c47dSLukas Wunner compatible = "infineon,slb9670", "tcg,tpm_tis-spi"; 85724ba675SRob Herring spi-max-frequency = <33000000>; 86724ba675SRob Herring reg = <0>; 87724ba675SRob Herring }; 88724ba675SRob Herring }; 89724ba675SRob Herring}; 90724ba675SRob Herring 91724ba675SRob Herring/* 92724ba675SRob Herring * Both firmware flashes are 128MB on Wedge400 BMC. 93724ba675SRob Herring */ 94724ba675SRob Herring&fmc_flash0 { 95724ba675SRob Herring#include "facebook-bmc-flash-layout-128.dtsi" 96724ba675SRob Herring}; 97724ba675SRob Herring 98724ba675SRob Herring&fmc_flash1 { 99724ba675SRob Herring partitions { 100724ba675SRob Herring compatible = "fixed-partitions"; 101724ba675SRob Herring #address-cells = <1>; 102724ba675SRob Herring #size-cells = <1>; 103724ba675SRob Herring 104724ba675SRob Herring flash1@0 { 105724ba675SRob Herring reg = <0x0 0x8000000>; 106724ba675SRob Herring label = "flash1"; 107724ba675SRob Herring }; 108724ba675SRob Herring }; 109724ba675SRob Herring}; 110724ba675SRob Herring 111724ba675SRob Herring&uart2 { 112724ba675SRob Herring status = "okay"; 113724ba675SRob Herring pinctrl-names = "default"; 114724ba675SRob Herring pinctrl-0 = <&pinctrl_txd2_default 115724ba675SRob Herring &pinctrl_rxd2_default>; 116724ba675SRob Herring}; 117724ba675SRob Herring 118724ba675SRob Herring&uart4 { 119724ba675SRob Herring status = "okay"; 120724ba675SRob Herring pinctrl-names = "default"; 121724ba675SRob Herring pinctrl-0 = <&pinctrl_txd4_default 122724ba675SRob Herring &pinctrl_rxd4_default>; 123724ba675SRob Herring}; 124724ba675SRob Herring 125724ba675SRob Herring/* 126724ba675SRob Herring * I2C bus #0 is multi-master environment dedicated for BMC and Bridge IC 127724ba675SRob Herring * communication. 128724ba675SRob Herring */ 129724ba675SRob Herring&i2c0 { 130724ba675SRob Herring status = "okay"; 131724ba675SRob Herring multi-master; 132724ba675SRob Herring bus-frequency = <1000000>; 133724ba675SRob Herring}; 134724ba675SRob Herring 135724ba675SRob Herring&i2c1 { 136724ba675SRob Herring status = "okay"; 137724ba675SRob Herring}; 138724ba675SRob Herring 139724ba675SRob Herring&i2c2 { 140724ba675SRob Herring status = "okay"; 141724ba675SRob Herring 1424b46d86cSGeert Uytterhoeven i2c-mux@70 { 143724ba675SRob Herring compatible = "nxp,pca9548"; 144724ba675SRob Herring #address-cells = <1>; 145724ba675SRob Herring #size-cells = <0>; 146724ba675SRob Herring reg = <0x70>; 147724ba675SRob Herring i2c-mux-idle-disconnect; 148724ba675SRob Herring 149724ba675SRob Herring imux16: i2c@0 { 150724ba675SRob Herring #address-cells = <1>; 151724ba675SRob Herring #size-cells = <0>; 152724ba675SRob Herring reg = <0>; 153724ba675SRob Herring }; 154724ba675SRob Herring 155724ba675SRob Herring imux17: i2c@1 { 156724ba675SRob Herring #address-cells = <1>; 157724ba675SRob Herring #size-cells = <0>; 158724ba675SRob Herring reg = <1>; 159724ba675SRob Herring }; 160724ba675SRob Herring 161724ba675SRob Herring imux18: i2c@2 { 162724ba675SRob Herring #address-cells = <1>; 163724ba675SRob Herring #size-cells = <0>; 164724ba675SRob Herring reg = <2>; 165724ba675SRob Herring }; 166724ba675SRob Herring 167724ba675SRob Herring imux19: i2c@3 { 168724ba675SRob Herring #address-cells = <1>; 169724ba675SRob Herring #size-cells = <0>; 170724ba675SRob Herring reg = <3>; 171724ba675SRob Herring }; 172724ba675SRob Herring 173724ba675SRob Herring imux20: i2c@4 { 174724ba675SRob Herring #address-cells = <1>; 175724ba675SRob Herring #size-cells = <0>; 176724ba675SRob Herring reg = <4>; 177724ba675SRob Herring }; 178724ba675SRob Herring 179724ba675SRob Herring imux21: i2c@5 { 180724ba675SRob Herring #address-cells = <1>; 181724ba675SRob Herring #size-cells = <0>; 182724ba675SRob Herring reg = <5>; 183724ba675SRob Herring }; 184724ba675SRob Herring 185724ba675SRob Herring imux22: i2c@6 { 186724ba675SRob Herring #address-cells = <1>; 187724ba675SRob Herring #size-cells = <0>; 188724ba675SRob Herring reg = <6>; 189724ba675SRob Herring }; 190724ba675SRob Herring 191724ba675SRob Herring imux23: i2c@7 { 192724ba675SRob Herring #address-cells = <1>; 193724ba675SRob Herring #size-cells = <0>; 194724ba675SRob Herring reg = <7>; 195724ba675SRob Herring }; 196724ba675SRob Herring }; 197724ba675SRob Herring}; 198724ba675SRob Herring 199724ba675SRob Herring&i2c3 { 200724ba675SRob Herring status = "okay"; 201724ba675SRob Herring}; 202724ba675SRob Herring 203724ba675SRob Herring&i2c4 { 204724ba675SRob Herring status = "okay"; 205724ba675SRob Herring}; 206724ba675SRob Herring 207724ba675SRob Herring&i2c5 { 208724ba675SRob Herring status = "okay"; 209724ba675SRob Herring}; 210724ba675SRob Herring 211724ba675SRob Herring&i2c6 { 212724ba675SRob Herring status = "okay"; 213724ba675SRob Herring}; 214724ba675SRob Herring 215724ba675SRob Herring&i2c7 { 216724ba675SRob Herring status = "okay"; 217724ba675SRob Herring}; 218724ba675SRob Herring 219724ba675SRob Herring&i2c8 { 220724ba675SRob Herring status = "okay"; 221724ba675SRob Herring 2224b46d86cSGeert Uytterhoeven i2c-mux@70 { 223724ba675SRob Herring compatible = "nxp,pca9548"; 224724ba675SRob Herring #address-cells = <1>; 225724ba675SRob Herring #size-cells = <0>; 226724ba675SRob Herring reg = <0x70>; 227724ba675SRob Herring i2c-mux-idle-disconnect; 228724ba675SRob Herring 229724ba675SRob Herring imux24: i2c@0 { 230724ba675SRob Herring #address-cells = <1>; 231724ba675SRob Herring #size-cells = <0>; 232724ba675SRob Herring reg = <0>; 233724ba675SRob Herring }; 234724ba675SRob Herring 235724ba675SRob Herring imux25: i2c@1 { 236724ba675SRob Herring #address-cells = <1>; 237724ba675SRob Herring #size-cells = <0>; 238724ba675SRob Herring reg = <1>; 239724ba675SRob Herring }; 240724ba675SRob Herring 241724ba675SRob Herring imux26: i2c@2 { 242724ba675SRob Herring #address-cells = <1>; 243724ba675SRob Herring #size-cells = <0>; 244724ba675SRob Herring reg = <2>; 245724ba675SRob Herring }; 246724ba675SRob Herring 247724ba675SRob Herring imux27: i2c@3 { 248724ba675SRob Herring #address-cells = <1>; 249724ba675SRob Herring #size-cells = <0>; 250724ba675SRob Herring reg = <3>; 251724ba675SRob Herring }; 252724ba675SRob Herring 253724ba675SRob Herring imux28: i2c@4 { 254724ba675SRob Herring #address-cells = <1>; 255724ba675SRob Herring #size-cells = <0>; 256724ba675SRob Herring reg = <4>; 257724ba675SRob Herring }; 258724ba675SRob Herring 259724ba675SRob Herring imux29: i2c@5 { 260724ba675SRob Herring #address-cells = <1>; 261724ba675SRob Herring #size-cells = <0>; 262724ba675SRob Herring reg = <5>; 263724ba675SRob Herring }; 264724ba675SRob Herring 265724ba675SRob Herring imux30: i2c@6 { 266724ba675SRob Herring #address-cells = <1>; 267724ba675SRob Herring #size-cells = <0>; 268724ba675SRob Herring reg = <6>; 269724ba675SRob Herring }; 270724ba675SRob Herring 271724ba675SRob Herring imux31: i2c@7 { 272724ba675SRob Herring #address-cells = <1>; 273724ba675SRob Herring #size-cells = <0>; 274724ba675SRob Herring reg = <7>; 275724ba675SRob Herring }; 276724ba675SRob Herring 277724ba675SRob Herring }; 278724ba675SRob Herring}; 279724ba675SRob Herring 280724ba675SRob Herring&i2c9 { 281724ba675SRob Herring status = "okay"; 282724ba675SRob Herring}; 283724ba675SRob Herring 284724ba675SRob Herring&i2c10 { 285724ba675SRob Herring status = "okay"; 286724ba675SRob Herring}; 287724ba675SRob Herring 288724ba675SRob Herring&i2c11 { 289724ba675SRob Herring status = "okay"; 290724ba675SRob Herring 2914b46d86cSGeert Uytterhoeven i2c-mux@76 { 292724ba675SRob Herring compatible = "nxp,pca9548"; 293724ba675SRob Herring #address-cells = <1>; 294724ba675SRob Herring #size-cells = <0>; 295724ba675SRob Herring reg = <0x76>; 296724ba675SRob Herring i2c-mux-idle-disconnect; 297724ba675SRob Herring 298724ba675SRob Herring imux32: i2c@0 { 299724ba675SRob Herring #address-cells = <1>; 300724ba675SRob Herring #size-cells = <0>; 301724ba675SRob Herring reg = <0>; 302724ba675SRob Herring }; 303724ba675SRob Herring 304724ba675SRob Herring imux33: i2c@1 { 305724ba675SRob Herring #address-cells = <1>; 306724ba675SRob Herring #size-cells = <0>; 307724ba675SRob Herring reg = <1>; 308724ba675SRob Herring }; 309724ba675SRob Herring 310724ba675SRob Herring imux34: i2c@2 { 311724ba675SRob Herring #address-cells = <1>; 312724ba675SRob Herring #size-cells = <0>; 313724ba675SRob Herring reg = <2>; 314724ba675SRob Herring }; 315724ba675SRob Herring 316724ba675SRob Herring imux35: i2c@3 { 317724ba675SRob Herring #address-cells = <1>; 318724ba675SRob Herring #size-cells = <0>; 319724ba675SRob Herring reg = <3>; 320724ba675SRob Herring }; 321724ba675SRob Herring 322724ba675SRob Herring imux36: i2c@4 { 323724ba675SRob Herring #address-cells = <1>; 324724ba675SRob Herring #size-cells = <0>; 325724ba675SRob Herring reg = <4>; 326724ba675SRob Herring }; 327724ba675SRob Herring 328724ba675SRob Herring imux37: i2c@5 { 329724ba675SRob Herring #address-cells = <1>; 330724ba675SRob Herring #size-cells = <0>; 331724ba675SRob Herring reg = <5>; 332724ba675SRob Herring }; 333724ba675SRob Herring 334724ba675SRob Herring imux38: i2c@6 { 335724ba675SRob Herring #address-cells = <1>; 336724ba675SRob Herring #size-cells = <0>; 337724ba675SRob Herring reg = <6>; 338724ba675SRob Herring }; 339724ba675SRob Herring 340724ba675SRob Herring imux39: i2c@7 { 341724ba675SRob Herring #address-cells = <1>; 342724ba675SRob Herring #size-cells = <0>; 343724ba675SRob Herring reg = <7>; 344724ba675SRob Herring }; 345724ba675SRob Herring 346724ba675SRob Herring }; 347724ba675SRob Herring}; 348724ba675SRob Herring 349724ba675SRob Herring&i2c12 { 350724ba675SRob Herring status = "okay"; 351724ba675SRob Herring}; 352724ba675SRob Herring 353724ba675SRob Herring&i2c13 { 354724ba675SRob Herring status = "okay"; 355724ba675SRob Herring}; 356724ba675SRob Herring 357724ba675SRob Herring&adc { 358724ba675SRob Herring status = "okay"; 359724ba675SRob Herring}; 360724ba675SRob Herring 361724ba675SRob Herring&ehci1 { 362724ba675SRob Herring status = "okay"; 363724ba675SRob Herring}; 364724ba675SRob Herring 365724ba675SRob Herring&uhci { 366724ba675SRob Herring status = "okay"; 367724ba675SRob Herring}; 368724ba675SRob Herring 369724ba675SRob Herring&sdhci1 { 3708dc783d9STao Ren max-frequency = <25000000>; 371724ba675SRob Herring /* 372724ba675SRob Herring * DMA mode needs to be disabled to avoid conflicts with UHCI 373724ba675SRob Herring * Controller in AST2500 SoC. 374724ba675SRob Herring */ 375724ba675SRob Herring sdhci-caps-mask = <0x0 0x580000>; 376724ba675SRob Herring}; 377