]> git.ipfire.org Git - thirdparty/linux.git/blob - arch/arm64/boot/dts/allwinner/sun50i-a64-pinetab.dts
Merge tag 'io_uring-5.7-2020-05-22' of git://git.kernel.dk/linux-block
[thirdparty/linux.git] / arch / arm64 / boot / dts / allwinner / sun50i-a64-pinetab.dts
1 // SPDX-License-Identifier: (GPL-2.0+ OR MIT)
2 /*
3 * Copyright (C) 2019 Icenowy Zheng <icenowy@aosc.xyz>
4 *
5 */
6
7 /dts-v1/;
8
9 #include "sun50i-a64.dtsi"
10 #include "sun50i-a64-cpu-opp.dtsi"
11
12 #include <dt-bindings/gpio/gpio.h>
13 #include <dt-bindings/input/input.h>
14 #include <dt-bindings/pwm/pwm.h>
15
16 / {
17 model = "PineTab";
18 compatible = "pine64,pinetab", "allwinner,sun50i-a64";
19
20 aliases {
21 serial0 = &uart0;
22 ethernet0 = &rtl8723cs;
23 };
24
25 backlight: backlight {
26 compatible = "pwm-backlight";
27 pwms = <&pwm 0 50000 PWM_POLARITY_INVERTED>;
28 brightness-levels = <0 16 18 20 22 24 26 29 32 35 38 42 46 51 56 62 68 75 83 91 100>;
29 default-brightness-level = <15>;
30 enable-gpios = <&pio 3 23 GPIO_ACTIVE_HIGH>; /* PD23 */
31 power-supply = <&vdd_bl>;
32 };
33
34 chosen {
35 stdout-path = "serial0:115200n8";
36 };
37
38 i2c-csi {
39 compatible = "i2c-gpio";
40 sda-gpios = <&pio 4 13 GPIO_ACTIVE_HIGH>; /* PE13 */
41 scl-gpios = <&pio 4 12 GPIO_ACTIVE_HIGH>; /* PE12 */
42 i2c-gpio,delay-us = <5>;
43 #address-cells = <1>;
44 #size-cells = <0>;
45
46 /* Rear camera */
47 ov5640: camera@3c {
48 compatible = "ovti,ov5640";
49 reg = <0x3c>;
50 pinctrl-names = "default";
51 pinctrl-0 = <&csi_mclk_pin>;
52 clocks = <&ccu CLK_CSI_MCLK>;
53 clock-names = "xclk";
54
55 AVDD-supply = <&reg_dldo3>;
56 DOVDD-supply = <&reg_aldo1>;
57 DVDD-supply = <&reg_eldo3>;
58 reset-gpios = <&pio 4 14 GPIO_ACTIVE_LOW>; /* PE14 */
59 powerdown-gpios = <&pio 4 15 GPIO_ACTIVE_HIGH>; /* PE15 */
60
61 port {
62 ov5640_ep: endpoint {
63 remote-endpoint = <&csi_ep>;
64 bus-width = <8>;
65 hsync-active = <1>; /* Active high */
66 vsync-active = <0>; /* Active low */
67 data-active = <1>; /* Active high */
68 pclk-sample = <1>; /* Rising */
69 };
70 };
71 };
72 };
73
74 speaker_amp: audio-amplifier {
75 compatible = "simple-audio-amplifier";
76 enable-gpios = <&pio 7 7 GPIO_ACTIVE_HIGH>; /* PH7 */
77 sound-name-prefix = "Speaker Amp";
78 };
79
80 vdd_bl: regulator@0 {
81 compatible = "regulator-fixed";
82 regulator-name = "bl-3v3";
83 regulator-min-microvolt = <3300000>;
84 regulator-max-microvolt = <3300000>;
85 gpio = <&pio 7 6 GPIO_ACTIVE_HIGH>; /* PH6 */
86 enable-active-high;
87 };
88
89 wifi_pwrseq: wifi_pwrseq {
90 compatible = "mmc-pwrseq-simple";
91 reset-gpios = <&r_pio 0 2 GPIO_ACTIVE_LOW>; /* PL2 */
92 post-power-on-delay-ms = <200>;
93 };
94 };
95
96 &codec {
97 status = "okay";
98 };
99
100 &codec_analog {
101 cpvdd-supply = <&reg_eldo1>;
102 status = "okay";
103 };
104
105 &cpu0 {
106 cpu-supply = <&reg_dcdc2>;
107 };
108
109 &cpu1 {
110 cpu-supply = <&reg_dcdc2>;
111 };
112
113 &cpu2 {
114 cpu-supply = <&reg_dcdc2>;
115 };
116
117 &cpu3 {
118 cpu-supply = <&reg_dcdc2>;
119 };
120
121 &csi {
122 status = "okay";
123
124 port {
125 #address-cells = <1>;
126 #size-cells = <0>;
127
128 csi_ep: endpoint {
129 remote-endpoint = <&ov5640_ep>;
130 bus-width = <8>;
131 hsync-active = <1>; /* Active high */
132 vsync-active = <0>; /* Active low */
133 data-active = <1>; /* Active high */
134 pclk-sample = <1>; /* Rising */
135 };
136 };
137 };
138
139 &dai {
140 status = "okay";
141 };
142
143 &de {
144 status = "okay";
145 };
146
147 &dphy {
148 status = "okay";
149 };
150
151 &dsi {
152 vcc-dsi-supply = <&reg_dldo1>;
153 status = "okay";
154
155 panel@0 {
156 compatible = "feixin,k101-im2ba02";
157 reg = <0>;
158 avdd-supply = <&reg_dc1sw>;
159 dvdd-supply = <&reg_dc1sw>;
160 cvdd-supply = <&reg_ldo_io1>;
161 reset-gpios = <&pio 3 24 GPIO_ACTIVE_HIGH>; /* PD24 */
162 backlight = <&backlight>;
163 };
164 };
165
166 &ehci0 {
167 status = "okay";
168 };
169
170 &ehci1 {
171 status = "okay";
172 };
173
174 &i2c0 {
175 status = "okay";
176
177 touchscreen@5d {
178 compatible = "goodix,gt9271";
179 reg = <0x5d>;
180 interrupt-parent = <&pio>;
181 interrupts = <7 4 IRQ_TYPE_LEVEL_HIGH>; /* PH4 */
182 irq-gpios = <&pio 7 4 GPIO_ACTIVE_HIGH>; /* PH4 */
183 reset-gpios = <&pio 7 8 GPIO_ACTIVE_HIGH>; /* PH8 */
184 AVDD28-supply = <&reg_ldo_io1>;
185 };
186 };
187
188 &i2c0_pins {
189 bias-pull-up;
190 };
191
192 &i2c1 {
193 status = "okay";
194
195 /* TODO: add Bochs BMA223 accelerometer here */
196 };
197
198 &lradc {
199 vref-supply = <&reg_aldo3>;
200 status = "okay";
201
202 button-200 {
203 label = "Volume Up";
204 linux,code = <KEY_VOLUMEUP>;
205 channel = <0>;
206 voltage = <200000>;
207 };
208
209 button-400 {
210 label = "Volume Down";
211 linux,code = <KEY_VOLUMEDOWN>;
212 channel = <0>;
213 voltage = <400000>;
214 };
215 };
216
217 &mixer1 {
218 status = "okay";
219 };
220
221 &mmc0 {
222 pinctrl-names = "default";
223 pinctrl-0 = <&mmc0_pins>;
224 vmmc-supply = <&reg_dcdc1>;
225 cd-gpios = <&pio 5 6 GPIO_ACTIVE_LOW>;
226 disable-wp;
227 bus-width = <4>;
228 status = "okay";
229 };
230
231 &mmc1 {
232 pinctrl-names = "default";
233 pinctrl-0 = <&mmc1_pins>;
234 vmmc-supply = <&reg_dldo4>;
235 vqmmc-supply = <&reg_eldo1>;
236 mmc-pwrseq = <&wifi_pwrseq>;
237 bus-width = <4>;
238 non-removable;
239 status = "okay";
240
241 rtl8723cs: wifi@1 {
242 reg = <1>;
243 };
244 };
245
246 &mmc2 {
247 pinctrl-names = "default";
248 pinctrl-0 = <&mmc2_pins>;
249 vmmc-supply = <&reg_dcdc1>;
250 vqmmc-supply = <&reg_dcdc1>;
251 bus-width = <8>;
252 non-removable;
253 cap-mmc-hw-reset;
254 status = "okay";
255 };
256
257 &ohci0 {
258 status = "okay";
259 };
260
261 &pwm {
262 status = "okay";
263 };
264
265 &r_rsb {
266 status = "okay";
267
268 axp803: pmic@3a3 {
269 compatible = "x-powers,axp803";
270 reg = <0x3a3>;
271 interrupt-parent = <&r_intc>;
272 interrupts = <0 IRQ_TYPE_LEVEL_LOW>;
273 x-powers,drive-vbus-en;
274 };
275 };
276
277 #include "axp803.dtsi"
278
279 &ac_power_supply {
280 status = "okay";
281 };
282
283 &battery_power_supply {
284 status = "okay";
285 };
286
287 &reg_aldo1 {
288 regulator-min-microvolt = <2800000>;
289 regulator-max-microvolt = <2800000>;
290 regulator-name = "dovdd-csi";
291 };
292
293 &reg_aldo2 {
294 regulator-always-on;
295 regulator-min-microvolt = <1800000>;
296 regulator-max-microvolt = <3300000>;
297 regulator-name = "vcc-pl";
298 };
299
300 &reg_aldo3 {
301 regulator-always-on;
302 regulator-min-microvolt = <2700000>;
303 regulator-max-microvolt = <3300000>;
304 regulator-name = "vcc-pll-avcc";
305 };
306
307 &reg_dc1sw {
308 regulator-name = "vcc-lcd";
309 };
310
311 &reg_dcdc1 {
312 regulator-always-on;
313 regulator-min-microvolt = <3300000>;
314 regulator-max-microvolt = <3300000>;
315 regulator-name = "vcc-3v3";
316 };
317
318 &reg_dcdc2 {
319 regulator-always-on;
320 regulator-min-microvolt = <1000000>;
321 regulator-max-microvolt = <1300000>;
322 regulator-name = "vdd-cpux";
323 };
324
325 /* DCDC3 is polyphased with DCDC2 */
326
327 &reg_dcdc5 {
328 regulator-always-on;
329 regulator-min-microvolt = <1200000>;
330 regulator-max-microvolt = <1200000>;
331 regulator-name = "vcc-dram";
332 };
333
334 &reg_dcdc6 {
335 regulator-always-on;
336 regulator-min-microvolt = <1100000>;
337 regulator-max-microvolt = <1100000>;
338 regulator-name = "vdd-sys";
339 };
340
341 &reg_dldo1 {
342 regulator-always-on;
343 regulator-min-microvolt = <3300000>;
344 regulator-max-microvolt = <3300000>;
345 regulator-name = "vcc-hdmi-dsi-sensor";
346 };
347
348 &reg_dldo3 {
349 regulator-min-microvolt = <2800000>;
350 regulator-max-microvolt = <2800000>;
351 regulator-name = "avdd-csi";
352 };
353
354 &reg_dldo4 {
355 regulator-min-microvolt = <3300000>;
356 regulator-max-microvolt = <3300000>;
357 regulator-name = "vcc-wifi";
358 };
359
360 &reg_drivevbus {
361 regulator-name = "usb0-vbus";
362 status = "okay";
363 };
364
365 &reg_eldo1 {
366 regulator-always-on;
367 regulator-min-microvolt = <1800000>;
368 regulator-max-microvolt = <1800000>;
369 regulator-name = "cpvdd";
370 };
371
372 &reg_eldo2 {
373 regulator-min-microvolt = <1800000>;
374 regulator-max-microvolt = <1800000>;
375 regulator-name = "vcca-1v8";
376 };
377
378 &reg_eldo3 {
379 regulator-min-microvolt = <1800000>;
380 regulator-max-microvolt = <1800000>;
381 regulator-name = "dvdd-1v8-csi";
382 };
383
384 &reg_fldo1 {
385 regulator-min-microvolt = <1200000>;
386 regulator-max-microvolt = <1200000>;
387 regulator-name = "vcc-1v2-hsic";
388 };
389
390 &reg_fldo2 {
391 regulator-always-on;
392 regulator-min-microvolt = <1100000>;
393 regulator-max-microvolt = <1100000>;
394 regulator-name = "vdd-cpus";
395 };
396
397 &reg_ldo_io0 {
398 regulator-min-microvolt = <3300000>;
399 regulator-max-microvolt = <3300000>;
400 regulator-name = "vcc-usb";
401 status = "okay";
402 };
403
404 &reg_ldo_io1 {
405 regulator-min-microvolt = <3300000>;
406 regulator-max-microvolt = <3300000>;
407 regulator-enable-ramp-delay = <3500000>;
408 regulator-name = "vcc-touchscreen";
409 status = "okay";
410 };
411
412 &reg_rtc_ldo {
413 regulator-name = "vcc-rtc";
414 };
415
416 &sound {
417 status = "okay";
418 simple-audio-card,aux-devs = <&codec_analog>, <&speaker_amp>;
419 simple-audio-card,widgets = "Microphone", "Internal Microphone Left",
420 "Microphone", "Internal Microphone Right",
421 "Headphone", "Headphone Jack",
422 "Speaker", "Internal Speaker";
423 simple-audio-card,routing =
424 "Left DAC", "AIF1 Slot 0 Left",
425 "Right DAC", "AIF1 Slot 0 Right",
426 "Speaker Amp INL", "LINEOUT",
427 "Speaker Amp INR", "LINEOUT",
428 "Internal Speaker", "Speaker Amp OUTL",
429 "Internal Speaker", "Speaker Amp OUTR",
430 "Headphone Jack", "HP",
431 "AIF1 Slot 0 Left ADC", "Left ADC",
432 "AIF1 Slot 0 Right ADC", "Right ADC",
433 "Internal Microphone Left", "MBIAS",
434 "MIC1", "Internal Microphone Left",
435 "Internal Microphone Right", "HBIAS",
436 "MIC2", "Internal Microphone Right";
437 };
438
439 &uart0 {
440 pinctrl-names = "default";
441 pinctrl-0 = <&uart0_pb_pins>;
442 status = "okay";
443 };
444
445 &usb_otg {
446 dr_mode = "otg";
447 status = "okay";
448 };
449
450 &usb_power_supply {
451 status = "okay";
452 };
453
454 &usbphy {
455 usb0_id_det-gpios = <&pio 7 9 GPIO_ACTIVE_HIGH>; /* PH9 */
456 usb0_vbus_power-supply = <&usb_power_supply>;
457 usb0_vbus-supply = <&reg_drivevbus>;
458 usb1_vbus-supply = <&reg_ldo_io0>;
459 status = "okay";
460 };