# SPDX-License-Identifier: GPL-2.0
#
# Phy drivers for Renesas platforms
#
# NOTE: Please sorted config names alphabetically.
config PHY_R8A779F0_ETHERNET_SERDES
	tristate "Renesas R-Car S4-8 Ethernet SERDES driver"
	depends on ARCH_RENESAS || COMPILE_TEST
	select GENERIC_PHY
	help
	  Support for Ethernet SERDES found on Renesas R-Car S4-8 SoCs.

config PHY_RCAR_GEN2
	tristate "Renesas R-Car generation 2 USB PHY driver"
	depends on ARCH_RENESAS
	select GENERIC_PHY
	help
	  Support for USB PHY found on Renesas R-Car generation 2 SoCs.

config PHY_RCAR_GEN3_PCIE
	tristate "Renesas R-Car generation 3 PCIe PHY driver"
	depends on ARCH_RENESAS
	select GENERIC_PHY
	help
	  Support for the PCIe PHY found on Renesas R-Car generation 3 SoCs.

config PHY_RCAR_GEN3_USB2
	tristate "Renesas R-Car generation 3 USB 2.0 PHY driver"
	depends on ARCH_RENESAS
	depends on EXTCON || !EXTCON # if EXTCON=m, this cannot be built-in
	depends on USB_SUPPORT
	select GENERIC_PHY
	select USB_COMMON
	help
	  Support for USB 2.0 PHY found on Renesas R-Car generation 3 SoCs.

config PHY_RCAR_GEN3_USB3
	tristate "Renesas R-Car generation 3 USB 3.0 PHY driver"
	depends on ARCH_RENESAS || COMPILE_TEST
	select GENERIC_PHY
	help
	  Support for USB 3.0 PHY found on Renesas R-Car generation 3 SoCs.
