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-pinebook.dts
1 // SPDX-License-Identifier: (GPL-2.0+ OR MIT)
2 // Copyright (C) 2017 Icenowy Zheng <icenowy@aosc.xyz>
3 // Copyright (C) 2018 Vasily Khoruzhick <anarsoul@gmail.com>
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 #include <dt-bindings/input/gpio-keys.h>
12 #include <dt-bindings/input/input.h>
13 #include <dt-bindings/pwm/pwm.h>
14
15 / {
16         model = "Pinebook";
17         compatible = "pine64,pinebook", "allwinner,sun50i-a64";
18
19         aliases {
20                 serial0 = &uart0;
21                 ethernet0 = &rtl8723cs;
22         };
23
24         backlight: backlight {
25                 compatible = "pwm-backlight";
26                 pwms = <&pwm 0 50000 0>;
27                 brightness-levels = <0 5 10 15 20 30 40 55 70 85 100>;
28                 default-brightness-level = <2>;
29                 enable-gpios = <&pio 3 23 GPIO_ACTIVE_HIGH>; /* PD23 */
30                 power-supply = <&reg_vbklt>;
31         };
32
33         chosen {
34                 stdout-path = "serial0:115200n8";
35         };
36
37         gpio_keys {
38                 compatible = "gpio-keys";
39
40                 lid_switch {
41                         label = "Lid Switch";
42                         gpios = <&r_pio 0 12 GPIO_ACTIVE_LOW>; /* PL12 */
43                         linux,input-type = <EV_SW>;
44                         linux,code = <SW_LID>;
45                         linux,can-disable;
46                         wakeup-source;
47                         wakeup-event-action = <EV_ACT_DEASSERTED>;
48                 };
49         };
50
51         panel_edp: panel-edp {
52                 compatible = "neweast,wjfh116008a";
53                 backlight = <&backlight>;
54                 power-supply = <&reg_dc1sw>;
55
56                 port {
57                         panel_edp_in: endpoint {
58                                 remote-endpoint = <&anx6345_out_edp>;
59                         };
60                 };
61         };
62
63         reg_vbklt: vbklt {
64                 compatible = "regulator-fixed";
65                 regulator-name = "vbklt";
66                 regulator-min-microvolt = <18000000>;
67                 regulator-max-microvolt = <18000000>;
68                 gpio = <&pio 7 6 GPIO_ACTIVE_HIGH>; /* PH6 */
69                 enable-active-high;
70         };
71
72         reg_vcc5v0: vcc5v0 {
73                 compatible = "regulator-fixed";
74                 regulator-name = "vcc5v0";
75                 regulator-min-microvolt = <5000000>;
76                 regulator-max-microvolt = <5000000>;
77                 gpio = <&axp_gpio 0 GPIO_ACTIVE_HIGH>;
78                 enable-active-high;
79         };
80
81         wifi_pwrseq: wifi_pwrseq {
82                 compatible = "mmc-pwrseq-simple";
83                 reset-gpios = <&r_pio 0 2 GPIO_ACTIVE_LOW>; /* PL2 */
84         };
85
86         speaker_amp: audio-amplifier {
87                 compatible = "simple-audio-amplifier";
88                 VCC-supply = <&reg_vcc5v0>;
89                 enable-gpios = <&pio 7 7 GPIO_ACTIVE_HIGH>; /* PH7 */
90                 sound-name-prefix = "Speaker Amp";
91         };
92
93 };
94
95 &codec {
96         status = "okay";
97 };
98
99 &codec_analog {
100         cpvdd-supply = <&reg_eldo1>;
101         status = "okay";
102 };
103
104 &cpu0 {
105         cpu-supply = <&reg_dcdc2>;
106 };
107
108 &cpu1 {
109         cpu-supply = <&reg_dcdc2>;
110 };
111
112 &cpu2 {
113         cpu-supply = <&reg_dcdc2>;
114 };
115
116 &cpu3 {
117         cpu-supply = <&reg_dcdc2>;
118 };
119
120 &dai {
121         status = "okay";
122 };
123
124 &de {
125         status = "okay";
126 };
127
128 &ehci0 {
129         phys = <&usbphy 0>;
130         phy-names = "usb";
131         status = "okay";
132 };
133
134 &ehci1 {
135         status = "okay";
136 };
137
138 &mixer0 {
139         status = "okay";
140 };
141
142 &mmc0 {
143         pinctrl-names = "default";
144         pinctrl-0 = <&mmc0_pins>;
145         vmmc-supply = <&reg_dcdc1>;
146         cd-gpios = <&pio 5 6 GPIO_ACTIVE_LOW>; /* PF6 */
147         disable-wp;
148         bus-width = <4>;
149         status = "okay";
150 };
151
152 &mmc1 {
153         pinctrl-names = "default";
154         pinctrl-0 = <&mmc1_pins>;
155         vmmc-supply = <&reg_dldo4>;
156         vqmmc-supply = <&reg_eldo1>;
157         mmc-pwrseq = <&wifi_pwrseq>;
158         bus-width = <4>;
159         non-removable;
160         status = "okay";
161
162         rtl8723cs: wifi@1 {
163                 reg = <1>;
164         };
165 };
166
167 &mmc2 {
168         pinctrl-names = "default";
169         pinctrl-0 = <&mmc2_pins>, <&mmc2_ds_pin>;
170         vmmc-supply = <&reg_dcdc1>;
171         vqmmc-supply = <&reg_eldo1>;
172         bus-width = <8>;
173         non-removable;
174         cap-mmc-hw-reset;
175         mmc-hs200-1_8v;
176         status = "okay";
177 };
178
179 &ohci0 {
180         phys = <&usbphy 0>;
181         phy-names = "usb";
182         status = "okay";
183 };
184
185 &ohci1 {
186         status = "okay";
187 };
188
189 &pio {
190         vcc-pc-supply = <&reg_eldo1>;
191         vcc-pd-supply = <&reg_dcdc1>;
192         vcc-pe-supply = <&reg_aldo1>;
193         vcc-pg-supply = <&reg_eldo1>;
194 };
195
196 &pwm {
197         status = "okay";
198 };
199
200 &r_i2c {
201         clock-frequency = <100000>;
202         pinctrl-names = "default";
203         pinctrl-0 = <&r_i2c_pl89_pins>;
204         status = "okay";
205
206         anx6345: anx6345@38 {
207                 compatible = "analogix,anx6345";
208                 reg = <0x38>;
209                 reset-gpios = <&pio 3 24 GPIO_ACTIVE_LOW>; /* PD24 */
210                 dvdd25-supply = <&reg_dldo2>;
211                 dvdd12-supply = <&reg_fldo1>;
212
213                 ports {
214                         #address-cells = <1>;
215                         #size-cells = <0>;
216
217                         anx6345_in: port@0 {
218                                 reg = <0>;
219                                 anx6345_in_tcon0: endpoint {
220                                         remote-endpoint = <&tcon0_out_anx6345>;
221                                 };
222                         };
223
224                         anx6345_out: port@1 {
225                                 reg = <1>;
226                                 anx6345_out_edp: endpoint {
227                                         remote-endpoint = <&panel_edp_in>;
228                                 };
229                         };
230                 };
231         };
232 };
233
234 &r_pio {
235         /*
236          * FIXME: We can't add that supply for now since it would
237          * create a circular dependency between pinctrl, the regulator
238          * and the RSB Bus.
239          *
240          * vcc-pl-supply = <&reg_aldo2>;
241          */
242 };
243
244 &r_rsb {
245         status = "okay";
246
247         axp803: pmic@3a3 {
248                 compatible = "x-powers,axp803";
249                 reg = <0x3a3>;
250                 interrupt-parent = <&r_intc>;
251                 interrupts = <0 IRQ_TYPE_LEVEL_LOW>;
252         };
253 };
254
255 #include "axp803.dtsi"
256
257 &ac_power_supply {
258         status = "okay";
259 };
260
261 &battery_power_supply {
262         status = "okay";
263 };
264
265 &reg_aldo1 {
266         regulator-name = "vcc-pe";
267 };
268
269 &reg_aldo2 {
270         regulator-always-on;
271         regulator-min-microvolt = <1800000>;
272         regulator-max-microvolt = <3300000>;
273         regulator-name = "vcc-pl";
274 };
275
276 &reg_aldo3 {
277         regulator-always-on;
278         regulator-min-microvolt = <2700000>;
279         regulator-max-microvolt = <3300000>;
280         regulator-name = "vcc-pll-avcc";
281 };
282
283 &reg_dc1sw {
284         regulator-name = "vcc-lcd";
285 };
286
287 &reg_dcdc1 {
288         regulator-always-on;
289         regulator-min-microvolt = <3300000>;
290         regulator-max-microvolt = <3300000>;
291         regulator-name = "vcc-3v3";
292 };
293
294 &reg_dcdc2 {
295         regulator-always-on;
296         regulator-min-microvolt = <1000000>;
297         regulator-max-microvolt = <1300000>;
298         regulator-name = "vdd-cpux";
299 };
300
301 /* DCDC3 is polyphased with DCDC2 */
302
303 &reg_dcdc5 {
304         regulator-always-on;
305         regulator-min-microvolt = <1200000>;
306         regulator-max-microvolt = <1200000>;
307         regulator-name = "vcc-dram";
308 };
309
310 &reg_dcdc6 {
311         regulator-always-on;
312         regulator-min-microvolt = <1100000>;
313         regulator-max-microvolt = <1100000>;
314         regulator-name = "vdd-sys";
315 };
316
317 &reg_dldo1 {
318         regulator-min-microvolt = <3300000>;
319         regulator-max-microvolt = <3300000>;
320         regulator-name = "vcc-hdmi";
321 };
322
323 &reg_dldo2 {
324         regulator-min-microvolt = <2500000>;
325         regulator-max-microvolt = <2500000>;
326         regulator-name = "vcc-edp";
327 };
328
329 &reg_dldo4 {
330         regulator-min-microvolt = <3300000>;
331         regulator-max-microvolt = <3300000>;
332         regulator-name = "vcc-wifi";
333 };
334
335 &reg_eldo1 {
336         regulator-always-on;
337         regulator-min-microvolt = <1800000>;
338         regulator-max-microvolt = <1800000>;
339         regulator-name = "cpvdd";
340 };
341
342 &reg_fldo1 {
343         regulator-min-microvolt = <1200000>;
344         regulator-max-microvolt = <1200000>;
345         regulator-name = "vcc-1v2-hsic";
346 };
347
348 &reg_fldo2 {
349         regulator-always-on;
350         regulator-min-microvolt = <1100000>;
351         regulator-max-microvolt = <1100000>;
352         regulator-name = "vdd-cpus";
353 };
354
355 &reg_rtc_ldo {
356         regulator-name = "vcc-rtc";
357 };
358
359 &simplefb_lcd {
360         panel-supply = <&reg_dc1sw>;
361         dvdd25-supply = <&reg_dldo2>;
362         dvdd12-supply = <&reg_fldo1>;
363 };
364
365 &simplefb_hdmi {
366         vcc-hdmi-supply = <&reg_dldo1>;
367 };
368
369 &sound {
370         status = "okay";
371         simple-audio-card,aux-devs = <&codec_analog>, <&speaker_amp>;
372         simple-audio-card,widgets = "Microphone", "Internal Microphone Left",
373                                     "Microphone", "Internal Microphone Right",
374                                     "Headphone", "Headphone Jack",
375                                     "Speaker", "Internal Speaker";
376         simple-audio-card,routing =
377                         "Left DAC", "AIF1 Slot 0 Left",
378                         "Right DAC", "AIF1 Slot 0 Right",
379                         "Speaker Amp INL", "LINEOUT",
380                         "Speaker Amp INR", "LINEOUT",
381                         "Internal Speaker", "Speaker Amp OUTL",
382                         "Internal Speaker", "Speaker Amp OUTR",
383                         "Headphone Jack", "HP",
384                         "AIF1 Slot 0 Left ADC", "Left ADC",
385                         "AIF1 Slot 0 Right ADC", "Right ADC",
386                         "Internal Microphone Left", "MBIAS",
387                         "MIC1", "Internal Microphone Left",
388                         "Internal Microphone Right", "HBIAS",
389                         "MIC2", "Internal Microphone Right";
390 };
391
392 &tcon0 {
393         pinctrl-names = "default";
394         pinctrl-0 = <&lcd_rgb666_pins>;
395
396         status = "okay";
397 };
398
399 &tcon0_out {
400         tcon0_out_anx6345: endpoint {
401                 remote-endpoint = <&anx6345_in_tcon0>;
402         };
403 };
404
405 &uart0 {
406         pinctrl-names = "default";
407         pinctrl-0 = <&uart0_pb_pins>;
408         status = "okay";
409 };
410
411 &usb_otg {
412         dr_mode = "host";
413 };
414
415 &usbphy {
416         usb0_vbus-supply = <&reg_vcc5v0>;
417         usb1_vbus-supply = <&reg_vcc5v0>;
418         status = "okay";
419 };