xref: /kernel/linux/linux-6.6/drivers/usb/phy/Kconfig (revision 62306a36)
162306a36Sopenharmony_ci# SPDX-License-Identifier: GPL-2.0
262306a36Sopenharmony_ci#
362306a36Sopenharmony_ci# Physical Layer USB driver configuration
462306a36Sopenharmony_ci#
562306a36Sopenharmony_cimenu "USB Physical Layer drivers"
662306a36Sopenharmony_ci
762306a36Sopenharmony_ciconfig USB_PHY
862306a36Sopenharmony_ci	select EXTCON
962306a36Sopenharmony_ci	def_bool n
1062306a36Sopenharmony_ci
1162306a36Sopenharmony_ci#
1262306a36Sopenharmony_ci# USB Transceiver Drivers
1362306a36Sopenharmony_ci#
1462306a36Sopenharmony_ciconfig AB8500_USB
1562306a36Sopenharmony_ci	tristate "AB8500 USB Transceiver Driver"
1662306a36Sopenharmony_ci	depends on AB8500_CORE
1762306a36Sopenharmony_ci	select USB_PHY
1862306a36Sopenharmony_ci	help
1962306a36Sopenharmony_ci	  Enable this to support the USB OTG transceiver in AB8500 chip.
2062306a36Sopenharmony_ci	  This transceiver supports high and full speed devices plus,
2162306a36Sopenharmony_ci	  in host mode, low speed.
2262306a36Sopenharmony_ci
2362306a36Sopenharmony_ciconfig FSL_USB2_OTG
2462306a36Sopenharmony_ci	tristate "Freescale USB OTG Transceiver Driver"
2562306a36Sopenharmony_ci	depends on USB_EHCI_FSL && USB_FSL_USB2 && USB_OTG_FSM=y && PM
2662306a36Sopenharmony_ci	depends on USB_GADGET || !USB_GADGET # if USB_GADGET=m, this can't be 'y'
2762306a36Sopenharmony_ci	select USB_PHY
2862306a36Sopenharmony_ci	help
2962306a36Sopenharmony_ci	  Enable this to support Freescale USB OTG transceiver.
3062306a36Sopenharmony_ci
3162306a36Sopenharmony_ciconfig KEYSTONE_USB_PHY
3262306a36Sopenharmony_ci	tristate "Keystone USB PHY Driver"
3362306a36Sopenharmony_ci	depends on ARCH_KEYSTONE || COMPILE_TEST
3462306a36Sopenharmony_ci	depends on NOP_USB_XCEIV
3562306a36Sopenharmony_ci	help
3662306a36Sopenharmony_ci	  Enable this to support Keystone USB phy. This driver provides
3762306a36Sopenharmony_ci	  interface to interact with USB 2.0 and USB 3.0 PHY that is part
3862306a36Sopenharmony_ci	  of the Keystone SOC.
3962306a36Sopenharmony_ci
4062306a36Sopenharmony_ciconfig NOP_USB_XCEIV
4162306a36Sopenharmony_ci	tristate "NOP USB Transceiver Driver"
4262306a36Sopenharmony_ci	depends on USB_GADGET || !USB_GADGET # if USB_GADGET=m, NOP can't be built-in
4362306a36Sopenharmony_ci	select USB_PHY
4462306a36Sopenharmony_ci	help
4562306a36Sopenharmony_ci	  This driver is to be used by all the usb transceiver which are either
4662306a36Sopenharmony_ci	  built-in with usb ip or which are autonomous and doesn't require any
4762306a36Sopenharmony_ci	  phy programming such as ISP1x04 etc.
4862306a36Sopenharmony_ci
4962306a36Sopenharmony_ciconfig AM335X_CONTROL_USB
5062306a36Sopenharmony_ci	tristate
5162306a36Sopenharmony_ci
5262306a36Sopenharmony_ciconfig AM335X_PHY_USB
5362306a36Sopenharmony_ci	tristate "AM335x USB PHY Driver"
5462306a36Sopenharmony_ci	depends on ARM || COMPILE_TEST
5562306a36Sopenharmony_ci	depends on NOP_USB_XCEIV
5662306a36Sopenharmony_ci	select USB_PHY
5762306a36Sopenharmony_ci	select AM335X_CONTROL_USB
5862306a36Sopenharmony_ci	select USB_COMMON
5962306a36Sopenharmony_ci	help
6062306a36Sopenharmony_ci	  This driver provides PHY support for that phy which part for the
6162306a36Sopenharmony_ci	  AM335x SoC.
6262306a36Sopenharmony_ci
6362306a36Sopenharmony_ciconfig TWL6030_USB
6462306a36Sopenharmony_ci	tristate "TWL6030 USB Transceiver Driver"
6562306a36Sopenharmony_ci	depends on TWL4030_CORE && OMAP_USB2 && USB_MUSB_OMAP2PLUS
6662306a36Sopenharmony_ci	depends on OF
6762306a36Sopenharmony_ci	help
6862306a36Sopenharmony_ci	  Enable this to support the USB OTG transceiver on TWL6030
6962306a36Sopenharmony_ci	  family chips. This TWL6030 transceiver has the VBUS and ID GND
7062306a36Sopenharmony_ci	  and OTG SRP events capabilities. For all other transceiver functionality
7162306a36Sopenharmony_ci	  UTMI PHY is embedded in OMAP4430. The internal PHY configurations APIs
7262306a36Sopenharmony_ci	  are hooked to this driver through platform_data structure.
7362306a36Sopenharmony_ci	  The definition of internal PHY APIs are in the mach-omap2 layer.
7462306a36Sopenharmony_ci
7562306a36Sopenharmony_ciconfig USB_GPIO_VBUS
7662306a36Sopenharmony_ci	tristate "GPIO based peripheral-only VBUS sensing 'transceiver'"
7762306a36Sopenharmony_ci	depends on GPIOLIB || COMPILE_TEST
7862306a36Sopenharmony_ci	depends on USB_GADGET || !USB_GADGET # if USB_GADGET=m, this can't be 'y'
7962306a36Sopenharmony_ci	depends on !USB_CONN_GPIO
8062306a36Sopenharmony_ci	select USB_PHY
8162306a36Sopenharmony_ci	help
8262306a36Sopenharmony_ci	  Provides simple GPIO VBUS sensing for controllers with an
8362306a36Sopenharmony_ci	  internal transceiver via the usb_phy interface, and
8462306a36Sopenharmony_ci	  optionally control of a D+ pullup GPIO as well as a VBUS
8562306a36Sopenharmony_ci	  current limit regulator. This driver is for devices that do
8662306a36Sopenharmony_ci	  NOT support role switch. OTG devices that can do role switch
8762306a36Sopenharmony_ci	  (master/peripheral) shall use the USB based connection
8862306a36Sopenharmony_ci	  detection driver USB_CONN_GPIO.
8962306a36Sopenharmony_ci
9062306a36Sopenharmony_ciconfig OMAP_OTG
9162306a36Sopenharmony_ci	tristate "OMAP USB OTG controller driver"
9262306a36Sopenharmony_ci	depends on ARCH_OMAP_OTG && EXTCON
9362306a36Sopenharmony_ci	help
9462306a36Sopenharmony_ci	  Enable this to support some transceivers on OMAP1 platforms. OTG
9562306a36Sopenharmony_ci	  controller is needed to switch between host and peripheral modes.
9662306a36Sopenharmony_ci
9762306a36Sopenharmony_ci	  This driver can also be built as a module. If so, the module
9862306a36Sopenharmony_ci	  will be called phy-omap-otg.
9962306a36Sopenharmony_ci
10062306a36Sopenharmony_ciconfig TAHVO_USB
10162306a36Sopenharmony_ci	tristate "Tahvo USB transceiver driver"
10262306a36Sopenharmony_ci	depends on MFD_RETU
10362306a36Sopenharmony_ci	depends on USB_GADGET || !USB_GADGET # if USB_GADGET=m, this can't be 'y'
10462306a36Sopenharmony_ci	select USB_PHY
10562306a36Sopenharmony_ci	help
10662306a36Sopenharmony_ci	  Enable this to support USB transceiver on Tahvo. This is used
10762306a36Sopenharmony_ci	  at least on Nokia 770.
10862306a36Sopenharmony_ci
10962306a36Sopenharmony_ciconfig TAHVO_USB_HOST_BY_DEFAULT
11062306a36Sopenharmony_ci	depends on TAHVO_USB
11162306a36Sopenharmony_ci	bool "Device in USB host mode by default"
11262306a36Sopenharmony_ci	help
11362306a36Sopenharmony_ci	  Say Y here, if you want the device to enter USB host mode
11462306a36Sopenharmony_ci	  by default on bootup.
11562306a36Sopenharmony_ci
11662306a36Sopenharmony_ciconfig USB_ISP1301
11762306a36Sopenharmony_ci	tristate "NXP ISP1301 USB transceiver support"
11862306a36Sopenharmony_ci	depends on USB || USB_GADGET
11962306a36Sopenharmony_ci	depends on I2C
12062306a36Sopenharmony_ci	select USB_PHY
12162306a36Sopenharmony_ci	help
12262306a36Sopenharmony_ci	  Say Y here to add support for the NXP ISP1301 USB transceiver driver.
12362306a36Sopenharmony_ci	  This chip is typically used as USB transceiver for USB host, gadget
12462306a36Sopenharmony_ci	  and OTG drivers (to be selected separately).
12562306a36Sopenharmony_ci
12662306a36Sopenharmony_ci	  To compile this driver as a module, choose M here: the
12762306a36Sopenharmony_ci	  module will be called phy-isp1301.
12862306a36Sopenharmony_ci
12962306a36Sopenharmony_ciconfig USB_MV_OTG
13062306a36Sopenharmony_ci	tristate "Marvell USB OTG support"
13162306a36Sopenharmony_ci	depends on USB_EHCI_MV && USB_MV_UDC && PM && USB_OTG
13262306a36Sopenharmony_ci	depends on USB_GADGET || !USB_GADGET # if USB_GADGET=m, this can't be 'y'
13362306a36Sopenharmony_ci	select USB_PHY
13462306a36Sopenharmony_ci	help
13562306a36Sopenharmony_ci	  Say Y here if you want to build Marvell USB OTG transceiver
13662306a36Sopenharmony_ci	  driver in kernel (including PXA and MMP series). This driver
13762306a36Sopenharmony_ci	  implements role switch between EHCI host driver and gadget driver.
13862306a36Sopenharmony_ci
13962306a36Sopenharmony_ci	  To compile this driver as a module, choose M here.
14062306a36Sopenharmony_ci
14162306a36Sopenharmony_ciconfig USB_MXS_PHY
14262306a36Sopenharmony_ci	tristate "Freescale MXS USB PHY support"
14362306a36Sopenharmony_ci	depends on ARCH_MXC || ARCH_MXS
14462306a36Sopenharmony_ci	select STMP_DEVICE
14562306a36Sopenharmony_ci	select USB_PHY
14662306a36Sopenharmony_ci	help
14762306a36Sopenharmony_ci	  Enable this to support the Freescale MXS USB PHY.
14862306a36Sopenharmony_ci
14962306a36Sopenharmony_ci	  MXS Phy is used by some of the i.MX SoCs, for example imx23/28/6x.
15062306a36Sopenharmony_ci
15162306a36Sopenharmony_ciconfig USB_TEGRA_PHY
15262306a36Sopenharmony_ci	tristate "NVIDIA Tegra USB PHY Driver"
15362306a36Sopenharmony_ci	depends on ARCH_TEGRA || COMPILE_TEST
15462306a36Sopenharmony_ci	select USB_COMMON
15562306a36Sopenharmony_ci	select USB_PHY
15662306a36Sopenharmony_ci	select USB_ULPI
15762306a36Sopenharmony_ci	help
15862306a36Sopenharmony_ci	  This driver provides PHY support for the USB controllers found
15962306a36Sopenharmony_ci	  on NVIDIA Tegra SoC's.
16062306a36Sopenharmony_ci
16162306a36Sopenharmony_ciconfig USB_ULPI
16262306a36Sopenharmony_ci	bool "Generic ULPI Transceiver Driver"
16362306a36Sopenharmony_ci	depends on ARM || ARM64 || COMPILE_TEST
16462306a36Sopenharmony_ci	select USB_ULPI_VIEWPORT
16562306a36Sopenharmony_ci	help
16662306a36Sopenharmony_ci	  Enable this to support ULPI connected USB OTG transceivers which
16762306a36Sopenharmony_ci	  are likely found on embedded boards.
16862306a36Sopenharmony_ci
16962306a36Sopenharmony_ciconfig USB_ULPI_VIEWPORT
17062306a36Sopenharmony_ci	bool
17162306a36Sopenharmony_ci	help
17262306a36Sopenharmony_ci	  Provides read/write operations to the ULPI phy register set for
17362306a36Sopenharmony_ci	  controllers with a viewport register (e.g. Chipidea/ARC controllers).
17462306a36Sopenharmony_ci
17562306a36Sopenharmony_ciendmenu
176