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