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