# SPDX-License-Identifier: GPL-2.0-only
#
# Phy drivers for STMicro platforms
#
config PHY_MIPHY28LP
	tristate "STMicroelectronics MIPHY28LP PHY driver for STiH407"
	depends on ARCH_STI || COMPILE_TEST
	select GENERIC_PHY
	help
	  Enable this to support the miphy transceiver (for SATA/PCIE/USB3)
	  that is part of STMicroelectronics STiH407 SoC.

config PHY_ST_SPEAR1310_MIPHY
	tristate "ST SPEAR1310-MIPHY driver"
	select GENERIC_PHY
	depends on MACH_SPEAR1310 || COMPILE_TEST
	help
	  Support for ST SPEAr1310 MIPHY which can be used for PCIe and SATA.

config PHY_ST_SPEAR1340_MIPHY
	tristate "ST SPEAR1340-MIPHY driver"
	select GENERIC_PHY
	depends on MACH_SPEAR1340 || COMPILE_TEST
	help
	  Support for ST SPEAr1340 MIPHY which can be used for PCIe and SATA.

config PHY_STIH407_USB
	tristate "STMicroelectronics USB2 picoPHY driver for STiH407 family"
	depends on RESET_CONTROLLER
	depends on ARCH_STI || COMPILE_TEST
	select GENERIC_PHY
	help
	  Enable this support to enable the picoPHY device used by USB2
	  and USB3 controllers on STMicroelectronics STiH407 SoC families.

config PHY_STM32_COMBOPHY
	tristate "STMicroelectronics COMBOPHY driver for STM32MP25"
	depends on ARCH_STM32 || COMPILE_TEST
	select GENERIC_PHY
	help
	  Enable this to support the COMBOPHY device used by USB3 or PCIe
	  controllers on STMicroelectronics STM32MP25 SoC.
	  This driver controls the COMBOPHY block to generate the PCIe 100Mhz
	  reference clock from either the external clock generator or HSE
	  internal SoC clock source.

config PHY_STM32_USBPHYC
	tristate "STMicroelectronics STM32 USB HS PHY Controller driver"
	depends on ARCH_STM32 || COMPILE_TEST
	depends on COMMON_CLK
	select GENERIC_PHY
	help
	  Enable this to support the High-Speed USB transceivers that are part
	  of some STMicroelectronics STM32 SoCs.

	  This driver controls the entire USB PHY block: the USB PHY controller
	  (USBPHYC) and the two 8-bit wide UTMI+ interfaces. First interface is
	  used by an HS USB Host controller, and the second one is shared
	  between an HS USB OTG controller and an HS USB Host controller,
	  selected by a USB switch.
