xref: /linux/arch/arm/boot/dts/aspeed/aspeed-bmc-facebook-harma.dts (revision 9fd2da71c301184d98fe37674ca8d017d1ce6600)
1// SPDX-License-Identifier: GPL-2.0-or-later
2// Copyright 2023 Facebook Inc.
3
4/dts-v1/;
5#include "aspeed-g6.dtsi"
6#include <dt-bindings/gpio/aspeed-gpio.h>
7#include <dt-bindings/i2c/i2c.h>
8
9/ {
10	model = "Facebook Harma";
11	compatible = "facebook,harma-bmc", "aspeed,ast2600";
12
13	aliases {
14		serial0 = &uart1;
15		serial1 = &uart2;
16		serial2 = &uart4;
17		serial4 = &uart5;
18
19		i2c20 = &imux20;
20		i2c21 = &imux21;
21		i2c22 = &imux22;
22		i2c23 = &imux23;
23		i2c28 = &imux28;
24		i2c29 = &imux29;
25		i2c30 = &imux30;
26		i2c31 = &imux31;
27
28		spi1 = &spi_gpio;
29	};
30
31	chosen {
32		stdout-path = &uart5;
33	};
34
35	memory@80000000 {
36		device_type = "memory";
37		reg = <0x80000000 0x80000000>;
38	};
39
40	iio-hwmon {
41		compatible = "iio-hwmon";
42		io-channels = <&adc0 0>, <&adc0 1>, <&adc0 2>, <&adc0 3>,
43			      <&adc0 4>, <&adc0 5>, <&adc0 6>, <&adc0 7>,
44			      <&adc1 2>;
45	};
46
47	leds {
48		compatible = "gpio-leds";
49
50		led-0 {
51			label = "bmc_heartbeat_amber";
52			gpios = <&gpio0 ASPEED_GPIO(P, 7) GPIO_ACTIVE_LOW>;
53			linux,default-trigger = "heartbeat";
54		};
55
56		led-1 {
57			label = "fp_id_amber";
58			default-state = "off";
59			gpios = <&gpio0 13 GPIO_ACTIVE_HIGH>;
60		};
61
62		led-2 {
63			label = "power_blue";
64			default-state = "off";
65			gpios = <&gpio0 124 GPIO_ACTIVE_HIGH>;
66		};
67	};
68
69	spi_gpio: spi {
70		status = "okay";
71		compatible = "spi-gpio";
72		#address-cells = <1>;
73		#size-cells = <0>;
74
75		sck-gpios = <&gpio0 ASPEED_GPIO(Z, 3) GPIO_ACTIVE_HIGH>;
76		mosi-gpios = <&gpio0 ASPEED_GPIO(Z, 4) GPIO_ACTIVE_HIGH>;
77		miso-gpios = <&gpio0 ASPEED_GPIO(Z, 5) GPIO_ACTIVE_HIGH>;
78		num-chipselects = <1>;
79		cs-gpios = <&gpio0 ASPEED_GPIO(Z, 0) GPIO_ACTIVE_LOW>;
80
81		tpm@0 {
82			compatible = "infineon,slb9670", "tcg,tpm_tis-spi";
83			spi-max-frequency = <33000000>;
84			reg = <0>;
85		};
86	};
87};
88
89// HOST BIOS Debug
90&uart1 {
91	status = "okay";
92};
93
94// SOL Host Console
95&uart2 {
96	status = "okay";
97	pinctrl-0 = <>;
98};
99
100// SOL BMC Console
101&uart4 {
102	status = "okay";
103	pinctrl-0 = <>;
104};
105
106// BMC Debug Console
107&uart5 {
108	status = "okay";
109};
110
111// MTIA
112&uart6 {
113	status = "okay";
114};
115
116&uart_routing {
117	status = "okay";
118};
119
120&wdt1 {
121	status = "okay";
122	pinctrl-names = "default";
123	pinctrl-0 = <&pinctrl_wdtrst1_default>;
124	aspeed,reset-type = "soc";
125	aspeed,external-signal;
126	aspeed,ext-push-pull;
127	aspeed,ext-active-high;
128	aspeed,ext-pulse-duration = <256>;
129};
130
131&mac3 {
132	status = "okay";
133	pinctrl-names = "default";
134	pinctrl-0 = <&pinctrl_rmii4_default>;
135	use-ncsi;
136};
137
138&fmc {
139	status = "okay";
140
141	flash@0 {
142		status = "okay";
143		m25p,fast-read;
144		label = "bmc";
145		spi-max-frequency = <50000000>;
146#include "openbmc-flash-layout-128.dtsi"
147	};
148
149	flash@1 {
150		status = "okay";
151		m25p,fast-read;
152		label = "alt-bmc";
153		spi-max-frequency = <50000000>;
154	};
155};
156
157// BIOS Flash
158&spi2 {
159	status = "okay";
160	pinctrl-names = "default";
161	pinctrl-0 = <&pinctrl_spi2_default>;
162
163	flash@0 {
164		status = "okay";
165		m25p,fast-read;
166		label = "pnor";
167		spi-max-frequency = <12000000>;
168		spi-tx-bus-width = <2>;
169		spi-rx-bus-width = <2>;
170	};
171};
172
173&kcs2 {
174	status = "okay";
175	aspeed,lpc-io-reg = <0xca8>;
176};
177
178&kcs3 {
179	status = "okay";
180	aspeed,lpc-io-reg = <0xca2>;
181};
182
183&i2c0 {
184	status = "okay";
185
186	pwm@5e{
187		compatible = "max31790";
188		reg = <0x5e>;
189		#address-cells = <1>;
190		#size-cells = <0>;
191	};
192
193	power-sensor@40 {
194		compatible = "ti,ina238";
195		reg = <0x40>;
196		shunt-resistor = <1000>;
197	};
198
199	power-sensor@41 {
200		compatible = "ti,ina238";
201		reg = <0x41>;
202		shunt-resistor = <1000>;
203	};
204
205	power-sensor@44 {
206		compatible = "ti,ina238";
207		reg = <0x44>;
208		shunt-resistor = <1000>;
209	};
210
211	power-sensor@45 {
212		compatible = "ti,ina238";
213		reg = <0x45>;
214		shunt-resistor = <1000>;
215	};
216
217	temperature-sensor@4b {
218		compatible = "ti,tmp75";
219		reg = <0x4b>;
220	};
221
222	gpio@12 {
223		compatible = "nxp,pca9555";
224		reg = <0x12>;
225		gpio-controller;
226		#gpio-cells = <2>;
227		interrupt-parent = <&sgpiom0>;
228		interrupts = <116 IRQ_TYPE_LEVEL_LOW>;
229
230		gpio-line-names =
231		"","",
232		"","",
233		"","",
234		"","",
235		"","",
236		"","",
237		"","fcb1-activate",
238		"","";
239	};
240};
241
242&i2c1 {
243	status = "okay";
244
245	temperature-sensor@4b {
246		compatible = "ti,tmp75";
247		reg = <0x4b>;
248	};
249
250	// MB NIC FRU
251	eeprom@50 {
252		compatible = "atmel,24c64";
253		reg = <0x50>;
254	};
255};
256
257&i2c2 {
258	status = "okay";
259
260	pwm@5e{
261		compatible = "max31790";
262		reg = <0x5e>;
263		#address-cells = <1>;
264		#size-cells = <0>;
265	};
266
267	power-sensor@40 {
268		compatible = "ti,ina238";
269		reg = <0x40>;
270		shunt-resistor = <1000>;
271	};
272
273	power-sensor@41 {
274		compatible = "ti,ina238";
275		reg = <0x41>;
276		shunt-resistor = <1000>;
277	};
278
279	power-sensor@44 {
280		compatible = "ti,ina238";
281		reg = <0x44>;
282		shunt-resistor = <1000>;
283	};
284
285	power-sensor@45 {
286		compatible = "ti,ina238";
287		reg = <0x45>;
288		shunt-resistor = <1000>;
289	};
290
291	temperature-sensor@4b {
292		compatible = "ti,tmp75";
293		reg = <0x4b>;
294	};
295
296	gpio@12 {
297		compatible = "nxp,pca9555";
298		reg = <0x12>;
299		gpio-controller;
300		#gpio-cells = <2>;
301		interrupt-parent = <&sgpiom0>;
302		interrupts = <114 IRQ_TYPE_LEVEL_LOW>;
303
304		gpio-line-names =
305		"","",
306		"","",
307		"","",
308		"","",
309		"","",
310		"","",
311		"","fcb0-activate",
312		"","";
313	};
314};
315
316&i2c3 {
317	status = "okay";
318
319	i2c-mux@70 {
320		compatible = "nxp,pca9543";
321		reg = <0x70>;
322		#address-cells = <1>;
323		#size-cells = <0>;
324
325		imux20: i2c@0 {
326			#address-cells = <1>;
327			#size-cells = <0>;
328			reg = <0>;
329			//Retimer Flash
330			eeprom@50 {
331				compatible = "atmel,24c2048";
332				reg = <0x50>;
333				pagesize = <128>;
334			};
335		};
336		imux21: i2c@1 {
337			#address-cells = <1>;
338			#size-cells = <0>;
339			reg = <1>;
340			retimer@24 {
341				compatible = "asteralabs,pt5161l";
342				reg = <0x24>;
343			};
344		};
345	};
346};
347
348&i2c4 {
349	status = "okay";
350	// PDB FRU
351	eeprom@52 {
352		compatible = "atmel,24c64";
353		reg = <0x52>;
354	};
355
356	power-monitor@69 {
357		compatible = "pmbus";
358		reg = <0x69>;
359	};
360
361	temperature-sensor@49 {
362		compatible = "ti,tmp75";
363		reg = <0x49>;
364	};
365
366	power-monitor@44 {
367		compatible = "lltc,ltc4287";
368		reg = <0x44>;
369		shunt-resistor-micro-ohms = <250>;
370	};
371
372	power-monitor@40 {
373		compatible = "infineon,xdp710";
374		reg = <0x40>;
375	};
376};
377
378&i2c5 {
379	status = "okay";
380};
381
382&i2c6 {
383	status = "okay";
384
385	i2c-mux@70 {
386		compatible = "nxp,pca9543";
387		reg = <0x70>;
388		#address-cells = <1>;
389		#size-cells = <0>;
390
391		imux22: i2c@0 {
392			#address-cells = <1>;
393			#size-cells = <0>;
394			reg = <0>;
395
396			power-monitor@45 {
397				compatible = "ti,ina230";
398				reg = <0x45>;
399			};
400
401		};
402		imux23: i2c@1 {
403			#address-cells = <1>;
404			#size-cells = <0>;
405			reg = <1>;
406
407			power-monitor@45 {
408				compatible = "ti,ina230";
409				reg = <0x45>;
410			};
411		};
412	};
413};
414
415&i2c7 {
416	status = "okay";
417};
418
419&i2c8 {
420	status = "okay";
421};
422
423&i2c9 {
424	status = "okay";
425
426	mctp-controller;
427	multi-master;
428
429	mctp@10 {
430		compatible = "mctp-i2c-controller";
431		reg = <(0x10 | I2C_OWN_SLAVE_ADDRESS)>;
432	};
433
434	gpio@30 {
435		compatible = "nxp,pca9555";
436		reg = <0x30>;
437		gpio-controller;
438		#gpio-cells = <2>;
439	};
440	gpio@31 {
441		compatible = "nxp,pca9555";
442		reg = <0x31>;
443		gpio-controller;
444		#gpio-cells = <2>;
445	};
446
447	// PTTV FRU
448	eeprom@52 {
449		compatible = "atmel,24c64";
450		reg = <0x52>;
451	};
452};
453
454&i2c11 {
455	status = "okay";
456
457	gpio@13 {
458		compatible = "nxp,pca9555";
459		reg = <0x13>;
460		gpio-controller;
461		#gpio-cells = <2>;
462		interrupt-parent = <&sgpiom0>;
463		interrupts = <222 IRQ_TYPE_LEVEL_LOW>;
464
465		gpio-line-names =
466		"","",
467		"","",
468		"","",
469		"","health-mmc",
470		"","",
471		"","",
472		"","",
473		"","";
474	};
475
476	gpio@30 {
477		compatible = "nxp,pca9555";
478		reg = <0x30>;
479		gpio-controller;
480		#gpio-cells = <2>;
481	};
482	gpio@31 {
483		compatible = "nxp,pca9555";
484		reg = <0x31>;
485		gpio-controller;
486		#gpio-cells = <2>;
487	};
488
489	// Aegis FRU
490	eeprom@52 {
491		compatible = "atmel,24c64";
492		reg = <0x52>;
493	};
494};
495
496&i2c12 {
497	status = "okay";
498	retimer@24 {
499		compatible = "asteralabs,pt5161l";
500		reg = <0x24>;
501	};
502};
503
504&i2c13 {
505	status = "okay";
506
507	i2c-mux@70 {
508		compatible = "nxp,pca9545";
509		reg = <0x70>;
510		#address-cells = <1>;
511		#size-cells = <0>;
512
513		imux28: i2c@0 {
514			#address-cells = <1>;
515			#size-cells = <0>;
516			reg = <0>;
517			power-monitor@61 {
518				compatible = "isil,isl69260";
519				reg = <0x61>;
520			};
521			power-monitor@62 {
522				compatible = "isil,isl69260";
523				reg = <0x62>;
524			};
525			power-monitor@63 {
526				compatible = "isil,isl69260";
527				reg = <0x63>;
528			};
529			power-monitor@64 {
530				compatible = "infineon,xdpe152c4";
531				reg = <0x64>;
532			};
533			power-monitor@66 {
534				compatible = "infineon,xdpe152c4";
535				reg = <0x66>;
536			};
537			power-monitor@68 {
538				compatible = "infineon,xdpe152c4";
539				reg = <0x68>;
540			};
541		};
542		imux29: i2c@1 {
543			#address-cells = <1>;
544			#size-cells = <0>;
545			reg = <1>;
546			//MB FRU
547			eeprom@54 {
548				compatible = "atmel,24c64";
549				reg = <0x54>;
550			};
551
552			adc@1d {
553				compatible = "ti,adc128d818";
554				reg = <0x1d>;
555				ti,mode = /bits/ 8 <1>;
556			};
557
558			adc@1f {
559				compatible = "ti,adc128d818";
560				reg = <0x1f>;
561				ti,mode = /bits/ 8 <1>;
562			};
563
564		};
565		imux30: i2c@2 {
566			#address-cells = <1>;
567			#size-cells = <0>;
568			reg = <2>;
569		};
570		imux31: i2c@3 {
571			#address-cells = <1>;
572			#size-cells = <0>;
573			reg = <3>;
574
575			rtc@51 {
576				compatible = "nxp,pcf8563";
577				reg = <0x51>;
578			};
579		};
580	};
581};
582
583// To Debug card
584&i2c14 {
585	status = "okay";
586	multi-master;
587
588	ipmb@10 {
589		compatible = "ipmb-dev";
590		reg = <(0x10 | I2C_OWN_SLAVE_ADDRESS)>;
591		i2c-protocol;
592	};
593};
594
595&i2c15 {
596	status = "okay";
597
598	// SCM FRU
599	eeprom@50 {
600		compatible = "atmel,24c64";
601		reg = <0x50>;
602	};
603
604	// BSM FRU
605	eeprom@56 {
606		compatible = "atmel,24c64";
607		reg = <0x56>;
608	};
609};
610
611&adc0 {
612	aspeed,int-vref-microvolt = <2500000>;
613	status = "okay";
614	pinctrl-0 = <&pinctrl_adc0_default &pinctrl_adc1_default
615		&pinctrl_adc2_default &pinctrl_adc3_default
616		&pinctrl_adc4_default &pinctrl_adc5_default
617		&pinctrl_adc6_default &pinctrl_adc7_default>;
618};
619
620&adc1 {
621	aspeed,int-vref-microvolt = <2500000>;
622	status = "okay";
623	pinctrl-names = "default";
624	pinctrl-0 = <&pinctrl_adc10_default>;
625};
626
627&ehci0 {
628	status = "okay";
629};
630
631&gpio0 {
632	pinctrl-names = "default";
633	gpio-line-names =
634	/*A0-A7*/	"","","","","","","","",
635	/*B0-B7*/	"","","","",
636			"bmc-spi-mux-select-0","led-identify","","",
637	/*C0-C7*/	"reset-cause-platrst","","","","",
638			"power-hsc-good","power-chassis-good","",
639	/*D0-D7*/	"","","sol-uart-select","","","","","",
640	/*E0-E7*/	"","","","","","","","",
641	/*F0-F7*/	"","","","","","","","",
642	/*G0-G7*/	"","","","","","","","",
643	/*H0-H7*/	"","","","","","","","",
644	/*I0-I7*/	"","","","","","","","",
645	/*J0-J7*/	"","","","","","","","",
646	/*K0-K7*/	"","","","","","","","",
647	/*L0-L7*/	"","","","",
648			"leakage-detect-alert","","","",
649	/*M0-M7*/	"","","","","","","","",
650	/*N0-N7*/	"led-postcode-0","led-postcode-1",
651			"led-postcode-2","led-postcode-3",
652			"led-postcode-4","led-postcode-5",
653			"led-postcode-6","led-postcode-7",
654	/*O0-O7*/	"","","","","","","","",
655	/*P0-P7*/	"power-button","power-host-control",
656			"reset-button","","led-power","","","",
657	/*Q0-Q7*/
658			"","","","",
659			"","power-chassis-control","","uart-switch-button",
660	/*R0-R7*/	"","","","","","","","",
661	/*S0-S7*/	"","","","","","","","",
662	/*T0-T7*/	"","","","","","","","",
663	/*U0-U7*/	"","","","","","","led-identify-gate","",
664	/*V0-V7*/	"","","","",
665			"","",
666			"","",
667	/*W0-W7*/	"","","","","","","","",
668	/*X0-X7*/	"","","","","","","","",
669	/*Y0-Y7*/	"","","","","","","","",
670	/*Z0-Z7*/	"","","","","","","presence-post-card","";
671};
672
673&gpio1 {
674	gpio-line-names =
675	/*18A0-18A7*/ "ac-power-button","","","","","","","",
676	/*18B0-18B7*/ "","","","","","","","",
677	/*18C0-18C7*/ "","","","","","","","",
678	/*18D0-18D7*/ "","","","","","","","",
679	/*18E0-18E3*/ "","","","","","","","";
680};
681
682&sgpiom0 {
683	status = "okay";
684	ngpios = <128>;
685	bus-frequency = <2000000>;
686	gpio-line-names =
687	/*in - out - in - out */
688	/*A0-A3 line 0-7*/
689	"presence-scm-cable","power-config-disable-e1s-0",
690	"","",
691	"","power-config-disable-e1s-1",
692	"","",
693	/*A4-A7 line 8-15*/
694	"","power-config-asic-module-enable",
695	"","power-config-asic-power-good",
696	"","power-config-pdb-power-good",
697	"presence-cpu","smi-control-n",
698	/*B0-B3 line 16-23*/
699	"","nmi-control-n",
700	"","nmi-control-sync-flood-n",
701	"","",
702	"","",
703	/*B4-B7 line 24-31*/
704	"","FM_CPU_SP5R1",
705	"reset-cause-rsmrst","FM_CPU_SP5R2",
706	"","FM_CPU_SP5R3",
707	"","FM_CPU_SP5R4",
708	/*C0-C3 line 32-39*/
709	"","FM_CPU0_SA0",
710	"","FM_CPU0_SA1",
711	"","rt-cpu0-p0-enable",
712	"","rt-cpu0-p1-enable",
713	/*C4-C7 line 40-47*/
714	"","smb-rt-rom-p0-select",
715	"","smb-rt-rom-p1-select",
716	"","i3c-cpu-mux0-oe-n",
717	"","i3c-cpu-mux0-select",
718	/*D0-D3 line 48-55*/
719	"","i3c-cpu-mux1-oe-n",
720	"","i3c-cpu-mux1-select",
721	"","reset-control-bmc",
722	"","reset-control-cpu0-p0-mux",
723	/*D4-D7 line 56-63*/
724	"","reset-control-cpu0-p1-mux",
725	"","reset-control-e1s-mux",
726	"power-host-good","reset-control-mb-mux",
727	"host0-ready","reset-control-smb-e1s-0",
728	/*E0-E3 line 64-71*/
729	"","reset-control-smb-e1s-1",
730	"post-end-n","reset-control-srst",
731	"presence-e1s-0","reset-control-usb-hub",
732	"","reset-control",
733	/*E4-E7 line 72-79*/
734	"presence-e1s-1","reset-control-cpu-kbrst",
735	"","reset-control-platrst",
736	"","bmc-jtag-mux-select-0",
737	"","bmc-jtag-mux-select-1",
738	/*F0-F3 line 80-87*/
739	"","bmc-jtag-select",
740	"","bmc-ready-n",
741	"","bmc-ready-sgpio",
742	"","rt-cpu0-p0-force-enable",
743	/*F4-F7 line 88-95*/
744	"presence-asic-modules-0","rt-cpu0-p1-force-enable",
745	"presence-asic-modules-1","bios-debug-msg-disable",
746	"","uart-control-buffer-select",
747	"presence-cmm","ac-control-n",
748	/*G0-G3 line 96-103*/
749	"FM_CPU_CORETYPE2","",
750	"FM_CPU_CORETYPE1","rtc-battery-voltage-read-enable",
751	"FM_CPU_CORETYPE0","",
752	"FM_BOARD_REV_ID5","",
753	/*G4-G7 line 104-111*/
754	"FM_BOARD_REV_ID4","",
755	"FM_BOARD_REV_ID3","",
756	"FM_BOARD_REV_ID2","",
757	"FM_BOARD_REV_ID1","",
758	/*H0-H3 line 112-119*/
759	"FM_BOARD_REV_ID0","reset-control-cmos-clear",
760	"","","","","","",
761	/*H4-H7 line 120-127*/
762	"","",
763	"reset-control-pcie-expansion-3","",
764	"reset-control-pcie-expansion-2","",
765	"reset-control-pcie-expansion-1","",
766	/*I0-I3 line 128-135*/
767	"reset-control-pcie-expansion-0","",
768	"FM_EXP_SLOT_ID1","",
769	"FM_EXP_SLOT_ID0","",
770	"","",
771	/*I4-I7 line 136-143*/
772	"","","","","","","","",
773	/*J0-J3 line 144-151*/
774	"","","power-card-enable","","","","","",
775	/*J4-J7 line 152-159*/
776	"SLOT_ID_BCB_0","",
777	"SLOT_ID_BCB_1","",
778	"SLOT_ID_BCB_2","",
779	"SLOT_ID_BCB_3","",
780	/*K0-K3 line 160-167*/
781	"","","","","","","P0_I3C_APML_ALERT_L","",
782	/*K4-K7 line 168-175*/
783	"","","","","","","irq-uv-detect-alert","",
784	/*L0-L3 line 176-183*/
785	"irq-hsc-alert","",
786	"cpu0-prochot-alert","",
787	"cpu0-thermtrip-alert","",
788	"reset-cause-pcie","",
789	/*L4-L7 line 184-191*/
790	"pvdd11-ocp-alert","",
791	"power-fault-n","",
792	"asic0-card-type-detection0-n","",
793	"asic0-card-type-detection1-n","",
794	/*M0-M3 line 192-199*/
795	"asic0-card-type-detection2-n","",
796	"uart-switch-lsb","",
797	"uart-switch-msb","",
798	"","",
799	/*M4-M7 line 200-207*/
800	"","","","","","","","",
801	/*N0-N3 line 208-215*/
802	"","","","","","","","",
803	/*N4-N7 line 216-223*/
804	"","","","","","","","",
805	/*O0-O3 line 224-231*/
806	"","","","","","","","",
807	/*O4-O7 line 232-239*/
808	"","","","","","","","",
809	/*P0-P3 line 240-247*/
810	"","","","","","","","",
811	/*P4-P7 line 248-255*/
812	"","","","","","","","";
813};
814