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