# SPDX-License-Identifier: GPL-2.0-only
#
# Phy drivers for Qualcomm and Atheros platforms
#
config PHY_ATH79_USB
	tristate "Atheros AR71XX/9XXX USB PHY driver"
	depends on OF && (ATH79 || COMPILE_TEST)
	default y if USB_EHCI_HCD_PLATFORM || USB_OHCI_HCD_PLATFORM
	select RESET_CONTROLLER
	select GENERIC_PHY
	help
	  Enable this to support the USB PHY on Atheros AR71XX/9XXX SoCs.

config PHY_QCOM_APQ8064_SATA
	tristate "Qualcomm APQ8064 SATA SerDes/PHY driver"
	depends on ARCH_QCOM
	depends on HAS_IOMEM
	depends on OF
	select GENERIC_PHY

config PHY_QCOM_IPQ806X_SATA
	tristate "Qualcomm IPQ806x SATA SerDes/PHY driver"
	depends on ARCH_QCOM
	depends on HAS_IOMEM
	depends on OF
	select GENERIC_PHY

config PHY_QCOM_PCIE2
	tristate "Qualcomm PCIe Gen2 PHY Driver"
	depends on OF && COMMON_CLK && (ARCH_QCOM || COMPILE_TEST)
	select GENERIC_PHY
	help
	  Enable this to support the Qualcomm PCIe PHY, used with the Synopsys
	  based PCIe controller.

config PHY_QCOM_QMP
	tristate "Qualcomm QMP PHY Driver"
	depends on OF && COMMON_CLK && (ARCH_QCOM || COMPILE_TEST)
	select GENERIC_PHY
	help
	  Enable this to support the QMP PHY transceiver that is used
	  with controllers such as PCIe, UFS, and USB on Qualcomm chips.

config PHY_QCOM_QUSB2
	tristate "Qualcomm QUSB2 PHY Driver"
	depends on OF && (ARCH_QCOM || COMPILE_TEST)
	depends on NVMEM || !NVMEM
	select GENERIC_PHY
	help
	  Enable this to support the HighSpeed QUSB2 PHY transceiver for USB
	  controllers on Qualcomm chips. This driver supports the high-speed
	  PHY which is usually paired with either the ChipIdea or Synopsys DWC3
	  USB IPs on MSM SOCs.

config PHY_QCOM_UFS
	tristate "Qualcomm UFS PHY driver"
	depends on OF && ARCH_QCOM
	select GENERIC_PHY
	help
	  Support for UFS PHY on QCOM chipsets.

if PHY_QCOM_UFS

config PHY_QCOM_UFS_14NM
	tristate
	default PHY_QCOM_UFS
	help
	  Support for 14nm UFS QMP phy present on QCOM chipsets.

config PHY_QCOM_UFS_20NM
	tristate
	default PHY_QCOM_UFS
	depends on BROKEN
	help
	  Support for 20nm UFS QMP phy present on QCOM chipsets.

endif

config PHY_QCOM_USB_HS
	tristate "Qualcomm USB HS PHY module"
	depends on USB_ULPI_BUS
	depends on EXTCON || !EXTCON # if EXTCON=m, this cannot be built-in
	select GENERIC_PHY
	help
	  Support for the USB high-speed ULPI compliant phy on Qualcomm
	  chipsets.

config PHY_QCOM_USB_HSIC
	tristate "Qualcomm USB HSIC ULPI PHY module"
	depends on USB_ULPI_BUS
	select GENERIC_PHY
	help
	  Support for the USB HSIC ULPI compliant PHY on QCOM chipsets.

config PHY_IPQ_UNIPHY_USB
	tristate "USB Uniphy driver support"
	depends on (USB || USB_GADGET) && ARCH_QCOM
	select USB_PHY
	help
	  Enable this to support the USB UNI PHY. It handles PHY
	  initialization, clock management required after resetting
	  the hardware and power management. This driver is required
	  even for peripheral only or host only mode configurations.

config PHY_IPQ_UNIPHY_PCIE
	bool "PCIE UNI PHY driver"
	depends on ARCH_QCOM
	depends on HAS_IOMEM
	depends on OF
	select GENERIC_PHY
