xref: /linux/scripts/dtc/include-prefixes/arm/aspeed/aspeed-bmc-facebook-wedge400.dts (revision 724ba6751532055db75992fc6ae21c3e322e94a7)
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