#
# Cirrus network device configuration
#

config NET_VENDOR_CIRRUS
	bool "Cirrus devices"
	default y
	depends on ISA || EISA || ARM || MAC
	---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 Cirrus cards. If you say Y, you will be asked
	  for your specific card in the following questions.

if NET_VENDOR_CIRRUS

config CS89x0
	tristate "CS89x0 support"
	depends on ISA || EISA || ARM
	---help---
	  Support for CS89x0 chipset based Ethernet cards. If you have a
	  network (Ethernet) card of this type, say Y and read the file
	  <file:Documentation/networking/cs89x0.txt>.

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

config CS89x0_PLATFORM
	bool "CS89x0 platform driver support" if HAS_IOPORT_MAP
	default !HAS_IOPORT_MAP
	depends on CS89x0
	help
	  Say Y to compile the cs89x0 driver as a platform driver. This
	  makes this driver suitable for use on certain evaluation boards
	  such as the iMX21ADS.

	  If you are unsure, say N.

config EP93XX_ETH
	tristate "EP93xx Ethernet support"
	depends on ARM && ARCH_EP93XX
	select MII
	help
	  This is a driver for the ethernet hardware included in EP93xx CPUs.
	  Say Y if you are building a kernel for EP93xx based devices.

config MAC89x0
	tristate "Macintosh CS89x0 based ethernet cards"
	depends on MAC
	---help---
	  Support for CS89x0 chipset based Ethernet cards.  If you have a
	  Nubus or LC-PDS network (Ethernet) card of this type, say Y here.

	  To compile this driver as a module, choose M here. This module will
	  be called mac89x0.

endif # NET_VENDOR_CIRRUS
