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 = "FP5280G2 BMC";
9	compatible = "inspur,fp5280g2-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		vga_memory: framebuffer@9f000000 {
26			no-map;
27			reg = <0x9f000000 0x01000000>; /* 16M */
28		};
29
30		flash_memory: region@98000000 {
31			no-map;
32			reg = <0x98000000 0x04000000>; /* 64M */
33		};
34
35		coldfire_memory: codefire_memory@9ef00000 {
36			reg = <0x9ef00000 0x00100000>;
37			no-map;
38		};
39
40		gfx_memory: framebuffer {
41			size = <0x01000000>;
42			alignment = <0x01000000>;
43			compatible = "shared-dma-pool";
44			reusable;
45		};
46
47		video_engine_memory: jpegbuffer {
48			size = <0x02000000>;	/* 32M */
49			alignment = <0x01000000>;
50			compatible = "shared-dma-pool";
51			reusable;
52		};
53	};
54
55	fsi: gpio-fsi {
56		compatible = "aspeed,ast2500-cf-fsi-master", "fsi-master";
57		#address-cells = <2>;
58		#size-cells = <0>;
59		no-gpio-delays;
60
61		memory-region = <&coldfire_memory>;
62		aspeed,sram = <&sram>;
63		aspeed,cvic = <&cvic>;
64
65		clock-gpios = <&gpio ASPEED_GPIO(AA, 0) GPIO_ACTIVE_HIGH>;
66		data-gpios = <&gpio ASPEED_GPIO(AA, 2) GPIO_ACTIVE_HIGH>;
67		mux-gpios = <&gpio ASPEED_GPIO(I, 2) GPIO_ACTIVE_HIGH>;
68		enable-gpios = <&gpio ASPEED_GPIO(I, 3) GPIO_ACTIVE_HIGH>;
69		trans-gpios = <&gpio ASPEED_GPIO(R, 2) GPIO_ACTIVE_HIGH>;
70	};
71
72	gpio-keys {
73		compatible = "gpio-keys";
74
75		checkstop {
76			label = "checkstop";
77			gpios = <&gpio ASPEED_GPIO(B, 3) GPIO_ACTIVE_LOW>;
78			linux,code = <ASPEED_GPIO(B, 3)>;
79		};
80
81		ps0-presence {
82			label = "ps0-presence";
83			gpios = <&gpio ASPEED_GPIO(F, 0) GPIO_ACTIVE_LOW>;
84			linux,code = <ASPEED_GPIO(F, 0)>;
85		};
86
87		ps1-presence {
88			label = "ps1-presence";
89			gpios = <&gpio ASPEED_GPIO(F, 1) GPIO_ACTIVE_LOW>;
90			linux,code = <ASPEED_GPIO(F, 1)>;
91		};
92
93	};
94
95	gpio-keys-polled {
96		compatible = "gpio-keys-polled";
97		#address-cells = <1>;
98		#size-cells = <0>;
99		poll-interval = <1000>;
100
101		fan0-presence {
102			label = "fan0-presence";
103			gpios = <&pca1 0 GPIO_ACTIVE_LOW>;
104			linux,code = <1>;
105		};
106
107		fan1-presence {
108			label = "fan1-presence";
109			gpios = <&pca1 1 GPIO_ACTIVE_LOW>;
110			linux,code = <2>;
111		};
112
113		fan2-presence {
114			label = "fan2-presence";
115			gpios = <&pca1 2 GPIO_ACTIVE_LOW>;
116			linux,code = <3>;
117		};
118
119		fan3-presence {
120			label = "fan3-presence";
121			gpios = <&pca1 3 GPIO_ACTIVE_LOW>;
122			linux,code = <4>;
123		};
124
125		fan4-presence {
126			label = "fan4-presence";
127			gpios = <&pca1 4 GPIO_ACTIVE_LOW>;
128			linux,code = <5>;
129		};
130
131		fan5-presence {
132			label = "fan5-presence";
133			gpios = <&pca1 5 GPIO_ACTIVE_LOW>;
134			linux,code = <6>;
135		};
136
137		fan6-presence {
138			label = "fan6-presence";
139			gpios = <&pca1 6 GPIO_ACTIVE_LOW>;
140			linux,code = <7>;
141		};
142
143		fan7-presence {
144			label = "fan7-presence";
145			gpios = <&pca1 7 GPIO_ACTIVE_LOW>;
146			linux,code = <8>;
147		};
148	};
149
150	leds {
151	    compatible = "gpio-leds";
152
153	    power {
154		    label = "power";
155		    /* TODO: dummy gpio */
156		    gpios = <&gpio ASPEED_GPIO(R, 1) GPIO_ACTIVE_LOW>;
157	    };
158
159	};
160
161	iio-hwmon-battery {
162		compatible = "iio-hwmon";
163		io-channels = <&adc 15>;
164	};
165
166	iio-hwmon {
167		compatible = "iio-hwmon";
168		io-channels = <&adc 0>, <&adc 1>, <&adc 2>, <&adc 3>, <&adc 4>,
169			<&adc 5>, <&adc 6>, <&adc 7>, <&adc 8>, <&adc 9>,
170			<&adc 10>, <&adc 11>, <&adc 12>, <&adc 13>, <&adc 14>;
171	};
172
173};
174
175&fmc {
176	status = "okay";
177
178	flash@0 {
179		status = "okay";
180		label = "bmc";
181		m25p,fast-read;
182		spi-max-frequency = <50000000>;
183#include "openbmc-flash-layout.dtsi"
184	};
185};
186
187&spi1 {
188	status = "okay";
189	pinctrl-names = "default";
190	pinctrl-0 = <&pinctrl_spi1_default>;
191
192	flash@0 {
193		status = "okay";
194		label = "pnor";
195		m25p,fast-read;
196		spi-max-frequency = <100000000>;
197	};
198};
199
200&uart1 {
201	/* Rear RS-232 connector */
202	status = "okay";
203	pinctrl-names = "default";
204	pinctrl-0 = <&pinctrl_txd1_default
205			&pinctrl_rxd1_default
206			&pinctrl_nrts1_default
207			&pinctrl_ndtr1_default
208			&pinctrl_ndsr1_default
209			&pinctrl_ncts1_default
210			&pinctrl_ndcd1_default
211			&pinctrl_nri1_default>;
212};
213
214&uart2 {
215	/* Test Point */
216	status = "okay";
217	pinctrl-names = "default";
218	pinctrl-0 = <&pinctrl_txd2_default &pinctrl_rxd2_default>;
219};
220
221&uart3 {
222	/* APSS */
223	status = "okay";
224	pinctrl-names = "default";
225	pinctrl-0 = <&pinctrl_txd3_default &pinctrl_rxd3_default>;
226};
227
228&uart5 {
229	status = "okay";
230};
231
232&lpc_ctrl {
233	status = "okay";
234	memory-region = <&flash_memory>;
235	flash = <&spi1>;
236};
237
238&mac0 {
239	status = "okay";
240	pinctrl-names = "default";
241	pinctrl-0 = <&pinctrl_rmii1_default>;
242	use-ncsi;
243};
244
245&mac1 {
246	status = "okay";
247	pinctrl-names = "default";
248	pinctrl-0 = <&pinctrl_rgmii2_default &pinctrl_mdio2_default>;
249};
250
251&i2c0 {
252	/* LCD */
253	status = "okay";
254};
255
256&i2c1 {
257	status = "okay";
258
259	eeprom@50 {
260		compatible = "atmel,24c256";
261		reg = <0x50>;
262		label = "fru";
263	};
264
265};
266
267&i2c2 {
268	status = "okay";
269
270	tmp112@48 {
271		compatible = "ti,tmp112";
272		reg = <0x48>;
273		label = "inlet";
274	};
275
276	tmp112@49 {
277		compatible = "ti,tmp112";
278		reg = <0x49>;
279		label = "outlet";
280	};
281
282	i2c-switch@70 {
283		compatible = "nxp,pca9546";
284		reg = <0x70>;
285		#address-cells = <1>;
286		#size-cells = <0>;
287
288		i2c@0 {
289			#address-cells = <1>;
290			#size-cells = <0>;
291			reg = <0>;
292
293			tmp112@4a {
294				compatible = "ti,tmp112";
295				reg = <0x4a>;
296				label = "psu_inlet";
297			};
298
299		};
300
301		i2c@1 {
302			#address-cells = <1>;
303			#size-cells = <0>;
304			reg = <1>;
305
306			tmp112@4a {
307				compatible = "ti,tmp112";
308				reg = <0x4a>;
309				label = "ocp_zone";
310			};
311		};
312
313		i2c@2 {
314			#address-cells = <1>;
315			#size-cells = <0>;
316			reg = <2>;
317
318			tmp112@4a {
319				compatible = "ti,tmp112";
320				reg = <0x4a>;
321				label = "bmc_zone";
322			};
323		};
324
325		i2c@3 {
326			#address-cells = <1>;
327			#size-cells = <0>;
328			reg = <3>;
329
330			tmp112@7c {
331				compatible = "microchip,emc1413";
332				reg = <0x7c>;
333			};
334		};
335
336	};
337};
338
339&i2c3 {
340	/* Riser Card */
341	status = "okay";
342};
343
344&i2c4 {
345	status = "okay";
346
347	rtc@68 {
348		compatible = "dallas,ds3232";
349		reg = <0x68>;
350	};
351};
352
353&i2c5 {
354	/* vr  */
355	status = "okay";
356};
357
358&i2c6 {
359	/* bp card */
360	status = "okay";
361};
362
363&i2c7 {
364	status = "okay";
365
366	i2c-switch@70 {
367		compatible = "nxp,pca9546";
368		reg = <0x70>;
369		#address-cells = <1>;
370		#size-cells = <0>;
371
372		i2c@0 {
373			#address-cells = <1>;
374			#size-cells = <0>;
375			reg = <0>;
376
377			adm1278@10 {
378				compatible = "adi,adm1278";
379				reg = <0x10>;
380			};
381
382			adm1278@13 {
383				compatible = "adi,adm1278";
384				reg = <0x13>;
385			};
386
387			adm1278@50 {
388				compatible = "adi,adm1278";
389				reg = <0x50>;
390			};
391
392			adm1278@53 {
393				compatible = "adi,adm1278";
394				reg = <0x53>;
395			};
396
397		};
398
399		/*pcie riser*/
400
401	};
402};
403
404&i2c8 {
405	status = "okay";
406
407	pca0: pca9555@20 {
408		compatible = "nxp,pca9555";
409		reg = <0x20>;
410		#address-cells = <1>;
411		#size-cells = <0>;
412
413		gpio-controller;
414		#gpio-cells = <2>;
415
416		gpio@0 {
417			reg = <0>;
418			type = <PCA955X_TYPE_GPIO>;
419		};
420
421		gpio@1 {
422			reg = <1>;
423			type = <PCA955X_TYPE_GPIO>;
424		};
425
426		gpio@2 {
427			reg = <2>;
428			type = <PCA955X_TYPE_GPIO>;
429		};
430
431		gpio@3 {
432			reg = <3>;
433			type = <PCA955X_TYPE_GPIO>;
434		};
435
436		gpio@4 {
437			reg = <4>;
438			type = <PCA955X_TYPE_GPIO>;
439		};
440
441		gpio@5 {
442			reg = <5>;
443			type = <PCA955X_TYPE_GPIO>;
444		};
445
446		gpio@6 {
447			reg = <6>;
448			type = <PCA955X_TYPE_GPIO>;
449		};
450
451		gpio@7 {
452			reg = <7>;
453			type = <PCA955X_TYPE_GPIO>;
454		};
455
456	};
457
458	pca1: pca9555@21 {
459		compatible = "nxp,pca9555";
460		reg = <0x21>;
461		#address-cells = <1>;
462		#size-cells = <0>;
463
464		gpio-controller;
465		#gpio-cells = <2>;
466
467		gpio@0 {
468			reg = <0>;
469			type = <PCA955X_TYPE_GPIO>;
470		};
471
472		gpio@1 {
473			reg = <1>;
474			type = <PCA955X_TYPE_GPIO>;
475		};
476
477		gpio@2 {
478			reg = <2>;
479			type = <PCA955X_TYPE_GPIO>;
480		};
481
482		gpio@3 {
483			reg = <3>;
484			type = <PCA955X_TYPE_GPIO>;
485		};
486
487		gpio@4 {
488			reg = <4>;
489			type = <PCA955X_TYPE_GPIO>;
490		};
491
492		gpio@5 {
493			reg = <5>;
494			type = <PCA955X_TYPE_GPIO>;
495		};
496
497		gpio@6 {
498			reg = <6>;
499			type = <PCA955X_TYPE_GPIO>;
500		};
501
502		gpio@7 {
503			reg = <7>;
504			type = <PCA955X_TYPE_GPIO>;
505		};
506	};
507
508	pca2: pca9555@22 {
509		compatible = "nxp,pca9555";
510		reg = <0x22>;
511		#address-cells = <1>;
512		#size-cells = <0>;
513
514		gpio-controller;
515		#gpio-cells = <2>;
516
517		gpio@0 {
518			reg = <0>;
519			type = <PCA955X_TYPE_GPIO>;
520		};
521
522		gpio@1 {
523			reg = <1>;
524			type = <PCA955X_TYPE_GPIO>;
525		};
526
527		gpio@2 {
528			reg = <2>;
529			type = <PCA955X_TYPE_GPIO>;
530		};
531
532		gpio@3 {
533			reg = <3>;
534			type = <PCA955X_TYPE_GPIO>;
535		};
536
537		gpio@4 {
538			reg = <4>;
539			type = <PCA955X_TYPE_GPIO>;
540		};
541
542		gpio@5 {
543			reg = <5>;
544			type = <PCA955X_TYPE_GPIO>;
545		};
546
547		gpio@6 {
548			reg = <6>;
549			type = <PCA955X_TYPE_GPIO>;
550		};
551
552		gpio@7 {
553			reg = <7>;
554			type = <PCA955X_TYPE_GPIO>;
555		};
556	};
557
558	pca3: pca9555@23 {
559		compatible = "nxp,pca9555";
560		reg = <0x23>;
561		#address-cells = <1>;
562		#size-cells = <0>;
563
564		gpio-controller;
565		#gpio-cells = <2>;
566
567		gpio@0 {
568			reg = <0>;
569			type = <PCA955X_TYPE_GPIO>;
570		};
571
572		gpio@1 {
573			reg = <1>;
574			type = <PCA955X_TYPE_GPIO>;
575		};
576
577		gpio@2 {
578			reg = <2>;
579			type = <PCA955X_TYPE_GPIO>;
580		};
581
582		gpio@3 {
583			reg = <3>;
584			type = <PCA955X_TYPE_GPIO>;
585		};
586
587		gpio@4 {
588			reg = <4>;
589			type = <PCA955X_TYPE_GPIO>;
590		};
591
592		gpio@5 {
593			reg = <5>;
594			type = <PCA955X_TYPE_GPIO>;
595		};
596
597		gpio@6 {
598			reg = <6>;
599			type = <PCA955X_TYPE_GPIO>;
600		};
601
602		gpio@7 {
603			reg = <7>;
604			type = <PCA955X_TYPE_GPIO>;
605		};
606	};
607
608	pca4: pca9555@24 {
609		compatible = "nxp,pca9555";
610		reg = <0x24>;
611		#address-cells = <1>;
612		#size-cells = <0>;
613
614		gpio-controller;
615		#gpio-cells = <2>;
616
617		gpio@0 {
618			reg = <0>;
619			type = <PCA955X_TYPE_GPIO>;
620		};
621
622		gpio@1 {
623			reg = <1>;
624			type = <PCA955X_TYPE_GPIO>;
625		};
626
627		gpio@2 {
628			reg = <2>;
629			type = <PCA955X_TYPE_GPIO>;
630		};
631
632		gpio@3 {
633			reg = <3>;
634			type = <PCA955X_TYPE_GPIO>;
635		};
636
637		gpio@4 {
638			reg = <4>;
639			type = <PCA955X_TYPE_GPIO>;
640		};
641
642		gpio@5 {
643			reg = <5>;
644			type = <PCA955X_TYPE_GPIO>;
645		};
646
647		gpio@6 {
648			reg = <6>;
649			type = <PCA955X_TYPE_GPIO>;
650		};
651
652		gpio@7 {
653			reg = <7>;
654			type = <PCA955X_TYPE_GPIO>;
655		};
656	};
657
658	pca5: pca9555@25 {
659		compatible = "nxp,pca9555";
660		reg = <0x25>;
661		#address-cells = <1>;
662		#size-cells = <0>;
663
664		gpio-controller;
665		#gpio-cells = <2>;
666
667		gpio@0 {
668			reg = <0>;
669			type = <PCA955X_TYPE_GPIO>;
670		};
671
672		gpio@1 {
673			reg = <1>;
674			type = <PCA955X_TYPE_GPIO>;
675		};
676
677		gpio@2 {
678			reg = <2>;
679			type = <PCA955X_TYPE_GPIO>;
680		};
681
682		gpio@3 {
683			reg = <3>;
684			type = <PCA955X_TYPE_GPIO>;
685		};
686
687		gpio@4 {
688			reg = <4>;
689			type = <PCA955X_TYPE_GPIO>;
690		};
691
692		gpio@5 {
693			reg = <5>;
694			type = <PCA955X_TYPE_GPIO>;
695		};
696
697		gpio@6 {
698			reg = <6>;
699			type = <PCA955X_TYPE_GPIO>;
700		};
701
702		gpio@7 {
703			reg = <7>;
704			type = <PCA955X_TYPE_GPIO>;
705		};
706	};
707
708};
709
710&i2c9 {
711	/* cpld */
712	status = "okay";
713};
714
715&i2c10 {
716	/* hdd bp */
717	status = "okay";
718};
719
720&i2c11 {
721	status = "okay";
722
723	power-supply@58 {
724		compatible = "pmbus";
725		reg = <0x58>;
726	};
727
728	power-supply@59 {
729		compatible = "pmbus";
730		reg = <0x59>;
731	};
732};
733
734&i2c12 {
735	/* odcc */
736	status = "okay";
737};
738
739&vuart {
740	status = "okay";
741};
742
743&gfx {
744	status = "okay";
745	memory-region = <&gfx_memory>;
746};
747
748&pinctrl {
749	aspeed,external-nodes = <&gfx &lhc>;
750};
751
752&gpio {
753	pin_gpio_b7 {
754		gpio-hog;
755		gpios = <ASPEED_GPIO(B,7) GPIO_ACTIVE_LOW>;
756		output-high;
757		line-name = "BMC_INIT_OK";
758	};
759};
760
761&wdt1 {
762	aspeed,reset-type = "none";
763	aspeed,external-signal;
764	aspeed,ext-push-pull;
765	aspeed,ext-active-high;
766
767	pinctrl-names = "default";
768	pinctrl-0 = <&pinctrl_wdtrst1_default>;
769};
770
771&ibt {
772	status = "okay";
773
774};
775
776&adc {
777	status = "okay";
778	pinctrl-names = "default";
779	pinctrl-0 = <&pinctrl_adc0_default &pinctrl_adc1_default
780	 &pinctrl_adc2_default &pinctrl_adc3_default &pinctrl_adc4_default
781	 &pinctrl_adc5_default &pinctrl_adc6_default &pinctrl_adc7_default
782	 &pinctrl_adc8_default &pinctrl_adc9_default &pinctrl_adc10_default
783	 &pinctrl_adc11_default &pinctrl_adc12_default &pinctrl_adc13_default
784	 &pinctrl_adc14_default &pinctrl_adc15_default>;
785};
786
787&vhub {
788	status = "okay";
789};
790
791&video {
792	status = "okay";
793	memory-region = <&video_engine_memory>;
794};
795
796&pwm_tacho {
797	status = "okay";
798	pinctrl-names = "default";
799	pinctrl-0 = <&pinctrl_pwm0_default &pinctrl_pwm1_default
800		&pinctrl_pwm2_default &pinctrl_pwm3_default
801		&pinctrl_pwm4_default &pinctrl_pwm5_default
802		&pinctrl_pwm6_default &pinctrl_pwm7_default>;
803
804	fan@0 {
805		reg = <0x00>;
806		aspeed,fan-tach-ch = /bits/ 8 <0x00 0x01>;
807	};
808
809	fan@1 {
810		reg = <0x01>;
811		aspeed,fan-tach-ch = /bits/ 8 <0x02 0x03>;
812	};
813
814	fan@2 {
815		reg = <0x02>;
816		aspeed,fan-tach-ch = /bits/ 8 <0x04 0x05>;
817	};
818
819	fan@3 {
820		reg = <0x03>;
821		aspeed,fan-tach-ch = /bits/ 8 <0x06 0x07>;
822	};
823
824	fan@4 {
825		reg = <0x04>;
826		aspeed,fan-tach-ch = /bits/ 8 <0x08 0x09>;
827	};
828
829	fan@5 {
830		reg = <0x05>;
831		aspeed,fan-tach-ch = /bits/ 8 <0x0a 0x0b>;
832	};
833
834	fan@6 {
835		reg = <0x06>;
836		aspeed,fan-tach-ch = /bits/ 8 <0x0c 0x0d>;
837	};
838
839	fan@7 {
840		reg = <0x07>;
841		aspeed,fan-tach-ch = /bits/ 8 <0x0e 0x0f>;
842	};
843
844};
845
846#include "ibm-power9-dual.dtsi"
847