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