xref: /freebsd/sys/contrib/device-tree/src/arm/aspeed/aspeed-bmc-asrock-altrad8.dts (revision 0cd4430a9320c916a84617b6bbf400f5c64a09c7)
1// SPDX-License-Identifier: GPL-2.0+
2/dts-v1/;
3
4#include "aspeed-g5.dtsi"
5#include <dt-bindings/gpio/aspeed-gpio.h>
6#include <dt-bindings/leds/common.h>
7#include <dt-bindings/i2c/i2c.h>
8
9/ {
10	model = "ASRock ALTRAD8 BMC";
11	compatible = "asrock,altrad8-bmc", "aspeed,ast2500";
12
13	aliases {
14		serial4 = &uart5;
15		i2c50 = &nvme1;
16		i2c51 = &pcie4;
17		i2c52 = &pcie5;
18		i2c53 = &pcie6;
19		i2c54 = &pcie7;
20		i2c55 = &nvme3;
21		i2c56 = &nvme2;
22		i2c57 = &nvme0;
23		i2c58 = &nvme4;
24		i2c59 = &nvme5;
25		i2c60 = &nvme6;
26		i2c61 = &nvme7;
27		i2c62 = &nvme8;
28		i2c63 = &nvme9;
29		i2c64 = &nvme10;
30		i2c65 = &nvme11;
31	};
32
33	chosen {
34		stdout-path = "uart5:115200n8";
35	};
36
37	iio-hwmon {
38		compatible = "iio-hwmon";
39		io-channels =	<&adc 0>, <&adc 1>, <&adc 2>, <&adc 3>,
40				<&adc 4> ,<&adc 5>, <&adc 6>, <&adc 7>,
41				<&adc 8>, <&adc 9>, <&adc 10>, <&adc 11>,
42				<&adc 12>, <&adc 13>, <&adc 14>, <&adc 15>;
43	};
44
45	leds {
46		compatible = "gpio-leds";
47
48		led-system-fault {
49			gpios = <&gpio ASPEED_GPIO(G,3) GPIO_ACTIVE_LOW>;
50			label = "platform:red:fault";
51			color = <LED_COLOR_ID_RED>;
52			function = LED_FUNCTION_FAULT;
53		};
54
55		led-heartbeat {
56			gpios = <&gpio ASPEED_GPIO(G,0) GPIO_ACTIVE_LOW>;
57			label = "platform:green:heartbeat";
58			color = <LED_COLOR_ID_GREEN>;
59			function = LED_FUNCTION_INDICATOR;
60			linux,default-trigger = "timer";
61		};
62
63		led-fan1-fault {
64			retain-state-shutdown;
65			default-state = "off";
66			gpios = <&io_expander0 0 GPIO_ACTIVE_LOW>;
67			label = "fan1:red:fault";
68			color = <LED_COLOR_ID_RED>;
69			function = LED_FUNCTION_FAULT;
70		};
71
72		led-fan2-fault {
73			retain-state-shutdown;
74			default-state = "off";
75			gpios = <&io_expander0 1 GPIO_ACTIVE_LOW>;
76			label = "fan2:red:fault";
77			color = <LED_COLOR_ID_RED>;
78			function = LED_FUNCTION_FAULT;
79		};
80
81		led-fan3-fault {
82			retain-state-shutdown;
83			default-state = "off";
84			gpios = <&io_expander0 2 GPIO_ACTIVE_LOW>;
85			label = "fan3:red:fault";
86			color = <LED_COLOR_ID_RED>;
87			function = LED_FUNCTION_FAULT;
88		};
89
90		led-fan4-fault {
91			retain-state-shutdown;
92			default-state = "off";
93			gpios = <&io_expander0 3 GPIO_ACTIVE_LOW>;
94			label = "fan4:red:fault";
95			color = <LED_COLOR_ID_RED>;
96			function = LED_FUNCTION_FAULT;
97		};
98
99		led-fan5-fault {
100			retain-state-shutdown;
101			default-state = "off";
102			gpios = <&io_expander0 4 GPIO_ACTIVE_LOW>;
103			label = "fan5:red:fault";
104			color = <LED_COLOR_ID_RED>;
105			function = LED_FUNCTION_FAULT;
106		};
107	};
108
109	memory@80000000 {
110		reg = <0x80000000 0x20000000>;
111	};
112
113	reserved-memory {
114		#address-cells = <1>;
115		#size-cells = <1>;
116		ranges;
117
118		gfx_memory: framebuffer {
119			compatible = "shared-dma-pool";
120			size = <0x01000000>;
121			alignment = <0x01000000>;
122			reusable;
123		};
124
125		vga_memory: framebuffer@9f000000 {
126			no-map;
127			reg = <0x9f000000 0x01000000>; /* 16M */
128		};
129
130		video_engine_memory: jpegbuffer {
131			compatible = "shared-dma-pool";
132			size = <0x02000000>;	/* 32M */
133			alignment = <0x01000000>;
134			reusable;
135		};
136	};
137};
138
139&adc {
140	status = "okay";
141	pinctrl-names = "default";
142	pinctrl-0 = <&pinctrl_adc0_default
143		&pinctrl_adc1_default
144		&pinctrl_adc2_default
145		&pinctrl_adc3_default
146		&pinctrl_adc4_default
147		&pinctrl_adc5_default
148		&pinctrl_adc6_default
149		&pinctrl_adc7_default
150		&pinctrl_adc8_default
151		&pinctrl_adc9_default
152		&pinctrl_adc10_default
153		&pinctrl_adc11_default
154		&pinctrl_adc12_default
155		&pinctrl_adc13_default
156		&pinctrl_adc14_default
157		&pinctrl_adc15_default>;
158};
159
160&fmc {
161	status = "okay";
162
163	flash@0 {
164		label = "bmc";
165		m25p,fast-read;
166		spi-max-frequency = <50000000>;
167		status = "okay";
168#include "openbmc-flash-layout-64.dtsi"
169	};
170};
171
172&gfx {
173	memory-region = <&gfx_memory>;
174	status = "okay";
175};
176
177&gpio {
178	gpio-line-names =
179	/*A0-A7*/	"","","","bmc-ready","","","","",
180	/*B0-B7*/	"i2c-backup-sel","","","","","","","host0-shd-ack-n",
181	/*C0-C7*/	"","","","","","","","",
182	/*D0-D7*/	"button-power-n","control-power-n","button-reset-n",
183			"host0-sysreset-n","","","power-chassis-good","",
184	/*E0-E7*/	"","s0-vrd1-vddq0123-fault-n",
185			"s0-vrd1-vddq4567-fault-n","s0-vrd0-vddc-fault-n",
186			"s0-vrd3-p0v75-fault-n","","","",
187	/*F0-F7*/	"","","ps-atx-on-n","","","","","",
188	/*G0-G7*/	"led-bmc-heartbeat-n","button-identify-n","",
189			"led-system-fault-n","uboot-ready","bmc-salt2-n","","",
190	/*H0-H7*/	"ps-pwr-ok","","","","","","","",
191	/*I0-I7*/	"","","","","","","","",
192	/*J0-J7*/	"s0-hightemp-n","","","","","","","",
193	/*K0-K7*/	"","","","","","","","",
194	/*L0-L7*/	"","","","","","","","",
195	/*M0-M7*/	"cpld-disable-bmc-n","","","","","s0-spi-auth-fail-n","","",
196	/*N0-N7*/	"","","","","","","","",
197	/*O0-O7*/	"","","","","","","","",
198	/*P0-P7*/	"","","","","","","","",
199	/*Q0-Q7*/	"","","","","","","led-identify-n",
200			"chassis-intrusion-n",
201	/*R0-R7*/	"","","ext-hightemp-n","spi0-program-sel","",
202			"output-hwm-bat-en","","",
203	/*S0-S7*/	"s0-vr-hot-n","","input-salt2-n","bmc-sysreset-n","","","","",
204	/*T0-T7*/	"","","","","","","","",
205	/*U0-U7*/	"","","","","","","","",
206	/*V0-V7*/	"","","","","","","","",
207	/*W0-W7*/	"","","","","","","","",
208	/*X0-X7*/	"","","","","","","","",
209	/*Y0-Y7*/	"","","","","","","","",
210	/*Z0-Z7*/	"","","","s0-rtc-lock","","","","",
211	/*AA0-AA7*/	"s0-rtc-int-n","","","","","pmbus-sel-n","","",
212	/*AB0-AB7*/	"host0-reboot-ack-n","s0-sys-auth-failure-n",
213			"","","","","","",
214	/*AC0-AC7*/	"s0-fault-alert","host0-ready","s0-overtemp-n",
215			"","bmc-ok","host0-special-boot","presence-cpu0",
216			"host0-shd-req-n";
217
218	status = "okay";
219};
220
221&i2c0 {
222	status = "okay";
223
224	ipmb@10 {
225		compatible = "ipmb-dev";
226		reg = <(0x10 | I2C_OWN_SLAVE_ADDRESS)>;
227		i2c-protocol;
228	};
229
230};
231
232&i2c1 {
233	status = "okay";
234
235	i2c-mux1@73 {
236		compatible = "nxp,pca9548";
237		reg = <0x73>;
238		#address-cells = <1>;
239		#size-cells = <0>;
240		i2c-mux-idle-disconnect;
241
242		nvme1: i2c@0 {
243			#address-cells = <1>;
244			#size-cells = <0>;
245			reg = <0>;
246		};
247
248		pcie4: i2c@1 {
249			#address-cells = <1>;
250			#size-cells = <0>;
251			reg = <1>;
252		};
253
254		pcie5: i2c@2 {
255			#address-cells = <1>;
256			#size-cells = <0>;
257			reg = <2>;
258		};
259
260		pcie6: i2c@3 {
261			#address-cells = <1>;
262			#size-cells = <0>;
263			reg = <3>;
264		};
265
266		pcie7: i2c@4 {
267			#address-cells = <1>;
268			#size-cells = <0>;
269			reg = <4>;
270		};
271
272		nvme3: i2c@5 {
273			#address-cells = <1>;
274			#size-cells = <0>;
275			reg = <5>;
276		};
277
278		nvme2: i2c@6 {
279			#address-cells = <1>;
280			#size-cells = <0>;
281			reg = <6>;
282		};
283
284		nvme0: i2c@7 {
285			#address-cells = <1>;
286			#size-cells = <0>;
287			reg = <7>;
288		};
289	};
290
291	i2c-mux2@75 {
292		compatible = "nxp,pca9548";
293		reg = <0x75>;
294		#address-cells = <1>;
295		#size-cells = <0>;
296		i2c-mux-idle-disconnect;
297
298		nvme4: i2c@0 {
299			#address-cells = <1>;
300			#size-cells = <0>;
301			reg = <0>;
302		};
303
304		nvme5: i2c@1 {
305			#address-cells = <1>;
306			#size-cells = <0>;
307			reg = <1>;
308		};
309
310		nvme6: i2c@2 {
311			#address-cells = <1>;
312			#size-cells = <0>;
313			reg = <2>;
314		};
315
316		nvme7: i2c@3 {
317			#address-cells = <1>;
318			#size-cells = <0>;
319			reg = <3>;
320		};
321
322		nvme8: i2c@4 {
323			#address-cells = <1>;
324			#size-cells = <0>;
325			reg = <4>;
326		};
327
328		nvme9: i2c@5 {
329			#address-cells = <1>;
330			#size-cells = <0>;
331			reg = <5>;
332		};
333
334		nvme10: i2c@6 {
335			#address-cells = <1>;
336			#size-cells = <0>;
337			reg = <6>;
338		};
339
340		nvme11: i2c@7 {
341			#address-cells = <1>;
342			#size-cells = <0>;
343			reg = <7>;
344		};
345	};
346};
347
348&i2c2 {
349	status = "okay";
350
351	smpro@4f {
352		compatible = "ampere,smpro";
353		reg = <0x4f>;
354	};
355};
356
357&i2c3 {
358	status = "okay";
359
360	// PSU FRU
361	eeprom@38 {
362		compatible = "atmel,24c02";
363		reg = <0x38>;
364	};
365};
366
367&i2c4 {
368	status = "okay";
369
370	temperature-sensor@29 {
371		compatible = "nuvoton,nct7802";
372		reg = <0x29>;
373
374		#address-cells = <1>;
375		#size-cells = <0>;
376
377		channel@0 { /* LTD */
378			reg = <0>;
379			status = "okay";
380		};
381
382		channel@1 { /* RTD1 */
383			reg = <1>;
384			sensor-type = "temperature";
385			temperature-mode = "thermistor";
386		};
387
388		channel@2 { /* RTD2 */
389			reg = <2>;
390			sensor-type = "temperature";
391			temperature-mode = "thermal-diode";
392		};
393	};
394
395	temperature-sensor@4c {
396		compatible = "nuvoton,w83773g";
397		reg = <0x4c>;
398	};
399};
400
401&i2c5 {
402	status = "okay";
403};
404
405&i2c6 {
406	status = "okay";
407
408	rtc@6f {
409		compatible = "isil,isl1208";
410		reg = <0x6f>;
411	};
412};
413
414&i2c7 {
415	status = "okay";
416
417	// BMC FRU
418	eeprom@57 {
419		compatible = "atmel,24c128";
420		reg = <0x57>;
421
422		nvmem-layout {
423			compatible = "fixed-layout";
424			#address-cells = <1>;
425			#size-cells = <1>;
426
427			eth1_macaddress: macaddress@3f80 {
428				reg = <0x3f80 6>;
429			};
430
431			// The offset for eth0 really is at 0x3f88.
432			// eth0 and eth1 are swapped from what might be
433			// expected.
434			eth0_macaddress: macaddress@3f88 {
435				reg = <0x3f88 6>;
436			};
437		};
438	};
439};
440
441&i2c8 {
442	status = "okay";
443
444	io_expander0: gpio@1c {
445		compatible = "nxp,pca9557";
446		reg = <0x1c>;
447		gpio-controller;
448		#gpio-cells = <2>;
449	};
450};
451
452&i2c9 {
453	status = "okay";
454};
455
456&i2c10 {
457	status = "okay";
458};
459
460&i2c11 {
461	status = "okay";
462};
463
464// Bus for accessing the SCP EEPROM
465&i2c12 {
466	status = "okay";
467};
468
469&i2c13 {
470	status = "okay";
471
472	ssif-bmc@10 {
473		compatible = "ssif-bmc";
474		reg = <0x10>;
475	};
476};
477
478// Connected to host Intel X550 (ALTRAD8UD-1L2T) or
479// Broadcom BCM57414 (ALTRAD8UD2-1L2Q) interface.
480// Unconnected on ALTRAD8UD-1L
481&mac0 {
482	pinctrl-names = "default";
483	pinctrl-0 = <&pinctrl_rmii1_default>;
484	clocks = <&syscon ASPEED_CLK_GATE_MAC1CLK>,
485		 <&syscon ASPEED_CLK_MAC1RCLK>;
486	clock-names = "MACCLK", "RCLK";
487	use-ncsi;
488	nvmem-cells = <&eth0_macaddress>;
489	nvmem-cell-names = "mac-address";
490
491	status = "okay";
492};
493
494// Connected to Realtek RTL8211E
495&mac1 {
496	pinctrl-names = "default";
497	pinctrl-0 = <&pinctrl_rgmii2_default &pinctrl_mdio2_default>;
498
499	nvmem-cells = <&eth1_macaddress>;
500	nvmem-cell-names = "mac-address";
501
502	status = "okay";
503};
504
505&pwm_tacho {
506	pinctrl-names = "default";
507	pinctrl-0 = <&pinctrl_pwm0_default
508			&pinctrl_pwm1_default
509			&pinctrl_pwm2_default
510			&pinctrl_pwm3_default
511			&pinctrl_pwm4_default
512			&pinctrl_pwm5_default
513			&pinctrl_pwm6_default
514			&pinctrl_pwm7_default>;
515
516	status = "okay";
517
518	fan@0 {
519		reg = <0x00>;
520		aspeed,fan-tach-ch = /bits/ 8 <0x00 0x08>;
521	};
522
523	fan@1 {
524		reg = <0x01>;
525		aspeed,fan-tach-ch = /bits/ 8 <0x01 0x09>;
526	};
527
528	fan@2 {
529		reg = <0x02>;
530		aspeed,fan-tach-ch = /bits/ 8 <0x02 0x0a>;
531	};
532
533	fan@3 {
534		reg = <0x03>;
535		aspeed,fan-tach-ch = /bits/ 8 <0x03 0x0b>;
536	};
537
538	fan@4 {
539		reg = <0x04>;
540		aspeed,fan-tach-ch = /bits/ 8 <0x04 0x0c>;
541	};
542
543	fan@5 {
544		reg = <0x05>;
545		aspeed,fan-tach-ch = /bits/ 8 <0x05 0x0d>;
546	};
547
548	fan@6 {
549		reg = <0x06>;
550		aspeed,fan-tach-ch = /bits/ 8 <0x06 0x0e>;
551	};
552
553	fan@7 {
554		reg = <0x07>;
555		aspeed,fan-tach-ch = /bits/ 8 <0x07 0x0f>;
556	};
557};
558
559&spi1 {
560	pinctrl-names = "default";
561	pinctrl-0 = <&pinctrl_spi1_default>;
562
563	status = "okay";
564
565	// Host BIOS/UEFI EEPROM
566	flash@0 {
567		m25p,fast-read;
568		label = "pnor";
569		spi-max-frequency = <100000000>;
570		status = "okay";
571
572		partitions {
573			compatible = "fixed-partitions";
574			#address-cells = <1>;
575			#size-cells = <1>;
576
577			tfa@400000 {
578				reg = <0x400000 0x200000>;
579				label = "pnor-tfa";
580			};
581
582			uefi@600000 {
583				reg = <0x600000 0x1A00000>;
584				label = "pnor-uefi";
585			};
586		};
587	};
588};
589
590&uart1 {
591	pinctrl-names = "default";
592	pinctrl-0 = <&pinctrl_txd1_default
593			 &pinctrl_rxd1_default
594			 &pinctrl_ncts1_default
595			 &pinctrl_nrts1_default>;
596
597	status = "okay";
598};
599
600&uart2 {
601	pinctrl-names = "default";
602	pinctrl-0 = <&pinctrl_txd2_default
603			&pinctrl_rxd2_default>;
604
605	status = "okay";
606};
607
608&uart3 {
609	pinctrl-names = "default";
610	pinctrl-0 = <&pinctrl_txd3_default
611			&pinctrl_rxd3_default>;
612
613	status = "okay";
614};
615
616&uart4 {
617	pinctrl-names = "default";
618	pinctrl-0 = <&pinctrl_txd4_default
619			&pinctrl_rxd4_default>;
620
621	status = "okay";
622};
623
624// The BMC's uart
625&uart5 {
626	status = "okay";
627};
628
629&vhub {
630	status = "okay";
631};
632
633&video {
634	memory-region = <&video_engine_memory>;
635
636	status = "okay";
637};
638