1// SPDX-License-Identifier: GPL-2.0+
2// Copyright (c) 2018 Facebook Inc.
3/dts-v1/;
4
5#include "ast2500-facebook-netbmc-common.dtsi"
6
7/ {
8	model = "Facebook Minipack 100 BMC";
9	compatible = "facebook,minipack-bmc", "aspeed,ast2500";
10
11	aliases {
12		/*
13		 * Override the default serial aliases to avoid breaking
14		 * the legacy applications.
15		 */
16		serial0 = &uart5;
17		serial1 = &uart1;
18		serial2 = &uart2;
19		serial3 = &uart3;
20		serial4 = &uart4;
21
22		/*
23		 * i2c switch 2-0070, pca9548, 8 child channels assigned
24		 * with bus number 16-23.
25		 */
26		i2c16 = &imux16;
27		i2c17 = &imux17;
28		i2c18 = &imux18;
29		i2c19 = &imux19;
30		i2c20 = &imux20;
31		i2c21 = &imux21;
32		i2c22 = &imux22;
33		i2c23 = &imux23;
34
35		/*
36		 * i2c switch 8-0070, pca9548, 8 child channels assigned
37		 * with bus number 24-31.
38		 */
39		i2c24 = &imux24;
40		i2c25 = &imux25;
41		i2c26 = &imux26;
42		i2c27 = &imux27;
43		i2c28 = &imux28;
44		i2c29 = &imux29;
45		i2c30 = &imux30;
46		i2c31 = &imux31;
47
48		/*
49		 * i2c switch 9-0070, pca9548, 8 child channels assigned
50		 * with bus number 32-39.
51		 */
52		i2c32 = &imux32;
53		i2c33 = &imux33;
54		i2c34 = &imux34;
55		i2c35 = &imux35;
56		i2c36 = &imux36;
57		i2c37 = &imux37;
58		i2c38 = &imux38;
59		i2c39 = &imux39;
60
61		/*
62		 * i2c switch 11-0070, pca9548, 8 child channels assigned
63		 * with bus number 40-47.
64		 */
65		i2c40 = &imux40;
66		i2c41 = &imux41;
67		i2c42 = &imux42;
68		i2c43 = &imux43;
69		i2c44 = &imux44;
70		i2c45 = &imux45;
71		i2c46 = &imux46;
72		i2c47 = &imux47;
73	};
74
75	chosen {
76		stdout-path = &uart1;
77		bootargs = "debug console=ttyS1,9600n8 root=/dev/ram rw";
78	};
79};
80
81&wdt2 {
82	status = "okay";
83	aspeed,reset-type = "system";
84};
85
86/*
87 * Both firmware flashes are 64MB on Minipack BMC.
88 */
89&fmc_flash0 {
90	partitions {
91		compatible = "fixed-partitions";
92		#address-cells = <1>;
93		#size-cells = <1>;
94
95		/*
96		 * u-boot partition: 384KB.
97		 */
98		u-boot@0 {
99			reg = <0x0 0x60000>;
100			label = "u-boot";
101		};
102
103		/*
104		 * u-boot environment variables: 128KB.
105		 */
106		u-boot-env@60000 {
107			reg = <0x60000 0x20000>;
108			label = "env";
109		};
110
111		/*
112		 * FIT image: 59.5 MB.
113		 */
114		fit@80000 {
115			reg = <0x80000 0x3b80000>;
116			label = "fit";
117		};
118
119		/*
120		 * "data0" partition (4MB) is reserved for persistent
121		 * data store.
122		 */
123		data0@3800000 {
124			reg = <0x3c00000 0x400000>;
125			label = "data0";
126		};
127
128		/*
129		 * "flash0" partition (covering the entire flash) is
130		 * explicitly created to avoid breaking legacy applications.
131		 */
132		flash0@0 {
133			reg = <0x0 0x4000000>;
134			label = "flash0";
135		};
136	};
137};
138
139&fmc_flash1 {
140	partitions {
141		compatible = "fixed-partitions";
142		#address-cells = <1>;
143		#size-cells = <1>;
144
145		flash1@0 {
146			reg = <0x0 0x4000000>;
147		};
148	};
149};
150
151&uart1 {
152	pinctrl-0 = <&pinctrl_txd1_default
153		     &pinctrl_rxd1_default
154		     &pinctrl_ncts1_default
155		     &pinctrl_ndsr1_default
156		     &pinctrl_ndtr1_default
157		     &pinctrl_nrts1_default>;
158};
159
160&uart2 {
161	status = "okay";
162	pinctrl-names = "default";
163	pinctrl-0 = <&pinctrl_txd2_default
164		     &pinctrl_rxd2_default>;
165};
166
167&uart4 {
168	status = "okay";
169	pinctrl-names = "default";
170	pinctrl-0 = <&pinctrl_txd4_default
171		     &pinctrl_rxd4_default>;
172};
173
174&i2c0 {
175	status = "okay";
176	bus-frequency = <400000>;
177	multi-master;
178};
179
180&i2c1 {
181	status = "okay";
182};
183
184&i2c2 {
185	status = "okay";
186
187	i2c-switch@70 {
188		compatible = "nxp,pca9548";
189		#address-cells = <1>;
190		#size-cells = <0>;
191		reg = <0x70>;
192
193		imux16: i2c@0 {
194			#address-cells = <1>;
195			#size-cells = <0>;
196			reg = <0>;
197		};
198
199		imux17: i2c@1 {
200			#address-cells = <1>;
201			#size-cells = <0>;
202			reg = <1>;
203		};
204
205		imux18: i2c@2 {
206			#address-cells = <1>;
207			#size-cells = <0>;
208			reg = <2>;
209		};
210
211		imux19: i2c@3 {
212			#address-cells = <1>;
213			#size-cells = <0>;
214			reg = <3>;
215		};
216
217		imux20: i2c@4 {
218			#address-cells = <1>;
219			#size-cells = <0>;
220			reg = <4>;
221		};
222
223		imux21: i2c@5 {
224			#address-cells = <1>;
225			#size-cells = <0>;
226			reg = <5>;
227		};
228
229		imux22: i2c@6 {
230			#address-cells = <1>;
231			#size-cells = <0>;
232			reg = <6>;
233		};
234
235		imux23: i2c@7 {
236			#address-cells = <1>;
237			#size-cells = <0>;
238			reg = <7>;
239		};
240	};
241};
242
243&i2c3 {
244	status = "okay";
245};
246
247&i2c4 {
248	status = "okay";
249	multi-master;
250};
251
252&i2c5 {
253	status = "okay";
254};
255
256&i2c6 {
257	status = "okay";
258};
259
260&i2c7 {
261	status = "okay";
262};
263
264&i2c8 {
265	status = "okay";
266
267	i2c-switch@70 {
268		compatible = "nxp,pca9548";
269		#address-cells = <1>;
270		#size-cells = <0>;
271		reg = <0x70>;
272
273		imux24: i2c@0 {
274			#address-cells = <1>;
275			#size-cells = <0>;
276			reg = <0>;
277		};
278
279		imux25: i2c@1 {
280			#address-cells = <1>;
281			#size-cells = <0>;
282			reg = <1>;
283		};
284
285		imux26: i2c@2 {
286			#address-cells = <1>;
287			#size-cells = <0>;
288			reg = <2>;
289		};
290
291		imux27: i2c@3 {
292			#address-cells = <1>;
293			#size-cells = <0>;
294			reg = <3>;
295		};
296
297		imux28: i2c@4 {
298			#address-cells = <1>;
299			#size-cells = <0>;
300			reg = <4>;
301		};
302
303		imux29: i2c@5 {
304			#address-cells = <1>;
305			#size-cells = <0>;
306			reg = <5>;
307		};
308
309		imux30: i2c@6 {
310			#address-cells = <1>;
311			#size-cells = <0>;
312			reg = <6>;
313		};
314
315		imux31: i2c@7 {
316			#address-cells = <1>;
317			#size-cells = <0>;
318			reg = <7>;
319		};
320	};
321};
322
323&i2c9 {
324	status = "okay";
325
326	i2c-switch@70 {
327		compatible = "nxp,pca9548";
328		#address-cells = <1>;
329		#size-cells = <0>;
330		reg = <0x70>;
331
332		imux32: i2c@0 {
333			#address-cells = <1>;
334			#size-cells = <0>;
335			reg = <0>;
336		};
337
338		imux33: i2c@1 {
339			#address-cells = <1>;
340			#size-cells = <0>;
341			reg = <1>;
342		};
343
344		imux34: i2c@2 {
345			#address-cells = <1>;
346			#size-cells = <0>;
347			reg = <2>;
348		};
349
350		imux35: i2c@3 {
351			#address-cells = <1>;
352			#size-cells = <0>;
353			reg = <3>;
354		};
355
356		imux36: i2c@4 {
357			#address-cells = <1>;
358			#size-cells = <0>;
359			reg = <4>;
360		};
361
362		imux37: i2c@5 {
363			#address-cells = <1>;
364			#size-cells = <0>;
365			reg = <5>;
366		};
367
368		imux38: i2c@6 {
369			#address-cells = <1>;
370			#size-cells = <0>;
371			reg = <6>;
372		};
373
374		imux39: i2c@7 {
375			#address-cells = <1>;
376			#size-cells = <0>;
377			reg = <7>;
378		};
379	};
380};
381
382&i2c10 {
383	status = "okay";
384};
385
386&i2c11 {
387	status = "okay";
388
389	i2c-switch@70 {
390		compatible = "nxp,pca9548";
391		#address-cells = <1>;
392		#size-cells = <0>;
393		reg = <0x70>;
394
395		imux40: i2c@0 {
396			#address-cells = <1>;
397			#size-cells = <0>;
398			reg = <0>;
399		};
400
401		imux41: i2c@1 {
402			#address-cells = <1>;
403			#size-cells = <0>;
404			reg = <1>;
405		};
406
407		imux42: i2c@2 {
408			#address-cells = <1>;
409			#size-cells = <0>;
410			reg = <2>;
411		};
412
413		imux43: i2c@3 {
414			#address-cells = <1>;
415			#size-cells = <0>;
416			reg = <3>;
417		};
418
419		imux44: i2c@4 {
420			#address-cells = <1>;
421			#size-cells = <0>;
422			reg = <4>;
423		};
424
425		imux45: i2c@5 {
426			#address-cells = <1>;
427			#size-cells = <0>;
428			reg = <5>;
429		};
430
431		imux46: i2c@6 {
432			#address-cells = <1>;
433			#size-cells = <0>;
434			reg = <6>;
435		};
436
437		imux47: i2c@7 {
438			#address-cells = <1>;
439			#size-cells = <0>;
440			reg = <7>;
441		};
442	};
443};
444
445&i2c12 {
446	status = "okay";
447};
448
449&i2c13 {
450	status = "okay";
451};
452