
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 AB8500_USB_PHY
	bool "AB8500 USB PHY Driver"
	depends on PHY && PMIC_AB8500
	help
	  Support for the USB OTG PHY in ST-Ericsson AB8500.

config APPLE_ATCPHY
       bool "Apple Type-C PHY Driver"
       depends on PHY && ARCH_APPLE
       default y
       help
         Support for the Apple Type-C PHY.

	 This is a dummy driver since the PHY is initialized
	 sufficiently by previous stage firmware.

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_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 || MESON_A1)
	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 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 || SOC_MT7621
	select REGMAP
	select SYSCON
	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.

config PHY_NPCM_USB
	bool "Nuvoton NPCM USB PHY support"
	depends on PHY
	depends on ARCH_NPCM
	help
	  Support the USB PHY in NPCM SoCs

config PHY_IMX8MQ_USB
	bool "NXP i.MX8MQ/i.MX8MP USB PHY Driver"
	depends on PHY
	depends on IMX8MQ || IMX8MP
	help
	  Support the USB3.0 PHY in NXP i.MX8MQ or i.MX8MP SoC

config PHY_IMX8M_PCIE
	bool "NXP i.MX8MM/i.MX8MP PCIe PHY Driver"
	depends on PHY
	depends on IMX8MM || IMX8MP
	select REGMAP
	select SYSCON
	help
	  Support the PCIe PHY in NXP i.MX8MM or i.MX8MP SoC

	  This PHY is found on i.MX8M devices supporting PCIe.

config PHY_XILINX_ZYNQMP
	tristate "Xilinx ZynqMP PHY driver"
	depends on PHY && ARCH_ZYNQMP
	help
	  Enable this to support ZynqMP High Speed Gigabit Transceiver
	  that is part of ZynqMP SoC.

source "drivers/phy/rockchip/Kconfig"
source "drivers/phy/cadence/Kconfig"
source "drivers/phy/ti/Kconfig"
source "drivers/phy/qcom/Kconfig"
source "drivers/phy/renesas/Kconfig"

endmenu
