# SPDX-License-Identifier: GPL-2.0-only
#
# 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) || COMPILE_TEST
	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
