# SPDX-License-Identifier: GPL-2.0
#
# Phy drivers for Renesas platforms
#
config PHY_RCAR_GEN2
	tristate "Renesas R-Car generation 2 USB PHY driver"
	depends on ARCH_RENESAS
	depends on 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.
