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