
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 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 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
