1// SPDX-License-Identifier: GPL-2.0+
2/dts-v1/;
3#include "aspeed-g5.dtsi"
4#include <dt-bindings/gpio/aspeed-gpio.h>
5#include <dt-bindings/leds/common.h>
6
7/ {
8	model = "Asrock Rack X570D4U BMC";
9	compatible = "asrock,x570d4u-bmc", "aspeed,ast2500";
10
11	aliases {
12		i2c40 = &i2c4mux0ch0;
13		i2c41 = &i2c4mux0ch1;
14		i2c42 = &i2c4mux0ch2;
15		i2c43 = &i2c4mux0ch3;
16	};
17
18	chosen {
19		stdout-path = &uart5;
20	};
21
22	memory@80000000 {
23		reg = <0x80000000 0x20000000>;
24	};
25
26	reserved-memory {
27		#address-cells = <1>;
28		#size-cells = <1>;
29		ranges;
30
31		pci_memory: region@9a000000 {
32			no-map;
33			reg = <0x9a000000 0x00010000>; /* 64K */
34		};
35
36		video_engine_memory: jpegbuffer {
37			size = <0x02800000>;	/* 40M */
38			alignment = <0x01000000>;
39			compatible = "shared-dma-pool";
40			reusable;
41		};
42
43		gfx_memory: framebuffer {
44			size = <0x01000000>;
45			alignment = <0x01000000>;
46			compatible = "shared-dma-pool";
47			reusable;
48		};
49	};
50
51	leds {
52		compatible = "gpio-leds";
53
54		led-0 {
55			/* led-heartbeat-n */
56			gpios = <&gpio ASPEED_GPIO(H, 6) GPIO_ACTIVE_LOW>;
57			color = <LED_COLOR_ID_GREEN>;
58			function = LED_FUNCTION_HEARTBEAT;
59			linux,default-trigger = "timer";
60		};
61
62		led-1 {
63			/* led-fault-n */
64			gpios = <&gpio ASPEED_GPIO(Z, 2) GPIO_ACTIVE_LOW>;
65			color = <LED_COLOR_ID_AMBER>;
66			function = LED_FUNCTION_FAULT;
67			panic-indicator;
68		};
69	};
70
71	iio-hwmon {
72		compatible = "iio-hwmon";
73		io-channels = <&adc 0>, <&adc 1>, <&adc 2>, <&adc 3>, <&adc 4>,
74			<&adc 5>, <&adc 6>, <&adc 7>, <&adc 8>, <&adc 9>,
75			<&adc 10>, <&adc 11>, <&adc 12>;
76	};
77};
78
79&gpio {
80	status = "okay";
81	gpio-line-names =
82	/*  A */ "input-locatorled-n", "", "", "", "", "", "", "",
83	/*  B */ "input-bios-post-cmplt-n", "", "", "", "", "", "", "",
84	/*  C */ "", "", "", "", "", "", "control-locatorbutton-n", "",
85	/*  D */ "button-power-n", "control-power-n", "button-reset-n",
86		 "control-reset-n", "", "", "", "",
87	/*  E */ "", "", "", "", "", "", "", "",
88	/*  F */ "", "", "", "", "", "", "", "",
89	/*  G */ "output-hwm-vbat-enable", "input-id0-n", "input-id1-n",
90		 "input-id2-n", "input-aux-smb-alert-n", "",
91		 "input-psu-smb-alert-n", "",
92	/*  H */ "", "", "", "", "input-mfg-mode-n", "",
93		 "led-heartbeat-n", "input-case-open-n",
94	/*  I */ "", "", "", "", "", "", "", "",
95	/*  J */ "output-bmc-ready-n", "", "", "", "", "", "", "",
96	/*  K */ "", "", "", "", "", "", "", "",
97	/*  L */ "", "", "", "", "", "", "", "",
98	/*  M */ "", "", "", "", "", "", "", "",
99	/*  N */ "", "", "", "", "", "", "", "",
100	/*  O */ "", "", "", "", "", "", "", "",
101	/*  P */ "", "", "", "", "", "", "", "",
102	/*  Q */ "", "", "", "", "input-bmc-smb-present-n", "", "",
103		 "input-pcie-wake-n",
104	/*  R */ "", "", "", "", "", "", "", "",
105	/*  S */ "input-bmc-pchhot-n", "", "", "", "", "", "", "",
106	/*  T */ "", "", "", "", "", "", "", "",
107	/*  U */ "", "", "", "", "", "", "", "",
108	/*  V */ "", "", "", "", "", "", "", "",
109	/*  W */ "", "", "", "", "", "", "", "",
110	/*  X */ "", "", "", "", "", "", "", "",
111	/*  Y */ "input-sleep-s3-n", "input-sleep-s5-n", "", "", "", "",
112		 "", "",
113	/*  Z */ "", "", "led-fault-n", "output-bmc-throttle-n", "", "",
114		 "", "",
115	/* AA */ "input-cpu1-thermtrip-latch-n", "",
116		 "input-cpu1-prochot-n", "", "", "", "", "",
117	/* AB */ "", "input-power-good", "", "", "", "", "", "",
118	/* AC */ "", "", "", "", "", "", "", "";
119};
120
121&fmc {
122	status = "okay";
123	flash@0 {
124		status = "okay";
125		label = "bmc";
126		m25p,fast-read;
127		spi-max-frequency = <10000000>;
128#include "openbmc-flash-layout-64.dtsi"
129	};
130};
131
132&uart5 {
133	status = "okay";
134};
135
136&vuart {
137	status = "okay";
138};
139
140&mac0 {
141	status = "okay";
142	pinctrl-names = "default";
143	pinctrl-0 = <&pinctrl_rgmii1_default &pinctrl_mdio1_default>;
144
145	nvmem-cells = <&eth0_macaddress>;
146	nvmem-cell-names = "mac-address";
147};
148
149&mac1 {
150	status = "okay";
151	pinctrl-names = "default";
152	pinctrl-0 = <&pinctrl_rmii2_default &pinctrl_mdio2_default>;
153	use-ncsi;
154
155	nvmem-cells = <&eth1_macaddress>;
156	nvmem-cell-names = "mac-address";
157};
158
159&i2c0 {
160	/* SMBus on auxiliary panel header (AUX_PANEL1) */
161	status = "okay";
162};
163
164&i2c1 {
165	/* Hardware monitoring SMBus */
166	status = "okay";
167
168	w83773g@4c {
169		compatible = "nuvoton,w83773g";
170		reg = <0x4c>;
171	};
172};
173
174&i2c2 {
175	/* PSU SMBus (PSU_SMB1) */
176	status = "okay";
177};
178
179&i2c3 {
180	status = "okay";
181};
182
183&i2c4 {
184	status = "okay";
185
186	i2c-mux@70 {
187		compatible = "nxp,pca9545";
188		reg = <0x70>;
189		#address-cells = <1>;
190		#size-cells = <0>;
191
192		i2c4mux0ch0: i2c@0 {
193			/* SMBus on PCI express 16x slot */
194			#address-cells = <1>;
195			#size-cells = <0>;
196			reg = <0>;
197		};
198
199		i2c4mux0ch1: i2c@1 {
200			/* SMBus on PCI express 8x slot */
201			#address-cells = <1>;
202			#size-cells = <0>;
203			reg = <1>;
204		};
205
206		i2c4mux0ch2: i2c@2 {
207			/* Unknown */
208			#address-cells = <1>;
209			#size-cells = <0>;
210			reg = <2>;
211		};
212
213		i2c4mux0ch3: i2c@3 {
214			/* SMBus on PCI express 1x slot */
215			#address-cells = <1>;
216			#size-cells = <0>;
217			reg = <3>;
218		};
219	};
220};
221
222&i2c5 {
223	/* SMBus on BMC connector (BMC_SMB_1) */
224	status = "okay";
225};
226
227&i2c7 {
228	/* FRU and SPD EEPROM SMBus */
229	status = "okay";
230
231	eeprom@57 {
232		compatible = "st,24c128", "atmel,24c128";
233		reg = <0x57>;
234		pagesize = <16>;
235		#address-cells = <1>;
236		#size-cells = <1>;
237
238		eth0_macaddress: macaddress@3f80 {
239			reg = <0x3f80 6>;
240		};
241
242		eth1_macaddress: macaddress@3f88 {
243			reg = <0x3f88 6>;
244		};
245	};
246};
247
248&i2c8 {
249	/* SMBus on intelligent platform management bus header (IPMB_1) */
250	status = "okay";
251};
252
253&gfx {
254	status = "okay";
255};
256
257&vhub {
258	status = "okay";
259};
260
261&ehci1 {
262	status = "okay";
263};
264
265&uhci {
266	status = "okay";
267};
268
269&kcs3 {
270	aspeed,lpc-io-reg = <0xca2>;
271	status = "okay";
272};
273
274&lpc_ctrl {
275	status = "okay";
276};
277
278&lpc_snoop {
279	status = "okay";
280	snoop-ports = <0x80>;
281};
282
283&p2a {
284	status = "okay";
285	memory-region = <&pci_memory>;
286};
287
288&video {
289	status = "okay";
290	memory-region = <&video_engine_memory>;
291};
292
293&pwm_tacho {
294	status = "okay";
295	pinctrl-names = "default";
296	pinctrl-0 = <&pinctrl_pwm0_default
297				&pinctrl_pwm1_default
298				&pinctrl_pwm2_default
299				&pinctrl_pwm3_default
300				&pinctrl_pwm4_default
301				&pinctrl_pwm5_default>;
302
303	fan@0 {
304		/* FAN1 (4-pin) */
305		reg = <0x00>;
306		aspeed,fan-tach-ch = /bits/ 8 <0x00>;
307	};
308
309	fan@1 {
310		/* FAN2 (4-pin) */
311		reg = <0x01>;
312		aspeed,fan-tach-ch = /bits/ 8 <0x01>;
313	};
314
315	fan@2 {
316		/* FAN3 (4-pin) */
317		reg = <0x02>;
318		aspeed,fan-tach-ch = /bits/ 8 <0x02>;
319	};
320
321	fan@3 {
322		/* FAN4 (6-pin) */
323		reg = <0x03>;
324		aspeed,fan-tach-ch = /bits/ 8 <0x04 0x0b>;
325	};
326
327	fan@4 {
328		/* FAN6 (6-pin) */
329		reg = <0x04>;
330		aspeed,fan-tach-ch = /bits/ 8 <0x06 0x0d>;
331	};
332
333	fan@5 {
334		/* FAN5 (6-pin) */
335		reg = <0x05>;
336		aspeed,fan-tach-ch = /bits/ 8 <0x05 0x0c>;
337	};
338};
339
340&adc {
341	status = "okay";
342	pinctrl-names = "default";
343	pinctrl-0 = <&pinctrl_adc0_default       /* 3VSB */
344			&pinctrl_adc1_default    /* 5VSB */
345			&pinctrl_adc2_default    /* VCPU */
346			&pinctrl_adc3_default    /* VSOC */
347			&pinctrl_adc4_default    /* VCCM */
348			&pinctrl_adc5_default    /* APU-VDDP */
349			&pinctrl_adc6_default    /* PM-VDD-CLDO */
350			&pinctrl_adc7_default    /* PM-VDDCR-S5 */
351			&pinctrl_adc8_default    /* PM-VDDCR */
352			&pinctrl_adc9_default    /* VBAT */
353			&pinctrl_adc10_default   /* 3V */
354			&pinctrl_adc11_default   /* 5V */
355			&pinctrl_adc12_default>; /* 12V */
356};
357