#
# Micrel device configuration
#

config NET_VENDOR_MICREL
	bool "Micrel devices"
	default y
	depends on (HAS_IOMEM && DMA_ENGINE) || SPI || PCI || HAS_IOMEM || \
		   (ARM && ARCH_KS8695)
	---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 Micrel devices. If you say Y, you will be asked
	  for your specific card in the following questions.

if NET_VENDOR_MICREL

config ARM_KS8695_ETHER
	tristate "KS8695 Ethernet support"
	depends on ARM && ARCH_KS8695
	select MII
	---help---
	  If you wish to compile a kernel for the KS8695 and want to
	  use the internal ethernet then you should answer Y to this.

config KS8842
	tristate "Micrel KSZ8841/42 with generic bus interface"
	depends on HAS_IOMEM && DMA_ENGINE
	---help---
	  This platform driver is for KSZ8841(1-port) / KS8842(2-port)
	  ethernet switch chip (managed, VLAN, QoS) from Micrel or
	  Timberdale(FPGA).

config KS8851
	tristate "Micrel KS8851 SPI"
	depends on SPI
	select MII
	select CRC32
	select EEPROM_93CX6
	---help---
	  SPI driver for Micrel KS8851 SPI attached network chip.

config KS8851_MLL
	tristate "Micrel KS8851 MLL"
	depends on HAS_IOMEM
	select MII
	---help---
	  This platform driver is for Micrel KS8851 Address/data bus
	  multiplexed network chip.

config KSZ884X_PCI
	tristate "Micrel KSZ8841/2 PCI"
	depends on PCI
	select MII
	select CRC32
	---help---
	  This PCI driver is for Micrel KSZ8841/KSZ8842 PCI Ethernet chip.

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

endif # NET_VENDOR_MICREL
