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: include/linux/platform_data/dma-dw.h
|
||||||
F: drivers/dma/dw/
|
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
|
SYNOPSYS DESIGNWARE MMC/SD/SDIO DRIVER
|
||||||
M: Seungwon Jeon <tgih.jun@samsung.com>
|
M: Seungwon Jeon <tgih.jun@samsung.com>
|
||||||
M: Jaehoon Chung <jh80.chung@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/smsc/Kconfig"
|
||||||
source "drivers/net/ethernet/stmicro/Kconfig"
|
source "drivers/net/ethernet/stmicro/Kconfig"
|
||||||
source "drivers/net/ethernet/sun/Kconfig"
|
source "drivers/net/ethernet/sun/Kconfig"
|
||||||
|
source "drivers/net/ethernet/synopsys/Kconfig"
|
||||||
source "drivers/net/ethernet/tehuti/Kconfig"
|
source "drivers/net/ethernet/tehuti/Kconfig"
|
||||||
source "drivers/net/ethernet/ti/Kconfig"
|
source "drivers/net/ethernet/ti/Kconfig"
|
||||||
source "drivers/net/ethernet/tile/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_SMSC) += smsc/
|
||||||
obj-$(CONFIG_NET_VENDOR_STMICRO) += stmicro/
|
obj-$(CONFIG_NET_VENDOR_STMICRO) += stmicro/
|
||||||
obj-$(CONFIG_NET_VENDOR_SUN) += sun/
|
obj-$(CONFIG_NET_VENDOR_SUN) += sun/
|
||||||
|
obj-$(CONFIG_NET_VENDOR_SYNOPSYS) += synopsys/
|
||||||
obj-$(CONFIG_NET_VENDOR_TEHUTI) += tehuti/
|
obj-$(CONFIG_NET_VENDOR_TEHUTI) += tehuti/
|
||||||
obj-$(CONFIG_NET_VENDOR_TI) += ti/
|
obj-$(CONFIG_NET_VENDOR_TI) += ti/
|
||||||
obj-$(CONFIG_TILE_NET) += tile/
|
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