Linux Audio

Check our new training course

Embedded Linux training

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