pinephone-nuttx/sun50i-a64-pinephone-1.2.dts

2054 lines
45 KiB
Text
Raw Normal View History

2022-09-03 19:33:58 +08:00
/dts-v1/;
/ {
interrupt-parent = <0x01>;
#address-cells = <0x01>;
#size-cells = <0x01>;
model = "Pine64 PinePhone (1.2)";
compatible = "pine64,pinephone-1.2\0allwinner,sun50i-a64";
chosen {
#address-cells = <0x01>;
#size-cells = <0x01>;
ranges;
stdout-path = "serial0:115200n8";
framebuffer-lcd {
compatible = "allwinner,simple-framebuffer\0simple-framebuffer";
allwinner,pipeline = "mixer0-lcd0";
clocks = <0x02 0x64 0x03 0x06>;
status = "disabled";
};
framebuffer-hdmi {
compatible = "allwinner,simple-framebuffer\0simple-framebuffer";
allwinner,pipeline = "mixer1-lcd1-hdmi";
clocks = <0x03 0x07 0x02 0x65 0x02 0x6e>;
status = "disabled";
};
};
cpus {
#address-cells = <0x01>;
#size-cells = <0x00>;
cpu@0 {
compatible = "arm,cortex-a53";
device_type = "cpu";
reg = <0x00>;
enable-method = "psci";
next-level-cache = <0x04>;
clocks = <0x02 0x15>;
clock-names = "cpu";
#cooling-cells = <0x02>;
operating-points-v2 = <0x05>;
cpu-supply = <0x06>;
phandle = <0x0b>;
};
cpu@1 {
compatible = "arm,cortex-a53";
device_type = "cpu";
reg = <0x01>;
enable-method = "psci";
next-level-cache = <0x04>;
clocks = <0x02 0x15>;
clock-names = "cpu";
#cooling-cells = <0x02>;
operating-points-v2 = <0x05>;
cpu-supply = <0x06>;
phandle = <0x0c>;
};
cpu@2 {
compatible = "arm,cortex-a53";
device_type = "cpu";
reg = <0x02>;
enable-method = "psci";
next-level-cache = <0x04>;
clocks = <0x02 0x15>;
clock-names = "cpu";
#cooling-cells = <0x02>;
operating-points-v2 = <0x05>;
cpu-supply = <0x06>;
phandle = <0x0d>;
};
cpu@3 {
compatible = "arm,cortex-a53";
device_type = "cpu";
reg = <0x03>;
enable-method = "psci";
next-level-cache = <0x04>;
clocks = <0x02 0x15>;
clock-names = "cpu";
#cooling-cells = <0x02>;
operating-points-v2 = <0x05>;
cpu-supply = <0x06>;
phandle = <0x0e>;
};
l2-cache {
compatible = "cache";
cache-level = <0x02>;
phandle = <0x04>;
};
};
display-engine {
compatible = "allwinner,sun50i-a64-display-engine";
allwinner,pipelines = <0x07 0x08>;
status = "okay";
};
hdmi-sound {
compatible = "simple-audio-card";
simple-audio-card,format = "i2s";
simple-audio-card,name = "sun50i-a64-hdmi";
simple-audio-card,mclk-fs = <0x80>;
simple-audio-card,frame-inversion;
status = "okay";
simple-audio-card,codec {
sound-dai = <0x09>;
};
simple-audio-card,cpu {
sound-dai = <0x0a>;
dai-tdm-slot-num = <0x02>;
dai-tdm-slot-width = <0x20>;
};
};
osc24M_clk {
#clock-cells = <0x00>;
compatible = "fixed-clock";
clock-frequency = <0x16e3600>;
clock-output-names = "osc24M";
phandle = <0x33>;
};
osc32k_clk {
#clock-cells = <0x00>;
compatible = "fixed-clock";
clock-frequency = <0x8000>;
clock-output-names = "ext-osc32k";
phandle = <0x5c>;
};
pmu {
compatible = "arm,cortex-a53-pmu";
interrupts = <0x00 0x74 0x04 0x00 0x75 0x04 0x00 0x76 0x04 0x00 0x77 0x04>;
interrupt-affinity = <0x0b 0x0c 0x0d 0x0e>;
};
psci {
compatible = "arm,psci-0.2";
method = "smc";
};
scpi {
compatible = "arm,scpi";
mboxes = <0x0f 0x02 0x0f 0x03>;
mbox-names = "tx\0rx";
shmem = <0x10>;
};
sound {
#address-cells = <0x01>;
#size-cells = <0x00>;
compatible = "simple-audio-card";
simple-audio-card,name = "PinePhone";
simple-audio-card,aux-devs = <0x11 0x12>;
simple-audio-card,routing = "Headphone Jack\0HP\0Internal Earpiece\0EARPIECE\0Internal Speaker\0Speaker Amp OUTL\0Internal Speaker\0Speaker Amp OUTR\0Speaker Amp INL\0LINEOUT\0Speaker Amp INR\0LINEOUT\0Left DAC\0DACL\0Right DAC\0DACR\0ADCL\0Left ADC\0ADCR\0Right ADC\0Internal Microphone\0MBIAS\0MIC1\0Internal Microphone\0Headset Microphone\0HBIAS\0MIC2\0Headset Microphone";
status = "okay";
simple-audio-card,widgets = "Microphone\0Headset Microphone\0Microphone\0Internal Microphone\0Headphone\0Headphone Jack\0Speaker\0Internal Earpiece\0Speaker\0Internal Speaker";
simple-audio-card,dai-link@0 {
format = "i2s";
frame-master = <0x13>;
bitclock-master = <0x13>;
mclk-fs = <0x80>;
cpu {
sound-dai = <0x14>;
phandle = <0x13>;
};
codec {
sound-dai = <0x15 0x00>;
};
};
simple-audio-card,dai-link@1 {
format = "dsp_a";
frame-master = <0x16>;
bitclock-master = <0x16>;
bitclock-inversion;
cpu {
sound-dai = <0x17 0x00>;
};
codec {
sound-dai = <0x15 0x01>;
dai-tdm-slot-num = <0x01>;
dai-tdm-slot-width = <0x20>;
phandle = <0x16>;
};
};
simple-audio-card,dai-link@2 {
format = "dsp_a";
frame-master = <0x18>;
bitclock-master = <0x18>;
bitclock-inversion;
cpu {
sound-dai = <0x19 0x00>;
};
codec {
sound-dai = <0x15 0x02>;
dai-tdm-slot-num = <0x02>;
dai-tdm-slot-width = <0x10>;
phandle = <0x18>;
};
};
};
timer {
compatible = "arm,armv8-timer";
allwinner,erratum-unknown1;
arm,no-tick-in-suspend;
interrupts = <0x01 0x0d 0xf04 0x01 0x0e 0xf04 0x01 0x0b 0xf04 0x01 0x0a 0xf04>;
};
thermal-zones {
cpu0-thermal {
polling-delay-passive = <0x00>;
polling-delay = <0x00>;
thermal-sensors = <0x1a 0x00>;
cooling-maps {
map0 {
trip = <0x1b>;
cooling-device = <0x0b 0xffffffff 0xffffffff 0x0c 0xffffffff 0xffffffff 0x0d 0xffffffff 0xffffffff 0x0e 0xffffffff 0xffffffff>;
};
map1 {
trip = <0x1c>;
cooling-device = <0x0b 0xffffffff 0xffffffff 0x0c 0xffffffff 0xffffffff 0x0d 0xffffffff 0xffffffff 0x0e 0xffffffff 0xffffffff>;
};
};
trips {
cpu_alert0 {
temperature = <0x124f8>;
hysteresis = <0x7d0>;
type = "passive";
phandle = <0x1b>;
};
cpu_alert1 {
temperature = <0x15f90>;
hysteresis = <0x7d0>;
type = "hot";
phandle = <0x1c>;
};
cpu_crit {
temperature = <0x1adb0>;
hysteresis = <0x7d0>;
type = "critical";
};
};
};
gpu0-thermal {
polling-delay-passive = <0x00>;
polling-delay = <0x00>;
thermal-sensors = <0x1a 0x01>;
};
gpu1-thermal {
polling-delay-passive = <0x00>;
polling-delay = <0x00>;
thermal-sensors = <0x1a 0x02>;
};
};
soc {
compatible = "simple-bus";
#address-cells = <0x01>;
#size-cells = <0x01>;
ranges;
bus@1000000 {
compatible = "allwinner,sun50i-a64-de2";
reg = <0x1000000 0x400000>;
allwinner,sram = <0x1d 0x01>;
#address-cells = <0x01>;
#size-cells = <0x01>;
ranges = <0x00 0x1000000 0x400000>;
clock@0 {
compatible = "allwinner,sun50i-a64-de2-clk";
reg = <0x00 0x10000>;
clocks = <0x02 0x34 0x02 0x63>;
clock-names = "bus\0mod";
resets = <0x02 0x1e>;
#clock-cells = <0x01>;
#reset-cells = <0x01>;
phandle = <0x03>;
};
rotate@20000 {
compatible = "allwinner,sun50i-a64-de2-rotate\0allwinner,sun8i-a83t-de2-rotate";
reg = <0x20000 0x10000>;
interrupts = <0x00 0x60 0x04>;
clocks = <0x03 0x09 0x03 0x0a>;
clock-names = "bus\0mod";
resets = <0x03 0x03>;
};
mixer@100000 {
compatible = "allwinner,sun50i-a64-de2-mixer-0";
reg = <0x100000 0x100000>;
clocks = <0x03 0x00 0x03 0x06>;
clock-names = "bus\0mod";
resets = <0x03 0x00>;
phandle = <0x07>;
ports {
#address-cells = <0x01>;
#size-cells = <0x00>;
port@1 {
#address-cells = <0x01>;
#size-cells = <0x00>;
reg = <0x01>;
endpoint@0 {
reg = <0x00>;
remote-endpoint = <0x1e>;
phandle = <0x22>;
};
endpoint@1 {
reg = <0x01>;
remote-endpoint = <0x1f>;
phandle = <0x25>;
};
};
};
};
mixer@200000 {
compatible = "allwinner,sun50i-a64-de2-mixer-1";
reg = <0x200000 0x100000>;
clocks = <0x03 0x01 0x03 0x07>;
clock-names = "bus\0mod";
resets = <0x03 0x01>;
phandle = <0x08>;
ports {
#address-cells = <0x01>;
#size-cells = <0x00>;
port@1 {
#address-cells = <0x01>;
#size-cells = <0x00>;
reg = <0x01>;
endpoint@0 {
reg = <0x00>;
remote-endpoint = <0x20>;
phandle = <0x23>;
};
endpoint@1 {
reg = <0x01>;
remote-endpoint = <0x21>;
phandle = <0x26>;
};
};
};
};
};
syscon@1c00000 {
compatible = "allwinner,sun50i-a64-system-control";
reg = <0x1c00000 0x1000>;
#address-cells = <0x01>;
#size-cells = <0x01>;
ranges;
phandle = <0x4d>;
sram@40000 {
compatible = "mmio-sram";
reg = <0x40000 0x14000>;
#address-cells = <0x01>;
#size-cells = <0x01>;
ranges = <0x00 0x40000 0x14000>;
scpi-sram@13c00 {
compatible = "arm,scp-shmem";
reg = <0x13c00 0x200>;
phandle = <0x10>;
};
};
sram@18000 {
compatible = "mmio-sram";
reg = <0x18000 0x28000>;
#address-cells = <0x01>;
#size-cells = <0x01>;
ranges = <0x00 0x18000 0x28000>;
sram-section@0 {
compatible = "allwinner,sun50i-a64-sram-c";
reg = <0x00 0x28000>;
phandle = <0x1d>;
};
};
sram@1d00000 {
compatible = "mmio-sram";
reg = <0x1d00000 0x40000>;
#address-cells = <0x01>;
#size-cells = <0x01>;
ranges = <0x00 0x1d00000 0x40000>;
sram-section@0 {
compatible = "allwinner,sun50i-a64-sram-c1\0allwinner,sun4i-a10-sram-c1";
reg = <0x00 0x40000>;
phandle = <0x28>;
};
};
};
dma-controller@1c02000 {
compatible = "allwinner,sun50i-a64-dma";
reg = <0x1c02000 0x1000>;
interrupts = <0x00 0x32 0x04>;
clocks = <0x02 0x1e>;
dma-channels = <0x08>;
dma-requests = <0x1b>;
resets = <0x02 0x07>;
#dma-cells = <0x01>;
phandle = <0x36>;
};
lcd-controller@1c0c000 {
compatible = "allwinner,sun50i-a64-tcon-lcd\0allwinner,sun8i-a83t-tcon-lcd";
reg = <0x1c0c000 0x1000>;
interrupts = <0x00 0x56 0x04>;
clocks = <0x02 0x2f 0x02 0x64>;
clock-names = "ahb\0tcon-ch0";
clock-output-names = "tcon-pixel-clock";
#clock-cells = <0x00>;
resets = <0x02 0x18 0x02 0x23>;
reset-names = "lcd\0lvds";
ports {
#address-cells = <0x01>;
#size-cells = <0x00>;
port@0 {
#address-cells = <0x01>;
#size-cells = <0x00>;
reg = <0x00>;
endpoint@0 {
reg = <0x00>;
remote-endpoint = <0x22>;
phandle = <0x1e>;
};
endpoint@1 {
reg = <0x01>;
remote-endpoint = <0x23>;
phandle = <0x20>;
};
};
port@1 {
#address-cells = <0x01>;
#size-cells = <0x00>;
reg = <0x01>;
endpoint@1 {
reg = <0x01>;
remote-endpoint = <0x24>;
allwinner,tcon-channel = <0x01>;
phandle = <0x54>;
};
};
};
};
lcd-controller@1c0d000 {
compatible = "allwinner,sun50i-a64-tcon-tv\0allwinner,sun8i-a83t-tcon-tv";
reg = <0x1c0d000 0x1000>;
interrupts = <0x00 0x57 0x04>;
clocks = <0x02 0x30 0x02 0x65>;
clock-names = "ahb\0tcon-ch1";
resets = <0x02 0x19>;
reset-names = "lcd";
ports {
#address-cells = <0x01>;
#size-cells = <0x00>;
port@0 {
#address-cells = <0x01>;
#size-cells = <0x00>;
reg = <0x00>;
endpoint@0 {
reg = <0x00>;
remote-endpoint = <0x25>;
phandle = <0x1f>;
};
endpoint@1 {
reg = <0x01>;
remote-endpoint = <0x26>;
phandle = <0x21>;
};
};
port@1 {
#address-cells = <0x01>;
#size-cells = <0x00>;
reg = <0x01>;
endpoint@1 {
reg = <0x01>;
remote-endpoint = <0x27>;
phandle = <0x59>;
};
};
};
};
video-codec@1c0e000 {
compatible = "allwinner,sun50i-a64-video-engine";
reg = <0x1c0e000 0x1000>;
clocks = <0x02 0x2e 0x02 0x6a 0x02 0x5f>;
clock-names = "ahb\0mod\0ram";
resets = <0x02 0x17>;
interrupts = <0x00 0x3a 0x04>;
allwinner,sram = <0x28 0x01>;
};
mmc@1c0f000 {
compatible = "allwinner,sun50i-a64-mmc";
reg = <0x1c0f000 0x1000>;
clocks = <0x02 0x1f 0x02 0x4b>;
clock-names = "ahb\0mmc";
resets = <0x02 0x08>;
reset-names = "ahb";
interrupts = <0x00 0x3c 0x04>;
max-frequency = <0x8f0d180>;
status = "okay";
#address-cells = <0x01>;
#size-cells = <0x00>;
pinctrl-names = "default";
pinctrl-0 = <0x29>;
vmmc-supply = <0x2a>;
vqmmc-supply = <0x2a>;
cd-gpios = <0x2b 0x05 0x06 0x01>;
disable-wp;
bus-width = <0x04>;
};
mmc@1c10000 {
compatible = "allwinner,sun50i-a64-mmc";
reg = <0x1c10000 0x1000>;
clocks = <0x02 0x20 0x02 0x4c>;
clock-names = "ahb\0mmc";
resets = <0x02 0x09>;
reset-names = "ahb";
interrupts = <0x00 0x3d 0x04>;
max-frequency = <0x8f0d180>;
status = "okay";
#address-cells = <0x01>;
#size-cells = <0x00>;
pinctrl-names = "default";
pinctrl-0 = <0x2c>;
vmmc-supply = <0x2d>;
vqmmc-supply = <0x2e>;
bus-width = <0x04>;
non-removable;
mmc-pwrseq = <0x2f>;
wifi@1 {
reg = <0x01>;
};
};
mmc@1c11000 {
compatible = "allwinner,sun50i-a64-emmc";
reg = <0x1c11000 0x1000>;
clocks = <0x02 0x21 0x02 0x4d>;
clock-names = "ahb\0mmc";
resets = <0x02 0x0a>;
reset-names = "ahb";
interrupts = <0x00 0x3e 0x04>;
max-frequency = <0xbebc200>;
status = "okay";
#address-cells = <0x01>;
#size-cells = <0x00>;
pinctrl-names = "default";
pinctrl-0 = <0x30>;
vmmc-supply = <0x2a>;
vqmmc-supply = <0x2a>;
bus-width = <0x08>;
non-removable;
cap-mmc-hw-reset;
};
eeprom@1c14000 {
compatible = "allwinner,sun50i-a64-sid";
reg = <0x1c14000 0x400>;
#address-cells = <0x01>;
#size-cells = <0x01>;
thermal-sensor-calibration@34 {
reg = <0x34 0x08>;
phandle = <0x3b>;
};
};
crypto@1c15000 {
compatible = "allwinner,sun50i-a64-crypto";
reg = <0x1c15000 0x1000>;
interrupts = <0x00 0x5e 0x04>;
clocks = <0x02 0x1d 0x02 0x4f>;
clock-names = "bus\0mod";
resets = <0x02 0x06>;
};
mailbox@1c17000 {
compatible = "allwinner,sun50i-a64-msgbox\0allwinner,sun6i-a31-msgbox";
reg = <0x1c17000 0x1000>;
clocks = <0x02 0x36>;
resets = <0x02 0x20>;
interrupts = <0x00 0x31 0x04>;
#mbox-cells = <0x01>;
phandle = <0x0f>;
};
usb@1c19000 {
compatible = "allwinner,sun8i-a33-musb";
reg = <0x1c19000 0x400>;
clocks = <0x02 0x29>;
resets = <0x02 0x12>;
interrupts = <0x00 0x47 0x04>;
interrupt-names = "mc";
phys = <0x31 0x00>;
phy-names = "usb";
extcon = <0x31 0x00>;
dr_mode = "otg";
status = "okay";
};
phy@1c19400 {
compatible = "allwinner,sun50i-a64-usb-phy";
reg = <0x1c19400 0x14 0x1c1a800 0x04 0x1c1b800 0x04>;
reg-names = "phy_ctrl\0pmu0\0pmu1";
clocks = <0x02 0x56 0x02 0x57>;
clock-names = "usb0_phy\0usb1_phy";
resets = <0x02 0x00 0x02 0x01>;
reset-names = "usb0_reset\0usb1_reset";
status = "okay";
#phy-cells = <0x01>;
usb-role-switch;
phandle = <0x31>;
port {
endpoint {
remote-endpoint = <0x32>;
phandle = <0x47>;
};
};
};
usb@1c1a000 {
compatible = "allwinner,sun50i-a64-ehci\0generic-ehci";
reg = <0x1c1a000 0x100>;
interrupts = <0x00 0x48 0x04>;
clocks = <0x02 0x2c 0x02 0x2a 0x02 0x5b>;
resets = <0x02 0x15 0x02 0x13>;
status = "okay";
};
usb@1c1a400 {
compatible = "allwinner,sun50i-a64-ohci\0generic-ohci";
reg = <0x1c1a400 0x100>;
interrupts = <0x00 0x49 0x04>;
clocks = <0x02 0x2c 0x02 0x5b>;
resets = <0x02 0x15>;
status = "okay";
};
usb@1c1b000 {
compatible = "allwinner,sun50i-a64-ehci\0generic-ehci";
reg = <0x1c1b000 0x100>;
interrupts = <0x00 0x4a 0x04>;
clocks = <0x02 0x2d 0x02 0x2b 0x02 0x5d>;
resets = <0x02 0x16 0x02 0x14>;
phys = <0x31 0x01>;
phy-names = "usb";
status = "okay";
};
usb@1c1b400 {
compatible = "allwinner,sun50i-a64-ohci\0generic-ohci";
reg = <0x1c1b400 0x100>;
interrupts = <0x00 0x4b 0x04>;
clocks = <0x02 0x2d 0x02 0x5d>;
resets = <0x02 0x16>;
phys = <0x31 0x01>;
phy-names = "usb";
status = "okay";
};
clock@1c20000 {
compatible = "allwinner,sun50i-a64-ccu";
reg = <0x1c20000 0x400>;
clocks = <0x33 0x34 0x00>;
clock-names = "hosc\0losc";
protected-clocks = <0x36>;
#clock-cells = <0x01>;
#reset-cells = <0x01>;
phandle = <0x02>;
};
pinctrl@1c20800 {
compatible = "allwinner,sun50i-a64-pinctrl";
reg = <0x1c20800 0x400>;
interrupts = <0x00 0x0b 0x04 0x00 0x11 0x04 0x00 0x15 0x04>;
clocks = <0x02 0x3a 0x33 0x34 0x00>;
clock-names = "apb\0hosc\0losc";
gpio-controller;
#gpio-cells = <0x03>;
interrupt-controller;
#interrupt-cells = <0x03>;
vcc-pb-supply = <0x2a>;
vcc-pc-supply = <0x2a>;
vcc-pd-supply = <0x2a>;
vcc-pe-supply = <0x35>;
vcc-pf-supply = <0x2a>;
vcc-pg-supply = <0x2e>;
vcc-ph-supply = <0x2a>;
phandle = <0x2b>;
aif2-pins {
pins = "PB4\0PB5\0PB6\0PB7";
function = "aif2";
phandle = <0x39>;
};
aif3-pins {
pins = "PG10\0PG11\0PG12\0PG13";
function = "aif3";
phandle = <0x3a>;
};
csi-pins {
pins = "PE0\0PE2\0PE3\0PE4\0PE5\0PE6\0PE7\0PE8\0PE9\0PE10\0PE11";
function = "csi";
phandle = <0x4f>;
};
csi-mclk-pin {
pins = "PE1";
function = "csi";
phandle = <0x50>;
};
i2c0-pins {
pins = "PH0\0PH1";
function = "i2c0";
phandle = <0x41>;
};
i2c1-pins {
pins = "PH2\0PH3";
function = "i2c1";
phandle = <0x49>;
};
i2c2-pins {
pins = "PE14\0PE15";
function = "i2c2";
phandle = <0x4a>;
};
mmc0-pins {
pins = "PF0\0PF1\0PF2\0PF3\0PF4\0PF5";
function = "mmc0";
drive-strength = <0x1e>;
bias-pull-up;
phandle = <0x29>;
};
mmc1-pins {
pins = "PG0\0PG1\0PG2\0PG3\0PG4\0PG5";
function = "mmc1";
drive-strength = <0x1e>;
bias-pull-up;
phandle = <0x2c>;
};
mmc2-pins {
pins = "PC5\0PC6\0PC8\0PC9\0PC10\0PC11\0PC12\0PC13\0PC14\0PC15\0PC16";
function = "mmc2";
drive-strength = <0x1e>;
bias-pull-up;
phandle = <0x30>;
};
mmc2-ds-pin {
pins = "PC1";
function = "mmc2";
drive-strength = <0x1e>;
bias-pull-up;
};
pwm-pin {
pins = "PD22";
function = "pwm";
phandle = <0x4e>;
};
rmii-pins {
pins = "PD10\0PD11\0PD13\0PD14\0PD17\0PD18\0PD19\0PD20\0PD22\0PD23";
function = "emac";
drive-strength = <0x28>;
};
rgmii-pins {
pins = "PD8\0PD9\0PD10\0PD11\0PD12\0PD13\0PD15\0PD16\0PD17\0PD18\0PD19\0PD20\0PD21\0PD22\0PD23";
function = "emac";
drive-strength = <0x28>;
};
spdif-tx-pin {
pins = "PH8";
function = "spdif";
phandle = <0x37>;
};
spi0-pins {
pins = "PC0\0PC1\0PC2\0PC3";
function = "spi0";
phandle = <0x4b>;
};
spi1-pins {
pins = "PD0\0PD1\0PD2\0PD3";
function = "spi1";
phandle = <0x4c>;
};
uart0-pb-pins {
pins = "PB8\0PB9";
function = "uart0";
phandle = <0x3c>;
};
uart1-pins {
pins = "PG6\0PG7";
function = "uart1";
phandle = <0x3d>;
};
uart1-rts-cts-pins {
pins = "PG8\0PG9";
function = "uart1";
phandle = <0x3e>;
};
uart2-pins {
pins = "PB0\0PB1";
function = "uart2";
};
uart3-pins {
pins = "PD0\0PD1";
function = "uart3";
phandle = <0x40>;
};
uart4-pins {
pins = "PD2\0PD3";
function = "uart4";
};
uart4-rts-cts-pins {
pins = "PD4\0PD5";
function = "uart4";
};
};
spdif@1c21000 {
#sound-dai-cells = <0x00>;
compatible = "allwinner,sun50i-a64-spdif\0allwinner,sun8i-h3-spdif";
reg = <0x1c21000 0x400>;
interrupts = <0x00 0x0c 0x04>;
clocks = <0x02 0x39 0x02 0x55>;
resets = <0x02 0x25>;
clock-names = "apb\0spdif";
dmas = <0x36 0x02>;
dma-names = "tx";
pinctrl-names = "default";
pinctrl-0 = <0x37>;
status = "disabled";
};
lradc@1c21800 {
compatible = "allwinner,sun50i-a64-lradc\0allwinner,sun4i-a10-lradc-keys";
reg = <0x1c21800 0x400>;
interrupts = <0x00 0x1e 0x04>;
status = "okay";
vref-supply = <0x38>;
button-200 {
label = "Volume Up";
linux,code = <0x73>;
channel = <0x00>;
voltage = <0x30d40>;
};
button-400 {
label = "Volume Down";
linux,code = <0x72>;
channel = <0x00>;
voltage = <0x61a80>;
};
};
i2s@1c22000 {
#sound-dai-cells = <0x00>;
compatible = "allwinner,sun50i-a64-i2s\0allwinner,sun8i-h3-i2s";
reg = <0x1c22000 0x400>;
interrupts = <0x00 0x0d 0x04>;
clocks = <0x02 0x3c 0x02 0x52>;
clock-names = "apb\0mod";
resets = <0x02 0x27>;
dma-names = "rx\0tx";
dmas = <0x36 0x03 0x36 0x03>;
status = "disabled";
};
i2s@1c22400 {
#sound-dai-cells = <0x00>;
compatible = "allwinner,sun50i-a64-i2s\0allwinner,sun8i-h3-i2s";
reg = <0x1c22400 0x400>;
interrupts = <0x00 0x0e 0x04>;
clocks = <0x02 0x3d 0x02 0x53>;
clock-names = "apb\0mod";
resets = <0x02 0x28>;
dma-names = "rx\0tx";
dmas = <0x36 0x04 0x36 0x04>;
status = "disabled";
};
i2s@1c22800 {
#sound-dai-cells = <0x00>;
compatible = "allwinner,sun50i-a64-i2s\0allwinner,sun8i-h3-i2s";
reg = <0x1c22800 0x400>;
interrupts = <0x00 0x0f 0x04>;
clocks = <0x02 0x3e 0x02 0x54>;
clock-names = "apb\0mod";
resets = <0x02 0x29>;
dma-names = "rx\0tx";
dmas = <0x36 0x1b 0x36 0x1b>;
status = "okay";
phandle = <0x0a>;
};
dai@1c22c00 {
#sound-dai-cells = <0x00>;
compatible = "allwinner,sun50i-a64-codec-i2s";
reg = <0x1c22c00 0x200>;
interrupts = <0x00 0x1d 0x04>;
clocks = <0x02 0x38 0x02 0x6b>;
clock-names = "apb\0mod";
resets = <0x02 0x24>;
dmas = <0x36 0x0f 0x36 0x0f>;
dma-names = "rx\0tx";
status = "okay";
phandle = <0x14>;
};
codec@1c22e00 {
#sound-dai-cells = <0x01>;
compatible = "allwinner,sun50i-a64-codec\0allwinner,sun8i-a33-codec";
reg = <0x1c22e00 0x600>;
interrupts = <0x00 0x1c 0x04>;
clocks = <0x02 0x38 0x02 0x6b>;
clock-names = "bus\0mod";
status = "okay";
pinctrl-names = "default";
pinctrl-0 = <0x39 0x3a>;
phandle = <0x15>;
};
thermal-sensor@1c25000 {
compatible = "allwinner,sun50i-a64-ths";
reg = <0x1c25000 0x100>;
clocks = <0x02 0x3b 0x02 0x49>;
clock-names = "bus\0mod";
interrupts = <0x00 0x1f 0x04>;
resets = <0x02 0x26>;
nvmem-cells = <0x3b>;
nvmem-cell-names = "calibration";
#thermal-sensor-cells = <0x01>;
phandle = <0x1a>;
};
serial@1c28000 {
compatible = "snps,dw-apb-uart";
reg = <0x1c28000 0x400>;
interrupts = <0x00 0x00 0x04>;
reg-shift = <0x02>;
reg-io-width = <0x04>;
clocks = <0x02 0x43>;
resets = <0x02 0x2e>;
status = "okay";
pinctrl-names = "default";
pinctrl-0 = <0x3c>;
};
serial@1c28400 {
compatible = "snps,dw-apb-uart";
reg = <0x1c28400 0x400>;
interrupts = <0x00 0x01 0x04>;
reg-shift = <0x02>;
reg-io-width = <0x04>;
clocks = <0x02 0x44>;
resets = <0x02 0x2f>;
status = "okay";
pinctrl-names = "default";
pinctrl-0 = <0x3d 0x3e>;
bluetooth {
compatible = "realtek,rtl8723cs-bt";
device-wake-gpios = <0x2b 0x07 0x06 0x01>;
enable-gpios = <0x3f 0x00 0x04 0x00>;
host-wake-gpios = <0x3f 0x00 0x05 0x00>;
};
};
serial@1c28800 {
compatible = "snps,dw-apb-uart";
reg = <0x1c28800 0x400>;
interrupts = <0x00 0x02 0x04>;
reg-shift = <0x02>;
reg-io-width = <0x04>;
clocks = <0x02 0x45>;
resets = <0x02 0x30>;
status = "disabled";
};
serial@1c28c00 {
compatible = "snps,dw-apb-uart";
reg = <0x1c28c00 0x400>;
interrupts = <0x00 0x03 0x04>;
reg-shift = <0x02>;
reg-io-width = <0x04>;
clocks = <0x02 0x46>;
resets = <0x02 0x31>;
status = "okay";
pinctrl-names = "default";
pinctrl-0 = <0x40>;
};
serial@1c29000 {
compatible = "snps,dw-apb-uart";
reg = <0x1c29000 0x400>;
interrupts = <0x00 0x04 0x04>;
reg-shift = <0x02>;
reg-io-width = <0x04>;
clocks = <0x02 0x47>;
resets = <0x02 0x32>;
status = "disabled";
};
i2c@1c2ac00 {
compatible = "allwinner,sun6i-a31-i2c";
reg = <0x1c2ac00 0x400>;
interrupts = <0x00 0x06 0x04>;
clocks = <0x02 0x3f>;
resets = <0x02 0x2a>;
pinctrl-names = "default";
pinctrl-0 = <0x41>;
status = "okay";
#address-cells = <0x01>;
#size-cells = <0x00>;
hdmi-bridge@28 {
compatible = "analogix,anx7688";
reg = <0x28>;
interrupt-parent = <0x3f>;
interrupts = <0x00 0x0b 0x02>;
enable-gpios = <0x2b 0x03 0x0a 0x01>;
cabledet-gpios = <0x3f 0x00 0x08 0x00>;
avdd10-supply = <0x42>;
dvdd10-supply = <0x42>;
avdd18-supply = <0x43>;
dvdd18-supply = <0x43>;
vconn-supply = <0x44>;
hdmi_vt-supply = <0x45>;
vbus-supply = <0x46>;
reset-gpios = <0x2b 0x03 0x06 0x00>;
avdd33-supply = <0x2a>;
port {
endpoint {
remote-endpoint = <0x47>;
phandle = <0x32>;
};
};
};
touchscreen@5d {
compatible = "goodix,gt917s";
reg = <0x5d>;
interrupt-parent = <0x2b>;
interrupts = <0x07 0x04 0x04>;
irq-gpios = <0x2b 0x07 0x04 0x00>;
reset-gpios = <0x2b 0x07 0x0b 0x00>;
AVDD28-supply = <0x48>;
VDDIO-supply = <0x48>;
touchscreen-size-x = <0x2d0>;
touchscreen-size-y = <0x5a0>;
};
};
i2c@1c2b000 {
compatible = "allwinner,sun6i-a31-i2c";
reg = <0x1c2b000 0x400>;
interrupts = <0x00 0x07 0x04>;
clocks = <0x02 0x40>;
resets = <0x02 0x2b>;
pinctrl-names = "default";
pinctrl-0 = <0x49>;
status = "okay";
#address-cells = <0x01>;
#size-cells = <0x00>;
lis3mdl@1e {
compatible = "st,lis3mdl-magn";
reg = <0x1e>;
vdd-supply = <0x45>;
vddio-supply = <0x45>;
interrupt-parent = <0x2b>;
interrupts = <0x01 0x01 0x01>;
};
stk3311@48 {
compatible = "sensortek,stk3311";
reg = <0x48>;
interrupt-parent = <0x2b>;
interrupts = <0x01 0x00 0x02>;
vdd-supply = <0x48>;
leda-supply = <0x45>;
};
mpu6050@68 {
compatible = "invensense,mpu6050";
reg = <0x68>;
interrupt-parent = <0x2b>;
interrupts = <0x07 0x05 0x01>;
vdd-supply = <0x45>;
vddio-supply = <0x45>;
mount-matrix = "0\01\00\0-1\00\00\00\00\0-1";
};
};
i2c@1c2b400 {
compatible = "allwinner,sun6i-a31-i2c";
reg = <0x1c2b400 0x400>;
interrupts = <0x00 0x08 0x04>;
clocks = <0x02 0x41>;
resets = <0x02 0x2c>;
pinctrl-names = "default";
pinctrl-0 = <0x4a>;
status = "okay";
#address-cells = <0x01>;
#size-cells = <0x00>;
};
spi@1c68000 {
compatible = "allwinner,sun8i-h3-spi";
reg = <0x1c68000 0x1000>;
interrupts = <0x00 0x41 0x04>;
clocks = <0x02 0x27 0x02 0x50>;
clock-names = "ahb\0mod";
dmas = <0x36 0x17 0x36 0x17>;
dma-names = "rx\0tx";
pinctrl-names = "default";
pinctrl-0 = <0x4b>;
resets = <0x02 0x10>;
status = "disabled";
num-cs = <0x01>;
#address-cells = <0x01>;
#size-cells = <0x00>;
};
spi@1c69000 {
compatible = "allwinner,sun8i-h3-spi";
reg = <0x1c69000 0x1000>;
interrupts = <0x00 0x42 0x04>;
clocks = <0x02 0x28 0x02 0x51>;
clock-names = "ahb\0mod";
dmas = <0x36 0x18 0x36 0x18>;
dma-names = "rx\0tx";
pinctrl-names = "default";
pinctrl-0 = <0x4c>;
resets = <0x02 0x11>;
status = "disabled";
num-cs = <0x01>;
#address-cells = <0x01>;
#size-cells = <0x00>;
};
ethernet@1c30000 {
compatible = "allwinner,sun50i-a64-emac";
syscon = <0x4d>;
reg = <0x1c30000 0x10000>;
interrupts = <0x00 0x52 0x04>;
interrupt-names = "macirq";
resets = <0x02 0x0d>;
reset-names = "stmmaceth";
clocks = <0x02 0x24>;
clock-names = "stmmaceth";
status = "disabled";
mdio {
compatible = "snps,dwmac-mdio";
#address-cells = <0x01>;
#size-cells = <0x00>;
};
};
gpu@1c40000 {
compatible = "allwinner,sun50i-a64-mali\0arm,mali-400";
reg = <0x1c40000 0x10000>;
interrupts = <0x00 0x61 0x04 0x00 0x62 0x04 0x00 0x63 0x04 0x00 0x64 0x04 0x00 0x66 0x04 0x00 0x67 0x04 0x00 0x65 0x04>;
interrupt-names = "gp\0gpmmu\0pp0\0ppmmu0\0pp1\0ppmmu1\0pmu";
clocks = <0x02 0x35 0x02 0x72>;
clock-names = "bus\0core";
resets = <0x02 0x1f>;
assigned-clocks = <0x02 0x72>;
assigned-clock-rates = <0x1dcd6500>;
};
interrupt-controller@1c81000 {
compatible = "arm,gic-400";
reg = <0x1c81000 0x1000 0x1c82000 0x2000 0x1c84000 0x2000 0x1c86000 0x2000>;
interrupts = <0x01 0x09 0xf04>;
interrupt-controller;
#interrupt-cells = <0x03>;
phandle = <0x01>;
};
pwm@1c21400 {
compatible = "allwinner,sun50i-a64-pwm\0allwinner,sun5i-a13-pwm";
reg = <0x1c21400 0x400>;
clocks = <0x33>;
pinctrl-names = "default";
pinctrl-0 = <0x4e>;
#pwm-cells = <0x03>;
status = "disabled";
};
dram-controller@1c62000 {
compatible = "allwinner,sun50i-a64-mbus";
reg = <0x1c62000 0x1000>;
clocks = <0x02 0x70>;
#address-cells = <0x01>;
#size-cells = <0x01>;
dma-ranges = <0x00 0x40000000 0xc0000000>;
#interconnect-cells = <0x01>;
phandle = <0x57>;
};
csi@1cb0000 {
compatible = "allwinner,sun50i-a64-csi";
reg = <0x1cb0000 0x1000>;
interrupts = <0x00 0x54 0x04>;
clocks = <0x02 0x32 0x02 0x68 0x02 0x60>;
clock-names = "bus\0mod\0ram";
resets = <0x02 0x1b>;
pinctrl-names = "default";
pinctrl-0 = <0x4f 0x50>;
status = "okay";
port {
#address-cells = <0x01>;
#size-cells = <0x00>;
endpoint@0 {
reg = <0x00>;
remote-endpoint = <0x51>;
bus-width = <0x08>;
hsync-active = <0x01>;
vsync-active = <0x00>;
data-active = <0x01>;
pclk-sample = <0x01>;
phandle = <0x67>;
};
endpoint@1 {
reg = <0x01>;
remote-endpoint = <0x52>;
bus-width = <0x08>;
hsync-active = <0x01>;
vsync-active = <0x01>;
data-active = <0x01>;
pclk-sample = <0x01>;
phandle = <0x66>;
};
};
};
dsi@1ca0000 {
compatible = "allwinner,sun50i-a64-mipi-dsi";
reg = <0x1ca0000 0x1000>;
interrupts = <0x00 0x59 0x04>;
clocks = <0x02 0x1c>;
resets = <0x02 0x05>;
phys = <0x53>;
phy-names = "dphy";
status = "okay";
#address-cells = <0x01>;
#size-cells = <0x00>;
vcc-dsi-supply = <0x45>;
port {
endpoint {
remote-endpoint = <0x54>;
phandle = <0x24>;
};
};
panel@0 {
compatible = "xingbangda,xbd599";
reg = <0x00>;
reset-gpios = <0x2b 0x03 0x17 0x01>;
iovcc-supply = <0x55>;
vcc-supply = <0x48>;
backlight = <0x56>;
};
};
d-phy@1ca1000 {
compatible = "allwinner,sun50i-a64-mipi-dphy\0allwinner,sun6i-a31-mipi-dphy";
reg = <0x1ca1000 0x1000>;
clocks = <0x02 0x1c 0x02 0x71>;
clock-names = "bus\0mod";
resets = <0x02 0x05>;
status = "okay";
#phy-cells = <0x00>;
phandle = <0x53>;
};
deinterlace@1e00000 {
compatible = "allwinner,sun50i-a64-deinterlace\0allwinner,sun8i-h3-deinterlace";
reg = <0x1e00000 0x20000>;
clocks = <0x02 0x31 0x02 0x66 0x02 0x61>;
clock-names = "bus\0mod\0ram";
resets = <0x02 0x1a>;
interrupts = <0x00 0x5d 0x04>;
interconnects = <0x57 0x09>;
interconnect-names = "dma-mem";
};
hdmi@1ee0000 {
#sound-dai-cells = <0x00>;
compatible = "allwinner,sun50i-a64-dw-hdmi\0allwinner,sun8i-a83t-dw-hdmi";
reg = <0x1ee0000 0x10000>;
reg-io-width = <0x01>;
interrupts = <0x00 0x58 0x04>;
clocks = <0x02 0x33 0x02 0x6f 0x02 0x6e>;
clock-names = "iahb\0isfr\0tmds";
resets = <0x02 0x1d>;
reset-names = "ctrl";
phys = <0x58>;
phy-names = "phy";
status = "okay";
hvcc-supply = <0x45>;
phandle = <0x09>;
ports {
#address-cells = <0x01>;
#size-cells = <0x00>;
port@0 {
reg = <0x00>;
endpoint {
remote-endpoint = <0x59>;
phandle = <0x27>;
};
};
port@1 {
reg = <0x01>;
endpoint {
remote-endpoint = <0x5a>;
phandle = <0x63>;
};
};
};
};
hdmi-phy@1ef0000 {
compatible = "allwinner,sun50i-a64-hdmi-phy";
reg = <0x1ef0000 0x10000>;
clocks = <0x02 0x33 0x02 0x6f 0x02 0x07>;
clock-names = "bus\0mod\0pll-0";
resets = <0x02 0x1c>;
reset-names = "phy";
#phy-cells = <0x00>;
phandle = <0x58>;
};
rtc@1f00000 {
compatible = "allwinner,sun50i-a64-rtc\0allwinner,sun8i-h3-rtc";
reg = <0x1f00000 0x400>;
interrupt-parent = <0x5b>;
interrupts = <0x08 0x04 0x09 0x04>;
clock-output-names = "osc32k\0osc32k-out\0iosc";
clocks = <0x5c>;
#clock-cells = <0x01>;
phandle = <0x34>;
};
interrupt-controller@1f00c00 {
compatible = "allwinner,sun50i-a64-r-intc\0allwinner,sun6i-a31-r-intc";
interrupt-controller;
#interrupt-cells = <0x02>;
reg = <0x1f00c00 0x400>;
interrupts = <0x00 0x20 0x04>;
phandle = <0x5b>;
};
clock@1f01400 {
compatible = "allwinner,sun50i-a64-r-ccu";
reg = <0x1f01400 0x100>;
clocks = <0x33 0x34 0x00 0x34 0x02 0x02 0x0b>;
clock-names = "hosc\0losc\0iosc\0pll-periph";
protected-clocks = <0x0a>;
#clock-cells = <0x01>;
#reset-cells = <0x01>;
phandle = <0x5e>;
};
codec-analog@1f015c0 {
compatible = "allwinner,sun50i-a64-codec-analog";
reg = <0x1f015c0 0x04>;
status = "okay";
cpvdd-supply = <0x5d>;
phandle = <0x11>;
};
i2c@1f02400 {
compatible = "allwinner,sun50i-a64-i2c\0allwinner,sun6i-a31-i2c";
reg = <0x1f02400 0x400>;
interrupts = <0x00 0x2c 0x04>;
clocks = <0x5e 0x09>;
resets = <0x5e 0x05>;
status = "disabled";
#address-cells = <0x01>;
#size-cells = <0x00>;
};
ir@1f02000 {
compatible = "allwinner,sun50i-a64-ir\0allwinner,sun6i-a31-ir";
reg = <0x1f02000 0x400>;
clocks = <0x5e 0x04 0x5e 0x0b>;
clock-names = "apb\0ir";
resets = <0x5e 0x00>;
interrupt-parent = <0x5b>;
interrupts = <0x05 0x04>;
pinctrl-names = "default";
pinctrl-0 = <0x5f>;
status = "disabled";
};
pwm@1f03800 {
compatible = "allwinner,sun50i-a64-pwm\0allwinner,sun5i-a13-pwm";
reg = <0x1f03800 0x400>;
clocks = <0x33>;
pinctrl-names = "default";
pinctrl-0 = <0x60>;
#pwm-cells = <0x03>;
status = "okay";
phandle = <0x62>;
};
pinctrl@1f02c00 {
compatible = "allwinner,sun50i-a64-r-pinctrl";
reg = <0x1f02c00 0x400>;
interrupt-parent = <0x5b>;
interrupts = <0x0d 0x04>;
clocks = <0x5e 0x03 0x33 0x5c>;
clock-names = "apb\0hosc\0losc";
gpio-controller;
#gpio-cells = <0x03>;
interrupt-controller;
#interrupt-cells = <0x03>;
phandle = <0x3f>;
r-i2c-pl89-pins {
pins = "PL8\0PL9";
function = "s_i2c";
};
r-ir-rx-pin {
pins = "PL11";
function = "s_cir_rx";
phandle = <0x5f>;
};
r-pwm-pin {
pins = "PL10";
function = "s_pwm";
phandle = <0x60>;
};
r-rsb-pins {
pins = "PL0\0PL1";
function = "s_rsb";
phandle = <0x61>;
};
};
rsb@1f03400 {
compatible = "allwinner,sun8i-a23-rsb";
reg = <0x1f03400 0x400>;
interrupts = <0x00 0x27 0x04>;
clocks = <0x5e 0x06>;
clock-frequency = <0x2dc6c0>;
resets = <0x5e 0x02>;
pinctrl-names = "default";
pinctrl-0 = <0x61>;
status = "okay";
#address-cells = <0x01>;
#size-cells = <0x00>;
pmic@3a3 {
compatible = "x-powers,axp803";
reg = <0x3a3>;
interrupt-parent = <0x5b>;
interrupts = <0x00 0x08>;
interrupt-controller;
#interrupt-cells = <0x01>;
x-powers,sense-vbus-en;
ac-power-supply {
compatible = "x-powers,axp803-ac-power-supply\0x-powers,axp813-ac-power-supply";
status = "disabled";
};
adc {
compatible = "x-powers,axp803-adc\0x-powers,axp813-adc";
#io-channel-cells = <0x01>;
x-powers,ts-as-gpadc;
};
gpio {
compatible = "x-powers,axp803-gpio\0x-powers,axp813-gpio";
gpio-controller;
#gpio-cells = <0x02>;
gpio0-ldo {
pins = "GPIO0";
function = "ldo";
};
gpio1-ldo {
pins = "GPIO1";
function = "ldo";
};
};
battery-power-supply {
compatible = "x-powers,axp803-battery-power-supply\0x-powers,axp813-battery-power-supply";
status = "okay";
};
regulators {
x-powers,dcdc-freq = <0xbb8>;
aldo1 {
regulator-name = "dovdd-csi";
regulator-min-microvolt = <0x1b7740>;
regulator-max-microvolt = <0x1b7740>;
phandle = <0x35>;
};
aldo2 {
regulator-name = "vcc-pl";
regulator-always-on;
regulator-min-microvolt = <0x1b7740>;
regulator-max-microvolt = <0x1b7740>;
};
aldo3 {
regulator-name = "vcc-pll-avcc";
regulator-always-on;
regulator-min-microvolt = <0x2dc6c0>;
regulator-max-microvolt = <0x2dc6c0>;
phandle = <0x38>;
};
dc1sw {
regulator-name = "dc1sw";
};
dcdc1 {
regulator-name = "vcc-3v3";
regulator-always-on;
regulator-min-microvolt = <0x325aa0>;
regulator-max-microvolt = <0x325aa0>;
phandle = <0x2a>;
};
dcdc2 {
regulator-name = "vdd-cpux";
regulator-always-on;
regulator-min-microvolt = <0xf4240>;
regulator-max-microvolt = <0x13d620>;
phandle = <0x06>;
};
dcdc3 {
regulator-name = "dcdc3";
};
dcdc4 {
regulator-name = "dcdc4";
};
dcdc5 {
regulator-name = "vcc-dram";
regulator-always-on;
regulator-min-microvolt = <0x124f80>;
regulator-max-microvolt = <0x124f80>;
};
dcdc6 {
regulator-name = "vdd-sys";
regulator-always-on;
regulator-min-microvolt = <0x10c8e0>;
regulator-max-microvolt = <0x10c8e0>;
};
dldo1 {
regulator-name = "vcc-dsi-sensor";
regulator-min-microvolt = <0x325aa0>;
regulator-max-microvolt = <0x325aa0>;
phandle = <0x45>;
};
dldo2 {
regulator-name = "vcc-mipi-io";
regulator-min-microvolt = <0x1b7740>;
regulator-max-microvolt = <0x1b7740>;
phandle = <0x55>;
};
dldo3 {
regulator-name = "avdd-csi";
regulator-min-microvolt = <0x2ab980>;
regulator-max-microvolt = <0x2ab980>;
phandle = <0x64>;
};
dldo4 {
regulator-name = "vcc-wifi-io";
regulator-min-microvolt = <0x1b7740>;
regulator-max-microvolt = <0x1b7740>;
phandle = <0x2e>;
};
eldo1 {
regulator-name = "vcc-lpddr";
regulator-always-on;
regulator-min-microvolt = <0x1b7740>;
regulator-max-microvolt = <0x1b7740>;
phandle = <0x5d>;
};
eldo2 {
regulator-name = "eldo2";
};
eldo3 {
regulator-name = "dvdd-1v8-csi";
regulator-min-microvolt = <0x1b7740>;
regulator-max-microvolt = <0x1b7740>;
phandle = <0x65>;
};
fldo1 {
regulator-name = "vcc-1v2-hsic";
regulator-min-microvolt = <0x124f80>;
regulator-max-microvolt = <0x124f80>;
};
fldo2 {
regulator-name = "vdd-cpus";
regulator-always-on;
regulator-min-microvolt = <0x10c8e0>;
regulator-max-microvolt = <0x10c8e0>;
};
ldo-io0 {
regulator-name = "vcc-lcd-ctp-stk";
status = "okay";
regulator-min-microvolt = <0x325aa0>;
regulator-max-microvolt = <0x325aa0>;
phandle = <0x48>;
};
ldo-io1 {
regulator-name = "vcc-1v8-typec";
status = "okay";
regulator-min-microvolt = <0x1b7740>;
regulator-max-microvolt = <0x1b7740>;
phandle = <0x43>;
};
rtc-ldo {
regulator-always-on;
regulator-min-microvolt = <0x2dc6c0>;
regulator-max-microvolt = <0x2dc6c0>;
regulator-name = "vcc-rtc";
};
drivevbus {
regulator-name = "drivevbus";
status = "disabled";
};
};
usb-power-supply {
compatible = "x-powers,axp803-usb-power-supply\0x-powers,axp813-usb-power-supply";
status = "okay";
};
};
};
watchdog@1c20ca0 {
compatible = "allwinner,sun50i-a64-wdt\0allwinner,sun6i-a31-wdt";
reg = <0x1c20ca0 0x20>;
interrupts = <0x00 0x19 0x04>;
clocks = <0x33>;
};
};
opp_table0 {
compatible = "operating-points-v2";
opp-shared;
phandle = <0x05>;
opp-480000000 {
opp-hz = <0x00 0x1c9c3800>;
opp-microvolt = <0xfde80>;
clock-latency-ns = <0x3b9b0>;
};
opp-648000000 {
opp-hz = <0x00 0x269fb200>;
opp-microvolt = <0xfde80>;
clock-latency-ns = <0x3b9b0>;
};
opp-816000000 {
opp-hz = <0x00 0x30a32c00>;
opp-microvolt = <0x10c8e0>;
clock-latency-ns = <0x3b9b0>;
};
opp-912000000 {
opp-hz = <0x00 0x365c0400>;
opp-microvolt = <0x111700>;
clock-latency-ns = <0x3b9b0>;
};
opp-960000000 {
opp-hz = <0x00 0x39387000>;
opp-microvolt = <0x11b340>;
clock-latency-ns = <0x3b9b0>;
};
opp-1008000000 {
opp-hz = <0x00 0x3c14dc00>;
opp-microvolt = <0x124f80>;
clock-latency-ns = <0x3b9b0>;
};
opp-1056000000 {
opp-hz = <0x00 0x3ef14800>;
opp-microvolt = <0x12ebc0>;
clock-latency-ns = <0x3b9b0>;
};
opp-1104000000 {
opp-hz = <0x00 0x41cdb400>;
opp-microvolt = <0x1339e0>;
clock-latency-ns = <0x3b9b0>;
};
opp-1152000000 {
opp-hz = <0x00 0x44aa2000>;
opp-microvolt = <0x13d620>;
clock-latency-ns = <0x3b9b0>;
};
};
aliases {
ethernet0 = "/soc/mmc@1c10000/wifi@1";
serial0 = "/soc/serial@1c28000";
};
backlight {
compatible = "pwm-backlight";
pwms = <0x62 0x00 0xc350 0x01>;
enable-gpios = <0x2b 0x07 0x0a 0x00>;
power-supply = <0x48>;
brightness-levels = <0x1388 0x1480 0x1582 0x16e2 0x18c9 0x1b4b 0x1e7d 0x2277 0x274e 0x2d17 0x33e7 0x3bd5 0x44f6 0x4f5f 0x5b28 0x6864 0x7729 0x878e 0x99a7 0xad8b 0xc350>;
num-interpolated-steps = <0x32>;
default-brightness-level = <0x1f4>;
phandle = <0x56>;
};
bt-sco-codec {
#sound-dai-cells = <0x01>;
compatible = "linux,bt-sco";
phandle = <0x19>;
};
ec25-codec {
#sound-dai-cells = <0x01>;
compatible = "quectel,ec25";
phandle = <0x17>;
};
gpio-keys {
compatible = "gpio-keys";
ring-indicator {
label = "Ring Indicator";
linux,can-disable;
linux,code = <0x8f>;
wakeup-event-action = <0x01>;
wakeup-source;
gpios = <0x3f 0x00 0x06 0x01>;
};
};
hdmi-connector {
compatible = "hdmi-connector";
type = "a";
port {
endpoint {
remote-endpoint = <0x63>;
phandle = <0x5a>;
};
};
};
i2c-csi {
compatible = "i2c-gpio";
sda-gpios = <0x2b 0x04 0x0d 0x06>;
scl-gpios = <0x2b 0x04 0x0c 0x06>;
i2c-gpio,delay-us = <0x03>;
#address-cells = <0x01>;
#size-cells = <0x00>;
front-camera@3c {
compatible = "galaxycore,gc2145";
reg = <0x3c>;
clocks = <0x02 0x69>;
clock-names = "xclk";
AVDD-supply = <0x64>;
DVDD-supply = <0x35>;
IOVDD-supply = <0x65>;
reset-gpios = <0x2b 0x04 0x10 0x07>;
enable-gpios = <0x2b 0x04 0x11 0x07>;
port {
endpoint {
remote-endpoint = <0x66>;
bus-width = <0x08>;
hsync-active = <0x01>;
vsync-active = <0x01>;
data-active = <0x01>;
pclk-sample = <0x01>;
phandle = <0x52>;
};
};
};
rear-camera@4c {
compatible = "ovti,ov5640";
reg = <0x4c>;
clocks = <0x02 0x69>;
clock-names = "xclk";
AVDD-supply = <0x64>;
DOVDD-supply = <0x35>;
DVDD-supply = <0x65>;
reset-gpios = <0x2b 0x03 0x03 0x07>;
powerdown-gpios = <0x2b 0x02 0x00 0x06>;
port {
endpoint {
remote-endpoint = <0x67>;
bus-width = <0x08>;
hsync-active = <0x01>;
vsync-active = <0x00>;
data-active = <0x01>;
pclk-sample = <0x01>;
phandle = <0x51>;
};
};
};
};
leds {
compatible = "gpio-leds";
blue {
function = "indicator";
color = <0x03>;
gpios = <0x2b 0x03 0x14 0x00>;
retain-state-suspended;
};
green {
function = "indicator";
color = <0x02>;
gpios = <0x2b 0x03 0x12 0x00>;
retain-state-suspended;
};
red {
function = "indicator";
color = <0x01>;
gpios = <0x2b 0x03 0x13 0x00>;
retain-state-suspended;
};
};
anx-vdd1v0 {
compatible = "regulator-fixed";
regulator-name = "anx-vdd1v0";
regulator-min-microvolt = <0xf4240>;
regulator-max-microvolt = <0xf4240>;
gpio = <0x2b 0x03 0x0b 0x00>;
enable-active-high;
phandle = <0x42>;
};
usb0-vbus {
compatible = "regulator-fixed";
regulator-name = "usb0-vbus";
regulator-min-microvolt = <0x4c4b40>;
regulator-max-microvolt = <0x4c4b40>;
vin-supply = <0x68>;
phandle = <0x46>;
};
vbat-bb {
compatible = "regulator-fixed";
regulator-always-on;
regulator-name = "vbat-bb";
regulator-min-microvolt = <0x3567e0>;
regulator-max-microvolt = <0x3567e0>;
gpio = <0x3f 0x00 0x07 0x00>;
enable-active-high;
};
vbat-wifi {
compatible = "regulator-fixed";
regulator-min-microvolt = <0x325aa0>;
regulator-max-microvolt = <0x325aa0>;
regulator-name = "vbat-wifi";
phandle = <0x2d>;
};
vcc5v0 {
compatible = "regulator-fixed";
regulator-name = "vcc5v0";
regulator-min-microvolt = <0x4c4b40>;
regulator-max-microvolt = <0x4c4b40>;
gpio = <0x2b 0x03 0x08 0x00>;
enable-active-high;
phandle = <0x68>;
};
vconn5v0 {
compatible = "regulator-fixed";
regulator-name = "vconn5v0";
regulator-min-microvolt = <0x4c4b40>;
regulator-max-microvolt = <0x4c4b40>;
gpio = <0x2b 0x03 0x09 0x00>;
enable-active-high;
phandle = <0x44>;
};
led-controller {
compatible = "sgmicro,sgm3140";
vin-supply = <0x2a>;
enable-gpios = <0x2b 0x03 0x18 0x00>;
flash-gpios = <0x2b 0x02 0x03 0x00>;
led {
function = "flash";
color = <0x00>;
flash-max-timeout-us = <0x3d090>;
};
};
audio-amplifier {
compatible = "simple-audio-amplifier";
enable-gpios = <0x2b 0x02 0x07 0x00>;
sound-name-prefix = "Speaker Amp";
phandle = <0x12>;
};
vibrator {
compatible = "gpio-vibrator";
enable-gpios = <0x2b 0x03 0x02 0x00>;
vcc-supply = <0x2a>;
};
wifi_pwrseq {
compatible = "mmc-pwrseq-simple";
reset-gpios = <0x3f 0x00 0x02 0x01>;
phandle = <0x2f>;
};
};