# 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_EDP
	tristate "Qualcomm eDP PHY driver"
	depends on ARCH_QCOM || COMPILE_TEST
	depends on OF
	depends on COMMON_CLK
	select GENERIC_PHY
	help
	  Enable this driver to support the Qualcomm eDP PHY found in various
	  Qualcomm chipsets.

config PHY_QCOM_IPQ4019_USB
	tristate "Qualcomm IPQ4019 USB PHY driver"
	depends on OF && (ARCH_QCOM || COMPILE_TEST)
	select GENERIC_PHY
	help
	  Support for the USB PHY-s on Qualcomm IPQ40xx SoC-s.

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.

menuconfig PHY_QCOM_QMP
	tristate "Qualcomm QMP PHY Drivers"
	depends on OF && COMMON_CLK && (ARCH_QCOM || COMPILE_TEST)

if PHY_QCOM_QMP

config PHY_QCOM_QMP_COMBO
	tristate "Qualcomm QMP Combo PHY Driver"
	default PHY_QCOM_QMP
	depends on TYPEC || TYPEC=n
	depends on DRM || DRM=n
	select GENERIC_PHY
	select MFD_SYSCON
	select DRM_PANEL_BRIDGE if DRM
	help
	  Enable this to support the QMP Combo PHY transceiver that is used
	  with USB3 and DisplayPort controllers on Qualcomm chips.

config PHY_QCOM_QMP_PCIE
	tristate "Qualcomm QMP PCIe PHY Driver"
	depends on PCI || COMPILE_TEST
	select GENERIC_PHY
	default PHY_QCOM_QMP
	help
	  Enable this to support the QMP PCIe PHY transceiver that is used
	  with PCIe controllers on Qualcomm chips.

config PHY_QCOM_QMP_PCIE_8996
	tristate "Qualcomm QMP PCIe 8996 PHY Driver"
	depends on PCI || COMPILE_TEST
	select GENERIC_PHY
	default PHY_QCOM_QMP
	help
	  Enable this to support the QMP PCIe PHY transceiver that is used
	  with PCIe controllers on Qualcomm msm8996 chips.

config PHY_QCOM_QMP_UFS
	tristate "Qualcomm QMP UFS PHY Driver"
	select GENERIC_PHY
	default PHY_QCOM_QMP
	help
	  Enable this to support the QMP UFS PHY transceiver that is used
	  with UFS controllers on Qualcomm chips.

config PHY_QCOM_QMP_USB
	tristate "Qualcomm QMP USB PHY Driver"
	select GENERIC_PHY
	default PHY_QCOM_QMP
	help
	  Enable this to support the QMP USB PHY transceiver that is used
	  with USB3 controllers on Qualcomm chips.

config PHY_QCOM_QMP_USB_LEGACY
	tristate "Qualcomm QMP legacy USB PHY Driver"
	select GENERIC_PHY
	default n
	help
	  Enable this legacy driver to support the QMP USB+DisplayPort Combo
	  PHY transceivers working only in USB3 mode on Qualcomm chips. This
	  driver exists only for compatibility with older device trees,
	  existing users have been migrated to PHY_QCOM_QMP_COMBO driver.

endif # PHY_QCOM_QMP

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_SNPS_EUSB2
	tristate "Qualcomm SNPS eUSB2 PHY Driver"
	depends on OF && (ARCH_QCOM || COMPILE_TEST)
	select GENERIC_PHY
	help
	  Enable support for the USB high-speed SNPS eUSB2 phy on Qualcomm
	  chipsets. The PHY is paired with a Synopsys DWC3 USB controller
	  on Qualcomm SOCs.

config PHY_QCOM_EUSB2_REPEATER
	tristate "Qualcomm SNPS eUSB2 Repeater Driver"
	depends on OF && (ARCH_QCOM || COMPILE_TEST)
	select GENERIC_PHY
	help
	  Enable support for the USB high-speed SNPS eUSB2 repeater on Qualcomm
	  PMICs. The repeater is paired with a Synopsys eUSB2 Phy
	  on Qualcomm SOCs.

config PHY_QCOM_M31_USB
	tristate "Qualcomm M31 HS PHY driver support"
	depends on USB && (ARCH_QCOM || COMPILE_TEST)
	select GENERIC_PHY
	help
	  Enable this to support M31 HS PHY transceivers on Qualcomm chips
	  with DWC3 USB core. 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_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_SNPS_FEMTO_V2
	tristate "Qualcomm SNPS FEMTO USB HS PHY V2 module"
	depends on OF && (ARCH_QCOM || COMPILE_TEST)
	select GENERIC_PHY
	help
	  Enable support for the USB high-speed SNPS Femto phy on Qualcomm
	  chipsets.  This PHY has differences in the register map compared
	  to the V1 variants.  The PHY is paired with a Synopsys DWC3 USB
	  controller on Qualcomm SOCs.

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_QCOM_USB_HS_28NM
	tristate "Qualcomm 28nm High-Speed PHY"
	depends on OF && (ARCH_QCOM || COMPILE_TEST)
	depends on EXTCON || !EXTCON # if EXTCON=m, this cannot be built-in
	select GENERIC_PHY
	help
	  Enable this to support the Qualcomm Synopsys DesignWare Core 28nm
	  High-Speed PHY driver. This driver supports the Hi-Speed PHY which
	  is usually paired with either the ChipIdea or Synopsys DWC3 USB
	  IPs on MSM SOCs.

config PHY_QCOM_USB_SS
	tristate "Qualcomm USB Super-Speed PHY driver"
	depends on OF && (ARCH_QCOM || COMPILE_TEST)
	depends on EXTCON || !EXTCON # if EXTCON=m, this cannot be built-in
	select GENERIC_PHY
	help
	  Enable this to support the Super-Speed USB transceiver on various
	  Qualcomm chipsets.

config PHY_QCOM_IPQ806X_USB
	tristate "Qualcomm IPQ806x DWC3 USB PHY driver"
	depends on HAS_IOMEM
	depends on OF && (ARCH_QCOM || COMPILE_TEST)
	select GENERIC_PHY
	help
	  This option enables support for the Synopsis PHYs present inside the
	  Qualcomm USB3.0 DWC3 controller on ipq806x SoC. This driver supports
	  both HS and SS PHY controllers.

config PHY_QCOM_SGMII_ETH
	tristate "Qualcomm DWMAC SGMII SerDes/PHY driver"
	depends on OF && (ARCH_QCOM || COMPILE_TEST)
	depends on HAS_IOMEM
	select GENERIC_PHY
	help
	  Enable this to support the internal SerDes/SGMII PHY on various
	  Qualcomm chipsets.