1// SPDX-License-Identifier: GPL-2.0-only
2// Copyright 2024 Ampere Computing LLC.
3
4/dts-v1/;
5
6#include "aspeed-g6.dtsi"
7#include <dt-bindings/i2c/i2c.h>
8#include <dt-bindings/gpio/aspeed-gpio.h>
9
10/ {
11	model = "Ampere Mt. Jefferson BMC";
12	compatible = "ampere,mtjefferson-bmc", "aspeed,ast2600";
13
14	aliases {
15		i2c20 = &i2c4_bus70_chn0;
16		i2c22 = &i2c4_bus70_chn2;
17
18		/*
19		 *  I2C OCP alias port
20		 */
21		i2c30 = &ocpslot;
22
23		/*
24		 *  I2C NVMe alias port
25		 */
26		i2c48 = &nvmeslot_0;
27		i2c49 = &nvmeslot_1;
28		i2c50 = &nvmeslot_2;
29		i2c51 = &nvmeslot_3;
30		i2c52 = &nvmeslot_4;
31		i2c53 = &nvmeslot_5;
32		i2c54 = &nvmeslot_6;
33		i2c55 = &nvmeslot_7;
34		i2c56 = &nvmeslot_8;
35		i2c57 = &nvmeslot_9;
36		i2c58 = &nvmeslot_10;
37		i2c59 = &nvmeslot_11;
38	};
39
40	chosen {
41		stdout-path = &uart5;
42	};
43
44	memory@80000000 {
45		device_type = "memory";
46		reg = <0x80000000 0x80000000>;
47	};
48
49	reserved-memory {
50		#address-cells = <1>;
51		#size-cells = <1>;
52		ranges;
53
54		gfx_memory: framebuffer {
55			size = <0x01000000>;
56			alignment = <0x01000000>;
57			compatible = "shared-dma-pool";
58			reusable;
59		};
60
61		video_engine_memory: video {
62			size = <0x04000000>;
63			alignment = <0x01000000>;
64			compatible = "shared-dma-pool";
65			reusable;
66		};
67
68		vga_memory: region@bf000000 {
69			no-map;
70			compatible = "shared-dma-pool";
71			reg = <0xbf000000 0x01000000>;  /* 16M */
72		};
73	};
74
75	voltage_mon_reg: voltage-mon-regulator {
76		compatible = "regulator-fixed";
77		regulator-name = "ltc2497_reg";
78		regulator-min-microvolt = <3300000>;
79		regulator-max-microvolt = <3300000>;
80		regulator-always-on;
81	};
82
83	leds {
84		compatible = "gpio-leds";
85		led-bmc-ready {
86			gpios = <&gpio0 ASPEED_GPIO(W, 5) (GPIO_ACTIVE_HIGH | GPIO_TRANSITORY)>;
87		};
88
89		led-sw-heartbeat {
90			gpios = <&gpio0 ASPEED_GPIO(N, 3) GPIO_ACTIVE_HIGH>;
91		};
92
93		led-identify {
94			gpios = <&gpio0 ASPEED_GPIO(S, 3) GPIO_ACTIVE_HIGH>;
95		};
96
97		led-fault {
98			gpios = <&gpio0 ASPEED_GPIO(P, 4) GPIO_ACTIVE_HIGH>;
99		};
100	};
101
102	iio-hwmon {
103		compatible = "iio-hwmon";
104		io-channels =   <&adc0 0>, <&adc0 1>, <&adc0 2>,
105				<&adc_i2c_2 0>, <&adc_i2c_2 1>,
106				<&adc_i2c_2 2>, <&adc_i2c_2 3>,
107				<&adc_i2c_2 4>, <&adc_i2c_2 5>,
108				<&adc_i2c_2 6>, <&adc_i2c_2 7>,
109				<&adc_i2c_2 8>, <&adc_i2c_2 9>,
110				<&adc_i2c_2 10>, <&adc_i2c_2 11>,
111				<&adc_i2c_2 12>, <&adc_i2c_2 13>,
112				<&adc_i2c_2 14>, <&adc_i2c_2 15>,
113				<&adc_i2c_0 0>, <&adc_i2c_0 1>,
114				<&adc_i2c_0 2>, <&adc_i2c_0 3>,
115				<&adc_i2c_0 4>, <&adc_i2c_0 5>,
116				<&adc_i2c_0 6>, <&adc_i2c_0 7>,
117				<&adc_i2c_0 8>, <&adc_i2c_0 9>,
118				<&adc_i2c_0 10>, <&adc_i2c_0 11>,
119				<&adc_i2c_0 12>;
120	};
121};
122
123&mdio0 {
124	status = "okay";
125
126	ethphy0: ethernet-phy@0 {
127		compatible = "ethernet-phy-ieee802.3-c22";
128		reg = <0>;
129	};
130};
131
132&mac0 {
133	status = "okay";
134
135	phy-mode = "rgmii";
136	phy-handle = <&ethphy0>;
137
138	pinctrl-names = "default";
139	pinctrl-0 = <&pinctrl_rgmii1_default>;
140};
141
142&mac3 {
143	status = "okay";
144	pinctrl-names = "default";
145	pinctrl-0 = <&pinctrl_rmii4_default>;
146	use-ncsi;
147};
148
149&fmc {
150	status = "okay";
151	flash@0 {
152		status = "okay";
153		m25p,fast-read;
154		label = "bmc";
155		spi-max-frequency = <50000000>;
156#include "openbmc-flash-layout-64.dtsi"
157	};
158
159	flash@1 {
160		status = "okay";
161		m25p,fast-read;
162		label = "alt-bmc";
163		spi-max-frequency = <50000000>;
164#include "openbmc-flash-layout-64-alt.dtsi"
165	};
166};
167
168&spi1 {
169	status = "okay";
170	pinctrl-names = "default";
171	pinctrl-0 = <&pinctrl_spi1_default>;
172
173	flash@0 {
174		status = "okay";
175		m25p,fast-read;
176		label = "pnor";
177		spi-max-frequency = <20000000>;
178	};
179};
180
181&uart1 {
182	status = "okay";
183};
184
185&uart2 {
186	status = "okay";
187};
188
189&i2c0 {
190	status = "okay";
191};
192
193&i2c1 {
194	status = "okay";
195};
196
197&i2c2 {
198	status = "okay";
199};
200
201&i2c3 {
202	status = "okay";
203	bus-frequency = <1000000>;
204	multi-master;
205	mctp-controller;
206
207	mctp@10 {
208		compatible = "mctp-i2c-controller";
209		reg = <(0x10 | I2C_OWN_SLAVE_ADDRESS)>;
210	};
211};
212
213&i2c4 {
214	status = "okay";
215	eeprom@50 {
216		compatible = "atmel,24c64";
217		reg = <0x50>;
218		pagesize = <32>;
219	};
220
221	i2c-mux@70 {
222		compatible = "nxp,pca9545";
223		#address-cells = <1>;
224		#size-cells = <0>;
225		reg = <0x70>;
226		i2c-mux-idle-disconnect;
227
228		i2c4_bus70_chn0: i2c@0 {
229			#address-cells = <1>;
230			#size-cells = <0>;
231			reg = <0x0>;
232
233			eeprom@52 {
234				compatible = "atmel,24c256";
235				reg = <0x52>;
236				pagesize = <32>;
237			};
238			temperature-sensor@48 {
239				compatible = "ti,tmp75";
240				reg = <0x48>;
241			};
242			temperature-sensor@49 {
243				compatible = "ti,tmp75";
244				reg = <0x49>;
245			};
246			temperature-sensor@4a{
247				compatible = "ti,tmp75";
248				reg = <0x4a>;
249			};
250			temperature-sensor@4b {
251				compatible = "ti,tmp464";
252				reg = <0x4b>;
253				#address-cells = <1>;
254				#size-cells = <0>;
255
256				channel@0 {
257					reg = <0x0>;
258					status = "disabled";
259				};
260				channel@1 {
261					reg = <0x1>;
262					status = "disabled";
263				};
264				channel@2 {
265					reg = <0x2>;
266					status = "disabled";
267				};
268				channel@3 {
269					reg = <0x3>;
270					status = "disabled";
271				};
272				channel@4 {
273					reg = <0x4>;
274				};
275			};
276			temperature-sensor@4d {
277				compatible = "ti,tmp75";
278				reg = <0x4d>;
279			};
280			temperature-sensor@4e {
281				compatible = "ti,tmp75";
282				reg = <0x4e>;
283			};
284			temperature-sensor@4f {
285				compatible = "ti,tmp75";
286				reg = <0x4f>;
287			};
288			temperature-sensor@28 {
289				compatible = "nuvoton,nct7802";
290				reg = <0x28>;
291
292				#address-cells = <1>;
293				#size-cells = <0>;
294				channel@1 { /* RTD1 */
295					reg = <1>;
296					sensor-type = "temperature";
297					temperature-mode = "thermistor";
298				};
299			};
300			adc_i2c_0: adc@14 {
301				compatible = "lltc,ltc2497";
302				reg = <0x14>;
303				vref-supply = <&voltage_mon_reg>;
304				#io-channel-cells = <1>;
305			};
306		};
307
308		i2c4_bus70_chn2: i2c@2 {
309			#address-cells = <1>;
310			#size-cells = <0>;
311			reg = <0x2>;
312
313			adc_i2c_2: adc@14 {
314				compatible = "lltc,ltc2497";
315				reg = <0x14>;
316				vref-supply = <&voltage_mon_reg>;
317				#io-channel-cells = <1>;
318			};
319		};
320	};
321};
322
323&i2c5 {
324	status = "okay";
325	i2c-mux@70 {
326		compatible = "nxp,pca9548";
327		#address-cells = <1>;
328		#size-cells = <0>;
329		reg = <0x70>;
330		i2c-mux-idle-disconnect;
331
332		i2c@0 {
333			#address-cells = <1>;
334			#size-cells = <0>;
335			reg = <0x0>;
336
337			i2c-mux@71 {
338				compatible = "nxp,pca9548";
339				#address-cells = <1>;
340				#size-cells = <0>;
341				reg = <0x71>;
342				i2c-mux-idle-disconnect;
343
344				nvmeslot_8: i2c@0 {
345					#address-cells = <1>;
346					#size-cells = <0>;
347					reg = <0x0>;
348				};
349				nvmeslot_9: i2c@1 {
350					#address-cells = <1>;
351					#size-cells = <0>;
352					reg = <0x1>;
353				};
354				nvmeslot_10: i2c@2 {
355					#address-cells = <1>;
356					#size-cells = <0>;
357					reg = <0x2>;
358				};
359				nvmeslot_11: i2c@3 {
360					#address-cells = <1>;
361					#size-cells = <0>;
362					reg = <0x3>;
363				};
364			};
365
366			i2c-mux@72 {
367				compatible = "nxp,pca9548";
368				#address-cells = <1>;
369				#size-cells = <0>;
370				reg = <0x72>;
371				i2c-mux-idle-disconnect;
372
373				nvmeslot_4: i2c@4 {
374					#address-cells = <1>;
375					#size-cells = <0>;
376					reg = <0x4>;
377				};
378				nvmeslot_5: i2c@5 {
379					#address-cells = <1>;
380					#size-cells = <0>;
381					reg = <0x5>;
382				};
383				nvmeslot_6: i2c@6 {
384					#address-cells = <1>;
385					#size-cells = <0>;
386					reg = <0x6>;
387				};
388				nvmeslot_7: i2c@7 {
389					#address-cells = <1>;
390					#size-cells = <0>;
391					reg = <0x7>;
392				};
393			};
394
395			i2c-mux@74 {
396				compatible = "nxp,pca9548";
397				#address-cells = <1>;
398				#size-cells = <0>;
399				reg = <0x74>;
400				i2c-mux-idle-disconnect;
401
402				ocpslot: i2c@0 {
403					#address-cells = <1>;
404					#size-cells = <0>;
405					reg = <0x0>;
406
407					ocpslot_temp: temperature-sensor@1f {
408						compatible = "ti,tmp421";
409						reg = <0x1f>;
410						#address-cells = <1>;
411						#size-cells = <0>;
412
413						channel@0 {
414							reg = <0x0>;
415							status = "disabled";
416						};
417						channel@1 {
418							reg = <0x1>;
419						};
420					};
421				};
422
423				nvmeslot_0: i2c@4 {
424					#address-cells = <1>;
425					#size-cells = <0>;
426					reg = <0x4>;
427				};
428				nvmeslot_1: i2c@5 {
429					#address-cells = <1>;
430					#size-cells = <0>;
431					reg = <0x5>;
432				};
433				nvmeslot_2: i2c@6 {
434					#address-cells = <1>;
435					#size-cells = <0>;
436					reg = <0x6>;
437				};
438				nvmeslot_3: i2c@7 {
439					#address-cells = <1>;
440					#size-cells = <0>;
441					reg = <0x7>;
442				};
443			};
444		};
445	};
446};
447
448&i2c6 {
449	status = "okay";
450
451	rtc@51 {
452		compatible = "nxp,pcf8563";
453		reg = <0x51>;
454	};
455};
456
457&i2c7 {
458	status = "okay";
459
460	temperature-sensor@4f {
461		compatible = "ti,tmp75";
462		reg = <0x4f>;
463	};
464};
465
466&i2c8 {
467	status = "okay";
468
469	fan-controller@5c {
470		compatible = "onnn,adt7462";
471		reg = <0x5c>;
472	};
473};
474
475&i2c9 {
476	status = "okay";
477
478	#address-cells = <1>;
479	#size-cells = <0>;
480
481	eeprom@50 {
482		compatible = "atmel,24c02";
483		reg = <0x50>;
484	};
485
486	eeprom@52 {
487		compatible = "atmel,24c02";
488		reg = <0x52>;
489	};
490
491	temperature-sensor@18 {
492		compatible = "jedec,jc-42.4-temp";
493		reg = <0x18>;
494	};
495
496	temperature-sensor@1a {
497		compatible = "jedec,jc-42.4-temp";
498		reg = <0x1a>;
499	};
500};
501
502&i2c10 {
503	status = "okay";
504};
505
506&i2c11 {
507	status = "okay";
508	ssif-bmc@10 {
509		compatible = "ssif-bmc";
510		reg = <0x10>;
511	};
512};
513
514&i2c14 {
515	status = "okay";
516	eeprom@50 {
517		compatible = "atmel,24c64";
518		reg = <0x50>;
519		pagesize = <32>;
520	};
521
522	bmc_ast2600_cpu: temperature-sensor@48 {
523		compatible = "ti,tmp75";
524		reg = <0x48>;
525	};
526};
527
528&i2c15 {
529	status = "okay";
530	gpio_expander1: gpio-expander@22 {
531		compatible = "nxp,pca9535";
532		reg = <0x22>;
533		gpio-controller;
534		#gpio-cells = <2>;
535		gpio-line-names =
536			"presence-ocp1","presence-ocp2",
537			"","",
538			"","",
539			"","",
540			"","",
541			"","",
542			"","",
543			"","";
544	};
545};
546
547&adc0 {
548	status = "okay";
549
550	pinctrl-names = "default";
551	pinctrl-0 = <&pinctrl_adc0_default &pinctrl_adc1_default
552		&pinctrl_adc2_default>;
553};
554
555&vhub {
556	status = "okay";
557};
558
559&video {
560	status = "okay";
561	memory-region = <&video_engine_memory>;
562};
563
564&gpio0 {
565	gpio-line-names =
566	/*A0-A7*/	"","","","","cpu-type-detect","i2c2-reset-n","i2c6-reset-n","i2c5-reset-n",
567	/*B0-B7*/	"","","","","host0-sysreset-n","host0-pmin-n","fru-rd-complete",
568			"chassis-id-sel",
569	/*C0-C7*/	"s0-vrd-fault-n","","bmc-debug-mode","","cpld-3v3-irq-n","","vrd-sel",
570			"spd-sel",
571	/*D0-D7*/	"presence-ps0","presence-ps1","hsc-12vmain-alt2-n","ext-high-temp-n",
572			"","","","",
573	/*E0-E7*/	"eth-phy-rst-n","eth-phy-int-n","","","","","","",
574	/*F0-F7*/	"s0-pcp-oc-warn-n","","power-chassis-control",
575			"cpu-bios-recover","s0-heartbeat","hs-scout-proc-hot","s0-vr-hot-n","",
576	/*G0-G7*/	"","","hsc-12vmain-alt1-n","","","bp-cpld-program-en","led-fp-sta-gr",
577			"led-fp-sta-amb",
578	/*H0-H7*/	"jtag-program-sel","jtag-cmpl2","wd-disable-n","power-chassis-good","","",
579			"","",
580	/*I0-I7*/	"","","","","","","power-button","rtc-battery-voltage-read-enable",
581	/*J0-J7*/	"","","","","","","","",
582	/*K0-K7*/	"","","","","","","","",
583	/*L0-L7*/	"","","","","reset-button","","","",
584	/*M0-M7*/	"nmi-n","s0-ddr-save","soc-spi-nor-access","presence-cpu0","s0-rtc-lock",
585			"","","",
586	/*N0-N7*/	"hpm-fw-recovery","hpm-stby-rst-n","jtag-sel-s0","led-sw-hb",
587			"jtag-dbgr-prsnt-n","","","",
588	/*O0-O7*/	"","","","","","","","",
589	/*P0-P7*/	"ps0-ac-loss-n","ps1-ac-loss-n","","","led-fault","user-mode","jtag-srst-n",
590			"led-bmc-hb",
591	/*Q0-Q7*/	"","","","","","","","",
592	/*R0-R7*/	"","","","","","","","",
593	/*S0-S7*/	"","","identify-button","led-identify","","spi-nor-access","host0-ready","",
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","s0-fw-boot-ok","host0-shd-req-n",
598			"host0-shd-ack-n","s0-overtemp-n",
599	/*W0-W7*/	"ocp-aux-pwren","ocp-main-pwren","ocp-pgood","",
600			"bmc-ok","bmc-ready","spi0-program-sel","spi0-backup-sel",
601	/*X0-X7*/	"","","","","","","","",
602	/*Y0-Y7*/	"","","","vrd-prg-en-n","","","","host0-special-boot",
603	/*Z0-Z7*/	"","ps0-pgood","ps1-pgood","","","","","";
604
605	ocp-aux-pwren-hog {
606		gpio-hog;
607		gpios = <ASPEED_GPIO(W, 0) GPIO_ACTIVE_HIGH>;
608		output-high;
609		line-name = "ocp-aux-pwren";
610	};
611
612};
613
614&gpio1 {
615	gpio-line-names =
616	/*18A0-18A7*/	"","","","","","","","",
617	/*18B0-18B7*/	"","","","","s0-soc-pgood","vga-ft-press-n","emmc-rst-n","s01-uart1-sel",
618	/*18C0-18C7*/	"uart1-mode0","uart1-mode1","uart2-mode0","uart2-mode1",
619			"","","","",
620	/*18D0-18D7*/	"","","","","","","","",
621	/*18E0-18E3*/	"","","","";
622};
623