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