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