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