
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
	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 AML_USB3_PHY
	bool "amlogic PHY3 support"
	depends on PHY
	help
	  This select a amlogic PHY3 driver.

config AML_USB2_PHY
	bool "amlogic PHY2 support"
	depends on PHY
	help
	  This select a amlogic PHY2 driver.


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 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 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_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_GXL_USB_PHY
	bool "Amlogic Meson GXL USB PHYs"
	depends on PHY && ARCH_MESON && MESON_GXL
	imply REGMAP
	help
	  This is the generic phy driver for the Amlogic Meson GXL
	  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.

endmenu

