# 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 PAGE_POOL
	select PHYLIB
	select RESET_CONTROLLER
	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.

config RTSN
	tristate "Renesas Ethernet-TSN support"
	depends on ARCH_RENESAS || COMPILE_TEST
	depends on PTP_1588_CLOCK
	select CRC32
	select PHYLIB
	select RENESAS_GEN4_PTP
	help
	  Renesas Ethernet-TSN device driver.

endif # NET_VENDOR_RENESAS
