#
# Xilink device configuration
#

config NET_VENDOR_XILINX
	bool "Xilinx devices"
	default y
	depends on PPC || PPC32 || MICROBLAZE || ARCH_ZYNQ || MIPS || X86 || COMPILE_TEST
	---help---
	  If you have a network (Ethernet) card 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 Xilinx devices. If you say Y, you will be asked
	  for your specific card in the following questions.

if NET_VENDOR_XILINX

config XILINX_EMACLITE
	tristate "Xilinx 10/100 Ethernet Lite support"
	depends on PPC32 || MICROBLAZE || ARCH_ZYNQ || MIPS
	select PHYLIB
	---help---
	  This driver supports the 10/100 Ethernet Lite from Xilinx.

config XILINX_AXI_EMAC
	tristate "Xilinx 10/100/1000 AXI Ethernet support"
	depends on MICROBLAZE
	select PHYLIB
	---help---
	  This driver supports the 10/100/1000 Ethernet from Xilinx for the
	  AXI bus interface used in Xilinx Virtex FPGAs.

config XILINX_LL_TEMAC
	tristate "Xilinx LL TEMAC (LocalLink Tri-mode Ethernet MAC) driver"
	depends on PPC || MICROBLAZE || X86 || COMPILE_TEST
	select PHYLIB
	---help---
	  This driver supports the Xilinx 10/100/1000 LocalLink TEMAC
	  core used in Xilinx Spartan and Virtex FPGAs

endif # NET_VENDOR_XILINX
