162306a36Sopenharmony_ci// SPDX-License-Identifier: (GPL-2.0+ OR MIT) 262306a36Sopenharmony_ci// Copyright (C) 2019 Icenowy Zheng <icenowy@aosc.xyz> 362306a36Sopenharmony_ci// Copyright (C) 2020 Martijn Braam <martijn@brixit.nl> 462306a36Sopenharmony_ci// Copyright (C) 2020 Ondrej Jirman <megous@megous.com> 562306a36Sopenharmony_ci 662306a36Sopenharmony_ci#include "sun50i-a64.dtsi" 762306a36Sopenharmony_ci#include "sun50i-a64-cpu-opp.dtsi" 862306a36Sopenharmony_ci 962306a36Sopenharmony_ci#include <dt-bindings/gpio/gpio.h> 1062306a36Sopenharmony_ci#include <dt-bindings/input/input.h> 1162306a36Sopenharmony_ci#include <dt-bindings/leds/common.h> 1262306a36Sopenharmony_ci#include <dt-bindings/pwm/pwm.h> 1362306a36Sopenharmony_ci 1462306a36Sopenharmony_ci/ { 1562306a36Sopenharmony_ci chassis-type = "handset"; 1662306a36Sopenharmony_ci 1762306a36Sopenharmony_ci aliases { 1862306a36Sopenharmony_ci ethernet0 = &rtl8723cs; 1962306a36Sopenharmony_ci serial0 = &uart0; 2062306a36Sopenharmony_ci }; 2162306a36Sopenharmony_ci 2262306a36Sopenharmony_ci backlight: backlight { 2362306a36Sopenharmony_ci compatible = "pwm-backlight"; 2462306a36Sopenharmony_ci pwms = <&r_pwm 0 50000 PWM_POLARITY_INVERTED>; 2562306a36Sopenharmony_ci enable-gpios = <&pio 7 10 GPIO_ACTIVE_HIGH>; /* PH10 */ 2662306a36Sopenharmony_ci power-supply = <®_ps>; 2762306a36Sopenharmony_ci /* Backlight configuration differs per PinePhone revision. */ 2862306a36Sopenharmony_ci }; 2962306a36Sopenharmony_ci 3062306a36Sopenharmony_ci bt_sco_codec: bt-sco-codec { 3162306a36Sopenharmony_ci #sound-dai-cells = <1>; 3262306a36Sopenharmony_ci compatible = "linux,bt-sco"; 3362306a36Sopenharmony_ci }; 3462306a36Sopenharmony_ci 3562306a36Sopenharmony_ci chosen { 3662306a36Sopenharmony_ci stdout-path = "serial0:115200n8"; 3762306a36Sopenharmony_ci }; 3862306a36Sopenharmony_ci 3962306a36Sopenharmony_ci leds { 4062306a36Sopenharmony_ci compatible = "gpio-leds"; 4162306a36Sopenharmony_ci 4262306a36Sopenharmony_ci led-0 { 4362306a36Sopenharmony_ci function = LED_FUNCTION_INDICATOR; 4462306a36Sopenharmony_ci color = <LED_COLOR_ID_BLUE>; 4562306a36Sopenharmony_ci gpios = <&pio 3 20 GPIO_ACTIVE_HIGH>; /* PD20 */ 4662306a36Sopenharmony_ci }; 4762306a36Sopenharmony_ci 4862306a36Sopenharmony_ci led-1 { 4962306a36Sopenharmony_ci function = LED_FUNCTION_INDICATOR; 5062306a36Sopenharmony_ci color = <LED_COLOR_ID_GREEN>; 5162306a36Sopenharmony_ci gpios = <&pio 3 18 GPIO_ACTIVE_HIGH>; /* PD18 */ 5262306a36Sopenharmony_ci }; 5362306a36Sopenharmony_ci 5462306a36Sopenharmony_ci led-2 { 5562306a36Sopenharmony_ci function = LED_FUNCTION_INDICATOR; 5662306a36Sopenharmony_ci color = <LED_COLOR_ID_RED>; 5762306a36Sopenharmony_ci gpios = <&pio 3 19 GPIO_ACTIVE_HIGH>; /* PD19 */ 5862306a36Sopenharmony_ci }; 5962306a36Sopenharmony_ci }; 6062306a36Sopenharmony_ci 6162306a36Sopenharmony_ci reg_ps: ps-regulator { 6262306a36Sopenharmony_ci compatible = "regulator-fixed"; 6362306a36Sopenharmony_ci regulator-name = "ps"; 6462306a36Sopenharmony_ci regulator-min-microvolt = <5000000>; 6562306a36Sopenharmony_ci regulator-max-microvolt = <5000000>; 6662306a36Sopenharmony_ci regulator-boot-on; 6762306a36Sopenharmony_ci }; 6862306a36Sopenharmony_ci 6962306a36Sopenharmony_ci reg_vbat_wifi: vbat-wifi { 7062306a36Sopenharmony_ci compatible = "regulator-fixed"; 7162306a36Sopenharmony_ci regulator-min-microvolt = <3300000>; 7262306a36Sopenharmony_ci regulator-max-microvolt = <3300000>; 7362306a36Sopenharmony_ci regulator-name = "vbat-wifi"; 7462306a36Sopenharmony_ci }; 7562306a36Sopenharmony_ci 7662306a36Sopenharmony_ci sgm3140: led-controller { 7762306a36Sopenharmony_ci compatible = "sgmicro,sgm3140"; 7862306a36Sopenharmony_ci vin-supply = <®_dcdc1>; 7962306a36Sopenharmony_ci 8062306a36Sopenharmony_ci sgm3140_flash: led { 8162306a36Sopenharmony_ci function = LED_FUNCTION_FLASH; 8262306a36Sopenharmony_ci color = <LED_COLOR_ID_WHITE>; 8362306a36Sopenharmony_ci flash-max-timeout-us = <250000>; 8462306a36Sopenharmony_ci }; 8562306a36Sopenharmony_ci }; 8662306a36Sopenharmony_ci 8762306a36Sopenharmony_ci speaker_amp: audio-amplifier { 8862306a36Sopenharmony_ci compatible = "simple-audio-amplifier"; 8962306a36Sopenharmony_ci enable-gpios = <&pio 2 7 GPIO_ACTIVE_HIGH>; /* PC7 */ 9062306a36Sopenharmony_ci sound-name-prefix = "Speaker Amp"; 9162306a36Sopenharmony_ci }; 9262306a36Sopenharmony_ci 9362306a36Sopenharmony_ci vibrator { 9462306a36Sopenharmony_ci compatible = "gpio-vibrator"; 9562306a36Sopenharmony_ci enable-gpios = <&pio 3 2 GPIO_ACTIVE_HIGH>; /* PD2 */ 9662306a36Sopenharmony_ci vcc-supply = <®_dcdc1>; 9762306a36Sopenharmony_ci }; 9862306a36Sopenharmony_ci}; 9962306a36Sopenharmony_ci 10062306a36Sopenharmony_ci&codec { 10162306a36Sopenharmony_ci pinctrl-names = "default"; 10262306a36Sopenharmony_ci pinctrl-0 = <&aif3_pins>; 10362306a36Sopenharmony_ci status = "okay"; 10462306a36Sopenharmony_ci}; 10562306a36Sopenharmony_ci 10662306a36Sopenharmony_ci&codec_analog { 10762306a36Sopenharmony_ci cpvdd-supply = <®_eldo1>; 10862306a36Sopenharmony_ci status = "okay"; 10962306a36Sopenharmony_ci}; 11062306a36Sopenharmony_ci 11162306a36Sopenharmony_ci&cpu0 { 11262306a36Sopenharmony_ci cpu-supply = <®_dcdc2>; 11362306a36Sopenharmony_ci}; 11462306a36Sopenharmony_ci 11562306a36Sopenharmony_ci&cpu1 { 11662306a36Sopenharmony_ci cpu-supply = <®_dcdc2>; 11762306a36Sopenharmony_ci}; 11862306a36Sopenharmony_ci 11962306a36Sopenharmony_ci&cpu2 { 12062306a36Sopenharmony_ci cpu-supply = <®_dcdc2>; 12162306a36Sopenharmony_ci}; 12262306a36Sopenharmony_ci 12362306a36Sopenharmony_ci&cpu3 { 12462306a36Sopenharmony_ci cpu-supply = <®_dcdc2>; 12562306a36Sopenharmony_ci}; 12662306a36Sopenharmony_ci 12762306a36Sopenharmony_ci&dai { 12862306a36Sopenharmony_ci status = "okay"; 12962306a36Sopenharmony_ci}; 13062306a36Sopenharmony_ci 13162306a36Sopenharmony_ci&de { 13262306a36Sopenharmony_ci status = "okay"; 13362306a36Sopenharmony_ci}; 13462306a36Sopenharmony_ci 13562306a36Sopenharmony_ci&dphy { 13662306a36Sopenharmony_ci status = "okay"; 13762306a36Sopenharmony_ci}; 13862306a36Sopenharmony_ci 13962306a36Sopenharmony_ci&dsi { 14062306a36Sopenharmony_ci vcc-dsi-supply = <®_dldo1>; 14162306a36Sopenharmony_ci status = "okay"; 14262306a36Sopenharmony_ci 14362306a36Sopenharmony_ci panel@0 { 14462306a36Sopenharmony_ci compatible = "xingbangda,xbd599"; 14562306a36Sopenharmony_ci reg = <0>; 14662306a36Sopenharmony_ci reset-gpios = <&pio 3 23 GPIO_ACTIVE_LOW>; /* PD23 */ 14762306a36Sopenharmony_ci iovcc-supply = <®_dldo2>; 14862306a36Sopenharmony_ci vcc-supply = <®_ldo_io0>; 14962306a36Sopenharmony_ci backlight = <&backlight>; 15062306a36Sopenharmony_ci }; 15162306a36Sopenharmony_ci}; 15262306a36Sopenharmony_ci 15362306a36Sopenharmony_ci&ehci0 { 15462306a36Sopenharmony_ci status = "okay"; 15562306a36Sopenharmony_ci}; 15662306a36Sopenharmony_ci 15762306a36Sopenharmony_ci&ehci1 { 15862306a36Sopenharmony_ci status = "okay"; 15962306a36Sopenharmony_ci}; 16062306a36Sopenharmony_ci 16162306a36Sopenharmony_ci&i2c0 { 16262306a36Sopenharmony_ci status = "okay"; 16362306a36Sopenharmony_ci 16462306a36Sopenharmony_ci touchscreen@5d { 16562306a36Sopenharmony_ci compatible = "goodix,gt917s"; 16662306a36Sopenharmony_ci reg = <0x5d>; 16762306a36Sopenharmony_ci interrupt-parent = <&pio>; 16862306a36Sopenharmony_ci interrupts = <7 4 IRQ_TYPE_LEVEL_HIGH>; /* PH4 */ 16962306a36Sopenharmony_ci irq-gpios = <&pio 7 4 GPIO_ACTIVE_HIGH>; /* PH4 */ 17062306a36Sopenharmony_ci reset-gpios = <&pio 7 11 GPIO_ACTIVE_HIGH>; /* PH11 */ 17162306a36Sopenharmony_ci AVDD28-supply = <®_ldo_io0>; 17262306a36Sopenharmony_ci VDDIO-supply = <®_ldo_io0>; 17362306a36Sopenharmony_ci touchscreen-size-x = <720>; 17462306a36Sopenharmony_ci touchscreen-size-y = <1440>; 17562306a36Sopenharmony_ci }; 17662306a36Sopenharmony_ci}; 17762306a36Sopenharmony_ci 17862306a36Sopenharmony_ci&i2c1 { 17962306a36Sopenharmony_ci status = "okay"; 18062306a36Sopenharmony_ci 18162306a36Sopenharmony_ci /* Magnetometer */ 18262306a36Sopenharmony_ci lis3mdl: magnetometer@1e { 18362306a36Sopenharmony_ci compatible = "st,lis3mdl-magn"; 18462306a36Sopenharmony_ci reg = <0x1e>; 18562306a36Sopenharmony_ci vdd-supply = <®_dldo1>; 18662306a36Sopenharmony_ci vddio-supply = <®_dldo1>; 18762306a36Sopenharmony_ci }; 18862306a36Sopenharmony_ci 18962306a36Sopenharmony_ci /* Light/proximity sensor */ 19062306a36Sopenharmony_ci light-sensor@48 { 19162306a36Sopenharmony_ci compatible = "sensortek,stk3311"; 19262306a36Sopenharmony_ci reg = <0x48>; 19362306a36Sopenharmony_ci interrupt-parent = <&pio>; 19462306a36Sopenharmony_ci interrupts = <1 0 IRQ_TYPE_EDGE_FALLING>; /* PB0 */ 19562306a36Sopenharmony_ci }; 19662306a36Sopenharmony_ci 19762306a36Sopenharmony_ci /* Accelerometer/gyroscope */ 19862306a36Sopenharmony_ci accelerometer@68 { 19962306a36Sopenharmony_ci compatible = "invensense,mpu6050"; 20062306a36Sopenharmony_ci reg = <0x68>; 20162306a36Sopenharmony_ci interrupt-parent = <&pio>; 20262306a36Sopenharmony_ci interrupts = <7 5 IRQ_TYPE_EDGE_RISING>; /* PH5 */ 20362306a36Sopenharmony_ci vdd-supply = <®_dldo1>; 20462306a36Sopenharmony_ci vddio-supply = <®_dldo1>; 20562306a36Sopenharmony_ci }; 20662306a36Sopenharmony_ci}; 20762306a36Sopenharmony_ci 20862306a36Sopenharmony_ci/* Connected to pogo pins (external spring based pinheader for user addons) */ 20962306a36Sopenharmony_ci&i2c2 { 21062306a36Sopenharmony_ci status = "okay"; 21162306a36Sopenharmony_ci}; 21262306a36Sopenharmony_ci 21362306a36Sopenharmony_ci&lradc { 21462306a36Sopenharmony_ci vref-supply = <®_aldo3>; 21562306a36Sopenharmony_ci wakeup-source; 21662306a36Sopenharmony_ci status = "okay"; 21762306a36Sopenharmony_ci 21862306a36Sopenharmony_ci button-200 { 21962306a36Sopenharmony_ci label = "Volume Up"; 22062306a36Sopenharmony_ci linux,code = <KEY_VOLUMEUP>; 22162306a36Sopenharmony_ci channel = <0>; 22262306a36Sopenharmony_ci voltage = <200000>; 22362306a36Sopenharmony_ci }; 22462306a36Sopenharmony_ci 22562306a36Sopenharmony_ci button-400 { 22662306a36Sopenharmony_ci label = "Volume Down"; 22762306a36Sopenharmony_ci linux,code = <KEY_VOLUMEDOWN>; 22862306a36Sopenharmony_ci channel = <0>; 22962306a36Sopenharmony_ci voltage = <400000>; 23062306a36Sopenharmony_ci }; 23162306a36Sopenharmony_ci}; 23262306a36Sopenharmony_ci 23362306a36Sopenharmony_ci&mmc0 { 23462306a36Sopenharmony_ci pinctrl-names = "default"; 23562306a36Sopenharmony_ci pinctrl-0 = <&mmc0_pins>; 23662306a36Sopenharmony_ci vmmc-supply = <®_dcdc1>; 23762306a36Sopenharmony_ci vqmmc-supply = <®_dcdc1>; 23862306a36Sopenharmony_ci cd-gpios = <&pio 5 6 GPIO_ACTIVE_LOW>; /* PF6 */ 23962306a36Sopenharmony_ci disable-wp; 24062306a36Sopenharmony_ci bus-width = <4>; 24162306a36Sopenharmony_ci status = "okay"; 24262306a36Sopenharmony_ci}; 24362306a36Sopenharmony_ci 24462306a36Sopenharmony_ci&mmc1 { 24562306a36Sopenharmony_ci pinctrl-names = "default"; 24662306a36Sopenharmony_ci pinctrl-0 = <&mmc1_pins>; 24762306a36Sopenharmony_ci vmmc-supply = <®_vbat_wifi>; 24862306a36Sopenharmony_ci vqmmc-supply = <®_dldo4>; 24962306a36Sopenharmony_ci bus-width = <4>; 25062306a36Sopenharmony_ci non-removable; 25162306a36Sopenharmony_ci status = "okay"; 25262306a36Sopenharmony_ci 25362306a36Sopenharmony_ci rtl8723cs: wifi@1 { 25462306a36Sopenharmony_ci reg = <1>; 25562306a36Sopenharmony_ci }; 25662306a36Sopenharmony_ci}; 25762306a36Sopenharmony_ci 25862306a36Sopenharmony_ci&mmc2 { 25962306a36Sopenharmony_ci pinctrl-names = "default"; 26062306a36Sopenharmony_ci pinctrl-0 = <&mmc2_pins>; 26162306a36Sopenharmony_ci vmmc-supply = <®_dcdc1>; 26262306a36Sopenharmony_ci vqmmc-supply = <®_dcdc1>; 26362306a36Sopenharmony_ci bus-width = <8>; 26462306a36Sopenharmony_ci non-removable; 26562306a36Sopenharmony_ci cap-mmc-hw-reset; 26662306a36Sopenharmony_ci status = "okay"; 26762306a36Sopenharmony_ci}; 26862306a36Sopenharmony_ci 26962306a36Sopenharmony_ci&ohci0 { 27062306a36Sopenharmony_ci status = "okay"; 27162306a36Sopenharmony_ci}; 27262306a36Sopenharmony_ci 27362306a36Sopenharmony_ci&ohci1 { 27462306a36Sopenharmony_ci status = "okay"; 27562306a36Sopenharmony_ci}; 27662306a36Sopenharmony_ci 27762306a36Sopenharmony_ci&pio { 27862306a36Sopenharmony_ci vcc-pb-supply = <®_dcdc1>; 27962306a36Sopenharmony_ci vcc-pc-supply = <®_dcdc1>; 28062306a36Sopenharmony_ci vcc-pd-supply = <®_dcdc1>; 28162306a36Sopenharmony_ci vcc-pe-supply = <®_aldo1>; 28262306a36Sopenharmony_ci vcc-pf-supply = <®_dcdc1>; 28362306a36Sopenharmony_ci vcc-pg-supply = <®_dldo4>; 28462306a36Sopenharmony_ci vcc-ph-supply = <®_dcdc1>; 28562306a36Sopenharmony_ci}; 28662306a36Sopenharmony_ci 28762306a36Sopenharmony_ci&r_pio { 28862306a36Sopenharmony_ci /* 28962306a36Sopenharmony_ci * FIXME: We can't add that supply for now since it would 29062306a36Sopenharmony_ci * create a circular dependency between pinctrl, the regulator 29162306a36Sopenharmony_ci * and the RSB Bus. 29262306a36Sopenharmony_ci * 29362306a36Sopenharmony_ci * vcc-pl-supply = <®_aldo2>; 29462306a36Sopenharmony_ci */ 29562306a36Sopenharmony_ci}; 29662306a36Sopenharmony_ci 29762306a36Sopenharmony_ci&r_pwm { 29862306a36Sopenharmony_ci status = "okay"; 29962306a36Sopenharmony_ci}; 30062306a36Sopenharmony_ci 30162306a36Sopenharmony_ci&r_rsb { 30262306a36Sopenharmony_ci status = "okay"; 30362306a36Sopenharmony_ci 30462306a36Sopenharmony_ci axp803: pmic@3a3 { 30562306a36Sopenharmony_ci compatible = "x-powers,axp803"; 30662306a36Sopenharmony_ci reg = <0x3a3>; 30762306a36Sopenharmony_ci interrupt-parent = <&r_intc>; 30862306a36Sopenharmony_ci interrupts = <GIC_SPI 32 IRQ_TYPE_LEVEL_LOW>; 30962306a36Sopenharmony_ci }; 31062306a36Sopenharmony_ci}; 31162306a36Sopenharmony_ci 31262306a36Sopenharmony_ci#include "axp803.dtsi" 31362306a36Sopenharmony_ci 31462306a36Sopenharmony_ci&battery_power_supply { 31562306a36Sopenharmony_ci status = "okay"; 31662306a36Sopenharmony_ci}; 31762306a36Sopenharmony_ci 31862306a36Sopenharmony_ci®_aldo1 { 31962306a36Sopenharmony_ci regulator-min-microvolt = <1800000>; 32062306a36Sopenharmony_ci regulator-max-microvolt = <1800000>; 32162306a36Sopenharmony_ci regulator-name = "dovdd-csi"; 32262306a36Sopenharmony_ci}; 32362306a36Sopenharmony_ci 32462306a36Sopenharmony_ci®_aldo2 { 32562306a36Sopenharmony_ci regulator-always-on; 32662306a36Sopenharmony_ci regulator-min-microvolt = <1800000>; 32762306a36Sopenharmony_ci regulator-max-microvolt = <1800000>; 32862306a36Sopenharmony_ci regulator-name = "vcc-pl"; 32962306a36Sopenharmony_ci}; 33062306a36Sopenharmony_ci 33162306a36Sopenharmony_ci®_aldo3 { 33262306a36Sopenharmony_ci regulator-always-on; 33362306a36Sopenharmony_ci regulator-min-microvolt = <3000000>; 33462306a36Sopenharmony_ci regulator-max-microvolt = <3000000>; 33562306a36Sopenharmony_ci regulator-name = "vcc-pll-avcc"; 33662306a36Sopenharmony_ci}; 33762306a36Sopenharmony_ci 33862306a36Sopenharmony_ci®_dcdc1 { 33962306a36Sopenharmony_ci regulator-always-on; 34062306a36Sopenharmony_ci regulator-min-microvolt = <3300000>; 34162306a36Sopenharmony_ci regulator-max-microvolt = <3300000>; 34262306a36Sopenharmony_ci regulator-name = "vcc-3v3"; 34362306a36Sopenharmony_ci}; 34462306a36Sopenharmony_ci 34562306a36Sopenharmony_ci®_dcdc2 { 34662306a36Sopenharmony_ci regulator-always-on; 34762306a36Sopenharmony_ci regulator-min-microvolt = <1000000>; 34862306a36Sopenharmony_ci regulator-max-microvolt = <1300000>; 34962306a36Sopenharmony_ci regulator-name = "vdd-cpux"; 35062306a36Sopenharmony_ci}; 35162306a36Sopenharmony_ci 35262306a36Sopenharmony_ci/* DCDC3 is polyphased with DCDC2 */ 35362306a36Sopenharmony_ci 35462306a36Sopenharmony_ci®_dcdc5 { 35562306a36Sopenharmony_ci regulator-always-on; 35662306a36Sopenharmony_ci regulator-min-microvolt = <1200000>; 35762306a36Sopenharmony_ci regulator-max-microvolt = <1200000>; 35862306a36Sopenharmony_ci regulator-name = "vcc-dram"; 35962306a36Sopenharmony_ci}; 36062306a36Sopenharmony_ci 36162306a36Sopenharmony_ci®_dcdc6 { 36262306a36Sopenharmony_ci regulator-always-on; 36362306a36Sopenharmony_ci regulator-min-microvolt = <1100000>; 36462306a36Sopenharmony_ci regulator-max-microvolt = <1100000>; 36562306a36Sopenharmony_ci regulator-name = "vdd-sys"; 36662306a36Sopenharmony_ci}; 36762306a36Sopenharmony_ci 36862306a36Sopenharmony_ci®_dldo1 { 36962306a36Sopenharmony_ci regulator-min-microvolt = <3300000>; 37062306a36Sopenharmony_ci regulator-max-microvolt = <3300000>; 37162306a36Sopenharmony_ci regulator-name = "vcc-dsi-sensor"; 37262306a36Sopenharmony_ci}; 37362306a36Sopenharmony_ci 37462306a36Sopenharmony_ci®_dldo2 { 37562306a36Sopenharmony_ci regulator-min-microvolt = <1800000>; 37662306a36Sopenharmony_ci regulator-max-microvolt = <1800000>; 37762306a36Sopenharmony_ci regulator-name = "vcc-mipi-io"; 37862306a36Sopenharmony_ci}; 37962306a36Sopenharmony_ci 38062306a36Sopenharmony_ci®_dldo3 { 38162306a36Sopenharmony_ci regulator-min-microvolt = <2800000>; 38262306a36Sopenharmony_ci regulator-max-microvolt = <2800000>; 38362306a36Sopenharmony_ci regulator-name = "avdd-csi"; 38462306a36Sopenharmony_ci}; 38562306a36Sopenharmony_ci 38662306a36Sopenharmony_ci®_dldo4 { 38762306a36Sopenharmony_ci regulator-min-microvolt = <1800000>; 38862306a36Sopenharmony_ci regulator-max-microvolt = <1800000>; 38962306a36Sopenharmony_ci regulator-name = "vcc-wifi-io"; 39062306a36Sopenharmony_ci}; 39162306a36Sopenharmony_ci 39262306a36Sopenharmony_ci®_eldo1 { 39362306a36Sopenharmony_ci regulator-always-on; 39462306a36Sopenharmony_ci regulator-min-microvolt = <1800000>; 39562306a36Sopenharmony_ci regulator-max-microvolt = <1800000>; 39662306a36Sopenharmony_ci regulator-name = "vcc-lpddr"; 39762306a36Sopenharmony_ci}; 39862306a36Sopenharmony_ci 39962306a36Sopenharmony_ci®_eldo3 { 40062306a36Sopenharmony_ci regulator-min-microvolt = <1800000>; 40162306a36Sopenharmony_ci regulator-max-microvolt = <1800000>; 40262306a36Sopenharmony_ci regulator-name = "dvdd-1v8-csi"; 40362306a36Sopenharmony_ci}; 40462306a36Sopenharmony_ci 40562306a36Sopenharmony_ci®_fldo1 { 40662306a36Sopenharmony_ci regulator-min-microvolt = <1200000>; 40762306a36Sopenharmony_ci regulator-max-microvolt = <1200000>; 40862306a36Sopenharmony_ci regulator-name = "vcc-1v2-hsic"; 40962306a36Sopenharmony_ci}; 41062306a36Sopenharmony_ci 41162306a36Sopenharmony_ci®_fldo2 { 41262306a36Sopenharmony_ci regulator-always-on; 41362306a36Sopenharmony_ci regulator-min-microvolt = <1100000>; 41462306a36Sopenharmony_ci regulator-max-microvolt = <1100000>; 41562306a36Sopenharmony_ci regulator-name = "vdd-cpus"; 41662306a36Sopenharmony_ci}; 41762306a36Sopenharmony_ci 41862306a36Sopenharmony_ci®_ldo_io0 { 41962306a36Sopenharmony_ci regulator-min-microvolt = <3300000>; 42062306a36Sopenharmony_ci regulator-max-microvolt = <3300000>; 42162306a36Sopenharmony_ci regulator-name = "vcc-lcd-ctp-stk"; 42262306a36Sopenharmony_ci status = "okay"; 42362306a36Sopenharmony_ci}; 42462306a36Sopenharmony_ci 42562306a36Sopenharmony_ci®_ldo_io1 { 42662306a36Sopenharmony_ci regulator-min-microvolt = <1800000>; 42762306a36Sopenharmony_ci regulator-max-microvolt = <1800000>; 42862306a36Sopenharmony_ci regulator-name = "vcc-1v8-typec"; 42962306a36Sopenharmony_ci status = "okay"; 43062306a36Sopenharmony_ci}; 43162306a36Sopenharmony_ci 43262306a36Sopenharmony_ci®_rtc_ldo { 43362306a36Sopenharmony_ci regulator-name = "vcc-rtc"; 43462306a36Sopenharmony_ci}; 43562306a36Sopenharmony_ci 43662306a36Sopenharmony_ci&sound { 43762306a36Sopenharmony_ci status = "okay"; 43862306a36Sopenharmony_ci simple-audio-card,name = "PinePhone"; 43962306a36Sopenharmony_ci simple-audio-card,aux-devs = <&codec_analog>, <&speaker_amp>; 44062306a36Sopenharmony_ci simple-audio-card,widgets = "Microphone", "Headset Microphone", 44162306a36Sopenharmony_ci "Microphone", "Internal Microphone", 44262306a36Sopenharmony_ci "Headphone", "Headphone Jack", 44362306a36Sopenharmony_ci "Speaker", "Internal Earpiece", 44462306a36Sopenharmony_ci "Speaker", "Internal Speaker"; 44562306a36Sopenharmony_ci simple-audio-card,routing = 44662306a36Sopenharmony_ci "Headphone Jack", "HP", 44762306a36Sopenharmony_ci "Internal Earpiece", "EARPIECE", 44862306a36Sopenharmony_ci "Internal Speaker", "Speaker Amp OUTL", 44962306a36Sopenharmony_ci "Internal Speaker", "Speaker Amp OUTR", 45062306a36Sopenharmony_ci "Speaker Amp INL", "LINEOUT", 45162306a36Sopenharmony_ci "Speaker Amp INR", "LINEOUT", 45262306a36Sopenharmony_ci "Left DAC", "DACL", 45362306a36Sopenharmony_ci "Right DAC", "DACR", 45462306a36Sopenharmony_ci "ADCL", "Left ADC", 45562306a36Sopenharmony_ci "ADCR", "Right ADC", 45662306a36Sopenharmony_ci "Internal Microphone", "MBIAS", 45762306a36Sopenharmony_ci "MIC1", "Internal Microphone", 45862306a36Sopenharmony_ci "Headset Microphone", "HBIAS", 45962306a36Sopenharmony_ci "MIC2", "Headset Microphone"; 46062306a36Sopenharmony_ci 46162306a36Sopenharmony_ci simple-audio-card,dai-link@2 { 46262306a36Sopenharmony_ci format = "dsp_a"; 46362306a36Sopenharmony_ci frame-master = <&link2_codec>; 46462306a36Sopenharmony_ci bitclock-master = <&link2_codec>; 46562306a36Sopenharmony_ci bitclock-inversion; 46662306a36Sopenharmony_ci 46762306a36Sopenharmony_ci link2_cpu: cpu { 46862306a36Sopenharmony_ci sound-dai = <&bt_sco_codec 0>; 46962306a36Sopenharmony_ci }; 47062306a36Sopenharmony_ci 47162306a36Sopenharmony_ci link2_codec: codec { 47262306a36Sopenharmony_ci sound-dai = <&codec 2>; 47362306a36Sopenharmony_ci dai-tdm-slot-num = <1>; 47462306a36Sopenharmony_ci dai-tdm-slot-width = <32>; 47562306a36Sopenharmony_ci }; 47662306a36Sopenharmony_ci }; 47762306a36Sopenharmony_ci}; 47862306a36Sopenharmony_ci 47962306a36Sopenharmony_ci&uart0 { 48062306a36Sopenharmony_ci pinctrl-names = "default"; 48162306a36Sopenharmony_ci pinctrl-0 = <&uart0_pb_pins>; 48262306a36Sopenharmony_ci status = "okay"; 48362306a36Sopenharmony_ci}; 48462306a36Sopenharmony_ci 48562306a36Sopenharmony_ci&uart1 { 48662306a36Sopenharmony_ci pinctrl-names = "default"; 48762306a36Sopenharmony_ci pinctrl-0 = <&uart1_pins>, <&uart1_rts_cts_pins>; 48862306a36Sopenharmony_ci status = "okay"; 48962306a36Sopenharmony_ci 49062306a36Sopenharmony_ci bluetooth { 49162306a36Sopenharmony_ci compatible = "realtek,rtl8723cs-bt"; 49262306a36Sopenharmony_ci device-wake-gpios = <&pio 7 6 GPIO_ACTIVE_LOW>; /* PH6 */ 49362306a36Sopenharmony_ci enable-gpios = <&r_pio 0 4 GPIO_ACTIVE_HIGH>; /* PL4 */ 49462306a36Sopenharmony_ci host-wake-gpios = <&r_pio 0 5 GPIO_ACTIVE_HIGH>; /* PL5 */ 49562306a36Sopenharmony_ci }; 49662306a36Sopenharmony_ci}; 49762306a36Sopenharmony_ci 49862306a36Sopenharmony_ci/* Connected to the modem (hardware flow control can't be used) */ 49962306a36Sopenharmony_ci&uart3 { 50062306a36Sopenharmony_ci pinctrl-names = "default"; 50162306a36Sopenharmony_ci pinctrl-0 = <&uart3_pins>; 50262306a36Sopenharmony_ci status = "okay"; 50362306a36Sopenharmony_ci}; 50462306a36Sopenharmony_ci 50562306a36Sopenharmony_ci&usb_otg { 50662306a36Sopenharmony_ci dr_mode = "peripheral"; 50762306a36Sopenharmony_ci status = "okay"; 50862306a36Sopenharmony_ci}; 50962306a36Sopenharmony_ci 51062306a36Sopenharmony_ci&usb_power_supply { 51162306a36Sopenharmony_ci status = "okay"; 51262306a36Sopenharmony_ci}; 51362306a36Sopenharmony_ci 51462306a36Sopenharmony_ci&usbphy { 51562306a36Sopenharmony_ci status = "okay"; 51662306a36Sopenharmony_ci}; 517