# SPDX-License-Identifier: GPL-2.0
#
# Renesas 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.
	  This driver supporting CPUs are:
		- SH7619, SH7710, SH7712, SH7724, SH7734, SH7763, SH7757,
		  R8A7740, R8A774x, R8A777x and R8A779x.

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.
	  This driver supports the following SoCs:
		- R8A779x.

endif # NET_VENDOR_RENESAS
