1// SPDX-License-Identifier: GPL-2.0+
2// Copyright (c) 2020 Facebook Inc.
3
4/dts-v1/;
5
6#include <dt-bindings/leds/common.h>
7#include "ast2600-facebook-netbmc-common.dtsi"
8
9/ {
10	model = "Facebook Cloudripper BMC";
11	compatible = "facebook,cloudripper-bmc", "aspeed,ast2600";
12
13	aliases {
14		/*
15		 * PCA9548 (1-0070) provides 8 channels connecting to
16		 * SMB (Switch Main Board).
17		 */
18		i2c16 = &imux16;
19		i2c17 = &imux17;
20		i2c18 = &imux18;
21		i2c19 = &imux19;
22		i2c20 = &imux20;
23		i2c21 = &imux21;
24		i2c22 = &imux22;
25		i2c23 = &imux23;
26
27		/*
28		 * PCA9548 (2-0070) provides 8 channels connecting to
29		 * SCM (System Controller Module).
30		 */
31		i2c24 = &imux24;
32		i2c25 = &imux25;
33		i2c26 = &imux26;
34		i2c27 = &imux27;
35		i2c28 = &imux28;
36		i2c29 = &imux29;
37		i2c30 = &imux30;
38		i2c31 = &imux31;
39
40		/*
41		 * PCA9548 (3-0070) provides 8 channels connecting to
42		 * SMB (Switch Main Board).
43		 */
44		i2c32 = &imux32;
45		i2c33 = &imux33;
46		i2c34 = &imux34;
47		i2c35 = &imux35;
48		i2c36 = &imux36;
49		i2c37 = &imux37;
50		i2c38 = &imux38;
51		i2c39 = &imux39;
52
53		/*
54		 * PCA9548 (8-0070) provides 8 channels connecting to
55		 * PDB (Power Delivery Board).
56		 */
57		i2c40 = &imux40;
58		i2c41 = &imux41;
59		i2c42 = &imux42;
60		i2c43 = &imux43;
61		i2c44 = &imux44;
62		i2c45 = &imux45;
63		i2c46 = &imux46;
64		i2c47 = &imux47;
65
66		/*
67		 * PCA9548 (15-0076) provides 8 channels connecting to
68		 * FCM (Fan Controller Module).
69		 */
70		i2c48 = &imux48;
71		i2c49 = &imux49;
72		i2c50 = &imux50;
73		i2c51 = &imux51;
74		i2c52 = &imux52;
75		i2c53 = &imux53;
76		i2c54 = &imux54;
77		i2c55 = &imux55;
78	};
79
80	spi_gpio: spi {
81		num-chipselects = <2>;
82		cs-gpios = <&gpio0 ASPEED_GPIO(X, 0) GPIO_ACTIVE_LOW>,
83			   <&gpio0 ASPEED_GPIO(X, 1) GPIO_ACTIVE_HIGH>;
84
85		eeprom@1 {
86			compatible = "atmel,at93c46d";
87			spi-max-frequency = <250000>;
88			data-size = <16>;
89			spi-cs-high;
90			reg = <1>;
91		};
92	};
93};
94
95&ehci1 {
96	status = "okay";
97};
98
99/*
100 * "mdio1" is connected to the MDC/MDIO interface of the on-board
101 * management switch (whose ports are connected to BMC, Host and front
102 * panel ethernet port).
103 */
104&mdio1 {
105	status = "okay";
106};
107
108&mdio3 {
109	status = "okay";
110
111	ethphy1: ethernet-phy@13 {
112		compatible = "ethernet-phy-ieee802.3-c22";
113		reg = <0x0d>;
114	};
115};
116
117&mac3 {
118	status = "okay";
119	phy-mode = "rgmii";
120	phy-handle = <&ethphy1>;
121	pinctrl-names = "default";
122	pinctrl-0 = <&pinctrl_rgmii4_default>;
123};
124
125&i2c0 {
126	multi-master;
127	bus-frequency = <1000000>;
128};
129
130&i2c1 {
131	/*
132	 * PCA9548 (1-0070) provides 8 channels connecting to SMB (Switch
133	 * Main Board).
134	 */
135	i2c-switch@70 {
136		compatible = "nxp,pca9548";
137		#address-cells = <1>;
138		#size-cells = <0>;
139		reg = <0x70>;
140		i2c-mux-idle-disconnect;
141
142		imux16: i2c@0 {
143			#address-cells = <1>;
144			#size-cells = <0>;
145			reg = <0>;
146		};
147
148		imux17: i2c@1 {
149			#address-cells = <1>;
150			#size-cells = <0>;
151			reg = <1>;
152		};
153
154		imux18: i2c@2 {
155			#address-cells = <1>;
156			#size-cells = <0>;
157			reg = <2>;
158		};
159
160		imux19: i2c@3 {
161			#address-cells = <1>;
162			#size-cells = <0>;
163			reg = <3>;
164		};
165
166		imux20: i2c@4 {
167			#address-cells = <1>;
168			#size-cells = <0>;
169			reg = <4>;
170		};
171
172		imux21: i2c@5 {
173			#address-cells = <1>;
174			#size-cells = <0>;
175			reg = <5>;
176		};
177
178		imux22: i2c@6 {
179			#address-cells = <1>;
180			#size-cells = <0>;
181			reg = <6>;
182		};
183
184		imux23: i2c@7 {
185			#address-cells = <1>;
186			#size-cells = <0>;
187			reg = <7>;
188		};
189	};
190};
191
192&i2c2 {
193	/*
194	 * PCA9548 (2-0070) provides 8 channels connecting to SCM (System
195	 * Controller Module).
196	 */
197	i2c-switch@70 {
198		compatible = "nxp,pca9548";
199		#address-cells = <1>;
200		#size-cells = <0>;
201		reg = <0x70>;
202		i2c-mux-idle-disconnect;
203
204		imux24: i2c@0 {
205			#address-cells = <1>;
206			#size-cells = <0>;
207			reg = <0>;
208		};
209
210		imux25: i2c@1 {
211			#address-cells = <1>;
212			#size-cells = <0>;
213			reg = <1>;
214		};
215
216		imux26: i2c@2 {
217			#address-cells = <1>;
218			#size-cells = <0>;
219			reg = <2>;
220		};
221
222		imux27: i2c@3 {
223			#address-cells = <1>;
224			#size-cells = <0>;
225			reg = <3>;
226		};
227
228		imux28: i2c@4 {
229			#address-cells = <1>;
230			#size-cells = <0>;
231			reg = <4>;
232		};
233
234		imux29: i2c@5 {
235			#address-cells = <1>;
236			#size-cells = <0>;
237			reg = <5>;
238		};
239
240		imux30: i2c@6 {
241			#address-cells = <1>;
242			#size-cells = <0>;
243			reg = <6>;
244		};
245
246		imux31: i2c@7 {
247			#address-cells = <1>;
248			#size-cells = <0>;
249			reg = <7>;
250		};
251	};
252};
253
254&i2c3 {
255	/*
256	 * PCA9548 (3-0070) provides 8 channels connecting to SMB (Switch
257	 * Main Board).
258	 */
259	i2c-switch@70 {
260		compatible = "nxp,pca9548";
261		#address-cells = <1>;
262		#size-cells = <0>;
263		reg = <0x70>;
264		i2c-mux-idle-disconnect;
265
266		imux32: i2c@0 {
267			#address-cells = <1>;
268			#size-cells = <0>;
269			reg = <0>;
270		};
271
272		imux33: i2c@1 {
273			#address-cells = <1>;
274			#size-cells = <0>;
275			reg = <1>;
276		};
277
278		imux34: i2c@2 {
279			#address-cells = <1>;
280			#size-cells = <0>;
281			reg = <2>;
282		};
283
284		imux35: i2c@3 {
285			#address-cells = <1>;
286			#size-cells = <0>;
287			reg = <3>;
288		};
289
290		imux36: i2c@4 {
291			#address-cells = <1>;
292			#size-cells = <0>;
293			reg = <4>;
294		};
295
296		imux37: i2c@5 {
297			#address-cells = <1>;
298			#size-cells = <0>;
299			reg = <5>;
300		};
301
302		imux38: i2c@6 {
303			#address-cells = <1>;
304			#size-cells = <0>;
305			reg = <6>;
306		};
307
308		imux39: i2c@7 {
309			#address-cells = <1>;
310			#size-cells = <0>;
311			reg = <7>;
312		};
313	};
314};
315
316&i2c6 {
317	lp5012@14 {
318		compatible = "ti,lp5012";
319		reg = <0x14>;
320		#address-cells = <1>;
321		#size-cells = <0>;
322
323		multi-led@0 {
324			#address-cells = <1>;
325			#size-cells = <0>;
326			reg = <0>;
327			color = <LED_COLOR_ID_MULTI>;
328			function = LED_FUNCTION_ACTIVITY;
329			label = "sys";
330
331			led@0 {
332				reg = <0>;
333				color = <LED_COLOR_ID_RED>;
334			};
335
336			led@1 {
337				reg = <1>;
338				color = <LED_COLOR_ID_BLUE>;
339			};
340
341			led@2 {
342				reg = <2>;
343				color = <LED_COLOR_ID_GREEN>;
344			};
345		};
346
347		multi-led@1 {
348			#address-cells = <1>;
349			#size-cells = <0>;
350			reg = <1>;
351			color = <LED_COLOR_ID_MULTI>;
352			function = LED_FUNCTION_ACTIVITY;
353			label = "fan";
354
355			led@0 {
356				reg = <0>;
357				color = <LED_COLOR_ID_RED>;
358			};
359
360			led@1 {
361				reg = <1>;
362				color = <LED_COLOR_ID_BLUE>;
363			};
364
365			led@2 {
366				reg = <2>;
367				color = <LED_COLOR_ID_GREEN>;
368			};
369		};
370
371		multi-led@2 {
372			#address-cells = <1>;
373			#size-cells = <0>;
374			reg = <2>;
375			color = <LED_COLOR_ID_MULTI>;
376			function = LED_FUNCTION_ACTIVITY;
377			label = "psu";
378
379			led@0 {
380				reg = <0>;
381				color = <LED_COLOR_ID_RED>;
382			};
383
384			led@1 {
385				reg = <1>;
386				color = <LED_COLOR_ID_BLUE>;
387			};
388
389			led@2 {
390				reg = <2>;
391				color = <LED_COLOR_ID_GREEN>;
392			};
393		};
394
395		multi-led@3 {
396			#address-cells = <1>;
397			#size-cells = <0>;
398			reg = <3>;
399			color = <LED_COLOR_ID_MULTI>;
400			function = LED_FUNCTION_ACTIVITY;
401			label = "scm";
402
403			led@0 {
404				reg = <0>;
405				color = <LED_COLOR_ID_RED>;
406			};
407
408			led@1 {
409				reg = <1>;
410				color = <LED_COLOR_ID_BLUE>;
411			};
412
413			led@2 {
414				reg = <2>;
415				color = <LED_COLOR_ID_GREEN>;
416			};
417		};
418	};
419};
420
421&i2c8 {
422	/*
423	 * PCA9548 (8-0070) provides 8 channels connecting to PDB (Power
424	 * Delivery Board).
425	 */
426	i2c-switch@70 {
427		compatible = "nxp,pca9548";
428		#address-cells = <1>;
429		#size-cells = <0>;
430		reg = <0x70>;
431		i2c-mux-idle-disconnect;
432
433		imux40: i2c@0 {
434			#address-cells = <1>;
435			#size-cells = <0>;
436			reg = <0>;
437		};
438
439		imux41: i2c@1 {
440			#address-cells = <1>;
441			#size-cells = <0>;
442			reg = <1>;
443		};
444
445		imux42: i2c@2 {
446			#address-cells = <1>;
447			#size-cells = <0>;
448			reg = <2>;
449		};
450
451		imux43: i2c@3 {
452			#address-cells = <1>;
453			#size-cells = <0>;
454			reg = <3>;
455		};
456
457		imux44: i2c@4 {
458			#address-cells = <1>;
459			#size-cells = <0>;
460			reg = <4>;
461		};
462
463		imux45: i2c@5 {
464			#address-cells = <1>;
465			#size-cells = <0>;
466			reg = <5>;
467		};
468
469		imux46: i2c@6 {
470			#address-cells = <1>;
471			#size-cells = <0>;
472			reg = <6>;
473		};
474
475		imux47: i2c@7 {
476			#address-cells = <1>;
477			#size-cells = <0>;
478			reg = <7>;
479		};
480
481	};
482};
483
484&i2c15 {
485	/*
486	 * PCA9548 (15-0076) provides 8 channels connecting to FCM (Fan
487	 * Controller Module).
488	 */
489	i2c-switch@76 {
490		compatible = "nxp,pca9548";
491		#address-cells = <1>;
492		#size-cells = <0>;
493		reg = <0x76>;
494		i2c-mux-idle-disconnect;
495
496		imux48: i2c@0 {
497			#address-cells = <1>;
498			#size-cells = <0>;
499			reg = <0>;
500		};
501
502		imux49: i2c@1 {
503			#address-cells = <1>;
504			#size-cells = <0>;
505			reg = <1>;
506		};
507
508		imux50: i2c@2 {
509			#address-cells = <1>;
510			#size-cells = <0>;
511			reg = <2>;
512		};
513
514		imux51: i2c@3 {
515			#address-cells = <1>;
516			#size-cells = <0>;
517			reg = <3>;
518		};
519
520		imux52: i2c@4 {
521			#address-cells = <1>;
522			#size-cells = <0>;
523			reg = <4>;
524		};
525
526		imux53: i2c@5 {
527			#address-cells = <1>;
528			#size-cells = <0>;
529			reg = <5>;
530		};
531
532		imux54: i2c@6 {
533			#address-cells = <1>;
534			#size-cells = <0>;
535			reg = <6>;
536		};
537
538		imux55: i2c@7 {
539			#address-cells = <1>;
540			#size-cells = <0>;
541			reg = <7>;
542		};
543	};
544};
545