xref: /freebsd-src/sys/contrib/device-tree/src/arm/aspeed/aspeed-bmc-amd-ethanolx.dts (revision f126890ac5386406dadf7c4cfa9566cbb56537c5)
1*f126890aSEmmanuel Vadot// SPDX-License-Identifier: GPL-2.0
2*f126890aSEmmanuel Vadot// Copyright (c) 2020 AMD Inc.
3*f126890aSEmmanuel Vadot// Author: Supreeth Venkatesh <supreeth.venkatesh@amd.com>
4*f126890aSEmmanuel Vadot/dts-v1/;
5*f126890aSEmmanuel Vadot
6*f126890aSEmmanuel Vadot#include "aspeed-g5.dtsi"
7*f126890aSEmmanuel Vadot#include <dt-bindings/gpio/aspeed-gpio.h>
8*f126890aSEmmanuel Vadot#include <dt-bindings/interrupt-controller/irq.h>
9*f126890aSEmmanuel Vadot
10*f126890aSEmmanuel Vadot/ {
11*f126890aSEmmanuel Vadot	model = "AMD EthanolX BMC";
12*f126890aSEmmanuel Vadot	compatible = "amd,ethanolx-bmc", "aspeed,ast2500";
13*f126890aSEmmanuel Vadot
14*f126890aSEmmanuel Vadot	memory@80000000 {
15*f126890aSEmmanuel Vadot		reg = <0x80000000 0x20000000>;
16*f126890aSEmmanuel Vadot	};
17*f126890aSEmmanuel Vadot
18*f126890aSEmmanuel Vadot	reserved-memory {
19*f126890aSEmmanuel Vadot		#address-cells = <1>;
20*f126890aSEmmanuel Vadot		#size-cells = <1>;
21*f126890aSEmmanuel Vadot		ranges;
22*f126890aSEmmanuel Vadot
23*f126890aSEmmanuel Vadot		video_engine_memory: jpegbuffer {
24*f126890aSEmmanuel Vadot			size = <0x02000000>;	/* 32M */
25*f126890aSEmmanuel Vadot			alignment = <0x01000000>;
26*f126890aSEmmanuel Vadot			compatible = "shared-dma-pool";
27*f126890aSEmmanuel Vadot			reusable;
28*f126890aSEmmanuel Vadot		};
29*f126890aSEmmanuel Vadot	};
30*f126890aSEmmanuel Vadot
31*f126890aSEmmanuel Vadot
32*f126890aSEmmanuel Vadot	aliases {
33*f126890aSEmmanuel Vadot		serial0 = &uart1;
34*f126890aSEmmanuel Vadot		serial4 = &uart5;
35*f126890aSEmmanuel Vadot	};
36*f126890aSEmmanuel Vadot	chosen {
37*f126890aSEmmanuel Vadot		stdout-path = &uart5;
38*f126890aSEmmanuel Vadot		bootargs = "console=ttyS4,115200 earlycon";
39*f126890aSEmmanuel Vadot	};
40*f126890aSEmmanuel Vadot	leds {
41*f126890aSEmmanuel Vadot		compatible = "gpio-leds";
42*f126890aSEmmanuel Vadot
43*f126890aSEmmanuel Vadot		fault {
44*f126890aSEmmanuel Vadot			gpios = <&gpio ASPEED_GPIO(A, 2) GPIO_ACTIVE_LOW>;
45*f126890aSEmmanuel Vadot		};
46*f126890aSEmmanuel Vadot
47*f126890aSEmmanuel Vadot		identify {
48*f126890aSEmmanuel Vadot			gpios = <&gpio ASPEED_GPIO(A, 3) GPIO_ACTIVE_LOW>;
49*f126890aSEmmanuel Vadot		};
50*f126890aSEmmanuel Vadot	};
51*f126890aSEmmanuel Vadot	iio-hwmon {
52*f126890aSEmmanuel Vadot		compatible = "iio-hwmon";
53*f126890aSEmmanuel Vadot		io-channels = <&adc 0>, <&adc 1>, <&adc 2>, <&adc 3>, <&adc 4>;
54*f126890aSEmmanuel Vadot	};
55*f126890aSEmmanuel Vadot};
56*f126890aSEmmanuel Vadot
57*f126890aSEmmanuel Vadot&fmc {
58*f126890aSEmmanuel Vadot	status = "okay";
59*f126890aSEmmanuel Vadot	flash@0 {
60*f126890aSEmmanuel Vadot		status = "okay";
61*f126890aSEmmanuel Vadot		m25p,fast-read;
62*f126890aSEmmanuel Vadot		label = "bmc";
63*f126890aSEmmanuel Vadot		#include "openbmc-flash-layout.dtsi"
64*f126890aSEmmanuel Vadot	};
65*f126890aSEmmanuel Vadot};
66*f126890aSEmmanuel Vadot
67*f126890aSEmmanuel Vadot&spi1 {
68*f126890aSEmmanuel Vadot	status = "okay";
69*f126890aSEmmanuel Vadot	pinctrl-names = "default";
70*f126890aSEmmanuel Vadot	pinctrl-0 = <&pinctrl_spi1_default>;
71*f126890aSEmmanuel Vadot	flash@0 {
72*f126890aSEmmanuel Vadot		status = "okay";
73*f126890aSEmmanuel Vadot		m25p,fast-read;
74*f126890aSEmmanuel Vadot		label = "bios";
75*f126890aSEmmanuel Vadot		spi-max-frequency = <100000000>;
76*f126890aSEmmanuel Vadot	};
77*f126890aSEmmanuel Vadot};
78*f126890aSEmmanuel Vadot
79*f126890aSEmmanuel Vadot&mac0 {
80*f126890aSEmmanuel Vadot	status = "okay";
81*f126890aSEmmanuel Vadot
82*f126890aSEmmanuel Vadot	pinctrl-names = "default";
83*f126890aSEmmanuel Vadot	pinctrl-0 = <&pinctrl_rmii1_default>;
84*f126890aSEmmanuel Vadot	clocks = <&syscon ASPEED_CLK_GATE_MAC1CLK>,
85*f126890aSEmmanuel Vadot		 <&syscon ASPEED_CLK_MAC1RCLK>;
86*f126890aSEmmanuel Vadot	clock-names = "MACCLK", "RCLK";
87*f126890aSEmmanuel Vadot};
88*f126890aSEmmanuel Vadot
89*f126890aSEmmanuel Vadot&uart1 {
90*f126890aSEmmanuel Vadot	//Host Console
91*f126890aSEmmanuel Vadot	status = "okay";
92*f126890aSEmmanuel Vadot	pinctrl-names = "default";
93*f126890aSEmmanuel Vadot	pinctrl-0 = <&pinctrl_txd1_default
94*f126890aSEmmanuel Vadot		     &pinctrl_rxd1_default
95*f126890aSEmmanuel Vadot		     &pinctrl_nrts1_default
96*f126890aSEmmanuel Vadot		     &pinctrl_ncts1_default>;
97*f126890aSEmmanuel Vadot};
98*f126890aSEmmanuel Vadot
99*f126890aSEmmanuel Vadot&uart5 {
100*f126890aSEmmanuel Vadot	//BMC Console
101*f126890aSEmmanuel Vadot	status = "okay";
102*f126890aSEmmanuel Vadot};
103*f126890aSEmmanuel Vadot
104*f126890aSEmmanuel Vadot&adc {
105*f126890aSEmmanuel Vadot	status = "okay";
106*f126890aSEmmanuel Vadot
107*f126890aSEmmanuel Vadot	pinctrl-names = "default";
108*f126890aSEmmanuel Vadot	pinctrl-0 = <&pinctrl_adc0_default
109*f126890aSEmmanuel Vadot		     &pinctrl_adc1_default
110*f126890aSEmmanuel Vadot		     &pinctrl_adc2_default
111*f126890aSEmmanuel Vadot		     &pinctrl_adc3_default
112*f126890aSEmmanuel Vadot		     &pinctrl_adc4_default>;
113*f126890aSEmmanuel Vadot};
114*f126890aSEmmanuel Vadot
115*f126890aSEmmanuel Vadot&gpio {
116*f126890aSEmmanuel Vadot	status = "okay";
117*f126890aSEmmanuel Vadot	gpio-line-names =
118*f126890aSEmmanuel Vadot	/*A0-A7*/	"","","FAULT_LED","CHASSIS_ID_LED","","","","",
119*f126890aSEmmanuel Vadot	/*B0-B7*/	"","","","","","","","",
120*f126890aSEmmanuel Vadot	/*C0-C7*/	"CHASSIS_ID_BTN","INTRUDER","AC_LOSS","","","","","",
121*f126890aSEmmanuel Vadot	/*D0-D7*/	"HDT_DBREQ","LOCAL_SPI_ROM_SEL","FPGA_SPI_ROM_SEL","JTAG_MUX_S",
122*f126890aSEmmanuel Vadot			"JTAG_MUX_OE","HDT_SEL","ASERT_WARM_RST_BTN","FPGA_RSVD",
123*f126890aSEmmanuel Vadot	/*E0-E7*/	"","","MON_P0_PWR_BTN","MON_P0_RST_BTN","MON_P0_NMI_BTN",
124*f126890aSEmmanuel Vadot			"MON_P0_PWR_GOOD","MON_PWROK","MON_RESET",
125*f126890aSEmmanuel Vadot	/*F0-F7*/	"MON_P0_PROCHOT","MON_P1_PROCHOT","MON_P0_THERMTRIP",
126*f126890aSEmmanuel Vadot			"MON_P1_THERMTRIP","P0_PRESENT","P1_PRESENT","MON_ATX_PWR_OK","",
127*f126890aSEmmanuel Vadot	/*G0-G7*/	"BRD_REV_ID_3","BRD_REV_ID_2","BRD_REV_ID_1","BRD_REV_ID_0",
128*f126890aSEmmanuel Vadot			"P0_APML_ALERT","P1_APML_ALERT","FPGA ALERT","",
129*f126890aSEmmanuel Vadot	/*H0-H7*/	"BRD_ID_0","BRD_ID_1","BRD_ID_2","BRD_ID_3",
130*f126890aSEmmanuel Vadot			"PCIE_DISCONNECTED","USB_DISCONNECTED","SPARE_0","SPARE_1",
131*f126890aSEmmanuel Vadot	/*I0-I7*/	"","","","","","","","",
132*f126890aSEmmanuel Vadot	/*J0-J7*/	"","","","","","","","",
133*f126890aSEmmanuel Vadot	/*K0-K7*/	"","","","","","","","",
134*f126890aSEmmanuel Vadot	/*L0-L7*/	"","","","","","","","",
135*f126890aSEmmanuel Vadot	/*M0-M7*/	"ASSERT_PWR_BTN","ASSERT_RST_BTN","ASSERT_NMI_BTN",
136*f126890aSEmmanuel Vadot			"ASSERT_LOCAL_LOCK","ASSERT_P0_PROCHOT","ASSERT_P1_PROCHOT",
137*f126890aSEmmanuel Vadot			"ASSERT_CLR_CMOS","ASSERT_BMC_READY",
138*f126890aSEmmanuel Vadot	/*N0-N7*/	"","","","","","","","",
139*f126890aSEmmanuel Vadot	/*O0-O7*/	"","","","","","","","",
140*f126890aSEmmanuel Vadot	/*P0-P7*/	"P0_VDD_CORE_RUN_VRHOT","P0_VDD_SOC_RUN_VRHOT",
141*f126890aSEmmanuel Vadot			"P0_VDD_MEM_ABCD_SUS_VRHOT","P0_VDD_MEM_EFGH_SUS_VRHOT",
142*f126890aSEmmanuel Vadot			"P1_VDD_CORE_RUN_VRHOT","P1_VDD_SOC_RUN_VRHOT",
143*f126890aSEmmanuel Vadot			"P1_VDD_MEM_ABCD_SUS_VRHOT","P1_VDD_MEM_EFGH_SUS_VRHOT",
144*f126890aSEmmanuel Vadot	/*Q0-Q7*/	"","","","","","","","",
145*f126890aSEmmanuel Vadot	/*R0-R7*/	"","","","","","","","",
146*f126890aSEmmanuel Vadot	/*S0-S7*/	"","","","","","","","",
147*f126890aSEmmanuel Vadot	/*T0-T7*/	"","","","","","","","",
148*f126890aSEmmanuel Vadot	/*U0-U7*/	"","","","","","","","",
149*f126890aSEmmanuel Vadot	/*V0-V7*/	"","","","","","","","",
150*f126890aSEmmanuel Vadot	/*W0-W7*/	"","","","","","","","",
151*f126890aSEmmanuel Vadot	/*X0-X7*/	"","","","","","","","",
152*f126890aSEmmanuel Vadot	/*Y0-Y7*/	"","","","","","","","",
153*f126890aSEmmanuel Vadot	/*Z0-Z7*/	"","","","","","","","",
154*f126890aSEmmanuel Vadot	/*AA0-AA7*/	"","SENSOR THERM","","","","","","",
155*f126890aSEmmanuel Vadot	/*AB0-AB7*/	"","","","","","","","",
156*f126890aSEmmanuel Vadot	/*AC0-AC7*/	"","","","","","","","";
157*f126890aSEmmanuel Vadot};
158*f126890aSEmmanuel Vadot
159*f126890aSEmmanuel Vadot//APML for P0
160*f126890aSEmmanuel Vadot&i2c0 {
161*f126890aSEmmanuel Vadot	status = "okay";
162*f126890aSEmmanuel Vadot};
163*f126890aSEmmanuel Vadot
164*f126890aSEmmanuel Vadot//APML for P1
165*f126890aSEmmanuel Vadot&i2c1 {
166*f126890aSEmmanuel Vadot	status = "okay";
167*f126890aSEmmanuel Vadot};
168*f126890aSEmmanuel Vadot
169*f126890aSEmmanuel Vadot//FPGA
170*f126890aSEmmanuel Vadot&i2c2 {
171*f126890aSEmmanuel Vadot	status = "okay";
172*f126890aSEmmanuel Vadot};
173*f126890aSEmmanuel Vadot
174*f126890aSEmmanuel Vadot//24LC128 EEPROM
175*f126890aSEmmanuel Vadot&i2c3 {
176*f126890aSEmmanuel Vadot	status = "okay";
177*f126890aSEmmanuel Vadot	eeprom@50 {
178*f126890aSEmmanuel Vadot		compatible = "atmel,24c128";
179*f126890aSEmmanuel Vadot		reg = <0x50>;
180*f126890aSEmmanuel Vadot		pagesize = <64>;
181*f126890aSEmmanuel Vadot	};
182*f126890aSEmmanuel Vadot};
183*f126890aSEmmanuel Vadot
184*f126890aSEmmanuel Vadot//P0 Power regulators
185*f126890aSEmmanuel Vadot&i2c4 {
186*f126890aSEmmanuel Vadot	status = "okay";
187*f126890aSEmmanuel Vadot};
188*f126890aSEmmanuel Vadot
189*f126890aSEmmanuel Vadot//P1 Power regulators
190*f126890aSEmmanuel Vadot&i2c5 {
191*f126890aSEmmanuel Vadot	status = "okay";
192*f126890aSEmmanuel Vadot};
193*f126890aSEmmanuel Vadot
194*f126890aSEmmanuel Vadot//P0/P1 Thermal diode
195*f126890aSEmmanuel Vadot&i2c6 {
196*f126890aSEmmanuel Vadot	status = "okay";
197*f126890aSEmmanuel Vadot};
198*f126890aSEmmanuel Vadot
199*f126890aSEmmanuel Vadot// Thermal Sensors
200*f126890aSEmmanuel Vadot&i2c7 {
201*f126890aSEmmanuel Vadot	status = "okay";
202*f126890aSEmmanuel Vadot
203*f126890aSEmmanuel Vadot	lm75a@48 {
204*f126890aSEmmanuel Vadot		compatible = "national,lm75a";
205*f126890aSEmmanuel Vadot		reg = <0x48>;
206*f126890aSEmmanuel Vadot	};
207*f126890aSEmmanuel Vadot
208*f126890aSEmmanuel Vadot	lm75a@49 {
209*f126890aSEmmanuel Vadot		compatible = "national,lm75a";
210*f126890aSEmmanuel Vadot		reg = <0x49>;
211*f126890aSEmmanuel Vadot	};
212*f126890aSEmmanuel Vadot
213*f126890aSEmmanuel Vadot	lm75a@4a {
214*f126890aSEmmanuel Vadot		compatible = "national,lm75a";
215*f126890aSEmmanuel Vadot		reg = <0x4a>;
216*f126890aSEmmanuel Vadot	};
217*f126890aSEmmanuel Vadot
218*f126890aSEmmanuel Vadot	lm75a@4b {
219*f126890aSEmmanuel Vadot		compatible = "national,lm75a";
220*f126890aSEmmanuel Vadot		reg = <0x4b>;
221*f126890aSEmmanuel Vadot	};
222*f126890aSEmmanuel Vadot
223*f126890aSEmmanuel Vadot	lm75a@4c {
224*f126890aSEmmanuel Vadot		compatible = "national,lm75a";
225*f126890aSEmmanuel Vadot		reg = <0x4c>;
226*f126890aSEmmanuel Vadot	};
227*f126890aSEmmanuel Vadot
228*f126890aSEmmanuel Vadot	lm75a@4d {
229*f126890aSEmmanuel Vadot		compatible = "national,lm75a";
230*f126890aSEmmanuel Vadot		reg = <0x4d>;
231*f126890aSEmmanuel Vadot	};
232*f126890aSEmmanuel Vadot
233*f126890aSEmmanuel Vadot	lm75a@4e {
234*f126890aSEmmanuel Vadot		compatible = "national,lm75a";
235*f126890aSEmmanuel Vadot		reg = <0x4e>;
236*f126890aSEmmanuel Vadot	};
237*f126890aSEmmanuel Vadot
238*f126890aSEmmanuel Vadot	lm75a@4f {
239*f126890aSEmmanuel Vadot		compatible = "national,lm75a";
240*f126890aSEmmanuel Vadot		reg = <0x4f>;
241*f126890aSEmmanuel Vadot	};
242*f126890aSEmmanuel Vadot};
243*f126890aSEmmanuel Vadot
244*f126890aSEmmanuel Vadot//BMC I2C
245*f126890aSEmmanuel Vadot&i2c8 {
246*f126890aSEmmanuel Vadot	status = "okay";
247*f126890aSEmmanuel Vadot};
248*f126890aSEmmanuel Vadot
249*f126890aSEmmanuel Vadot&kcs1 {
250*f126890aSEmmanuel Vadot	status = "okay";
251*f126890aSEmmanuel Vadot	aspeed,lpc-io-reg = <0x60>;
252*f126890aSEmmanuel Vadot};
253*f126890aSEmmanuel Vadot
254*f126890aSEmmanuel Vadot&kcs2 {
255*f126890aSEmmanuel Vadot	status = "okay";
256*f126890aSEmmanuel Vadot	aspeed,lpc-io-reg = <0x62>;
257*f126890aSEmmanuel Vadot};
258*f126890aSEmmanuel Vadot
259*f126890aSEmmanuel Vadot&kcs3 {
260*f126890aSEmmanuel Vadot	status = "okay";
261*f126890aSEmmanuel Vadot	aspeed,lpc-io-reg = <0xCA2>;
262*f126890aSEmmanuel Vadot};
263*f126890aSEmmanuel Vadot
264*f126890aSEmmanuel Vadot&kcs4 {
265*f126890aSEmmanuel Vadot	status = "okay";
266*f126890aSEmmanuel Vadot	aspeed,lpc-io-reg = <0x97DE>;
267*f126890aSEmmanuel Vadot};
268*f126890aSEmmanuel Vadot
269*f126890aSEmmanuel Vadot&lpc_snoop {
270*f126890aSEmmanuel Vadot	status = "okay";
271*f126890aSEmmanuel Vadot	snoop-ports = <0x80>, <0x81>;
272*f126890aSEmmanuel Vadot};
273*f126890aSEmmanuel Vadot
274*f126890aSEmmanuel Vadot&lpc_ctrl {
275*f126890aSEmmanuel Vadot	//Enable lpc clock
276*f126890aSEmmanuel Vadot	status = "okay";
277*f126890aSEmmanuel Vadot};
278*f126890aSEmmanuel Vadot
279*f126890aSEmmanuel Vadot&vuart {
280*f126890aSEmmanuel Vadot	status = "okay";
281*f126890aSEmmanuel Vadot	aspeed,lpc-io-reg = <0x3f8>;
282*f126890aSEmmanuel Vadot	aspeed,lpc-interrupts = <4 IRQ_TYPE_LEVEL_HIGH>;
283*f126890aSEmmanuel Vadot};
284*f126890aSEmmanuel Vadot
285*f126890aSEmmanuel Vadot&pwm_tacho {
286*f126890aSEmmanuel Vadot	status = "okay";
287*f126890aSEmmanuel Vadot	pinctrl-names = "default";
288*f126890aSEmmanuel Vadot	pinctrl-0 = <&pinctrl_pwm0_default
289*f126890aSEmmanuel Vadot	&pinctrl_pwm1_default
290*f126890aSEmmanuel Vadot	&pinctrl_pwm2_default
291*f126890aSEmmanuel Vadot	&pinctrl_pwm3_default
292*f126890aSEmmanuel Vadot	&pinctrl_pwm4_default
293*f126890aSEmmanuel Vadot	&pinctrl_pwm5_default
294*f126890aSEmmanuel Vadot	&pinctrl_pwm6_default
295*f126890aSEmmanuel Vadot	&pinctrl_pwm7_default>;
296*f126890aSEmmanuel Vadot
297*f126890aSEmmanuel Vadot	fan@0 {
298*f126890aSEmmanuel Vadot		reg = <0x00>;
299*f126890aSEmmanuel Vadot		aspeed,fan-tach-ch = /bits/ 8 <0x00>;
300*f126890aSEmmanuel Vadot	};
301*f126890aSEmmanuel Vadot
302*f126890aSEmmanuel Vadot	fan@1 {
303*f126890aSEmmanuel Vadot		reg = <0x01>;
304*f126890aSEmmanuel Vadot		aspeed,fan-tach-ch = /bits/ 8 <0x01>;
305*f126890aSEmmanuel Vadot	};
306*f126890aSEmmanuel Vadot
307*f126890aSEmmanuel Vadot	fan@2 {
308*f126890aSEmmanuel Vadot		reg = <0x02>;
309*f126890aSEmmanuel Vadot		aspeed,fan-tach-ch = /bits/ 8 <0x02>;
310*f126890aSEmmanuel Vadot	};
311*f126890aSEmmanuel Vadot
312*f126890aSEmmanuel Vadot	fan@3 {
313*f126890aSEmmanuel Vadot		reg = <0x03>;
314*f126890aSEmmanuel Vadot		aspeed,fan-tach-ch = /bits/ 8 <0x03>;
315*f126890aSEmmanuel Vadot	};
316*f126890aSEmmanuel Vadot
317*f126890aSEmmanuel Vadot	fan@4 {
318*f126890aSEmmanuel Vadot		reg = <0x04>;
319*f126890aSEmmanuel Vadot		aspeed,fan-tach-ch = /bits/ 8 <0x04>;
320*f126890aSEmmanuel Vadot	};
321*f126890aSEmmanuel Vadot
322*f126890aSEmmanuel Vadot	fan@5 {
323*f126890aSEmmanuel Vadot		reg = <0x05>;
324*f126890aSEmmanuel Vadot		aspeed,fan-tach-ch = /bits/ 8 <0x05>;
325*f126890aSEmmanuel Vadot	};
326*f126890aSEmmanuel Vadot
327*f126890aSEmmanuel Vadot	fan@6 {
328*f126890aSEmmanuel Vadot		reg = <0x06>;
329*f126890aSEmmanuel Vadot		aspeed,fan-tach-ch = /bits/ 8 <0x06>;
330*f126890aSEmmanuel Vadot	};
331*f126890aSEmmanuel Vadot
332*f126890aSEmmanuel Vadot	fan@7 {
333*f126890aSEmmanuel Vadot		reg = <0x07>;
334*f126890aSEmmanuel Vadot		aspeed,fan-tach-ch = /bits/ 8 <0x07>;
335*f126890aSEmmanuel Vadot	};
336*f126890aSEmmanuel Vadot};
337*f126890aSEmmanuel Vadot
338*f126890aSEmmanuel Vadot&video {
339*f126890aSEmmanuel Vadot	status = "okay";
340*f126890aSEmmanuel Vadot	memory-region = <&video_engine_memory>;
341*f126890aSEmmanuel Vadot};
342*f126890aSEmmanuel Vadot
343*f126890aSEmmanuel Vadot&vhub {
344*f126890aSEmmanuel Vadot	status = "okay";
345*f126890aSEmmanuel Vadot};
346*f126890aSEmmanuel Vadot
347