mirror of
https://github.com/Fishwaldo/linux-bl808.git
synced 2025-06-17 20:25:19 +00:00
Merge branch 'dwc_ethernet'
Lars Persson says: ==================== dwc_eth_qos: Add support for Synopsys DWC Ethernet QoS This is a driver supporting version 4.10a of the Synopsys DWC Ethernet QoS gigabit ethernet controller. The IP has changed significantly compared to the dwmac1000 so a separate driver is justified. The IP is highly configurable at synthesis time. This driver has been developed for a subset of the total available feature set. Currently it supports: * TSO * Checksum offload for RX and TX. * Energy efficient ethernet. * GMII phy interface. * The statistics module. * Single RX and TX queue. ==================== Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
commit
6d85d0e387
7 changed files with 3135 additions and 0 deletions
|
@ -0,0 +1,75 @@
|
|||
* Synopsys DWC Ethernet QoS IP version 4.10 driver (GMAC)
|
||||
|
||||
|
||||
Required properties:
|
||||
- compatible: Should be "snps,dwc-qos-ethernet-4.10"
|
||||
- reg: Address and length of the register set for the device
|
||||
- clocks: Phandles to the reference clock and the bus clock
|
||||
- clock-names: Should be "phy_ref_clk" for the reference clock and "apb_pclk"
|
||||
for the bus clock.
|
||||
- interrupt-parent: Should be the phandle for the interrupt controller
|
||||
that services interrupts for this device
|
||||
- interrupts: Should contain the core's combined interrupt signal
|
||||
- phy-mode: See ethernet.txt file in the same directory
|
||||
|
||||
Optional properties:
|
||||
- dma-coherent: Present if dma operations are coherent
|
||||
- mac-address: See ethernet.txt in the same directory
|
||||
- local-mac-address: See ethernet.txt in the same directory
|
||||
- snps,en-lpi: If present it enables use of the AXI low-power interface
|
||||
- snps,write-requests: Number of write requests that the AXI port can issue.
|
||||
It depends on the SoC configuration.
|
||||
- snps,read-requests: Number of read requests that the AXI port can issue.
|
||||
It depends on the SoC configuration.
|
||||
- snps,burst-map: Bitmap of allowed AXI burst lengts, with the LSB
|
||||
representing 4, then 8 etc.
|
||||
- snps,txpbl: DMA Programmable burst length for the TX DMA
|
||||
- snps,rxpbl: DMA Programmable burst length for the RX DMA
|
||||
- snps,en-tx-lpi-clockgating: Enable gating of the MAC TX clock during
|
||||
TX low-power mode.
|
||||
- phy-handle: See ethernet.txt file in the same directory
|
||||
- mdio device tree subnode: When the GMAC has a phy connected to its local
|
||||
mdio, there must be device tree subnode with the following
|
||||
required properties:
|
||||
- compatible: Must be "snps,dwc-qos-ethernet-mdio".
|
||||
- #address-cells: Must be <1>.
|
||||
- #size-cells: Must be <0>.
|
||||
|
||||
For each phy on the mdio bus, there must be a node with the following
|
||||
fields:
|
||||
|
||||
- reg: phy id used to communicate to phy.
|
||||
- device_type: Must be "ethernet-phy".
|
||||
- fixed-mode device tree subnode: see fixed-link.txt in the same directory
|
||||
|
||||
Examples:
|
||||
ethernet2@40010000 {
|
||||
clock-names = "phy_ref_clk", "apb_pclk";
|
||||
clocks = <&clkc 17>, <&clkc 15>;
|
||||
compatible = "snps,dwc-qos-ethernet-4.10";
|
||||
interrupt-parent = <&intc>;
|
||||
interrupts = <0x0 0x1e 0x4>;
|
||||
reg = <0x40010000 0x4000>;
|
||||
phy-handle = <&phy2>;
|
||||
phy-mode = "gmii";
|
||||
|
||||
snps,en-tx-lpi-clockgating;
|
||||
snps,en-lpi;
|
||||
snps,write-requests = <2>;
|
||||
snps,read-requests = <16>;
|
||||
snps,burst-map = <0x7>;
|
||||
snps,txpbl = <8>;
|
||||
snps,rxpbl = <2>;
|
||||
|
||||
dma-coherent;
|
||||
|
||||
mdio {
|
||||
#address-cells = <0x1>;
|
||||
#size-cells = <0x0>;
|
||||
phy2: phy@1 {
|
||||
compatible = "ethernet-phy-ieee802.3-c22";
|
||||
device_type = "ethernet-phy";
|
||||
reg = <0x1>;
|
||||
};
|
||||
};
|
||||
};
|
|
@ -8903,6 +8903,13 @@ F: include/linux/dma/dw.h
|
|||
F: include/linux/platform_data/dma-dw.h
|
||||
F: drivers/dma/dw/
|
||||
|
||||
SYNOPSYS DESIGNWARE ETHERNET QOS 4.10a driver
|
||||
M: Lars Persson <lars.persson@axis.com>
|
||||
L: netdev@vger.kernel.org
|
||||
S: Supported
|
||||
F: Documentation/devicetree/bindings/net/snps,dwc-qos-ethernet.txt
|
||||
F: drivers/net/ethernet/synopsys/dwc_eth_qos.c
|
||||
|
||||
SYNOPSYS DESIGNWARE MMC/SD/SDIO DRIVER
|
||||
M: Seungwon Jeon <tgih.jun@samsung.com>
|
||||
M: Jaehoon Chung <jh80.chung@samsung.com>
|
||||
|
|
|
@ -167,6 +167,7 @@ source "drivers/net/ethernet/sgi/Kconfig"
|
|||
source "drivers/net/ethernet/smsc/Kconfig"
|
||||
source "drivers/net/ethernet/stmicro/Kconfig"
|
||||
source "drivers/net/ethernet/sun/Kconfig"
|
||||
source "drivers/net/ethernet/synopsys/Kconfig"
|
||||
source "drivers/net/ethernet/tehuti/Kconfig"
|
||||
source "drivers/net/ethernet/ti/Kconfig"
|
||||
source "drivers/net/ethernet/tile/Kconfig"
|
||||
|
|
|
@ -77,6 +77,7 @@ obj-$(CONFIG_NET_VENDOR_SGI) += sgi/
|
|||
obj-$(CONFIG_NET_VENDOR_SMSC) += smsc/
|
||||
obj-$(CONFIG_NET_VENDOR_STMICRO) += stmicro/
|
||||
obj-$(CONFIG_NET_VENDOR_SUN) += sun/
|
||||
obj-$(CONFIG_NET_VENDOR_SYNOPSYS) += synopsys/
|
||||
obj-$(CONFIG_NET_VENDOR_TEHUTI) += tehuti/
|
||||
obj-$(CONFIG_NET_VENDOR_TI) += ti/
|
||||
obj-$(CONFIG_TILE_NET) += tile/
|
||||
|
|
27
drivers/net/ethernet/synopsys/Kconfig
Normal file
27
drivers/net/ethernet/synopsys/Kconfig
Normal file
|
@ -0,0 +1,27 @@
|
|||
#
|
||||
# Synopsys network device configuration
|
||||
#
|
||||
|
||||
config NET_VENDOR_SYNOPSYS
|
||||
bool "Synopsys devices"
|
||||
default y
|
||||
---help---
|
||||
If you have a network (Ethernet) device belonging to this class, say Y.
|
||||
|
||||
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 Synopsys devices. If you say Y, you will be asked
|
||||
for your specific device in the following questions.
|
||||
|
||||
if NET_VENDOR_SYNOPSYS
|
||||
|
||||
config SYNOPSYS_DWC_ETH_QOS
|
||||
tristate "Sypnopsys DWC Ethernet QOS v4.10a support"
|
||||
select PHYLIB
|
||||
select CRC32
|
||||
select MII
|
||||
depends on OF
|
||||
---help---
|
||||
This driver supports the DWC Ethernet QoS from Synopsys
|
||||
|
||||
endif # NET_VENDOR_SYNOPSYS
|
5
drivers/net/ethernet/synopsys/Makefile
Normal file
5
drivers/net/ethernet/synopsys/Makefile
Normal file
|
@ -0,0 +1,5 @@
|
|||
#
|
||||
# Makefile for the Synopsys network device drivers.
|
||||
#
|
||||
|
||||
obj-$(CONFIG_SYNOPSYS_DWC_ETH_QOS) += dwc_eth_qos.o
|
3019
drivers/net/ethernet/synopsys/dwc_eth_qos.c
Normal file
3019
drivers/net/ethernet/synopsys/dwc_eth_qos.c
Normal file
File diff suppressed because it is too large
Load diff
Loading…
Add table
Add a link
Reference in a new issue