
menu "PHY Subsystem"

config PHY
	bool "PHY Core"
	depends on DM
	help
	  PHY support.

	  This framework is designed to provide a generic interface for PHY
	  devices. PHY devices are dedicated hardware that handle the physical
	  layer of the protocols in the OSI model.
	  PHYs are commonly used for high speed interfaces such as Serial-ATA
	  or PCI express.
	  The API provides functions to initialize/deinitialize the
	  PHY, power on/off the PHY, and reset the PHY. It's meant to be as
	  compatible as possible with the equivalent framework found in the
	  linux kernel.

config SPL_PHY
	bool "PHY Core in SPL"
	depends on DM && SPL
	help
	  PHY support in SPL.

	  This framework is designed to provide a generic interface for PHY
	  devices. PHY devices are dedicated hardware that handle the physical
	  layer of the protocols (https://en.wikipedia.org/wiki/OSI_model).
	  PHYs are commonly used for high speed interfaces such as Serial-ATA
	  or PCI express.
	  The API provides functions to initialize/deinitialize the
	  PHY, power on/off the PHY, and reset the PHY. It's meant to be as
	  compatible as possible with the equivalent framework found in the
	  linux kernel.

config PHY_SANDBOX
	bool "Sandbox PHY support"
	depends on SANDBOX
	depends on PHY
	help
	  This select a dummy sandbox PHY driver. It used only to implement
	  the unit tests for the phy framework

config NOP_PHY
	bool "NOP PHY driver"
	depends on PHY
	help
	  Support for a no-op PHY driver (stubbed PHY driver).

	  This is useful when a driver uses the PHY framework but no real PHY
	  hardware exists.

config SPL_NOP_PHY
	bool "NOP PHY driver in SPL"
	depends on SPL_PHY
	help
	  Support for a no-op PHY driver (stubbed PHY driver) in the SPL.

	  This is useful when a driver uses the PHY framework but no real PHY
	  hardware exists.

config MIPI_DPHY_HELPERS
	bool "MIPI D-PHY support helpers"
	help
	  Provides a number of helpers a core functions for MIPI D-PHY drivers.

config BCM6318_USBH_PHY
	bool "BCM6318 USBH PHY support"
	depends on PHY && ARCH_BMIPS
	select POWER_DOMAIN
	help
	  Support for the Broadcom MIPS BCM6318 USBH PHY.

config BCM6348_USBH_PHY
	bool "BCM6348 USBH PHY support"
	depends on PHY && ARCH_BMIPS
	help
	  Support for the Broadcom MIPS BCM6348 USBH PHY.

config BCM6358_USBH_PHY
	bool "BCM6358 USBH PHY support"
	depends on PHY && ARCH_BMIPS
	help
	  Support for the Broadcom MIPS BCM6358 USBH PHY.

config BCM6368_USBH_PHY
	bool "BCM6368 USBH PHY support"
	depends on PHY && ARCH_BMIPS
	help
	  Support for the Broadcom MIPS BCM6368 USBH PHY.

config BCM_SR_PCIE_PHY
	bool "Broadcom Stingray PCIe PHY driver"
	depends on PHY
	help
	  Enable this to support the Broadcom Stingray PCIe PHY
	  If unsure, say N.

config PHY_DA8XX_USB
	tristate "TI DA8xx USB PHY Driver"
	depends on PHY && ARCH_DAVINCI
	help
	  Enable this to support the USB PHY on DA8xx SoCs.

config PIPE3_PHY
	bool "Support omap's PIPE3 PHY"
	depends on PHY && ARCH_OMAP2PLUS
	help
	  Support for the omap PIPE3 phy for sata

	  This PHY is found on omap devices supporting SATA such as dra7, am57x
	  and omap5

config SPL_PIPE3_PHY
	bool "Support omap's PIPE3 PHY in SPL"
	depends on SPL_PHY && ARCH_OMAP2PLUS
	help
	  Support for the omap PIPE3 phy for sata in SPL

	  This PHY is found on omap devices supporting SATA such as dra7, am57x
	  and omap5

config AM654_PHY
	tristate "TI AM654 SERDES support"
	depends on PHY && ARCH_K3
	select REGMAP
	select SYSCON
	help
	  This option enables support for TI AM654 SerDes PHY used for
	  PCIe.

config STI_USB_PHY
	bool "STMicroelectronics USB2 picoPHY driver for STiH407 family"
	depends on PHY && ARCH_STI
	help
	  This is the generic phy driver for the picoPHY ports
	  used by USB2 and USB3 Host controllers available on
	  STiH407 SoC families.

config PHY_QCOM_IPQ4019_USB
	tristate "Qualcomm IPQ4019 USB PHY driver"
	depends on PHY && ARCH_IPQ40XX
	help
	  Support for the USB PHY-s on Qualcomm IPQ40xx SoC-s.

config PHY_RCAR_GEN2
	tristate "Renesas R-Car Gen2 USB PHY"
	depends on PHY && RCAR_GEN2
	help
	  Support for the Renesas R-Car Gen2 USB PHY. This driver operates the
	  PHY connected to USBHS module, PCI EHCI module and USB3.0 module and
	  allows configuring the module multiplexing.

config PHY_RCAR_GEN3
	tristate "Renesas R-Car Gen3 USB PHY"
	depends on PHY && RCAR_GEN3 && CLK && DM_REGULATOR
	default y if RCAR_GEN3
	help
	  Support for the Renesas R-Car Gen3 USB PHY. This driver operates the
	  PHY connected to EHCI USB module and controls USB OTG operation.

config PHY_STM32_USBPHYC
	tristate "STMicroelectronics STM32 SoC USB HS PHY driver"
	depends on PHY && ARCH_STM32MP
	help
	  Enable this to support the High-Speed USB transceiver that is part of
	  STMicroelectronics STM32 SoCs.

	  This driver controls the entire USB PHY block: the USB PHY controller
	  (USBPHYC) and the two 8-bit wide UTMI+ interface. 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 an USB switch.

config MESON_GXBB_USB_PHY
	bool "Amlogic Meson GXBB USB PHY"
	depends on PHY && ARCH_MESON && MESON_GXBB
	imply REGMAP
	help
	  This is the generic phy driver for the Amlogic Meson GXBB
	  USB2 PHY.

config MESON_GXL_USB_PHY
	bool "Amlogic Meson GXL USB PHYs"
	depends on PHY && ARCH_MESON && (MESON_GXL || MESON_GXM || MESON_AXG)
	imply REGMAP
	help
	  This is the generic phy driver for the Amlogic Meson GXL
	  USB2 and USB3 PHYS.

config MESON_G12A_USB_PHY
	bool "Amlogic Meson G12A USB PHYs"
	depends on PHY && ARCH_MESON && MESON_G12A
	imply REGMAP
	help
	  This is the generic phy driver for the Amlogic Meson G12A
	  USB2 and USB3 PHYS.

config MESON_AXG_MIPI_DPHY
	bool "Amlogic Meson AXG MIPI D-PHY"
	depends on PHY && ARCH_MESON && MESON_AXG
	select MIPI_DPHY_HELPERS
	imply REGMAP
	help
	  This is the generic phy driver for the Amlogic Meson AXG
	  MIPI D-PHY.

config MESON_AXG_MIPI_PCIE_ANALOG_PHY
	bool "Amlogic Meson AXG MIPI PCIe Analog PHY"
	depends on PHY && ARCH_MESON && MESON_AXG
	select MIPI_DPHY_HELPERS
	imply REGMAP
	help
	  This is the generic phy driver for the Amlogic Meson AXG
	  MIPI PCIe Analog PHY.

config MSM8916_USB_PHY
	bool "Qualcomm MSM8916 USB PHY support"
	depends on PHY
	help
          Support the USB PHY in msm8916

	  This PHY is found on qualcomm dragonboard410c development board.

config OMAP_USB2_PHY
	bool "Support OMAP's USB2 PHY"
	depends on PHY
	depends on SYSCON
	help
	  Support for the OMAP's USB2 PHY.

	  This PHY is found on OMAP devices supporting USB2.


config KEYSTONE_USB_PHY
	bool "Support TI Keystone USB PHY"
	depends on PHY
	depends on ARCH_KEYSTONE
	help
	  Support for the USB PHY found on some Keystone (k2) processors

	  This PHY is found on some Keystone (K2) devices supporting USB.

config MT7620_USB_PHY
	bool "MediaTek MT7620 USB PHY support"
	depends on PHY
	depends on SOC_MT7620
	help
          Support the intergated USB PHY in MediaTek MT7620 SoC

config MT76X8_USB_PHY
	bool "MediaTek MT76x8 (7628/88) USB PHY support"
	depends on PHY
	depends on SOC_MT7628
	help
          Support the USB PHY in MT76x8 SoCs

	  This PHY is found on MT76x8 devices supporting USB.

config PHY_MTK_TPHY
	bool "MediaTek T-PHY Driver"
	depends on PHY
	depends on ARCH_MEDIATEK
	help
	  MediaTek T-PHY driver supports usb2.0, usb3.0 ports, PCIe and
	  SATA, and meanwhile supports two version T-PHY which have
	  different banks layout, the T-PHY with shared banks between
	  multi-ports is first version, otherwise is second veriosn,
	  so you can easily distinguish them by banks layout.

source "drivers/phy/rockchip/Kconfig"
endmenu
