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