xref: /openbmc/linux/arch/arm/boot/dts/aspeed/aspeed-bmc-asrock-x570d4u.dts (revision 90f97b485b4eba799e5aac1ec3d3dfb149ba1350)
1501139a9SRenze Nicolai// SPDX-License-Identifier: GPL-2.0+
2501139a9SRenze Nicolai/dts-v1/;
3501139a9SRenze Nicolai#include "aspeed-g5.dtsi"
4501139a9SRenze Nicolai#include <dt-bindings/gpio/aspeed-gpio.h>
5501139a9SRenze Nicolai#include <dt-bindings/leds/common.h>
6501139a9SRenze Nicolai
7501139a9SRenze Nicolai/ {
8501139a9SRenze Nicolai	model = "Asrock Rack X570D4U BMC";
9501139a9SRenze Nicolai	compatible = "asrock,x570d4u-bmc", "aspeed,ast2500";
10501139a9SRenze Nicolai
11501139a9SRenze Nicolai	aliases {
12501139a9SRenze Nicolai		i2c40 = &i2c4mux0ch0;
13501139a9SRenze Nicolai		i2c41 = &i2c4mux0ch1;
14501139a9SRenze Nicolai		i2c42 = &i2c4mux0ch2;
15501139a9SRenze Nicolai		i2c43 = &i2c4mux0ch3;
16501139a9SRenze Nicolai	};
17501139a9SRenze Nicolai
18501139a9SRenze Nicolai	chosen {
19501139a9SRenze Nicolai		stdout-path = &uart5;
20501139a9SRenze Nicolai	};
21501139a9SRenze Nicolai
22501139a9SRenze Nicolai	memory@80000000 {
23501139a9SRenze Nicolai		reg = <0x80000000 0x20000000>;
24501139a9SRenze Nicolai	};
25501139a9SRenze Nicolai
26501139a9SRenze Nicolai	reserved-memory {
27501139a9SRenze Nicolai		#address-cells = <1>;
28501139a9SRenze Nicolai		#size-cells = <1>;
29501139a9SRenze Nicolai		ranges;
30501139a9SRenze Nicolai
31501139a9SRenze Nicolai		pci_memory: region@9a000000 {
32501139a9SRenze Nicolai			no-map;
33501139a9SRenze Nicolai			reg = <0x9a000000 0x00010000>; /* 64K */
34501139a9SRenze Nicolai		};
35501139a9SRenze Nicolai
36501139a9SRenze Nicolai		video_engine_memory: jpegbuffer {
37501139a9SRenze Nicolai			size = <0x02800000>;	/* 40M */
38501139a9SRenze Nicolai			alignment = <0x01000000>;
39501139a9SRenze Nicolai			compatible = "shared-dma-pool";
40501139a9SRenze Nicolai			reusable;
41501139a9SRenze Nicolai		};
42501139a9SRenze Nicolai
43501139a9SRenze Nicolai		gfx_memory: framebuffer {
44501139a9SRenze Nicolai			size = <0x01000000>;
45501139a9SRenze Nicolai			alignment = <0x01000000>;
46501139a9SRenze Nicolai			compatible = "shared-dma-pool";
47501139a9SRenze Nicolai			reusable;
48501139a9SRenze Nicolai		};
49501139a9SRenze Nicolai	};
50501139a9SRenze Nicolai
51501139a9SRenze Nicolai	leds {
52501139a9SRenze Nicolai		compatible = "gpio-leds";
53501139a9SRenze Nicolai
54501139a9SRenze Nicolai		led-0 {
55501139a9SRenze Nicolai			/* led-heartbeat-n */
56501139a9SRenze Nicolai			gpios = <&gpio ASPEED_GPIO(H, 6) GPIO_ACTIVE_LOW>;
57501139a9SRenze Nicolai			color = <LED_COLOR_ID_GREEN>;
58501139a9SRenze Nicolai			function = LED_FUNCTION_HEARTBEAT;
59501139a9SRenze Nicolai			linux,default-trigger = "timer";
60501139a9SRenze Nicolai		};
61501139a9SRenze Nicolai
62501139a9SRenze Nicolai		led-1 {
63501139a9SRenze Nicolai			/* led-fault-n */
64501139a9SRenze Nicolai			gpios = <&gpio ASPEED_GPIO(Z, 2) GPIO_ACTIVE_LOW>;
65501139a9SRenze Nicolai			color = <LED_COLOR_ID_AMBER>;
66501139a9SRenze Nicolai			function = LED_FUNCTION_FAULT;
67501139a9SRenze Nicolai			panic-indicator;
68501139a9SRenze Nicolai		};
69501139a9SRenze Nicolai	};
70501139a9SRenze Nicolai
71501139a9SRenze Nicolai	iio-hwmon {
72501139a9SRenze Nicolai		compatible = "iio-hwmon";
73501139a9SRenze Nicolai		io-channels = <&adc 0>, <&adc 1>, <&adc 2>, <&adc 3>, <&adc 4>,
74501139a9SRenze Nicolai			<&adc 5>, <&adc 6>, <&adc 7>, <&adc 8>, <&adc 9>,
75501139a9SRenze Nicolai			<&adc 10>, <&adc 11>, <&adc 12>;
76501139a9SRenze Nicolai	};
77501139a9SRenze Nicolai};
78501139a9SRenze Nicolai
79501139a9SRenze Nicolai&gpio {
80501139a9SRenze Nicolai	status = "okay";
81501139a9SRenze Nicolai	gpio-line-names =
8216252419SRenze Nicolai	/*  A */ "input-locatorled-n", "", "", "", "", "", "", "",
8316252419SRenze Nicolai	/*  B */ "input-bios-post-cmplt-n", "", "", "", "", "", "", "",
8416252419SRenze Nicolai	/*  C */ "", "", "", "", "", "", "control-locatorbutton-n", "",
8516252419SRenze Nicolai	/*  D */ "button-power-n", "control-power-n", "button-reset-n",
8616252419SRenze Nicolai		 "control-reset-n", "", "", "", "",
8716252419SRenze Nicolai	/*  E */ "", "", "", "", "", "", "", "",
8816252419SRenze Nicolai	/*  F */ "", "", "", "", "", "", "", "",
8916252419SRenze Nicolai	/*  G */ "output-hwm-vbat-enable", "input-id0-n", "input-id1-n",
9016252419SRenze Nicolai		 "input-id2-n", "input-aux-smb-alert-n", "",
9116252419SRenze Nicolai		 "input-psu-smb-alert-n", "",
9216252419SRenze Nicolai	/*  H */ "", "", "", "", "input-mfg-mode-n", "",
9316252419SRenze Nicolai		 "led-heartbeat-n", "input-case-open-n",
9416252419SRenze Nicolai	/*  I */ "", "", "", "", "", "", "", "",
9516252419SRenze Nicolai	/*  J */ "output-bmc-ready-n", "", "", "", "", "", "", "",
9616252419SRenze Nicolai	/*  K */ "", "", "", "", "", "", "", "",
9716252419SRenze Nicolai	/*  L */ "", "", "", "", "", "", "", "",
9816252419SRenze Nicolai	/*  M */ "", "", "", "", "", "", "", "",
9916252419SRenze Nicolai	/*  N */ "", "", "", "", "", "", "", "",
10016252419SRenze Nicolai	/*  O */ "", "", "", "", "", "", "", "",
10116252419SRenze Nicolai	/*  P */ "", "", "", "", "", "", "", "",
10216252419SRenze Nicolai	/*  Q */ "", "", "", "", "input-bmc-smb-present-n", "", "",
10316252419SRenze Nicolai		 "input-pcie-wake-n",
10416252419SRenze Nicolai	/*  R */ "", "", "", "", "", "", "", "",
10516252419SRenze Nicolai	/*  S */ "input-bmc-pchhot-n", "", "", "", "", "", "", "",
10616252419SRenze Nicolai	/*  T */ "", "", "", "", "", "", "", "",
10716252419SRenze Nicolai	/*  U */ "", "", "", "", "", "", "", "",
10816252419SRenze Nicolai	/*  V */ "", "", "", "", "", "", "", "",
10916252419SRenze Nicolai	/*  W */ "", "", "", "", "", "", "", "",
11016252419SRenze Nicolai	/*  X */ "", "", "", "", "", "", "", "",
11116252419SRenze Nicolai	/*  Y */ "input-sleep-s3-n", "input-sleep-s5-n", "", "", "", "",
11216252419SRenze Nicolai		 "", "",
11316252419SRenze Nicolai	/*  Z */ "", "", "led-fault-n", "output-bmc-throttle-n", "", "",
11416252419SRenze Nicolai		 "", "",
11516252419SRenze Nicolai	/* AA */ "input-cpu1-thermtrip-latch-n", "",
11616252419SRenze Nicolai		 "input-cpu1-prochot-n", "", "", "", "", "",
11716252419SRenze Nicolai	/* AB */ "", "input-power-good", "", "", "", "", "", "",
11816252419SRenze Nicolai	/* AC */ "", "", "", "", "", "", "", "";
119501139a9SRenze Nicolai};
120501139a9SRenze Nicolai
121501139a9SRenze Nicolai&fmc {
122501139a9SRenze Nicolai	status = "okay";
123501139a9SRenze Nicolai	flash@0 {
124501139a9SRenze Nicolai		status = "okay";
125501139a9SRenze Nicolai		label = "bmc";
126501139a9SRenze Nicolai		m25p,fast-read;
127501139a9SRenze Nicolai		spi-max-frequency = <10000000>;
128501139a9SRenze Nicolai#include "openbmc-flash-layout-64.dtsi"
129501139a9SRenze Nicolai	};
130501139a9SRenze Nicolai};
131501139a9SRenze Nicolai
132501139a9SRenze Nicolai&uart5 {
133501139a9SRenze Nicolai	status = "okay";
134501139a9SRenze Nicolai};
135501139a9SRenze Nicolai
136501139a9SRenze Nicolai&vuart {
137501139a9SRenze Nicolai	status = "okay";
138501139a9SRenze Nicolai};
139501139a9SRenze Nicolai
140501139a9SRenze Nicolai&mac0 {
141501139a9SRenze Nicolai	status = "okay";
142501139a9SRenze Nicolai	pinctrl-names = "default";
143501139a9SRenze Nicolai	pinctrl-0 = <&pinctrl_rgmii1_default &pinctrl_mdio1_default>;
144501139a9SRenze Nicolai
145501139a9SRenze Nicolai	nvmem-cells = <&eth0_macaddress>;
146501139a9SRenze Nicolai	nvmem-cell-names = "mac-address";
147501139a9SRenze Nicolai};
148501139a9SRenze Nicolai
149501139a9SRenze Nicolai&mac1 {
150501139a9SRenze Nicolai	status = "okay";
151501139a9SRenze Nicolai	pinctrl-names = "default";
152501139a9SRenze Nicolai	pinctrl-0 = <&pinctrl_rmii2_default &pinctrl_mdio2_default>;
153501139a9SRenze Nicolai	use-ncsi;
154501139a9SRenze Nicolai
155501139a9SRenze Nicolai	nvmem-cells = <&eth1_macaddress>;
156501139a9SRenze Nicolai	nvmem-cell-names = "mac-address";
157501139a9SRenze Nicolai};
158501139a9SRenze Nicolai
159501139a9SRenze Nicolai&i2c0 {
160501139a9SRenze Nicolai	/* SMBus on auxiliary panel header (AUX_PANEL1) */
161501139a9SRenze Nicolai	status = "okay";
162501139a9SRenze Nicolai};
163501139a9SRenze Nicolai
164501139a9SRenze Nicolai&i2c1 {
165*d326aebcSRenze Nicolai	/* Hardware monitoring SMBus */
166501139a9SRenze Nicolai	status = "okay";
167501139a9SRenze Nicolai
168501139a9SRenze Nicolai	w83773g@4c {
169501139a9SRenze Nicolai		compatible = "nuvoton,w83773g";
170501139a9SRenze Nicolai		reg = <0x4c>;
171501139a9SRenze Nicolai	};
172501139a9SRenze Nicolai};
173501139a9SRenze Nicolai
174501139a9SRenze Nicolai&i2c2 {
175501139a9SRenze Nicolai	/* PSU SMBus (PSU_SMB1) */
176501139a9SRenze Nicolai	status = "okay";
177501139a9SRenze Nicolai};
178501139a9SRenze Nicolai
179501139a9SRenze Nicolai&i2c3 {
180501139a9SRenze Nicolai	status = "okay";
181501139a9SRenze Nicolai};
182501139a9SRenze Nicolai
183501139a9SRenze Nicolai&i2c4 {
184501139a9SRenze Nicolai	status = "okay";
185501139a9SRenze Nicolai
186501139a9SRenze Nicolai	i2c-mux@70 {
187501139a9SRenze Nicolai		compatible = "nxp,pca9545";
188501139a9SRenze Nicolai		reg = <0x70>;
189501139a9SRenze Nicolai		#address-cells = <1>;
190501139a9SRenze Nicolai		#size-cells = <0>;
191501139a9SRenze Nicolai
192501139a9SRenze Nicolai		i2c4mux0ch0: i2c@0 {
193501139a9SRenze Nicolai			/* SMBus on PCI express 16x slot */
194501139a9SRenze Nicolai			#address-cells = <1>;
195501139a9SRenze Nicolai			#size-cells = <0>;
196501139a9SRenze Nicolai			reg = <0>;
197501139a9SRenze Nicolai		};
198501139a9SRenze Nicolai
199501139a9SRenze Nicolai		i2c4mux0ch1: i2c@1 {
200501139a9SRenze Nicolai			/* SMBus on PCI express 8x slot */
201501139a9SRenze Nicolai			#address-cells = <1>;
202501139a9SRenze Nicolai			#size-cells = <0>;
203501139a9SRenze Nicolai			reg = <1>;
204501139a9SRenze Nicolai		};
205501139a9SRenze Nicolai
206501139a9SRenze Nicolai		i2c4mux0ch2: i2c@2 {
207501139a9SRenze Nicolai			/* Unknown */
208501139a9SRenze Nicolai			#address-cells = <1>;
209501139a9SRenze Nicolai			#size-cells = <0>;
210501139a9SRenze Nicolai			reg = <2>;
211501139a9SRenze Nicolai		};
212501139a9SRenze Nicolai
213501139a9SRenze Nicolai		i2c4mux0ch3: i2c@3 {
214501139a9SRenze Nicolai			/* SMBus on PCI express 1x slot */
215501139a9SRenze Nicolai			#address-cells = <1>;
216501139a9SRenze Nicolai			#size-cells = <0>;
217501139a9SRenze Nicolai			reg = <3>;
218501139a9SRenze Nicolai		};
219501139a9SRenze Nicolai	};
220501139a9SRenze Nicolai};
221501139a9SRenze Nicolai
222501139a9SRenze Nicolai&i2c5 {
223*d326aebcSRenze Nicolai	/* SMBus on BMC connector (BMC_SMB_1) */
224501139a9SRenze Nicolai	status = "okay";
225501139a9SRenze Nicolai};
226501139a9SRenze Nicolai
227501139a9SRenze Nicolai&i2c7 {
228501139a9SRenze Nicolai	/* FRU and SPD EEPROM SMBus */
229501139a9SRenze Nicolai	status = "okay";
230501139a9SRenze Nicolai
231501139a9SRenze Nicolai	eeprom@57 {
232501139a9SRenze Nicolai		compatible = "st,24c128", "atmel,24c128";
233501139a9SRenze Nicolai		reg = <0x57>;
234501139a9SRenze Nicolai		pagesize = <16>;
235501139a9SRenze Nicolai		#address-cells = <1>;
236501139a9SRenze Nicolai		#size-cells = <1>;
237501139a9SRenze Nicolai
238501139a9SRenze Nicolai		eth0_macaddress: macaddress@3f80 {
239501139a9SRenze Nicolai			reg = <0x3f80 6>;
240501139a9SRenze Nicolai		};
241501139a9SRenze Nicolai
242501139a9SRenze Nicolai		eth1_macaddress: macaddress@3f88 {
243501139a9SRenze Nicolai			reg = <0x3f88 6>;
244501139a9SRenze Nicolai		};
245501139a9SRenze Nicolai	};
246501139a9SRenze Nicolai};
247501139a9SRenze Nicolai
248*d326aebcSRenze Nicolai&i2c8 {
249*d326aebcSRenze Nicolai	/* SMBus on intelligent platform management bus header (IPMB_1) */
250*d326aebcSRenze Nicolai	status = "okay";
251*d326aebcSRenze Nicolai};
252*d326aebcSRenze Nicolai
253501139a9SRenze Nicolai&gfx {
254501139a9SRenze Nicolai	status = "okay";
255501139a9SRenze Nicolai};
256501139a9SRenze Nicolai
257501139a9SRenze Nicolai&vhub {
258501139a9SRenze Nicolai	status = "okay";
259501139a9SRenze Nicolai};
260501139a9SRenze Nicolai
261501139a9SRenze Nicolai&ehci1 {
262501139a9SRenze Nicolai	status = "okay";
263501139a9SRenze Nicolai};
264501139a9SRenze Nicolai
265501139a9SRenze Nicolai&uhci {
266501139a9SRenze Nicolai	status = "okay";
267501139a9SRenze Nicolai};
268501139a9SRenze Nicolai
269501139a9SRenze Nicolai&kcs3 {
270501139a9SRenze Nicolai	aspeed,lpc-io-reg = <0xca2>;
271501139a9SRenze Nicolai	status = "okay";
272501139a9SRenze Nicolai};
273501139a9SRenze Nicolai
274501139a9SRenze Nicolai&lpc_ctrl {
275501139a9SRenze Nicolai	status = "okay";
276501139a9SRenze Nicolai};
277501139a9SRenze Nicolai
278501139a9SRenze Nicolai&lpc_snoop {
279501139a9SRenze Nicolai	status = "okay";
280501139a9SRenze Nicolai	snoop-ports = <0x80>;
281501139a9SRenze Nicolai};
282501139a9SRenze Nicolai
283501139a9SRenze Nicolai&p2a {
284501139a9SRenze Nicolai	status = "okay";
285501139a9SRenze Nicolai	memory-region = <&pci_memory>;
286501139a9SRenze Nicolai};
287501139a9SRenze Nicolai
288501139a9SRenze Nicolai&video {
289501139a9SRenze Nicolai	status = "okay";
290501139a9SRenze Nicolai	memory-region = <&video_engine_memory>;
291501139a9SRenze Nicolai};
292501139a9SRenze Nicolai
293501139a9SRenze Nicolai&pwm_tacho {
294501139a9SRenze Nicolai	status = "okay";
295501139a9SRenze Nicolai	pinctrl-names = "default";
296501139a9SRenze Nicolai	pinctrl-0 = <&pinctrl_pwm0_default
297501139a9SRenze Nicolai				&pinctrl_pwm1_default
298501139a9SRenze Nicolai				&pinctrl_pwm2_default
299501139a9SRenze Nicolai				&pinctrl_pwm3_default
300501139a9SRenze Nicolai				&pinctrl_pwm4_default
301501139a9SRenze Nicolai				&pinctrl_pwm5_default>;
302501139a9SRenze Nicolai
303501139a9SRenze Nicolai	fan@0 {
304501139a9SRenze Nicolai		/* FAN1 (4-pin) */
305501139a9SRenze Nicolai		reg = <0x00>;
306501139a9SRenze Nicolai		aspeed,fan-tach-ch = /bits/ 8 <0x00>;
307501139a9SRenze Nicolai	};
308501139a9SRenze Nicolai
309501139a9SRenze Nicolai	fan@1 {
310501139a9SRenze Nicolai		/* FAN2 (4-pin) */
311501139a9SRenze Nicolai		reg = <0x01>;
312501139a9SRenze Nicolai		aspeed,fan-tach-ch = /bits/ 8 <0x01>;
313501139a9SRenze Nicolai	};
314501139a9SRenze Nicolai
315501139a9SRenze Nicolai	fan@2 {
316501139a9SRenze Nicolai		/* FAN3 (4-pin) */
317501139a9SRenze Nicolai		reg = <0x02>;
318501139a9SRenze Nicolai		aspeed,fan-tach-ch = /bits/ 8 <0x02>;
319501139a9SRenze Nicolai	};
320501139a9SRenze Nicolai
321501139a9SRenze Nicolai	fan@3 {
322501139a9SRenze Nicolai		/* FAN4 (6-pin) */
323501139a9SRenze Nicolai		reg = <0x03>;
324501139a9SRenze Nicolai		aspeed,fan-tach-ch = /bits/ 8 <0x04 0x0b>;
325501139a9SRenze Nicolai	};
326501139a9SRenze Nicolai
327501139a9SRenze Nicolai	fan@4 {
328501139a9SRenze Nicolai		/* FAN6 (6-pin) */
329501139a9SRenze Nicolai		reg = <0x04>;
330501139a9SRenze Nicolai		aspeed,fan-tach-ch = /bits/ 8 <0x06 0x0d>;
331501139a9SRenze Nicolai	};
332501139a9SRenze Nicolai
333501139a9SRenze Nicolai	fan@5 {
334501139a9SRenze Nicolai		/* FAN5 (6-pin) */
335501139a9SRenze Nicolai		reg = <0x05>;
336501139a9SRenze Nicolai		aspeed,fan-tach-ch = /bits/ 8 <0x05 0x0c>;
337501139a9SRenze Nicolai	};
338501139a9SRenze Nicolai};
339501139a9SRenze Nicolai
340501139a9SRenze Nicolai&adc {
341501139a9SRenze Nicolai	status = "okay";
342501139a9SRenze Nicolai	pinctrl-names = "default";
343da10d27dSRenze Nicolai	pinctrl-0 = <&pinctrl_adc0_default       /* 3VSB */
344da10d27dSRenze Nicolai			&pinctrl_adc1_default    /* 5VSB */
345da10d27dSRenze Nicolai			&pinctrl_adc2_default    /* VCPU */
346da10d27dSRenze Nicolai			&pinctrl_adc3_default    /* VSOC */
347da10d27dSRenze Nicolai			&pinctrl_adc4_default    /* VCCM */
348da10d27dSRenze Nicolai			&pinctrl_adc5_default    /* APU-VDDP */
349da10d27dSRenze Nicolai			&pinctrl_adc6_default    /* PM-VDD-CLDO */
350da10d27dSRenze Nicolai			&pinctrl_adc7_default    /* PM-VDDCR-S5 */
351da10d27dSRenze Nicolai			&pinctrl_adc8_default    /* PM-VDDCR */
352da10d27dSRenze Nicolai			&pinctrl_adc9_default    /* VBAT */
353da10d27dSRenze Nicolai			&pinctrl_adc10_default   /* 3V */
354da10d27dSRenze Nicolai			&pinctrl_adc11_default   /* 5V */
355da10d27dSRenze Nicolai			&pinctrl_adc12_default>; /* 12V */
356501139a9SRenze Nicolai};
357