1// SPDX-License-Identifier: GPL-2.0+
2// Copyright 2019 YADRO
3/dts-v1/;
4#include "aspeed-g5.dtsi"
5#include <dt-bindings/gpio/aspeed-gpio.h>
6
7/ {
8	model = "Nicole BMC";
9	compatible = "yadro,nicole-bmc", "aspeed,ast2500";
10
11	chosen {
12		stdout-path = &uart5;
13		bootargs = "console=ttyS4,115200 earlycon";
14	};
15
16	memory@80000000 {
17		reg = <0x80000000 0x20000000>;
18	};
19
20	reserved-memory {
21		#address-cells = <1>;
22		#size-cells = <1>;
23		ranges;
24
25		vga_memory: framebuffer@9f000000 {
26			no-map;
27			reg = <0x9f000000 0x01000000>; /* 16M */
28		};
29
30		flash_memory: region@98000000 {
31			no-map;
32			reg = <0x98000000 0x04000000>; /* 64M */
33		};
34
35		coldfire_memory: codefire_memory@9ef00000 {
36			reg = <0x9ef00000 0x00100000>;
37			no-map;
38		};
39
40		gfx_memory: framebuffer {
41			size = <0x01000000>;
42			alignment = <0x01000000>;
43			compatible = "shared-dma-pool";
44			reusable;
45		};
46
47		video_engine_memory: jpegbuffer {
48			size = <0x02000000>;	/* 32M */
49			alignment = <0x01000000>;
50			compatible = "shared-dma-pool";
51			reusable;
52		};
53	};
54
55	leds {
56		compatible = "gpio-leds";
57
58		power {
59			label = "platform:green:power";
60			gpios = <&gpio ASPEED_GPIO(AA, 4) GPIO_ACTIVE_HIGH>;
61		};
62
63		identify {
64			label = "platform:blue:indicator";
65			gpios = <&gpio ASPEED_GPIO(AA, 7) GPIO_ACTIVE_HIGH>;
66		};
67
68		fault {
69			label = "platform:red:fault";
70			gpios = <&gpio ASPEED_GPIO(AA, 3) GPIO_ACTIVE_HIGH>;
71		};
72
73		attention {
74			label = "platform:yellow:alarm";
75			gpios = <&gpio ASPEED_GPIO(AA, 1) GPIO_ACTIVE_HIGH>;
76		};
77	};
78
79	fsi: gpio-fsi {
80		compatible = "aspeed,ast2500-cf-fsi-master", "fsi-master";
81		#address-cells = <2>;
82		#size-cells = <0>;
83		no-gpio-delays;
84
85		memory-region = <&coldfire_memory>;
86		aspeed,sram = <&sram>;
87		aspeed,cvic = <&cvic>;
88
89		clock-gpios = <&gpio ASPEED_GPIO(AA, 0) GPIO_ACTIVE_HIGH>;
90		data-gpios = <&gpio ASPEED_GPIO(AA, 2) GPIO_ACTIVE_HIGH>;
91		mux-gpios = <&gpio ASPEED_GPIO(A, 6) GPIO_ACTIVE_HIGH>;
92		enable-gpios = <&gpio ASPEED_GPIO(D, 0) GPIO_ACTIVE_HIGH>;
93		trans-gpios = <&gpio ASPEED_GPIO(P, 1) GPIO_ACTIVE_HIGH>;
94	};
95
96	gpio-keys {
97		compatible = "gpio-keys";
98
99		event-checkstop {
100			label = "checkstop";
101			gpios = <&gpio ASPEED_GPIO(J, 2) GPIO_ACTIVE_LOW>;
102			linux,code = <ASPEED_GPIO(J, 2)>;
103		};
104	};
105
106	iio-hwmon-battery {
107		compatible = "iio-hwmon";
108		io-channels = <&adc 12>;
109	};
110};
111
112&fmc {
113	status = "okay";
114	flash@0 {
115		status = "okay";
116		m25p,fast-read;
117		label = "bmc";
118		spi-max-frequency = <50000000>;
119#include "openbmc-flash-layout.dtsi"
120	};
121};
122
123&spi1 {
124	status = "okay";
125	pinctrl-names = "default";
126	pinctrl-0 = <&pinctrl_spi1_default>;
127
128	flash@0 {
129		status = "okay";
130		m25p,fast-read;
131		label = "pnor";
132		spi-max-frequency = <100000000>;
133	};
134};
135
136&lpc_ctrl {
137	status = "okay";
138	memory-region = <&flash_memory>;
139	flash = <&spi1>;
140};
141
142&uart1 {
143	/* Rear RS-232 connector */
144	status = "okay";
145
146	pinctrl-names = "default";
147	pinctrl-0 = <&pinctrl_txd1_default
148			&pinctrl_rxd1_default
149			&pinctrl_nrts1_default
150			&pinctrl_ndtr1_default
151			&pinctrl_ndsr1_default
152			&pinctrl_ncts1_default
153			&pinctrl_ndcd1_default
154			&pinctrl_nri1_default>;
155};
156
157&uart5 {
158	status = "okay";
159};
160
161&mac0 {
162	status = "okay";
163
164	use-ncsi;
165
166	pinctrl-names = "default";
167	pinctrl-0 = <&pinctrl_rmii1_default>;
168	clocks = <&syscon ASPEED_CLK_GATE_MAC1CLK>,
169		 <&syscon ASPEED_CLK_MAC1RCLK>;
170	clock-names = "MACCLK", "RCLK";
171};
172
173&i2c0 {
174	status = "okay";
175
176	eeprom@50 {
177		compatible = "atmel,24c256";
178		reg = <0x50>;
179		pagesize = <64>;
180	};
181};
182
183&i2c2 {
184	status = "okay";
185	/* CPU0 characterization connector */
186};
187
188&i2c3 {
189	status = "okay";
190	/* CLK GEN SI5338 */
191};
192
193&i2c4 {
194	status = "okay";
195	/* Voltage regulators for CPU0 */
196};
197
198&i2c5 {
199	status = "okay";
200	/* Voltage regulators for CPU1 */
201};
202
203&i2c6 {
204	status = "okay";
205
206	rtc@32 {
207		compatible = "epson,rx8900";
208		reg = <0x32>;
209	};
210};
211
212&i2c7 {
213	status = "okay";
214	/* CPLD */
215};
216
217&gpio {
218	gpio-line-names =
219	/*A0-A7*/	"","cfam-reset","","","","","fsi-mux","",
220	/*B0-B7*/	"","","","","","","","",
221	/*C0-C7*/	"","","","","","","","",
222	/*D0-D7*/	"fsi-enable","bmc_power_up","sys_pwrok_buf",
223			"func_mode0","func_mode1","func_mode2","","",
224	/*E0-E7*/	"","ncsi_cfg","","","","","","",
225	/*F0-F7*/	"","","","","","","","",
226	/*G0-G7*/	"","","","","","","","",
227	/*H0-H7*/	"","","","","","","","",
228	/*I0-I7*/	"","","","","","","","",
229	/*J0-J7*/	"","","checkstop","","","","","",
230	/*K0-K7*/	"","","","","","","","",
231	/*L0-L7*/	"","","","","","","","",
232	/*M0-M7*/	"","","","","","","","",
233	/*N0-N7*/	"","","","","","","","",
234	/*O0-O7*/	"","","power-button","","","","","",
235	/*P0-P7*/	"","fsi-trans","pm_rtc_adc_en","","","","","",
236	/*Q0-Q7*/	"","","","","","","","id-button",
237	/*R0-R7*/	"","software_pwrgood","","","","","","",
238	/*S0-S7*/	"","","","","","","","seq_cont",
239	/*T0-T7*/	"","","","","","","","",
240	/*U0-U7*/	"","","","","","","","",
241	/*V0-V7*/	"","","","","","","","",
242	/*W0-W7*/	"","","","","","","","",
243	/*X0-X7*/	"","","","","","","","",
244	/*Y0-Y7*/	"","","","","","","","",
245	/*Z0-Z7*/	"","","","","","","","",
246	/*AA0-AA7*/	"fsi-clock","led-attention","fsi-data","led-fault",
247			"led-power","","","led-identify",
248	/*AB0-AB7*/	"","","","","","","","",
249	/*AC0-AC7*/	"","","","","","","","";
250
251	func_mode0 {
252		gpio-hog;
253		gpios = <ASPEED_GPIO(D, 3) GPIO_ACTIVE_HIGH>;
254		output-low;
255	};
256	func_mode1 {
257		gpio-hog;
258		gpios = <ASPEED_GPIO(D, 4) GPIO_ACTIVE_HIGH>;
259		output-low;
260	};
261	func_mode2 {
262		gpio-hog;
263		gpios = <ASPEED_GPIO(D, 5) GPIO_ACTIVE_HIGH>;
264		output-low;
265	};
266	seq_cont {
267		gpio-hog;
268		gpios = <ASPEED_GPIO(S, 7) GPIO_ACTIVE_HIGH>;
269		output-low;
270	};
271	ncsi_cfg {
272		gpio-hog;
273		input;
274		gpios = <ASPEED_GPIO(E, 1) GPIO_ACTIVE_HIGH>;
275	};
276};
277
278&vuart {
279	status = "okay";
280};
281
282&gfx {
283	status = "okay";
284	memory-region = <&gfx_memory>;
285};
286
287&pinctrl {
288	aspeed,external-nodes = <&gfx &lhc>;
289};
290
291&ibt {
292	status = "okay";
293};
294
295&vhub {
296	status = "okay";
297};
298
299&adc {
300	status = "okay";
301
302	pinctrl-names = "default";
303	pinctrl-0 = <&pinctrl_adc0_default
304			&pinctrl_adc1_default
305			&pinctrl_adc2_default
306			&pinctrl_adc3_default
307			&pinctrl_adc4_default
308			&pinctrl_adc5_default
309			&pinctrl_adc6_default
310			&pinctrl_adc7_default
311			&pinctrl_adc8_default
312			&pinctrl_adc9_default
313			&pinctrl_adc10_default
314			&pinctrl_adc11_default
315			&pinctrl_adc12_default
316			&pinctrl_adc13_default
317			&pinctrl_adc14_default
318			&pinctrl_adc15_default>;
319};
320
321&video {
322	status = "okay";
323	memory-region = <&video_engine_memory>;
324};
325
326#include "ibm-power9-dual.dtsi"
327