1291 lines
28 KiB
Plaintext

/dts-v1/;
/ {
#address-cells = <0x01>;
model = "MangoPi MQ Pro";
#size-cells = <0x01>;
compatible = "widora,mangopi-mq-pro\0allwinner,sun20i-d1";
connector {
type = "c";
compatible = "hdmi-connector";
port {
endpoint {
remote-endpoint = <0x3e>;
phandle = <0x3b>;
};
};
};
avdd2v8 {
regulator-max-microvolt = <0x2ab980>;
regulator-min-microvolt = <0x2ab980>;
regulator-name = "avdd2v8";
compatible = "regulator-fixed";
phandle = <0x0c>;
vin-supply = <0x0b>;
};
vdd-cpu {
regulator-max-microvolt = <0x10c8e0>;
regulator-min-microvolt = <0x10c8e0>;
regulator-name = "vdd-cpu";
compatible = "regulator-fixed";
phandle = <0x02>;
vin-supply = <0x21>;
};
wifi-pwrseq {
reset-gpios = <0x15 0x06 0x11 0x01>;
compatible = "mmc-pwrseq-simple";
phandle = <0x1d>;
};
thermal-zones {
cpu-thermal {
polling-delay = <0x00>;
polling-delay-passive = <0x00>;
thermal-sensors = <0x05>;
trips {
cpu-crit {
temperature = <0x1adb0>;
hysteresis = <0x00>;
type = "critical";
};
cpu-target {
temperature = <0x14c08>;
hysteresis = <0xbb8>;
type = "passive";
phandle = <0x06>;
};
};
cooling-maps {
map0 {
trip = <0x06>;
cooling-device = <0x07 0xffffffff 0xffffffff>;
};
};
};
};
soc {
#address-cells = <0x01>;
dma-noncoherent;
#size-cells = <0x01>;
interrupt-parent = <0x08>;
compatible = "simple-bus";
ranges;
watchdog@20500a0 {
clock-names = "hosc\0losc";
interrupts = <0x4f 0x04>;
clocks = <0x09 0x0a 0x00>;
compatible = "allwinner,sun20i-d1-wdt-reset\0allwinner,sun20i-d1-wdt";
status = "reserved";
reg = <0x20500a0 0x20>;
};
serial@2501000 {
reg-io-width = <0x04>;
pinctrl-names = "default";
pinctrl-0 = <0x17>;
resets = <0x01 0x16>;
interrupts = <0x16 0x04>;
clocks = <0x01 0x42>;
dma-names = "rx\0tx";
compatible = "snps,dw-apb-uart";
status = "okay";
reg = <0x2501000 0x400>;
dmas = <0x0d 0x12 0x0d 0x12>;
reg-shift = <0x02>;
};
hdmi@5500000 {
reg-io-width = <0x01>;
phy-names = "phy";
clock-names = "iahb\0isfr\0cec";
hvcc-supply = <0x39>;
resets = <0x01 0x31>;
interrupts = <0x6d 0x04>;
clocks = <0x01 0x6d 0x01 0x6a 0x01 0x6c>;
compatible = "allwinner,sun20i-d1-dw-hdmi";
status = "okay";
phys = <0x38>;
reg = <0x5500000 0x10000>;
reset-names = "ctrl";
ports {
#address-cells = <0x01>;
#size-cells = <0x00>;
port@0 {
reg = <0x00>;
endpoint {
remote-endpoint = <0x3a>;
phandle = <0x31>;
};
};
port@1 {
reg = <0x01>;
endpoint {
remote-endpoint = <0x3b>;
phandle = <0x3e>;
};
};
};
};
syscon@3000000 {
#address-cells = <0x01>;
#size-cells = <0x01>;
compatible = "allwinner,sun20i-d1-system-control";
ranges;
reg = <0x3000000 0x1000>;
phandle = <0x22>;
regulators@3000150 {
compatible = "allwinner,sun20i-d1-system-ldos";
reg = <0x3000150 0x04>;
ldob {
};
ldoa {
regulator-max-microvolt = <0x1b7740>;
regulator-always-on;
ldo-in-supply = <0x0b>;
regulator-min-microvolt = <0x1b7740>;
phandle = <0x39>;
};
};
};
mmc@4022000 {
mmc-ddr-3_3v;
#address-cells = <0x01>;
clock-names = "ahb\0mmc";
no-sdio;
resets = <0x01 0x11>;
interrupts = <0x3a 0x04>;
clocks = <0x01 0x3d 0x01 0x3a>;
#size-cells = <0x00>;
no-sd;
mmc-ddr-1_8v;
compatible = "allwinner,sun20i-d1-emmc\0allwinner,sun50i-a100-emmc";
status = "disabled";
reg = <0x4022000 0x1000>;
max-frequency = <0x8f0d180>;
cap-mmc-highspeed;
reset-names = "ahb";
};
i2c@2502000 {
pinctrl-names = "default";
#address-cells = <0x01>;
pinctrl-0 = <0x19>;
resets = <0x01 0x18>;
interrupts = <0x19 0x04>;
clocks = <0x01 0x44>;
#size-cells = <0x00>;
dma-names = "rx\0tx";
compatible = "allwinner,sun20i-d1-i2c\0allwinner,sun8i-v536-i2c\0allwinner,sun6i-a31-i2c";
status = "okay";
reg = <0x2502000 0x400>;
dmas = <0x0d 0x2b 0x0d 0x2b>;
};
mixer@5100000 {
iommus = <0x24 0x02>;
clock-names = "bus\0mod";
resets = <0x23 0x00>;
clocks = <0x23 0x00 0x23 0x06>;
compatible = "allwinner,sun20i-d1-de2-mixer-0";
reg = <0x5100000 0x100000>;
phandle = <0x03>;
ports {
#address-cells = <0x01>;
#size-cells = <0x00>;
port@1 {
reg = <0x01>;
endpoint {
remote-endpoint = <0x25>;
phandle = <0x2a>;
};
};
};
};
crypto@3040000 {
clock-names = "bus\0mod\0ram\0trng";
resets = <0x01 0x04>;
interrupts = <0x44 0x04>;
clocks = <0x01 0x22 0x01 0x21 0x01 0x32 0x0a 0x02>;
compatible = "allwinner,sun20i-d1-crypto";
reg = <0x3040000 0x800>;
};
usb@4101400 {
phy-names = "usb";
resets = <0x01 0x2a>;
interrupts = <0x2f 0x04>;
clocks = <0x01 0x63 0x01 0x61>;
compatible = "allwinner,sun20i-d1-ohci\0generic-ohci";
status = "disabled";
phys = <0x20 0x00>;
reg = <0x4101400 0x100>;
};
dmic@2031000 {
clock-names = "bus\0mod";
resets = <0x01 0x26>;
interrupts = <0x28 0x04>;
clocks = <0x01 0x5d 0x01 0x5c>;
dma-names = "rx";
#sound-dai-cells = <0x00>;
compatible = "allwinner,sun20i-d1-dmic\0allwinner,sun50i-h6-dmic";
status = "disabled";
reg = <0x2031000 0x400>;
dmas = <0x0d 0x08>;
};
serial@2500400 {
reg-io-width = <0x04>;
pinctrl-names = "default";
pinctrl-0 = <0x13 0x14>;
resets = <0x01 0x13>;
interrupts = <0x13 0x04>;
clocks = <0x01 0x3f>;
uart-has-rtscts;
dma-names = "rx\0tx";
compatible = "snps,dw-apb-uart";
status = "okay";
reg = <0x2500400 0x400>;
dmas = <0x0d 0x0f 0x0d 0x0f>;
reg-shift = <0x02>;
bluetooth {
device-wake-gpios = <0x15 0x06 0x12 0x00>;
host-wake-gpios = <0x15 0x06 0x0e 0x00>;
compatible = "realtek,rtl8723ds-bt";
enable-gpios = <0x15 0x06 0x0f 0x00>;
};
};
dsi@5450000 {
#address-cells = <0x01>;
phy-names = "dphy";
clock-names = "bus\0mod";
resets = <0x01 0x33>;
interrupts = <0x6c 0x04>;
clocks = <0x01 0x6f 0x27 0x02>;
#size-cells = <0x00>;
compatible = "allwinner,sun20i-d1-mipi-dsi\0allwinner,sun50i-a100-mipi-dsi";
status = "disabled";
phys = <0x28>;
reg = <0x5450000 0x1000>;
port {
endpoint {
remote-endpoint = <0x29>;
phandle = <0x34>;
};
};
};
spi@4025000 {
#address-cells = <0x01>;
num-cs = <0x01>;
clock-names = "ahb\0mod";
resets = <0x01 0x1c>;
interrupts = <0x1f 0x04>;
clocks = <0x01 0x4a 0x01 0x48>;
#size-cells = <0x00>;
dma-names = "rx\0tx";
compatible = "allwinner,sun20i-d1-spi\0allwinner,sun50i-r329-spi";
status = "disabled";
reg = <0x4025000 0x1000>;
dmas = <0x0d 0x16 0x0d 0x16>;
};
watchdog@1700400 {
clock-names = "hosc\0losc";
interrupts = <0x8a 0x04>;
clocks = <0x09 0x0a 0x00>;
compatible = "allwinner,sun20i-d1-wdt";
status = "reserved";
reg = <0x1700400 0x20>;
};
dram-controller@3102000 {
dma-ranges = <0x00 0x40000000 0x80000000>;
#address-cells = <0x01>;
clock-names = "mbus\0dram\0bus";
reg-names = "mbus\0dram";
interrupts = <0x3b 0x04>;
clocks = <0x01 0x1a 0x01 0x2f 0x01 0x37>;
#interconnect-cells = <0x01>;
#size-cells = <0x01>;
compatible = "allwinner,sun20i-d1-mbus";
reg = <0x3102000 0x1000 0x3103000 0x1000>;
};
i2s@2032000 {
clock-names = "apb\0mod";
resets = <0x01 0x22>;
interrupts = <0x2a 0x04>;
clocks = <0x01 0x56 0x01 0x52>;
dma-names = "rx\0tx";
#sound-dai-cells = <0x00>;
compatible = "allwinner,sun20i-d1-i2s\0allwinner,sun50i-r329-i2s";
status = "disabled";
reg = <0x2032000 0x1000>;
dmas = <0x0d 0x03 0x0d 0x03>;
};
interrupt-controller@10000000 {
#address-cells = <0x00>;
interrupts-extended = <0x3d 0x0b 0x3d 0x09>;
compatible = "allwinner,sun20i-d1-plic\0thead,c900-plic";
#interrupt-cells = <0x02>;
reg = <0x10000000 0x4000000>;
phandle = <0x08>;
riscv,ndev = <0xb0>;
interrupt-controller;
};
clock-controller@7010000 {
#reset-cells = <0x01>;
clock-names = "hosc\0losc\0iosc\0pll-periph";
clocks = <0x09 0x0a 0x00 0x0a 0x02 0x01 0x06>;
#clock-cells = <0x01>;
compatible = "allwinner,sun20i-d1-r-ccu";
reg = <0x7010000 0x400>;
phandle = <0x3c>;
};
clock-controller@2001000 {
#reset-cells = <0x01>;
clock-names = "hosc\0losc\0iosc";
clocks = <0x09 0x0a 0x00 0x0a 0x02>;
#clock-cells = <0x01>;
compatible = "allwinner,sun20i-d1-ccu";
reg = <0x2001000 0x1000>;
phandle = <0x01>;
};
ethernet@4500000 {
syscon = <0x22>;
clock-names = "stmmaceth";
resets = <0x01 0x1e>;
interrupts = <0x3e 0x04>;
clocks = <0x01 0x4d>;
compatible = "allwinner,sun20i-d1-emac\0allwinner,sun50i-a64-emac";
status = "disabled";
interrupt-names = "macirq";
reg = <0x4500000 0x10000>;
reset-names = "stmmaceth";
mdio {
#address-cells = <0x01>;
#size-cells = <0x00>;
compatible = "snps,dwmac-mdio";
};
};
serial@2500c00 {
reg-io-width = <0x04>;
resets = <0x01 0x15>;
interrupts = <0x15 0x04>;
clocks = <0x01 0x41>;
dma-names = "rx\0tx";
compatible = "snps,dw-apb-uart";
status = "disabled";
reg = <0x2500c00 0x400>;
dmas = <0x0d 0x11 0x0d 0x11>;
reg-shift = <0x02>;
};
pwm@2000c00 {
clock-names = "bus\0mod";
resets = <0x01 0x0d>;
interrupts = <0x22 0x04>;
clocks = <0x01 0x2d 0x09>;
#pwm-cells = <0x03>;
compatible = "allwinner,sun20i-d1-pwm";
status = "disabled";
reg = <0x2000c00 0x400>;
};
temperature-sensor@2009400 {
vref-supply = <0x0f>;
nvmem-cells = <0x0e>;
clock-names = "bus\0mod";
resets = <0x01 0x21>;
interrupts = <0x4a 0x04>;
clocks = <0x01 0x51 0x09>;
#thermal-sensor-cells = <0x00>;
compatible = "allwinner,sun20i-d1-ths";
nvmem-cell-names = "calibration";
reg = <0x2009400 0x400>;
phandle = <0x05>;
};
usb@4200400 {
phy-names = "usb";
resets = <0x01 0x2b>;
interrupts = <0x32 0x04>;
clocks = <0x01 0x64 0x01 0x62>;
compatible = "allwinner,sun20i-d1-ohci\0generic-ohci";
status = "okay";
phys = <0x20 0x01>;
reg = <0x4200400 0x100>;
};
usb@4101000 {
phy-names = "usb";
resets = <0x01 0x2a 0x01 0x2c>;
interrupts = <0x2e 0x04>;
clocks = <0x01 0x63 0x01 0x65 0x01 0x61>;
compatible = "allwinner,sun20i-d1-ehci\0generic-ehci";
status = "disabled";
phys = <0x20 0x00>;
reg = <0x4101000 0x100>;
};
serial@2500000 {
reg-io-width = <0x04>;
pinctrl-names = "default";
pinctrl-0 = <0x12>;
resets = <0x01 0x12>;
interrupts = <0x12 0x04>;
clocks = <0x01 0x3e>;
dma-names = "rx\0tx";
compatible = "snps,dw-apb-uart";
status = "okay";
reg = <0x2500000 0x400>;
dmas = <0x0d 0x0e 0x0d 0x0e>;
reg-shift = <0x02>;
};
efuse@3006000 {
#address-cells = <0x01>;
#size-cells = <0x01>;
compatible = "allwinner,sun20i-d1-sid";
reg = <0x3006000 0x1000>;
bg-trim@28 {
bits = <0x10 0x08>;
reg = <0x28 0x04>;
phandle = <0x11>;
};
ths-calib@14 {
reg = <0x14 0x04>;
phandle = <0x0e>;
};
};
mmc@4021000 {
pinctrl-names = "default";
#address-cells = <0x01>;
pinctrl-0 = <0x1e>;
clock-names = "ahb\0mmc";
cap-sd-highspeed;
vqmmc-supply = <0x0b>;
no-mmc;
bus-width = <0x04>;
non-removable;
resets = <0x01 0x10>;
interrupts = <0x39 0x04>;
clocks = <0x01 0x3c 0x01 0x39>;
#size-cells = <0x00>;
vmmc-supply = <0x0b>;
compatible = "allwinner,sun20i-d1-mmc";
status = "okay";
mmc-pwrseq = <0x1d>;
reg = <0x4021000 0x1000>;
max-frequency = <0x8f0d180>;
reset-names = "ahb";
wifi@1 {
local-mac-address = [aa f9 2a 2c ac db];
interrupts = <0x06 0x0a 0x08>;
interrupt-parent = <0x15>;
interrupt-names = "host-wake";
reg = <0x01>;
};
};
clock-controller@5000000 {
#reset-cells = <0x01>;
clock-names = "bus\0mod";
resets = <0x01 0x01>;
clocks = <0x01 0x1c 0x01 0x1b>;
#clock-cells = <0x01>;
compatible = "allwinner,sun20i-d1-de2-clk\0allwinner,sun50i-h5-de2-clk";
reg = <0x5000000 0x10000>;
phandle = <0x23>;
};
iommu@2010000 {
interrupts = <0x50 0x04>;
clocks = <0x01 0x2e>;
#iommu-cells = <0x01>;
compatible = "allwinner,sun20i-d1-iommu";
reg = <0x2010000 0x10000>;
phandle = <0x24>;
};
lcd-controller@5470000 {
clock-names = "ahb\0tcon-ch1";
resets = <0x01 0x35>;
interrupts = <0x6b 0x04>;
clocks = <0x01 0x73 0x27 0x00>;
compatible = "allwinner,sun20i-d1-tcon-tv";
reg = <0x5470000 0x1000>;
reset-names = "lcd";
ports {
#address-cells = <0x01>;
#size-cells = <0x00>;
port@0 {
#address-cells = <0x01>;
#size-cells = <0x00>;
reg = <0x00>;
endpoint@1 {
remote-endpoint = <0x36>;
reg = <0x01>;
phandle = <0x2f>;
};
endpoint@0 {
remote-endpoint = <0x35>;
reg = <0x00>;
phandle = <0x2c>;
};
};
port@1 {
reg = <0x01>;
endpoint {
remote-endpoint = <0x37>;
phandle = <0x30>;
};
};
};
};
i2s@2034000 {
clock-names = "apb\0mod";
resets = <0x01 0x24>;
interrupts = <0x2c 0x04>;
clocks = <0x01 0x58 0x01 0x54>;
dma-names = "rx\0tx";
#sound-dai-cells = <0x00>;
compatible = "allwinner,sun20i-d1-i2s\0allwinner,sun50i-r329-i2s";
status = "disabled";
reg = <0x2034000 0x1000>;
dmas = <0x0d 0x05 0x0d 0x05>;
};
usb@4200000 {
phy-names = "usb";
resets = <0x01 0x2b 0x01 0x2d>;
interrupts = <0x31 0x04>;
clocks = <0x01 0x64 0x01 0x66 0x01 0x62>;
compatible = "allwinner,sun20i-d1-ehci\0generic-ehci";
status = "okay";
phys = <0x20 0x01>;
reg = <0x4200000 0x100>;
};
rtc@7090000 {
clock-names = "bus\0hosc\0ahb";
interrupts = <0xa0 0x04>;
clocks = <0x3c 0x07 0x09 0x3c 0x00>;
#clock-cells = <0x01>;
compatible = "allwinner,sun20i-d1-rtc\0allwinner,sun50i-r329-rtc";
reg = <0x7090000 0x400>;
phandle = <0x0a>;
};
i2c@2502800 {
pinctrl-names = "default";
#address-cells = <0x01>;
pinctrl-0 = <0x1a>;
resets = <0x01 0x1a>;
interrupts = <0x1b 0x04>;
clocks = <0x01 0x46>;
#size-cells = <0x00>;
dma-names = "rx\0tx";
compatible = "allwinner,sun20i-d1-i2c\0allwinner,sun8i-v536-i2c\0allwinner,sun6i-a31-i2c";
status = "okay";
reg = <0x2502800 0x400>;
dmas = <0x0d 0x2d 0x0d 0x2d>;
};
timer@2050000 {
interrupts = <0x4b 0x04 0x4c 0x04>;
clocks = <0x09>;
compatible = "allwinner,sun20i-d1-timer\0allwinner,sun8i-a23-timer";
reg = <0x2050000 0xa0>;
};
pinctrl@2000000 {
clock-names = "apb\0hosc\0losc";
gpio-controller;
interrupts = <0x55 0x04 0x57 0x04 0x59 0x04 0x5b 0x04 0x5d 0x04 0x5f 0x04>;
clocks = <0x01 0x18 0x09 0x0a 0x00>;
compatible = "allwinner,sun20i-d1-pinctrl";
#interrupt-cells = <0x03>;
vcc-pb-supply = <0x0b>;
vcc-pc-supply = <0x0b>;
reg = <0x2000000 0x800>;
phandle = <0x15>;
vcc-pd-supply = <0x0b>;
#gpio-cells = <0x03>;
vcc-pe-supply = <0x0c>;
vcc-pf-supply = <0x0b>;
vcc-pg-supply = <0x0b>;
interrupt-controller;
i2c2-pc0-pins {
function = "i2c2";
pins = "PC0\0PC1";
phandle = <0x1a>;
};
uart1-pg8-rts-cts-pins {
function = "uart1";
pins = "PG8\0PG9";
phandle = <0x14>;
};
i2c3-pe16-pins {
function = "i2c3";
pins = "PE16\0PE17";
phandle = <0x1b>;
};
uart2-pb0-pins {
function = "uart2";
pins = "PB0\0PB1";
phandle = <0x16>;
};
mmc1-pins {
function = "mmc1";
pins = "PG0\0PG1\0PG2\0PG3\0PG4\0PG5";
phandle = <0x1e>;
};
uart5-pb4-pins {
function = "uart5";
pins = "PB4\0PB5";
phandle = <0x18>;
};
uart4-pb2-pins {
function = "uart4";
pins = "PB2\0PB3";
phandle = <0x17>;
};
mmc0-pins {
function = "mmc0";
pins = "PF0\0PF1\0PF2\0PF3\0PF4\0PF5";
phandle = <0x1c>;
};
uart1-pg6-pins {
function = "uart1";
pins = "PG6\0PG7";
phandle = <0x13>;
};
uart0-pb8-pins {
function = "uart0";
pins = "PB8\0PB9";
phandle = <0x12>;
};
spi1-pd-pins {
function = "spi1";
pins = "PD10\0PD11\0PD12\0PD13\0PD14\0PD15";
phandle = <0x1f>;
};
i2c0-pg12-pins {
function = "i2c0";
pins = "PG12\0PG13";
phandle = <0x19>;
};
};
usb@4100000 {
phy-names = "usb";
resets = <0x01 0x2e>;
interrupts = <0x2d 0x04>;
clocks = <0x01 0x67>;
extcon = <0x20 0x00>;
compatible = "allwinner,sun20i-d1-musb\0allwinner,sun8i-a33-musb";
status = "okay";
interrupt-names = "mc";
phys = <0x20 0x00>;
reg = <0x4100000 0x400>;
dr_mode = "peripheral";
};
phy@5451000 {
clock-names = "bus\0mod";
resets = <0x01 0x33>;
interrupts = <0x6c 0x04>;
clocks = <0x01 0x6f 0x01 0x6e>;
#phy-cells = <0x00>;
compatible = "allwinner,sun20i-d1-mipi-dphy\0allwinner,sun50i-a100-mipi-dphy";
reg = <0x5451000 0x1000>;
phandle = <0x28>;
};
phy@4100400 {
clock-names = "usb0_phy\0usb1_phy";
reg-names = "phy_ctrl\0pmu0\0pmu1";
resets = <0x01 0x28 0x01 0x29>;
clocks = <0x09 0x09>;
#phy-cells = <0x01>;
compatible = "allwinner,sun20i-d1-usb-phy";
status = "okay";
usb0_vbus-supply = <0x21>;
reg = <0x4100400 0x100 0x4101800 0x100 0x4200800 0x100>;
phandle = <0x20>;
reset-names = "usb0_reset\0usb1_reset";
};
mmc@4020000 {
pinctrl-names = "default";
#address-cells = <0x01>;
pinctrl-0 = <0x1c>;
clock-names = "ahb\0mmc";
cap-sd-highspeed;
vqmmc-supply = <0x0b>;
no-mmc;
bus-width = <0x04>;
resets = <0x01 0x0f>;
interrupts = <0x38 0x04>;
clocks = <0x01 0x3b 0x01 0x38>;
#size-cells = <0x00>;
vmmc-supply = <0x0b>;
compatible = "allwinner,sun20i-d1-mmc";
status = "okay";
disable-wp;
reg = <0x4020000 0x1000>;
max-frequency = <0x8f0d180>;
reset-names = "ahb";
cd-gpios = <0x15 0x05 0x06 0x00>;
};
watchdog@6011000 {
clock-names = "hosc\0losc";
interrupts = <0x93 0x04>;
clocks = <0x09 0x0a 0x00>;
compatible = "allwinner,sun20i-d1-wdt";
reg = <0x6011000 0x20>;
};
dma-controller@3002000 {
clock-names = "bus\0mbus";
resets = <0x01 0x06>;
interrupts = <0x42 0x04>;
clocks = <0x01 0x25 0x01 0x30>;
dma-requests = <0x30>;
compatible = "allwinner,sun20i-d1-dma";
reg = <0x3002000 0x1000>;
phandle = <0x0d>;
dma-channels = <0x10>;
#dma-cells = <0x01>;
};
tcon-top@5460000 {
clock-output-names = "tcon-top-tv0\0tcon-top-dsi";
clock-names = "bus\0tcon-tv0\0tve0\0dsi";
resets = <0x01 0x30>;
clocks = <0x01 0x69 0x01 0x72 0x01 0x74 0x01 0x70>;
#clock-cells = <0x01>;
compatible = "allwinner,sun20i-d1-tcon-top";
reg = <0x5460000 0x1000>;
phandle = <0x27>;
ports {
#address-cells = <0x01>;
#size-cells = <0x00>;
port@0 {
#address-cells = <0x01>;
#size-cells = <0x00>;
reg = <0x00>;
endpoint@0 {
remote-endpoint = <0x2a>;
reg = <0x00>;
phandle = <0x25>;
};
};
port@5 {
reg = <0x05>;
endpoint {
remote-endpoint = <0x31>;
phandle = <0x3a>;
};
};
port@3 {
#address-cells = <0x01>;
#size-cells = <0x00>;
reg = <0x03>;
endpoint@2 {
remote-endpoint = <0x2f>;
reg = <0x02>;
phandle = <0x36>;
};
endpoint@0 {
remote-endpoint = <0x2e>;
reg = <0x00>;
phandle = <0x33>;
};
};
port@1 {
#address-cells = <0x01>;
#size-cells = <0x00>;
reg = <0x01>;
endpoint@2 {
remote-endpoint = <0x2c>;
reg = <0x02>;
phandle = <0x35>;
};
endpoint@0 {
remote-endpoint = <0x2b>;
reg = <0x00>;
phandle = <0x32>;
};
};
port@4 {
reg = <0x04>;
endpoint {
remote-endpoint = <0x30>;
phandle = <0x37>;
};
};
port@2 {
#address-cells = <0x01>;
#size-cells = <0x00>;
reg = <0x02>;
endpoint@1 {
remote-endpoint = <0x2d>;
reg = <0x01>;
phandle = <0x26>;
};
};
};
};
serial@2501400 {
reg-io-width = <0x04>;
pinctrl-names = "default";
pinctrl-0 = <0x18>;
resets = <0x01 0x17>;
interrupts = <0x17 0x04>;
clocks = <0x01 0x43>;
dma-names = "rx\0tx";
compatible = "snps,dw-apb-uart";
status = "okay";
reg = <0x2501400 0x400>;
dmas = <0x0d 0x13 0x0d 0x13>;
reg-shift = <0x02>;
};
spi@4026000 {
pinctrl-names = "default";
#address-cells = <0x01>;
num-cs = <0x01>;
pinctrl-0 = <0x1f>;
clock-names = "ahb\0mod";
resets = <0x01 0x1d>;
interrupts = <0x20 0x04>;
clocks = <0x01 0x4b 0x01 0x49>;
#size-cells = <0x00>;
dma-names = "rx\0tx";
compatible = "allwinner,sun20i-d1-spi-dbi\0allwinner,sun50i-r329-spi-dbi\0allwinner,sun50i-r329-spi";
status = "okay";
reg = <0x4026000 0x1000>;
dmas = <0x0d 0x17 0x0d 0x17>;
};
keys@2009800 {
vref-supply = <0x0f>;
resets = <0x01 0x2f>;
interrupts = <0x4d 0x04>;
clocks = <0x01 0x68>;
compatible = "allwinner,sun20i-d1-lradc\0allwinner,sun50i-r329-lradc";
status = "disabled";
reg = <0x2009800 0x400>;
};
phy@5510000 {
clock-names = "bus\0mod";
resets = <0x01 0x32>;
clocks = <0x01 0x6d 0x01 0x6a>;
#phy-cells = <0x00>;
compatible = "allwinner,sun20i-d1-hdmi-phy";
status = "okay";
reg = <0x5510000 0x10000>;
phandle = <0x38>;
reset-names = "phy";
};
i2c@2502400 {
#address-cells = <0x01>;
resets = <0x01 0x19>;
interrupts = <0x1a 0x04>;
clocks = <0x01 0x45>;
#size-cells = <0x00>;
dma-names = "rx\0tx";
compatible = "allwinner,sun20i-d1-i2c\0allwinner,sun8i-v536-i2c\0allwinner,sun6i-a31-i2c";
status = "disabled";
reg = <0x2502400 0x400>;
dmas = <0x0d 0x2c 0x0d 0x2c>;
};
i2s@2033000 {
clock-names = "apb\0mod";
resets = <0x01 0x23>;
interrupts = <0x2b 0x04>;
clocks = <0x01 0x57 0x01 0x53>;
dma-names = "rx\0tx";
#sound-dai-cells = <0x00>;
compatible = "allwinner,sun20i-d1-i2s\0allwinner,sun50i-r329-i2s";
status = "disabled";
reg = <0x2033000 0x1000>;
dmas = <0x0d 0x04 0x0d 0x04>;
};
lcd-controller@5461000 {
clock-output-names = "tcon-pixel-clock";
phy-names = "lvds0";
clock-names = "ahb\0tcon-ch0";
resets = <0x01 0x34 0x01 0x36>;
interrupts = <0x6a 0x04>;
clocks = <0x01 0x71 0x01 0x70>;
#clock-cells = <0x00>;
compatible = "allwinner,sun20i-d1-tcon-lcd";
phys = <0x28>;
reg = <0x5461000 0x1000>;
reset-names = "lcd\0lvds";
ports {
#address-cells = <0x01>;
#size-cells = <0x00>;
port@0 {
#address-cells = <0x01>;
#size-cells = <0x00>;
reg = <0x00>;
endpoint@1 {
remote-endpoint = <0x33>;
reg = <0x01>;
phandle = <0x2e>;
};
endpoint@0 {
remote-endpoint = <0x32>;
reg = <0x00>;
phandle = <0x2b>;
};
};
port@1 {
#address-cells = <0x01>;
#size-cells = <0x00>;
reg = <0x01>;
endpoint@1 {
remote-endpoint = <0x34>;
reg = <0x01>;
phandle = <0x29>;
};
};
};
};
mixer@5200000 {
iommus = <0x24 0x02>;
clock-names = "bus\0mod";
resets = <0x23 0x01>;
clocks = <0x23 0x01 0x23 0x07>;
compatible = "allwinner,sun20i-d1-de2-mixer-1";
reg = <0x5200000 0x100000>;
phandle = <0x04>;
ports {
#address-cells = <0x01>;
#size-cells = <0x00>;
port@1 {
reg = <0x01>;
endpoint {
remote-endpoint = <0x26>;
phandle = <0x2d>;
};
};
};
};
audio-codec@2030000 {
#address-cells = <0x01>;
clock-names = "bus\0adc\0dac\0hosc\0losc";
resets = <0x01 0x27>;
interrupts = <0x29 0x04>;
clocks = <0x01 0x60 0x01 0x5f 0x01 0x5e 0x09 0x0a 0x00>;
#size-cells = <0x01>;
avcc-supply = <0x0f>;
dma-names = "rx\0tx";
#sound-dai-cells = <0x00>;
compatible = "allwinner,sun20i-d1-codec\0simple-mfd\0syscon";
reg = <0x2030000 0x1000>;
dmas = <0x0d 0x07 0x0d 0x07>;
hpvcc-supply = <0x10>;
regulators@2030348 {
nvmem-cells = <0x11>;
compatible = "allwinner,sun20i-d1-analog-ldos";
nvmem-cell-names = "bg_trim";
reg = <0x2030348 0x04>;
hpldo {
regulator-max-microvolt = <0x1b7740>;
regulator-min-microvolt = <0x1b7740>;
phandle = <0x10>;
hpldoin-supply = <0x0b>;
};
aldo {
regulator-max-microvolt = <0x1b7740>;
regulator-min-microvolt = <0x1b7740>;
phandle = <0x0f>;
vdd33-supply = <0x0b>;
};
};
};
serial@2500800 {
reg-io-width = <0x04>;
pinctrl-names = "default";
pinctrl-0 = <0x16>;
resets = <0x01 0x14>;
interrupts = <0x14 0x04>;
clocks = <0x01 0x40>;
dma-names = "rx\0tx";
compatible = "snps,dw-apb-uart";
status = "okay";
reg = <0x2500800 0x400>;
dmas = <0x0d 0x10 0x0d 0x10>;
reg-shift = <0x02>;
};
spdif@2036000 {
clock-names = "apb\0rx\0tx";
resets = <0x01 0x25>;
interrupts = <0x27 0x04>;
clocks = <0x01 0x5b 0x01 0x5a 0x01 0x59>;
dma-names = "rx\0tx";
#sound-dai-cells = <0x00>;
compatible = "allwinner,sun20i-d1-spdif";
status = "disabled";
reg = <0x2036000 0x400>;
dmas = <0x0d 0x02 0x0d 0x02>;
};
led-controller@2008000 {
#address-cells = <0x01>;
clock-names = "bus\0mod";
resets = <0x01 0x3b>;
interrupts = <0x24 0x04>;
clocks = <0x01 0x7b 0x01 0x7a>;
#size-cells = <0x00>;
dma-names = "tx";
compatible = "allwinner,sun20i-d1-ledc\0allwinner,sun50i-a100-ledc";
status = "disabled";
reg = <0x2008000 0x400>;
dmas = <0x0d 0x2a>;
};
i2c@2502c00 {
pinctrl-names = "default";
#address-cells = <0x01>;
pinctrl-0 = <0x1b>;
resets = <0x01 0x1b>;
interrupts = <0x1c 0x04>;
clocks = <0x01 0x47>;
#size-cells = <0x00>;
dma-names = "rx\0tx";
compatible = "allwinner,sun20i-d1-i2c\0allwinner,sun8i-v536-i2c\0allwinner,sun6i-a31-i2c";
status = "okay";
reg = <0x2502c00 0x400>;
dmas = <0x0d 0x2e 0x0d 0x2e>;
};
};
leds {
compatible = "gpio-leds";
led-0 {
function = "status";
color = <0x03>;
gpios = <0x15 0x03 0x12 0x00>;
};
};
dvdd {
regulator-max-microvolt = <0x124f80>;
regulator-min-microvolt = <0x124f80>;
regulator-name = "dvdd";
compatible = "regulator-fixed";
vin-supply = <0x0b>;
};
aliases {
ethernet0 = "/soc/mmc@4021000/wifi@1";
serial3 = "/soc/serial@2501000";
serial1 = "/soc/serial@2500800";
serial4 = "/soc/serial@2501400";
mmc0 = "/soc/mmc@4020000";
serial2 = "/soc/serial@2500c00";
serial0 = "/soc/serial@2500000";
};
display-engine {
allwinner,pipelines = <0x03 0x04>;
compatible = "allwinner,sun20i-d1-display-engine";
status = "okay";
};
chosen {
linux,uefi-mmap-size = <0x690>;
u-boot,version = "2024.01-rc1";
bootargs = "BOOT_IMAGE=/boot/vmlinuz-6.8.0-31-generic root=LABEL=cloudimg-rootfs ro efi=debug earlycon";
boot-hartid = <0x00>;
linux,uefi-mmap-start = <0x00 0x7a3c9068>;
linux,uefi-mmap-desc-size = <0x28>;
linux,uefi-mmap-desc-ver = <0x01>;
linux,uefi-secure-boot = <0x02>;
linux,uefi-system-table = <0x00 0x7ff59d38>;
stdout-path = "serial0:115200n8";
};
vcc-3v3 {
regulator-max-microvolt = <0x325aa0>;
regulator-min-microvolt = <0x325aa0>;
regulator-name = "vcc-3v3";
compatible = "regulator-fixed";
phandle = <0x0b>;
vin-supply = <0x21>;
};
vcc {
regulator-max-microvolt = <0x4c4b40>;
regulator-min-microvolt = <0x4c4b40>;
regulator-name = "vcc";
compatible = "regulator-fixed";
phandle = <0x21>;
};
osc24M-clk {
clock-output-names = "osc24M";
#clock-cells = <0x00>;
clock-frequency = <0x16e3600>;
compatible = "fixed-clock";
phandle = <0x09>;
};
cpus {
#address-cells = <0x01>;
#size-cells = <0x00>;
timebase-frequency = <0x16e3600>;
cpu@0 {
cpu-supply = <0x02>;
clocks = <0x01 0x84>;
d-cache-block-size = <0x40>;
clock-frequency = <0x16e3600>;
device_type = "cpu";
compatible = "thead,c906\0riscv";
mmu-type = "riscv,sv39";
d-cache-size = <0x8000>;
i-cache-size = <0x8000>;
reg = <0x00>;
phandle = <0x07>;
d-cache-sets = <0x100>;
i-cache-block-size = <0x40>;
i-cache-sets = <0x80>;
riscv,isa = "rv64imafdc";
#cooling-cells = <0x02>;
interrupt-controller {
#address-cells = <0x00>;
compatible = "riscv,cpu-intc";
#interrupt-cells = <0x01>;
phandle = <0x3d>;
interrupt-controller;
};
};
};
reserved-memory {
#address-cells = <0x01>;
#size-cells = <0x01>;
ranges;
mmode_resv0@40040000 {
reg = <0x40040000 0x20000>;
phandle = <0x40>;
no-map;
};
mmode_resv1@40000000 {
reg = <0x40000000 0x40000>;
phandle = <0x3f>;
no-map;
};
};
};