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