#
# 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
	depends on m

config SUNGEM_PHY
	tristate
	depends on m

#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/altera/Kconfig"
#source "drivers/net/ethernet/amd/Kconfig"
#source "drivers/net/ethernet/apple/Kconfig"
#source "drivers/net/ethernet/arc/Kconfig"
source "drivers/net/ethernet/atheros/Kconfig"
#source "drivers/net/ethernet/cadence/Kconfig"
#source "drivers/net/ethernet/adi/Kconfig"
source "drivers/net/ethernet/broadcom/Kconfig"
#source "drivers/net/ethernet/brocade/Kconfig"
#source "drivers/net/ethernet/calxeda/Kconfig"
#source "drivers/net/ethernet/chelsio/Kconfig"
#source "drivers/net/ethernet/cirrus/Kconfig"
#source "drivers/net/ethernet/cisco/Kconfig"
#source "drivers/net/ethernet/davicom/Kconfig"

config DNET
	depends on n
	tristate "Dave ethernet support (DNET)"
	depends on m
	depends on HAS_IOMEM
	depends on 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/neterion/Kconfig"
#source "drivers/net/ethernet/faraday/Kconfig"
#source "drivers/net/ethernet/freescale/Kconfig"
#source "drivers/net/ethernet/fujitsu/Kconfig"
#source "drivers/net/ethernet/hp/Kconfig"
#source "drivers/net/ethernet/ibm/Kconfig"
source "drivers/net/ethernet/intel/Kconfig"
#source "drivers/net/ethernet/i825xx/Kconfig"
#source "drivers/net/ethernet/xscale/Kconfig"
#source "drivers/net/ethernet/icplus/Kconfig"

config JME
	depends on n
	tristate "JMicron(R) PCI-Express Gigabit Ethernet support"
	depends on m
	depends on PCI
	depends on CRC32
	select BACKPORT_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
	depends on n
	tristate "Korina (IDT RC32434) Ethernet support"
	depends on m
	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
	depends on n
	tristate "Lantiq SoC ETOP driver"
	depends on m
	depends on SOC_TYPE_XWAY
	---help---
	  Support for the MII0 inside the Lantiq SoC

#source "drivers/net/ethernet/marvell/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/myricom/Kconfig"

config FEALNX
	depends on n
	tristate "Myson MTD-8xx PCI Ethernet support"
	depends on m
	depends on PCI
	depends on CRC32
	select BACKPORT_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/8390/Kconfig"

config NET_NETX
	depends on n
	tristate "NetX Ethernet support"
	depends on m
	select BACKPORT_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/octeon/Kconfig"
#source "drivers/net/ethernet/oki-semi/Kconfig"

config ETHOC
	depends on n
	tristate "OpenCores 10/100 Mbps Ethernet MAC support"
	depends on m
	depends on HAS_IOMEM && HAS_DMA
	select BACKPORT_MII
	depends on PHYLIB
	depends on CRC32
	depends on 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/realtek/Kconfig"
#source "drivers/net/ethernet/renesas/Kconfig"
#source "drivers/net/ethernet/rdc/Kconfig"

config S6GMAC
	depends on n
	tristate "S6105 GMAC ethernet support"
	depends on m
	depends on XTENSA_VARIANT_S6000
	depends on PHYLIB
	---help---
	  This driver supports the on chip ethernet device on the
	  S6105 xtensa processor.

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

#source "drivers/net/ethernet/samsung/Kconfig"
#source "drivers/net/ethernet/seeq/Kconfig"
#source "drivers/net/ethernet/silan/Kconfig"
#source "drivers/net/ethernet/sis/Kconfig"
#source "drivers/net/ethernet/sfc/Kconfig"
#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/tehuti/Kconfig"
#source "drivers/net/ethernet/ti/Kconfig"
#source "drivers/net/ethernet/tile/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
