xref: /linux/arch/arm/boot/dts/aspeed/aspeed-bmc-facebook-harma.dts (revision d53b8e36925256097a08d7cb749198d85cbf9b2b)
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		i2c24 = &imux24;
24		i2c25 = &imux25;
25		i2c26 = &imux26;
26		i2c27 = &imux27;
27		i2c28 = &imux28;
28		i2c29 = &imux29;
29		i2c30 = &imux30;
30		i2c31 = &imux31;
31
32		spi1 = &spi_gpio;
33	};
34
35	chosen {
36		stdout-path = &uart5;
37	};
38
39	memory@80000000 {
40		device_type = "memory";
41		reg = <0x80000000 0x80000000>;
42	};
43
44	iio-hwmon {
45		compatible = "iio-hwmon";
46		io-channels = <&adc0 0>, <&adc0 1>, <&adc0 2>, <&adc0 3>,
47			      <&adc0 4>, <&adc0 5>, <&adc0 6>, <&adc0 7>,
48			      <&adc1 2>;
49	};
50
51	leds {
52		compatible = "gpio-leds";
53
54		led-0 {
55			label = "bmc_heartbeat_amber";
56			gpios = <&gpio0 ASPEED_GPIO(P, 7) GPIO_ACTIVE_LOW>;
57			linux,default-trigger = "heartbeat";
58		};
59
60		led-1 {
61			label = "fp_id_amber";
62			default-state = "off";
63			gpios = <&gpio0 13 GPIO_ACTIVE_HIGH>;
64		};
65
66		led-2 {
67			label = "power_blue";
68			default-state = "off";
69			gpios = <&gpio0 124 GPIO_ACTIVE_HIGH>;
70		};
71	};
72
73	spi_gpio: spi-gpio {
74		status = "okay";
75		compatible = "spi-gpio";
76		#address-cells = <1>;
77		#size-cells = <0>;
78
79		gpio-sck = <&gpio0 ASPEED_GPIO(Z, 3) GPIO_ACTIVE_HIGH>;
80		gpio-mosi = <&gpio0 ASPEED_GPIO(Z, 4) GPIO_ACTIVE_HIGH>;
81		gpio-miso = <&gpio0 ASPEED_GPIO(Z, 5) GPIO_ACTIVE_HIGH>;
82		num-chipselects = <1>;
83		cs-gpios = <&gpio0 ASPEED_GPIO(Z, 0) GPIO_ACTIVE_LOW>;
84
85		tpmdev@0 {
86			compatible = "infineon,slb9670", "tcg,tpm_tis-spi";
87			spi-max-frequency = <33000000>;
88			reg = <0>;
89		};
90	};
91};
92
93// HOST BIOS Debug
94&uart1 {
95	status = "okay";
96};
97
98// SOL Host Console
99&uart2 {
100	status = "okay";
101	pinctrl-0 = <>;
102};
103
104// SOL BMC Console
105&uart4 {
106	status = "okay";
107	pinctrl-0 = <>;
108};
109
110// BMC Debug Console
111&uart5 {
112	status = "okay";
113};
114
115// MTIA
116&uart6 {
117	status = "okay";
118};
119
120&uart_routing {
121	status = "okay";
122};
123
124&wdt1 {
125	status = "okay";
126	pinctrl-names = "default";
127	pinctrl-0 = <&pinctrl_wdtrst1_default>;
128	aspeed,reset-type = "soc";
129	aspeed,external-signal;
130	aspeed,ext-push-pull;
131	aspeed,ext-active-high;
132	aspeed,ext-pulse-duration = <256>;
133};
134
135&mac3 {
136	status = "okay";
137	pinctrl-names = "default";
138	pinctrl-0 = <&pinctrl_rmii4_default>;
139	use-ncsi;
140	mellanox,multi-host;
141};
142
143&rtc {
144	status = "okay";
145};
146
147&fmc {
148	status = "okay";
149
150	flash@0 {
151		status = "okay";
152		m25p,fast-read;
153		label = "bmc";
154		spi-max-frequency = <50000000>;
155#include "openbmc-flash-layout-128.dtsi"
156	};
157
158	flash@1 {
159		status = "okay";
160		m25p,fast-read;
161		label = "alt-bmc";
162		spi-max-frequency = <50000000>;
163	};
164};
165
166// BIOS Flash
167&spi2 {
168	status = "okay";
169	pinctrl-names = "default";
170	pinctrl-0 = <&pinctrl_spi2_default>;
171
172	flash@0 {
173		status = "okay";
174		m25p,fast-read;
175		label = "pnor";
176		spi-max-frequency = <12000000>;
177		spi-tx-bus-width = <2>;
178		spi-rx-bus-width = <2>;
179	};
180};
181
182&kcs2 {
183	status = "okay";
184	aspeed,lpc-io-reg = <0xca8>;
185};
186
187&kcs3 {
188	status = "okay";
189	aspeed,lpc-io-reg = <0xca2>;
190};
191
192&i2c0 {
193	status = "okay";
194
195	pwm@5e{
196		compatible = "max31790";
197		reg = <0x5e>;
198		#address-cells = <1>;
199		#size-cells = <0>;
200	};
201};
202
203&i2c1 {
204	status = "okay";
205
206	temperature-sensor@4b {
207		compatible = "ti,tmp75";
208		reg = <0x4b>;
209	};
210
211	// MB NIC FRU
212	eeprom@50 {
213		compatible = "atmel,24c64";
214		reg = <0x50>;
215	};
216};
217
218&i2c2 {
219	status = "okay";
220
221	pwm@5e{
222		compatible = "max31790";
223		reg = <0x5e>;
224		#address-cells = <1>;
225		#size-cells = <0>;
226	};
227};
228
229&i2c3 {
230	status = "okay";
231
232	i2c-mux@70 {
233		compatible = "nxp,pca9543";
234		reg = <0x70>;
235		#address-cells = <1>;
236		#size-cells = <0>;
237
238		imux20: i2c@0 {
239			#address-cells = <1>;
240			#size-cells = <0>;
241			reg = <0>;
242			//Retimer Flash
243			eeprom@50 {
244				compatible = "atmel,24c2048";
245				reg = <0x50>;
246				pagesize = <128>;
247			};
248		};
249		imux21: i2c@1 {
250			#address-cells = <1>;
251			#size-cells = <0>;
252			reg = <1>;
253			retimer@24 {
254				compatible = "asteralabs,pt5161l";
255				reg = <0x24>;
256			};
257		};
258	};
259};
260
261&i2c4 {
262	status = "okay";
263	// PDB FRU
264	eeprom@52 {
265		compatible = "atmel,24c64";
266		reg = <0x52>;
267	};
268
269	power-monitor@69 {
270		compatible = "pmbus";
271		reg = <0x69>;
272	};
273
274	temperature-sensor@49 {
275		compatible = "ti,tmp75";
276		reg = <0x49>;
277	};
278
279	power-monitor@22 {
280		compatible = "lltc,ltc4286";
281		reg = <0x22>;
282		adi,vrange-low-enable;
283		shunt-resistor-micro-ohms = <500>;
284	};
285};
286
287&i2c5 {
288	status = "okay";
289};
290
291&i2c6 {
292	status = "okay";
293
294	i2c-mux@70 {
295		compatible = "nxp,pca9543";
296		reg = <0x70>;
297		#address-cells = <1>;
298		#size-cells = <0>;
299
300		imux22: i2c@0 {
301			#address-cells = <1>;
302			#size-cells = <0>;
303			reg = <0>;
304		};
305		imux23: i2c@1 {
306			#address-cells = <1>;
307			#size-cells = <0>;
308			reg = <1>;
309		};
310	};
311};
312
313&i2c7 {
314	status = "okay";
315};
316
317&i2c8 {
318	status = "okay";
319};
320
321&i2c9 {
322	status = "okay";
323
324	gpio@30 {
325		compatible = "nxp,pca9555";
326		reg = <0x30>;
327		gpio-controller;
328		#gpio-cells = <2>;
329	};
330	gpio@31 {
331		compatible = "nxp,pca9555";
332		reg = <0x31>;
333		gpio-controller;
334		#gpio-cells = <2>;
335
336		gpio-line-names =
337		"","","","",
338		"","","presence-cmm","",
339		"","","","",
340		"","","","";
341	};
342
343	i2c-mux@71 {
344		compatible = "nxp,pca9546";
345		reg = <0x71>;
346		#address-cells = <1>;
347		#size-cells = <0>;
348
349		imux24: i2c@0 {
350			#address-cells = <1>;
351			#size-cells = <0>;
352			reg = <0>;
353		};
354		imux25: i2c@1 {
355			#address-cells = <1>;
356			#size-cells = <0>;
357			reg = <1>;
358		};
359		imux26: i2c@2 {
360			#address-cells = <1>;
361			#size-cells = <0>;
362			reg = <2>;
363		};
364		imux27: i2c@3 {
365			#address-cells = <1>;
366			#size-cells = <0>;
367			reg = <3>;
368		};
369	};
370	// PTTV FRU
371	eeprom@52 {
372		compatible = "atmel,24c64";
373		reg = <0x52>;
374	};
375};
376
377&i2c11 {
378	status = "okay";
379};
380
381&i2c12 {
382	status = "okay";
383	retimer@24 {
384		compatible = "asteralabs,pt5161l";
385		reg = <0x24>;
386	};
387};
388
389&i2c13 {
390	status = "okay";
391
392	i2c-mux@70 {
393		compatible = "nxp,pca9545";
394		reg = <0x70>;
395		#address-cells = <1>;
396		#size-cells = <0>;
397
398		imux28: i2c@0 {
399			#address-cells = <1>;
400			#size-cells = <0>;
401			reg = <0>;
402		};
403		imux29: i2c@1 {
404			#address-cells = <1>;
405			#size-cells = <0>;
406			reg = <1>;
407			//MB FRU
408			eeprom@54 {
409				compatible = "atmel,24c64";
410				reg = <0x54>;
411			};
412		};
413		imux30: i2c@2 {
414			#address-cells = <1>;
415			#size-cells = <0>;
416			reg = <2>;
417		};
418		imux31: i2c@3 {
419			#address-cells = <1>;
420			#size-cells = <0>;
421			reg = <3>;
422		};
423	};
424};
425
426// To Debug card
427&i2c14 {
428	status = "okay";
429	multi-master;
430
431	ipmb@10 {
432		compatible = "ipmb-dev";
433		reg = <(0x10 | I2C_OWN_SLAVE_ADDRESS)>;
434		i2c-protocol;
435	};
436};
437
438&i2c15 {
439	status = "okay";
440
441	// SCM FRU
442	eeprom@50 {
443		compatible = "atmel,24c64";
444		reg = <0x50>;
445	};
446
447	// BSM FRU
448	eeprom@56 {
449		compatible = "atmel,24c64";
450		reg = <0x56>;
451	};
452};
453
454&adc0 {
455	aspeed,int-vref-microvolt = <2500000>;
456	status = "okay";
457	pinctrl-0 = <&pinctrl_adc0_default &pinctrl_adc1_default
458		&pinctrl_adc2_default &pinctrl_adc3_default
459		&pinctrl_adc4_default &pinctrl_adc5_default
460		&pinctrl_adc6_default &pinctrl_adc7_default>;
461};
462
463&adc1 {
464	aspeed,int-vref-microvolt = <2500000>;
465	status = "okay";
466	pinctrl-names = "default";
467	pinctrl-0 = <&pinctrl_adc10_default>;
468};
469
470&ehci0 {
471	status = "okay";
472};
473
474&gpio0 {
475	pinctrl-names = "default";
476	gpio-line-names =
477	/*A0-A7*/	"","","","","","","","",
478	/*B0-B7*/	"","","","",
479			"bmc-spi-mux-select-0","led-identify","","",
480	/*C0-C7*/	"reset-cause-platrst","","","","",
481			"cpu0-err-alert","","",
482	/*D0-D7*/	"","","sol-uart-select","","","","","",
483	/*E0-E7*/	"","","","","","","","",
484	/*F0-F7*/	"","","","","","","","",
485	/*G0-G7*/	"","","","","","","","",
486	/*H0-H7*/	"","","","","","","","",
487	/*I0-I7*/	"","","","","","","","",
488	/*J0-J7*/	"","","","","","","","",
489	/*K0-K7*/	"","","","","","","","",
490	/*L0-L7*/	"","","","",
491			"leakage-detect-alert","","","",
492	/*M0-M7*/	"","","","","","","","",
493	/*N0-N7*/	"led-postcode-0","led-postcode-1",
494			"led-postcode-2","led-postcode-3",
495			"led-postcode-4","led-postcode-5",
496			"led-postcode-6","led-postcode-7",
497	/*O0-O7*/	"","","","","","","","",
498	/*P0-P7*/	"power-button","power-host-control",
499			"reset-button","","led-power","","","",
500	/*Q0-Q7*/	"","","","","","","","",
501	/*R0-R7*/	"","","","","","","","",
502	/*S0-S7*/	"","","","","","","","",
503	/*T0-T7*/	"","","","","","","","",
504	/*U0-U7*/	"","","","","","","led-identify-gate","",
505	/*V0-V7*/	"","","","",
506			"rtc-battery-voltage-read-enable","","","",
507	/*W0-W7*/	"","","","","","","","",
508	/*X0-X7*/	"","","","","","","","",
509	/*Y0-Y7*/	"","","","","","","","",
510	/*Z0-Z7*/	"","","","","","","presence-post-card","";
511};
512
513&gpio1 {
514	gpio-line-names =
515	/*18A0-18A7*/ "ac-power-button","","","","","","","",
516	/*18B0-18B7*/ "","","","","","","","",
517	/*18C0-18C7*/ "","","","","","","","",
518	/*18D0-18D7*/ "","","","","","","","",
519	/*18E0-18E3*/ "","","","","","","","";
520};
521
522&sgpiom0 {
523	status = "okay";
524	max-ngpios = <128>;
525	ngpios = <128>;
526	bus-frequency = <2000000>;
527	gpio-line-names =
528	/*in - out - in - out */
529	/*A0-A3 line 0-7*/
530	"presence-scm-cable","power-config-disable-e1s-0",
531	"","",
532	"","power-config-disable-e1s-1",
533	"","",
534	/*A4-A7 line 8-15*/
535	"","power-config-asic-module-enable",
536	"","power-config-asic-power-good",
537	"","power-config-pdb-power-good",
538	"presence-cpu","smi-control-n",
539	/*B0-B3 line 16-23*/
540	"","nmi-control-n",
541	"","nmi-control-sync-flood-n",
542	"","",
543	"","",
544	/*B4-B7 line 24-31*/
545	"","FM_CPU_SP5R1",
546	"reset-cause-rsmrst","FM_CPU_SP5R2",
547	"","FM_CPU_SP5R3",
548	"","FM_CPU_SP5R4",
549	/*C0-C3 line 32-39*/
550	"","FM_CPU0_SA0",
551	"","FM_CPU0_SA1",
552	"","rt-cpu0-p0-enable",
553	"","rt-cpu0-p1-enable",
554	/*C4-C7 line 40-47*/
555	"","smb-rt-rom-p0-select",
556	"","smb-rt-rom-p1-select",
557	"","i3c-cpu-mux0-oe-n",
558	"","i3c-cpu-mux0-select",
559	/*D0-D3 line 48-55*/
560	"","i3c-cpu-mux1-oe-n",
561	"","i3c-cpu-mux1-select",
562	"","reset-control-bmc",
563	"","reset-control-cpu0-p0-mux",
564	/*D4-D7 line 56-63*/
565	"","reset-control-cpu0-p1-mux",
566	"","reset-control-e1s-mux",
567	"power-host-good","reset-control-mb-mux",
568	"host0-ready","reset-control-smb-e1s-0",
569	/*E0-E3 line 64-71*/
570	"","reset-control-smb-e1s-1",
571	"post-end-n","reset-control-srst",
572	"presence-e1s-0","reset-control-usb-hub",
573	"","reset-control",
574	/*E4-E7 line 72-79*/
575	"presence-e1s-1","reset-control-cpu-kbrst",
576	"","reset-control-platrst",
577	"","bmc-jtag-mux-select-0",
578	"","bmc-jtag-mux-select-1",
579	/*F0-F3 line 80-87*/
580	"","bmc-jtag-select",
581	"","bmc-ready-n",
582	"","bmc-ready-sgpio",
583	"","rt-cpu0-p0-force-enable",
584	/*F4-F7 line 88-95*/
585	"presence-asic-modules-0","rt-cpu0-p1-force-enable",
586	"presence-asic-modules-1","bios-debug-msg-disable",
587	"","uart-control-buffer-select",
588	"","ac-control-n",
589	/*G0-G3 line 96-103*/
590	"FM_CPU_CORETYPE2","",
591	"FM_CPU_CORETYPE1","",
592	"FM_CPU_CORETYPE0","",
593	"FM_BOARD_REV_ID5","",
594	/*G4-G7 line 104-111*/
595	"FM_BOARD_REV_ID4","",
596	"FM_BOARD_REV_ID3","",
597	"FM_BOARD_REV_ID2","",
598	"FM_BOARD_REV_ID1","",
599	/*H0-H3 line 112-119*/
600	"FM_BOARD_REV_ID0","",
601	"","","","","","",
602	/*H4-H7 line 120-127*/
603	"","",
604	"reset-control-pcie-expansion-3","",
605	"reset-control-pcie-expansion-2","",
606	"reset-control-pcie-expansion-1","",
607	/*I0-I3 line 128-135*/
608	"reset-control-pcie-expansion-0","",
609	"FM_EXP_SLOT_ID1","",
610	"FM_EXP_SLOT_ID0","",
611	"","",
612	/*I4-I7 line 136-143*/
613	"","","","","","","","",
614	/*J0-J3 line 144-151*/
615	"","","","","","","","",
616	/*J4-J7 line 152-159*/
617	"SLOT_ID_BCB_0","",
618	"SLOT_ID_BCB_1","",
619	"SLOT_ID_BCB_2","",
620	"SLOT_ID_BCB_3","",
621	/*K0-K3 line 160-167*/
622	"","","","","","","P0_I3C_APML_ALERT_L","",
623	/*K4-K7 line 168-175*/
624	"","","","","","","irq-uv-detect-alert","",
625	/*L0-L3 line 176-183*/
626	"irq-hsc-alert","",
627	"cpu0-prochot-alert","",
628	"cpu0-thermtrip-alert","",
629	"reset-cause-pcie","",
630	/*L4-L7 line 184-191*/
631	"pvdd11-ocp-alert","","","","","","","",
632	/*M0-M3 line 192-199*/
633	"","","","","","","","",
634	/*M4-M7 line 200-207*/
635	"","","","","","","","",
636	/*N0-N3 line 208-215*/
637	"","","","","","","","",
638	/*N4-N7 line 216-223*/
639	"","","","","","","","",
640	/*O0-O3 line 224-231*/
641	"","","","","","","","",
642	/*O4-O7 line 232-239*/
643	"","","","","","","","",
644	/*P0-P3 line 240-247*/
645	"","","","","","","","",
646	/*P4-P7 line 248-255*/
647	"","","","","","","","";
648};
649