/dts-v1/;
/ {
#address-cells = <0x1>;
#size-cells = <0x1>;
compatible = "othernet,a13-dreamcatcher", "allwinner,sun5i-a13";
interrupt-parent = <0x1>;
model = "Othernet A13-Dreamcatcher";
__symbols__ {
spi0_cs0_pins_a = "/soc@01c00000/pinctrl@01c20800/spi0-cs0@0";
spi0_pins_a = "/soc@01c00000/pinctrl@01c20800/spi0@0";
spi1_cs0_pins_a = "/soc@01c00000/pinctrl@01c20800/spi1-cs0@0";
spi1_pins_a = "/soc@01c00000/pinctrl@01c20800/spi1@0";
spi2_cs0_pins_a = "/soc@01c00000/pinctrl@01c20800/spi2-cs0@0";
spi2_pins_a = "/soc@01c00000/pinctrl@01c20800/spi2@0";
};
ahci-5v {
compatible = "regulator-fixed";
enable-active-high;
gpio = <0x1e 0x1 0x8 0x0>;
pinctrl-0 = <0x3c>;
pinctrl-names = "default";
regulator-boot-on;
regulator-max-microvolt = <0x4c4b40>;
regulator-min-microvolt = <0x4c4b40>;
regulator-name = "ahci-5v";
status = "disabled";
};
aliases {
serial0 = "/soc@01c00000/serial@01c28400";
};
backlight: backlight {
compatible = "gpio-backlight";
gpios = <0x1e 0x3 0x17 0x0>;
};
bridge {
#address-cells = <0x1>;
#size-cells = <0x0>;
compatible = "dumb-vga-dac";
ports {
#address-cells = <0x1>;
#size-cells = <0x0>;
port@1 {
reg = <0x1>;
endpoint {
linux,phandle = <0x42>;
phandle = <0x42>;
remote-endpoint = <0x41>;
};
};
};
};
chosen {
#address-cells = <0x1>;
#size-cells = <0x1>;
ranges;
stdout-path = "serial0:115200n8";
framebuffer@0 {
allwinner,pipeline = "de_be0-lcd0";
clocks = <0x2 0x24 0x2 0x2c 0x3 0x4 0x5 0x1a>;
compatible = "allwinner,simple-framebuffer", "simple-framebuffer";
// status = "disabled";
};
};
clocks {
#address-cells = <0x1>;
#size-cells = <0x1>;
ranges;
ahb@01c20054 {
#clock-cells = <0x0>;
assigned-clock-parents = <0xf 0x1>;
assigned-clocks = <0x10>;
clock-output-names = "ahb";
clocks = <0xe 0x6 0xf 0x1>;
compatible = "allwinner,sun5i-a13-ahb-clk";
linux,phandle = <0x10>;
phandle = <0x10>;
reg = <0x1c20054 0x4>;
};
apb0@01c20054 {
#clock-cells = <0x0>;
clock-output-names = "apb0";
clocks = <0x10>;
compatible = "allwinner,sun4i-a10-apb0-clk";
linux,phandle = <0x13>;
phandle = <0x13>;
reg = <0x1c20054 0x4>;
};
axi@01c20054 {
#clock-cells = <0x0>;
clock-output-names = "axi";
clocks = <0x6>;
compatible = "allwinner,sun4i-a10-axi-clk";
linux,phandle = <0xe>;
phandle = <0xe>;
reg = <0x1c20054 0x4>;
};
clk@0 {
#clock-cells = <0x0>;
clock-frequency = <0x8000>;
clock-output-names = "osc32k";
compatible = "fixed-clock";
linux,phandle = <0xb>;
phandle = <0xb>;
};
clk@01c20000 {
#clock-cells = <0x0>;
clock-output-names = "pll1";
clocks = <0x7>;
compatible = "allwinner,sun4i-a10-pll1-clk";
linux,phandle = <0xc>;
phandle = <0xc>;
reg = <0x1c20000 0x4>;
};
clk@01c20008 {
#clock-cells = <0x1>;
clock-output-names = "pll2-1x", "pll2-2x", "pll2-4x", "pll2-8x";
clocks = <0x7>;
compatible = "allwinner,sun5i-a13-pll2-clk";
linux,phandle = <0x12>;
phandle = <0x12>;
reg = <0x1c20008 0x8>;
};
clk@01c20010 {
#clock-cells = <0x0>;
clock-output-names = "pll3";
clocks = <0x8>;
compatible = "allwinner,sun4i-a10-pll3-clk";
linux,phandle = <0x9>;
phandle = <0x9>;
reg = <0x1c20010 0x4>;
};
clk@01c20018 {
#clock-cells = <0x0>;
clock-output-names = "pll4";
clocks = <0x7>;
compatible = "allwinner,sun4i-a10-pll1-clk";
reg = <0x1c20018 0x4>;
};
clk@01c20020 {
#clock-cells = <0x1>;
clock-output-names = "pll5_ddr", "pll5_other";
clocks = <0x7>;
compatible = "allwinner,sun4i-a10-pll5-clk";
linux,phandle = <0x11>;
phandle = <0x11>;
reg = <0x1c20020 0x4>;
};
clk@01c20028 {
#clock-cells = <0x1>;
clock-output-names = "pll6_sata", "pll6_other", "pll6";
clocks = <0x7>;
compatible = "allwinner,sun4i-a10-pll6-clk";
linux,phandle = <0xf>;
phandle = <0xf>;
reg = <0x1c20028 0x4>;
};
clk@01c20030 {
#clock-cells = <0x0>;
clock-output-names = "pll7";
clocks = <0x8>;
compatible = "allwinner,sun4i-a10-pll3-clk";
linux,phandle = <0xa>;
phandle = <0xa>;
reg = <0x1c20030 0x4>;
};
clk@01c20050 {
#clock-cells = <0x0>;
clock-frequency = <0x16e3600>;
clock-output-names = "osc24M";
compatible = "allwinner,sun4i-a10-osc-clk";
linux,phandle = <0x7>;
phandle = <0x7>;
reg = <0x1c20050 0x4>;
};
clk@01c20058 {
#clock-cells = <0x0>;
clock-output-names = "apb1";
clocks = <0x7 0xf 0x1 0xb>;
compatible = "allwinner,sun4i-a10-apb1-clk";
linux,phandle = <0x14>;
phandle = <0x14>;
reg = <0x1c20058 0x4>;
};
clk@01c2005c {
#clock-cells = <0x1>;
clock-indices = <0x0>;
clock-output-names = "axi_dram";
clocks = <0xe>;
compatible = "allwinner,sun4i-a10-axi-gates-clk";
reg = <0x1c2005c 0x4>;
};
clk@01c20060 {
#clock-cells = <0x1>;
clock-indices = <0x0 0x1 0x2 0x5 0x6 0x7 0x8 0x9 0xa 0xd 0xe 0x14 0x15 0x16 0x1c 0x20 0x22 0x24 0x28 0x2c 0x2e 0x33 0x34>;
clock-output-names = "ahb_usbotg", "ahb_ehci", "ahb_ohci", "ahb_ss", "ahb_dma", "ahb_bist", "ahb_mmc0", "ahb_mmc1", "ahb_mmc2", "ahb_nand", "ahb_sdram", "ahb_spi0", "ahb_spi1", "ahb_spi2", "ahb_stimer", "ahb_ve", "ahb_tve", "ahb_lcd", "ahb_csi", "ahb_de_be", "ahb_de_fe", "ahb_iep", "ahb_mali400";
clocks = <0x10>;
compatible = "allwinner,sun5i-a13-ahb-gates-clk";
linux,phandle = <0x2>;
phandle = <0x2>;
reg = <0x1c20060 0x8>;
};
clk@01c20068 {
#clock-cells = <0x1>;
clock-indices = <0x0 0x5 0x6>;
clock-output-names = "apb0_codec", "apb0_pio", "apb0_ir";
clocks = <0x13>;
compatible = "allwinner,sun5i-a13-apb0-gates-clk";
linux,phandle = <0x2b>;
phandle = <0x2b>;
reg = <0x1c20068 0x4>;
};
clk@01c2006c {
#clock-cells = <0x1>;
clock-indices = <0x0 0x1 0x2 0x11 0x13>;
clock-output-names = "apb1_i2c0", "apb1_i2c1", "apb1_i2c2", "apb1_uart1", "apb1_uart3";
clocks = <0x14>;
compatible = "allwinner,sun5i-a13-apb1-gates-clk";
linux,phandle = <0x2d>;
phandle = <0x2d>;
reg = <0x1c2006c 0x4>;
};
clk@01c20080 {
#clock-cells = <0x0>;
clock-output-names = "nand";
clocks = <0x7 0xf 0x1 0x11 0x1>;
compatible = "allwinner,sun4i-a10-mod0-clk";
reg = <0x1c20080 0x4>;
};
clk@01c20084 {
#clock-cells = <0x0>;
clock-output-names = "ms";
clocks = <0x7 0xf 0x1 0x11 0x1>;
compatible = "allwinner,sun4i-a10-mod0-clk";
reg = <0x1c20084 0x4>;
};
clk@01c20088 {
#clock-cells = <0x1>;
clock-output-names = "mmc0", "mmc0_output", "mmc0_sample";
clocks = <0x7 0xf 0x1 0x11 0x1>;
compatible = "allwinner,sun4i-a10-mmc-clk";
linux,phandle = <0x1a>;
phandle = <0x1a>;
reg = <0x1c20088 0x4>;
};
clk@01c2008c {
#clock-cells = <0x1>;
clock-output-names = "mmc1", "mmc1_output", "mmc1_sample";
clocks = <0x7 0xf 0x1 0x11 0x1>;
compatible = "allwinner,sun4i-a10-mmc-clk";
linux,phandle = <0x1f>;
phandle = <0x1f>;
reg = <0x1c2008c 0x4>;
};
clk@01c20090 {
#clock-cells = <0x1>;
clock-output-names = "mmc2", "mmc2_output", "mmc2_sample";
clocks = <0x7 0xf 0x1 0x11 0x1>;
compatible = "allwinner,sun4i-a10-mmc-clk";
linux,phandle = <0x20>;
phandle = <0x20>;
reg = <0x1c20090 0x4>;
};
clk@01c20098 {
#clock-cells = <0x0>;
clock-output-names = "ts";
clocks = <0x7 0xf 0x1 0x11 0x1>;
compatible = "allwinner,sun4i-a10-mod0-clk";
reg = <0x1c20098 0x4>;
};
clk@01c2009c {
#clock-cells = <0x0>;
clock-output-names = "ss";
clocks = <0x7 0xf 0x1 0x11 0x1>;
compatible = "allwinner,sun4i-a10-mod0-clk";
reg = <0x1c2009c 0x4>;
};
clk@01c200a0 {
#clock-cells = <0x0>;
clock-output-names = "spi0";
clocks = <0x7 0xf 0x1 0x11 0x1>;
compatible = "allwinner,sun4i-a10-mod0-clk";
linux,phandle = <0x17>;
phandle = <0x17>;
reg = <0x1c200a0 0x4>;
};
clk@01c200a4 {
#clock-cells = <0x0>;
clock-output-names = "spi1";
clocks = <0x7 0xf 0x1 0x11 0x1>;
compatible = "allwinner,sun4i-a10-mod0-clk";
linux,phandle = <0x19>;
phandle = <0x19>;
reg = <0x1c200a4 0x4>;
};
clk@01c200a8 {
#clock-cells = <0x0>;
clock-output-names = "spi2";
clocks = <0x7 0xf 0x1 0x11 0x1>;
compatible = "allwinner,sun4i-a10-mod0-clk";
linux,phandle = <0x2a>;
phandle = <0x2a>;
reg = <0x1c200a8 0x4>;
};
clk@01c200b0 {
#clock-cells = <0x0>;
clock-output-names = "ir0";
clocks = <0x7 0xf 0x1 0x11 0x1>;
compatible = "allwinner,sun4i-a10-mod0-clk";
reg = <0x1c200b0 0x4>;
};
clk@01c200cc {
#clock-cells = <0x1>;
#reset-cells = <0x1>;
clock-output-names = "usb_ohci0", "usb_phy";
clocks = <0xf 0x1>;
compatible = "allwinner,sun5i-a13-usb-clk";
linux,phandle = <0x25>;
phandle = <0x25>;
reg = <0x1c200cc 0x4>;
};
clk@01c20100 {
#clock-cells = <0x1>;
clock-indices = <0x0 0x1 0x19 0x1a 0x1d 0x1f>;
clock-output-names = "dram_ve", "dram_csi", "dram_de_fe", "dram_de_be", "dram_ace", "dram_iep";
clocks = <0x11 0x0>;
compatible = "allwinner,sun5i-a13-dram-gates-clk", "allwinner,sun4i-a10-gates-clk";
linux,phandle = <0x5>;
phandle = <0x5>;
reg = <0x1c20100 0x4>;
};
clk@01c20104 {
#clock-cells = <0x0>;
#reset-cells = <0x0>;
clock-output-names = "de-be";
clocks = <0x9 0xa 0x11 0x1>;
compatible = "allwinner,sun4i-a10-display-clk";
linux,phandle = <0x3>;
phandle = <0x3>;
reg = <0x1c20104 0x4>;
};
clk@01c2010c {
#clock-cells = <0x0>;
#reset-cells = <0x0>;
clock-output-names = "de-fe";
clocks = <0x9 0xa 0x11 0x1>;
compatible = "allwinner,sun4i-a10-display-clk";
linux,phandle = <0x34>;
phandle = <0x34>;
reg = <0x1c2010c 0x4>;
};
clk@01c20118 {
#clock-cells = <0x0>;
#reset-cells = <0x1>;
clock-output-names = "tcon-ch0-sclk";
clocks = <0x9 0xa 0x15 0x16>;
compatible = "allwinner,sun4i-a10-tcon-ch0-clk";
linux,phandle = <0x4>;
phandle = <0x4>;
reg = <0x1c20118 0x4>;
};
clk@01c2012c {
#clock-cells = <0x0>;
clock-output-names = "tcon-ch1-sclk";
clocks = <0x9 0xa 0x15 0x16>;
compatible = "allwinner,sun4i-a10-tcon-ch1-clk";
linux,phandle = <0x32>;
phandle = <0x32>;
reg = <0x1c2012c 0x4>;
};
clk@01c20140 {
#clock-cells = <0x0>;
clock-output-names = "codec";
clocks = <0x12 0x0>;
compatible = "allwinner,sun4i-a10-codec-clk";
linux,phandle = <0x2c>;
phandle = <0x2c>;
reg = <0x1c20140 0x4>;
};
clk@01c2015c {
#clock-cells = <0x0>;
clock-output-names = "mbus";
clocks = <0x7 0xf 0x1 0x11 0x1>;
compatible = "allwinner,sun5i-a13-mbus-clk";
reg = <0x1c2015c 0x4>;
};
cpu@01c20054 {
#clock-cells = <0x0>;
clock-output-names = "cpu";
clocks = <0xb 0x7 0xc 0xd>;
compatible = "allwinner,sun4i-a10-cpu-clk";
linux,phandle = <0x6>;
phandle = <0x6>;
reg = <0x1c20054 0x4>;
};
dummy {
#clock-cells = <0x0>;
clock-frequency = <0x0>;
compatible = "fixed-clock";
linux,phandle = <0xd>;
phandle = <0xd>;
};
osc3M_clk {
#clock-cells = <0x0>;
clock-div = <0x8>;
clock-mult = <0x1>;
clock-output-names = "osc3M";
clocks = <0x7>;
compatible = "fixed-factor-clock";
linux,phandle = <0x8>;
phandle = <0x8>;
};
pll3x2_clk {
#clock-cells = <0x0>;
clock-div = <0x1>;
clock-mult = <0x2>;
clock-output-names = "pll3-2x";
clocks = <0x9>;
compatible = "allwinner,sun4i-a10-pll3-2x-clk", "fixed-factor-clock";
linux,phandle = <0x15>;
phandle = <0x15>;
};
pll7x2_clk {
#clock-cells = <0x0>;
clock-div = <0x1>;
clock-mult = <0x2>;
clock-output-names = "pll7-2x";
clocks = <0xa>;
compatible = "fixed-factor-clock";
linux,phandle = <0x16>;
phandle = <0x16>;
};
};
cpus {
#address-cells = <0x1>;
#size-cells = <0x0>;
cpu@0 {
#cooling-cells = <0x2>;
clock-latency = <0x3b9b0>;
clocks = <0x6>;
compatible = "arm,cortex-a8";
cooling-max-level = <0x5>;
cooling-min-level = <0x0>;
device_type = "cpu";
linux,phandle = <0x3a>;
operating-points = <0x10d880 0x155cc0 0xf6180 0x155cc0 0x8b2900 0x149970 0xd2f00 0x13d620 0x98580 0x124f80 0x8ca00 0x124f80 0x69780 0x124f80>;
phandle = <0x3a>;
reg = <0x0>;
};
};
display-engine {
allwinner,pipelines = <&fe0>;
compatible = "allwinner,sun5i-a13-display-engine";
};
leds {
compatible = "gpio-leds";
pinctrl-0 = <0x40>;
pinctrl-names = "default";
heartbeat {
gpios = <0x1e 0x3 0xc 0x0>;
linux,default-trigger = "heartbeat";
};
storage {
gpios = <0x1e 0x3 0xd 0x0>;
linux,default-trigger = "mmc0";
};
};
memory {
device_type = "memory";
reg = <0x0 0x0>;
};
soc@01c00000 {
#address-cells = <0x1>;
#size-cells = <0x1>;
compatible = "simple-bus";
ranges;
codec@01c22c00 {
#sound-dai-cells = <0x0>;
clock-names = "apb", "codec";
clocks = <0x2b 0x0 0x2c>;
compatible = "allwinner,sun4i-a10-codec";
dma-names = "rx", "tx";
dmas = <0x18 0x0 0x13 0x18 0x0 0x13>;
interrupts = <0x1e>;
reg = <0x1c22c00 0x40>;
status = "okay";
};
be0: display-backend@01e60000 {
assigned-clock-rates = <0x11e1a300>;
assigned-clocks = <0x3>;
clock-names = "ahb", "mod", "ram";
clocks = <0x2 0x2c 0x3 0x5 0x1a>;
compatible = "allwinner,sun5i-a13-display-backend";
reg = <0x1e60000 0x10000>;
resets = <0x3>;
status = "okay";
ports {
#address-cells = <0x1>;
#size-cells = <0x0>;
be0_in: port@0 {
#address-cells = <0x1>;
#size-cells = <0x0>;
reg = <0x0>;
be0_in_fe0: endpoint@0 {
linux,phandle = <0x35>;
phandle = <0x35>;
reg = <0x0>;
remote-endpoint = <&fe0_out_be0>;
};
};
be0_out: port@1 {
#address-cells = <0x1>;
#size-cells = <0x0>;
reg = <0x1>;
be0_out_tcon0: endpoint@0 {
linux,phandle = <0x33>;
phandle = <0x33>;
reg = <0x0>;
remote-endpoint = <&tcon0_in_be0>;
};
};
};
};
fe0: display-frontend@01e00000 {
clock-names = "ahb", "mod", "ram";
clocks = <0x2 0x2e 0x34 0x5 0x19>;
compatible = "allwinner,sun5i-a13-display-frontend";
interrupts = <0x2f>;
linux,phandle = <0x3b>;
phandle = <0x3b>;
reg = <0x1e00000 0x20000>;
resets = <0x34>;
ports {
#address-cells = <0x1>;
#size-cells = <0x0>;
fe0_out: port@1 {
#address-cells = <0x1>;
#size-cells = <0x0>;
reg = <0x1>;
fe0_out_be0: endpoint@0 {
linux,phandle = <0x36>;
phandle = <0x36>;
reg = <0x0>;
remote-endpoint = <&be0_in_fe0>;
};
};
};
};
dma-controller@01c02000 {
#dma-cells = <0x2>;
clocks = <0x2 0x6>;
compatible = "allwinner,sun4i-a10-dma";
interrupts = <0x1b>;
linux,phandle = <0x18>;
phandle = <0x18>;
reg = <0x1c02000 0x1000>;
};
eeprom@01c23800 {
compatible = "allwinner,sun4i-a10-sid";
reg = <0x1c23800 0x10>;
};
i2c@01c2ac00 {
#address-cells = <0x1>;
#size-cells = <0x0>;
clocks = <0x2d 0x0>;
compatible = "allwinner,sun4i-a10-i2c";
interrupts = <0x7>;
pinctrl-0 = <0x2f>;
pinctrl-names = "default";
reg = <0x1c2ac00 0x400>;
status = "okay";
pmic@34 {
#interrupt-cells = <0x1>;
compatible = "x-powers,axp209";
interrupt-controller;
interrupts = <0x0>;
reg = <0x34>;
};
};
i2c@01c2b000 {
#address-cells = <0x1>;
#size-cells = <0x0>;
clocks = <0x2d 0x1>;
compatible = "allwinner,sun4i-a10-i2c";
interrupts = <0x8>;
pinctrl-0 = <0x30>;
pinctrl-names = "default";
reg = <0x1c2b000 0x400>;
status = "okay";
};
i2c@01c2b400 {
#address-cells = <0x1>;
#size-cells = <0x0>;
clocks = <0x2d 0x2>;
compatible = "allwinner,sun4i-a10-i2c";
interrupts = <0x9>;
pinctrl-0 = <0x31>;
pinctrl-names = "default";
reg = <0x1c2b400 0x400>;
status = "okay";
};
interrupt-controller@01c20400 {
#interrupt-cells = <0x1>;
compatible = "allwinner,sun4i-a10-ic";
interrupt-controller;
linux,phandle = <0x1>;
phandle = <0x1>;
reg = <0x1c20400 0x400>;
};
lcd-controller@01c0c000 {
clock-names = "ahb", "tcon-ch0", "tcon-ch1";
clock-output-names = "tcon-pixel-clock";
clocks = <0x2 0x24 0x4 0x32>;
compatible = "allwinner,sun5i-a13-tcon";
interrupts = <0x2c>;
reg = <0x1c0c000 0x1000>;
reset-names = "lcd";
resets = <0x4 0x1>;
ports {
#address-cells = <0x1>;
#size-cells = <0x0>;
tcon0_in: port@0 {
#address-cells = <0x1>;
#size-cells = <0x0>;
reg = <0x0>;
tcon0_in_be0: endpoint@0 {
linux,phandle = <0x37>;
phandle = <0x37>;
reg = <0x0>;
remote-endpoint = <0x33>;
};
};
tcon0_out: port@1 {
#address-cells = <0x1>;
#size-cells = <0x0>;
reg = <0x1>;
tcon0_out_panel: endpoint@0 {
reg = <0>;
remote-endpoint = <&panel_input>;
};
};
};
};
lradc@01c22800 {
compatible = "allwinner,sun4i-a10-lradc-keys";
interrupts = <0x1f>;
reg = <0x1c22800 0x100>;
status = "disabled";
};
mmc@01c0f000 {
#address-cells = <0x1>;
#size-cells = <0x0>;
bus-width = <0x4>;
cd-gpios = <0x1e 0x6 0x0 0x0>;
cd-inverted;
clock-names = "ahb", "mmc", "output", "sample";
clocks = <0x2 0x8 0x1a 0x0 0x1a 0x1 0x1a 0x2>;
compatible = "allwinner,sun5i-a13-mmc";
interrupts = <0x20>;
pinctrl-0 = <0x1b 0x1c>;
pinctrl-names = "default";
reg = <0x1c0f000 0x1000>;
status = "okay";
vmmc-supply = <0x1d>;
};
mmc@01c10000 {
#address-cells = <0x1>;
#size-cells = <0x0>;
clock-names = "ahb", "mmc", "output", "sample";
clocks = <0x2 0x9 0x1f 0x0 0x1f 0x1 0x1f 0x2>;
compatible = "allwinner,sun5i-a13-mmc";
interrupts = <0x21>;
reg = <0x1c10000 0x1000>;
status = "disabled";
};
mmc@01c11000 {
#address-cells = <0x1>;
#size-cells = <0x0>;
bus-width = <0x4>;
cd-gpios = <0x1e 0x2 0xc 0x0>;
cd-inverted;
clock-names = "ahb", "mmc", "output", "sample";
clocks = <0x2 0xa 0x20 0x0 0x20 0x1 0x20 0x2>;
compatible = "allwinner,sun5i-a13-mmc";
interrupts = <0x22>;
pinctrl-0 = <0x21 0x22>;
pinctrl-names = "default";
reg = <0x1c11000 0x1000>;
status = "okay";
vmmc-supply = <0x1d>;
mmccard@0 {
broken-hpi;
compatible = "mmc-card";
reg = <0x0>;
};
};
phy@01c13400 {
#phy-cells = <0x1>;
clock-names = "usb_phy";
clocks = <0x25 0x8>;
compatible = "allwinner,sun5i-a13-usb-phy";
linux,phandle = <0x23>;
phandle = <0x23>;
pinctrl-0 = <0x26 0x27>;
pinctrl-names = "default";
reg = <0x1c13400 0x10 0x1c14800 0x4>;
reg-names = "phy_ctrl", "pmu1";
reset-names = "usb0_reset", "usb1_reset";
resets = <0x25 0x0 0x25 0x1>;
status = "okay";
usb0_id_det-gpio = <0x1e 0x6 0x2 0x0>;
usb0_vbus-supply = <0x28>;
usb0_vbus_det-gpio = <0x1e 0x6 0x1 0x0>;
usb1_vbus-supply = <0x29>;
};
pinctrl@01c20800 {
#gpio-cells = <0x3>;
#interrupt-cells = <0x3>;
clock-names = "apb", "hosc", "losc";
clocks = <0x2b 0x5 0x7 0xb>;
compatible = "allwinner,sun5i-a13-pinctrl";
gpio-controller;
interrupt-controller;
interrupts = <0x1c>;
linux,phandle = <0x1e>;
phandle = <0x1e>;
reg = <0x1c20800 0x400>;
ahci_pwr_pin@0 {
allwinner,drive = <0x0>;
allwinner,function = "gpio_out";
allwinner,pins = "PB8";
allwinner,pull = <0x0>;
linux,phandle = <0x3c>;
phandle = <0x3c>;
};
i2c0@0 {
allwinner,drive = <0x0>;
allwinner,function = "i2c0";
allwinner,pins = "PB0", "PB1";
allwinner,pull = <0x0>;
linux,phandle = <0x2f>;
phandle = <0x2f>;
};
i2c1@0 {
allwinner,drive = <0x0>;
allwinner,function = "i2c1";
allwinner,pins = "PB15", "PB16";
allwinner,pull = <0x0>;
linux,phandle = <0x30>;
phandle = <0x30>;
};
i2c2@0 {
allwinner,drive = <0x0>;
allwinner,function = "i2c2";
allwinner,pins = "PB17", "PB18";
allwinner,pull = <0x0>;
linux,phandle = <0x31>;
phandle = <0x31>;
};
lcd_rgb565@0 {
allwinner,drive = <0x0>;
allwinner,function = "lcd0";
allwinner,pins = "PD3", "PD4", "PD5", "PD6", "PD7", "PD10", "PD11", "PD12", "PD13", "PD14", "PD15", "PD19", "PD20", "PD21", "PD22", "PD23", "PD24", "PD25", "PD26", "PD27";
allwinner,pull = <0x0>;
};
lcd_rgb666@0 {
allwinner,drive = <0x0>;
allwinner,function = "lcd0";
allwinner,pins = "PD2", "PD3", "PD4", "PD5", "PD6", "PD7", "PD10", "PD11", "PD12", "PD13", "PD14", "PD15", "PD18", "PD19", "PD20", "PD21", "PD22", "PD23", "PD24", "PD25", "PD26", "PD27";
allwinner,pull = <0x0>;
};
led_pins@0 {
allwinner,drive = <0x1>;
allwinner,function = "gpio_out";
allwinner,pins = "PD4", "PD5", "PD6", "PD7", "PD10", "PD11", "PD12", "PD13", "PD14", "PD21", "PD22";
allwinner,pull = <0x0>;
linux,phandle = <0x40>;
phandle = <0x40>;
};
mmc0@0 {
allwinner,drive = <0x2>;
allwinner,function = "mmc0";
allwinner,pins = "PF0", "PF1", "PF2", "PF3", "PF4", "PF5";
allwinner,pull = <0x0>;
linux,phandle = <0x1b>;
phandle = <0x1b>;
};
mmc0_cd_pin@0 {
allwinner,drive = <0x0>;
allwinner,function = "gpio_in";
allwinner,pins = "PG0";
allwinner,pull = <0x1>;
linux,phandle = <0x1c>;
phandle = <0x1c>;
};
mmc2@0 {
allwinner,drive = <0x2>;
allwinner,function = "mmc2";
allwinner,pins = "PC6", "PC7", "PC8", "PC9", "PC10", "PC11";
allwinner,pull = <0x0>;
linux,phandle = <0x21>;
phandle = <0x21>;
};
mmc2_cd_pin@0 {
allwinner,drive = <0x0>;
allwinner,function = "gpio_in";
allwinner,pins = "PC12";
allwinner,pull = <0x1>;
linux,phandle = <0x22>;
phandle = <0x22>;
};
backlight_pwm: pwm0 {
allwinner,drive = <0x0>;
allwinner,function = "pwm";
allwinner,pins = "PB2";
allwinner,pull = <0x0>;
};
spi0-cs0@0 {
allwinner,drive = <0x0>;
allwinner,function = "spi0";
allwinner,pins = "PC3";
allwinner,pull = <0x0>;
linux,phandle = <0x44>;
phandle = <0x44>;
};
spi0@0 {
allwinner,drive = <0x0>;
allwinner,function = "spi0";
allwinner,pins = "PC2", "PC0", "PC1";
allwinner,pull = <0x0>;
linux,phandle = <0x43>;
phandle = <0x43>;
};
spi1-cs0@0 {
allwinner,drive = <0x0>;
allwinner,function = "spi1";
allwinner,pins = "PG9";
allwinner,pull = <0x0>;
linux,phandle = <0x46>;
phandle = <0x46>;
};
spi1@0 {
allwinner,drive = <0x0>;
allwinner,function = "spi1";
allwinner,pins = "PG10", "PG11", "PG12";
allwinner,pull = <0x0>;
linux,phandle = <0x45>;
phandle = <0x45>;
};
spi2-cs0@0 {
allwinner,drive = <0x0>;
allwinner,function = "spi2";
allwinner,pins = "PE0";
allwinner,pull = <0x0>;
linux,phandle = <0x48>;
phandle = <0x48>;
};
spi2@0 {
allwinner,drive = <0x0>;
allwinner,function = "spi2";
allwinner,pins = "PE1", "PE2", "PE3";
allwinner,pull = <0x0>;
linux,phandle = <0x47>;
phandle = <0x47>;
};
uart1@0 {
allwinner,drive = <0x0>;
allwinner,function = "uart1";
allwinner,pins = "PE10", "PE11";
allwinner,pull = <0x0>;
};
uart1@1 {
allwinner,drive = <0x0>;
allwinner,function = "uart1";
allwinner,pins = "PG3", "PG4";
allwinner,pull = <0x0>;
linux,phandle = <0x2e>;
phandle = <0x2e>;
};
usb0_id_detect_pin@0 {
allwinner,drive = <0x0>;
allwinner,function = "gpio_in";
allwinner,pins = "PG2";
allwinner,pull = <0x1>;
linux,phandle = <0x26>;
phandle = <0x26>;
};
usb0_vbus_detect_pin@0 {
allwinner,drive = <0x0>;
allwinner,function = "gpio_in";
allwinner,pins = "PG1";
allwinner,pull = <0x2>;
linux,phandle = <0x27>;
phandle = <0x27>;
};
usb0_vbus_pin@0 {
allwinner,drive = <0x0>;
allwinner,function = "gpio_out";
allwinner,pins = "PD15";
allwinner,pull = <0x0>;
linux,phandle = <0x3d>;
phandle = <0x3d>;
};
usb1_vbus_pin@0 {
allwinner,drive = <0x0>;
allwinner,function = "gpio_out";
allwinner,pins = "PD26";
allwinner,pull = <0x0>;
linux,phandle = <0x3e>;
phandle = <0x3e>;
};
usb2_vbus_pin@0 {
allwinner,drive = <0x0>;
allwinner,function = "gpio_out";
allwinner,pins = "PH3";
allwinner,pull = <0x0>;
linux,phandle = <0x3f>;
phandle = <0x3f>;
};
};
pwm: pwm@01c20e00 {
#pwm-cells = <0x3>;
clocks = <0x7>;
compatible = "allwinner,sun5i-a13-pwm";
reg = <0x1c20e00 0xc>;
status = "disabled";
};
rtp@01c25000 {
#thermal-sensor-cells = <0x0>;
compatible = "allwinner,sun5i-a13-ts";
interrupts = <0x1d>;
linux,phandle = <0x38>;
phandle = <0x38>;
reg = <0x1c25000 0x100>;
};
serial@01c28400 {
clocks = <0x2d 0x11>;
compatible = "snps,dw-apb-uart";
interrupts = <0x2>;
pinctrl-0 = <0x2e>;
pinctrl-names = "default";
reg = <0x1c28400 0x400>;
reg-io-width = <0x4>;
reg-shift = <0x2>;
status = "okay";
};
serial@01c28c00 {
clocks = <0x2d 0x13>;
compatible = "snps,dw-apb-uart";
interrupts = <0x4>;
reg = <0x1c28c00 0x400>;
reg-io-width = <0x4>;
reg-shift = <0x2>;
status = "disabled";
};
spi0: spi@01c05000 {
#address-cells = <0x1>;
#size-cells = <0x0>;
clock-names = "ahb", "mod";
clocks = <0x2 0x14 0x17>;
compatible = "allwinner,sun4i-a10-spi";
dma-names = "rx", "tx";
dmas = <0x18 0x1 0x1b 0x18 0x1 0x1a>;
interrupts = <0xa>;
pinctrl-0 = <0x43 0x44>;
pinctrl-names = "default";
reg = <0x1c05000 0x1000>;
status = "okay";
touchscreen@0 {
compatible = "ti,ads7846";
reg = <0>;
spi-max-frequency = <2000000>;
pendown-gpio = <0x1e 0x1 0xd 0x0>;
ti,x-plate-ohms = /bits/ 16 <100>;
ti,pressure-max = /bits/ 16 <255>;
};
};
spi1: spi@01c06000 {
#address-cells = <0x1>;
#size-cells = <0x0>;
clock-names = "ahb", "mod";
clocks = <0x2 0x15 0x19>;
compatible = "allwinner,sun4i-a10-spi";
dma-names = "rx", "tx";
dmas = <0x18 0x1 0x9 0x18 0x1 0x8>;
interrupts = <0xb>;
pinctrl-0 = <0x45 0x46>;
pinctrl-names = "default";
reg = <0x1c06000 0x1000>;
status = "okay";
/*
// tinydrm mode
mi0283qt@0{
compatible = "mi,mi0283qt";
reg = <0>;
spi-max-frequency = <32000000>;
rotation = <180>;
bgr;
buswidth = <8>;
reset-gpios = <0x1e 0x3 0x15 0x0>;
dc-gpios = <0x1e 0x3 0x7 0x0>;
backlight = <&backlight>;
debug = <3>;
};
*/
// fbtft mode
ili9341@0{
compatible = "ilitek,ili9341";
reg = <0>;
spi-max-frequency = <32000000>;
rotate = <270>;
fps = <30>;
bgr;
buswidth = <8>;
backlight = <&backlight>;
// reset-gpios = <0x1e 0x1 0x2 0x0>; // testing because this driver returns gpio# on err
reset-gpios = <0x1e 0x3 0x15 0x1>;
dc-gpios = <0x1e 0x3 0x7 0x1>;
debug = <3>;
};
};
spi2: spi@01c17000 {
#address-cells = <0x1>;
#size-cells = <0x0>;
clock-names = "ahb", "mod";
clocks = <0x2 0x16 0x2a>;
compatible = "allwinner,sun4i-a10-spi";
dma-names = "rx", "tx";
dmas = <0x18 0x1 0x1d 0x18 0x1 0x1c>;
interrupts = <0xc>;
pinctrl-0 = <0x47 0x48>;
pinctrl-names = "default";
reg = <0x1c17000 0x1000>;
status = "okay";
spidev@0 {
compatible = "rohm,dh2228fv";
reg = <0x0>;
spi-max-frequency = <0x989680>;
};
};
sram-controller@01c00000 {
#address-cells = <0x1>;
#size-cells = <0x1>;
compatible = "allwinner,sun4i-a10-sram-controller";
ranges;
reg = <0x1c00000 0x30>;
sram@00000000 {
#address-cells = <0x1>;
#size-cells = <0x1>;
compatible = "mmio-sram";
ranges = <0x0 0x0 0xc000>;
reg = <0x0 0xc000>;
};
sram@00010000 {
#address-cells = <0x1>;
#size-cells = <0x1>;
compatible = "mmio-sram";
ranges = <0x0 0x10000 0x1000>;
reg = <0x10000 0x1000>;
sram-section@0000 {
compatible = "allwinner,sun4i-a10-sram-d";
linux,phandle = <0x24>;
phandle = <0x24>;
reg = <0x0 0x1000>;
status = "okay";
};
};
};
timer@01c20c00 {
clocks = <0x7>;
compatible = "allwinner,sun4i-a10-timer";
interrupts = <0x16>;
reg = <0x1c20c00 0x90>;
};
timer@01c60000 {
clocks = <0x2 0x1c>;
compatible = "allwinner,sun5i-a13-hstimer";
interrupts = <0x52 0x53>;
reg = <0x1c60000 0x1000>;
};
usb@01c13000 {
allwinner,sram = <0x24 0x1>;
clocks = <0x2 0x0>;
compatible = "allwinner,sun4i-a10-musb";
dr_mode = "otg";
extcon = <0x23 0x0>;
interrupt-names = "mc";
interrupts = <0x26>;
phy-names = "usb";
phys = <0x23 0x0>;
reg = <0x1c13000 0x400>;
status = "okay";
};
usb@01c14000 {
clocks = <0x2 0x1>;
compatible = "allwinner,sun5i-a13-ehci", "generic-ehci";
interrupts = <0x27>;
phy-names = "usb";
phys = <0x23 0x1>;
reg = <0x1c14000 0x100>;
status = "okay";
};
usb@01c14400 {
clocks = <0x25 0x6 0x2 0x2>;
compatible = "allwinner,sun5i-a13-ohci", "generic-ohci";
interrupts = <0x28>;
phy-names = "usb";
phys = <0x23 0x1>;
reg = <0x1c14400 0x100>;
status = "okay";
};
watchdog@01c20c90 {
compatible = "allwinner,sun4i-a10-wdt";
reg = <0x1c20c90 0x10>;
};
};
thermal-zones {
cpu_thermal {
polling-delay = <0x3e8>;
polling-delay-passive = <0xfa>;
thermal-sensors = <0x38>;
cooling-maps {
map0 {
cooling-device = <0x3a 0xffffffff 0xffffffff>;
trip = <0x39>;
};
};
trips {
cpu_alert0 {
hysteresis = <0x7d0>;
linux,phandle = <0x39>;
phandle = <0x39>;
temperature = <0x14c08>;
type = "passive";
};
cpu_crit {
hysteresis = <0x7d0>;
temperature = <0x186a0>;
type = "critical";
};
};
};
};
usb0-vbus {
compatible = "regulator-fixed";
enable-active-high;
gpio = <0x1e 0x3 0xf 0x0>;
linux,phandle = <0x28>;
phandle = <0x28>;
pinctrl-0 = <0x3d>;
pinctrl-names = "default";
regulator-max-microvolt = <0x4c4b40>;
regulator-min-microvolt = <0x4c4b40>;
regulator-name = "usb0-vbus";
status = "okay";
};
usb1-vbus {
compatible = "regulator-fixed";
enable-active-high;
gpio = <0x1e 0x3 0x1a 0x0>;
linux,phandle = <0x29>;
phandle = <0x29>;
pinctrl-0 = <0x3e>;
pinctrl-names = "default";
regulator-boot-on;
regulator-max-microvolt = <0x4c4b40>;
regulator-min-microvolt = <0x4c4b40>;
regulator-name = "usb1-vbus";
status = "okay";
};
usb2-vbus {
compatible = "regulator-fixed";
enable-active-high;
gpio = <0x1e 0x7 0x3 0x0>;
pinctrl-0 = <0x3f>;
pinctrl-names = "default";
regulator-boot-on;
regulator-max-microvolt = <0x4c4b40>;
regulator-min-microvolt = <0x4c4b40>;
regulator-name = "usb2-vbus";
status = "disabled";
};
vcc3v0 {
compatible = "regulator-fixed";
regulator-max-microvolt = <0x2dc6c0>;
regulator-min-microvolt = <0x2dc6c0>;
regulator-name = "vcc3v0";
};
vcc3v3 {
compatible = "regulator-fixed";
linux,phandle = <0x1d>;
phandle = <0x1d>;
regulator-max-microvolt = <0x325aa0>;
regulator-min-microvolt = <0x325aa0>;
regulator-name = "vcc3v3";
};
vcc5v0 {
compatible = "regulator-fixed";
regulator-max-microvolt = <0x4c4b40>;
regulator-min-microvolt = <0x4c4b40>;
regulator-name = "vcc5v0";
};
panel: panel {
compatible = "mi,mi0283qt";
port {
panel_input: endpoint {
linux,phandle = <0x41>;
phandle = <0x41>;
remote-endpoint = <&tcon0_out_panel>;
};
};
};
};
Comments