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