1// SPDX-License-Identifier: GPL-2.0-or-later
2// Copyright 2019 IBM Corp.
3/dts-v1/;
4
5#include "aspeed-g6.dtsi"
6#include <dt-bindings/gpio/aspeed-gpio.h>
7#include <dt-bindings/i2c/i2c.h>
8#include <dt-bindings/leds/leds-pca955x.h>
9
10/ {
11	model = "Tacoma";
12	compatible = "ibm,tacoma-bmc", "aspeed,ast2600";
13
14	chosen {
15		stdout-path = &uart5;
16		bootargs = "console=ttyS4,115200n8";
17	};
18
19	memory@80000000 {
20		device_type = "memory";
21		reg = <0x80000000 0x40000000>;
22	};
23
24	reserved-memory {
25		#address-cells = <1>;
26		#size-cells = <1>;
27		ranges;
28
29		flash_memory: region@ba000000 {
30			no-map;
31			reg = <0xb8000000 0x4000000>; /* 64M */
32		};
33
34		vga_memory: region@bf000000 {
35			no-map;
36			compatible = "shared-dma-pool";
37			reg = <0xbf000000 0x01000000>;	/* 16M */
38		};
39	};
40
41	gpio-keys {
42		compatible = "gpio-keys";
43
44		ps0-presence {
45			label = "ps0-presence";
46			gpios = <&gpio0 ASPEED_GPIO(H, 3) GPIO_ACTIVE_LOW>;
47			linux,code = <ASPEED_GPIO(H, 3)>;
48		};
49
50		ps1-presence {
51			label = "ps1-presence";
52			gpios = <&gpio0 ASPEED_GPIO(E, 5) GPIO_ACTIVE_LOW>;
53			linux,code = <ASPEED_GPIO(E, 5)>;
54		};
55	};
56
57	gpio-keys-polled {
58		compatible = "gpio-keys-polled";
59		#address-cells = <1>;
60		#size-cells = <0>;
61		poll-interval = <1000>;
62
63		fan0-presence {
64			label = "fan0-presence";
65			gpios = <&pca0 4 GPIO_ACTIVE_LOW>;
66			linux,code = <4>;
67		};
68
69		fan1-presence {
70			label = "fan1-presence";
71			gpios = <&pca0 5 GPIO_ACTIVE_LOW>;
72			linux,code = <5>;
73		};
74
75		fan2-presence {
76			label = "fan2-presence";
77			gpios = <&pca0 6 GPIO_ACTIVE_LOW>;
78			linux,code = <6>;
79		};
80
81		fan3-presence {
82			label = "fan3-presence";
83			gpios = <&pca0 7 GPIO_ACTIVE_LOW>;
84			linux,code = <7>;
85		};
86	};
87
88	iio-hwmon-dps310 {
89		compatible = "iio-hwmon";
90		io-channels = <&dps 0>;
91	};
92
93	iio-hwmon-bmp280 {
94		compatible = "iio-hwmon";
95		io-channels = <&bmp 1>;
96	};
97};
98
99&ehci1 {
100	status = "okay";
101};
102
103&gpio0 {
104	gpio-line-names =
105	/*A0-A7*/	"","","","","","","","",
106	/*B0-B7*/	"fsi-mux","","","","","","","",
107	/*C0-C7*/	"","","","","","","","",
108	/*D0-D7*/	"","","","","","","","",
109	/*E0-E7*/	"power-button","","","checkstop","","presence-ps1","","led-rear-fault",
110	/*F0-F7*/	"","","","","","","","",
111	/*G0-G7*/	"","","","","","","","",
112	/*H0-H7*/	"","","","presence-ps0","","","","",
113	/*I0-I7*/	"","","","","","","","",
114	/*J0-J7*/	"","","","","","","","",
115	/*K0-K7*/	"","","","","","","","",
116	/*L0-L7*/	"","","","","","","","",
117	/*M0-M7*/	"","","","","","","","",
118	/*N0-N7*/	"","","","","","","","",
119	/*O0-O7*/	"led-rear-power","led-rear-id","","usb-power","","","","",
120	/*P0-P7*/	"","","","","","","","",
121	/*Q0-Q7*/	"cfam-reset","","","","","","","fsi-routing",
122	/*R0-R7*/	"","","","","","","","",
123	/*S0-S7*/	"","","","","","","","",
124	/*T0-T7*/	"","","","","","","","",
125	/*U0-U7*/	"","","","","","","","",
126	/*V0-V7*/	"","","","","","","","",
127	/*W0-W7*/	"","","","","","","","",
128	/*X0-X7*/	"","","","","","","","",
129	/*Y0-Y7*/	"","","","","","","","",
130	/*Z0-Z7*/	"","","","","","","","",
131	/*AA0-AA7*/	"","","","","","","","",
132	/*AB0-AB7*/	"","","","","","","","",
133	/*AC0-AC7*/	"","","","","","","","";
134};
135
136&fmc {
137	status = "okay";
138	flash@0 {
139		status = "okay";
140		m25p,fast-read;
141		label = "bmc";
142		spi-max-frequency = <50000000>;
143#include "openbmc-flash-layout-128.dtsi"
144	};
145
146	flash@1 {
147		status = "okay";
148		m25p,fast-read;
149		label = "alt-bmc";
150		spi-max-frequency = <50000000>;
151	};
152};
153
154&spi1 {
155	status = "okay";
156	pinctrl-names = "default";
157	pinctrl-0 = <&pinctrl_spi1_default>;
158
159	flash@0 {
160		status = "okay";
161		m25p,fast-read;
162		label = "pnor";
163		spi-max-frequency = <100000000>;
164	};
165};
166
167&mac2 {
168	status = "okay";
169	pinctrl-names = "default";
170	pinctrl-0 = <&pinctrl_rmii3_default>;
171	clocks = <&syscon ASPEED_CLK_GATE_MAC3CLK>,
172		 <&syscon ASPEED_CLK_MAC3RCLK>;
173	clock-names = "MACCLK", "RCLK";
174	use-ncsi;
175};
176
177&emmc_controller {
178	status = "okay";
179};
180
181&emmc {
182	status = "okay";
183};
184
185&fsim0 {
186	status = "okay";
187
188	#address-cells = <2>;
189	#size-cells = <0>;
190
191	fsi-routing-gpios = <&gpio0 ASPEED_GPIO(Q, 7) GPIO_ACTIVE_HIGH>;
192	fsi-mux-gpios = <&gpio0 ASPEED_GPIO(B, 0) GPIO_ACTIVE_HIGH>;
193	cfam-reset-gpios = <&gpio0 ASPEED_GPIO(Q, 0) GPIO_ACTIVE_LOW>;
194
195	cfam@0,0 {
196		reg = <0 0>;
197		#address-cells = <1>;
198		#size-cells = <1>;
199		chip-id = <0>;
200
201		scom@1000 {
202			compatible = "ibm,fsi2pib";
203			reg = <0x1000 0x400>;
204		};
205
206		i2c@1800 {
207			compatible = "ibm,fsi-i2c-master";
208			reg = <0x1800 0x400>;
209			#address-cells = <1>;
210			#size-cells = <0>;
211
212			cfam0_i2c0: i2c-bus@0 {
213				reg = <0>;
214			};
215
216			cfam0_i2c1: i2c-bus@1 {
217				reg = <1>;
218			};
219
220			cfam0_i2c2: i2c-bus@2 {
221				reg = <2>;
222			};
223
224			cfam0_i2c3: i2c-bus@3 {
225				reg = <3>;
226			};
227
228			cfam0_i2c4: i2c-bus@4 {
229				reg = <4>;
230			};
231
232			cfam0_i2c5: i2c-bus@5 {
233				reg = <5>;
234			};
235
236			cfam0_i2c6: i2c-bus@6 {
237				reg = <6>;
238			};
239
240			cfam0_i2c7: i2c-bus@7 {
241				reg = <7>;
242			};
243
244			cfam0_i2c8: i2c-bus@8 {
245				reg = <8>;
246			};
247
248			cfam0_i2c9: i2c-bus@9 {
249				reg = <9>;
250			};
251
252			cfam0_i2c10: i2c-bus@a {
253				reg = <10>;
254			};
255
256			cfam0_i2c11: i2c-bus@b {
257				reg = <11>;
258			};
259
260			cfam0_i2c12: i2c-bus@c {
261				reg = <12>;
262			};
263
264			cfam0_i2c13: i2c-bus@d {
265				reg = <13>;
266			};
267
268			cfam0_i2c14: i2c-bus@e {
269				reg = <14>;
270			};
271		};
272
273		sbefifo@2400 {
274			compatible = "ibm,p9-sbefifo";
275			reg = <0x2400 0x400>;
276			#address-cells = <1>;
277			#size-cells = <0>;
278
279			fsi_occ0: occ {
280				compatible = "ibm,p9-occ";
281			};
282		};
283
284		fsi_hub0: hub@3400 {
285			compatible = "fsi-master-hub";
286			reg = <0x3400 0x400>;
287			#address-cells = <2>;
288			#size-cells = <0>;
289
290			no-scan-on-init;
291		};
292	};
293};
294
295&fsi_hub0 {
296	cfam@1,0 {
297		reg = <1 0>;
298		#address-cells = <1>;
299		#size-cells = <1>;
300		chip-id = <1>;
301
302		scom@1000 {
303			compatible = "ibm,fsi2pib";
304			reg = <0x1000 0x400>;
305		};
306
307		i2c@1800 {
308			compatible = "ibm,fsi-i2c-master";
309			reg = <0x1800 0x400>;
310			#address-cells = <1>;
311			#size-cells = <0>;
312
313			cfam1_i2c0: i2c-bus@0 {
314				reg = <0>;
315			};
316
317			cfam1_i2c1: i2c-bus@1 {
318				reg = <1>;
319			};
320
321			cfam1_i2c2: i2c-bus@2 {
322				reg = <2>;
323			};
324
325			cfam1_i2c3: i2c-bus@3 {
326				reg = <3>;
327			};
328
329			cfam1_i2c4: i2c-bus@4 {
330				reg = <4>;
331			};
332
333			cfam1_i2c5: i2c-bus@5 {
334				reg = <5>;
335			};
336
337			cfam1_i2c6: i2c-bus@6 {
338				reg = <6>;
339			};
340
341			cfam1_i2c7: i2c-bus@7 {
342				reg = <7>;
343			};
344
345			cfam1_i2c8: i2c-bus@8 {
346				reg = <8>;
347			};
348
349			cfam1_i2c9: i2c-bus@9 {
350				reg = <9>;
351			};
352
353			cfam1_i2c10: i2c-bus@a {
354				reg = <10>;
355			};
356
357			cfam1_i2c11: i2c-bus@b {
358				reg = <11>;
359			};
360
361			cfam1_i2c12: i2c-bus@c {
362				reg = <12>;
363			};
364
365			cfam1_i2c13: i2c-bus@d {
366				reg = <13>;
367			};
368
369			cfam1_i2c14: i2c-bus@e {
370				reg = <14>;
371			};
372		};
373
374		sbefifo@2400 {
375			compatible = "ibm,p9-sbefifo";
376			reg = <0x2400 0x400>;
377			#address-cells = <1>;
378			#size-cells = <0>;
379
380			fsi_occ1: occ {
381				compatible = "ibm,p9-occ";
382			};
383		};
384
385		fsi_hub1: hub@3400 {
386			compatible = "fsi-master-hub";
387			reg = <0x3400 0x400>;
388			#address-cells = <2>;
389			#size-cells = <0>;
390
391			no-scan-on-init;
392		};
393	};
394};
395
396/* Legacy OCC numbering (to get rid of when userspace is fixed) */
397&fsi_occ0 {
398	reg = <1>;
399};
400
401&fsi_occ1 {
402	reg = <2>;
403};
404
405/ {
406	aliases {
407		i2c100 = &cfam0_i2c0;
408		i2c101 = &cfam0_i2c1;
409		i2c102 = &cfam0_i2c2;
410		i2c103 = &cfam0_i2c3;
411		i2c104 = &cfam0_i2c4;
412		i2c105 = &cfam0_i2c5;
413		i2c106 = &cfam0_i2c6;
414		i2c107 = &cfam0_i2c7;
415		i2c108 = &cfam0_i2c8;
416		i2c109 = &cfam0_i2c9;
417		i2c110 = &cfam0_i2c10;
418		i2c111 = &cfam0_i2c11;
419		i2c112 = &cfam0_i2c12;
420		i2c113 = &cfam0_i2c13;
421		i2c114 = &cfam0_i2c14;
422		i2c200 = &cfam1_i2c0;
423		i2c201 = &cfam1_i2c1;
424		i2c202 = &cfam1_i2c2;
425		i2c203 = &cfam1_i2c3;
426		i2c204 = &cfam1_i2c4;
427		i2c205 = &cfam1_i2c5;
428		i2c206 = &cfam1_i2c6;
429		i2c207 = &cfam1_i2c7;
430		i2c208 = &cfam1_i2c8;
431		i2c209 = &cfam1_i2c9;
432		i2c210 = &cfam1_i2c10;
433		i2c211 = &cfam1_i2c11;
434		i2c212 = &cfam1_i2c12;
435		i2c213 = &cfam1_i2c13;
436		i2c214 = &cfam1_i2c14;
437	};
438
439};
440
441&i2c0 {
442	multi-master;
443	status = "okay";
444
445	ibm-panel@62 {
446		compatible = "ibm,op-panel";
447		reg = <(0x62 | I2C_OWN_SLAVE_ADDRESS)>;
448	};
449};
450
451&i2c1 {
452	status = "okay";
453
454	tpm: tpm@2e {
455		compatible = "tcg,tpm-tis-i2c";
456		reg = <0x2e>;
457	};
458};
459
460&i2c2 {
461	status = "okay";
462};
463
464&i2c3 {
465	status = "okay";
466
467	bmp: bmp280@77 {
468		compatible = "bosch,bmp280";
469		reg = <0x77>;
470		#io-channel-cells = <1>;
471	};
472
473	max31785@52 {
474		compatible = "maxim,max31785a";
475		reg = <0x52>;
476		#address-cells = <1>;
477		#size-cells = <0>;
478
479		fan@0 {
480			compatible = "pmbus-fan";
481			reg = <0>;
482			tach-pulses = <2>;
483			maxim,fan-rotor-input = "tach";
484			maxim,fan-pwm-freq = <25000>;
485			maxim,fan-dual-tach;
486			maxim,fan-no-watchdog;
487			maxim,fan-no-fault-ramp;
488			maxim,fan-ramp = <2>;
489			maxim,fan-fault-pin-mon;
490		};
491
492		fan@1 {
493			compatible = "pmbus-fan";
494			reg = <1>;
495			tach-pulses = <2>;
496			maxim,fan-rotor-input = "tach";
497			maxim,fan-pwm-freq = <25000>;
498			maxim,fan-dual-tach;
499			maxim,fan-no-watchdog;
500			maxim,fan-no-fault-ramp;
501			maxim,fan-ramp = <2>;
502			maxim,fan-fault-pin-mon;
503		};
504
505		fan@2 {
506			compatible = "pmbus-fan";
507			reg = <2>;
508			tach-pulses = <2>;
509			maxim,fan-rotor-input = "tach";
510			maxim,fan-pwm-freq = <25000>;
511			maxim,fan-dual-tach;
512			maxim,fan-no-watchdog;
513			maxim,fan-no-fault-ramp;
514			maxim,fan-ramp = <2>;
515			maxim,fan-fault-pin-mon;
516		};
517
518		fan@3 {
519			compatible = "pmbus-fan";
520			reg = <3>;
521			tach-pulses = <2>;
522			maxim,fan-rotor-input = "tach";
523			maxim,fan-pwm-freq = <25000>;
524			maxim,fan-dual-tach;
525			maxim,fan-no-watchdog;
526			maxim,fan-no-fault-ramp;
527			maxim,fan-ramp = <2>;
528			maxim,fan-fault-pin-mon;
529		};
530	};
531
532	dps: dps310@76 {
533		compatible = "infineon,dps310";
534		reg = <0x76>;
535		#io-channel-cells = <0>;
536	};
537
538	pca0: pca9552@60 {
539		compatible = "nxp,pca9552";
540		reg = <0x60>;
541		#address-cells = <1>;
542		#size-cells = <0>;
543
544		gpio-controller;
545		#gpio-cells = <2>;
546
547		gpio@0 {
548			reg = <0>;
549			type = <PCA955X_TYPE_GPIO>;
550		};
551
552		gpio@1 {
553			reg = <1>;
554			type = <PCA955X_TYPE_GPIO>;
555		};
556
557		gpio@2 {
558			reg = <2>;
559			type = <PCA955X_TYPE_GPIO>;
560		};
561
562		gpio@3 {
563			reg = <3>;
564			type = <PCA955X_TYPE_GPIO>;
565		};
566
567		gpio@4 {
568			reg = <4>;
569			type = <PCA955X_TYPE_GPIO>;
570		};
571
572		gpio@5 {
573			reg = <5>;
574			type = <PCA955X_TYPE_GPIO>;
575		};
576
577		gpio@6 {
578			reg = <6>;
579			type = <PCA955X_TYPE_GPIO>;
580		};
581
582		gpio@7 {
583			reg = <7>;
584			type = <PCA955X_TYPE_GPIO>;
585		};
586
587		gpio@8 {
588			reg = <8>;
589			type = <PCA955X_TYPE_GPIO>;
590		};
591
592		gpio@9 {
593			reg = <9>;
594			type = <PCA955X_TYPE_GPIO>;
595		};
596
597		gpio@10 {
598			reg = <10>;
599			type = <PCA955X_TYPE_GPIO>;
600		};
601
602		gpio@11 {
603			reg = <11>;
604			type = <PCA955X_TYPE_GPIO>;
605		};
606
607		gpio@12 {
608			reg = <12>;
609			type = <PCA955X_TYPE_GPIO>;
610		};
611
612		gpio@13 {
613			reg = <13>;
614			type = <PCA955X_TYPE_GPIO>;
615		};
616
617		gpio@14 {
618			reg = <14>;
619			type = <PCA955X_TYPE_GPIO>;
620		};
621
622		gpio@15 {
623			reg = <15>;
624			type = <PCA955X_TYPE_GPIO>;
625		};
626	};
627
628	power-supply@68 {
629		compatible = "ibm,cffps1";
630		reg = <0x68>;
631	};
632
633	power-supply@69 {
634		compatible = "ibm,cffps1";
635		reg = <0x69>;
636	};
637};
638
639&i2c4 {
640	status = "okay";
641
642	tmp423a@4c {
643		compatible = "ti,tmp423";
644		reg = <0x4c>;
645	};
646
647	ir35221@70 {
648		compatible = "infineon,ir35221";
649		reg = <0x70>;
650	};
651
652	ir35221@71 {
653		compatible = "infineon,ir35221";
654		reg = <0x71>;
655	};
656};
657
658&i2c5 {
659	status = "okay";
660
661	tmp423a@4c {
662		compatible = "ti,tmp423";
663		reg = <0x4c>;
664	};
665
666	ir35221@70 {
667		compatible = "infineon,ir35221";
668		reg = <0x70>;
669	};
670
671	ir35221@71 {
672		compatible = "infineon,ir35221";
673		reg = <0x71>;
674	};
675};
676
677&i2c7 {
678	status = "okay";
679};
680
681&i2c9 {
682	status = "okay";
683
684	tmp275@4a {
685		compatible = "ti,tmp275";
686		reg = <0x4a>;
687	};
688};
689
690&i2c10 {
691	status = "okay";
692};
693
694&i2c11 {
695	status = "okay";
696
697	pca9552: pca9552@60 {
698		compatible = "nxp,pca9552";
699		reg = <0x60>;
700		#address-cells = <1>;
701		#size-cells = <0>;
702		gpio-controller;
703		#gpio-cells = <2>;
704
705		gpio-line-names = "PS_SMBUS_RESET_N", "APSS_RESET_N",
706			"GPU0_TH_OVERT_N_BUFF",	"GPU1_TH_OVERT_N_BUFF",
707			"GPU2_TH_OVERT_N_BUFF", "GPU3_TH_OVERT_N_BUFF",
708			"GPU4_TH_OVERT_N_BUFF",	"GPU5_TH_OVERT_N_BUFF",
709			"GPU0_PWR_GOOD_BUFF", "GPU1_PWR_GOOD_BUFF",
710			"GPU2_PWR_GOOD_BUFF", "GPU3_PWR_GOOD_BUFF",
711			"GPU4_PWR_GOOD_BUFF", "GPU5_PWR_GOOD_BUFF",
712			"12V_BREAKER_FLT_N", "THROTTLE_UNLATCHED_N";
713
714		gpio@0 {
715			reg = <0>;
716			type = <PCA955X_TYPE_GPIO>;
717		};
718
719		gpio@1 {
720			reg = <1>;
721			type = <PCA955X_TYPE_GPIO>;
722		};
723
724		gpio@2 {
725			reg = <2>;
726			type = <PCA955X_TYPE_GPIO>;
727		};
728
729		gpio@3 {
730			reg = <3>;
731			type = <PCA955X_TYPE_GPIO>;
732		};
733
734		gpio@4 {
735			reg = <4>;
736			type = <PCA955X_TYPE_GPIO>;
737		};
738
739		gpio@5 {
740			reg = <5>;
741			type = <PCA955X_TYPE_GPIO>;
742		};
743
744		gpio@6 {
745			reg = <6>;
746			type = <PCA955X_TYPE_GPIO>;
747		};
748
749		gpio@7 {
750			reg = <7>;
751			type = <PCA955X_TYPE_GPIO>;
752		};
753
754		gpio@8 {
755			reg = <8>;
756			type = <PCA955X_TYPE_GPIO>;
757		};
758
759		gpio@9 {
760			reg = <9>;
761			type = <PCA955X_TYPE_GPIO>;
762		};
763
764		gpio@10 {
765			reg = <10>;
766			type = <PCA955X_TYPE_GPIO>;
767		};
768
769		gpio@11 {
770			reg = <11>;
771			type = <PCA955X_TYPE_GPIO>;
772		};
773
774		gpio@12 {
775			reg = <12>;
776			type = <PCA955X_TYPE_GPIO>;
777		};
778
779		gpio@13 {
780			reg = <13>;
781			type = <PCA955X_TYPE_GPIO>;
782		};
783
784		gpio@14 {
785			reg = <14>;
786			type = <PCA955X_TYPE_GPIO>;
787		};
788
789		gpio@15 {
790			reg = <15>;
791			type = <PCA955X_TYPE_GPIO>;
792		};
793	};
794
795	rtc@32 {
796		compatible = "epson,rx8900";
797		reg = <0x32>;
798	};
799
800	eeprom@51 {
801		compatible = "atmel,24c64";
802		reg = <0x51>;
803	};
804
805	ucd90160@64 {
806		compatible = "ti,ucd90160";
807		reg = <0x64>;
808	};
809};
810
811&i2c12 {
812	status = "okay";
813};
814
815&i2c13 {
816	status = "okay";
817};
818
819&ibt {
820	status = "okay";
821};
822
823&uart1 {
824	status = "okay";
825	// Workaround for A0
826	compatible = "snps,dw-apb-uart";
827};
828
829&uart5 {
830	// Workaround for A0
831	compatible = "snps,dw-apb-uart";
832};
833
834&vuart1 {
835	status = "okay";
836};
837
838&vuart2 {
839	status = "okay";
840};
841
842&lpc_ctrl {
843	status = "okay";
844	memory-region = <&flash_memory>;
845	flash = <&spi1>;
846};
847
848&wdt1 {
849	aspeed,reset-type = "none";
850	aspeed,external-signal;
851	aspeed,ext-push-pull;
852	aspeed,ext-active-high;
853
854	pinctrl-names = "default";
855	pinctrl-0 = <&pinctrl_wdtrst1_default>;
856};
857
858&wdt2 {
859	status = "okay";
860};
861
862&pinctrl {
863	/* Hog these as no driver is probed for the entire LPC block */
864	pinctrl-names = "default";
865	pinctrl-0 = <&pinctrl_lpc_default>,
866		    <&pinctrl_lsirq_default>;
867};
868
869&xdma {
870	status = "okay";
871	memory-region = <&vga_memory>;
872};
873