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
66e9557c8cSZev Weiss&uart1 {
67e9557c8cSZev Weiss	status = "okay";
68e9557c8cSZev Weiss};
69e9557c8cSZev Weiss
70e9557c8cSZev Weiss&uart2 {
71e9557c8cSZev Weiss	status = "okay";
72e9557c8cSZev Weiss};
73e9557c8cSZev Weiss
74e9557c8cSZev Weiss&uart3 {
75e9557c8cSZev Weiss	status = "okay";
76e9557c8cSZev Weiss};
77e9557c8cSZev Weiss
78e9557c8cSZev Weiss&uart4 {
79e9557c8cSZev Weiss	status = "okay";
80e9557c8cSZev Weiss};
81e9557c8cSZev Weiss
82e9557c8cSZev Weiss&uart5 {
83e9557c8cSZev Weiss	status = "okay";
84e9557c8cSZev Weiss};
85e9557c8cSZev Weiss
86e9557c8cSZev Weiss&uart_routing {
87e9557c8cSZev Weiss	status = "okay";
88e9557c8cSZev Weiss};
89e9557c8cSZev Weiss
90e9557c8cSZev Weiss&mac0 {
91e9557c8cSZev Weiss	status = "okay";
92e9557c8cSZev Weiss
93e9557c8cSZev Weiss	pinctrl-names = "default";
94e9557c8cSZev Weiss	pinctrl-0 = <&pinctrl_rgmii1_default &pinctrl_mdio1_default>;
95e9557c8cSZev Weiss
96e9557c8cSZev Weiss	nvmem-cells = <&eth0_macaddress>;
97e9557c8cSZev Weiss	nvmem-cell-names = "mac-address";
98e9557c8cSZev Weiss};
99e9557c8cSZev Weiss
100e9557c8cSZev Weiss&i2c0 {
101e9557c8cSZev Weiss	status = "okay";
102e9557c8cSZev Weiss};
103e9557c8cSZev Weiss
104e9557c8cSZev Weiss&i2c1 {
105e9557c8cSZev Weiss	status = "okay";
106e9557c8cSZev Weiss};
107e9557c8cSZev Weiss
108e9557c8cSZev Weiss&i2c2 {
109e9557c8cSZev Weiss	status = "okay";
110e9557c8cSZev Weiss
111e9557c8cSZev Weiss	i2c-mux@70 {
112e9557c8cSZev Weiss		compatible = "nxp,pca9545";
113e9557c8cSZev Weiss		reg = <0x70>;
114e9557c8cSZev Weiss		#address-cells = <1>;
115e9557c8cSZev Weiss		#size-cells = <0>;
116e9557c8cSZev Weiss
117e9557c8cSZev Weiss		i2c2mux0ch0: i2c@0 {
118e9557c8cSZev Weiss			#address-cells = <1>;
119e9557c8cSZev Weiss			#size-cells = <0>;
120e9557c8cSZev Weiss			reg = <0>;
121e9557c8cSZev Weiss		};
122e9557c8cSZev Weiss
123e9557c8cSZev Weiss		i2c2mux0ch1: i2c@1 {
124e9557c8cSZev Weiss			#address-cells = <1>;
125e9557c8cSZev Weiss			#size-cells = <0>;
126e9557c8cSZev Weiss			reg = <1>;
127e9557c8cSZev Weiss		};
128e9557c8cSZev Weiss
129e9557c8cSZev Weiss		i2c2mux0ch2: i2c@2 {
130e9557c8cSZev Weiss			#address-cells = <1>;
131e9557c8cSZev Weiss			#size-cells = <0>;
132e9557c8cSZev Weiss			reg = <2>;
133e9557c8cSZev Weiss		};
134e9557c8cSZev Weiss
135e9557c8cSZev Weiss		i2c2mux0ch3: i2c@3 {
136e9557c8cSZev Weiss			#address-cells = <1>;
137e9557c8cSZev Weiss			#size-cells = <0>;
138e9557c8cSZev Weiss			reg = <3>;
139e9557c8cSZev Weiss		};
140e9557c8cSZev Weiss	};
141e9557c8cSZev Weiss};
142e9557c8cSZev Weiss
143e9557c8cSZev Weiss&i2c3 {
144e9557c8cSZev Weiss	status = "okay";
145e9557c8cSZev Weiss};
146e9557c8cSZev Weiss
147e9557c8cSZev Weiss&i2c4 {
148e9557c8cSZev Weiss	status = "okay";
149e9557c8cSZev Weiss};
150e9557c8cSZev Weiss
151e9557c8cSZev Weiss&i2c5 {
152e9557c8cSZev Weiss	status = "okay";
153e9557c8cSZev Weiss};
154e9557c8cSZev Weiss
155e9557c8cSZev Weiss&i2c6 {
156e9557c8cSZev Weiss	status = "okay";
157e9557c8cSZev Weiss};
158e9557c8cSZev Weiss
159e9557c8cSZev Weiss&i2c7 {
160e9557c8cSZev Weiss	status = "okay";
161e9557c8cSZev Weiss};
162e9557c8cSZev Weiss
163e9557c8cSZev Weiss&i2c9 {
164e9557c8cSZev Weiss	status = "okay";
165e9557c8cSZev Weiss};
166e9557c8cSZev Weiss
167e9557c8cSZev Weiss&i2c10 {
168e9557c8cSZev Weiss	status = "okay";
169e9557c8cSZev Weiss};
170e9557c8cSZev Weiss
171e9557c8cSZev Weiss&i2c11 {
172e9557c8cSZev Weiss	status = "okay";
173e9557c8cSZev Weiss
174e9557c8cSZev Weiss	vrm@60 {
175e9557c8cSZev Weiss		compatible = "renesas,isl69269", "isl69269";
176e9557c8cSZev Weiss		reg = <0x60>;
177e9557c8cSZev Weiss	};
178e9557c8cSZev Weiss};
179e9557c8cSZev Weiss
180e9557c8cSZev Weiss&i2c12 {
181e9557c8cSZev Weiss	status = "okay";
182e9557c8cSZev Weiss
183e9557c8cSZev Weiss	/* FRU eeprom */
184e9557c8cSZev Weiss	eeprom@57 {
185e9557c8cSZev Weiss		compatible = "st,24c128", "atmel,24c128";
186e9557c8cSZev Weiss		#address-cells = <1>;
187e9557c8cSZev Weiss		#size-cells = <1>;
188e9557c8cSZev Weiss		reg = <0x57>;
189e9557c8cSZev Weiss		pagesize = <16>;
190e9557c8cSZev Weiss
191e9557c8cSZev Weiss		eth0_macaddress: macaddress@3f80 {
192e9557c8cSZev Weiss			reg = <0x3f80 6>;
193e9557c8cSZev Weiss		};
194e9557c8cSZev Weiss	};
195e9557c8cSZev Weiss};
196e9557c8cSZev Weiss
197e9557c8cSZev Weiss&video {
198e9557c8cSZev Weiss	status = "okay";
199e9557c8cSZev Weiss};
200e9557c8cSZev Weiss
201e9557c8cSZev Weiss&vhub {
202e9557c8cSZev Weiss	status = "okay";
203e9557c8cSZev Weiss};
204e9557c8cSZev Weiss
205e9557c8cSZev Weiss&lpc_ctrl {
206e9557c8cSZev Weiss	status = "okay";
207e9557c8cSZev Weiss};
208e9557c8cSZev Weiss
209e9557c8cSZev Weiss&lpc_snoop {
210e9557c8cSZev Weiss	status = "okay";
211e9557c8cSZev Weiss	snoop-ports = <0x80>;
212e9557c8cSZev Weiss};
213e9557c8cSZev Weiss
214e9557c8cSZev Weiss&kcs3 {
215e9557c8cSZev Weiss	status = "okay";
216e9557c8cSZev Weiss	aspeed,lpc-io-reg = <0xca2>;
217e9557c8cSZev Weiss};
218e9557c8cSZev Weiss
219e9557c8cSZev Weiss&peci0 {
220e9557c8cSZev Weiss	status = "okay";
221e9557c8cSZev Weiss};
222e9557c8cSZev Weiss
223e9557c8cSZev Weiss&wdt1 {
224e9557c8cSZev Weiss	aspeed,reset-mask = <(AST2500_WDT_RESET_DEFAULT & ~AST2500_WDT_RESET_LPC)>;
225e9557c8cSZev Weiss};
226e9557c8cSZev Weiss
227e9557c8cSZev Weiss&wdt2 {
228e9557c8cSZev Weiss	aspeed,reset-mask = <(AST2500_WDT_RESET_DEFAULT & ~AST2500_WDT_RESET_LPC)>;
229e9557c8cSZev Weiss};
230e9557c8cSZev Weiss
231e9557c8cSZev Weiss&pwm_tacho {
232e9557c8cSZev Weiss	status = "okay";
233e9557c8cSZev Weiss	pinctrl-names = "default";
234e9557c8cSZev Weiss	pinctrl-0 = <&pinctrl_pwm0_default /* CPU */
235e9557c8cSZev Weiss		&pinctrl_pwm2_default      /* rear */
236e9557c8cSZev Weiss		&pinctrl_pwm4_default>;    /* front */
237e9557c8cSZev Weiss
238e9557c8cSZev Weiss	/* CPU */
239e9557c8cSZev Weiss	fan@0 {
240e9557c8cSZev Weiss		reg = <0x00>;
241e9557c8cSZev Weiss		aspeed,fan-tach-ch = /bits/ 8 <0x00>;
242e9557c8cSZev Weiss	};
243e9557c8cSZev Weiss
244e9557c8cSZev Weiss	/* rear */
245e9557c8cSZev Weiss	fan@2 {
246e9557c8cSZev Weiss		reg = <0x02>;
247e9557c8cSZev Weiss		aspeed,fan-tach-ch = /bits/ 8 <0x02>;
248e9557c8cSZev Weiss	};
249e9557c8cSZev Weiss
250e9557c8cSZev Weiss	/* front */
251e9557c8cSZev Weiss	fan@4 {
252e9557c8cSZev Weiss		reg = <0x04>;
253e9557c8cSZev Weiss		aspeed,fan-tach-ch = /bits/ 8 <0x04>;
254e9557c8cSZev Weiss	};
255e9557c8cSZev Weiss};
256e9557c8cSZev Weiss
257e9557c8cSZev Weiss&gpio {
258e9557c8cSZev Weiss	status = "okay";
259e9557c8cSZev Weiss	gpio-line-names =
260e9557c8cSZev Weiss		/*  A */ "", "", "NMI_BTN_N", "BMC_NMI", "", "", "", "",
261e9557c8cSZev Weiss		/*  B */ "", "", "", "", "", "", "", "",
262e9557c8cSZev Weiss		/*  C */ "", "", "", "", "", "", "", "",
263e9557c8cSZev Weiss		/*  D */ "BMC_PSIN", "BMC_PSOUT", "BMC_RESETCON", "RESETCON",
264e9557c8cSZev Weiss			"", "", "", "",
265e9557c8cSZev Weiss		/*  E */ "", "", "", "", "", "", "", "",
266e9557c8cSZev Weiss		/*  F */ "LOCATORLED_STATUS_N", "LOCATORBTN", "", "",
267e9557c8cSZev Weiss			"", "", "BMC_PCH_SCI_LPC", "BMC_NCSI_MUX_CTL",
268e9557c8cSZev Weiss		/*  G */ "HWM_BAT_EN", "CHASSIS_ID0", "CHASSIS_ID1", "CHASSIS_ID2",
269e9557c8cSZev Weiss			"", "", "", "",
270e9557c8cSZev Weiss		/*  H */ "FM_ME_RCVR_N", "O_PWROK", "", "D4_DIMM_EVENT_3V_N",
271e9557c8cSZev Weiss			"MFG_MODE_N", "BMC_RTCRST", "BMC_HB_LED_N", "BMC_CASEOPEN",
272e9557c8cSZev Weiss		/*  I */ "", "", "", "", "", "", "", "",
273e9557c8cSZev Weiss		/*  J */ "BMC_READY", "BMC_PCH_BIOS_CS_N", "BMC_SMI", "", "", "", "", "",
274e9557c8cSZev Weiss		/*  K */ "", "", "", "", "", "", "", "",
275e9557c8cSZev Weiss		/*  L */ "", "", "", "", "", "", "", "",
276e9557c8cSZev Weiss		/*  M */ "", "", "", "", "", "", "", "",
277e9557c8cSZev Weiss		/*  N */ "", "", "", "", "", "", "", "",
278e9557c8cSZev Weiss		/*  O */ "", "", "", "", "", "", "", "",
279e9557c8cSZev Weiss		/*  P */ "", "", "", "", "", "", "", "",
280e9557c8cSZev Weiss		/*  Q */ "", "", "", "", "", "", "", "",
281e9557c8cSZev Weiss		/*  R */ "", "", "", "", "", "", "", "",
282e9557c8cSZev Weiss		/*  S */ "PCHHOT_BMC_N", "", "RSMRST", "", "", "", "", "",
283e9557c8cSZev Weiss		/*  T */ "", "", "", "", "", "", "", "",
284e9557c8cSZev Weiss		/*  U */ "", "", "", "", "", "", "", "",
285e9557c8cSZev Weiss		/*  V */ "", "", "", "", "", "", "", "",
286e9557c8cSZev Weiss		/*  W */ "", "", "", "", "", "", "", "",
287e9557c8cSZev Weiss		/*  X */ "", "", "", "", "", "", "", "",
288e9557c8cSZev Weiss		/*  Y */ "SLP_S3", "SLP_S5", "", "", "", "", "", "",
289e9557c8cSZev Weiss		/*  Z */ "CPU_CATERR_BMC_N", "", "SYSTEM_FAULT_LED_N", "BMC_THROTTLE_N",
290e9557c8cSZev Weiss			"", "", "", "",
291e9557c8cSZev Weiss		/* AA */ "CPU1_THERMTRIP_LATCH_N", "", "CPU1_PROCHOT_N", "",
292e9557c8cSZev Weiss			"", "", "IRQ_SMI_ACTIVE_N", "FM_BIOS_POST_CMPLT_N",
293e9557c8cSZev Weiss		/* AB */ "", "", "ME_OVERRIDE", "BMC_DMI_MODIFY", "", "", "", "",
294e9557c8cSZev Weiss		/* AC */ "", "", "", "", "", "", "", "";
295e9557c8cSZev Weiss};
296e9557c8cSZev Weiss
297e9557c8cSZev Weiss&adc {
298e9557c8cSZev Weiss	status = "okay";
299e9557c8cSZev Weiss	pinctrl-names = "default";
300e9557c8cSZev Weiss	pinctrl-0 = <&pinctrl_adc0_default /* 3VSB */
301e9557c8cSZev Weiss		&pinctrl_adc1_default	   /* 5VSB */
302e9557c8cSZev Weiss		&pinctrl_adc2_default	   /* CPU1 */
303e9557c8cSZev Weiss		&pinctrl_adc3_default	   /* VCCSA */
304e9557c8cSZev Weiss		&pinctrl_adc4_default	   /* VCCM */
305e9557c8cSZev Weiss		&pinctrl_adc5_default	   /* V10M */
306e9557c8cSZev Weiss		&pinctrl_adc6_default	   /* VCCIO */
307e9557c8cSZev Weiss		&pinctrl_adc7_default	   /* VCCGT */
308e9557c8cSZev Weiss		&pinctrl_adc8_default	   /* VPPM */
309e9557c8cSZev Weiss		&pinctrl_adc9_default	   /* BAT */
310e9557c8cSZev Weiss		&pinctrl_adc10_default	   /* 3V */
311e9557c8cSZev Weiss		&pinctrl_adc11_default	   /* 5V */
312e9557c8cSZev Weiss		&pinctrl_adc12_default	   /* 12V */
313e9557c8cSZev Weiss		&pinctrl_adc13_default	   /* GND */
314e9557c8cSZev Weiss		&pinctrl_adc14_default	   /* GND */
315e9557c8cSZev Weiss		&pinctrl_adc15_default>;   /* GND */
316e9557c8cSZev Weiss};
317