1*3f2879e4SChen PJ// SPDX-License-Identifier: GPL-2.0-or-later
2*3f2879e4SChen PJ// Copyright 2023 Inventec Corp.
3*3f2879e4SChen PJ
4*3f2879e4SChen PJ/dts-v1/;
5*3f2879e4SChen PJ
6*3f2879e4SChen PJ#include "aspeed-g6.dtsi"
7*3f2879e4SChen PJ#include "aspeed-g6-pinctrl.dtsi"
8*3f2879e4SChen PJ#include <dt-bindings/i2c/i2c.h>
9*3f2879e4SChen PJ#include <dt-bindings/gpio/aspeed-gpio.h>
10*3f2879e4SChen PJ
11*3f2879e4SChen PJ/ {
12*3f2879e4SChen PJ	model = "STARSCREAM BMC";
13*3f2879e4SChen PJ	compatible = "inventec,starscream-bmc", "aspeed,ast2600";
14*3f2879e4SChen PJ
15*3f2879e4SChen PJ	aliases {
16*3f2879e4SChen PJ		serial4 = &uart5;
17*3f2879e4SChen PJ	};
18*3f2879e4SChen PJ
19*3f2879e4SChen PJ	chosen {
20*3f2879e4SChen PJ		stdout-path = &uart5;
21*3f2879e4SChen PJ	};
22*3f2879e4SChen PJ
23*3f2879e4SChen PJ	memory@80000000 {
24*3f2879e4SChen PJ		device_type = "memory";
25*3f2879e4SChen PJ		reg = <0x80000000 0x80000000>;
26*3f2879e4SChen PJ	};
27*3f2879e4SChen PJ
28*3f2879e4SChen PJ	reserved-memory {
29*3f2879e4SChen PJ		#address-cells = <1>;
30*3f2879e4SChen PJ		#size-cells = <1>;
31*3f2879e4SChen PJ		ranges;
32*3f2879e4SChen PJ
33*3f2879e4SChen PJ		video_engine_memory: video {
34*3f2879e4SChen PJ			size = <0x04000000>;
35*3f2879e4SChen PJ			alignment = <0x01000000>;
36*3f2879e4SChen PJ			compatible = "shared-dma-pool";
37*3f2879e4SChen PJ			reusable;
38*3f2879e4SChen PJ		};
39*3f2879e4SChen PJ	};
40*3f2879e4SChen PJ
41*3f2879e4SChen PJ	leds {
42*3f2879e4SChen PJ		compatible = "gpio-leds";
43*3f2879e4SChen PJ
44*3f2879e4SChen PJ		led-uid {
45*3f2879e4SChen PJ			label = "UID_LED";
46*3f2879e4SChen PJ			gpios = <&gpio0 186 GPIO_ACTIVE_LOW>;
47*3f2879e4SChen PJ		};
48*3f2879e4SChen PJ
49*3f2879e4SChen PJ		led-heartbeat {
50*3f2879e4SChen PJ			label = "HB_LED";
51*3f2879e4SChen PJ			gpios = <&gpio0 127 GPIO_ACTIVE_LOW>;
52*3f2879e4SChen PJ		};
53*3f2879e4SChen PJ	};
54*3f2879e4SChen PJ};
55*3f2879e4SChen PJ
56*3f2879e4SChen PJ&mdio0 {
57*3f2879e4SChen PJ	status = "okay";
58*3f2879e4SChen PJ
59*3f2879e4SChen PJ	ethphy0: ethernet-phy@0 {
60*3f2879e4SChen PJ		compatible = "ethernet-phy-ieee802.3-c22";
61*3f2879e4SChen PJ		reg = <1>;
62*3f2879e4SChen PJ	};
63*3f2879e4SChen PJ};
64*3f2879e4SChen PJ
65*3f2879e4SChen PJ&mac2 {
66*3f2879e4SChen PJ	status = "okay";
67*3f2879e4SChen PJ	pinctrl-names = "default";
68*3f2879e4SChen PJ	phy-mode = "rmii";
69*3f2879e4SChen PJ	pinctrl-0 = <&pinctrl_rmii3_default>;
70*3f2879e4SChen PJ	use-ncsi;
71*3f2879e4SChen PJ};
72*3f2879e4SChen PJ
73*3f2879e4SChen PJ&mac3 {
74*3f2879e4SChen PJ	status = "okay";
75*3f2879e4SChen PJ	phy-mode = "rgmii";
76*3f2879e4SChen PJ	phy-handle = <&ethphy0>;
77*3f2879e4SChen PJ	pinctrl-names = "default";
78*3f2879e4SChen PJ	pinctrl-0 = <&pinctrl_rgmii4_default>;
79*3f2879e4SChen PJ};
80*3f2879e4SChen PJ
81*3f2879e4SChen PJ&fmc {
82*3f2879e4SChen PJ	status = "okay";
83*3f2879e4SChen PJ	flash@0 {
84*3f2879e4SChen PJ		status = "okay";
85*3f2879e4SChen PJ		m25p,fast-read;
86*3f2879e4SChen PJ		label = "bmc";
87*3f2879e4SChen PJ		spi-max-frequency = <50000000>;
88*3f2879e4SChen PJ		spi-tx-bus-width = <4>;
89*3f2879e4SChen PJ		spi-rx-bus-width = <4>;
90*3f2879e4SChen PJ#include "openbmc-flash-layout.dtsi"
91*3f2879e4SChen PJ	};
92*3f2879e4SChen PJ
93*3f2879e4SChen PJ	flash@1 {
94*3f2879e4SChen PJ		status = "okay";
95*3f2879e4SChen PJ		m25p,fast-read;
96*3f2879e4SChen PJ		label = "bmc2";
97*3f2879e4SChen PJ		spi-max-frequency = <50000000>;
98*3f2879e4SChen PJ		spi-tx-bus-width = <4>;
99*3f2879e4SChen PJ		spi-rx-bus-width = <4>;
100*3f2879e4SChen PJ	};
101*3f2879e4SChen PJ};
102*3f2879e4SChen PJ
103*3f2879e4SChen PJ&spi1 {
104*3f2879e4SChen PJ	status = "okay";
105*3f2879e4SChen PJ	pinctrl-names = "default";
106*3f2879e4SChen PJ	pinctrl-0 = <&pinctrl_spi1_default>;
107*3f2879e4SChen PJ
108*3f2879e4SChen PJ	flash@0 {
109*3f2879e4SChen PJ		status = "okay";
110*3f2879e4SChen PJ		m25p,fast-read;
111*3f2879e4SChen PJ		label = "bios";
112*3f2879e4SChen PJ		spi-max-frequency = <50000000>;
113*3f2879e4SChen PJ		spi-tx-bus-width = <4>;
114*3f2879e4SChen PJ		spi-rx-bus-width = <4>;
115*3f2879e4SChen PJ	};
116*3f2879e4SChen PJ};
117*3f2879e4SChen PJ
118*3f2879e4SChen PJ&vuart1 {
119*3f2879e4SChen PJ	status = "okay";
120*3f2879e4SChen PJ};
121*3f2879e4SChen PJ
122*3f2879e4SChen PJ&uart1 {
123*3f2879e4SChen PJ	status = "okay";
124*3f2879e4SChen PJ};
125*3f2879e4SChen PJ
126*3f2879e4SChen PJ&uart3 {
127*3f2879e4SChen PJ	status = "okay";
128*3f2879e4SChen PJ};
129*3f2879e4SChen PJ
130*3f2879e4SChen PJ&uart5 {
131*3f2879e4SChen PJ	status = "okay";
132*3f2879e4SChen PJ};
133*3f2879e4SChen PJ
134*3f2879e4SChen PJ&kcs3 {
135*3f2879e4SChen PJ	aspeed,lpc-io-reg = <0xca2>;
136*3f2879e4SChen PJ	status = "okay";
137*3f2879e4SChen PJ};
138*3f2879e4SChen PJ
139*3f2879e4SChen PJ&uart_routing {
140*3f2879e4SChen PJ	status = "okay";
141*3f2879e4SChen PJ};
142*3f2879e4SChen PJ
143*3f2879e4SChen PJ&i2c0 {
144*3f2879e4SChen PJ	status = "okay";
145*3f2879e4SChen PJ};
146*3f2879e4SChen PJ&i2c1 {
147*3f2879e4SChen PJ	status = "okay";
148*3f2879e4SChen PJ};
149*3f2879e4SChen PJ&i2c2 {
150*3f2879e4SChen PJ	status = "okay";
151*3f2879e4SChen PJ};
152*3f2879e4SChen PJ&i2c3 {
153*3f2879e4SChen PJ	status = "okay";
154*3f2879e4SChen PJ};
155*3f2879e4SChen PJ
156*3f2879e4SChen PJ&i2c4 {
157*3f2879e4SChen PJ	status = "okay";
158*3f2879e4SChen PJ
159*3f2879e4SChen PJ	// I2C EXPANDER
160*3f2879e4SChen PJ	i2c-mux@71 {
161*3f2879e4SChen PJ		compatible = "nxp,pca9546";
162*3f2879e4SChen PJ		#address-cells = <1>;
163*3f2879e4SChen PJ		#size-cells = <0>;
164*3f2879e4SChen PJ		reg = <0x71>;
165*3f2879e4SChen PJ
166*3f2879e4SChen PJ		i2c@0 {
167*3f2879e4SChen PJ			#address-cells = <1>;
168*3f2879e4SChen PJ			#size-cells = <0>;
169*3f2879e4SChen PJ			reg = <0>;
170*3f2879e4SChen PJ			// AMD SB-TSI CPU1
171*3f2879e4SChen PJ			sbtsi@4c {
172*3f2879e4SChen PJ				compatible = "amd,sbtsi";
173*3f2879e4SChen PJ				reg = <0x4c>;
174*3f2879e4SChen PJ			};
175*3f2879e4SChen PJ		};
176*3f2879e4SChen PJ
177*3f2879e4SChen PJ		i2c@1 {
178*3f2879e4SChen PJ			#address-cells = <1>;
179*3f2879e4SChen PJ			#size-cells = <0>;
180*3f2879e4SChen PJ			reg = <1>;
181*3f2879e4SChen PJ			// AMD SB-TSI CPU2
182*3f2879e4SChen PJ			sbtsi@48 {
183*3f2879e4SChen PJ				compatible = "amd,sbtsi";
184*3f2879e4SChen PJ				reg = <0x48>;
185*3f2879e4SChen PJ			};
186*3f2879e4SChen PJ		};
187*3f2879e4SChen PJ	};
188*3f2879e4SChen PJ};
189*3f2879e4SChen PJ
190*3f2879e4SChen PJ&i2c5 {
191*3f2879e4SChen PJ	status = "okay";
192*3f2879e4SChen PJ
193*3f2879e4SChen PJ	// I2C EXPANDER U153
194*3f2879e4SChen PJ	i2c-mux@70 {
195*3f2879e4SChen PJ		compatible = "nxp,pca9546";
196*3f2879e4SChen PJ		#address-cells = <1>;
197*3f2879e4SChen PJ		#size-cells = <0>;
198*3f2879e4SChen PJ		reg = <0x70>;
199*3f2879e4SChen PJ
200*3f2879e4SChen PJ		usb_hub: i2c@0 {
201*3f2879e4SChen PJ			#address-cells = <1>;
202*3f2879e4SChen PJ			#size-cells = <0>;
203*3f2879e4SChen PJ			reg = <0>;
204*3f2879e4SChen PJ		};
205*3f2879e4SChen PJ
206*3f2879e4SChen PJ		riser1: i2c@1 {
207*3f2879e4SChen PJ			#address-cells = <1>;
208*3f2879e4SChen PJ			#size-cells = <0>;
209*3f2879e4SChen PJ			reg = <1>;
210*3f2879e4SChen PJ		};
211*3f2879e4SChen PJ
212*3f2879e4SChen PJ		riser2: i2c@2 {
213*3f2879e4SChen PJ			#address-cells = <1>;
214*3f2879e4SChen PJ			#size-cells = <0>;
215*3f2879e4SChen PJ			reg = <2>;
216*3f2879e4SChen PJ		};
217*3f2879e4SChen PJ
218*3f2879e4SChen PJ		i2c@3 {
219*3f2879e4SChen PJ			#address-cells = <1>;
220*3f2879e4SChen PJ			#size-cells = <0>;
221*3f2879e4SChen PJ			reg = <3>;
222*3f2879e4SChen PJ		};
223*3f2879e4SChen PJ	};
224*3f2879e4SChen PJ};
225*3f2879e4SChen PJ
226*3f2879e4SChen PJ&i2c6 {
227*3f2879e4SChen PJ	status = "okay";
228*3f2879e4SChen PJ
229*3f2879e4SChen PJ	// Motherboard Temp_U89
230*3f2879e4SChen PJ	temperature-sensor@4e {
231*3f2879e4SChen PJ		compatible = "ti,tmp421";
232*3f2879e4SChen PJ		reg = <0x4e>;
233*3f2879e4SChen PJ	};
234*3f2879e4SChen PJ
235*3f2879e4SChen PJ	// RunBMC Temp_U6
236*3f2879e4SChen PJ	temperature-sensor@49 {
237*3f2879e4SChen PJ		compatible = "ti,tmp75";
238*3f2879e4SChen PJ		reg = <0x49>;
239*3f2879e4SChen PJ	};
240*3f2879e4SChen PJ};
241*3f2879e4SChen PJ
242*3f2879e4SChen PJ&i2c7 {
243*3f2879e4SChen PJ	status = "okay";
244*3f2879e4SChen PJ	// I2C EXPANDER U40
245*3f2879e4SChen PJ	i2c-mux@70 {
246*3f2879e4SChen PJ		compatible = "nxp,pca9545";
247*3f2879e4SChen PJ		#address-cells = <1>;
248*3f2879e4SChen PJ		#size-cells = <0>;
249*3f2879e4SChen PJ		reg = <0x70>;
250*3f2879e4SChen PJ
251*3f2879e4SChen PJ		i2c@0 {
252*3f2879e4SChen PJ			#address-cells = <1>;
253*3f2879e4SChen PJ			#size-cells = <0>;
254*3f2879e4SChen PJ			reg = <0>;
255*3f2879e4SChen PJ		};
256*3f2879e4SChen PJ
257*3f2879e4SChen PJ		i2c@1 {
258*3f2879e4SChen PJ			#address-cells = <1>;
259*3f2879e4SChen PJ			#size-cells = <0>;
260*3f2879e4SChen PJ			reg = <1>;
261*3f2879e4SChen PJ		};
262*3f2879e4SChen PJ
263*3f2879e4SChen PJ		i2c@2 {
264*3f2879e4SChen PJ			#address-cells = <1>;
265*3f2879e4SChen PJ			#size-cells = <0>;
266*3f2879e4SChen PJ			reg = <2>;
267*3f2879e4SChen PJ		};
268*3f2879e4SChen PJ
269*3f2879e4SChen PJ		i2c@3 {
270*3f2879e4SChen PJ			#address-cells = <1>;
271*3f2879e4SChen PJ			#size-cells = <0>;
272*3f2879e4SChen PJ			reg = <3>;
273*3f2879e4SChen PJ		};
274*3f2879e4SChen PJ	};
275*3f2879e4SChen PJ};
276*3f2879e4SChen PJ
277*3f2879e4SChen PJ&i2c8 {
278*3f2879e4SChen PJ	status = "okay";
279*3f2879e4SChen PJ	// FRU RunBMC
280*3f2879e4SChen PJ	eeprom@51 {
281*3f2879e4SChen PJ		compatible = "atmel,24c512";
282*3f2879e4SChen PJ		reg = <0x51>;
283*3f2879e4SChen PJ		pagesize = <128>;
284*3f2879e4SChen PJ	};
285*3f2879e4SChen PJ};
286*3f2879e4SChen PJ
287*3f2879e4SChen PJ&i2c9 {
288*3f2879e4SChen PJ	status = "okay";
289*3f2879e4SChen PJ};
290*3f2879e4SChen PJ
291*3f2879e4SChen PJ&i2c10 {
292*3f2879e4SChen PJ	status = "okay";
293*3f2879e4SChen PJ};
294*3f2879e4SChen PJ
295*3f2879e4SChen PJ&i2c11 {
296*3f2879e4SChen PJ	status = "okay";
297*3f2879e4SChen PJ};
298*3f2879e4SChen PJ
299*3f2879e4SChen PJ&i2c12 {
300*3f2879e4SChen PJ	status = "okay";
301*3f2879e4SChen PJ	// FRU SCM
302*3f2879e4SChen PJ	eeprom@51 {
303*3f2879e4SChen PJ		compatible = "atmel,24c512";
304*3f2879e4SChen PJ		reg = <0x51>;
305*3f2879e4SChen PJ		pagesize = <128>;
306*3f2879e4SChen PJ	};
307*3f2879e4SChen PJ
308*3f2879e4SChen PJ	// SCM Temp_U17
309*3f2879e4SChen PJ	temperature-sensor@4f {
310*3f2879e4SChen PJ		compatible = "ti,tmp75";
311*3f2879e4SChen PJ		reg = <0x4f>;
312*3f2879e4SChen PJ	};
313*3f2879e4SChen PJ};
314*3f2879e4SChen PJ
315*3f2879e4SChen PJ&gpio0 {
316*3f2879e4SChen PJ	status = "okay";
317*3f2879e4SChen PJ	gpio-line-names =
318*3f2879e4SChen PJ	/*A0-A7*/   "","","","","","","","",
319*3f2879e4SChen PJ	/*B0-B7*/   "alert-psu0-smb-r-n","bmc-ready","","assert-cpu0-prochot-r-n",
320*3f2879e4SChen PJ	"","","","",
321*3f2879e4SChen PJ	/*C0-C7*/   "","","","","","","","",
322*3f2879e4SChen PJ	/*D0-D7*/   "","","","","","","","",
323*3f2879e4SChen PJ	/*E0-E7*/   "","","","","","","","",
324*3f2879e4SChen PJ	/*F0-F7*/   "","","","","reset-sgpio-r-n","","","",
325*3f2879e4SChen PJ	/*G0-G7*/   "","","scm-jtag-mux-select","","","","","",
326*3f2879e4SChen PJ	/*H0-H7*/   "","","","","reset-out","power-out","","",
327*3f2879e4SChen PJ	/*I0-I7*/   "","","","","","","irq-bmc-cpu0-buf-nmi-n","",
328*3f2879e4SChen PJ	/*J0-J7*/   "","","","","","","","",
329*3f2879e4SChen PJ	/*K0-K7*/   "","","","","","","","",
330*3f2879e4SChen PJ	/*L0-L7*/   "","","","","","","","",
331*3f2879e4SChen PJ	/*M0-M7*/   "","","","","","","","",
332*3f2879e4SChen PJ	/*N0-N7*/   "","","ncsi-ocp-clk-en-n","","","","","",
333*3f2879e4SChen PJ	/*O0-O7*/   "","","","","","","cpu1-thermal-trip-n","",
334*3f2879e4SChen PJ	/*P0-P7*/   "","","","","","","","",
335*3f2879e4SChen PJ	/*Q0-Q7*/   "cpu0-prochot-n","","cpu1-prochot-n","","cpu0-pe-rst0","","","",
336*3f2879e4SChen PJ	/*R0-R7*/   "","","","","","","","",
337*3f2879e4SChen PJ	/*S0-S7*/   "","","","",
338*3f2879e4SChen PJ	"","PCH_SLP_S4_BMC_N","cpu0-thermtrip-n","alert-psu1-smb-r-n",
339*3f2879e4SChen PJ	/*T0-T7*/   "","","","","","","","",
340*3f2879e4SChen PJ	/*U0-U7*/   "","","","","","","","",
341*3f2879e4SChen PJ	/*V0-V7*/   "bios-recovery-buf-n","","assert-cpu1-prochot-r-n","",
342*3f2879e4SChen PJ	"power-chassis-good","","","",
343*3f2879e4SChen PJ	/*W0-W7*/   "","","","","","","","",
344*3f2879e4SChen PJ	/*X0-X7*/   "","","","","platform-type","","","",
345*3f2879e4SChen PJ	/*Y0-Y7*/   "","","","","","","","",
346*3f2879e4SChen PJ	/*Z0-Z7*/   "","cpld-power-break-n","","","","","","",
347*3f2879e4SChen PJ	/*AA0-AA7*/ "","","","","","","","",
348*3f2879e4SChen PJ	/*AB0-AB7*/ "","","","","","","","",
349*3f2879e4SChen PJ	/*AC0-AC7*/ "","","","","","","","";
350*3f2879e4SChen PJ};
351*3f2879e4SChen PJ
352*3f2879e4SChen PJ&sgpiom0 {
353*3f2879e4SChen PJ	status = "okay";
354*3f2879e4SChen PJ	ngpios = <64>;
355*3f2879e4SChen PJ	bus-frequency = <1000000>;
356*3f2879e4SChen PJ};
357*3f2879e4SChen PJ
358*3f2879e4SChen PJ&lpc_snoop {
359*3f2879e4SChen PJ	status = "okay";
360*3f2879e4SChen PJ	snoop-ports = <0x80>;
361*3f2879e4SChen PJ};
362*3f2879e4SChen PJ
363*3f2879e4SChen PJ&emmc_controller {
364*3f2879e4SChen PJ	status = "okay";
365*3f2879e4SChen PJ};
366*3f2879e4SChen PJ
367*3f2879e4SChen PJ&emmc {
368*3f2879e4SChen PJ	status = "okay";
369*3f2879e4SChen PJ	non-removable;
370*3f2879e4SChen PJ	max-frequency = <52000000>;
371*3f2879e4SChen PJ	bus-width = <8>;
372*3f2879e4SChen PJ};
373*3f2879e4SChen PJ
374*3f2879e4SChen PJ&video {
375*3f2879e4SChen PJ	status = "okay";
376*3f2879e4SChen PJ	memory-region = <&video_engine_memory>;
377*3f2879e4SChen PJ};
378*3f2879e4SChen PJ
379*3f2879e4SChen PJ&vhub {
380*3f2879e4SChen PJ	status = "okay";
381*3f2879e4SChen PJ	aspeed,vhub-downstream-ports = <7>;
382*3f2879e4SChen PJ	aspeed,vhub-generic-endpoints = <21>;
383*3f2879e4SChen PJ	pinctrl-names = "default";
384*3f2879e4SChen PJ	pinctrl-0 = <&pinctrl_usb2ad_default>;
385*3f2879e4SChen PJ};
386*3f2879e4SChen PJ
387*3f2879e4SChen PJ&rtc {
388*3f2879e4SChen PJ	status = "okay";
389*3f2879e4SChen PJ};
390