1e9557c8cSZev Weiss// SPDX-License-Identifier: GPL-2.0+
2e9557c8cSZev Weiss/dts-v1/;
3e9557c8cSZev Weiss
4e9557c8cSZev Weiss#include "aspeed-g5.dtsi"
5e9557c8cSZev Weiss#include <dt-bindings/gpio/aspeed-gpio.h>
6e9557c8cSZev Weiss#include <dt-bindings/i2c/i2c.h>
7e9557c8cSZev Weiss#include <dt-bindings/interrupt-controller/irq.h>
8e9557c8cSZev Weiss#include <dt-bindings/watchdog/aspeed-wdt.h>
9e9557c8cSZev Weiss
10e9557c8cSZev Weiss/{
11e9557c8cSZev Weiss	model = "ASRock E3C256D4I BMC";
12e9557c8cSZev Weiss	compatible = "asrock,e3c256d4i-bmc", "aspeed,ast2500";
13e9557c8cSZev Weiss
14e9557c8cSZev Weiss	aliases {
15e9557c8cSZev Weiss		serial4 = &uart5;
16e9557c8cSZev Weiss
17e9557c8cSZev Weiss		i2c20 = &i2c2mux0ch0;
18e9557c8cSZev Weiss		i2c21 = &i2c2mux0ch1;
19e9557c8cSZev Weiss		i2c22 = &i2c2mux0ch2;
20e9557c8cSZev Weiss		i2c23 = &i2c2mux0ch3;
21e9557c8cSZev Weiss	};
22e9557c8cSZev Weiss
23e9557c8cSZev Weiss	chosen {
24e9557c8cSZev Weiss		stdout-path = &uart5;
25e9557c8cSZev Weiss		bootargs = "console=tty0 console=ttyS4,115200 earlycon";
26e9557c8cSZev Weiss	};
27e9557c8cSZev Weiss
28e9557c8cSZev Weiss	memory@80000000 {
29e9557c8cSZev Weiss		reg = <0x80000000 0x20000000>;
30e9557c8cSZev Weiss	};
31e9557c8cSZev Weiss
32e9557c8cSZev Weiss	leds {
33e9557c8cSZev Weiss		compatible = "gpio-leds";
34e9557c8cSZev Weiss
35e9557c8cSZev Weiss		heartbeat {
36e9557c8cSZev Weiss			gpios = <&gpio ASPEED_GPIO(H, 6) GPIO_ACTIVE_LOW>;
37e9557c8cSZev Weiss			linux,default-trigger = "timer";
38e9557c8cSZev Weiss		};
39e9557c8cSZev Weiss
40e9557c8cSZev Weiss		system-fault {
41e9557c8cSZev Weiss			gpios = <&gpio ASPEED_GPIO(Z, 2) GPIO_ACTIVE_LOW>;
42e9557c8cSZev Weiss			panic-indicator;
43e9557c8cSZev Weiss		};
44e9557c8cSZev Weiss	};
45e9557c8cSZev Weiss
46e9557c8cSZev Weiss	iio-hwmon {
47e9557c8cSZev Weiss		compatible = "iio-hwmon";
48e9557c8cSZev Weiss		io-channels = <&adc 0>, <&adc 1>, <&adc 2>, <&adc 3>,
49e9557c8cSZev Weiss			<&adc 4>, <&adc 5>, <&adc 6>, <&adc 7>,
50e9557c8cSZev Weiss			<&adc 8>, <&adc 9>, <&adc 10>, <&adc 11>,
51e9557c8cSZev Weiss			<&adc 12>, <&adc 13>, <&adc 14>, <&adc 15>;
52e9557c8cSZev Weiss	};
53e9557c8cSZev Weiss};
54e9557c8cSZev Weiss
55e9557c8cSZev Weiss&fmc {
56e9557c8cSZev Weiss	status = "okay";
57e9557c8cSZev Weiss	flash@0 {
58e9557c8cSZev Weiss		status = "okay";
59e9557c8cSZev Weiss		m25p,fast-read;
60e9557c8cSZev Weiss		label = "bmc";
61e9557c8cSZev Weiss		spi-max-frequency = <100000000>; /* 100 MHz */
62e9557c8cSZev Weiss#include "openbmc-flash-layout-64.dtsi"
63e9557c8cSZev Weiss	};
64e9557c8cSZev Weiss};
65e9557c8cSZev Weiss
66cdeefb40SZev Weiss&spi1 {
67cdeefb40SZev Weiss	status = "okay";
68cdeefb40SZev Weiss	pinctrl-names = "default";
69cdeefb40SZev Weiss	pinctrl-0 = <&pinctrl_spi1_default>;
70cdeefb40SZev Weiss	flash@0 {
71cdeefb40SZev Weiss		status = "okay";
72cdeefb40SZev Weiss		label = "bios";
73cdeefb40SZev Weiss		m25p,fast-read;
74cdeefb40SZev Weiss		spi-max-frequency = <25000000>; /* 25 MHz */
75cdeefb40SZev Weiss	};
76cdeefb40SZev Weiss};
77cdeefb40SZev Weiss
78e9557c8cSZev Weiss&uart1 {
79e9557c8cSZev Weiss	status = "okay";
80e9557c8cSZev Weiss};
81e9557c8cSZev Weiss
82e9557c8cSZev Weiss&uart2 {
83e9557c8cSZev Weiss	status = "okay";
84e9557c8cSZev Weiss};
85e9557c8cSZev Weiss
86e9557c8cSZev Weiss&uart3 {
87e9557c8cSZev Weiss	status = "okay";
88e9557c8cSZev Weiss};
89e9557c8cSZev Weiss
90e9557c8cSZev Weiss&uart4 {
91e9557c8cSZev Weiss	status = "okay";
92e9557c8cSZev Weiss};
93e9557c8cSZev Weiss
94e9557c8cSZev Weiss&uart5 {
95e9557c8cSZev Weiss	status = "okay";
96e9557c8cSZev Weiss};
97e9557c8cSZev Weiss
98e9557c8cSZev Weiss&uart_routing {
99e9557c8cSZev Weiss	status = "okay";
100e9557c8cSZev Weiss};
101e9557c8cSZev Weiss
102e9557c8cSZev Weiss&mac0 {
103e9557c8cSZev Weiss	status = "okay";
104e9557c8cSZev Weiss
105e9557c8cSZev Weiss	pinctrl-names = "default";
106e9557c8cSZev Weiss	pinctrl-0 = <&pinctrl_rgmii1_default &pinctrl_mdio1_default>;
107e9557c8cSZev Weiss
108e9557c8cSZev Weiss	nvmem-cells = <&eth0_macaddress>;
109e9557c8cSZev Weiss	nvmem-cell-names = "mac-address";
110e9557c8cSZev Weiss};
111e9557c8cSZev Weiss
112e9557c8cSZev Weiss&i2c0 {
113e9557c8cSZev Weiss	status = "okay";
114e9557c8cSZev Weiss};
115e9557c8cSZev Weiss
116e9557c8cSZev Weiss&i2c1 {
117e9557c8cSZev Weiss	status = "okay";
118e9557c8cSZev Weiss};
119e9557c8cSZev Weiss
120e9557c8cSZev Weiss&i2c2 {
121e9557c8cSZev Weiss	status = "okay";
122e9557c8cSZev Weiss
123e9557c8cSZev Weiss	i2c-mux@70 {
124e9557c8cSZev Weiss		compatible = "nxp,pca9545";
125e9557c8cSZev Weiss		reg = <0x70>;
126e9557c8cSZev Weiss		#address-cells = <1>;
127e9557c8cSZev Weiss		#size-cells = <0>;
128e9557c8cSZev Weiss
129e9557c8cSZev Weiss		i2c2mux0ch0: i2c@0 {
130e9557c8cSZev Weiss			#address-cells = <1>;
131e9557c8cSZev Weiss			#size-cells = <0>;
132e9557c8cSZev Weiss			reg = <0>;
133e9557c8cSZev Weiss		};
134e9557c8cSZev Weiss
135e9557c8cSZev Weiss		i2c2mux0ch1: i2c@1 {
136e9557c8cSZev Weiss			#address-cells = <1>;
137e9557c8cSZev Weiss			#size-cells = <0>;
138e9557c8cSZev Weiss			reg = <1>;
139e9557c8cSZev Weiss		};
140e9557c8cSZev Weiss
141e9557c8cSZev Weiss		i2c2mux0ch2: i2c@2 {
142e9557c8cSZev Weiss			#address-cells = <1>;
143e9557c8cSZev Weiss			#size-cells = <0>;
144e9557c8cSZev Weiss			reg = <2>;
145e9557c8cSZev Weiss		};
146e9557c8cSZev Weiss
147e9557c8cSZev Weiss		i2c2mux0ch3: i2c@3 {
148e9557c8cSZev Weiss			#address-cells = <1>;
149e9557c8cSZev Weiss			#size-cells = <0>;
150e9557c8cSZev Weiss			reg = <3>;
151e9557c8cSZev Weiss		};
152e9557c8cSZev Weiss	};
153e9557c8cSZev Weiss};
154e9557c8cSZev Weiss
155e9557c8cSZev Weiss&i2c3 {
156e9557c8cSZev Weiss	status = "okay";
157e9557c8cSZev Weiss};
158e9557c8cSZev Weiss
159e9557c8cSZev Weiss&i2c4 {
160e9557c8cSZev Weiss	status = "okay";
161e9557c8cSZev Weiss};
162e9557c8cSZev Weiss
163e9557c8cSZev Weiss&i2c5 {
164e9557c8cSZev Weiss	status = "okay";
165e9557c8cSZev Weiss};
166e9557c8cSZev Weiss
167e9557c8cSZev Weiss&i2c6 {
168e9557c8cSZev Weiss	status = "okay";
169e9557c8cSZev Weiss};
170e9557c8cSZev Weiss
171e9557c8cSZev Weiss&i2c7 {
172e9557c8cSZev Weiss	status = "okay";
173e9557c8cSZev Weiss};
174e9557c8cSZev Weiss
175e9557c8cSZev Weiss&i2c9 {
176e9557c8cSZev Weiss	status = "okay";
177e9557c8cSZev Weiss};
178e9557c8cSZev Weiss
179e9557c8cSZev Weiss&i2c10 {
180e9557c8cSZev Weiss	status = "okay";
181e9557c8cSZev Weiss};
182e9557c8cSZev Weiss
183e9557c8cSZev Weiss&i2c11 {
184e9557c8cSZev Weiss	status = "okay";
185e9557c8cSZev Weiss
186e9557c8cSZev Weiss	vrm@60 {
187e9557c8cSZev Weiss		compatible = "renesas,isl69269", "isl69269";
188e9557c8cSZev Weiss		reg = <0x60>;
189e9557c8cSZev Weiss	};
190e9557c8cSZev Weiss};
191e9557c8cSZev Weiss
192e9557c8cSZev Weiss&i2c12 {
193e9557c8cSZev Weiss	status = "okay";
194e9557c8cSZev Weiss
195e9557c8cSZev Weiss	/* FRU eeprom */
196e9557c8cSZev Weiss	eeprom@57 {
197e9557c8cSZev Weiss		compatible = "st,24c128", "atmel,24c128";
198e9557c8cSZev Weiss		#address-cells = <1>;
199e9557c8cSZev Weiss		#size-cells = <1>;
200e9557c8cSZev Weiss		reg = <0x57>;
201e9557c8cSZev Weiss		pagesize = <16>;
202e9557c8cSZev Weiss
203e9557c8cSZev Weiss		eth0_macaddress: macaddress@3f80 {
204e9557c8cSZev Weiss			reg = <0x3f80 6>;
205e9557c8cSZev Weiss		};
206e9557c8cSZev Weiss	};
207e9557c8cSZev Weiss};
208e9557c8cSZev Weiss
209e9557c8cSZev Weiss&video {
210e9557c8cSZev Weiss	status = "okay";
211e9557c8cSZev Weiss};
212e9557c8cSZev Weiss
213e9557c8cSZev Weiss&vhub {
214e9557c8cSZev Weiss	status = "okay";
215e9557c8cSZev Weiss};
216e9557c8cSZev Weiss
217e9557c8cSZev Weiss&lpc_ctrl {
218e9557c8cSZev Weiss	status = "okay";
219e9557c8cSZev Weiss};
220e9557c8cSZev Weiss
221e9557c8cSZev Weiss&lpc_snoop {
222e9557c8cSZev Weiss	status = "okay";
223e9557c8cSZev Weiss	snoop-ports = <0x80>;
224e9557c8cSZev Weiss};
225e9557c8cSZev Weiss
226e9557c8cSZev Weiss&kcs3 {
227e9557c8cSZev Weiss	status = "okay";
228e9557c8cSZev Weiss	aspeed,lpc-io-reg = <0xca2>;
229e9557c8cSZev Weiss};
230e9557c8cSZev Weiss
231e9557c8cSZev Weiss&peci0 {
232e9557c8cSZev Weiss	status = "okay";
233e9557c8cSZev Weiss};
234e9557c8cSZev Weiss
235e9557c8cSZev Weiss&wdt1 {
236e9557c8cSZev Weiss	aspeed,reset-mask = <(AST2500_WDT_RESET_DEFAULT & ~AST2500_WDT_RESET_LPC)>;
237e9557c8cSZev Weiss};
238e9557c8cSZev Weiss
239e9557c8cSZev Weiss&wdt2 {
240e9557c8cSZev Weiss	aspeed,reset-mask = <(AST2500_WDT_RESET_DEFAULT & ~AST2500_WDT_RESET_LPC)>;
241e9557c8cSZev Weiss};
242e9557c8cSZev Weiss
243e9557c8cSZev Weiss&pwm_tacho {
244e9557c8cSZev Weiss	status = "okay";
245e9557c8cSZev Weiss	pinctrl-names = "default";
246e9557c8cSZev Weiss	pinctrl-0 = <&pinctrl_pwm0_default /* CPU */
247e9557c8cSZev Weiss		&pinctrl_pwm2_default      /* rear */
248e9557c8cSZev Weiss		&pinctrl_pwm4_default>;    /* front */
249e9557c8cSZev Weiss
250e9557c8cSZev Weiss	/* CPU */
251e9557c8cSZev Weiss	fan@0 {
252e9557c8cSZev Weiss		reg = <0x00>;
253e9557c8cSZev Weiss		aspeed,fan-tach-ch = /bits/ 8 <0x00>;
254e9557c8cSZev Weiss	};
255e9557c8cSZev Weiss
256e9557c8cSZev Weiss	/* rear */
257e9557c8cSZev Weiss	fan@2 {
258e9557c8cSZev Weiss		reg = <0x02>;
259e9557c8cSZev Weiss		aspeed,fan-tach-ch = /bits/ 8 <0x02>;
260e9557c8cSZev Weiss	};
261e9557c8cSZev Weiss
262e9557c8cSZev Weiss	/* front */
263e9557c8cSZev Weiss	fan@4 {
264e9557c8cSZev Weiss		reg = <0x04>;
265e9557c8cSZev Weiss		aspeed,fan-tach-ch = /bits/ 8 <0x04>;
266e9557c8cSZev Weiss	};
267e9557c8cSZev Weiss};
268e9557c8cSZev Weiss
269e9557c8cSZev Weiss&gpio {
270e9557c8cSZev Weiss	status = "okay";
271e9557c8cSZev Weiss	gpio-line-names =
272e9557c8cSZev Weiss		/*  A */ "", "", "NMI_BTN_N", "BMC_NMI", "", "", "", "",
273e9557c8cSZev Weiss		/*  B */ "", "", "", "", "", "", "", "",
274e9557c8cSZev Weiss		/*  C */ "", "", "", "", "", "", "", "",
275e9557c8cSZev Weiss		/*  D */ "BMC_PSIN", "BMC_PSOUT", "BMC_RESETCON", "RESETCON",
276e9557c8cSZev Weiss			"", "", "", "",
277e9557c8cSZev Weiss		/*  E */ "", "", "", "", "", "", "", "",
278e9557c8cSZev Weiss		/*  F */ "LOCATORLED_STATUS_N", "LOCATORBTN", "", "",
279e9557c8cSZev Weiss			"", "", "BMC_PCH_SCI_LPC", "BMC_NCSI_MUX_CTL",
280e9557c8cSZev Weiss		/*  G */ "HWM_BAT_EN", "CHASSIS_ID0", "CHASSIS_ID1", "CHASSIS_ID2",
281e9557c8cSZev Weiss			"", "", "", "",
282e9557c8cSZev Weiss		/*  H */ "FM_ME_RCVR_N", "O_PWROK", "", "D4_DIMM_EVENT_3V_N",
283e9557c8cSZev Weiss			"MFG_MODE_N", "BMC_RTCRST", "BMC_HB_LED_N", "BMC_CASEOPEN",
284e9557c8cSZev Weiss		/*  I */ "", "", "", "", "", "", "", "",
285e9557c8cSZev Weiss		/*  J */ "BMC_READY", "BMC_PCH_BIOS_CS_N", "BMC_SMI", "", "", "", "", "",
286e9557c8cSZev Weiss		/*  K */ "", "", "", "", "", "", "", "",
287e9557c8cSZev Weiss		/*  L */ "", "", "", "", "", "", "", "",
288e9557c8cSZev Weiss		/*  M */ "", "", "", "", "", "", "", "",
289e9557c8cSZev Weiss		/*  N */ "", "", "", "", "", "", "", "",
290e9557c8cSZev Weiss		/*  O */ "", "", "", "", "", "", "", "",
291e9557c8cSZev Weiss		/*  P */ "", "", "", "", "", "", "", "",
292e9557c8cSZev Weiss		/*  Q */ "", "", "", "", "", "", "", "",
293e9557c8cSZev Weiss		/*  R */ "", "", "", "", "", "", "", "",
294e9557c8cSZev Weiss		/*  S */ "PCHHOT_BMC_N", "", "RSMRST", "", "", "", "", "",
295e9557c8cSZev Weiss		/*  T */ "", "", "", "", "", "", "", "",
296e9557c8cSZev Weiss		/*  U */ "", "", "", "", "", "", "", "",
297e9557c8cSZev Weiss		/*  V */ "", "", "", "", "", "", "", "",
298e9557c8cSZev Weiss		/*  W */ "", "", "", "", "", "", "", "",
299e9557c8cSZev Weiss		/*  X */ "", "", "", "", "", "", "", "",
300e9557c8cSZev Weiss		/*  Y */ "SLP_S3", "SLP_S5", "", "", "", "", "", "",
301e9557c8cSZev Weiss		/*  Z */ "CPU_CATERR_BMC_N", "", "SYSTEM_FAULT_LED_N", "BMC_THROTTLE_N",
302e9557c8cSZev Weiss			"", "", "", "",
303e9557c8cSZev Weiss		/* AA */ "CPU1_THERMTRIP_LATCH_N", "", "CPU1_PROCHOT_N", "",
304e9557c8cSZev Weiss			"", "", "IRQ_SMI_ACTIVE_N", "FM_BIOS_POST_CMPLT_N",
305e9557c8cSZev Weiss		/* AB */ "", "", "ME_OVERRIDE", "BMC_DMI_MODIFY", "", "", "", "",
306e9557c8cSZev Weiss		/* AC */ "", "", "", "", "", "", "", "";
307e9557c8cSZev Weiss};
308e9557c8cSZev Weiss
309e9557c8cSZev Weiss&adc {
310e9557c8cSZev Weiss	status = "okay";
311e9557c8cSZev Weiss	pinctrl-names = "default";
312e9557c8cSZev Weiss	pinctrl-0 = <&pinctrl_adc0_default /* 3VSB */
313e9557c8cSZev Weiss		&pinctrl_adc1_default	   /* 5VSB */
314e9557c8cSZev Weiss		&pinctrl_adc2_default	   /* CPU1 */
315e9557c8cSZev Weiss		&pinctrl_adc3_default	   /* VCCSA */
316e9557c8cSZev Weiss		&pinctrl_adc4_default	   /* VCCM */
317e9557c8cSZev Weiss		&pinctrl_adc5_default	   /* V10M */
318e9557c8cSZev Weiss		&pinctrl_adc6_default	   /* VCCIO */
319e9557c8cSZev Weiss		&pinctrl_adc7_default	   /* VCCGT */
320e9557c8cSZev Weiss		&pinctrl_adc8_default	   /* VPPM */
321e9557c8cSZev Weiss		&pinctrl_adc9_default	   /* BAT */
322e9557c8cSZev Weiss		&pinctrl_adc10_default	   /* 3V */
323e9557c8cSZev Weiss		&pinctrl_adc11_default	   /* 5V */
324e9557c8cSZev Weiss		&pinctrl_adc12_default	   /* 12V */
325e9557c8cSZev Weiss		&pinctrl_adc13_default	   /* GND */
326e9557c8cSZev Weiss		&pinctrl_adc14_default	   /* GND */
327e9557c8cSZev Weiss		&pinctrl_adc15_default>;   /* GND */
328e9557c8cSZev Weiss};
329