1// SPDX-License-Identifier: GPL-2.0-or-later
2// Copyright 2022 Facebook Inc.
3
4/dts-v1/;
5#include "aspeed-g6.dtsi"
6#include <dt-bindings/gpio/aspeed-gpio.h>
7#include <dt-bindings/leds/leds-pca955x.h>
8#include <dt-bindings/i2c/i2c.h>
9
10/ {
11	model = "Facebook Greatlakes BMC";
12	compatible = "facebook,greatlakes-bmc", "aspeed,ast2600";
13
14	aliases {
15		serial4 = &uart5;
16	};
17
18	memory@80000000 {
19		device_type = "memory";
20		reg = <0x80000000 0x80000000>;
21	};
22
23	iio-hwmon {
24		compatible = "iio-hwmon";
25		io-channels = <&adc0 0>, <&adc0 1>, <&adc0 2>, <&adc0 3>,
26				<&adc0 4>, <&adc0 5>, <&adc0 6>, <&adc0 7>,
27				<&adc1 0>, <&adc1 2>, <&adc1 3>, <&adc1 4>,
28				<&adc1 5>, <&adc1 6>;
29	};
30};
31
32&uart1 {
33	status = "okay";
34};
35
36&uart2 {
37	status = "okay";
38};
39
40&uart3 {
41	status = "okay";
42};
43
44&uart4 {
45	status = "okay";
46};
47
48&uart5 {
49	status = "okay";
50};
51
52&wdt1 {
53	status = "okay";
54	pinctrl-names = "default";
55	pinctrl-0 = <&pinctrl_wdtrst1_default>;
56	aspeed,reset-type = "soc";
57	aspeed,external-signal;
58	aspeed,ext-push-pull;
59	aspeed,ext-active-high;
60	aspeed,ext-pulse-duration = <256>;
61};
62
63&mac3 {
64	status = "okay";
65	pinctrl-names = "default";
66	pinctrl-0 = <&pinctrl_rmii4_default>;
67	no-hw-checksum;
68	use-ncsi;
69	mlx,multi-host;
70	ncsi-ctrl,start-redo-probe;
71	ncsi-ctrl,no-channel-monitor;
72	ncsi-package = <1>;
73	ncsi-channel = <1>;
74	ncsi-rexmit = <1>;
75	ncsi-timeout = <2>;
76};
77
78&rtc {
79	status = "okay";
80};
81
82&fmc {
83	status = "okay";
84	flash@0 {
85		status = "okay";
86		m25p,fast-read;
87		label = "bmc";
88		spi-rx-bus-width = <4>;
89		spi-max-frequency = <50000000>;
90#include "openbmc-flash-layout-64.dtsi"
91	};
92	flash@1 {
93		status = "okay";
94		m25p,fast-read;
95		label = "bmc2";
96		spi-rx-bus-width = <4>;
97		spi-max-frequency = <50000000>;
98	};
99};
100
101&i2c0 {
102	status = "okay";
103	multi-master;
104	ipmb@10 {
105		compatible = "ipmb-dev";
106		reg = <(0x10 | I2C_OWN_SLAVE_ADDRESS)>;
107		i2c-protocol;
108	};
109};
110
111&i2c1 {
112	status = "okay";
113	multi-master;
114	ipmb@10 {
115		compatible = "ipmb-dev";
116		reg = <(0x10 | I2C_OWN_SLAVE_ADDRESS)>;
117		i2c-protocol;
118	};
119};
120
121&i2c2 {
122	status = "okay";
123	multi-master;
124	ipmb@10 {
125		compatible = "ipmb-dev";
126		reg = <(0x10 | I2C_OWN_SLAVE_ADDRESS)>;
127		i2c-protocol;
128	};
129};
130
131&i2c3 {
132	status = "okay";
133	multi-master;
134	ipmb@10 {
135		compatible = "ipmb-dev";
136		reg = <(0x10 | I2C_OWN_SLAVE_ADDRESS)>;
137		i2c-protocol;
138	};
139};
140
141&i2c4 {
142	status = "okay";
143};
144
145&i2c5 {
146	status = "okay";
147};
148
149&i2c6 {
150	status = "okay";
151};
152
153&i2c7 {
154	status = "okay";
155};
156
157&i2c8 {
158	status = "okay";
159	temperature-sensor@1f {
160		compatible = "ti,tmp421";
161		reg = <0x1f>;
162	};
163	// NIC EEPROM
164	eeprom@50 {
165		compatible = "st,24c32";
166		reg = <0x50>;
167	};
168};
169
170&i2c9 {
171	status = "okay";
172	multi-master;
173	ipmb@10 {
174		compatible = "ipmb-dev";
175		reg = <(0x10 | I2C_OWN_SLAVE_ADDRESS)>;
176		i2c-protocol;
177	};
178};
179
180&i2c10 {
181	status = "okay";
182};
183
184&i2c11 {
185	status = "okay";
186	eeprom@51 {
187		compatible = "atmel,24c128";
188		reg = <0x51>;
189	};
190	eeprom@54 {
191		compatible = "atmel,24c128";
192		reg = <0x54>;
193	};
194};
195
196&i2c12 {
197	status = "okay";
198	temperature-sensor@4f {
199		compatible = "lm75";
200		reg = <0x4f>;
201	};
202};
203
204&i2c13 {
205	status = "okay";
206};
207
208&adc0 {
209	ref_voltage = <2500>;
210	status = "okay";
211	pinctrl-0 = <&pinctrl_adc0_default &pinctrl_adc1_default
212			&pinctrl_adc2_default &pinctrl_adc3_default
213			&pinctrl_adc4_default &pinctrl_adc5_default
214			&pinctrl_adc6_default &pinctrl_adc7_default>;
215};
216
217&adc1 {
218	ref_voltage = <2500>;
219	status = "okay";
220	pinctrl-0 = <&pinctrl_adc8_default &pinctrl_adc10_default
221			&pinctrl_adc11_default &pinctrl_adc12_default
222			&pinctrl_adc13_default &pinctrl_adc14_default>;
223};
224
225
226&ehci0 {
227	status = "okay";
228};
229
230&ehci1 {
231	status = "okay";
232};
233
234&uhci {
235	status = "okay";
236};
237
238&gpio0 {
239	pinctrl-names = "default";
240	pinctrl-0 = <&pinctrl_gpiu1_default &pinctrl_gpiu7_default>;
241};
242