Merge tag 'u-boot-atmel-fixes-2021.01-b' of https://gitlab.denx.de/u-boot/custodians...
[platform/kernel/u-boot.git] / arch / arm / dts / sun50i-a64-orangepi-win.dts
1 // SPDX-License-Identifier: (GPL-2.0+ OR MIT)
2 // Copyright (C) 2017 Jagan Teki <jteki@openedev.com>
3 // Copyright (C) 2017-2018 Samuel Holland <samuel@sholland.org>
4
5 /dts-v1/;
6
7 #include "sun50i-a64.dtsi"
8 #include "sun50i-a64-cpu-opp.dtsi"
9
10 #include <dt-bindings/gpio/gpio.h>
11
12 / {
13         model = "OrangePi Win/Win Plus";
14         compatible = "xunlong,orangepi-win", "allwinner,sun50i-a64";
15
16         aliases {
17                 ethernet0 = &emac;
18                 serial0 = &uart0;
19                 serial1 = &uart1;
20                 serial2 = &uart2;
21                 serial3 = &uart3;
22                 serial4 = &uart4;
23         };
24
25         chosen {
26                 stdout-path = "serial0:115200n8";
27         };
28
29         hdmi-connector {
30                 compatible = "hdmi-connector";
31                 type = "a";
32
33                 port {
34                         hdmi_con_in: endpoint {
35                                 remote-endpoint = <&hdmi_out_con>;
36                         };
37                 };
38         };
39
40         leds {
41                 compatible = "gpio-leds";
42
43                 status {
44                         label = "orangepi:green:status";
45                         gpios = <&pio 7 11 GPIO_ACTIVE_HIGH>; /* PH11 */
46                 };
47         };
48
49         reg_gmac_3v3: gmac-3v3 {
50                 compatible = "regulator-fixed";
51                 regulator-name = "gmac-3v3";
52                 regulator-min-microvolt = <3300000>;
53                 regulator-max-microvolt = <3300000>;
54                 regulator-boot-on;
55                 enable-active-high;
56                 gpio = <&pio 3 14 GPIO_ACTIVE_HIGH>; /* PD14 */
57                 status = "okay";
58         };
59
60         reg_usb1_vbus: usb1-vbus {
61                 compatible = "regulator-fixed";
62                 regulator-name = "usb1-vbus";
63                 regulator-min-microvolt = <5000000>;
64                 regulator-max-microvolt = <5000000>;
65                 regulator-boot-on;
66                 enable-active-high;
67                 gpio = <&pio 3 7 GPIO_ACTIVE_HIGH>; /* PD7 */
68                 status = "okay";
69         };
70
71         wifi_pwrseq: wifi_pwrseq {
72                 compatible = "mmc-pwrseq-simple";
73                 reset-gpios = <&r_pio 0 8 GPIO_ACTIVE_LOW>; /* PL8 */
74                 clocks = <&rtc 1>;
75                 clock-names = "ext_clock";
76         };
77 };
78
79 &codec {
80         status = "okay";
81 };
82
83 &codec_analog {
84         cpvdd-supply = <&reg_eldo1>;
85         status = "okay";
86 };
87
88 &cpu0 {
89         cpu-supply = <&reg_dcdc2>;
90 };
91
92 &cpu1 {
93         cpu-supply = <&reg_dcdc2>;
94 };
95
96 &cpu2 {
97         cpu-supply = <&reg_dcdc2>;
98 };
99
100 &cpu3 {
101         cpu-supply = <&reg_dcdc2>;
102 };
103
104 &dai {
105         status = "okay";
106 };
107
108 &de {
109         status = "okay";
110 };
111
112 &ehci0 {
113         status = "okay";
114 };
115
116 &ehci1 {
117         status = "okay";
118 };
119
120 &emac {
121         pinctrl-names = "default";
122         pinctrl-0 = <&rgmii_pins>;
123         phy-mode = "rgmii";
124         phy-handle = <&ext_rgmii_phy>;
125         phy-supply = <&reg_gmac_3v3>;
126         status = "okay";
127 };
128
129 &hdmi {
130         hvcc-supply = <&reg_dldo1>;
131         status = "okay";
132 };
133
134 &hdmi_out {
135         hdmi_out_con: endpoint {
136                 remote-endpoint = <&hdmi_con_in>;
137         };
138 };
139
140 &mdio {
141         ext_rgmii_phy: ethernet-phy@1 {
142                 compatible = "ethernet-phy-ieee802.3-c22";
143                 reg = <1>;
144         };
145 };
146
147 &mmc0 {
148         pinctrl-names = "default";
149         pinctrl-0 = <&mmc0_pins>;
150         vmmc-supply = <&reg_dcdc1>;
151         cd-gpios = <&pio 5 6 GPIO_ACTIVE_LOW>; /* PF6 */
152         disable-wp;
153         bus-width = <4>;
154         status = "okay";
155 };
156
157 &mmc1 {
158         pinctrl-names = "default";
159         pinctrl-0 = <&mmc1_pins>;
160         vmmc-supply = <&reg_dldo2>;
161         vqmmc-supply = <&reg_dldo4>;
162         mmc-pwrseq = <&wifi_pwrseq>;
163         bus-width = <4>;
164         non-removable;
165         status = "okay";
166
167         brcmf: wifi@1 {
168                 reg = <1>;
169                 compatible = "brcm,bcm4329-fmac";
170                 interrupt-parent = <&r_pio>;
171                 interrupts = <0 7 IRQ_TYPE_LEVEL_LOW>; /* PL7 */
172                 interrupt-names = "host-wake";
173         };
174 };
175
176 &ohci0 {
177         status = "okay";
178 };
179
180 &ohci1 {
181         status = "okay";
182 };
183
184 &r_ir {
185         status = "okay";
186 };
187
188 &r_rsb {
189         status = "okay";
190
191         axp803: pmic@3a3 {
192                 compatible = "x-powers,axp803";
193                 reg = <0x3a3>;
194                 interrupt-parent = <&r_intc>;
195                 interrupts = <0 IRQ_TYPE_LEVEL_LOW>;
196                 x-powers,drive-vbus-en; /* set N_VBUSEN as output pin */
197         };
198 };
199
200 #include "axp803.dtsi"
201
202 &ac_power_supply {
203         status = "okay";
204 };
205
206 &battery_power_supply {
207         status = "okay";
208 };
209
210 &reg_aldo1 {
211         regulator-min-microvolt = <2800000>;
212         regulator-max-microvolt = <2800000>;
213         regulator-name = "afvcc-csi";
214 };
215
216 &reg_aldo2 {
217         regulator-always-on;
218         regulator-min-microvolt = <1800000>;
219         regulator-max-microvolt = <3300000>;
220         regulator-name = "vcc-pl";
221 };
222
223 &reg_aldo3 {
224         regulator-always-on;
225         regulator-min-microvolt = <3000000>;
226         regulator-max-microvolt = <3000000>;
227         regulator-name = "vcc-pll-avcc";
228 };
229
230 &reg_dcdc1 {
231         regulator-always-on;
232         regulator-min-microvolt = <3300000>;
233         regulator-max-microvolt = <3300000>;
234         regulator-name = "vcc-3v3";
235 };
236
237 &reg_dcdc2 {
238         regulator-always-on;
239         regulator-min-microvolt = <1040000>;
240         regulator-max-microvolt = <1300000>;
241         regulator-name = "vdd-cpux";
242 };
243
244 /* DCDC3 is polyphased with DCDC2 */
245
246 &reg_dcdc5 {
247         regulator-always-on;
248         regulator-min-microvolt = <1500000>;
249         regulator-max-microvolt = <1500000>;
250         regulator-name = "vcc-dram";
251 };
252
253 &reg_dcdc6 {
254         regulator-always-on;
255         regulator-min-microvolt = <1100000>;
256         regulator-max-microvolt = <1100000>;
257         regulator-name = "vdd-sys";
258 };
259
260 &reg_dldo1 {
261         regulator-min-microvolt = <3300000>;
262         regulator-max-microvolt = <3300000>;
263         regulator-name = "vcc-hdmi-dsi";
264 };
265
266 &reg_dldo2 {
267         regulator-min-microvolt = <3300000>;
268         regulator-max-microvolt = <3300000>;
269         regulator-name = "vcc-wifi";
270 };
271
272 &reg_dldo3 {
273         regulator-min-microvolt = <3300000>;
274         regulator-max-microvolt = <3300000>;
275         regulator-name = "avdd-csi";
276 };
277
278 &reg_dldo4 {
279         regulator-min-microvolt = <3300000>;
280         regulator-max-microvolt = <3300000>;
281         regulator-name = "vcc-wifi-io";
282 };
283
284 &reg_drivevbus {
285         regulator-name = "usb0-vbus";
286         status = "okay";
287 };
288
289 &reg_eldo1 {
290         regulator-min-microvolt = <1800000>;
291         regulator-max-microvolt = <1800000>;
292         regulator-name = "cpvdd";
293 };
294
295 &reg_eldo3 {
296         regulator-min-microvolt = <1500000>;
297         regulator-max-microvolt = <1800000>;
298         regulator-name = "dvdd-csi";
299 };
300
301 &reg_fldo1 {
302         regulator-min-microvolt = <1200000>;
303         regulator-max-microvolt = <1200000>;
304         regulator-name = "vcc-1v2-hsic";
305 };
306
307 /*
308  * The A64 chip cannot work without this regulator off, although
309  * it seems to be only driving the AR100 core.
310  * Maybe we don't still know well about CPUs domain.
311  */
312 &reg_fldo2 {
313         regulator-always-on;
314         regulator-min-microvolt = <1100000>;
315         regulator-max-microvolt = <1100000>;
316         regulator-name = "vdd-cpus";
317 };
318
319 &reg_rtc_ldo {
320         regulator-name = "vcc-rtc";
321 };
322
323 &simplefb_hdmi {
324         vcc-hdmi-supply = <&reg_dldo1>;
325 };
326
327 &sound {
328         status = "okay";
329         simple-audio-card,widgets = "Headphone", "Headphone Jack",
330                                     "Microphone", "Microphone Jack",
331                                     "Microphone", "Onboard Microphone";
332         simple-audio-card,routing =
333                         "Left DAC", "AIF1 Slot 0 Left",
334                         "Right DAC", "AIF1 Slot 0 Right",
335                         "AIF1 Slot 0 Left ADC", "Left ADC",
336                         "AIF1 Slot 0 Right ADC", "Right ADC",
337                         "Headphone Jack", "HP",
338                         "MIC2", "Microphone Jack",
339                         "Onboard Microphone", "MBIAS",
340                         "MIC1", "Onboard Microphone";
341 };
342
343 &spi0 {
344         status = "okay";
345
346         spi-flash@0 {
347                 compatible = "mxicy,mx25l1606e", "jedec,spi-nor";
348                 reg = <0>;
349                 spi-max-frequency = <80000000>;
350                 m25p,fast-read;
351                 status = "okay";
352         };
353 };
354
355 /* On debug connector */
356 &uart0 {
357         pinctrl-names = "default";
358         pinctrl-0 = <&uart0_pb_pins>;
359         status = "okay";
360 };
361
362 /* Bluetooth */
363 &uart1 {
364         pinctrl-names = "default";
365         pinctrl-0 = <&uart1_pins>, <&uart1_rts_cts_pins>;
366         uart-has-rtscts;
367         status = "okay";
368
369         bluetooth {
370                 compatible = "brcm,bcm43438-bt";
371                 max-speed = <1500000>;
372                 clocks = <&rtc 1>;
373                 clock-names = "lpo";
374                 vbat-supply = <&reg_dldo2>;
375                 vddio-supply = <&reg_dldo4>;
376                 device-wakeup-gpios = <&r_pio 0 6 GPIO_ACTIVE_HIGH>; /* PL6 */
377                 host-wakeup-gpios = <&r_pio 0 5 GPIO_ACTIVE_HIGH>; /* PL5 */
378                 shutdown-gpios = <&r_pio 0 4 GPIO_ACTIVE_HIGH>; /* PL4 */
379         };
380 };
381
382 /* On Pi-2 connector, RTS/CTS optional */
383 &uart2 {
384         pinctrl-names = "default";
385         pinctrl-0 = <&uart2_pins>;
386         status = "disabled";
387 };
388
389 /* On Pi-2 connector, RTS/CTS optional */
390 &uart3 {
391         pinctrl-names = "default";
392         pinctrl-0 = <&uart3_pins>;
393         status = "disabled";
394 };
395
396 /* On Pi-2 connector (labeled for SPI1), RTS/CTS optional */
397 &uart4 {
398         pinctrl-names = "default";
399         pinctrl-0 = <&uart4_pins>;
400         status = "disabled";
401 };
402
403 &usb_otg {
404         dr_mode = "otg";
405         status = "okay";
406 };
407
408 &usbphy {
409         usb0_id_det-gpios = <&pio 7 9 GPIO_ACTIVE_HIGH>; /* PH9 */
410         usb0_vbus-supply = <&reg_drivevbus>;
411         usb1_vbus-supply = <&reg_usb1_vbus>;
412         status = "okay";
413 };