#
# Ethernet LAN device configuration
#

menuconfig ETHERNET
	bool "Ethernet driver support"
	depends on NET
	default y
	---help---
	  This section contains all the Ethernet device drivers.

if ETHERNET

config MDIO
	tristate

config SUNGEM_PHY
	tristate

source "drivers/net/ethernet/3com/Kconfig"
source "drivers/net/ethernet/adaptec/Kconfig"
source "drivers/net/ethernet/aeroflex/Kconfig"
source "drivers/net/ethernet/agere/Kconfig"
source "drivers/net/ethernet/alacritech/Kconfig"
source "drivers/net/ethernet/allwinner/Kconfig"
source "drivers/net/ethernet/alteon/Kconfig"
source "drivers/net/ethernet/altera/Kconfig"
source "drivers/net/ethernet/amazon/Kconfig"
source "drivers/net/ethernet/amd/Kconfig"
source "drivers/net/ethernet/apm/Kconfig"
source "drivers/net/ethernet/apple/Kconfig"
source "drivers/net/ethernet/aquantia/Kconfig"
source "drivers/net/ethernet/arc/Kconfig"
source "drivers/net/ethernet/atheros/Kconfig"
source "drivers/net/ethernet/aurora/Kconfig"
source "drivers/net/ethernet/broadcom/Kconfig"
source "drivers/net/ethernet/brocade/Kconfig"
source "drivers/net/ethernet/cadence/Kconfig"
source "drivers/net/ethernet/calxeda/Kconfig"
source "drivers/net/ethernet/cavium/Kconfig"
source "drivers/net/ethernet/chelsio/Kconfig"
source "drivers/net/ethernet/cirrus/Kconfig"
source "drivers/net/ethernet/cisco/Kconfig"
source "drivers/net/ethernet/cortina/Kconfig"

config CX_ECAT
	tristate "Beckhoff CX5020 EtherCAT master support"
	depends on PCI
	depends on X86 || COMPILE_TEST
	---help---
	  Driver for EtherCAT master module located on CCAT FPGA
	  that can be found on Beckhoff CX5020, and possibly other of CX
	  Beckhoff CX series industrial PCs.

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

source "drivers/net/ethernet/davicom/Kconfig"

config DNET
	tristate "Dave ethernet support (DNET)"
	depends on HAS_IOMEM
	select PHYLIB
	---help---
	  The Dave ethernet interface (DNET) is found on Qong Board FPGA.
	  Say Y to include support for the DNET chip.

	  To compile this driver as a module, choose M here: the module
	  will be called dnet.

source "drivers/net/ethernet/dec/Kconfig"
source "drivers/net/ethernet/dlink/Kconfig"
source "drivers/net/ethernet/emulex/Kconfig"
source "drivers/net/ethernet/ezchip/Kconfig"
source "drivers/net/ethernet/faraday/Kconfig"
source "drivers/net/ethernet/freescale/Kconfig"
source "drivers/net/ethernet/fujitsu/Kconfig"
source "drivers/net/ethernet/hisilicon/Kconfig"
source "drivers/net/ethernet/hp/Kconfig"
source "drivers/net/ethernet/huawei/Kconfig"
source "drivers/net/ethernet/i825xx/Kconfig"
source "drivers/net/ethernet/ibm/Kconfig"
source "drivers/net/ethernet/intel/Kconfig"
source "drivers/net/ethernet/xscale/Kconfig"

config JME
	tristate "JMicron(R) PCI-Express Gigabit Ethernet support"
	depends on PCI
	select CRC32
	select MII
	---help---
	  This driver supports the PCI-Express gigabit ethernet adapters
	  based on JMicron JMC250 chipset.

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

config KORINA
	tristate "Korina (IDT RC32434) Ethernet support"
	depends on MIKROTIK_RB532
	---help---
	  If you have a Mikrotik RouterBoard 500 or IDT RC32434
	  based system say Y. Otherwise say N.

config LANTIQ_ETOP
	tristate "Lantiq SoC ETOP driver"
	depends on SOC_TYPE_XWAY
	---help---
	  Support for the MII0 inside the Lantiq SoC

config LANTIQ_XRX200
	tristate "Lantiq / Intel xRX200 PMAC network driver"
	depends on SOC_TYPE_XWAY
	---help---
	  Support for the PMAC of the Gigabit switch (GSWIP) inside the
	  Lantiq / Intel VRX200 VDSL SoC

source "drivers/net/ethernet/marvell/Kconfig"
source "drivers/net/ethernet/mediatek/Kconfig"
source "drivers/net/ethernet/mellanox/Kconfig"
source "drivers/net/ethernet/micrel/Kconfig"
source "drivers/net/ethernet/microchip/Kconfig"
source "drivers/net/ethernet/moxa/Kconfig"
source "drivers/net/ethernet/mscc/Kconfig"
source "drivers/net/ethernet/myricom/Kconfig"

config FEALNX
	tristate "Myson MTD-8xx PCI Ethernet support"
	depends on PCI
	select CRC32
	select MII
	---help---
	  Say Y here to support the Myson MTD-800 family of PCI-based Ethernet
	  cards. <http://www.myson.com.tw/>

source "drivers/net/ethernet/natsemi/Kconfig"
source "drivers/net/ethernet/neterion/Kconfig"
source "drivers/net/ethernet/netronome/Kconfig"
source "drivers/net/ethernet/ni/Kconfig"
source "drivers/net/ethernet/8390/Kconfig"

config NET_NETX
	tristate "NetX Ethernet support"
	select MII
	depends on ARCH_NETX
	---help---
	  This is support for the Hilscher netX builtin Ethernet ports

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

source "drivers/net/ethernet/nuvoton/Kconfig"
source "drivers/net/ethernet/nvidia/Kconfig"
source "drivers/net/ethernet/nxp/Kconfig"
source "drivers/net/ethernet/oki-semi/Kconfig"

config ETHOC
	tristate "OpenCores 10/100 Mbps Ethernet MAC support"
	depends on HAS_IOMEM && HAS_DMA
	select MII
	select PHYLIB
	select CRC32
	select BITREVERSE
	---help---
	  Say Y here if you want to use the OpenCores 10/100 Mbps Ethernet MAC.

source "drivers/net/ethernet/packetengines/Kconfig"
source "drivers/net/ethernet/pasemi/Kconfig"
source "drivers/net/ethernet/qlogic/Kconfig"
source "drivers/net/ethernet/qualcomm/Kconfig"
source "drivers/net/ethernet/rdc/Kconfig"
source "drivers/net/ethernet/realtek/Kconfig"
source "drivers/net/ethernet/renesas/Kconfig"
source "drivers/net/ethernet/rocker/Kconfig"
source "drivers/net/ethernet/samsung/Kconfig"
source "drivers/net/ethernet/seeq/Kconfig"
source "drivers/net/ethernet/sfc/Kconfig"
source "drivers/net/ethernet/sgi/Kconfig"
source "drivers/net/ethernet/silan/Kconfig"
source "drivers/net/ethernet/sis/Kconfig"
source "drivers/net/ethernet/smsc/Kconfig"
source "drivers/net/ethernet/socionext/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/toshiba/Kconfig"
source "drivers/net/ethernet/tundra/Kconfig"
source "drivers/net/ethernet/via/Kconfig"
source "drivers/net/ethernet/wiznet/Kconfig"
source "drivers/net/ethernet/xilinx/Kconfig"
source "drivers/net/ethernet/xircom/Kconfig"

endif # ETHERNET
