A20 and two ethernet interfaces GMAC EMAC?

330 views
Skip to first unread message

Николай Костенок

unread,
Nov 11, 2014, 4:22:19 AM11/11/14
to linux...@googlegroups.com
Is it possible to run 2 eth interfaces(GMAC EMAC) at the same time?
A have A20-SOM-EVB.
First i compile openwrt kernel, fs, u-boot and dts. GMAC works fine
GMAC pointed on port A.
EMAC can be pointed on port A or H.
On my board port H output to GPIO-3 jack. So i modified dtb file to map EMAC on port H, and enable it.
And i make little external board with PHY LAN8710 and connect it to GPIO-3.
Then i boot and make ifconfig up to both interfaces. They both see link, but no packets in/out, even pings.
I whatched by network sniffer Wireshark and see no packets from GMAC.
And see broken packets from EMAC. (cyclic 4 bytes packets).
Anyone can help me?
my dts:
/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>;
    };
*/
};
Введите код...


Reply all
Reply to author
Forward
0 new messages