1// SPDX-License-Identifier: GPL-2.0+
2/dts-v1/;
3#include "aspeed-g5.dtsi"
4#include <dt-bindings/gpio/aspeed-gpio.h>
5#include <dt-bindings/leds/leds-pca955x.h>
6
7/ {
8	model = "Witherspoon BMC";
9	compatible = "ibm,witherspoon-bmc", "aspeed,ast2500";
10
11	chosen {
12		stdout-path = &uart5;
13		bootargs = "console=ttyS4,115200 earlycon";
14	};
15
16	memory@80000000 {
17		reg = <0x80000000 0x20000000>;
18	};
19
20	reserved-memory {
21		#address-cells = <1>;
22		#size-cells = <1>;
23		ranges;
24
25		flash_memory: region@98000000 {
26			no-map;
27			reg = <0x98000000 0x04000000>; /* 64M */
28		};
29
30		vga_memory: region@9f000000 {
31			no-map;
32			compatible = "shared-dma-pool";
33			reg = <0x9f000000 0x01000000>; /* 16M */
34		};
35
36		gfx_memory: framebuffer {
37			size = <0x01000000>;
38			alignment = <0x01000000>;
39			compatible = "shared-dma-pool";
40			reusable;
41		};
42
43		video_engine_memory: jpegbuffer {
44			size = <0x02000000>;	/* 32MM */
45			alignment = <0x01000000>;
46			compatible = "shared-dma-pool";
47			reusable;
48		};
49	};
50
51	gpio-keys {
52		compatible = "gpio-keys";
53
54		event-air-water {
55			label = "air-water";
56			gpios = <&gpio ASPEED_GPIO(B, 5) GPIO_ACTIVE_LOW>;
57			linux,code = <ASPEED_GPIO(B, 5)>;
58		};
59
60		event-checkstop {
61			label = "checkstop";
62			gpios = <&gpio ASPEED_GPIO(J, 2) GPIO_ACTIVE_LOW>;
63			linux,code = <ASPEED_GPIO(J, 2)>;
64		};
65
66		event-ps0-presence {
67			label = "ps0-presence";
68			gpios = <&gpio ASPEED_GPIO(P, 7) GPIO_ACTIVE_LOW>;
69			linux,code = <ASPEED_GPIO(P, 7)>;
70		};
71
72		event-ps1-presence {
73			label = "ps1-presence";
74			gpios = <&gpio ASPEED_GPIO(N, 0) GPIO_ACTIVE_LOW>;
75			linux,code = <ASPEED_GPIO(N, 0)>;
76		};
77	};
78
79	iio-hwmon-battery {
80		compatible = "iio-hwmon";
81		io-channels = <&adc 12>;
82	};
83
84	gpio-keys-polled {
85		compatible = "gpio-keys-polled";
86		poll-interval = <1000>;
87
88		event-fan0-presence {
89			label = "fan0-presence";
90			gpios = <&pca0 4 GPIO_ACTIVE_LOW>;
91			linux,code = <4>;
92		};
93
94		event-fan1-presence {
95			label = "fan1-presence";
96			gpios = <&pca0 5 GPIO_ACTIVE_LOW>;
97			linux,code = <5>;
98		};
99
100		event-fan2-presence {
101			label = "fan2-presence";
102			gpios = <&pca0 6 GPIO_ACTIVE_LOW>;
103			linux,code = <6>;
104		};
105
106		event-fan3-presence {
107			label = "fan3-presence";
108			gpios = <&pca0 7 GPIO_ACTIVE_LOW>;
109			linux,code = <7>;
110		};
111	};
112
113	leds {
114		compatible = "gpio-leds";
115
116		fan0 {
117			retain-state-shutdown;
118			default-state = "keep";
119			gpios = <&pca0 0 GPIO_ACTIVE_LOW>;
120		};
121
122		fan1 {
123			retain-state-shutdown;
124			default-state = "keep";
125			gpios = <&pca0 1 GPIO_ACTIVE_LOW>;
126		};
127
128		fan2 {
129			retain-state-shutdown;
130			default-state = "keep";
131			gpios = <&pca0 2 GPIO_ACTIVE_LOW>;
132		};
133
134		fan3 {
135			retain-state-shutdown;
136			default-state = "keep";
137			gpios = <&pca0 3 GPIO_ACTIVE_LOW>;
138		};
139
140		front-fault {
141			retain-state-shutdown;
142			default-state = "keep";
143			gpios = <&pca0 13 GPIO_ACTIVE_LOW>;
144		};
145
146		front-power {
147			retain-state-shutdown;
148			default-state = "keep";
149			gpios = <&pca0 14 GPIO_ACTIVE_LOW>;
150		};
151
152		front-id {
153			retain-state-shutdown;
154			default-state = "keep";
155			gpios = <&pca0 15 GPIO_ACTIVE_LOW>;
156		};
157
158		rear-fault {
159			gpios = <&gpio ASPEED_GPIO(N, 2) GPIO_ACTIVE_LOW>;
160		};
161
162		rear-id {
163			gpios = <&gpio ASPEED_GPIO(N, 4) GPIO_ACTIVE_LOW>;
164		};
165
166		rear-power {
167			gpios = <&gpio ASPEED_GPIO(N, 3) GPIO_ACTIVE_LOW>;
168		};
169
170		power-button {
171			gpios = <&gpio ASPEED_GPIO(R, 5) GPIO_ACTIVE_LOW>;
172		};
173	};
174
175	fsi: gpio-fsi {
176		compatible = "fsi-master-gpio", "fsi-master";
177		#address-cells = <2>;
178		#size-cells = <0>;
179		no-gpio-delays;
180
181		clock-gpios = <&gpio ASPEED_GPIO(AA, 0) GPIO_ACTIVE_HIGH>;
182		data-gpios = <&gpio ASPEED_GPIO(E, 0) GPIO_ACTIVE_HIGH>;
183		mux-gpios = <&gpio ASPEED_GPIO(A, 6) GPIO_ACTIVE_HIGH>;
184		enable-gpios = <&gpio ASPEED_GPIO(D, 0) GPIO_ACTIVE_HIGH>;
185		trans-gpios = <&gpio ASPEED_GPIO(R, 2) GPIO_ACTIVE_HIGH>;
186	};
187
188	iio-hwmon-dps310 {
189		compatible = "iio-hwmon";
190		io-channels = <&dps 0>;
191	};
192
193	iio-hwmon-bmp280 {
194		compatible = "iio-hwmon";
195		io-channels = <&bmp 1>;
196	};
197
198};
199
200&gpio {
201	gpio-line-names =
202	/*A0-A7*/	"","cfam-reset","","","","","fsi-mux","",
203	/*B0-B7*/	"","","","","","air-water","","",
204	/*C0-C7*/	"","","","","","","","",
205	/*D0-D7*/	"fsi-enable","","","","","","","",
206	/*E0-E7*/	"fsi-data","","","","","","","",
207	/*F0-F7*/	"","","","","","","","",
208	/*G0-G7*/	"","","","","","","","",
209	/*H0-H7*/	"","","","","","","","",
210	/*I0-I7*/	"","","","","","","","",
211	/*J0-J7*/	"","","checkstop","","","","","",
212	/*K0-K7*/	"","","","","","","","",
213	/*L0-L7*/	"","","","","","","","",
214	/*M0-M7*/	"","","","","","","","",
215	/*N0-N7*/	"presence-ps1","","led-rear-fault","led-rear-power",
216		        "led-rear-id","","","",
217	/*O0-O7*/	"","","","","","","","",
218	/*P0-P7*/	"","","","","","","","presence-ps0",
219	/*Q0-Q7*/	"","","","","","","","",
220	/*R0-R7*/	"","","fsi-trans","","","power-button","","",
221	/*S0-S7*/	"","","","","","","","",
222	/*T0-T7*/	"","","","","","","","",
223	/*U0-U7*/	"","","","","","","","",
224	/*V0-V7*/	"","","","","","","","",
225	/*W0-W7*/	"","","","","","","","",
226	/*X0-X7*/	"","","","","","","","",
227	/*Y0-Y7*/	"","","","","","","","",
228	/*Z0-Z7*/	"","","","","","","","",
229	/*AA0-AA7*/	"fsi-clock","","","","","","","",
230	/*AB0-AB7*/	"","","","","","","","",
231	/*AC0-AC7*/	"","","","","","","","";
232};
233
234&fmc {
235	status = "okay";
236
237	flash@0 {
238		status = "okay";
239		label = "bmc";
240		m25p,fast-read;
241		spi-max-frequency = <50000000>;
242
243		partitions {
244			#address-cells = < 1 >;
245			#size-cells = < 1 >;
246			compatible = "fixed-partitions";
247			u-boot@0 {
248				reg = < 0 0x60000 >;
249				label = "u-boot";
250			};
251			u-boot-env@60000 {
252				reg = < 0x60000 0x20000 >;
253				label = "u-boot-env";
254			};
255			obmc-ubi@80000 {
256				reg = < 0x80000 0x1F80000 >;
257				label = "obmc-ubi";
258			};
259		};
260	};
261
262	flash@1 {
263		status = "okay";
264		label = "alt-bmc";
265		m25p,fast-read;
266		spi-max-frequency = <50000000>;
267
268		partitions {
269			#address-cells = < 1 >;
270			#size-cells = < 1 >;
271			compatible = "fixed-partitions";
272			u-boot@0 {
273				reg = < 0 0x60000 >;
274				label = "alt-u-boot";
275			};
276			u-boot-env@60000 {
277				reg = < 0x60000 0x20000 >;
278				label = "alt-u-boot-env";
279			};
280			obmc-ubi@80000 {
281				reg = < 0x80000 0x1F80000 >;
282				label = "alt-obmc-ubi";
283			};
284		};
285	};
286};
287
288&spi1 {
289	status = "okay";
290	pinctrl-names = "default";
291	pinctrl-0 = <&pinctrl_spi1_default>;
292
293	flash@0 {
294		status = "okay";
295		label = "pnor";
296		m25p,fast-read;
297		spi-max-frequency = <100000000>;
298	};
299};
300
301&uart1 {
302	/* Rear RS-232 connector */
303	status = "okay";
304	pinctrl-names = "default";
305	pinctrl-0 = <&pinctrl_txd1_default
306			&pinctrl_rxd1_default
307			&pinctrl_nrts1_default
308			&pinctrl_ndtr1_default
309			&pinctrl_ndsr1_default
310			&pinctrl_ncts1_default
311			&pinctrl_ndcd1_default
312			&pinctrl_nri1_default>;
313};
314
315&uart2 {
316	/* APSS */
317	status = "okay";
318	pinctrl-names = "default";
319	pinctrl-0 = <&pinctrl_txd2_default &pinctrl_rxd2_default>;
320};
321
322&uart5 {
323	status = "okay";
324};
325
326&lpc_ctrl {
327	status = "okay";
328	memory-region = <&flash_memory>;
329	flash = <&spi1>;
330};
331
332&mac0 {
333	status = "okay";
334	pinctrl-names = "default";
335	pinctrl-0 = <&pinctrl_rmii1_default>;
336	clocks = <&syscon ASPEED_CLK_GATE_MAC1CLK>,
337		 <&syscon ASPEED_CLK_MAC1RCLK>;
338	clock-names = "MACCLK", "RCLK";
339	use-ncsi;
340};
341
342&i2c2 {
343	status = "okay";
344
345	/* MUX ->
346	 *    Samtec 1
347	 *    Samtec 2
348	 */
349};
350
351&i2c3 {
352	status = "okay";
353
354	bmp: bmp280@77 {
355		compatible = "bosch,bmp280";
356		reg = <0x77>;
357		#io-channel-cells = <1>;
358	};
359
360	max31785@52 {
361		compatible = "maxim,max31785a";
362		reg = <0x52>;
363		#address-cells = <1>;
364		#size-cells = <0>;
365	};
366
367	dps: dps310@76 {
368		compatible = "infineon,dps310";
369		reg = <0x76>;
370		#io-channel-cells = <0>;
371	};
372
373	pca0: pca9552@60 {
374		compatible = "nxp,pca9552";
375		reg = <0x60>;
376		#address-cells = <1>;
377		#size-cells = <0>;
378
379		gpio-controller;
380		#gpio-cells = <2>;
381
382		gpio@0 {
383			reg = <0>;
384			type = <PCA955X_TYPE_GPIO>;
385		};
386
387		gpio@1 {
388			reg = <1>;
389			type = <PCA955X_TYPE_GPIO>;
390		};
391
392		gpio@2 {
393			reg = <2>;
394			type = <PCA955X_TYPE_GPIO>;
395		};
396
397		gpio@3 {
398			reg = <3>;
399			type = <PCA955X_TYPE_GPIO>;
400		};
401
402		gpio@4 {
403			reg = <4>;
404			type = <PCA955X_TYPE_GPIO>;
405		};
406
407		gpio@5 {
408			reg = <5>;
409			type = <PCA955X_TYPE_GPIO>;
410		};
411
412		gpio@6 {
413			reg = <6>;
414			type = <PCA955X_TYPE_GPIO>;
415		};
416
417		gpio@7 {
418			reg = <7>;
419			type = <PCA955X_TYPE_GPIO>;
420		};
421
422		gpio@8 {
423			reg = <8>;
424			type = <PCA955X_TYPE_GPIO>;
425		};
426
427		gpio@9 {
428			reg = <9>;
429			type = <PCA955X_TYPE_GPIO>;
430		};
431
432		gpio@10 {
433			reg = <10>;
434			type = <PCA955X_TYPE_GPIO>;
435		};
436
437		gpio@11 {
438			reg = <11>;
439			type = <PCA955X_TYPE_GPIO>;
440		};
441
442		gpio@12 {
443			reg = <12>;
444			type = <PCA955X_TYPE_GPIO>;
445		};
446
447		gpio@13 {
448			reg = <13>;
449			type = <PCA955X_TYPE_GPIO>;
450		};
451
452		gpio@14 {
453			reg = <14>;
454			type = <PCA955X_TYPE_GPIO>;
455		};
456
457		gpio@15 {
458			reg = <15>;
459			type = <PCA955X_TYPE_GPIO>;
460		};
461	};
462
463	power-supply@68 {
464		compatible = "ibm,cffps1";
465		reg = <0x68>;
466	};
467
468	power-supply@69 {
469		compatible = "ibm,cffps1";
470		reg = <0x69>;
471	};
472};
473
474&i2c4 {
475	status = "okay";
476
477	tmp423a@4c {
478		compatible = "ti,tmp423";
479		reg = <0x4c>;
480	};
481
482	ir35221@70 {
483		compatible = "infineon,ir35221";
484		reg = <0x70>;
485	};
486
487	ir35221@71 {
488		compatible = "infineon,ir35221";
489		reg = <0x71>;
490	};
491};
492
493
494&i2c5 {
495	status = "okay";
496
497	tmp423a@4c {
498		compatible = "ti,tmp423";
499		reg = <0x4c>;
500	};
501
502	ir35221@70 {
503		compatible = "infineon,ir35221";
504		reg = <0x70>;
505	};
506
507	ir35221@71 {
508		compatible = "infineon,ir35221";
509		reg = <0x71>;
510	};
511};
512
513&i2c9 {
514	status = "okay";
515
516	tmp275@4a {
517		compatible = "ti,tmp275";
518		reg = <0x4a>;
519	};
520};
521
522&i2c10 {
523	/* MUX
524	 *   -> PCIe Slot 3
525	 *   -> PCIe Slot 4
526	 */
527	status = "okay";
528};
529
530&i2c11 {
531	status = "okay";
532
533	pca9552: pca9552@60 {
534		compatible = "nxp,pca9552";
535		reg = <0x60>;
536		#address-cells = <1>;
537		#size-cells = <0>;
538		gpio-controller;
539		#gpio-cells = <2>;
540
541		gpio-line-names = "PS_SMBUS_RESET_N", "APSS_RESET_N",
542			"GPU0_TH_OVERT_N_BUFF",	"GPU1_TH_OVERT_N_BUFF",
543			"GPU2_TH_OVERT_N_BUFF", "GPU3_TH_OVERT_N_BUFF",
544			"GPU4_TH_OVERT_N_BUFF",	"GPU5_TH_OVERT_N_BUFF",
545			"GPU0_PWR_GOOD_BUFF", "GPU1_PWR_GOOD_BUFF",
546			"GPU2_PWR_GOOD_BUFF", "GPU3_PWR_GOOD_BUFF",
547			"GPU4_PWR_GOOD_BUFF", "GPU5_PWR_GOOD_BUFF",
548			"12V_BREAKER_FLT_N", "THROTTLE_UNLATCHED_N";
549
550		gpio@0 {
551			reg = <0>;
552			type = <PCA955X_TYPE_GPIO>;
553		};
554
555		gpio@1 {
556			reg = <1>;
557			type = <PCA955X_TYPE_GPIO>;
558		};
559
560		gpio@2 {
561			reg = <2>;
562			type = <PCA955X_TYPE_GPIO>;
563		};
564
565		gpio@3 {
566			reg = <3>;
567			type = <PCA955X_TYPE_GPIO>;
568		};
569
570		gpio@4 {
571			reg = <4>;
572			type = <PCA955X_TYPE_GPIO>;
573		};
574
575		gpio@5 {
576			reg = <5>;
577			type = <PCA955X_TYPE_GPIO>;
578		};
579
580		gpio@6 {
581			reg = <6>;
582			type = <PCA955X_TYPE_GPIO>;
583		};
584
585		gpio@7 {
586			reg = <7>;
587			type = <PCA955X_TYPE_GPIO>;
588		};
589
590		gpio@8 {
591			reg = <8>;
592			type = <PCA955X_TYPE_GPIO>;
593		};
594
595		gpio@9 {
596			reg = <9>;
597			type = <PCA955X_TYPE_GPIO>;
598		};
599
600		gpio@10 {
601			reg = <10>;
602			type = <PCA955X_TYPE_GPIO>;
603		};
604
605		gpio@11 {
606			reg = <11>;
607			type = <PCA955X_TYPE_GPIO>;
608		};
609
610		gpio@12 {
611			reg = <12>;
612			type = <PCA955X_TYPE_GPIO>;
613		};
614
615		gpio@13 {
616			reg = <13>;
617			type = <PCA955X_TYPE_GPIO>;
618		};
619
620		gpio@14 {
621			reg = <14>;
622			type = <PCA955X_TYPE_GPIO>;
623		};
624
625		gpio@15 {
626			reg = <15>;
627			type = <PCA955X_TYPE_GPIO>;
628		};
629	};
630
631	rtc@32 {
632		compatible = "epson,rx8900";
633		reg = <0x32>;
634	};
635
636	eeprom@51 {
637		compatible = "atmel,24c64";
638		reg = <0x51>;
639	};
640
641	ucd90160@64 {
642		compatible = "ti,ucd90160";
643		reg = <0x64>;
644	};
645};
646
647&i2c12 {
648	status = "okay";
649};
650
651&i2c13 {
652	status = "okay";
653};
654
655&vuart {
656	status = "okay";
657};
658
659&gfx {
660	status = "okay";
661	memory-region = <&gfx_memory>;
662};
663
664&pinctrl {
665	aspeed,external-nodes = <&gfx &lhc>;
666};
667
668&wdt1 {
669	aspeed,reset-type = "none";
670	aspeed,external-signal;
671	aspeed,ext-push-pull;
672	aspeed,ext-active-high;
673
674	pinctrl-names = "default";
675	pinctrl-0 = <&pinctrl_wdtrst1_default>;
676};
677
678&wdt2 {
679	aspeed,alt-boot;
680};
681
682&ibt {
683	status = "okay";
684};
685
686&adc {
687	status = "okay";
688};
689
690&vhub {
691	status = "okay";
692};
693
694&video {
695	status = "okay";
696	memory-region = <&video_engine_memory>;
697};
698
699&xdma {
700	status = "okay";
701	memory-region = <&vga_memory>;
702};
703
704#include "ibm-power9-dual.dtsi"
705