1// SPDX-License-Identifier: GPL-2.0-or-later
2// Copyright 2022 Facebook Inc.
3
4/dts-v1/;
5#include "aspeed-g6.dtsi"
6#include <dt-bindings/gpio/aspeed-gpio.h>
7#include <dt-bindings/leds/leds-pca955x.h>
8#include <dt-bindings/i2c/i2c.h>
9
10/ {
11	model = "Facebook Yosemite 4 BMC";
12	compatible = "facebook,yosemite4-bmc", "aspeed,ast2600";
13
14	aliases {
15		serial4 = &uart5;
16		serial5 = &uart6;
17		serial6 = &uart7;
18		serial7 = &uart8;
19		serial8 = &uart9;
20	};
21
22	chosen {
23		stdout-path = "serial4:57600n8";
24	};
25
26	memory@80000000 {
27		device_type = "memory";
28		reg = <0x80000000 0x80000000>;
29	};
30
31	iio-hwmon {
32		compatible = "iio-hwmon";
33		io-channels = <&adc0 0>, <&adc0 1>, <&adc0 2>, <&adc0 3>,
34				<&adc0 4>, <&adc0 5>, <&adc0 6>, <&adc0 7>,
35				<&adc1 0>, <&adc1 1>;
36	};
37};
38
39&uart1 {
40	status = "okay";
41};
42
43&uart2 {
44	status = "okay";
45};
46
47&uart3 {
48	status = "okay";
49};
50
51&uart4 {
52	status = "okay";
53};
54
55&uart5 {
56	status = "okay";
57};
58
59&uart6 {
60	status = "okay";
61};
62
63&uart7 {
64	status = "okay";
65};
66
67&uart8 {
68	status = "okay";
69};
70
71&uart9 {
72	status = "okay";
73};
74
75&wdt1 {
76	status = "okay";
77	pinctrl-names = "default";
78	pinctrl-0 = <&pinctrl_wdtrst1_default>;
79	aspeed,reset-type = "soc";
80	aspeed,external-signal;
81	aspeed,ext-push-pull;
82	aspeed,ext-active-high;
83	aspeed,ext-pulse-duration = <256>;
84};
85
86&mac2 {
87	status = "okay";
88	pinctrl-names = "default";
89	pinctrl-0 = <&pinctrl_rmii3_default>;
90	use-ncsi;
91	mellanox,multi-host;
92};
93
94&mac3 {
95	status = "okay";
96	pinctrl-names = "default";
97	pinctrl-0 = <&pinctrl_rmii4_default>;
98	use-ncsi;
99	mellanox,multi-host;
100};
101
102&fmc {
103	status = "okay";
104	flash@0 {
105		status = "okay";
106		m25p,fast-read;
107		label = "bmc";
108		spi-rx-bus-width = <4>;
109		spi-max-frequency = <50000000>;
110#include "openbmc-flash-layout-64.dtsi"
111	};
112	flash@1 {
113		status = "okay";
114		m25p,fast-read;
115		label = "bmc2";
116		spi-rx-bus-width = <4>;
117		spi-max-frequency = <50000000>;
118	};
119};
120
121&i2c0 {
122	status = "okay";
123	mctp-controller;
124	bus-frequency = <400000>;
125	multi-master;
126
127	mctp@10 {
128		compatible = "mctp-i2c-controller";
129		reg = <(0x10 | I2C_OWN_SLAVE_ADDRESS)>;
130	};
131
132	power-sensor@40 {
133		compatible = "adi,adm1278";
134		reg = <0x40>;
135	};
136};
137
138&i2c1 {
139	status = "okay";
140	mctp-controller;
141	bus-frequency = <400000>;
142	multi-master;
143
144	mctp@10 {
145		compatible = "mctp-i2c-controller";
146		reg = <(0x10 | I2C_OWN_SLAVE_ADDRESS)>;
147	};
148
149	power-sensor@40 {
150		compatible = "adi,adm1278";
151		reg = <0x40>;
152	};
153};
154
155&i2c2 {
156	status = "okay";
157	mctp-controller;
158	bus-frequency = <400000>;
159	multi-master;
160
161	mctp@10 {
162		compatible = "mctp-i2c-controller";
163		reg = <(0x10 | I2C_OWN_SLAVE_ADDRESS)>;
164	};
165
166	power-sensor@40 {
167		compatible = "adi,adm1278";
168		reg = <0x40>;
169	};
170};
171
172&i2c3 {
173	status = "okay";
174	mctp-controller;
175	bus-frequency = <400000>;
176	multi-master;
177
178	mctp@10 {
179		compatible = "mctp-i2c-controller";
180		reg = <(0x10 | I2C_OWN_SLAVE_ADDRESS)>;
181	};
182
183	power-sensor@40 {
184		compatible = "adi,adm1278";
185		reg = <0x40>;
186	};
187};
188
189&i2c4 {
190	status = "okay";
191	mctp-controller;
192	bus-frequency = <400000>;
193	multi-master;
194
195	mctp@10 {
196		compatible = "mctp-i2c-controller";
197		reg = <(0x10 | I2C_OWN_SLAVE_ADDRESS)>;
198	};
199
200	power-sensor@40 {
201		compatible = "adi,adm1278";
202		reg = <0x40>;
203	};
204};
205
206&i2c5 {
207	status = "okay";
208	mctp-controller;
209	bus-frequency = <400000>;
210	multi-master;
211
212	mctp@10 {
213		compatible = "mctp-i2c-controller";
214		reg = <(0x10 | I2C_OWN_SLAVE_ADDRESS)>;
215	};
216
217	power-sensor@40 {
218		compatible = "adi,adm1278";
219		reg = <0x40>;
220	};
221};
222
223&i2c6 {
224	status = "okay";
225	mctp-controller;
226	bus-frequency = <400000>;
227	multi-master;
228
229	mctp@10 {
230		compatible = "mctp-i2c-controller";
231		reg = <(0x10 | I2C_OWN_SLAVE_ADDRESS)>;
232	};
233
234	power-sensor@40 {
235		compatible = "adi,adm1278";
236		reg = <0x40>;
237	};
238};
239
240&i2c7 {
241	status = "okay";
242	mctp-controller;
243	bus-frequency = <400000>;
244	multi-master;
245
246	mctp@10 {
247		compatible = "mctp-i2c-controller";
248		reg = <(0x10 | I2C_OWN_SLAVE_ADDRESS)>;
249	};
250
251	power-sensor@40 {
252		compatible = "adi,adm1278";
253		reg = <0x40>;
254	};
255};
256
257&i2c8 {
258	status = "okay";
259	bus-frequency = <400000>;
260	i2c-mux@70 {
261		compatible = "nxp,pca9544";
262		idle-state = <0>;
263		i2c-mux-idle-disconnect;
264		reg = <0x70>;
265	};
266};
267
268&i2c9 {
269	status = "okay";
270	bus-frequency = <400000>;
271	i2c-mux@71 {
272		compatible = "nxp,pca9544";
273		idle-state = <0>;
274		i2c-mux-idle-disconnect;
275		reg = <0x71>;
276	};
277};
278
279&i2c10 {
280	status = "okay";
281	bus-frequency = <400000>;
282};
283
284&i2c11 {
285	status = "okay";
286	power-sensor@10 {
287		compatible = "adi, adm1272";
288		reg = <0x10>;
289	};
290
291	power-sensor@12 {
292		compatible = "adi, adm1272";
293		reg = <0x12>;
294	};
295
296	gpio@20 {
297		compatible = "nxp,pca9555";
298		reg = <0x20>;
299		gpio-controller;
300		#gpio-cells = <2>;
301	};
302
303	gpio@21 {
304		compatible = "nxp,pca9555";
305		reg = <0x21>;
306		gpio-controller;
307		#gpio-cells = <2>;
308	};
309
310	gpio@22 {
311		compatible = "nxp,pca9555";
312		reg = <0x22>;
313		gpio-controller;
314		#gpio-cells = <2>;
315	};
316
317	gpio@23 {
318		compatible = "nxp,pca9555";
319		reg = <0x23>;
320		gpio-controller;
321		#gpio-cells = <2>;
322	};
323
324	temperature-sensor@48 {
325		compatible = "ti,tmp75";
326		reg = <0x48>;
327	};
328
329	temperature-sensor@49 {
330		compatible = "ti,tmp75";
331		reg = <0x49>;
332	};
333
334	temperature-sensor@4a {
335		compatible = "ti,tmp75";
336		reg = <0x4a>;
337	};
338
339	temperature-sensor@4b {
340		compatible = "ti,tmp75";
341		reg = <0x4b>;
342	};
343
344	eeprom@54 {
345		compatible = "atmel,24c256";
346		reg = <0x54>;
347	};
348};
349
350&i2c12 {
351	status = "okay";
352	bus-frequency = <400000>;
353
354	temperature-sensor@48 {
355		compatible = "ti,tmp75";
356		reg = <0x48>;
357	};
358
359	eeprom@50 {
360		compatible = "atmel,24c128";
361		reg = <0x50>;
362	};
363
364	rtc@6f {
365		compatible = "nuvoton,nct3018y";
366		reg = <0x6f>;
367	};
368};
369
370&i2c13 {
371	status = "okay";
372	bus-frequency = <100000>;
373	multi-master;
374
375	ipmb@10 {
376		compatible = "ipmb-dev";
377		reg = <(0x10 | I2C_OWN_SLAVE_ADDRESS)>;
378		i2c-protocol;
379	};
380};
381
382&i2c14 {
383	status = "okay";
384	bus-frequency = <400000>;
385	adc@1d {
386		compatible = "ti,adc128d818";
387		reg = <0x1d>;
388		ti,mode = /bits/ 8 <2>;
389	};
390
391	adc@35 {
392		compatible = "ti,adc128d818";
393		reg = <0x35>;
394		ti,mode = /bits/ 8 <2>;
395	};
396
397	adc@37 {
398		compatible = "ti,adc128d818";
399		reg = <0x37>;
400		ti,mode = /bits/ 8 <2>;
401	};
402
403	power-sensor@40 {
404		compatible = "ti,ina230";
405		reg = <0x40>;
406	};
407
408	power-sensor@41 {
409		compatible = "ti,ina230";
410		reg = <0x41>;
411	};
412
413	power-sensor@42 {
414		compatible = "ti,ina230";
415		reg = <0x42>;
416	};
417
418	power-sensor@43 {
419		compatible = "ti,ina230";
420		reg = <0x43>;
421	};
422
423	power-sensor@44 {
424		compatible = "ti,ina230";
425		reg = <0x44>;
426	};
427
428	temperature-sensor@4e {
429		compatible = "ti,tmp75";
430		reg = <0x4e>;
431	};
432
433	temperature-sensor@4f {
434		compatible = "ti,tmp75";
435		reg = <0x4f>;
436	};
437
438	eeprom@51 {
439		compatible = "atmel,24c128";
440		reg = <0x51>;
441	};
442
443	i2c-mux@71 {
444		compatible = "nxp,pca9846";
445		#address-cells = <1>;
446		#size-cells = <0>;
447
448		idle-state = <0>;
449		i2c-mux-idle-disconnect;
450		reg = <0x71>;
451
452		i2c@0 {
453			#address-cells = <1>;
454			#size-cells = <0>;
455			reg = <0>;
456
457			adc@1f {
458				compatible = "ti,adc128d818";
459				reg = <0x1f>;
460				ti,mode = /bits/ 8 <2>;
461			};
462
463			pwm@20{
464				compatible = "max31790";
465				reg = <0x20>;
466				#address-cells = <1>;
467				#size-cells = <0>;
468			};
469
470			gpio@22{
471				compatible = "ti,tca6424";
472				reg = <0x22>;
473			};
474
475			pwm@23{
476				compatible = "max31790";
477				reg = <0x23>;
478				#address-cells = <1>;
479				#size-cells = <0>;
480			};
481
482			adc@33 {
483				compatible = "maxim,max11615";
484				reg = <0x33>;
485			};
486
487			eeprom@52 {
488				compatible = "atmel,24c128";
489				reg = <0x52>;
490			};
491
492			gpio@61 {
493				compatible = "nxp,pca9552";
494				reg = <0x61>;
495				#address-cells = <1>;
496				#size-cells = <0>;
497				gpio-controller;
498				#gpio-cells = <2>;
499			};
500		};
501
502		i2c@1 {
503			#address-cells = <1>;
504			#size-cells = <0>;
505			reg = <0>;
506
507			adc@1f {
508				compatible = "ti,adc128d818";
509				reg = <0x1f>;
510				ti,mode = /bits/ 8 <2>;
511			};
512
513			pwm@20{
514				compatible = "max31790";
515				reg = <0x20>;
516				#address-cells = <1>;
517				#size-cells = <0>;
518			};
519
520			gpio@22{
521				compatible = "ti,tca6424";
522				reg = <0x22>;
523			};
524
525			pwm@23{
526				compatible = "max31790";
527				reg = <0x23>;
528				#address-cells = <1>;
529				#size-cells = <0>;
530			};
531
532			adc@33 {
533				compatible = "maxim,max11615";
534				reg = <0x33>;
535			};
536
537			eeprom@52 {
538				compatible = "atmel,24c128";
539				reg = <0x52>;
540			};
541
542			gpio@61 {
543				compatible = "nxp,pca9552";
544				reg = <0x61>;
545				#address-cells = <1>;
546				#size-cells = <0>;
547				gpio-controller;
548				#gpio-cells = <2>;
549			};
550		};
551	};
552
553	i2c-mux@73 {
554		compatible = "nxp,pca9544";
555		#address-cells = <1>;
556		#size-cells = <0>;
557
558		idle-state = <0>;
559		i2c-mux-idle-disconnect;
560		reg = <0x73>;
561
562		i2c@0 {
563			#address-cells = <1>;
564			#size-cells = <0>;
565			reg = <0>;
566
567			adc@35 {
568				compatible = "maxim,max11617";
569				reg = <0x35>;
570			};
571		};
572
573		i2c@1 {
574			#address-cells = <1>;
575			#size-cells = <0>;
576			reg = <0>;
577
578			adc@35 {
579				compatible = "maxim,max11617";
580				reg = <0x35>;
581			};
582		};
583	};
584};
585
586&i2c15 {
587	status = "okay";
588	mctp-controller;
589	multi-master;
590	bus-frequency = <400000>;
591
592	mctp@10 {
593		compatible = "mctp-i2c-controller";
594		reg = <(0x10 | I2C_OWN_SLAVE_ADDRESS)>;
595	};
596
597	i2c-mux@72 {
598		compatible = "nxp,pca9544";
599		idle-state = <0>;
600		i2c-mux-idle-disconnect;
601		reg = <0x72>;
602	};
603};
604
605&adc0 {
606	status = "okay";
607	pinctrl-0 = <&pinctrl_adc0_default &pinctrl_adc1_default
608			&pinctrl_adc2_default &pinctrl_adc3_default
609			&pinctrl_adc4_default &pinctrl_adc5_default
610			&pinctrl_adc6_default &pinctrl_adc7_default>;
611};
612
613&adc1 {
614	status = "okay";
615	pinctrl-0 = <&pinctrl_adc8_default &pinctrl_adc9_default>;
616};
617
618
619&ehci0 {
620	status = "okay";
621};
622
623&ehci1 {
624	status = "okay";
625};
626
627&uhci {
628	status = "okay";
629};
630