# SPDX-License-Identifier: GPL-2.0-only
#
# Microchip network device configuration
#

config NET_VENDOR_MICROCHIP
	bool "Microchip 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 Microchip cards. If you say Y, you will be asked
	  for your specific card in the following questions.

if NET_VENDOR_MICROCHIP

config ENC28J60
	tristate "ENC28J60 support"
	depends on SPI
	select CRC32
	help
	  Support for the Microchip EN28J60 ethernet chip.

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

config ENC28J60_WRITEVERIFY
	bool "Enable write verify"
	depends on ENC28J60
	help
	  Enable the verify after the buffer write useful for debugging purpose.
	  If unsure, say N.

config ENCX24J600
    tristate "ENCX24J600 support"
    depends on SPI
	help
      Support for the Microchip ENC424J600/624J600 ethernet chip.

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

config LAN743X
	tristate "LAN743x support"
	depends on PCI
	depends on PTP_1588_CLOCK_OPTIONAL
	select PHYLIB
	select CRC16
	select CRC32
	help
	  Support for the Microchip LAN743x PCI Express Gigabit Ethernet chip

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

source "drivers/net/ethernet/microchip/sparx5/Kconfig"

endif # NET_VENDOR_MICROCHIP
