1// SPDX-License-Identifier: GPL-2.0-or-later
2// Copyright 2024 ASUS Corp.
3
4/dts-v1/;
5
6#include "aspeed-g6.dtsi"
7#include <dt-bindings/i2c/i2c.h>
8#include <dt-bindings/gpio/aspeed-gpio.h>
9
10/ {
11	model = "ASUS-X4TF";
12	compatible = "asus,x4tf-bmc", "aspeed,ast2600";
13
14	aliases {
15		serial4 = &uart5;
16	};
17
18	chosen {
19		stdout-path = "serial4:115200n8";
20	};
21
22	memory@80000000 {
23		device_type = "memory";
24		reg = <0x80000000 0x40000000>;
25	};
26
27	reserved-memory {
28		#address-cells = <1>;
29		#size-cells = <1>;
30		ranges;
31
32		video_engine_memory: video {
33			size = <0x04000000>;
34			alignment = <0x01000000>;
35			compatible = "shared-dma-pool";
36			reusable;
37		};
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 0>, <&adc1 1>, <&adc1 2>, <&adc1 3>,
45				<&adc1 4>, <&adc1 5>, <&adc1 6>, <&adc1 7>;
46	};
47
48	leds {
49		compatible = "gpio-leds";
50
51		led-heartbeat {
52			gpios = <&gpio0 ASPEED_GPIO(P, 7) GPIO_ACTIVE_LOW>;
53			linux,default-trigger = "heartbeat";
54		};
55
56		led-uid {
57			gpios = <&gpio0 ASPEED_GPIO(P, 1) (GPIO_ACTIVE_LOW | GPIO_OPEN_DRAIN)>;
58			default-state = "off";
59		};
60
61		led-status_Y {
62			gpios = <&gpio1 ASPEED_GPIO(B, 1) GPIO_ACTIVE_LOW>;
63			default-state = "off";
64		};
65
66		led-sys_boot_status {
67			gpios = <&gpio1 ASPEED_GPIO(B, 0) GPIO_ACTIVE_LOW>;
68			default-state = "off";
69		};
70	};
71};
72
73&adc0 {
74	vref = <2500>;
75	status = "okay";
76	pinctrl-names = "default";
77	pinctrl-0 = <&pinctrl_adc0_default &pinctrl_adc1_default
78		&pinctrl_adc2_default &pinctrl_adc3_default
79		&pinctrl_adc4_default &pinctrl_adc5_default
80		&pinctrl_adc6_default &pinctrl_adc7_default>;
81};
82
83&adc1 {
84	vref = <2500>;
85	status = "okay";
86	pinctrl-names = "default";
87	pinctrl-0 = <&pinctrl_adc8_default &pinctrl_adc9_default
88		&pinctrl_adc10_default &pinctrl_adc11_default
89		&pinctrl_adc12_default &pinctrl_adc13_default
90		&pinctrl_adc14_default &pinctrl_adc15_default>;
91};
92
93&peci0 {
94	status = "okay";
95};
96
97&lpc_snoop {
98	snoop-ports = <0x80>;
99	status = "okay";
100};
101
102&mac2 {
103	status = "okay";
104	phy-mode = "rmii";
105	use-ncsi;
106	pinctrl-names = "default";
107	pinctrl-0 = <&pinctrl_rmii3_default>;
108};
109
110&mac3 {
111	status = "okay";
112	phy-mode = "rmii";
113	use-ncsi;
114	pinctrl-names = "default";
115	pinctrl-0 = <&pinctrl_rmii4_default>;
116};
117
118&fmc {
119	status = "okay";
120
121	flash@0 {
122		status = "okay";
123		m25p,fast-read;
124		label = "bmc";
125		spi-max-frequency = <50000000>;
126#include "openbmc-flash-layout-64.dtsi"
127	};
128};
129
130&spi1 {
131	status = "okay";
132	pinctrl-names = "default";
133	pinctrl-0 = <&pinctrl_spi1_default>;
134
135	flash@0 {
136		status = "okay";
137		label = "bios";
138		spi-max-frequency = <50000000>;
139	};
140};
141
142&i2c0 {
143	status = "okay";
144};
145
146&i2c1 {
147	status = "okay";
148};
149
150&i2c2 {
151	status = "okay";
152};
153
154&i2c3 {
155	status = "okay";
156};
157
158&i2c4 {
159	status = "okay";
160
161	temperature-sensor@48 {
162		compatible = "ti,tmp75";
163		reg = <0x48>;
164	};
165
166	temperature-sensor@49 {
167		compatible = "ti,tmp75";
168		reg = <0x49>;
169	};
170
171	pca9555_4_20: gpio@20 {
172		compatible = "nxp,pca9555";
173		reg = <0x20>;
174		gpio-controller;
175		#gpio-cells = <2>;
176	};
177
178	pca9555_4_22: gpio@22 {
179		compatible = "nxp,pca9555";
180		reg = <0x22>;
181		gpio-controller;
182		#gpio-cells = <2>;
183	};
184
185	pca9555_4_24: gpio@24 {
186		compatible = "nxp,pca9555";
187		reg = <0x24>;
188		gpio-controller;
189		#gpio-cells = <2>;
190		gpio-line-names =
191		/*A0 - A3 0*/	"", "STRAP_BMC_BATTERY_GPIO1", "", "",
192		/*A4 - A7 4*/	"", "", "", "",
193		/*B0 - B7 8*/	"", "", "", "", "", "", "", "";
194	};
195
196	pca9555_4_26: gpio@26 {
197		compatible = "nxp,pca9555";
198		reg = <0x26>;
199		gpio-controller;
200		#gpio-cells = <2>;
201	};
202
203	i2c-mux@70 {
204		compatible = "nxp,pca9546";
205		status = "okay";
206		reg = <0x70>;
207		#address-cells = <1>;
208		#size-cells = <0>;
209
210		channel_1: i2c@0 {
211			#address-cells = <1>;
212			#size-cells = <0>;
213			reg = <0>;
214		};
215
216		channel_2: i2c@1 {
217			#address-cells = <1>;
218			#size-cells = <0>;
219			reg = <1>;
220		};
221
222		channel_3: i2c@2 {
223			#address-cells = <1>;
224			#size-cells = <0>;
225			reg = <2>;
226		};
227
228		channel_4: i2c@3 {
229			#address-cells = <1>;
230			#size-cells = <0>;
231			reg = <3>;
232		};
233	};
234};
235
236&i2c5 {
237	status = "okay";
238
239	pca9555_5_24: gpio@24 {
240		compatible = "nxp,pca9555";
241		reg = <0x24>;
242		gpio-controller;
243		#gpio-cells = <2>;
244	};
245
246	i2c-mux@70  {
247		compatible = "nxp,pca9546";
248		status = "okay";
249		reg = <0x70 >;
250		#address-cells = <1>;
251		#size-cells = <0>;
252
253		channel_5: i2c@0 {
254			#address-cells = <1>;
255			#size-cells = <0>;
256			reg = <0>;
257
258			pca9555_5_5_20: gpio@20 {
259				compatible = "nxp,pca9555";
260				reg = <0x20>;
261				gpio-controller;
262				#gpio-cells = <2>;
263				gpio-line-names =
264					"", "", "", "", "", "", "", "",
265					"", "", "SYS_FAN6", "SYS_FAN5",
266					"SYS_FAN4", "SYS_FAN3",
267					"SYS_FAN2", "SYS_FAN1";
268			};
269
270			pca9555_5_5_21: gpio@21 {
271				compatible = "nxp,pca9555";
272				reg = <0x21>;
273				gpio-controller;
274				#gpio-cells = <2>;
275			};
276
277			power-monitor@44 {
278				compatible = "ti,ina219";
279				reg = <0x44>;
280				shunt-resistor = <2>;
281			};
282		};
283
284		channel_6: i2c@1 {
285			#address-cells = <1>;
286			#size-cells = <0>;
287			reg = <1>;
288		};
289
290		channel_7: i2c@2 {
291			#address-cells = <1>;
292			#size-cells = <0>;
293			reg = <2>;
294		};
295
296		channel_8: i2c@3 {
297			#address-cells = <1>;
298			#size-cells = <0>;
299			reg = <3>;
300		};
301	};
302};
303
304&i2c6 {
305	status = "okay";
306
307	pca9555_6_27: gpio@27 {
308		compatible = "nxp,pca9555";
309		reg = <0x27>;
310		gpio-controller;
311		#gpio-cells = <2>;
312	};
313
314	pca9555_6_20: gpio@20 {
315		compatible = "nxp,pca9555";
316		reg = <0x20>;
317		gpio-controller;
318		#gpio-cells = <2>;
319		gpio-line-names =
320		/*A0 0*/	"", "", "", "", "", "", "", "",
321		/*B0 8*/	"Drive_NVMe1", "Drive_NVMe2", "", "",
322		/*B4 12*/	"", "", "", "";
323	};
324
325	pca9555_6_21: gpio@21 {
326		compatible = "nxp,pca9555";
327		reg = <0x21>;
328		gpio-controller;
329		#gpio-cells = <2>;
330	};
331};
332
333&i2c7 {
334	status = "okay";
335
336	i2c-mux@70 {
337		compatible = "nxp,pca9546";
338		status = "okay";
339		reg = <0x70>;
340		#address-cells = <1>;
341		#size-cells = <0>;
342		idle-state = <1>;
343
344		channel_9: i2c@0 {
345			#address-cells = <1>;
346			#size-cells = <0>;
347			reg = <0>;
348
349			temperature-sensor@48 {
350				compatible = "ti,tmp75";
351				reg = <0x48>;
352			};
353
354			temperature-sensor@49 {
355				compatible = "ti,tmp75";
356				reg = <0x49>;
357			};
358
359			power-monitor@40 {
360				compatible = "ti,ina219";
361				reg = <0x40>;
362				shunt-resistor = <2>;
363			};
364
365			power-monitor@41 {
366				compatible = "ti,ina219";
367				reg = <0x41>;
368				shunt-resistor = <5>;
369			};
370		};
371
372		channel_10: i2c@1 {
373			#address-cells = <1>;
374			#size-cells = <0>;
375			reg = <1>;
376		};
377
378		channel_11: i2c@2 {
379			#address-cells = <1>;
380			#size-cells = <0>;
381			reg = <2>;
382		};
383
384		channel_12: i2c@3 {
385			#address-cells = <1>;
386			#size-cells = <0>;
387			reg = <3>;
388		};
389	};
390
391	i2c-mux@71 {
392		compatible = "nxp,pca9546";
393		status = "okay";
394		reg = <0x71>;
395		#address-cells = <1>;
396		#size-cells = <0>;
397		i2c-mux-idle-disconnect;
398
399		channel_13: i2c@0 {
400			#address-cells = <1>;
401			#size-cells = <0>;
402			reg = <0>;
403		};
404
405		channel_14: i2c@1 {
406			#address-cells = <1>;
407			#size-cells = <0>;
408			reg = <1>;
409		};
410
411		channel_15: i2c@2 {
412			#address-cells = <1>;
413			#size-cells = <0>;
414			reg = <2>;
415		};
416
417		channel_16: i2c@3 {
418			#address-cells = <1>;
419			#size-cells = <0>;
420			reg = <3>;
421		};
422	};
423};
424
425&i2c8 {
426	status = "okay";
427
428	i2c-mux@70 {
429		compatible = "nxp,pca9546";
430		status = "okay";
431		reg = <0x70>;
432		#address-cells = <1>;
433		#size-cells = <0>;
434		i2c-mux-idle-disconnect;
435
436		channel_17: i2c@0 {
437			#address-cells = <1>;
438			#size-cells = <0>;
439			reg = <0>;
440		};
441
442		channel_18: i2c@1 {
443			#address-cells = <1>;
444			#size-cells = <0>;
445			reg = <1>;
446
447			temperature-sensor@48 {
448				compatible = "ti,tmp75";
449				reg = <0x48>;
450			};
451
452			power-monitor@41 {
453				compatible = "ti,ina219";
454				reg = <0x41>;
455				shunt-resistor = <5>;
456			};
457		};
458
459		channel_19: i2c@2 {
460			#address-cells = <1>;
461			#size-cells = <0>;
462			reg = <2>;
463		};
464
465		channel_20: i2c@3 {
466			#address-cells = <1>;
467			#size-cells = <0>;
468			reg = <3>;
469		};
470	};
471};
472
473&i2c9 {
474	status = "okay";
475};
476
477&i2c10 {
478	status = "okay";
479};
480
481&i2c11 {
482	status = "okay";
483};
484
485&i2c14 {
486	status = "okay";
487	multi-master;
488
489	eeprom@50 {
490		compatible = "atmel,24c08";
491		reg = <0x50>;
492	};
493
494	eeprom@51 {
495		compatible = "atmel,24c08";
496		reg = <0x51>;
497	};
498};
499
500&sgpiom0 {
501	status = "okay";
502	ngpios = <128>;
503};
504
505&video {
506	status = "okay";
507	memory-region = <&video_engine_memory>;
508};
509
510&sdc {
511	status = "okay";
512};
513
514&lpc_snoop {
515	status = "okay";
516	snoop-ports = <0x80>;
517};
518
519&kcs1 {
520	aspeed,lpc-io-reg = <0xca0>;
521	status = "okay";
522};
523
524&kcs2 {
525	aspeed,lpc-io-reg = <0xca8>;
526	status = "okay";
527};
528
529&kcs3 {
530	aspeed,lpc-io-reg = <0xca2>;
531	status = "okay";
532};
533
534&uart3 {
535	status = "okay";
536};
537
538&uart5 {
539	status = "okay";
540};
541
542&uart_routing {
543	status = "okay";
544};
545
546&vhub {
547	status = "okay";
548};
549
550&gpio0 {
551	gpio-line-names =
552	/*A0 0*/	"", "", "", "", "", "", "", "",
553	/*B0 8*/	"", "", "", "", "", "", "PS_PWROK", "",
554	/*C0 16*/	"", "", "", "", "", "", "", "",
555	/*D0 24*/	"", "", "", "", "", "", "", "",
556	/*E0 32*/	"", "", "", "", "", "", "", "",
557	/*F0 40*/	"", "", "", "", "", "", "", "",
558	/*G0 48*/	"", "", "", "", "", "", "", "",
559	/*H0 56*/	"", "", "", "", "", "", "", "",
560	/*I0 64*/	"", "", "", "", "", "", "", "",
561	/*J0 72*/	"", "", "", "", "", "", "", "",
562	/*K0 80*/	"", "", "", "", "", "", "", "",
563	/*L0 88*/	"", "", "", "", "", "", "", "",
564	/*M0 96*/	"", "", "", "", "", "", "", "",
565	/*N0 104*/	"", "", "", "",
566	/*N4 108*/	"POST_COMPLETE", "ESR1_GPIO_AST_SPISEL", "", "",
567	/*O0 112*/	"", "", "", "", "", "", "", "",
568	/*P0 120*/	"ID_BUTTON", "ID_OUT", "POWER_BUTTON", "POWER_OUT",
569	/*P4 124*/	"RESET_BUTTON", "RESET_OUT", "", "HEARTBEAT",
570	/*Q0 128*/	"", "", "", "", "", "", "", "",
571	/*R0 136*/	"", "", "", "", "", "", "", "",
572	/*S0 144*/	"", "", "", "", "", "", "", "",
573	/*T0 152*/	"", "", "", "", "", "", "", "",
574	/*U0 160*/	"", "", "", "", "", "", "", "",
575	/*V0 168*/	"", "", "", "", "", "", "", "",
576	/*W0 176*/	"", "", "", "", "", "", "", "",
577	/*X0 184*/	"", "", "", "", "", "", "", "",
578	/*Y0 192*/	"", "", "", "", "", "", "", "",
579	/*Z0 200*/	"", "", "", "", "", "", "", "";
580};
581