# SPDX-License-Identifier: GPL-2.0
#
# Renesas network device configuration
#

config NET_VENDOR_RENESAS
	bool "Renesas 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 Renesas devices. If you say Y, you will be asked
	  for your specific device in the following questions.

if NET_VENDOR_RENESAS

config SH_ETH
	tristate "Renesas SuperH Ethernet support"
	depends on ARCH_RENESAS || SUPERH || COMPILE_TEST
	select CRC32
	select MII
	select MDIO_BITBANG
	select PHYLIB
	help
	  Renesas SuperH Ethernet device driver.

config RAVB
	tristate "Renesas Ethernet AVB support"
	depends on ARCH_RENESAS || COMPILE_TEST
	depends on PTP_1588_CLOCK_OPTIONAL
	select CRC32
	select MII
	select MDIO_BITBANG
	select PHYLIB
	help
	  Renesas Ethernet AVB device driver.

config RENESAS_ETHER_SWITCH
	tristate "Renesas Ethernet Switch support"
	depends on ARCH_RENESAS || COMPILE_TEST
	depends on PTP_1588_CLOCK
	select CRC32
	select MII
	select PHYLINK
	select RENESAS_GEN4_PTP
	help
	  Renesas Ethernet Switch device driver.

config RENESAS_GEN4_PTP
	tristate "Renesas R-Car Gen4 gPTP support" if COMPILE_TEST
	depends on PTP_1588_CLOCK
	select CRC32
	select MII
	select PHYLIB
	help
	  Renesas R-Car Gen4 gPTP device driver.

endif # NET_VENDOR_RENESAS
