#
# 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
	depends on !PPC32
	---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/device_drivers/cirrus/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
