arm64: dts: qcom: sm8550: add TRNG node
[linux-modified.git] / arch / arm64 / boot / dts / allwinner / sun50i-a64-teres-i.dts
1 // SPDX-License-Identifier: (GPL-2.0 OR MIT)
2 // Copyright (C) Harald Geyer <harald@ccbib.org>
3 // based on sun50i-a64-olinuxino.dts by Jagan Teki <jteki@openedev.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/input.h>
12 #include <dt-bindings/pwm/pwm.h>
13
14 / {
15         model = "Olimex A64 Teres-I";
16         compatible = "olimex,a64-teres-i", "allwinner,sun50i-a64";
17         chassis-type = "laptop";
18
19         aliases {
20                 serial0 = &uart0;
21         };
22
23         backlight: backlight {
24                 compatible = "pwm-backlight";
25                 pwms = <&pwm 0 50000 0>;
26                 power-supply = <&reg_dcdc1>;
27                 brightness-levels = <0 5 7 10 14 20 28 40 56 80 112>;
28                 default-brightness-level = <5>;
29                 enable-gpios = <&pio 3 23 GPIO_ACTIVE_HIGH>; /* PD23 */
30         };
31
32         chosen {
33                 stdout-path = "serial0:115200n8";
34
35                 framebuffer-lcd {
36                         eDP25-supply = <&reg_dldo2>;
37                         eDP12-supply = <&reg_dldo3>;
38                 };
39         };
40
41         gpio-keys {
42                 compatible = "gpio-keys";
43
44                 lid-switch {
45                         label = "Lid Switch";
46                         gpios = <&r_pio 0 8 GPIO_ACTIVE_LOW>; /* PL8 */
47                         linux,input-type = <EV_SW>;
48                         linux,code = <SW_LID>;
49                         wakeup-source;
50                 };
51         };
52
53         leds {
54                 compatible = "gpio-leds";
55
56                 led-0 {
57                         label = "teres-i:green:capslock";
58                         gpios = <&pio 2 7 GPIO_ACTIVE_HIGH>; /* PC7 */
59                 };
60
61                 led-1 {
62                         label = "teres-i:green:numlock";
63                         gpios = <&pio 2 4 GPIO_ACTIVE_HIGH>; /* PC4 */
64                 };
65         };
66
67         reg_usb1_vbus: usb1-vbus {
68                 compatible = "regulator-fixed";
69                 regulator-name = "usb1-vbus";
70                 regulator-min-microvolt = <5000000>;
71                 regulator-max-microvolt = <5000000>;
72                 enable-active-high;
73                 gpio = <&r_pio 0 7 GPIO_ACTIVE_HIGH>; /* PL7 */
74                 status = "okay";
75         };
76
77         wifi_pwrseq: wifi_pwrseq {
78                 compatible = "mmc-pwrseq-simple";
79                 reset-gpios = <&r_pio 0 2 GPIO_ACTIVE_LOW>; /* PL2 */
80         };
81
82         speaker_amp: audio-amplifier {
83                 compatible = "simple-audio-amplifier";
84                 enable-gpios = <&r_pio 0 12 GPIO_ACTIVE_HIGH>; /* PL12 */
85                 sound-name-prefix = "Speaker Amp";
86         };
87 };
88
89 &codec {
90         status = "okay";
91 };
92
93 &codec_analog {
94         cpvdd-supply = <&reg_eldo1>;
95         status = "okay";
96 };
97
98 &dai {
99         status = "okay";
100 };
101
102 &de {
103         status = "okay";
104 };
105
106 &cpu0 {
107         cpu-supply = <&reg_dcdc2>;
108 };
109
110 &cpu1 {
111         cpu-supply = <&reg_dcdc2>;
112 };
113
114 &cpu2 {
115         cpu-supply = <&reg_dcdc2>;
116 };
117
118 &cpu3 {
119         cpu-supply = <&reg_dcdc2>;
120 };
121
122 &ehci1 {
123         status = "okay";
124 };
125
126
127 &i2c0 {
128         clock-frequency = <100000>;
129         status = "okay";
130
131         anx6345: anx6345@38 {
132                 compatible = "analogix,anx6345";
133                 reg = <0x38>;
134                 reset-gpios = <&pio 3 24 GPIO_ACTIVE_LOW>; /* PD24 */
135                 dvdd25-supply = <&reg_dldo2>;
136                 dvdd12-supply = <&reg_dldo3>;
137
138                 ports {
139                         #address-cells = <1>;
140                         #size-cells = <0>;
141
142                         port@0 {
143                                 reg = <0>;
144
145                                 anx6345_in: endpoint {
146                                         remote-endpoint = <&tcon0_out_anx6345>;
147                                 };
148                         };
149                 };
150         };
151 };
152
153 &mixer0 {
154         status = "okay";
155 };
156
157 &mmc0 {
158         pinctrl-names = "default";
159         pinctrl-0 = <&mmc0_pins>;
160         vmmc-supply = <&reg_dcdc1>;
161         cd-gpios = <&pio 5 6 GPIO_ACTIVE_LOW>;
162         disable-wp;
163         bus-width = <4>;
164         status = "okay";
165 };
166
167 &mmc1 {
168         pinctrl-names = "default";
169         pinctrl-0 = <&mmc1_pins>;
170         vmmc-supply = <&reg_aldo2>;
171         vqmmc-supply = <&reg_dldo4>;
172         mmc-pwrseq = <&wifi_pwrseq>;
173         bus-width = <4>;
174         non-removable;
175         status = "okay";
176
177         rtl8723bs: wifi@1 {
178                 reg = <1>;
179                 interrupt-parent = <&r_pio>;
180                 interrupts = <0 3 IRQ_TYPE_LEVEL_LOW>; /* PL3 */
181                 interrupt-names = "host-wake";
182         };
183 };
184
185 &mmc2 {
186         pinctrl-names = "default";
187         pinctrl-0 = <&mmc2_pins>;
188         vmmc-supply = <&reg_dcdc1>;
189         vqmmc-supply = <&reg_dcdc1>;
190         bus-width = <8>;
191         non-removable;
192         cap-mmc-hw-reset;
193         status = "okay";
194 };
195
196 &ohci1 {
197         status = "okay";
198 };
199
200 &pio {
201         vcc-pc-supply = <&reg_dcdc1>;
202         vcc-pd-supply = <&reg_dldo2>;
203         vcc-pe-supply = <&reg_aldo1>;
204         vcc-pf-supply = <&reg_dcdc1>;  /* No dedicated supply-pin for this */
205         vcc-pg-supply = <&reg_aldo2>;
206 };
207
208 &pwm {
209         status = "okay";
210 };
211
212 &r_rsb {
213         status = "okay";
214
215         axp803: pmic@3a3 {
216                 compatible = "x-powers,axp803";
217                 reg = <0x3a3>;
218                 interrupt-parent = <&r_intc>;
219                 interrupts = <GIC_SPI 32 IRQ_TYPE_LEVEL_LOW>;
220         };
221 };
222
223 #include "axp803.dtsi"
224
225 &ac_power_supply {
226         status = "okay";
227 };
228
229 &battery_power_supply {
230         status = "okay";
231 };
232
233 &reg_aldo1 {
234         regulator-always-on;
235         regulator-min-microvolt = <2800000>;
236         regulator-max-microvolt = <2800000>;
237         regulator-name = "vcc-pe";
238 };
239
240 &reg_aldo2 {
241         regulator-always-on;
242         regulator-min-microvolt = <3300000>;
243         regulator-max-microvolt = <3300000>;
244         regulator-name = "vcc-pl";
245 };
246
247 &reg_aldo3 {
248         regulator-always-on;
249         regulator-min-microvolt = <3000000>;
250         regulator-max-microvolt = <3000000>;
251         regulator-name = "vcc-pll-avcc";
252 };
253
254 &reg_dcdc1 {
255         regulator-always-on;
256         regulator-min-microvolt = <3300000>;
257         regulator-max-microvolt = <3300000>;
258         regulator-name = "vcc-3v3";
259 };
260
261 &reg_dcdc2 {
262         regulator-always-on;
263         regulator-min-microvolt = <1040000>;
264         regulator-max-microvolt = <1300000>;
265         regulator-name = "vdd-cpux";
266 };
267
268 /* DCDC3 is polyphased with DCDC2 */
269
270 &reg_dcdc5 {
271         regulator-always-on;
272         regulator-min-microvolt = <1500000>;
273         regulator-max-microvolt = <1500000>;
274         regulator-name = "vcc-ddr3";
275 };
276
277 &reg_dcdc6 {
278         regulator-always-on;
279         regulator-min-microvolt = <1100000>;
280         regulator-max-microvolt = <1100000>;
281         regulator-name = "vdd-sys";
282 };
283
284 &reg_dldo1 {
285         regulator-min-microvolt = <3300000>;
286         regulator-max-microvolt = <3300000>;
287         regulator-name = "vcc-hdmi";
288 };
289
290 &reg_dldo2 {
291         regulator-min-microvolt = <2500000>;
292         regulator-max-microvolt = <2500000>;
293         regulator-name = "vcc-pd";
294 };
295
296 &reg_dldo3 {
297         regulator-min-microvolt = <1200000>;
298         regulator-max-microvolt = <1200000>;
299         regulator-name = "vdd-edp";
300 };
301
302 &reg_dldo4 {
303         regulator-min-microvolt = <3300000>;
304         regulator-max-microvolt = <3300000>;
305         regulator-name = "vcc-wifi-io";
306 };
307
308 &reg_eldo1 {
309         regulator-min-microvolt = <1800000>;
310         regulator-max-microvolt = <1800000>;
311         regulator-name = "cpvdd";
312 };
313
314 &reg_eldo2 {
315         regulator-min-microvolt = <1800000>;
316         regulator-max-microvolt = <1800000>;
317         regulator-name = "vcc-dvdd-csi";
318 };
319
320 &reg_fldo1 {
321         regulator-min-microvolt = <1200000>;
322         regulator-max-microvolt = <1200000>;
323         regulator-name = "vcc-1v2-hsic";
324 };
325
326 /*
327  * The A64 chip cannot work with this regulator off, although
328  * it seems to be only driving the AR100 core.
329  * Maybe we don't still know well about CPUs domain.
330  */
331 &reg_fldo2 {
332         regulator-always-on;
333         regulator-min-microvolt = <1100000>;
334         regulator-max-microvolt = <1100000>;
335         regulator-name = "vdd-cpus";
336 };
337
338 &reg_rtc_ldo {
339         regulator-name = "vcc-rtc";
340 };
341
342 &simplefb_hdmi {
343         vcc-hdmi-supply = <&reg_dldo1>;
344 };
345
346 &sound {
347         simple-audio-card,aux-devs = <&codec_analog>, <&speaker_amp>;
348         simple-audio-card,widgets = "Headphone", "Headphone Jack",
349                                     "Microphone", "Headset Microphone",
350                                     "Microphone", "Internal Microphone",
351                                     "Speaker", "Internal Speaker";
352         simple-audio-card,routing =
353                         "Left DAC", "DACL",
354                         "Right DAC", "DACR",
355                         "ADCL", "Left ADC",
356                         "ADCR", "Right ADC",
357                         "Headphone Jack", "HP",
358                         "Speaker Amp INL", "LINEOUT",
359                         "Speaker Amp INR", "LINEOUT",
360                         "Internal Speaker", "Speaker Amp OUTL",
361                         "Internal Speaker", "Speaker Amp OUTR",
362                         "Internal Microphone", "MBIAS",
363                         "MIC1", "Internal Microphone",
364                         "Headset Microphone", "HBIAS",
365                         "MIC2", "Headset Microphone";
366         status = "okay";
367 };
368
369 &tcon0 {
370         pinctrl-names = "default";
371         pinctrl-0 = <&lcd_rgb666_pins>;
372
373         status = "okay";
374 };
375
376 &tcon0_out {
377         tcon0_out_anx6345: endpoint@0 {
378                 reg = <0>;
379                 remote-endpoint = <&anx6345_in>;
380         };
381 };
382
383 &uart0 {
384         pinctrl-names = "default";
385         pinctrl-0 = <&uart0_pb_pins>;
386         status = "okay";
387 };
388
389 &usbphy {
390         usb1_vbus-supply = <&reg_usb1_vbus>;
391         status = "okay";
392 };