xref: /freebsd/sys/contrib/device-tree/src/arm/aspeed/aspeed-bmc-facebook-greatlakes.dts (revision f126890ac5386406dadf7c4cfa9566cbb56537c5)
1*f126890aSEmmanuel Vadot// SPDX-License-Identifier: GPL-2.0-or-later
2*f126890aSEmmanuel Vadot// Copyright 2022 Facebook Inc.
3*f126890aSEmmanuel Vadot
4*f126890aSEmmanuel Vadot/dts-v1/;
5*f126890aSEmmanuel Vadot#include "aspeed-g6.dtsi"
6*f126890aSEmmanuel Vadot#include <dt-bindings/gpio/aspeed-gpio.h>
7*f126890aSEmmanuel Vadot#include <dt-bindings/leds/leds-pca955x.h>
8*f126890aSEmmanuel Vadot#include <dt-bindings/i2c/i2c.h>
9*f126890aSEmmanuel Vadot
10*f126890aSEmmanuel Vadot/ {
11*f126890aSEmmanuel Vadot	model = "Facebook Greatlakes BMC";
12*f126890aSEmmanuel Vadot	compatible = "facebook,greatlakes-bmc", "aspeed,ast2600";
13*f126890aSEmmanuel Vadot
14*f126890aSEmmanuel Vadot	aliases {
15*f126890aSEmmanuel Vadot		serial4 = &uart5;
16*f126890aSEmmanuel Vadot	};
17*f126890aSEmmanuel Vadot
18*f126890aSEmmanuel Vadot	memory@80000000 {
19*f126890aSEmmanuel Vadot		device_type = "memory";
20*f126890aSEmmanuel Vadot		reg = <0x80000000 0x80000000>;
21*f126890aSEmmanuel Vadot	};
22*f126890aSEmmanuel Vadot
23*f126890aSEmmanuel Vadot	iio-hwmon {
24*f126890aSEmmanuel Vadot		compatible = "iio-hwmon";
25*f126890aSEmmanuel Vadot		io-channels = <&adc0 0>, <&adc0 1>, <&adc0 2>, <&adc0 3>,
26*f126890aSEmmanuel Vadot				<&adc0 4>, <&adc0 5>, <&adc0 6>, <&adc0 7>,
27*f126890aSEmmanuel Vadot				<&adc1 0>, <&adc1 2>, <&adc1 3>, <&adc1 4>,
28*f126890aSEmmanuel Vadot				<&adc1 5>, <&adc1 6>;
29*f126890aSEmmanuel Vadot	};
30*f126890aSEmmanuel Vadot};
31*f126890aSEmmanuel Vadot
32*f126890aSEmmanuel Vadot&uart1 {
33*f126890aSEmmanuel Vadot	status = "okay";
34*f126890aSEmmanuel Vadot};
35*f126890aSEmmanuel Vadot
36*f126890aSEmmanuel Vadot&uart2 {
37*f126890aSEmmanuel Vadot	status = "okay";
38*f126890aSEmmanuel Vadot};
39*f126890aSEmmanuel Vadot
40*f126890aSEmmanuel Vadot&uart3 {
41*f126890aSEmmanuel Vadot	status = "okay";
42*f126890aSEmmanuel Vadot};
43*f126890aSEmmanuel Vadot
44*f126890aSEmmanuel Vadot&uart4 {
45*f126890aSEmmanuel Vadot	status = "okay";
46*f126890aSEmmanuel Vadot};
47*f126890aSEmmanuel Vadot
48*f126890aSEmmanuel Vadot&uart5 {
49*f126890aSEmmanuel Vadot	status = "okay";
50*f126890aSEmmanuel Vadot};
51*f126890aSEmmanuel Vadot
52*f126890aSEmmanuel Vadot&wdt1 {
53*f126890aSEmmanuel Vadot	status = "okay";
54*f126890aSEmmanuel Vadot	pinctrl-names = "default";
55*f126890aSEmmanuel Vadot	pinctrl-0 = <&pinctrl_wdtrst1_default>;
56*f126890aSEmmanuel Vadot	aspeed,reset-type = "soc";
57*f126890aSEmmanuel Vadot	aspeed,external-signal;
58*f126890aSEmmanuel Vadot	aspeed,ext-push-pull;
59*f126890aSEmmanuel Vadot	aspeed,ext-active-high;
60*f126890aSEmmanuel Vadot	aspeed,ext-pulse-duration = <256>;
61*f126890aSEmmanuel Vadot};
62*f126890aSEmmanuel Vadot
63*f126890aSEmmanuel Vadot&mac3 {
64*f126890aSEmmanuel Vadot	status = "okay";
65*f126890aSEmmanuel Vadot	pinctrl-names = "default";
66*f126890aSEmmanuel Vadot	pinctrl-0 = <&pinctrl_rmii4_default>;
67*f126890aSEmmanuel Vadot	no-hw-checksum;
68*f126890aSEmmanuel Vadot	use-ncsi;
69*f126890aSEmmanuel Vadot	mlx,multi-host;
70*f126890aSEmmanuel Vadot	ncsi-ctrl,start-redo-probe;
71*f126890aSEmmanuel Vadot	ncsi-ctrl,no-channel-monitor;
72*f126890aSEmmanuel Vadot	ncsi-package = <1>;
73*f126890aSEmmanuel Vadot	ncsi-channel = <1>;
74*f126890aSEmmanuel Vadot	ncsi-rexmit = <1>;
75*f126890aSEmmanuel Vadot	ncsi-timeout = <2>;
76*f126890aSEmmanuel Vadot};
77*f126890aSEmmanuel Vadot
78*f126890aSEmmanuel Vadot&rtc {
79*f126890aSEmmanuel Vadot	status = "okay";
80*f126890aSEmmanuel Vadot};
81*f126890aSEmmanuel Vadot
82*f126890aSEmmanuel Vadot&fmc {
83*f126890aSEmmanuel Vadot	status = "okay";
84*f126890aSEmmanuel Vadot	flash@0 {
85*f126890aSEmmanuel Vadot		status = "okay";
86*f126890aSEmmanuel Vadot		m25p,fast-read;
87*f126890aSEmmanuel Vadot		label = "bmc";
88*f126890aSEmmanuel Vadot		spi-rx-bus-width = <4>;
89*f126890aSEmmanuel Vadot		spi-max-frequency = <50000000>;
90*f126890aSEmmanuel Vadot#include "openbmc-flash-layout-64.dtsi"
91*f126890aSEmmanuel Vadot	};
92*f126890aSEmmanuel Vadot	flash@1 {
93*f126890aSEmmanuel Vadot		status = "okay";
94*f126890aSEmmanuel Vadot		m25p,fast-read;
95*f126890aSEmmanuel Vadot		label = "bmc2";
96*f126890aSEmmanuel Vadot		spi-rx-bus-width = <4>;
97*f126890aSEmmanuel Vadot		spi-max-frequency = <50000000>;
98*f126890aSEmmanuel Vadot	};
99*f126890aSEmmanuel Vadot};
100*f126890aSEmmanuel Vadot
101*f126890aSEmmanuel Vadot&i2c0 {
102*f126890aSEmmanuel Vadot	status = "okay";
103*f126890aSEmmanuel Vadot	multi-master;
104*f126890aSEmmanuel Vadot	ipmb@10 {
105*f126890aSEmmanuel Vadot		compatible = "ipmb-dev";
106*f126890aSEmmanuel Vadot		reg = <(0x10 | I2C_OWN_SLAVE_ADDRESS)>;
107*f126890aSEmmanuel Vadot		i2c-protocol;
108*f126890aSEmmanuel Vadot	};
109*f126890aSEmmanuel Vadot};
110*f126890aSEmmanuel Vadot
111*f126890aSEmmanuel Vadot&i2c1 {
112*f126890aSEmmanuel Vadot	status = "okay";
113*f126890aSEmmanuel Vadot	multi-master;
114*f126890aSEmmanuel Vadot	ipmb@10 {
115*f126890aSEmmanuel Vadot		compatible = "ipmb-dev";
116*f126890aSEmmanuel Vadot		reg = <(0x10 | I2C_OWN_SLAVE_ADDRESS)>;
117*f126890aSEmmanuel Vadot		i2c-protocol;
118*f126890aSEmmanuel Vadot	};
119*f126890aSEmmanuel Vadot};
120*f126890aSEmmanuel Vadot
121*f126890aSEmmanuel Vadot&i2c2 {
122*f126890aSEmmanuel Vadot	status = "okay";
123*f126890aSEmmanuel Vadot	multi-master;
124*f126890aSEmmanuel Vadot	ipmb@10 {
125*f126890aSEmmanuel Vadot		compatible = "ipmb-dev";
126*f126890aSEmmanuel Vadot		reg = <(0x10 | I2C_OWN_SLAVE_ADDRESS)>;
127*f126890aSEmmanuel Vadot		i2c-protocol;
128*f126890aSEmmanuel Vadot	};
129*f126890aSEmmanuel Vadot};
130*f126890aSEmmanuel Vadot
131*f126890aSEmmanuel Vadot&i2c3 {
132*f126890aSEmmanuel Vadot	status = "okay";
133*f126890aSEmmanuel Vadot	multi-master;
134*f126890aSEmmanuel Vadot	ipmb@10 {
135*f126890aSEmmanuel Vadot		compatible = "ipmb-dev";
136*f126890aSEmmanuel Vadot		reg = <(0x10 | I2C_OWN_SLAVE_ADDRESS)>;
137*f126890aSEmmanuel Vadot		i2c-protocol;
138*f126890aSEmmanuel Vadot	};
139*f126890aSEmmanuel Vadot};
140*f126890aSEmmanuel Vadot
141*f126890aSEmmanuel Vadot&i2c4 {
142*f126890aSEmmanuel Vadot	status = "okay";
143*f126890aSEmmanuel Vadot};
144*f126890aSEmmanuel Vadot
145*f126890aSEmmanuel Vadot&i2c5 {
146*f126890aSEmmanuel Vadot	status = "okay";
147*f126890aSEmmanuel Vadot};
148*f126890aSEmmanuel Vadot
149*f126890aSEmmanuel Vadot&i2c6 {
150*f126890aSEmmanuel Vadot	status = "okay";
151*f126890aSEmmanuel Vadot};
152*f126890aSEmmanuel Vadot
153*f126890aSEmmanuel Vadot&i2c7 {
154*f126890aSEmmanuel Vadot	status = "okay";
155*f126890aSEmmanuel Vadot};
156*f126890aSEmmanuel Vadot
157*f126890aSEmmanuel Vadot&i2c8 {
158*f126890aSEmmanuel Vadot	status = "okay";
159*f126890aSEmmanuel Vadot	mctp-controller;
160*f126890aSEmmanuel Vadot	temperature-sensor@1f {
161*f126890aSEmmanuel Vadot		compatible = "ti,tmp421";
162*f126890aSEmmanuel Vadot		reg = <0x1f>;
163*f126890aSEmmanuel Vadot	};
164*f126890aSEmmanuel Vadot	// NIC EEPROM
165*f126890aSEmmanuel Vadot	eeprom@50 {
166*f126890aSEmmanuel Vadot		compatible = "st,24c32";
167*f126890aSEmmanuel Vadot		reg = <0x50>;
168*f126890aSEmmanuel Vadot	};
169*f126890aSEmmanuel Vadot	mctp@10 {
170*f126890aSEmmanuel Vadot		compatible = "mctp-i2c-controller";
171*f126890aSEmmanuel Vadot		reg = <(0x10 | I2C_OWN_SLAVE_ADDRESS)>;
172*f126890aSEmmanuel Vadot	};
173*f126890aSEmmanuel Vadot};
174*f126890aSEmmanuel Vadot
175*f126890aSEmmanuel Vadot&i2c9 {
176*f126890aSEmmanuel Vadot	status = "okay";
177*f126890aSEmmanuel Vadot	multi-master;
178*f126890aSEmmanuel Vadot	ipmb@10 {
179*f126890aSEmmanuel Vadot		compatible = "ipmb-dev";
180*f126890aSEmmanuel Vadot		reg = <(0x10 | I2C_OWN_SLAVE_ADDRESS)>;
181*f126890aSEmmanuel Vadot		i2c-protocol;
182*f126890aSEmmanuel Vadot	};
183*f126890aSEmmanuel Vadot};
184*f126890aSEmmanuel Vadot
185*f126890aSEmmanuel Vadot&i2c10 {
186*f126890aSEmmanuel Vadot	status = "okay";
187*f126890aSEmmanuel Vadot};
188*f126890aSEmmanuel Vadot
189*f126890aSEmmanuel Vadot&i2c11 {
190*f126890aSEmmanuel Vadot	status = "okay";
191*f126890aSEmmanuel Vadot	eeprom@51 {
192*f126890aSEmmanuel Vadot		compatible = "atmel,24c128";
193*f126890aSEmmanuel Vadot		reg = <0x51>;
194*f126890aSEmmanuel Vadot	};
195*f126890aSEmmanuel Vadot	eeprom@54 {
196*f126890aSEmmanuel Vadot		compatible = "atmel,24c128";
197*f126890aSEmmanuel Vadot		reg = <0x54>;
198*f126890aSEmmanuel Vadot	};
199*f126890aSEmmanuel Vadot};
200*f126890aSEmmanuel Vadot
201*f126890aSEmmanuel Vadot&i2c12 {
202*f126890aSEmmanuel Vadot	status = "okay";
203*f126890aSEmmanuel Vadot	temperature-sensor@4f {
204*f126890aSEmmanuel Vadot		compatible = "lm75";
205*f126890aSEmmanuel Vadot		reg = <0x4f>;
206*f126890aSEmmanuel Vadot	};
207*f126890aSEmmanuel Vadot};
208*f126890aSEmmanuel Vadot
209*f126890aSEmmanuel Vadot&i2c13 {
210*f126890aSEmmanuel Vadot	status = "okay";
211*f126890aSEmmanuel Vadot};
212*f126890aSEmmanuel Vadot
213*f126890aSEmmanuel Vadot&adc0 {
214*f126890aSEmmanuel Vadot	ref_voltage = <2500>;
215*f126890aSEmmanuel Vadot	status = "okay";
216*f126890aSEmmanuel Vadot	pinctrl-0 = <&pinctrl_adc0_default &pinctrl_adc1_default
217*f126890aSEmmanuel Vadot			&pinctrl_adc2_default &pinctrl_adc3_default
218*f126890aSEmmanuel Vadot			&pinctrl_adc4_default &pinctrl_adc5_default
219*f126890aSEmmanuel Vadot			&pinctrl_adc6_default &pinctrl_adc7_default>;
220*f126890aSEmmanuel Vadot};
221*f126890aSEmmanuel Vadot
222*f126890aSEmmanuel Vadot&adc1 {
223*f126890aSEmmanuel Vadot	ref_voltage = <2500>;
224*f126890aSEmmanuel Vadot	status = "okay";
225*f126890aSEmmanuel Vadot	pinctrl-0 = <&pinctrl_adc8_default &pinctrl_adc10_default
226*f126890aSEmmanuel Vadot			&pinctrl_adc11_default &pinctrl_adc12_default
227*f126890aSEmmanuel Vadot			&pinctrl_adc13_default &pinctrl_adc14_default>;
228*f126890aSEmmanuel Vadot};
229*f126890aSEmmanuel Vadot
230*f126890aSEmmanuel Vadot
231*f126890aSEmmanuel Vadot&ehci0 {
232*f126890aSEmmanuel Vadot	status = "okay";
233*f126890aSEmmanuel Vadot};
234*f126890aSEmmanuel Vadot
235*f126890aSEmmanuel Vadot&ehci1 {
236*f126890aSEmmanuel Vadot	status = "okay";
237*f126890aSEmmanuel Vadot};
238*f126890aSEmmanuel Vadot
239*f126890aSEmmanuel Vadot&uhci {
240*f126890aSEmmanuel Vadot	status = "okay";
241*f126890aSEmmanuel Vadot};
242*f126890aSEmmanuel Vadot
243*f126890aSEmmanuel Vadot&gpio0 {
244*f126890aSEmmanuel Vadot	pinctrl-names = "default";
245*f126890aSEmmanuel Vadot	pinctrl-0 = <&pinctrl_gpiu1_default &pinctrl_gpiu7_default>;
246*f126890aSEmmanuel Vadot
247*f126890aSEmmanuel Vadot	gpio-line-names =
248*f126890aSEmmanuel Vadot	/*A0-A7*/ "","","","","","","","",
249*f126890aSEmmanuel Vadot	/*B0-B7*/ "power-bmc-nic","presence-ocp-debug",
250*f126890aSEmmanuel Vadot		  "power-bmc-slot1","power-bmc-slot2",
251*f126890aSEmmanuel Vadot		  "power-bmc-slot3","power-bmc-slot4","","",
252*f126890aSEmmanuel Vadot	/*C0-C7*/ "presence-ocp-nic","","","reset-cause-nic-primary",
253*f126890aSEmmanuel Vadot		  "reset-cause-nic-secondary","","","",
254*f126890aSEmmanuel Vadot	/*D0-D7*/ "","","","","","","","",
255*f126890aSEmmanuel Vadot	/*E0-E7*/ "","","","","","","","",
256*f126890aSEmmanuel Vadot	/*F0-F7*/ "slot1-bmc-reset-button","slot2-bmc-reset-button",
257*f126890aSEmmanuel Vadot		  "slot3-bmc-reset-button","slot4-bmc-reset-button",
258*f126890aSEmmanuel Vadot		  "","","","presence-emmc",
259*f126890aSEmmanuel Vadot	/*G0-G7*/ "","","","","","","","",
260*f126890aSEmmanuel Vadot	/*H0-H7*/ "","","","",
261*f126890aSEmmanuel Vadot		  "presence-mb-slot1","presence-mb-slot2",
262*f126890aSEmmanuel Vadot		  "presence-mb-slot3","presence-mb-slot4",
263*f126890aSEmmanuel Vadot	/*I0-I7*/ "","","","","","","bb-bmc-button","",
264*f126890aSEmmanuel Vadot	/*J0-J7*/ "","","","","","","","",
265*f126890aSEmmanuel Vadot	/*K0-K7*/ "","","","","","","","",
266*f126890aSEmmanuel Vadot	/*L0-L7*/ "","","","","","","","",
267*f126890aSEmmanuel Vadot	/*M0-M7*/ "","power-nic-bmc-enable","","usb-bmc-enable","","reset-cause-usb-hub","","",
268*f126890aSEmmanuel Vadot	/*N0-N7*/ "","","","","bmc-ready","","","",
269*f126890aSEmmanuel Vadot	/*O0-O7*/ "","","","","","","fan0-bmc-cpld-enable","fan1-bmc-cpld-enable",
270*f126890aSEmmanuel Vadot	/*P0-P7*/ "fan2-bmc-cpld-enable","fan3-bmc-cpld-enable",
271*f126890aSEmmanuel Vadot		  "reset-cause-pcie-slot1","reset-cause-pcie-slot2",
272*f126890aSEmmanuel Vadot		  "reset-cause-pcie-slot3","reset-cause-pcie-slot4","","",
273*f126890aSEmmanuel Vadot	/*Q0-Q7*/ "","","","","","","","",
274*f126890aSEmmanuel Vadot	/*R0-R7*/ "","","","","","","","",
275*f126890aSEmmanuel Vadot	/*S0-S7*/ "","","power-p5v-usb","presence-bmc-tpm","","","","",
276*f126890aSEmmanuel Vadot	/*T0-T7*/ "","","","","","","","",
277*f126890aSEmmanuel Vadot	/*U0-U7*/ "","","","","","","","GND",
278*f126890aSEmmanuel Vadot	/*V0-V7*/ "bmc-slot1-ac-button","bmc-slot2-ac-button",
279*f126890aSEmmanuel Vadot		  "bmc-slot3-ac-button","bmc-slot4-ac-button",
280*f126890aSEmmanuel Vadot		  "","","","",
281*f126890aSEmmanuel Vadot	/*W0-W7*/ "","","","","","","","",
282*f126890aSEmmanuel Vadot	/*X0-X7*/ "","","","","","","","",
283*f126890aSEmmanuel Vadot	/*Y0-Y7*/ "","","","reset-cause-emmc","","","","",
284*f126890aSEmmanuel Vadot	/*Z0-Z7*/ "","","","","","","","";
285*f126890aSEmmanuel Vadot};
286*f126890aSEmmanuel Vadot
287*f126890aSEmmanuel Vadot&gpio1 {
288*f126890aSEmmanuel Vadot	gpio-line-names =
289*f126890aSEmmanuel Vadot	/*18A0-18A7*/ "","","","","","","","",
290*f126890aSEmmanuel Vadot	/*18B0-18B7*/ "","","","","","","","",
291*f126890aSEmmanuel Vadot	/*18C0-18C7*/ "","","","","","","","",
292*f126890aSEmmanuel Vadot	/*18D0-18D7*/ "","","","","","","","",
293*f126890aSEmmanuel Vadot	/*18E0-18E3*/ "","","","","","","","";
294*f126890aSEmmanuel Vadot};
295