Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 49220505 authored by Stefan Roese's avatar Stefan Roese Committed by David S. Miller
Browse files

net: Add EMAC ethernet driver found on Allwinner A10 SoC's



The Allwinner A10 has an ethernet controller that seem to be developped
internally by them.

The exact feature set of this controller is unknown, since there is no
public documentation for this IP, and this driver is mostly the one
published by Allwinner that has been heavily cleaned up.

Signed-off-by: default avatarStefan Roese <sr@denx.de>
Signed-off-by: default avatarMaxime Ripard <maxime.ripard@free-electrons.com>
Tested-by: default avatarRichard Genoud <richard.genoud@gmail.com>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent 2cc70ba4
Loading
Loading
Loading
Loading
+22 −0
Original line number Diff line number Diff line
* Allwinner EMAC ethernet controller

Required properties:
- compatible: should be "allwinner,sun4i-emac".
- reg: address and length of the register set for the device.
- interrupts: interrupt for the device
- phy: A phandle to a phy node defining the PHY address (as the reg
  property, a single integer).
- clocks: A phandle to the reference clock for this device

Optional properties:
- (local-)mac-address: mac address to be used by this driver

Example:

emac: ethernet@01c0b000 {
       compatible = "allwinner,sun4i-emac";
       reg = <0x01c0b000 0x1000>;
       interrupts = <55>;
       clocks = <&ahb_gates 17>;
       phy = <&phy0>;
};
+1 −0
Original line number Diff line number Diff line
@@ -20,6 +20,7 @@ config SUNGEM_PHY
source "drivers/net/ethernet/3com/Kconfig"
source "drivers/net/ethernet/adaptec/Kconfig"
source "drivers/net/ethernet/aeroflex/Kconfig"
source "drivers/net/ethernet/allwinner/Kconfig"
source "drivers/net/ethernet/alteon/Kconfig"
source "drivers/net/ethernet/amd/Kconfig"
source "drivers/net/ethernet/apple/Kconfig"
+1 −0
Original line number Diff line number Diff line
@@ -6,6 +6,7 @@ obj-$(CONFIG_NET_VENDOR_3COM) += 3com/
obj-$(CONFIG_NET_VENDOR_8390) += 8390/
obj-$(CONFIG_NET_VENDOR_ADAPTEC) += adaptec/
obj-$(CONFIG_GRETH) += aeroflex/
obj-$(CONFIG_NET_VENDOR_ALLWINNER) += allwinner/
obj-$(CONFIG_NET_VENDOR_ALTEON) += alteon/
obj-$(CONFIG_NET_VENDOR_AMD) += amd/
obj-$(CONFIG_NET_VENDOR_APPLE) += apple/
+36 −0
Original line number Diff line number Diff line
#
# Allwinner device configuration
#

config NET_VENDOR_ALLWINNER
       bool "Allwinner devices"
       default y
       depends on ARCH_SUNXI
       ---help---
         If you have a network (Ethernet) card belonging to this
	 class, say Y and read the Ethernet-HOWTO, available from
	 <http://www.tldp.org/docs.html#howto>.

	 Note that the answer to this question doesn't directly
	 affect the kernel: saying N will just cause the configurator
	 to skip all the questions about Allwinner cards. If you say Y,
	 you will be asked for your specific card in the following
	 questions.

if NET_VENDOR_ALLWINNER

config SUN4I_EMAC
        tristate "Allwinner A10 EMAC support"
	depends on ARCH_SUNXI
	depends on OF
	select CRC32
	select NET_CORE
	select MII
	select PHYLIB
        ---help---
          Support for Allwinner A10 EMAC ethernet driver.

          To compile this driver as a module, choose M here.  The module
          will be called sun4i-emac.

endif # NET_VENDOR_ALLWINNER
+5 −0
Original line number Diff line number Diff line
#
# Makefile for the Allwinner device drivers.
#

obj-$(CONFIG_SUN4I_EMAC) += sun4i-emac.o
Loading