# SPDX-License-Identifier: GPL-2.0-only
#
# WIZnet devices configuration
#

config NET_VENDOR_WIZNET
	bool "WIZnet devices"
	depends on HAS_IOMEM
	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 WIZnet devices. If you say Y, you will be asked
	  for your specific card in the following questions.

if NET_VENDOR_WIZNET

config WIZNET_W5100
	tristate "WIZnet W5100 Ethernet support"
	depends on HAS_IOMEM
	---help---
	  Support for WIZnet W5100 chips.

	  W5100 is a single chip with integrated 10/100 Ethernet MAC,
	  PHY and hardware TCP/IP stack, but this driver is limited to
	  the MAC and PHY functions only, onchip TCP/IP is unused.

	  To compile this driver as a module, choose M here: the module
	  will be called w5100.

config WIZNET_W5300
	tristate "WIZnet W5300 Ethernet support"
	depends on HAS_IOMEM
	---help---
	  Support for WIZnet W5300 chips.

	  W5300 is a single chip with integrated 10/100 Ethernet MAC,
	  PHY and hardware TCP/IP stack, but this driver is limited to
	  the MAC and PHY functions only, onchip TCP/IP is unused.

	  To compile this driver as a module, choose M here: the module
	  will be called w5300.

choice
	prompt "WIZnet interface mode"
	depends on WIZNET_W5100 || WIZNET_W5300
	default WIZNET_BUS_ANY

config WIZNET_BUS_DIRECT
	bool "Direct address bus mode"
	---help---
	  In direct address mode host system can directly access all registers
	  after mapping to Memory-Mapped I/O space.

config WIZNET_BUS_INDIRECT
	bool "Indirect address bus mode"
	---help---
	  In indirect address mode host system indirectly accesses registers
	  using Indirect Mode Address Register and Indirect Mode Data Register,
	  which are directly mapped to Memory-Mapped I/O space.

config WIZNET_BUS_ANY
	bool "Select interface mode in runtime"
	---help---
	  If interface mode is unknown in compile time, it can be selected
	  in runtime from board/platform resources configuration.

	  Performance may decrease compared to explicitly selected bus mode.
endchoice

config WIZNET_W5100_SPI
	tristate "WIZnet W5100/W5200/W5500 Ethernet support for SPI mode"
	depends on WIZNET_BUS_ANY && WIZNET_W5100
	depends on SPI
	---help---
	  In SPI mode host system accesses registers using SPI protocol
	  (mode 0) on the SPI bus.

	  Performance decreases compared to other bus interface mode.
	  In W5100 SPI mode, burst READ/WRITE processing are not provided.

	  To compile this driver as a module, choose M here: the module
	  will be called w5100-spi.

endif # NET_VENDOR_WIZNET
