xref: /freebsd-src/sys/contrib/device-tree/src/arm/aspeed/aspeed-ast2600-evb.dts (revision f126890ac5386406dadf7c4cfa9566cbb56537c5)
1*f126890aSEmmanuel Vadot// SPDX-License-Identifier: GPL-2.0-or-later
2*f126890aSEmmanuel Vadot// Copyright 2019 IBM Corp.
3*f126890aSEmmanuel Vadot
4*f126890aSEmmanuel Vadot/dts-v1/;
5*f126890aSEmmanuel Vadot
6*f126890aSEmmanuel Vadot#include "aspeed-g6.dtsi"
7*f126890aSEmmanuel Vadot#include <dt-bindings/gpio/aspeed-gpio.h>
8*f126890aSEmmanuel Vadot
9*f126890aSEmmanuel Vadot/ {
10*f126890aSEmmanuel Vadot	model = "AST2600 EVB";
11*f126890aSEmmanuel Vadot	compatible = "aspeed,ast2600-evb", "aspeed,ast2600";
12*f126890aSEmmanuel Vadot
13*f126890aSEmmanuel Vadot	aliases {
14*f126890aSEmmanuel Vadot		serial4 = &uart5;
15*f126890aSEmmanuel Vadot	};
16*f126890aSEmmanuel Vadot
17*f126890aSEmmanuel Vadot	chosen {
18*f126890aSEmmanuel Vadot		bootargs = "console=ttyS4,115200n8";
19*f126890aSEmmanuel Vadot	};
20*f126890aSEmmanuel Vadot
21*f126890aSEmmanuel Vadot	memory@80000000 {
22*f126890aSEmmanuel Vadot		device_type = "memory";
23*f126890aSEmmanuel Vadot		reg = <0x80000000 0x80000000>;
24*f126890aSEmmanuel Vadot	};
25*f126890aSEmmanuel Vadot
26*f126890aSEmmanuel Vadot	reserved-memory {
27*f126890aSEmmanuel Vadot		#address-cells = <1>;
28*f126890aSEmmanuel Vadot		#size-cells = <1>;
29*f126890aSEmmanuel Vadot		ranges;
30*f126890aSEmmanuel Vadot
31*f126890aSEmmanuel Vadot		video_engine_memory: video {
32*f126890aSEmmanuel Vadot			size = <0x04000000>;
33*f126890aSEmmanuel Vadot			alignment = <0x01000000>;
34*f126890aSEmmanuel Vadot			compatible = "shared-dma-pool";
35*f126890aSEmmanuel Vadot			reusable;
36*f126890aSEmmanuel Vadot		};
37*f126890aSEmmanuel Vadot
38*f126890aSEmmanuel Vadot		gfx_memory: framebuffer {
39*f126890aSEmmanuel Vadot			size = <0x01000000>;
40*f126890aSEmmanuel Vadot			alignment = <0x01000000>;
41*f126890aSEmmanuel Vadot			compatible = "shared-dma-pool";
42*f126890aSEmmanuel Vadot			reusable;
43*f126890aSEmmanuel Vadot		};
44*f126890aSEmmanuel Vadot	};
45*f126890aSEmmanuel Vadot
46*f126890aSEmmanuel Vadot	vcc_sdhci0: regulator-vcc-sdhci0 {
47*f126890aSEmmanuel Vadot		compatible = "regulator-fixed";
48*f126890aSEmmanuel Vadot		regulator-name = "SDHCI0 Vcc";
49*f126890aSEmmanuel Vadot		regulator-min-microvolt = <3300000>;
50*f126890aSEmmanuel Vadot		regulator-max-microvolt = <3300000>;
51*f126890aSEmmanuel Vadot		gpios = <&gpio0 ASPEED_GPIO(V, 0) GPIO_ACTIVE_HIGH>;
52*f126890aSEmmanuel Vadot		enable-active-high;
53*f126890aSEmmanuel Vadot	};
54*f126890aSEmmanuel Vadot
55*f126890aSEmmanuel Vadot	vccq_sdhci0: regulator-vccq-sdhci0 {
56*f126890aSEmmanuel Vadot		compatible = "regulator-gpio";
57*f126890aSEmmanuel Vadot		regulator-name = "SDHCI0 VccQ";
58*f126890aSEmmanuel Vadot		regulator-min-microvolt = <1800000>;
59*f126890aSEmmanuel Vadot		regulator-max-microvolt = <3300000>;
60*f126890aSEmmanuel Vadot		gpios = <&gpio0 ASPEED_GPIO(V, 1) GPIO_ACTIVE_HIGH>;
61*f126890aSEmmanuel Vadot		gpios-states = <1>;
62*f126890aSEmmanuel Vadot		states = <3300000 1>,
63*f126890aSEmmanuel Vadot			 <1800000 0>;
64*f126890aSEmmanuel Vadot	};
65*f126890aSEmmanuel Vadot
66*f126890aSEmmanuel Vadot	vcc_sdhci1: regulator-vcc-sdhci1 {
67*f126890aSEmmanuel Vadot		compatible = "regulator-fixed";
68*f126890aSEmmanuel Vadot		regulator-name = "SDHCI1 Vcc";
69*f126890aSEmmanuel Vadot		regulator-min-microvolt = <3300000>;
70*f126890aSEmmanuel Vadot		regulator-max-microvolt = <3300000>;
71*f126890aSEmmanuel Vadot		gpios = <&gpio0 ASPEED_GPIO(V, 2) GPIO_ACTIVE_HIGH>;
72*f126890aSEmmanuel Vadot		enable-active-high;
73*f126890aSEmmanuel Vadot	};
74*f126890aSEmmanuel Vadot
75*f126890aSEmmanuel Vadot	vccq_sdhci1: regulator-vccq-sdhci1 {
76*f126890aSEmmanuel Vadot		compatible = "regulator-gpio";
77*f126890aSEmmanuel Vadot		regulator-name = "SDHCI1 VccQ";
78*f126890aSEmmanuel Vadot		regulator-min-microvolt = <1800000>;
79*f126890aSEmmanuel Vadot		regulator-max-microvolt = <3300000>;
80*f126890aSEmmanuel Vadot		gpios = <&gpio0 ASPEED_GPIO(V, 3) GPIO_ACTIVE_HIGH>;
81*f126890aSEmmanuel Vadot		gpios-states = <1>;
82*f126890aSEmmanuel Vadot		states = <3300000 1>,
83*f126890aSEmmanuel Vadot			 <1800000 0>;
84*f126890aSEmmanuel Vadot	};
85*f126890aSEmmanuel Vadot};
86*f126890aSEmmanuel Vadot
87*f126890aSEmmanuel Vadot&mdio0 {
88*f126890aSEmmanuel Vadot	status = "okay";
89*f126890aSEmmanuel Vadot
90*f126890aSEmmanuel Vadot	ethphy0: ethernet-phy@0 {
91*f126890aSEmmanuel Vadot		compatible = "ethernet-phy-ieee802.3-c22";
92*f126890aSEmmanuel Vadot		reg = <0>;
93*f126890aSEmmanuel Vadot	};
94*f126890aSEmmanuel Vadot};
95*f126890aSEmmanuel Vadot
96*f126890aSEmmanuel Vadot&mdio1 {
97*f126890aSEmmanuel Vadot	status = "okay";
98*f126890aSEmmanuel Vadot
99*f126890aSEmmanuel Vadot	ethphy1: ethernet-phy@0 {
100*f126890aSEmmanuel Vadot		compatible = "ethernet-phy-ieee802.3-c22";
101*f126890aSEmmanuel Vadot		reg = <0>;
102*f126890aSEmmanuel Vadot	};
103*f126890aSEmmanuel Vadot};
104*f126890aSEmmanuel Vadot
105*f126890aSEmmanuel Vadot&mdio2 {
106*f126890aSEmmanuel Vadot	status = "okay";
107*f126890aSEmmanuel Vadot
108*f126890aSEmmanuel Vadot	ethphy2: ethernet-phy@0 {
109*f126890aSEmmanuel Vadot		compatible = "ethernet-phy-ieee802.3-c22";
110*f126890aSEmmanuel Vadot		reg = <0>;
111*f126890aSEmmanuel Vadot	};
112*f126890aSEmmanuel Vadot};
113*f126890aSEmmanuel Vadot
114*f126890aSEmmanuel Vadot&mdio3 {
115*f126890aSEmmanuel Vadot	status = "okay";
116*f126890aSEmmanuel Vadot
117*f126890aSEmmanuel Vadot	ethphy3: ethernet-phy@0 {
118*f126890aSEmmanuel Vadot		compatible = "ethernet-phy-ieee802.3-c22";
119*f126890aSEmmanuel Vadot		reg = <0>;
120*f126890aSEmmanuel Vadot	};
121*f126890aSEmmanuel Vadot};
122*f126890aSEmmanuel Vadot
123*f126890aSEmmanuel Vadot&mac0 {
124*f126890aSEmmanuel Vadot	status = "okay";
125*f126890aSEmmanuel Vadot
126*f126890aSEmmanuel Vadot	phy-mode = "rgmii-rxid";
127*f126890aSEmmanuel Vadot	phy-handle = <&ethphy0>;
128*f126890aSEmmanuel Vadot
129*f126890aSEmmanuel Vadot	pinctrl-names = "default";
130*f126890aSEmmanuel Vadot	pinctrl-0 = <&pinctrl_rgmii1_default>;
131*f126890aSEmmanuel Vadot};
132*f126890aSEmmanuel Vadot
133*f126890aSEmmanuel Vadot
134*f126890aSEmmanuel Vadot&mac1 {
135*f126890aSEmmanuel Vadot	status = "okay";
136*f126890aSEmmanuel Vadot
137*f126890aSEmmanuel Vadot	phy-mode = "rgmii-rxid";
138*f126890aSEmmanuel Vadot	phy-handle = <&ethphy1>;
139*f126890aSEmmanuel Vadot
140*f126890aSEmmanuel Vadot	pinctrl-names = "default";
141*f126890aSEmmanuel Vadot	pinctrl-0 = <&pinctrl_rgmii2_default>;
142*f126890aSEmmanuel Vadot};
143*f126890aSEmmanuel Vadot
144*f126890aSEmmanuel Vadot&mac2 {
145*f126890aSEmmanuel Vadot	status = "okay";
146*f126890aSEmmanuel Vadot
147*f126890aSEmmanuel Vadot	phy-mode = "rgmii";
148*f126890aSEmmanuel Vadot	phy-handle = <&ethphy2>;
149*f126890aSEmmanuel Vadot
150*f126890aSEmmanuel Vadot	pinctrl-names = "default";
151*f126890aSEmmanuel Vadot	pinctrl-0 = <&pinctrl_rgmii3_default>;
152*f126890aSEmmanuel Vadot};
153*f126890aSEmmanuel Vadot
154*f126890aSEmmanuel Vadot&mac3 {
155*f126890aSEmmanuel Vadot	status = "okay";
156*f126890aSEmmanuel Vadot
157*f126890aSEmmanuel Vadot	phy-mode = "rgmii";
158*f126890aSEmmanuel Vadot	phy-handle = <&ethphy3>;
159*f126890aSEmmanuel Vadot
160*f126890aSEmmanuel Vadot	pinctrl-names = "default";
161*f126890aSEmmanuel Vadot	pinctrl-0 = <&pinctrl_rgmii4_default>;
162*f126890aSEmmanuel Vadot};
163*f126890aSEmmanuel Vadot
164*f126890aSEmmanuel Vadot&emmc_controller {
165*f126890aSEmmanuel Vadot	status = "okay";
166*f126890aSEmmanuel Vadot};
167*f126890aSEmmanuel Vadot
168*f126890aSEmmanuel Vadot&emmc {
169*f126890aSEmmanuel Vadot	non-removable;
170*f126890aSEmmanuel Vadot	bus-width = <4>;
171*f126890aSEmmanuel Vadot	max-frequency = <100000000>;
172*f126890aSEmmanuel Vadot	clk-phase-mmc-hs200 = <9>, <225>;
173*f126890aSEmmanuel Vadot};
174*f126890aSEmmanuel Vadot
175*f126890aSEmmanuel Vadot&rtc {
176*f126890aSEmmanuel Vadot	status = "okay";
177*f126890aSEmmanuel Vadot};
178*f126890aSEmmanuel Vadot
179*f126890aSEmmanuel Vadot&fmc {
180*f126890aSEmmanuel Vadot	status = "okay";
181*f126890aSEmmanuel Vadot	flash@0 {
182*f126890aSEmmanuel Vadot		status = "okay";
183*f126890aSEmmanuel Vadot		m25p,fast-read;
184*f126890aSEmmanuel Vadot		label = "bmc";
185*f126890aSEmmanuel Vadot		spi-rx-bus-width = <4>;
186*f126890aSEmmanuel Vadot		spi-max-frequency = <50000000>;
187*f126890aSEmmanuel Vadot#include "openbmc-flash-layout-64.dtsi"
188*f126890aSEmmanuel Vadot	};
189*f126890aSEmmanuel Vadot};
190*f126890aSEmmanuel Vadot
191*f126890aSEmmanuel Vadot&spi1 {
192*f126890aSEmmanuel Vadot	status = "okay";
193*f126890aSEmmanuel Vadot	pinctrl-names = "default";
194*f126890aSEmmanuel Vadot	pinctrl-0 = <&pinctrl_spi1_default>;
195*f126890aSEmmanuel Vadot
196*f126890aSEmmanuel Vadot	flash@0 {
197*f126890aSEmmanuel Vadot		status = "okay";
198*f126890aSEmmanuel Vadot		m25p,fast-read;
199*f126890aSEmmanuel Vadot		label = "pnor";
200*f126890aSEmmanuel Vadot		spi-rx-bus-width = <4>;
201*f126890aSEmmanuel Vadot		spi-max-frequency = <100000000>;
202*f126890aSEmmanuel Vadot	};
203*f126890aSEmmanuel Vadot};
204*f126890aSEmmanuel Vadot
205*f126890aSEmmanuel Vadot&uart5 {
206*f126890aSEmmanuel Vadot	// Workaround for A0
207*f126890aSEmmanuel Vadot	compatible = "snps,dw-apb-uart";
208*f126890aSEmmanuel Vadot};
209*f126890aSEmmanuel Vadot
210*f126890aSEmmanuel Vadot&i2c0 {
211*f126890aSEmmanuel Vadot	status = "okay";
212*f126890aSEmmanuel Vadot};
213*f126890aSEmmanuel Vadot
214*f126890aSEmmanuel Vadot&i2c1 {
215*f126890aSEmmanuel Vadot	status = "okay";
216*f126890aSEmmanuel Vadot};
217*f126890aSEmmanuel Vadot
218*f126890aSEmmanuel Vadot&i2c2 {
219*f126890aSEmmanuel Vadot	status = "okay";
220*f126890aSEmmanuel Vadot};
221*f126890aSEmmanuel Vadot
222*f126890aSEmmanuel Vadot&i2c3 {
223*f126890aSEmmanuel Vadot	status = "okay";
224*f126890aSEmmanuel Vadot};
225*f126890aSEmmanuel Vadot
226*f126890aSEmmanuel Vadot&i2c4 {
227*f126890aSEmmanuel Vadot	status = "okay";
228*f126890aSEmmanuel Vadot};
229*f126890aSEmmanuel Vadot
230*f126890aSEmmanuel Vadot&i2c5 {
231*f126890aSEmmanuel Vadot	status = "okay";
232*f126890aSEmmanuel Vadot};
233*f126890aSEmmanuel Vadot
234*f126890aSEmmanuel Vadot&i2c6 {
235*f126890aSEmmanuel Vadot	status = "okay";
236*f126890aSEmmanuel Vadot};
237*f126890aSEmmanuel Vadot
238*f126890aSEmmanuel Vadot&i2c7 {
239*f126890aSEmmanuel Vadot	status = "okay";
240*f126890aSEmmanuel Vadot
241*f126890aSEmmanuel Vadot	temp@2e {
242*f126890aSEmmanuel Vadot		compatible = "adi,adt7490";
243*f126890aSEmmanuel Vadot		reg = <0x2e>;
244*f126890aSEmmanuel Vadot	};
245*f126890aSEmmanuel Vadot
246*f126890aSEmmanuel Vadot	eeprom@50 {
247*f126890aSEmmanuel Vadot		compatible = "atmel,24c08";
248*f126890aSEmmanuel Vadot		reg = <0x50>;
249*f126890aSEmmanuel Vadot		pagesize = <16>;
250*f126890aSEmmanuel Vadot	};
251*f126890aSEmmanuel Vadot};
252*f126890aSEmmanuel Vadot
253*f126890aSEmmanuel Vadot&i2c8 {
254*f126890aSEmmanuel Vadot	status = "okay";
255*f126890aSEmmanuel Vadot
256*f126890aSEmmanuel Vadot	lm75@4d {
257*f126890aSEmmanuel Vadot		compatible = "national,lm75";
258*f126890aSEmmanuel Vadot		reg = <0x4d>;
259*f126890aSEmmanuel Vadot	};
260*f126890aSEmmanuel Vadot};
261*f126890aSEmmanuel Vadot
262*f126890aSEmmanuel Vadot&i2c9 {
263*f126890aSEmmanuel Vadot	status = "okay";
264*f126890aSEmmanuel Vadot};
265*f126890aSEmmanuel Vadot
266*f126890aSEmmanuel Vadot&i2c12 {
267*f126890aSEmmanuel Vadot	status = "okay";
268*f126890aSEmmanuel Vadot};
269*f126890aSEmmanuel Vadot
270*f126890aSEmmanuel Vadot&i2c13 {
271*f126890aSEmmanuel Vadot	status = "okay";
272*f126890aSEmmanuel Vadot};
273*f126890aSEmmanuel Vadot
274*f126890aSEmmanuel Vadot&i2c14 {
275*f126890aSEmmanuel Vadot	status = "okay";
276*f126890aSEmmanuel Vadot};
277*f126890aSEmmanuel Vadot
278*f126890aSEmmanuel Vadot&i2c15 {
279*f126890aSEmmanuel Vadot	status = "okay";
280*f126890aSEmmanuel Vadot};
281*f126890aSEmmanuel Vadot
282*f126890aSEmmanuel Vadot&fsim0 {
283*f126890aSEmmanuel Vadot	status = "okay";
284*f126890aSEmmanuel Vadot};
285*f126890aSEmmanuel Vadot
286*f126890aSEmmanuel Vadot&ehci1 {
287*f126890aSEmmanuel Vadot	status = "okay";
288*f126890aSEmmanuel Vadot};
289*f126890aSEmmanuel Vadot
290*f126890aSEmmanuel Vadot&uhci {
291*f126890aSEmmanuel Vadot	status = "okay";
292*f126890aSEmmanuel Vadot};
293*f126890aSEmmanuel Vadot
294*f126890aSEmmanuel Vadot&sdc {
295*f126890aSEmmanuel Vadot	status = "okay";
296*f126890aSEmmanuel Vadot};
297*f126890aSEmmanuel Vadot
298*f126890aSEmmanuel Vadot/*
299*f126890aSEmmanuel Vadot * The signal voltage of sdhci0 and sdhci1 on AST2600-A2 EVB is able to be
300*f126890aSEmmanuel Vadot * toggled by GPIO pins.
301*f126890aSEmmanuel Vadot * In the reference design, GPIOV0 of AST2600-A2 EVB is connected to the
302*f126890aSEmmanuel Vadot * power load switch that provides 3.3v to sdhci0 vdd, GPIOV1 is connected to
303*f126890aSEmmanuel Vadot * a 1.8v and a 3.3v power load switch that provides signal voltage to
304*f126890aSEmmanuel Vadot * sdhci0 bus.
305*f126890aSEmmanuel Vadot * If GPIOV0 is active high, sdhci0 is enabled, otherwise, sdhci0 is disabled.
306*f126890aSEmmanuel Vadot * If GPIOV1 is active high, 3.3v power load switch is enabled, sdhci0 signal
307*f126890aSEmmanuel Vadot * voltage is 3.3v, otherwise, 1.8v power load switch will be enabled,
308*f126890aSEmmanuel Vadot * sdhci0 signal voltage becomes 1.8v.
309*f126890aSEmmanuel Vadot * AST2600-A2 EVB also supports toggling signal voltage for sdhci1.
310*f126890aSEmmanuel Vadot * The design is the same as sdhci0, it uses GPIOV2 as power-gpio and GPIOV3
311*f126890aSEmmanuel Vadot * as power-switch-gpio.
312*f126890aSEmmanuel Vadot */
313*f126890aSEmmanuel Vadot&sdhci0 {
314*f126890aSEmmanuel Vadot	status = "okay";
315*f126890aSEmmanuel Vadot	bus-width = <4>;
316*f126890aSEmmanuel Vadot	max-frequency = <100000000>;
317*f126890aSEmmanuel Vadot	sdhci-drive-type = /bits/ 8 <3>;
318*f126890aSEmmanuel Vadot	sdhci-caps-mask = <0x7 0x0>;
319*f126890aSEmmanuel Vadot	sdhci,wp-inverted;
320*f126890aSEmmanuel Vadot	vmmc-supply = <&vcc_sdhci0>;
321*f126890aSEmmanuel Vadot	vqmmc-supply = <&vccq_sdhci0>;
322*f126890aSEmmanuel Vadot	clk-phase-sd-hs = <7>, <200>;
323*f126890aSEmmanuel Vadot};
324*f126890aSEmmanuel Vadot
325*f126890aSEmmanuel Vadot&sdhci1 {
326*f126890aSEmmanuel Vadot	status = "okay";
327*f126890aSEmmanuel Vadot	bus-width = <4>;
328*f126890aSEmmanuel Vadot	max-frequency = <100000000>;
329*f126890aSEmmanuel Vadot	sdhci-drive-type = /bits/ 8 <3>;
330*f126890aSEmmanuel Vadot	sdhci-caps-mask = <0x7 0x0>;
331*f126890aSEmmanuel Vadot	sdhci,wp-inverted;
332*f126890aSEmmanuel Vadot	vmmc-supply = <&vcc_sdhci1>;
333*f126890aSEmmanuel Vadot	vqmmc-supply = <&vccq_sdhci1>;
334*f126890aSEmmanuel Vadot	clk-phase-sd-hs = <7>, <200>;
335*f126890aSEmmanuel Vadot};
336*f126890aSEmmanuel Vadot
337*f126890aSEmmanuel Vadot&vhub {
338*f126890aSEmmanuel Vadot	status = "okay";
339*f126890aSEmmanuel Vadot	pinctrl-names = "default";
340*f126890aSEmmanuel Vadot};
341*f126890aSEmmanuel Vadot
342*f126890aSEmmanuel Vadot&video {
343*f126890aSEmmanuel Vadot	status = "okay";
344*f126890aSEmmanuel Vadot	memory-region = <&video_engine_memory>;
345*f126890aSEmmanuel Vadot};
346*f126890aSEmmanuel Vadot
347*f126890aSEmmanuel Vadot&gfx {
348*f126890aSEmmanuel Vadot	status = "okay";
349*f126890aSEmmanuel Vadot	memory-region = <&gfx_memory>;
350*f126890aSEmmanuel Vadot};
351