/dts-v1/;
/ {
#address-cells = <0x1>;
#size-cells = <0x1>;
interrupt-parent = <0x1>;
model = "Lemaker bananaPi";
compatible = "lemaker,bananapi", "allwinner,sun7i-a20";
chosen {
};
aliases {
ethernet0 = "/soc@01c00000/ethernet@01c50000";
ethernet1 = "/soc@01c00000/ethernet@01c0b000";
serial0 = "/soc@01c00000/serial@01c28000";
serial1 = "/soc@01c00000/serial@01c28400";
serial2 = "/soc@01c00000/serial@01c28800";
serial3 = "/soc@01c00000/serial@01c28c00";
serial4 = "/soc@01c00000/serial@01c29000";
serial5 = "/soc@01c00000/serial@01c29400";
serial6 = "/soc@01c00000/serial@01c29800";
serial7 = "/soc@01c00000/serial@01c29c00";
spi0 = "/soc@01c00000/spi@01c06000";
spi1 = "/soc@01c00000/spi@01c17000";
};
memory {
device_type = "memory";
reg = <0x40000000 0x80000000>;
};
cpus {
#address-cells = <0x1>;
#size-cells = <0x0>;
cpu@0 {
compatible = "arm,cortex-a7";
device_type = "cpu";
reg = <0x0>;
};
cpu@1 {
compatible = "arm,cortex-a7";
device_type = "cpu";
reg = <0x1>;
};
};
timer {
compatible = "arm,armv7-timer";
interrupts = <0x1 0xd 0xf08 0x1 0xe 0xf08 0x1 0xb 0xf08 0x1 0xa 0xf08>;
};
pmu {
compatible = "arm,cortex-a7-pmu", "arm,cortex-a15-pmu";
interrupts = <0x0 0x78 0x4 0x0 0x79 0x4>;
};
clocks {
#address-cells = <0x1>;
#size-cells = <0x1>;
ranges;
clk@01c20050 {
#clock-cells = <0x0>;
compatible = "allwinner,sun4i-a10-osc-clk";
reg = <0x1c20050 0x4>;
clock-frequency = <0x16e3600>;
clock-output-names = "osc24M";
linux,phandle = <0x2>;
phandle = <0x2>;
};
clk@0 {
#clock-cells = <0x0>;
compatible = "fixed-clock";
clock-frequency = <0x8000>;
clock-output-names = "osc32k";
linux,phandle = <0x3>;
phandle = <0x3>;
};
clk@01c20000 {
#clock-cells = <0x0>;
compatible = "allwinner,sun4i-a10-pll1-clk";
reg = <0x1c20000 0x4>;
clocks = <0x2>;
clock-output-names = "pll1";
linux,phandle = <0x4>;
phandle = <0x4>;
};
clk@01c20018 {
#clock-cells = <0x0>;
compatible = "allwinner,sun4i-a10-pll1-clk";
reg = <0x1c20018 0x4>;
clocks = <0x2>;
clock-output-names = "pll4";
};
clk@01c20020 {
#clock-cells = <0x1>;
compatible = "allwinner,sun4i-a10-pll5-clk";
reg = <0x1c20020 0x4>;
clocks = <0x2>;
clock-output-names = "pll5_ddr", "pll5_other";
linux,phandle = <0xc>;
phandle = <0xc>;
};
clk@01c20028 {
#clock-cells = <0x1>;
compatible = "allwinner,sun4i-a10-pll6-clk";
reg = <0x1c20028 0x4>;
clocks = <0x2>;
clock-output-names = "pll6_sata", "pll6_other", "pll6";
linux,phandle = <0x5>;
phandle = <0x5>;
};
cpu@01c20054 {
#clock-cells = <0x0>;
compatible = "allwinner,sun4i-a10-cpu-clk";
reg = <0x1c20054 0x4>;
clocks = <0x3 0x2 0x4 0x5 0x1>;
clock-output-names = "cpu";
linux,phandle = <0x6>;
phandle = <0x6>;
};
axi@01c20054 {
#clock-cells = <0x0>;
compatible = "allwinner,sun4i-a10-axi-clk";
reg = <0x1c20054 0x4>;
clocks = <0x6>;
clock-output-names = "axi";
linux,phandle = <0x7>;
phandle = <0x7>;
};
ahb@01c20054 {
#clock-cells = <0x0>;
compatible = "allwinner,sun4i-a10-ahb-clk";
reg = <0x1c20054 0x4>;
clocks = <0x7>;
clock-output-names = "ahb";
linux,phandle = <0x8>;
phandle = <0x8>;
};
clk@01c20060 {
#clock-cells = <0x1>;
compatible = "allwinner,sun7i-a20-ahb-gates-clk";
reg = <0x1c20060 0x8>;
clocks = <0x8>;
clock-output-names = "ahb_usb0", "ahb_ehci0", "ahb_ohci0", "ahb_ehci1", "ahb_ohci1", "ahb_ss", "ahb_dma", "ahb_bist", "ahb_mmc0", "ahb_mmc1", "ahb_mmc2", "ahb_mmc3", "ahb_ms", "ahb_nand", "ahb_sdram", "ahb_ace", "ahb_emac", "ahb_ts", "ahb_spi0", "ahb_spi1", "ahb_spi2", "ahb_spi3", "ahb_sata", "ahb_hstimer", "ahb_ve", "ahb_tvd", "ahb_tve0", "ahb_tve1", "ahb_lcd0", "ahb_lcd1", "ahb_csi0", "ahb_csi1", "ahb_hdmi1", "ahb_hdmi0", "ahb_de_be0", "ahb_de_be1", "ahb_de_fe0", "ahb_de_fe1", "ahb_gmac", "ahb_mp", "ahb_mali";
linux,phandle = <0x10>;
phandle = <0x10>;
};
apb0@01c20054 {
#clock-cells = <0x0>;
compatible = "allwinner,sun4i-a10-apb0-clk";
reg = <0x1c20054 0x4>;
clocks = <0x8>;
clock-output-names = "apb0";
linux,phandle = <0x9>;
phandle = <0x9>;
};
clk@01c20068 {
#clock-cells = <0x1>;
compatible = "allwinner,sun7i-a20-apb0-gates-clk";
reg = <0x1c20068 0x4>;
clocks = <0x9>;
clock-output-names = "apb0_codec", "apb0_spdif", "apb0_ac97", "apb0_iis0", "apb0_iis1", "apb0_pio", "apb0_ir0", "apb0_ir1", "apb0_iis2", "apb0_keypad";
linux,phandle = <0x24>;
phandle = <0x24>;
};
apb1_mux@01c20058 {
#clock-cells = <0x0>;
compatible = "allwinner,sun4i-a10-apb1-mux-clk";
reg = <0x1c20058 0x4>;
clocks = <0x2 0x5 0x1 0x3>;
clock-output-names = "apb1_mux";
linux,phandle = <0xa>;
phandle = <0xa>;
};
apb1@01c20058 {
#clock-cells = <0x0>;
compatible = "allwinner,sun4i-a10-apb1-clk";
reg = <0x1c20058 0x4>;
clocks = <0xa>;
clock-output-names = "apb1";
linux,phandle = <0xb>;
phandle = <0xb>;
};
clk@01c2006c {
#clock-cells = <0x1>;
compatible = "allwinner,sun7i-a20-apb1-gates-clk";
reg = <0x1c2006c 0x4>;
clocks = <0xb>;
clock-output-names = "apb1_i2c0", "apb1_i2c1", "apb1_i2c2", "apb1_i2c3", "apb1_can", "apb1_scr", "apb1_ps20", "apb1_ps21", "apb1_i2c4", "apb1_uart0", "apb1_uart1", "apb1_uart2", "apb1_uart3", "apb1_uart4", "apb1_uart5", "apb1_uart6", "apb1_uart7";
linux,phandle = <0x28>;
phandle = <0x28>;
};
clk@01c20080 {
#clock-cells = <0x0>;
compatible = "allwinner,sun4i-a10-mod0-clk";
reg = <0x1c20080 0x4>;
clocks = <0x2 0x5 0x1 0xc 0x1>;
clock-output-names = "nand";
};
clk@01c20084 {
#clock-cells = <0x0>;
compatible = "allwinner,sun4i-a10-mod0-clk";
reg = <0x1c20084 0x4>;
clocks = <0x2 0x5 0x1 0xc 0x1>;
clock-output-names = "ms";
};
clk@01c20088 {
#clock-cells = <0x0>;
compatible = "allwinner,sun4i-a10-mod0-clk";
reg = <0x1c20088 0x4>;
clocks = <0x2 0x5 0x1 0xc 0x1>;
clock-output-names = "mmc0";
linux,phandle = <0x14>;
phandle = <0x14>;
};
clk@01c2008c {
#clock-cells = <0x0>;
compatible = "allwinner,sun4i-a10-mod0-clk";
reg = <0x1c2008c 0x4>;
clocks = <0x2 0x5 0x1 0xc 0x1>;
clock-output-names = "mmc1";
linux,phandle = <0x18>;
phandle = <0x18>;
};
clk@01c20090 {
#clock-cells = <0x0>;
compatible = "allwinner,sun4i-a10-mod0-clk";
reg = <0x1c20090 0x4>;
clocks = <0x2 0x5 0x1 0xc 0x1>;
clock-output-names = "mmc2";
linux,phandle = <0x19>;
phandle = <0x19>;
};
clk@01c20094 {
#clock-cells = <0x0>;
compatible = "allwinner,sun4i-a10-mod0-clk";
reg = <0x1c20094 0x4>;
clocks = <0x2 0x5 0x1 0xc 0x1>;
clock-output-names = "mmc3";
linux,phandle = <0x1a>;
phandle = <0x1a>;
};
clk@01c20098 {
#clock-cells = <0x0>;
compatible = "allwinner,sun4i-a10-mod0-clk";
reg = <0x1c20098 0x4>;
clocks = <0x2 0x5 0x1 0xc 0x1>;
clock-output-names = "ts";
};
clk@01c2009c {
#clock-cells = <0x0>;
compatible = "allwinner,sun4i-a10-mod0-clk";
reg = <0x1c2009c 0x4>;
clocks = <0x2 0x5 0x1 0xc 0x1>;
clock-output-names = "ss";
linux,phandle = <0x1f>;
phandle = <0x1f>;
};
clk@01c200a0 {
#clock-cells = <0x0>;
compatible = "allwinner,sun4i-a10-mod0-clk";
reg = <0x1c200a0 0x4>;
clocks = <0x2 0x5 0x1 0xc 0x1>;
clock-output-names = "spi0";
linux,phandle = <0x11>;
phandle = <0x11>;
};
clk@01c200a4 {
#clock-cells = <0x0>;
compatible = "allwinner,sun4i-a10-mod0-clk";
reg = <0x1c200a4 0x4>;
clocks = <0x2 0x5 0x1 0xc 0x1>;
clock-output-names = "spi1";
linux,phandle = <0x12>;
phandle = <0x12>;
};
clk@01c200a8 {
#clock-cells = <0x0>;
compatible = "allwinner,sun4i-a10-mod0-clk";
reg = <0x1c200a8 0x4>;
clocks = <0x2 0x5 0x1 0xc 0x1>;
clock-output-names = "spi2";
linux,phandle = <0x20>;
phandle = <0x20>;
};
clk@01c200ac {
#clock-cells = <0x0>;
compatible = "allwinner,sun4i-a10-mod0-clk";
reg = <0x1c200ac 0x4>;
clocks = <0x2 0x5 0x1 0xc 0x1>;
clock-output-names = "pata";
};
clk@01c200b0 {
#clock-cells = <0x0>;
compatible = "allwinner,sun4i-a10-mod0-clk";
reg = <0x1c200b0 0x4>;
clocks = <0x2 0x5 0x1 0xc 0x1>;
clock-output-names = "ir0";
linux,phandle = <0x25>;
phandle = <0x25>;
};
clk@01c200b4 {
#clock-cells = <0x0>;
compatible = "allwinner,sun4i-a10-mod0-clk";
reg = <0x1c200b4 0x4>;
clocks = <0x2 0x5 0x1 0xc 0x1>;
clock-output-names = "ir1";
linux,phandle = <0x27>;
phandle = <0x27>;
};
clk@01c200cc {
#clock-cells = <0x1>;
#reset-cells = <0x1>;
compatible = "allwinner,sun4i-a10-usb-clk";
reg = <0x1c200cc 0x4>;
clocks = <0x5 0x1>;
clock-output-names = "usb_ohci0", "usb_ohci1", "usb_phy";
linux,phandle = <0x1b>;
phandle = <0x1b>;
};
clk@01c200d4 {
#clock-cells = <0x0>;
compatible = "allwinner,sun4i-a10-mod0-clk";
reg = <0x1c200d4 0x4>;
clocks = <0x2 0x5 0x1 0xc 0x1>;
clock-output-names = "spi3";
linux,phandle = <0x23>;
phandle = <0x23>;
};
clk@01c2015c {
#clock-cells = <0x0>;
compatible = "allwinner,sun4i-a10-mod0-clk";
reg = <0x1c2015c 0x4>;
clocks = <0x2 0x5 0x2 0xc 0x1>;
clock-output-names = "mbus";
};
clk@2 {
#clock-cells = <0x0>;
compatible = "fixed-clock";
clock-frequency = <0x17d7840>;
clock-output-names = "mii_phy_tx";
linux,phandle = <0xd>;
phandle = <0xd>;
};
clk@3 {
#clock-cells = <0x0>;
compatible = "fixed-clock";
clock-frequency = <0x7735940>;
clock-output-names = "gmac_int_tx";
linux,phandle = <0xe>;
phandle = <0xe>;
};
clk@01c20164 {
#clock-cells = <0x0>;
compatible = "allwinner,sun7i-a20-gmac-clk";
reg = <0x1c20164 0x4>;
clocks = <0xd 0xe>;
clock-output-names = "gmac_tx";
linux,phandle = <0x30>;
phandle = <0x30>;
};
clk@1 {
#clock-cells = <0x0>;
compatible = "fixed-factor-clock";
clock-div = <0x2ee>;
clock-mult = <0x1>;
clocks = <0x2>;
clock-output-names = "osc24M_32k";
linux,phandle = <0xf>;
phandle = <0xf>;
};
clk@01c201f0 {
#clock-cells = <0x0>;
compatible = "allwinner,sun7i-a20-out-clk";
reg = <0x1c201f0 0x4>;
clocks = <0xf 0x3 0x2>;
clock-output-names = "clk_out_a";
};
clk@01c201f4 {
#clock-cells = <0x0>;
compatible = "allwinner,sun7i-a20-out-clk";
reg = <0x1c201f4 0x4>;
clocks = <0xf 0x3 0x2>;
clock-output-names = "clk_out_b";
};
};
soc@01c00000 {
compatible = "simple-bus";
#address-cells = <0x1>;
#size-cells = <0x1>;
ranges;
interrupt-controller@01c00030 {
compatible = "allwinner,sun7i-a20-sc-nmi";
interrupt-controller;
#interrupt-cells = <0x2>;
reg = <0x1c00030 0xc>;
interrupts = <0x0 0x0 0x4>;
linux,phandle = <0x2d>;
phandle = <0x2d>;
};
spi@01c05000 {
compatible = "allwinner,sun4i-a10-spi";
reg = <0x1c05000 0x1000>;
interrupts = <0x0 0xa 0x4>;
clocks = <0x10 0x14 0x11>;
clock-names = "ahb", "mod";
status = "disabled";
#address-cells = <0x1>;
#size-cells = <0x0>;
};
spi@01c06000 {
compatible = "allwinner,sun4i-a10-spi";
reg = <0x1c06000 0x1000>;
interrupts = <0x0 0xb 0x4>;
clocks = <0x10 0x15 0x12>;
clock-names = "ahb", "mod";
status = "okay";
#address-cells = <0x1>;
#size-cells = <0x0>;
pinctrl-names = "default";
pinctrl-0 = <0x13>;
};
ethernet@01c50000 {
compatible = "allwinner,sun7i-a20-gmac";
reg = <0x1c50000 0x10000>;
interrupts = <0x0 0x55 0x4>;
interrupt-names = "macirq";
clocks = <0x10 0x31 0x30>;
clock-names = "stmmaceth", "allwinner_gmac_tx";
snps,pbl = <0x2>;
snps,fixed-burst;
snps,force_sf_dma_mode;
status = "okay";
#address-cells = <0x1>;
#size-cells = <0x0>;
pinctrl-names = "default";
pinctrl-0 = <0x31>;
phy = <0x32>;
phy-mode = "rgmii";
//phy-supply = <0x33>;
ethernet-phy@1 {
reg = <0x1>;
linux,phandle = <0x32>;
phandle = <0x32>;
};
};
ethernet@01c0b000 {
compatible = "allwinner,sun4i-a10-emac";
reg = <0x1c0b000 0x1000>;
interrupts = <0x0 0x37 0x4>;
clocks = <0x10 0x11>;
status = "okay";
phy = <&emac_phy0>;
pinctrl-0 = <&emac_pins_h>;
pinctrl-names = "default";
phy-mode = "mii";
};
mdio@01c0b080 {
compatible = "allwinner,sun4i-a10-mdio";
reg = <0x1c0b080 0x14>;
#address-cells = <0x1>;
#size-cells = <0x0>;
status = "okay";
emac_phy0:ethernet-phy@3 {
reg = <0x0>;
};
};
mmc@01c0f000 {
compatible = "allwinner,sun5i-a13-mmc";
reg = <0x1c0f000 0x1000>;
clocks = <0x10 0x8 0x14>;
clock-names = "ahb", "mod";
interrupts = <0x0 0x20 0x4>;
bus-width = <0x4>;
cd-inverted;
status = "okay";
pinctrl-names = "default", "default";
pinctrl-0 = <0x15>;
//pinctrl-1 = <0x16>;
cd-gpios = <0x17 0x7 0xa 0x0>;
};
mmc@01c10000 {
compatible = "allwinner,sun5i-a13-mmc";
reg = <0x1c10000 0x1000>;
clocks = <0x10 0x9 0x18>;
clock-names = "ahb", "mod";
interrupts = <0x0 0x21 0x4>;
bus-width = <0x4>;
cd-inverted;
status = "disabled";
};
mmc@01c11000 {
compatible = "allwinner,sun5i-a13-mmc";
reg = <0x1c11000 0x1000>;
clocks = <0x10 0xa 0x19>;
clock-names = "ahb", "mod";
interrupts = <0x0 0x22 0x4>;
bus-width = <0x4>;
cd-inverted;
status = "disabled";
};
mmc@01c12000 {
compatible = "allwinner,sun5i-a13-mmc";
reg = <0x1c12000 0x1000>;
clocks = <0x10 0xb 0x1a>;
clock-names = "ahb", "mod";
interrupts = <0x0 0x23 0x4>;
bus-width = <0x4>;
cd-inverted;
status = "disabled";
};
phy@01c13400 {
#phy-cells = <0x1>;
compatible = "allwinner,sun7i-a20-usb-phy";
reg = <0x1c13400 0x10 0x1c14800 0x4 0x1c1c800 0x4>;
reg-names = "phy_ctrl", "pmu1", "pmu2";
clocks = <0x1b 0x8>;
clock-names = "usb_phy";
resets = <0x1b 0x1 0x1b 0x2>;
reset-names = "usb1_reset", "usb2_reset";
status = "okay";
usb1_vbus-supply = <0x1c>;
usb2_vbus-supply = <0x1d>;
linux,phandle = <0x1e>;
phandle = <0x1e>;
};
usb@01c14000 {
compatible = "allwinner,sun7i-a20-ehci", "generic-ehci";
reg = <0x1c14000 0x100>;
interrupts = <0x0 0x27 0x4>;
clocks = <0x10 0x1>;
phys = <0x1e 0x1>;
phy-names = "usb";
status = "okay";
};
usb@01c14400 {
compatible = "allwinner,sun7i-a20-ohci", "generic-ohci";
reg = <0x1c14400 0x100>;
interrupts = <0x0 0x40 0x4>;
clocks = <0x1b 0x6 0x10 0x2>;
phys = <0x1e 0x1>;
phy-names = "usb";
status = "okay";
};
crypto-engine@01c15000 {
compatible = "allwinner,sun7i-a20-crypto";
reg = <0x1c15000 0x1000>;
interrupts = <0x0 0x56 0x4>;
clocks = <0x10 0x5 0x1f>;
clock-names = "ahb", "mod";
};
spi@01c17000 {
compatible = "allwinner,sun4i-a10-spi";
reg = <0x1c17000 0x1000>;
interrupts = <0x0 0xc 0x4>;
clocks = <0x10 0x16 0x20>;
clock-names = "ahb", "mod";
status = "okay";
#address-cells = <0x1>;
#size-cells = <0x0>;
pinctrl-names = "default";
pinctrl-0 = <0x21>;
};
sata@01c18000 {
compatible = "allwinner,sun4i-a10-ahci";
reg = <0x1c18000 0x1000>;
interrupts = <0x0 0x38 0x4>;
clocks = <0x5 0x0 0x10 0x19>;
status = "okay";
target-supply = <0x22>;
};
usb@01c1c000 {
compatible = "allwinner,sun7i-a20-ehci", "generic-ehci";
reg = <0x1c1c000 0x100>;
interrupts = <0x0 0x28 0x4>;
clocks = <0x10 0x3>;
phys = <0x1e 0x2>;
phy-names = "usb";
status = "okay";
};
usb@01c1c400 {
compatible = "allwinner,sun7i-a20-ohci", "generic-ohci";
reg = <0x1c1c400 0x100>;
interrupts = <0x0 0x41 0x4>;
clocks = <0x1b 0x7 0x10 0x4>;
phys = <0x1e 0x2>;
phy-names = "usb";
status = "okay";
};
spi@01c1f000 {
compatible = "allwinner,sun4i-a10-spi";
reg = <0x1c1f000 0x1000>;
interrupts = <0x0 0x32 0x4>;
clocks = <0x10 0x17 0x23>;
clock-names = "ahb", "mod";
status = "disabled";
#address-cells = <0x1>;
#size-cells = <0x0>;
};
pinctrl@01c20800 {
compatible = "allwinner,sun7i-a20-pinctrl";
reg = <0x1c20800 0x400>;
interrupts = <0x0 0x1c 0x4>;
clocks = <0x24 0x5>;
gpio-controller;
interrupt-controller;
#interrupt-cells = <0x2>;
#size-cells = <0x0>;
#gpio-cells = <0x3>;
linux,phandle = <0x17>;
phandle = <0x17>;
pwm0@0 {
allwinner,pins = "PB2";
allwinner,function = "pwm";
allwinner,drive = <0x0>;
allwinner,pull = <0x0>;
};
pwm1@0 {
allwinner,pins = "PI3";
allwinner,function = "pwm";
allwinner,drive = <0x0>;
allwinner,pull = <0x0>;
};
uart0@0 {
allwinner,pins = "PB22", "PB23";
allwinner,function = "uart0";
allwinner,drive = <0x0>;
allwinner,pull = <0x0>;
linux,phandle = <0x29>;
phandle = <0x29>;
};
uart2@0 {
allwinner,pins = "PI16", "PI17", "PI18", "PI19";
allwinner,function = "uart2";
allwinner,drive = <0x0>;
allwinner,pull = <0x0>;
};
uart6@0 {
allwinner,pins = "PI12", "PI13";
allwinner,function = "uart6";
allwinner,drive = <0x0>;
allwinner,pull = <0x0>;
linux,phandle = <0x2a>;
phandle = <0x2a>;
};
uart7@0 {
allwinner,pins = "PI20", "PI21";
allwinner,function = "uart7";
allwinner,drive = <0x0>;
allwinner,pull = <0x0>;
linux,phandle = <0x2b>;
phandle = <0x2b>;
};
i2c0@0 {
allwinner,pins = "PB0", "PB1";
allwinner,function = "i2c0";
allwinner,drive = <0x0>;
allwinner,pull = <0x0>;
linux,phandle = <0x2c>;
phandle = <0x2c>;
};
i2c1@0 {
allwinner,pins = "PB18", "PB19";
allwinner,function = "i2c1";
allwinner,drive = <0x0>;
allwinner,pull = <0x0>;
linux,phandle = <0x2e>;
phandle = <0x2e>;
};
i2c2@0 {
allwinner,pins = "PB20", "PB21";
allwinner,function = "i2c2";
allwinner,drive = <0x0>;
allwinner,pull = <0x0>;
linux,phandle = <0x2f>;
phandle = <0x2f>;
};
emac_pins_a:emac0@0 {
allwinner,pins = "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PA8", "PA9", "PA10", "PA11", "PA12", "PA13", "PA14", "PA15", "PA16";
allwinner,function = "emac";
allwinner,drive = <0x0>;
allwinner,pull = <0x0>;
};
emac_pins_h:emac0@1 {
allwinner,pins = "PH8", "PH9", "PH10", "PH11", "PH14", "PH15", "PH16", "PH17", "PH18", "PH19", "PH20", "PH21", "PH22", "PH23", "PH24", "PH25", "PH26", "PH27";
allwinner,function = "emac";
allwinner,drive = <0x0>;
allwinner,pull = <0x0>;
};
clk_out_a@0 {
allwinner,pins = "PI12";
allwinner,function = "clk_out_a";
allwinner,drive = <0x0>;
allwinner,pull = <0x0>;
};
clk_out_b@0 {
allwinner,pins = "PI13";
allwinner,function = "clk_out_b";
allwinner,drive = <0x0>;
allwinner,pull = <0x0>;
};
gmac_mii@0 {
allwinner,pins = "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PA8", "PA9", "PA10", "PA11", "PA12", "PA13", "PA14", "PA15", "PA16";
allwinner,function = "gmac";
allwinner,drive = <0x0>;
allwinner,pull = <0x0>;
};
gmac_rgmii@0 {
allwinner,pins = "PA0", "PA1", "PA2", "PA3", "PA4", "PA5", "PA6", "PA7", "PA8", "PA10", "PA11", "PA12", "PA13", "PA15", "PA16";
allwinner,function = "gmac";
allwinner,drive = <0x3>;
allwinner,pull = <0x0>;
linux,phandle = <0x31>;
phandle = <0x31>;
};
spi1@0 {
allwinner,pins = "PI16", "PI17", "PI18", "PI19";
allwinner,function = "spi1";
allwinner,drive = <0x0>;
allwinner,pull = <0x0>;
linux,phandle = <0x13>;
phandle = <0x13>;
};
spi2@0 {
allwinner,pins = "PC19", "PC20", "PC21", "PC22";
allwinner,function = "spi2";
allwinner,drive = <0x0>;
allwinner,pull = <0x0>;
linux,phandle = <0x21>;
phandle = <0x21>;
};
mmc0@0 {
allwinner,pins = "PF0", "PF1", "PF2", "PF3", "PF4", "PF5";
allwinner,function = "mmc0";
allwinner,drive = <0x2>;
allwinner,pull = <0x0>;
linux,phandle = <0x15>;
phandle = <0x15>;
};
/*
mmc0_cd_pin@0 {
allwinner,pins = "PH10";
allwinner,function = "gpio_in";
allwinner,drive = <0x0>;
allwinner,pull = <0x1>;
linux,phandle = <0x16>;
phandle = <0x16>;
};
*/
mmc3@0 {
allwinner,pins = "PI4", "PI5", "PI6", "PI7", "PI8", "PI9";
allwinner,function = "mmc3";
allwinner,drive = <0x2>;
allwinner,pull = <0x0>;
};
ir0@0 {
allwinner,pins = "PB3", "PB4";
allwinner,function = "ir0";
allwinner,drive = <0x0>;
allwinner,pull = <0x0>;
linux,phandle = <0x26>;
phandle = <0x26>;
};
ir1@0 {
allwinner,pins = "PB22", "PB23";
allwinner,function = "ir1";
allwinner,drive = <0x0>;
allwinner,pull = <0x0>;
};
ahci_pwr_pin@0 {
allwinner,pins = "PB8";
allwinner,function = "gpio_out";
allwinner,drive = <0x0>;
allwinner,pull = <0x0>;
linux,phandle = <0x34>;
phandle = <0x34>;
};
usb1_vbus_pin@0 {
allwinner,pins = "PH6";
allwinner,function = "gpio_out";
allwinner,drive = <0x0>;
allwinner,pull = <0x0>;
linux,phandle = <0x35>;
phandle = <0x35>;
};
usb2_vbus_pin@0 {
allwinner,pins = "PH3";
allwinner,function = "gpio_out";
allwinner,drive = <0x0>;
allwinner,pull = <0x0>;
linux,phandle = <0x36>;
phandle = <0x36>;
};
/*
led_pins@0 {
allwinner,pins = "PH2";
allwinner,function = "gpio_out";
allwinner,drive = <0x1>;
allwinner,pull = <0x0>;
linux,phandle = <0x39>;
phandle = <0x39>;
};
*/
/*
gmac_power_pin@0 {
allwinner,pins = "PH23";
allwinner,function = "gpio_out";
allwinner,drive = <0x0>;
allwinner,pull = <0x0>;
linux,phandle = <0x38>;
phandle = <0x38>;
};
*/
};
timer@01c20c00 {
compatible = "allwinner,sun4i-timer";
reg = <0x1c20c00 0x90>;
interrupts = <0x0 0x16 0x4 0x0 0x17 0x4 0x0 0x18 0x4 0x0 0x19 0x4 0x0 0x43 0x4 0x0 0x44 0x4>;
clocks = <0x2>;
};
watchdog@01c20c90 {
compatible = "allwinner,sun4i-a10-wdt";
reg = <0x1c20c90 0x10>;
};
rtc@01c20d00 {
compatible = "allwinner,sun7i-a20-rtc";
reg = <0x1c20d00 0x20>;
interrupts = <0x0 0x18 0x4>;
};
ir@01c21800 {
compatible = "allwinner,sun7i-a20-ir";
clocks = <0x24 0x6 0x25>;
clock-names = "apb", "ir";
interrupts = <0x0 0x5 0x4>;
reg = <0x1c21800 0x40>;
status = "okay";
pinctrl-names = "default";
pinctrl-0 = <0x26>;
};
ir@01c21c00 {
compatible = "allwinner,sun7i-a20-ir";
clocks = <0x24 0x7 0x27>;
clock-names = "apb", "ir";
interrupts = <0x0 0x6 0x4>;
reg = <0x1c21c00 0x40>;
status = "disabled";
};
lradc@01c22800 {
compatible = "allwinner,sun4i-lradc-keys";
reg = <0x1c22800 0x100>;
interrupts = <0x0 0x1f 0x4>;
status = "okay";
allwinner,chan0-step = <0xc8>;
linux,chan0-keycodes = <0x73 0x72 0x8b 0xd9 0x66 0x1 0x1c>;
};
pwm@01c20e00 {
compatible = "allwinner,sun7i-a20-pwm";
reg = <0x1c20e00 0xc>;
clocks = <0x2>;
#pwm-cells = <0x3>;
status = "disabled";
};
eeprom@01c23800 {
compatible = "allwinner,sun7i-a20-sid";
reg = <0x1c23800 0x200>;
};
rtp@01c25000 {
compatible = "allwinner,sun4i-a10-ts";
reg = <0x1c25000 0x100>;
interrupts = <0x0 0x1d 0x4>;
};
serial@01c28000 {
compatible = "snps,dw-apb-uart";
reg = <0x1c28000 0x400>;
interrupts = <0x0 0x1 0x4>;
reg-shift = <0x2>;
reg-io-width = <0x4>;
clocks = <0x28 0x10>;
status = "okay";
pinctrl-names = "default";
pinctrl-0 = <0x29>;
};
serial@01c28400 {
compatible = "snps,dw-apb-uart";
reg = <0x1c28400 0x400>;
interrupts = <0x0 0x2 0x4>;
reg-shift = <0x2>;
reg-io-width = <0x4>;
clocks = <0x28 0x11>;
status = "disabled";
};
serial@01c28800 {
compatible = "snps,dw-apb-uart";
reg = <0x1c28800 0x400>;
interrupts = <0x0 0x3 0x4>;
reg-shift = <0x2>;
reg-io-width = <0x4>;
clocks = <0x28 0x12>;
status = "disabled";
};
serial@01c28c00 {
compatible = "snps,dw-apb-uart";
reg = <0x1c28c00 0x400>;
interrupts = <0x0 0x4 0x4>;
reg-shift = <0x2>;
reg-io-width = <0x4>;
clocks = <0x28 0x13>;
status = "disabled";
};
serial@01c29000 {
compatible = "snps,dw-apb-uart";
reg = <0x1c29000 0x400>;
interrupts = <0x0 0x11 0x4>;
reg-shift = <0x2>;
reg-io-width = <0x4>;
clocks = <0x28 0x14>;
status = "disabled";
};
serial@01c29400 {
compatible = "snps,dw-apb-uart";
reg = <0x1c29400 0x400>;
interrupts = <0x0 0x12 0x4>;
reg-shift = <0x2>;
reg-io-width = <0x4>;
clocks = <0x28 0x15>;
status = "disabled";
};
serial@01c29800 {
compatible = "snps,dw-apb-uart";
reg = <0x1c29800 0x400>;
interrupts = <0x0 0x13 0x4>;
reg-shift = <0x2>;
reg-io-width = <0x4>;
clocks = <0x28 0x16>;
status = "okay";
pinctrl-names = "default";
pinctrl-0 = <0x2a>;
};
serial@01c29c00 {
compatible = "snps,dw-apb-uart";
reg = <0x1c29c00 0x400>;
interrupts = <0x0 0x14 0x4>;
reg-shift = <0x2>;
reg-io-width = <0x4>;
clocks = <0x28 0x17>;
status = "okay";
pinctrl-names = "default";
pinctrl-0 = <0x2b>;
};
i2c@01c2ac00 {
compatible = "allwinner,sun4i-i2c";
reg = <0x1c2ac00 0x400>;
interrupts = <0x0 0x7 0x4>;
clocks = <0x28 0x0>;
clock-frequency = <0x186a0>;
status = "okay";
#address-cells = <0x1>;
#size-cells = <0x0>;
pinctrl-names = "default";
pinctrl-0 = <0x2c>;
axp20x@34 {
reg = <0x34>;
interrupt-parent = <0x2d>;
interrupts = <0x0 0x8>;
axp,system-power-controller;
compatible = "x-powers,axp209";
interrupt-controller;
#interrupt-cells = <0x1>;
regulators {
dcdc-freq = [38 00];
dcdc2 {
regulator-min-microvolt = <0xaae60>;
regulator-max-microvolt = <0x22b6b8>;
dcdc-workmode = <0x0>;
regulator-always-on;
};
dcdc3 {
regulator-min-microvolt = <0xaae60>;
regulator-max-microvolt = <0x3567e0>;
dcdc-workmode = <0x0>;
regulator-always-on;
};
ldo1 {
regulator-min-microvolt = <0x13d620>;
regulator-max-microvolt = <0x13d620>;
};
ldo2 {
regulator-min-microvolt = <0x1b7740>;
regulator-max-microvolt = <0x325aa0>;
regulator-always-on;
};
ldo3 {
regulator-min-microvolt = <0xaae60>;
regulator-max-microvolt = <0x3567e0>;
};
ldo4 {
regulator-min-microvolt = <0x1312d0>;
regulator-max-microvolt = <0x325aa0>;
};
ldo5 {
regulator-min-microvolt = <0x1b7740>;
regulator-max-microvolt = <0x325aa0>;
};
};
};
};
i2c@01c2b000 {
compatible = "allwinner,sun4i-i2c";
reg = <0x1c2b000 0x400>;
interrupts = <0x0 0x8 0x4>;
clocks = <0x28 0x1>;
clock-frequency = <0x186a0>;
status = "okay";
#address-cells = <0x1>;
#size-cells = <0x0>;
pinctrl-names = "default";
pinctrl-0 = <0x2e>;
};
i2c@01c2b400 {
compatible = "allwinner,sun4i-i2c";
reg = <0x1c2b400 0x400>;
interrupts = <0x0 0x9 0x4>;
clocks = <0x28 0x2>;
clock-frequency = <0x186a0>;
status = "okay";
#address-cells = <0x1>;
#size-cells = <0x0>;
pinctrl-names = "default";
pinctrl-0 = <0x2f>;
};
i2c@01c2b800 {
compatible = "allwinner,sun4i-i2c";
reg = <0x1c2b800 0x400>;
interrupts = <0x0 0x58 0x4>;
clocks = <0x28 0x3>;
clock-frequency = <0x186a0>;
status = "disabled";
#address-cells = <0x1>;
#size-cells = <0x0>;
};
i2c@01c2bc00 {
compatible = "allwinner,sun4i-i2c";
reg = <0x1c2bc00 0x400>;
interrupts = <0x0 0x59 0x4>;
clocks = <0x28 0xf>;
clock-frequency = <0x186a0>;
status = "disabled";
#address-cells = <0x1>;
#size-cells = <0x0>;
};
hstimer@01c60000 {
compatible = "allwinner,sun7i-a20-hstimer";
reg = <0x1c60000 0x1000>;
interrupts = <0x0 0x51 0x4 0x0 0x52 0x4 0x0 0x53 0x4 0x0 0x54 0x4>;
clocks = <0x10 0x1c>;
};
interrupt-controller@01c81000 {
compatible = "arm,cortex-a7-gic", "arm,cortex-a15-gic";
reg = <0x1c81000 0x1000 0x1c82000 0x1000 0x1c84000 0x2000 0x1c86000 0x2000>;
interrupt-controller;
#interrupt-cells = <0x3>;
interrupts = <0x1 0x9 0xf04>;
linux,phandle = <0x1>;
phandle = <0x1>;
};
};
ahci-5v {
compatible = "regulator-fixed";
pinctrl-names = "default";
pinctrl-0 = <0x34>;
regulator-name = "ahci-5v";
regulator-min-microvolt = <0x4c4b40>;
regulator-max-microvolt = <0x4c4b40>;
enable-active-high;
gpio = <0x17 0x1 0x8 0x0>;
status = "okay";
linux,phandle = <0x22>;
phandle = <0x22>;
};
usb1-vbus {
compatible = "regulator-fixed";
pinctrl-names = "default";
pinctrl-0 = <0x35>;
regulator-name = "usb1-vbus";
regulator-min-microvolt = <0x4c4b40>;
regulator-max-microvolt = <0x4c4b40>;
enable-active-high;
gpio = <0x17 0x7 0x6 0x0>;
status = "okay";
linux,phandle = <0x1c>;
phandle = <0x1c>;
};
usb2-vbus {
compatible = "regulator-fixed";
pinctrl-names = "default";
pinctrl-0 = <0x36>;
regulator-name = "usb2-vbus";
regulator-min-microvolt = <0x4c4b40>;
regulator-max-microvolt = <0x4c4b40>;
enable-active-high;
gpio = <0x17 0x7 0x3 0x0>;
status = "okay";
linux,phandle = <0x1d>;
phandle = <0x1d>;
};
/*
leds {
compatible = "gpio-leds";
pinctrl-names = "default";
pinctrl-0 = <0x37>;
green {
label = "bananapi:green:usr";
gpios = <0x17 0x7 0x2 0x0>;
default-state = "on";
};
};
*/
/*
gmac-3v3 {
compatible = "regulator-fixed";
pinctrl-names = "default";
pinctrl-0 = <0x38>;
regulator-name = "gmac-3v3";
regulator-min-microvolt = <0x325aa0>;
regulator-max-microvolt = <0x325aa0>;
startup-delay-us = <0xc350>;
enable-active-high;
gpio = <0x17 0x7 0x17 0x0>;
status = "okay";
linux,phandle = <0x33>;
phandle = <0x33>;
};
*/
};
Введите код...