# 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
	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 && (ARM64 || 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/tegra/Kconfig"
source "drivers/phy/ti/Kconfig"
source "drivers/phy/intel/Kconfig"
source "drivers/phy/xilinx/Kconfig"

endmenu
