# SPDX-License-Identifier: GPL-2.0-only
#
# Phy drivers for TI platforms
#
config PHY_DA8XX_USB
	tristate "TI DA8xx USB PHY Driver"
	depends on ARCH_DAVINCI_DA8XX || COMPILE_TEST
	select GENERIC_PHY
	select MFD_SYSCON
	help
	  Enable this to support the USB PHY on DA8xx SoCs.

	  This driver controls both the USB 1.1 PHY and the USB 2.0 PHY.

config PHY_DM816X_USB
	tristate "TI dm816x USB PHY driver"
	depends on ARCH_OMAP2PLUS || COMPILE_TEST
	depends on USB_SUPPORT
	select GENERIC_PHY
	select USB_PHY
	help
	  Enable this for dm816x USB to work.

config PHY_AM654_SERDES
	tristate "TI AM654 SERDES support"
	depends on OF && (ARCH_K3 || COMPILE_TEST)
	depends on COMMON_CLK
	select GENERIC_PHY
	select MULTIPLEXER
	select REGMAP_MMIO
	select MUX_MMIO
	help
	  This option enables support for TI AM654 SerDes PHY used for
	  PCIe.

config PHY_J721E_WIZ
	tristate "TI J721E WIZ (SERDES Wrapper) support"
	depends on OF && (ARCH_K3 || COMPILE_TEST)
	depends on HAS_IOMEM && OF_ADDRESS
	depends on COMMON_CLK
	select GENERIC_PHY
	select MULTIPLEXER
	select REGMAP_MMIO
	select MUX_MMIO
	help
	  This option enables support for WIZ module present in TI's J721E
	  SoC. WIZ is a serdes wrapper used to configure some of the input
	  signals to the SERDES (Sierra/Torrent). This driver configures
	  three clock selects (pll0, pll1, dig) and resets for each of the
	  lanes.

config OMAP_CONTROL_PHY
	tristate "OMAP CONTROL PHY Driver"
	depends on ARCH_OMAP2PLUS || COMPILE_TEST
	help
	  Enable this to add support for the PHY part present in the control
	  module. This driver has API to power on the USB2 PHY and to write to
	  the mailbox. The mailbox is present only in omap4 and the register to
	  power on the USB2 PHY is present in OMAP4 and OMAP5. OMAP5 has an
	  additional register to power on USB3 PHY/SATA PHY/PCIE PHY
	  (PIPE3 PHY).

config OMAP_USB2
	tristate "OMAP USB2 PHY Driver"
	depends on ARCH_OMAP2PLUS || ARCH_K3
	depends on USB_SUPPORT
	select GENERIC_PHY
	select USB_PHY
	select OMAP_CONTROL_PHY if ARCH_OMAP2PLUS || COMPILE_TEST
	help
	  Enable this to support the transceiver that is part of SOC. This
	  driver takes care of all the PHY functionality apart from comparator.
	  The USB OTG controller communicates with the comparator using this
	  driver.

config TI_PIPE3
	tristate "TI PIPE3 PHY Driver"
	depends on ARCH_OMAP2PLUS || COMPILE_TEST
	select GENERIC_PHY
	select OMAP_CONTROL_PHY
	help
	  Enable this to support the PIPE3 PHY that is part of TI SOCs. This
	  driver takes care of all the PHY functionality apart from comparator.
	  This driver interacts with the "OMAP Control PHY Driver" to power
	  on/off the PHY.

config PHY_TUSB1210
	tristate "TI TUSB1210 ULPI PHY module"
	depends on USB_ULPI_BUS
	select GENERIC_PHY
	help
	  Support for TI TUSB1210 USB ULPI PHY.

config TWL4030_USB
	tristate "TWL4030 USB Transceiver Driver"
	depends on TWL4030_CORE && REGULATOR_TWL4030 && USB_MUSB_OMAP2PLUS
	depends on USB_SUPPORT
	depends on USB_GADGET || !USB_GADGET # if USB_GADGET=m, this can't 'y'
	select GENERIC_PHY
	select USB_PHY
	help
	  Enable this to support the USB OTG transceiver on TWL4030
	  family chips (including the TWL5030 and TPS659x0 devices).
	  This transceiver supports high and full speed devices plus,
	  in host mode, low speed.

config PHY_TI_GMII_SEL
	tristate
	select GENERIC_PHY
	select REGMAP
	help
	  This driver supports configuring of the TI CPSW Port mode depending on
	  the Ethernet PHY connected to the CPSW Port.