# SPDX-License-Identifier: GPL-2.0-only
#
# Xilink device configuration
#

config NET_VENDOR_XILINX
	bool "Xilinx devices"
	default y
	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 HAS_IOMEM
	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 HAS_IOMEM
	select PHYLINK
	help
	  This driver supports the 10/100/1000 Ethernet from Xilinx for the
	  AXI bus interface used in Xilinx Virtex FPGAs and Soc's.

config XILINX_LL_TEMAC
	tristate "Xilinx LL TEMAC (LocalLink Tri-mode Ethernet MAC) driver"
	depends on HAS_IOMEM
	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
