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