xref: /linux/scripts/dtc/include-prefixes/arm/aspeed/aspeed-bmc-ampere-mtmitchell.dts (revision acde9078d986d370ce79b68789c77e957650b46d)
1// SPDX-License-Identifier: GPL-2.0-only
2// Copyright (c) 2022, Ampere Computing LLC
3
4/dts-v1/;
5
6#include "aspeed-g6.dtsi"
7#include <dt-bindings/gpio/aspeed-gpio.h>
8
9/ {
10	model = "Ampere Mt.Mitchell BMC";
11	compatible = "ampere,mtmitchell-bmc", "aspeed,ast2600";
12
13	aliases {
14		serial7 = &uart8;
15		serial8 = &uart9;
16	};
17
18	chosen {
19		stdout-path = &uart5;
20	};
21
22	memory@80000000 {
23		device_type = "memory";
24		reg = <0x80000000 0x80000000>;
25	};
26
27	reserved-memory {
28		#address-cells = <1>;
29		#size-cells = <1>;
30		ranges;
31
32		gfx_memory: framebuffer {
33			size = <0x01000000>;
34			alignment = <0x01000000>;
35			compatible = "shared-dma-pool";
36			reusable;
37		};
38
39		video_engine_memory: video {
40			size = <0x04000000>;
41			alignment = <0x01000000>;
42			compatible = "shared-dma-pool";
43			reusable;
44		};
45
46		vga_memory: region@bf000000 {
47			no-map;
48			compatible = "shared-dma-pool";
49			reg = <0xbf000000 0x01000000>;  /* 16M */
50		};
51	};
52
53	voltage_mon_reg: voltage-mon-regulator {
54		compatible = "regulator-fixed";
55		regulator-name = "ltc2497_reg";
56		regulator-min-microvolt = <3300000>;
57		regulator-max-microvolt = <3300000>;
58		regulator-always-on;
59	};
60
61	gpioI5mux: mux-controller {
62		compatible = "gpio-mux";
63		#mux-control-cells = <0>;
64		mux-gpios = <&gpio0 ASPEED_GPIO(I, 5) GPIO_ACTIVE_HIGH>;
65	};
66
67	adc0mux: adc0mux {
68		compatible = "io-channel-mux";
69		io-channels = <&adc_i2c_0 0>;
70		#io-channel-cells = <1>;
71		io-channel-names = "parent";
72		mux-controls = <&gpioI5mux>;
73		settle-time-us = <10000>;
74		channels = "s0", "s1";
75	};
76
77	adc1mux: adc1mux {
78		compatible = "io-channel-mux";
79		io-channels = <&adc_i2c_0 1>;
80		#io-channel-cells = <1>;
81		io-channel-names = "parent";
82		mux-controls = <&gpioI5mux>;
83		settle-time-us = <10000>;
84		channels = "s0", "s1";
85	};
86
87	adc2mux: adc2mux {
88		compatible = "io-channel-mux";
89		io-channels = <&adc_i2c_0 2>;
90		#io-channel-cells = <1>;
91		io-channel-names = "parent";
92		mux-controls = <&gpioI5mux>;
93		settle-time-us = <10000>;
94		channels = "s0", "s1";
95	};
96
97	adc3mux: adc3mux {
98		compatible = "io-channel-mux";
99		io-channels = <&adc_i2c_0 3>;
100		#io-channel-cells = <1>;
101		io-channel-names = "parent";
102		mux-controls = <&gpioI5mux>;
103		settle-time-us = <10000>;
104		channels = "s0", "s1";
105	};
106
107	adc4mux: adc4mux {
108		compatible = "io-channel-mux";
109		io-channels = <&adc_i2c_0 4>;
110		#io-channel-cells = <1>;
111		io-channel-names = "parent";
112		mux-controls = <&gpioI5mux>;
113		settle-time-us = <10000>;
114		channels = "s0", "s1";
115	};
116
117	adc5mux: adc5mux {
118		compatible = "io-channel-mux";
119		io-channels = <&adc_i2c_0 5>;
120		#io-channel-cells = <1>;
121		io-channel-names = "parent";
122		mux-controls = <&gpioI5mux>;
123		settle-time-us = <10000>;
124		channels = "s0", "s1";
125	};
126
127	adc6mux: adc6mux {
128		compatible = "io-channel-mux";
129		io-channels = <&adc_i2c_0 6>;
130		#io-channel-cells = <1>;
131		io-channel-names = "parent";
132		mux-controls = <&gpioI5mux>;
133		settle-time-us = <10000>;
134		channels = "s0", "s1";
135	};
136
137	adc7mux: adc7mux {
138		compatible = "io-channel-mux";
139		io-channels = <&adc_i2c_0 7>;
140		#io-channel-cells = <1>;
141		io-channel-names = "parent";
142		mux-controls = <&gpioI5mux>;
143		settle-time-us = <10000>;
144		channels = "s0", "s1";
145	};
146
147	adc8mux: adc8mux {
148		compatible = "io-channel-mux";
149		io-channels = <&adc_i2c_0 8>;
150		#io-channel-cells = <1>;
151		io-channel-names = "parent";
152		mux-controls = <&gpioI5mux>;
153		settle-time-us = <10000>;
154		channels = "s0", "s1";
155	};
156
157	adc9mux: adc9mux {
158		compatible = "io-channel-mux";
159		io-channels = <&adc_i2c_0 9>;
160		#io-channel-cells = <1>;
161		io-channel-names = "parent";
162		mux-controls = <&gpioI5mux>;
163		settle-time-us = <10000>;
164		channels = "s0", "s1";
165	};
166
167	adc10mux: adc10mux {
168		compatible = "io-channel-mux";
169		io-channels = <&adc_i2c_0 10>;
170		#io-channel-cells = <1>;
171		io-channel-names = "parent";
172		mux-controls = <&gpioI5mux>;
173		settle-time-us = <10000>;
174		channels = "s0", "s1";
175	};
176
177	adc11mux: adc11mux {
178		compatible = "io-channel-mux";
179		io-channels = <&adc_i2c_0 11>;
180		#io-channel-cells = <1>;
181		io-channel-names = "parent";
182		mux-controls = <&gpioI5mux>;
183		settle-time-us = <10000>;
184		channels = "s0", "s1";
185	};
186
187	adc12mux: adc12mux {
188		compatible = "io-channel-mux";
189		io-channels = <&adc_i2c_0 12>;
190		#io-channel-cells = <1>;
191		io-channel-names = "parent";
192		mux-controls = <&gpioI5mux>;
193		settle-time-us = <10000>;
194		channels = "s0", "s1";
195	};
196
197	adc13mux: adc13mux {
198		compatible = "io-channel-mux";
199		io-channels = <&adc_i2c_0 13>;
200		#io-channel-cells = <1>;
201		io-channel-names = "parent";
202		mux-controls = <&gpioI5mux>;
203		settle-time-us = <10000>;
204		channels = "s0", "s1";
205	};
206
207	adc14mux: adc14mux {
208		compatible = "io-channel-mux";
209		io-channels = <&adc_i2c_0 14>;
210		#io-channel-cells = <1>;
211		io-channel-names = "parent";
212		mux-controls = <&gpioI5mux>;
213		settle-time-us = <10000>;
214		channels = "s0", "s1";
215	};
216
217	adc15mux: adc15mux {
218		compatible = "io-channel-mux";
219		io-channels = <&adc_i2c_0 15>;
220		#io-channel-cells = <1>;
221		io-channel-names = "parent";
222		mux-controls = <&gpioI5mux>;
223		settle-time-us = <10000>;
224		channels = "s0", "s1";
225	};
226
227	iio-hwmon {
228		compatible = "iio-hwmon";
229		io-channels =	<&adc0mux 0>, <&adc0mux 1>,
230				<&adc1mux 0>, <&adc1mux 1>,
231				<&adc2mux 0>, <&adc2mux 1>,
232				<&adc3mux 0>, <&adc3mux 1>,
233				<&adc4mux 0>, <&adc4mux 1>,
234				<&adc5mux 0>, <&adc5mux 1>,
235				<&adc6mux 0>, <&adc6mux 1>,
236				<&adc7mux 0>, <&adc7mux 1>,
237				<&adc8mux 0>, <&adc8mux 1>,
238				<&adc9mux 0>, <&adc9mux 1>,
239				<&adc10mux 0>, <&adc10mux 1>,
240				<&adc11mux 0>, <&adc11mux 1>,
241				<&adc12mux 0>, <&adc12mux 1>,
242				<&adc13mux 0>, <&adc13mux 1>,
243				<&adc14mux 0>, <&adc14mux 1>,
244				<&adc15mux 0>, <&adc15mux 1>,
245				<&adc_i2c_1 0>, <&adc_i2c_1 1>,
246				<&adc_i2c_1 2>, <&adc_i2c_1 3>,
247				<&adc_i2c_1 4>, <&adc_i2c_1 5>,
248				<&adc_i2c_1 6>, <&adc_i2c_1 7>,
249				<&adc_i2c_1 8>, <&adc_i2c_1 9>,
250				<&adc_i2c_1 10>, <&adc_i2c_1 11>,
251				<&adc_i2c_1 12>, <&adc_i2c_1 13>,
252				<&adc_i2c_1 14>, <&adc_i2c_1 15>,
253				<&adc0 0>, <&adc0 1>,
254				<&adc0 2>;
255	};
256};
257
258&mdio0 {
259	status = "okay";
260
261	ethphy0: ethernet-phy@0 {
262		compatible = "ethernet-phy-ieee802.3-c22";
263		reg = <0>;
264	};
265};
266
267&mac0 {
268	status = "okay";
269
270	phy-mode = "rgmii";
271	phy-handle = <&ethphy0>;
272
273	pinctrl-names = "default";
274	pinctrl-0 = <&pinctrl_rgmii1_default>;
275};
276
277&mac3 {
278	status = "okay";
279	pinctrl-names = "default";
280	pinctrl-0 = <&pinctrl_rmii4_default>;
281	clock-names = "MACCLK", "RCLK";
282	use-ncsi;
283};
284
285&fmc {
286	status = "okay";
287	flash@0 {
288		status = "okay";
289		m25p,fast-read;
290		label = "bmc";
291		spi-max-frequency = <50000000>;
292#include "openbmc-flash-layout-64.dtsi"
293	};
294
295	flash@1 {
296		status = "okay";
297		m25p,fast-read;
298		label = "alt-bmc";
299		spi-max-frequency = <50000000>;
300#include "openbmc-flash-layout-64-alt.dtsi"
301	};
302};
303
304&spi1 {
305	status = "okay";
306	pinctrl-names = "default";
307	pinctrl-0 = <&pinctrl_spi1_default>;
308
309	flash@0 {
310		status = "okay";
311		m25p,fast-read;
312		label = "pnor";
313		spi-max-frequency = <20000000>;
314	};
315};
316
317&uart1 {
318	status = "okay";
319};
320
321&uart2 {
322	status = "okay";
323};
324
325&uart3 {
326	status = "okay";
327};
328
329&uart4 {
330	status = "okay";
331};
332
333&uart8 {
334	status = "okay";
335};
336
337&uart9 {
338	status = "okay";
339};
340
341&i2c0 {
342	status = "okay";
343
344	temperature-sensor@2e {
345		compatible = "adi,adt7490";
346		reg = <0x2e>;
347	};
348};
349
350&i2c1 {
351	status = "okay";
352};
353
354&i2c2 {
355	status = "okay";
356
357	psu@58 {
358		compatible = "pmbus";
359		reg = <0x58>;
360	};
361
362	psu@59 {
363		compatible = "pmbus";
364		reg = <0x59>;
365	};
366};
367
368&i2c3 {
369	status = "okay";
370};
371
372&i2c4 {
373	status = "okay";
374
375	adc_i2c_0: adc@14 {
376		compatible = "lltc,ltc2497";
377		reg = <0x14>;
378		vref-supply = <&voltage_mon_reg>;
379		#io-channel-cells = <1>;
380	 };
381
382	adc_i2c_1: adc@16 {
383		compatible = "lltc,ltc2497";
384		reg = <0x16>;
385		vref-supply = <&voltage_mon_reg>;
386		#io-channel-cells = <1>;
387	 };
388
389	eeprom@50 {
390		compatible = "atmel,24c64";
391		reg = <0x50>;
392		pagesize = <32>;
393	};
394
395	i2c-mux@70 {
396		compatible = "nxp,pca9545";
397		#address-cells = <1>;
398		#size-cells = <0>;
399		reg = <0x70>;
400		i2c-mux-idle-disconnect;
401
402		i2c4_bus70_chn0: i2c@0 {
403			#address-cells = <1>;
404			#size-cells = <0>;
405			reg = <0x0>;
406
407			outlet_temp1: temperature-sensor@48 {
408				compatible = "ti,tmp75";
409				reg = <0x48>;
410			};
411			psu1_inlet_temp2: temperature-sensor@49 {
412				compatible = "ti,tmp75";
413				reg = <0x49>;
414			};
415		};
416
417		i2c4_bus70_chn1: i2c@1 {
418			#address-cells = <1>;
419			#size-cells = <0>;
420			reg = <0x1>;
421
422			pcie_zone_temp1: temperature-sensor@48 {
423				compatible = "ti,tmp75";
424				reg = <0x48>;
425			};
426			psu0_inlet_temp2: temperature-sensor@49 {
427				compatible = "ti,tmp75";
428				reg = <0x49>;
429			};
430		};
431
432		i2c4_bus70_chn2: i2c@2 {
433			#address-cells = <1>;
434			#size-cells = <0>;
435			reg = <0x2>;
436
437			pcie_zone_temp2: temperature-sensor@48 {
438				compatible = "ti,tmp75";
439				reg = <0x48>;
440			};
441			outlet_temp2: temperature-sensor@49 {
442				compatible = "ti,tmp75";
443				reg = <0x49>;
444			};
445		};
446
447		i2c4_bus70_chn3: i2c@3 {
448			#address-cells = <1>;
449			#size-cells = <0>;
450			reg = <0x3>;
451
452			mb_inlet_temp1: temperature-sensor@7c {
453				compatible = "microchip,emc1413";
454				reg = <0x7c>;
455			};
456			mb_inlet_temp2: temperature-sensor@4c {
457				compatible = "microchip,emc1413";
458				reg = <0x4c>;
459			};
460		};
461	};
462};
463
464&i2c5 {
465	status = "okay";
466
467	i2c-mux@70 {
468		compatible = "nxp,pca9548";
469		#address-cells = <1>;
470		#size-cells = <0>;
471		reg = <0x70>;
472		i2c-mux-idle-disconnect;
473	};
474};
475
476&i2c6 {
477	status = "okay";
478	rtc@51 {
479		compatible = "nxp,pcf85063a";
480		reg = <0x51>;
481	};
482};
483
484&i2c7 {
485	status = "okay";
486};
487
488&i2c8 {
489	status = "okay";
490
491	gpio@77 {
492		compatible = "nxp,pca9539";
493		reg = <0x77>;
494		gpio-controller;
495		#address-cells = <1>;
496		#size-cells = <0>;
497		#gpio-cells = <2>;
498
499		bmc-ocp0-en-hog {
500			gpio-hog;
501			gpios = <7 GPIO_ACTIVE_LOW>;
502			output-high;
503			line-name = "bmc-ocp0-en-n";
504		};
505	};
506};
507
508&i2c9 {
509	status = "okay";
510};
511
512&i2c11 {
513	status = "okay";
514	ssif-bmc@10 {
515		compatible = "ssif-bmc";
516		reg = <0x10>;
517	};
518};
519
520&i2c14 {
521	status = "okay";
522	eeprom@50 {
523		compatible = "atmel,24c64";
524		reg = <0x50>;
525		pagesize = <32>;
526	};
527
528	bmc_ast2600_cpu: temperature-sensor@35 {
529		compatible = "ti,tmp175";
530		reg = <0x35>;
531	};
532};
533
534&adc0 {
535	ref_voltage = <2500>;
536	status = "okay";
537
538	pinctrl-names = "default";
539	pinctrl-0 = <&pinctrl_adc0_default &pinctrl_adc1_default
540		&pinctrl_adc2_default &pinctrl_adc3_default
541		&pinctrl_adc4_default &pinctrl_adc5_default
542		&pinctrl_adc6_default &pinctrl_adc7_default>;
543};
544
545&adc1 {
546	ref_voltage = <2500>;
547	status = "okay";
548
549	pinctrl-names = "default";
550	pinctrl-0 = <&pinctrl_adc8_default &pinctrl_adc9_default
551		&pinctrl_adc10_default &pinctrl_adc11_default
552		&pinctrl_adc12_default &pinctrl_adc13_default
553		&pinctrl_adc14_default &pinctrl_adc15_default>;
554};
555
556&vhub {
557	status = "okay";
558};
559
560&video {
561	status = "okay";
562	memory-region = <&video_engine_memory>;
563};
564
565&gpio0 {
566	gpio-line-names =
567	/*A0-A7*/	"","","","","","i2c2-reset-n","i2c6-reset-n","i2c4-reset-n",
568	/*B0-B7*/	"","","","","host0-sysreset-n","host0-pmin-n","","",
569	/*C0-C7*/	"s0-vrd-fault-n","s1-vrd-fault-n","","",
570			"irq-n","","vrd-sel","spd-sel",
571	/*D0-D7*/	"presence-ps0","presence-ps1","hsc-12vmain-alt2-n","ext-high-temp-n",
572			"","bmc-ncsi-txen","","",
573	/*E0-E7*/	"","","clk50m-bmc-ncsi","","","","","",
574	/*F0-F7*/	"s0-pcp-oc-warn-n","s1-pcp-oc-warn-n","power-chassis-control",
575			"cpu-bios-recover","s0-heartbeat","hs-csout-prochot",
576			"s0-vr-hot-n","s1-vr-hot-n",
577	/*G0-G7*/	"","","hsc-12vmain-alt1-n","","","","","",
578	/*H0-H7*/	"","","wd-disable-n","power-chassis-good","","","","",
579	/*I0-I7*/	"","","","","","adc-sw","power-button","rtc-battery-voltage-read-enable",
580	/*J0-J7*/	"","","","","","","","",
581	/*K0-K7*/	"","","","","","","","",
582	/*L0-L7*/	"","","","","","","","",
583	/*M0-M7*/	"","s0-ddr-save","soc-spi-nor-access","presence-cpu0",
584			"s0-rtc-lock","","","",
585	/*N0-N7*/	"hpm-fw-recovery","hpm-stby-rst-n","jtag-sel-s0","led-sw-hb",
586			"jtag-dbgr-prsnt-n","s1-heartbeat","","",
587	/*O0-O7*/	"","","","","","","","",
588	/*P0-P7*/	"ps0-ac-loss-n","ps1-ac-loss-n","","",
589			"led-fault","cpld-user-mode","jtag-srst-n","led-bmc-hb",
590	/*Q0-Q7*/	"","","","","","","","",
591	/*R0-R7*/	"","","","","","","","",
592	/*S0-S7*/	"","","identify-button","led-identify",
593			"s1-ddr-save","spi-nor-access","sys-pgood","presence-cpu1",
594	/*T0-T7*/	"","","","","","","","",
595	/*U0-U7*/	"","","","","","","","",
596	/*V0-V7*/	"s0-hightemp-n","s0-fault-alert","s0-sys-auth-failure-n",
597			"host0-reboot-ack-n","host0-ready","host0-shd-req-n",
598			"host0-shd-ack-n","s0-overtemp-n",
599	/*W0-W7*/	"","ocp-main-pwren","ocp-pgood","",
600			"bmc-ok","bmc-ready","spi0-program-sel","spi0-backup-sel",
601	/*X0-X7*/	"i2c-backup-sel","s1-fault-alert","s1-fw-boot-ok",
602			"s1-hightemp-n","s0-spi-auth-fail-n","s1-sys-auth-failure-n",
603			"s1-overtemp-n","s1-spi-auth-fail-n",
604	/*Y0-Y7*/	"","","","","","","","host0-special-boot",
605	/*Z0-Z7*/	"reset-button","ps0-pgood","ps1-pgood","","","","","";
606
607	ocp-aux-pwren-hog {
608		gpio-hog;
609		gpios = <ASPEED_GPIO(W, 0) GPIO_ACTIVE_HIGH>;
610		output-high;
611		line-name = "ocp-aux-pwren";
612	};
613};
614
615&gpio1 {
616	gpio-line-names =
617	/*18A0-18A7*/	"","","","","","","","",
618	/*18B0-18B7*/	"","","","","","","s0-soc-pgood","",
619	/*18C0-18C7*/	"uart1-mode0","uart1-mode1","uart2-mode0","uart2-mode1",
620			"uart3-mode0","uart3-mode1","uart4-mode0","uart4-mode1",
621	/*18D0-18D7*/	"","","","","","","","",
622	/*18E0-18E3*/	"","","","";
623};
624