~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

TOMOYO Linux Cross Reference
Linux/arch/arm64/boot/dts/allwinner/sun50i-a64-pinephone.dtsi

Version: ~ [ linux-6.11-rc3 ] ~ [ linux-6.10.4 ] ~ [ linux-6.9.12 ] ~ [ linux-6.8.12 ] ~ [ linux-6.7.12 ] ~ [ linux-6.6.45 ] ~ [ linux-6.5.13 ] ~ [ linux-6.4.16 ] ~ [ linux-6.3.13 ] ~ [ linux-6.2.16 ] ~ [ linux-6.1.104 ] ~ [ linux-6.0.19 ] ~ [ linux-5.19.17 ] ~ [ linux-5.18.19 ] ~ [ linux-5.17.15 ] ~ [ linux-5.16.20 ] ~ [ linux-5.15.164 ] ~ [ linux-5.14.21 ] ~ [ linux-5.13.19 ] ~ [ linux-5.12.19 ] ~ [ linux-5.11.22 ] ~ [ linux-5.10.223 ] ~ [ linux-5.9.16 ] ~ [ linux-5.8.18 ] ~ [ linux-5.7.19 ] ~ [ linux-5.6.19 ] ~ [ linux-5.5.19 ] ~ [ linux-5.4.281 ] ~ [ linux-5.3.18 ] ~ [ linux-5.2.21 ] ~ [ linux-5.1.21 ] ~ [ linux-5.0.21 ] ~ [ linux-4.20.17 ] ~ [ linux-4.19.319 ] ~ [ linux-4.18.20 ] ~ [ linux-4.17.19 ] ~ [ linux-4.16.18 ] ~ [ linux-4.15.18 ] ~ [ linux-4.14.336 ] ~ [ linux-4.13.16 ] ~ [ linux-4.12.14 ] ~ [ linux-4.11.12 ] ~ [ linux-4.10.17 ] ~ [ linux-4.9.337 ] ~ [ linux-4.4.302 ] ~ [ linux-3.10.108 ] ~ [ linux-2.6.32.71 ] ~ [ linux-2.6.0 ] ~ [ linux-2.4.37.11 ] ~ [ unix-v6-master ] ~ [ ccs-tools-1.8.9 ] ~ [ policy-sample ] ~
Architecture: ~ [ i386 ] ~ [ alpha ] ~ [ m68k ] ~ [ mips ] ~ [ ppc ] ~ [ sparc ] ~ [ sparc64 ] ~

  1 // SPDX-License-Identifier: (GPL-2.0+ OR MIT)
  2 // Copyright (C) 2019 Icenowy Zheng <icenowy@aosc.xyz>
  3 // Copyright (C) 2020 Martijn Braam <martijn@brixit.nl>
  4 // Copyright (C) 2020 Ondrej Jirman <megous@megous.com>
  5 
  6 #include "sun50i-a64.dtsi"
  7 #include "sun50i-a64-cpu-opp.dtsi"
  8 
  9 #include <dt-bindings/gpio/gpio.h>
 10 #include <dt-bindings/input/input.h>
 11 #include <dt-bindings/leds/common.h>
 12 #include <dt-bindings/pwm/pwm.h>
 13 
 14 / {
 15         chassis-type = "handset";
 16 
 17         aliases {
 18                 ethernet0 = &rtl8723cs;
 19                 serial0 = &uart0;
 20         };
 21 
 22         backlight: backlight {
 23                 compatible = "pwm-backlight";
 24                 pwms = <&r_pwm 0 50000 PWM_POLARITY_INVERTED>;
 25                 enable-gpios = <&pio 7 10 GPIO_ACTIVE_HIGH>; /* PH10 */
 26                 power-supply = <&reg_ps>;
 27                 /* Backlight configuration differs per PinePhone revision. */
 28         };
 29 
 30         bt_sco_codec: bt-sco-codec {
 31                 #sound-dai-cells = <1>;
 32                 compatible = "linux,bt-sco";
 33         };
 34 
 35         chosen {
 36                 stdout-path = "serial0:115200n8";
 37         };
 38 
 39         leds {
 40                 compatible = "gpio-leds";
 41 
 42                 led0: led-0 {
 43                         function = LED_FUNCTION_INDICATOR;
 44                         color = <LED_COLOR_ID_BLUE>;
 45                         gpios = <&pio 3 20 GPIO_ACTIVE_HIGH>; /* PD20 */
 46                         retain-state-suspended;
 47                 };
 48 
 49                 led1: led-1 {
 50                         function = LED_FUNCTION_INDICATOR;
 51                         color = <LED_COLOR_ID_GREEN>;
 52                         gpios = <&pio 3 18 GPIO_ACTIVE_HIGH>; /* PD18 */
 53                         retain-state-suspended;
 54                 };
 55 
 56                 led2: led-2 {
 57                         function = LED_FUNCTION_INDICATOR;
 58                         color = <LED_COLOR_ID_RED>;
 59                         gpios = <&pio 3 19 GPIO_ACTIVE_HIGH>; /* PD19 */
 60                         retain-state-suspended;
 61                 };
 62         };
 63 
 64         multi-led {
 65                 compatible = "leds-group-multicolor";
 66                 color = <LED_COLOR_ID_RGB>;
 67                 function = LED_FUNCTION_INDICATOR;
 68                 leds = <&led0>, <&led1>, <&led2>;
 69         };
 70 
 71         reg_ps: ps-regulator {
 72                 compatible = "regulator-fixed";
 73                 regulator-name = "ps";
 74                 regulator-min-microvolt = <5000000>;
 75                 regulator-max-microvolt = <5000000>;
 76                 regulator-boot-on;
 77         };
 78 
 79         reg_vbat_wifi: vbat-wifi {
 80                 compatible = "regulator-fixed";
 81                 regulator-min-microvolt = <3300000>;
 82                 regulator-max-microvolt = <3300000>;
 83                 regulator-name = "vbat-wifi";
 84         };
 85 
 86         sgm3140: led-controller {
 87                 compatible = "sgmicro,sgm3140";
 88                 vin-supply = <&reg_dcdc1>;
 89 
 90                 sgm3140_flash: led {
 91                         function = LED_FUNCTION_FLASH;
 92                         color = <LED_COLOR_ID_WHITE>;
 93                         flash-max-timeout-us = <250000>;
 94                 };
 95         };
 96 
 97         speaker_amp: audio-amplifier {
 98                 compatible = "simple-audio-amplifier";
 99                 enable-gpios = <&pio 2 7 GPIO_ACTIVE_HIGH>; /* PC7 */
100                 sound-name-prefix = "Speaker Amp";
101         };
102 
103         vibrator {
104                 compatible = "gpio-vibrator";
105                 enable-gpios = <&pio 3 2 GPIO_ACTIVE_HIGH>; /* PD2 */
106                 vcc-supply = <&reg_dcdc1>;
107         };
108 };
109 
110 &codec {
111         pinctrl-names = "default";
112         pinctrl-0 = <&aif3_pins>;
113         status = "okay";
114 };
115 
116 &codec_analog {
117         cpvdd-supply = <&reg_eldo1>;
118         status = "okay";
119 };
120 
121 &cpu0 {
122         cpu-supply = <&reg_dcdc2>;
123 };
124 
125 &cpu1 {
126         cpu-supply = <&reg_dcdc2>;
127 };
128 
129 &cpu2 {
130         cpu-supply = <&reg_dcdc2>;
131 };
132 
133 &cpu3 {
134         cpu-supply = <&reg_dcdc2>;
135 };
136 
137 &dai {
138         status = "okay";
139 };
140 
141 &de {
142         status = "okay";
143 };
144 
145 &dphy {
146         status = "okay";
147 };
148 
149 &dsi {
150         vcc-dsi-supply = <&reg_dldo1>;
151         status = "okay";
152 
153         panel@0 {
154                 compatible = "xingbangda,xbd599";
155                 reg = <0>;
156                 reset-gpios = <&pio 3 23 GPIO_ACTIVE_LOW>; /* PD23 */
157                 iovcc-supply = <&reg_dldo2>;
158                 vcc-supply = <&reg_ldo_io0>;
159                 backlight = <&backlight>;
160         };
161 };
162 
163 &ehci0 {
164         status = "okay";
165 };
166 
167 &ehci1 {
168         status = "okay";
169 };
170 
171 &i2c0 {
172         status = "okay";
173 
174         touchscreen@5d {
175                 compatible = "goodix,gt917s";
176                 reg = <0x5d>;
177                 interrupt-parent = <&pio>;
178                 interrupts = <7 4 IRQ_TYPE_LEVEL_HIGH>; /* PH4 */
179                 irq-gpios = <&pio 7 4 GPIO_ACTIVE_HIGH>; /* PH4 */
180                 reset-gpios = <&pio 7 11 GPIO_ACTIVE_HIGH>; /* PH11 */
181                 AVDD28-supply = <&reg_ldo_io0>;
182                 VDDIO-supply = <&reg_ldo_io0>;
183                 touchscreen-size-x = <720>;
184                 touchscreen-size-y = <1440>;
185         };
186 };
187 
188 &i2c1 {
189         status = "okay";
190 
191         /* Magnetometer */
192         lis3mdl: magnetometer@1e {
193                 compatible = "st,lis3mdl-magn";
194                 reg = <0x1e>;
195                 vdd-supply = <&reg_dldo1>;
196                 vddio-supply = <&reg_dldo1>;
197         };
198 
199         /* Light/proximity sensor */
200         light-sensor@48 {
201                 compatible = "sensortek,stk3311";
202                 reg = <0x48>;
203                 interrupt-parent = <&pio>;
204                 interrupts = <1 0 IRQ_TYPE_EDGE_FALLING>; /* PB0 */
205         };
206 
207         /* Accelerometer/gyroscope */
208         accelerometer@68 {
209                 compatible = "invensense,mpu6050";
210                 reg = <0x68>;
211                 interrupt-parent = <&pio>;
212                 interrupts = <7 5 IRQ_TYPE_EDGE_RISING>; /* PH5 */
213                 vdd-supply = <&reg_dldo1>;
214                 vddio-supply = <&reg_dldo1>;
215         };
216 };
217 
218 /* Connected to pogo pins (external spring based pinheader for user addons) */
219 &i2c2 {
220         status = "okay";
221 };
222 
223 &lradc {
224         vref-supply = <&reg_aldo3>;
225         wakeup-source;
226         status = "okay";
227 
228         button-200 {
229                 label = "Volume Up";
230                 linux,code = <KEY_VOLUMEUP>;
231                 channel = <0>;
232                 voltage = <200000>;
233         };
234 
235         button-400 {
236                 label = "Volume Down";
237                 linux,code = <KEY_VOLUMEDOWN>;
238                 channel = <0>;
239                 voltage = <400000>;
240         };
241 };
242 
243 &mmc0 {
244         pinctrl-names = "default";
245         pinctrl-0 = <&mmc0_pins>;
246         vmmc-supply = <&reg_dcdc1>;
247         vqmmc-supply = <&reg_dcdc1>;
248         cd-gpios = <&pio 5 6 GPIO_ACTIVE_LOW>; /* PF6 */
249         disable-wp;
250         bus-width = <4>;
251         status = "okay";
252 };
253 
254 &mmc1 {
255         pinctrl-names = "default";
256         pinctrl-0 = <&mmc1_pins>;
257         vmmc-supply = <&reg_vbat_wifi>;
258         vqmmc-supply = <&reg_dldo4>;
259         bus-width = <4>;
260         non-removable;
261         status = "okay";
262 
263         rtl8723cs: wifi@1 {
264                 reg = <1>;
265         };
266 };
267 
268 &mmc2 {
269         pinctrl-names = "default";
270         pinctrl-0 = <&mmc2_pins>;
271         vmmc-supply = <&reg_dcdc1>;
272         vqmmc-supply = <&reg_dcdc1>;
273         bus-width = <8>;
274         non-removable;
275         cap-mmc-hw-reset;
276         status = "okay";
277 };
278 
279 &ohci0 {
280         status = "okay";
281 };
282 
283 &ohci1 {
284         status = "okay";
285 };
286 
287 &pio {
288         vcc-pb-supply = <&reg_dcdc1>;
289         vcc-pc-supply = <&reg_dcdc1>;
290         vcc-pd-supply = <&reg_dcdc1>;
291         vcc-pe-supply = <&reg_aldo1>;
292         vcc-pf-supply = <&reg_dcdc1>;
293         vcc-pg-supply = <&reg_dldo4>;
294         vcc-ph-supply = <&reg_dcdc1>;
295 };
296 
297 &r_pio {
298         /*
299          * FIXME: We can't add that supply for now since it would
300          * create a circular dependency between pinctrl, the regulator
301          * and the RSB Bus.
302          *
303          * vcc-pl-supply = <&reg_aldo2>;
304          */
305 };
306 
307 &r_pwm {
308         status = "okay";
309 };
310 
311 &r_rsb {
312         status = "okay";
313 
314         axp803: pmic@3a3 {
315                 compatible = "x-powers,axp803";
316                 reg = <0x3a3>;
317                 interrupt-parent = <&r_intc>;
318                 interrupts = <GIC_SPI 32 IRQ_TYPE_LEVEL_LOW>;
319         };
320 };
321 
322 #include "axp803.dtsi"
323 
324 &battery_power_supply {
325         status = "okay";
326 };
327 
328 &reg_aldo1 {
329         regulator-min-microvolt = <1800000>;
330         regulator-max-microvolt = <1800000>;
331         regulator-name = "dovdd-csi";
332 };
333 
334 &reg_aldo2 {
335         regulator-always-on;
336         regulator-min-microvolt = <1800000>;
337         regulator-max-microvolt = <1800000>;
338         regulator-name = "vcc-pl";
339 };
340 
341 &reg_aldo3 {
342         regulator-always-on;
343         regulator-min-microvolt = <3000000>;
344         regulator-max-microvolt = <3000000>;
345         regulator-name = "vcc-pll-avcc";
346 };
347 
348 &reg_dcdc1 {
349         regulator-always-on;
350         regulator-min-microvolt = <3300000>;
351         regulator-max-microvolt = <3300000>;
352         regulator-name = "vcc-3v3";
353 };
354 
355 &reg_dcdc2 {
356         regulator-always-on;
357         regulator-min-microvolt = <1000000>;
358         regulator-max-microvolt = <1300000>;
359         regulator-name = "vdd-cpux";
360 };
361 
362 /* DCDC3 is polyphased with DCDC2 */
363 
364 &reg_dcdc5 {
365         regulator-always-on;
366         regulator-min-microvolt = <1200000>;
367         regulator-max-microvolt = <1200000>;
368         regulator-name = "vcc-dram";
369 };
370 
371 &reg_dcdc6 {
372         regulator-always-on;
373         regulator-min-microvolt = <1100000>;
374         regulator-max-microvolt = <1100000>;
375         regulator-name = "vdd-sys";
376 };
377 
378 &reg_dldo1 {
379         regulator-min-microvolt = <3300000>;
380         regulator-max-microvolt = <3300000>;
381         regulator-name = "vcc-dsi-sensor";
382 };
383 
384 &reg_dldo2 {
385         regulator-min-microvolt = <1800000>;
386         regulator-max-microvolt = <1800000>;
387         regulator-name = "vcc-mipi-io";
388 };
389 
390 &reg_dldo3 {
391         regulator-min-microvolt = <2800000>;
392         regulator-max-microvolt = <2800000>;
393         regulator-name = "avdd-csi";
394 };
395 
396 &reg_dldo4 {
397         regulator-min-microvolt = <1800000>;
398         regulator-max-microvolt = <1800000>;
399         regulator-name = "vcc-wifi-io";
400 };
401 
402 &reg_eldo1 {
403         regulator-always-on;
404         regulator-min-microvolt = <1800000>;
405         regulator-max-microvolt = <1800000>;
406         regulator-name = "vcc-lpddr";
407 };
408 
409 &reg_eldo3 {
410         regulator-min-microvolt = <1800000>;
411         regulator-max-microvolt = <1800000>;
412         regulator-name = "dvdd-1v8-csi";
413 };
414 
415 &reg_fldo1 {
416         regulator-min-microvolt = <1200000>;
417         regulator-max-microvolt = <1200000>;
418         regulator-name = "vcc-1v2-hsic";
419 };
420 
421 &reg_fldo2 {
422         regulator-always-on;
423         regulator-min-microvolt = <1100000>;
424         regulator-max-microvolt = <1100000>;
425         regulator-name = "vdd-cpus";
426 };
427 
428 &reg_ldo_io0 {
429         regulator-min-microvolt = <3300000>;
430         regulator-max-microvolt = <3300000>;
431         regulator-name = "vcc-lcd-ctp-stk";
432         status = "okay";
433 };
434 
435 &reg_ldo_io1 {
436         regulator-min-microvolt = <1800000>;
437         regulator-max-microvolt = <1800000>;
438         regulator-name = "vcc-1v8-typec";
439         status = "okay";
440 };
441 
442 &reg_rtc_ldo {
443         regulator-name = "vcc-rtc";
444 };
445 
446 &sound {
447         status = "okay";
448         simple-audio-card,name = "PinePhone";
449         simple-audio-card,aux-devs = <&codec_analog>, <&speaker_amp>;
450         simple-audio-card,widgets = "Microphone", "Headset Microphone",
451                                     "Microphone", "Internal Microphone",
452                                     "Headphone", "Headphone Jack",
453                                     "Speaker", "Internal Earpiece",
454                                     "Speaker", "Internal Speaker";
455         simple-audio-card,routing =
456                         "Headphone Jack", "HP",
457                         "Internal Earpiece", "EARPIECE",
458                         "Internal Speaker", "Speaker Amp OUTL",
459                         "Internal Speaker", "Speaker Amp OUTR",
460                         "Speaker Amp INL", "LINEOUT",
461                         "Speaker Amp INR", "LINEOUT",
462                         "Left DAC", "DACL",
463                         "Right DAC", "DACR",
464                         "ADCL", "Left ADC",
465                         "ADCR", "Right ADC",
466                         "Internal Microphone", "MBIAS",
467                         "MIC1", "Internal Microphone",
468                         "Headset Microphone", "HBIAS",
469                         "MIC2", "Headset Microphone";
470 
471         simple-audio-card,dai-link@2 {
472                 format = "dsp_a";
473                 frame-master = <&link2_codec>;
474                 bitclock-master = <&link2_codec>;
475                 bitclock-inversion;
476 
477                 link2_cpu: cpu {
478                         sound-dai = <&bt_sco_codec 0>;
479                 };
480 
481                 link2_codec: codec {
482                         sound-dai = <&codec 2>;
483                         dai-tdm-slot-num = <1>;
484                         dai-tdm-slot-width = <32>;
485                 };
486         };
487 };
488 
489 &uart0 {
490         pinctrl-names = "default";
491         pinctrl-0 = <&uart0_pb_pins>;
492         status = "okay";
493 };
494 
495 &uart1 {
496         pinctrl-names = "default";
497         pinctrl-0 = <&uart1_pins>, <&uart1_rts_cts_pins>;
498         status = "okay";
499 
500         bluetooth {
501                 compatible = "realtek,rtl8723cs-bt";
502                 device-wake-gpios = <&pio 7 6 GPIO_ACTIVE_LOW>; /* PH6 */
503                 enable-gpios = <&r_pio 0 4 GPIO_ACTIVE_HIGH>; /* PL4 */
504                 host-wake-gpios = <&r_pio 0 5 GPIO_ACTIVE_HIGH>; /* PL5 */
505         };
506 };
507 
508 /* Connected to the modem (hardware flow control can't be used) */
509 &uart3 {
510         pinctrl-names = "default";
511         pinctrl-0 = <&uart3_pins>;
512         status = "okay";
513 };
514 
515 &usb_otg {
516         dr_mode = "peripheral";
517         status = "okay";
518 };
519 
520 &usb_power_supply {
521         status = "okay";
522 };
523 
524 &usbphy {
525         status = "okay";
526 };

~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

kernel.org | git.kernel.org | LWN.net | Project Home | SVN repository | Mail admin

Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.

sflogo.php