# SPDX-License-Identifier: GPL-2.0-only
#
# PHY
#

menu "PHY Subsystem"

config GENERIC_PHY
	bool "PHY Core"
	help
	  Generic PHY support.

	  This framework is designed to provide a generic interface for PHY
	  devices present in the kernel. This layer will have the generic
	  API by which phy drivers can create PHY using the phy framework and
	  phy users can obtain reference to the PHY. All the users of this
	  framework should select this config.

config GENERIC_PHY_MIPI_DPHY
	bool
	depends on GENERIC_PHY
	help
	  Generic MIPI D-PHY support.

	  Provides a number of helpers a core functions for MIPI D-PHY
	  drivers to us.

config PHY_LPC18XX_USB_OTG
	tristate "NXP LPC18xx/43xx SoC USB OTG PHY driver"
	depends on OF && (ARCH_LPC18XX || COMPILE_TEST)
	depends on MFD_SYSCON
	select GENERIC_PHY
	help
	  Enable this to support NXP LPC18xx/43xx internal USB OTG PHY.

	  This driver is need for USB0 support on LPC18xx/43xx and takes
	  care of enabling and clock setup.

config PHY_PISTACHIO_USB
	tristate "IMG Pistachio USB2.0 PHY driver"
	depends on MIPS || COMPILE_TEST
	select GENERIC_PHY
	help
	  Enable this to support the USB2.0 PHY on the IMG Pistachio SoC.

config PHY_XGENE
	tristate "APM X-Gene 15Gbps PHY support"
	depends on HAS_IOMEM && OF && (ARCH_XGENE || COMPILE_TEST)
	select GENERIC_PHY
	help
	  This option enables support for APM X-Gene SoC multi-purpose PHY.

config USB_LGM_PHY
	tristate "INTEL Lightning Mountain USB PHY Driver"
	depends on USB_SUPPORT
	depends on X86 || COMPILE_TEST
	select USB_PHY
	select REGULATOR
	select REGULATOR_FIXED_VOLTAGE
	help
	  Enable this to support Intel DWC3 PHY USB phy. This driver provides
	  interface to interact with USB GEN-II and USB 3.x PHY that is part
	  of the Intel network SOC.

config PHY_CAN_TRANSCEIVER
	tristate "CAN transceiver PHY"
	select GENERIC_PHY
	select MULTIPLEXER
	help
	  This option enables support for CAN transceivers as a PHY. This
	  driver provides function for putting the transceivers in various
	  functional modes using gpios and sets the attribute max link
	  rate, for CAN drivers.

source "drivers/phy/allwinner/Kconfig"
source "drivers/phy/amlogic/Kconfig"
source "drivers/phy/broadcom/Kconfig"
source "drivers/phy/cadence/Kconfig"
source "drivers/phy/freescale/Kconfig"
source "drivers/phy/hisilicon/Kconfig"
source "drivers/phy/ingenic/Kconfig"
source "drivers/phy/lantiq/Kconfig"
source "drivers/phy/marvell/Kconfig"
source "drivers/phy/mediatek/Kconfig"
source "drivers/phy/microchip/Kconfig"
source "drivers/phy/motorola/Kconfig"
source "drivers/phy/mscc/Kconfig"
source "drivers/phy/qualcomm/Kconfig"
source "drivers/phy/ralink/Kconfig"
source "drivers/phy/renesas/Kconfig"
source "drivers/phy/rockchip/Kconfig"
source "drivers/phy/samsung/Kconfig"
source "drivers/phy/socionext/Kconfig"
source "drivers/phy/st/Kconfig"
source "drivers/phy/starfive/Kconfig"
source "drivers/phy/sunplus/Kconfig"
source "drivers/phy/tegra/Kconfig"
source "drivers/phy/ti/Kconfig"
source "drivers/phy/intel/Kconfig"
source "drivers/phy/xilinx/Kconfig"

endmenu
