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	mlx,multi-host;
92};
93
94&mac3 {
95	status = "okay";
96	pinctrl-names = "default";
97	pinctrl-0 = <&pinctrl_rmii4_default>;
98	use-ncsi;
99	mlx,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 = <400000>;
373};
374
375&i2c14 {
376	status = "okay";
377	bus-frequency = <400000>;
378	adc@1d {
379		compatible = "ti,adc128d818";
380		reg = <0x1d>;
381		ti,mode = /bits/ 8 <2>;
382	};
383
384	adc@35 {
385		compatible = "ti,adc128d818";
386		reg = <0x35>;
387		ti,mode = /bits/ 8 <2>;
388	};
389
390	adc@37 {
391		compatible = "ti,adc128d818";
392		reg = <0x37>;
393		ti,mode = /bits/ 8 <2>;
394	};
395
396	power-sensor@40 {
397		compatible = "ti,ina230";
398		reg = <0x40>;
399	};
400
401	power-sensor@41 {
402		compatible = "ti,ina230";
403		reg = <0x41>;
404	};
405
406	power-sensor@42 {
407		compatible = "ti,ina230";
408		reg = <0x42>;
409	};
410
411	power-sensor@43 {
412		compatible = "ti,ina230";
413		reg = <0x43>;
414	};
415
416	power-sensor@44 {
417		compatible = "ti,ina230";
418		reg = <0x44>;
419	};
420
421	temperature-sensor@4e {
422		compatible = "ti,tmp75";
423		reg = <0x4e>;
424	};
425
426	temperature-sensor@4f {
427		compatible = "ti,tmp75";
428		reg = <0x4f>;
429	};
430
431	eeprom@51 {
432		compatible = "atmel,24c128";
433		reg = <0x51>;
434	};
435
436	i2c-mux@71 {
437		compatible = "nxp,pca9846";
438		#address-cells = <1>;
439		#size-cells = <0>;
440
441		idle-state = <0>;
442		i2c-mux-idle-disconnect;
443		reg = <0x71>;
444
445		i2c@0 {
446			#address-cells = <1>;
447			#size-cells = <0>;
448			reg = <0>;
449
450			adc@1f {
451				compatible = "ti,adc128d818";
452				reg = <0x1f>;
453				ti,mode = /bits/ 8 <2>;
454			};
455
456			pwm@20{
457				compatible = "max31790";
458				reg = <0x20>;
459				#address-cells = <1>;
460				#size-cells = <0>;
461			};
462
463			gpio@22{
464				compatible = "ti,tca6424";
465				reg = <0x22>;
466			};
467
468			pwm@23{
469				compatible = "max31790";
470				reg = <0x23>;
471				#address-cells = <1>;
472				#size-cells = <0>;
473			};
474
475			adc@33 {
476				compatible = "maxim,max11615";
477				reg = <0x33>;
478			};
479
480			eeprom@52 {
481				compatible = "atmel,24c128";
482				reg = <0x52>;
483			};
484
485			gpio@61 {
486				compatible = "nxp,pca9552";
487				reg = <0x61>;
488				#address-cells = <1>;
489				#size-cells = <0>;
490				gpio-controller;
491				#gpio-cells = <2>;
492			};
493		};
494
495		i2c@1 {
496			#address-cells = <1>;
497			#size-cells = <0>;
498			reg = <0>;
499
500			adc@1f {
501				compatible = "ti,adc128d818";
502				reg = <0x1f>;
503				ti,mode = /bits/ 8 <2>;
504			};
505
506			pwm@20{
507				compatible = "max31790";
508				reg = <0x20>;
509				#address-cells = <1>;
510				#size-cells = <0>;
511			};
512
513			gpio@22{
514				compatible = "ti,tca6424";
515				reg = <0x22>;
516			};
517
518			pwm@23{
519				compatible = "max31790";
520				reg = <0x23>;
521				#address-cells = <1>;
522				#size-cells = <0>;
523			};
524
525			adc@33 {
526				compatible = "maxim,max11615";
527				reg = <0x33>;
528			};
529
530			eeprom@52 {
531				compatible = "atmel,24c128";
532				reg = <0x52>;
533			};
534
535			gpio@61 {
536				compatible = "nxp,pca9552";
537				reg = <0x61>;
538				#address-cells = <1>;
539				#size-cells = <0>;
540				gpio-controller;
541				#gpio-cells = <2>;
542			};
543		};
544	};
545
546	i2c-mux@73 {
547		compatible = "nxp,pca9544";
548		#address-cells = <1>;
549		#size-cells = <0>;
550
551		idle-state = <0>;
552		i2c-mux-idle-disconnect;
553		reg = <0x73>;
554
555		i2c@0 {
556			#address-cells = <1>;
557			#size-cells = <0>;
558			reg = <0>;
559
560			adc@35 {
561				compatible = "maxim,max11617";
562				reg = <0x35>;
563			};
564		};
565
566		i2c@1 {
567			#address-cells = <1>;
568			#size-cells = <0>;
569			reg = <0>;
570
571			adc@35 {
572				compatible = "maxim,max11617";
573				reg = <0x35>;
574			};
575		};
576	};
577};
578
579&i2c15 {
580	status = "okay";
581	mctp-controller;
582	multi-master;
583	bus-frequency = <400000>;
584
585	mctp@10 {
586		compatible = "mctp-i2c-controller";
587		reg = <(0x10 | I2C_OWN_SLAVE_ADDRESS)>;
588	};
589
590	i2c-mux@72 {
591		compatible = "nxp,pca9544";
592		idle-state = <0>;
593		i2c-mux-idle-disconnect;
594		reg = <0x72>;
595	};
596};
597
598&adc0 {
599	ref_voltage = <2500>;
600	status = "okay";
601	pinctrl-0 = <&pinctrl_adc0_default &pinctrl_adc1_default
602			&pinctrl_adc2_default &pinctrl_adc3_default
603			&pinctrl_adc4_default &pinctrl_adc5_default
604			&pinctrl_adc6_default &pinctrl_adc7_default>;
605};
606
607&adc1 {
608	ref_voltage = <2500>;
609	status = "okay";
610	pinctrl-0 = <&pinctrl_adc8_default &pinctrl_adc9_default>;
611};
612
613
614&ehci0 {
615	status = "okay";
616};
617
618&ehci1 {
619	status = "okay";
620};
621
622&uhci {
623	status = "okay";
624};
625