0001 # SPDX-License-Identifier: GPL-2.0
0002 #
0003 # Physical Layer USB driver configuration
0004 #
0005 menu "USB Physical Layer drivers"
0006
0007 config USB_PHY
0008 select EXTCON
0009 def_bool n
0010
0011 #
0012 # USB Transceiver Drivers
0013 #
0014 config AB8500_USB
0015 tristate "AB8500 USB Transceiver Driver"
0016 depends on AB8500_CORE
0017 select USB_PHY
0018 help
0019 Enable this to support the USB OTG transceiver in AB8500 chip.
0020 This transceiver supports high and full speed devices plus,
0021 in host mode, low speed.
0022
0023 config FSL_USB2_OTG
0024 tristate "Freescale USB OTG Transceiver Driver"
0025 depends on USB_EHCI_FSL && USB_FSL_USB2 && USB_OTG_FSM=y && PM
0026 depends on USB_GADGET || !USB_GADGET # if USB_GADGET=m, this can't be 'y'
0027 select USB_PHY
0028 help
0029 Enable this to support Freescale USB OTG transceiver.
0030
0031 config ISP1301_OMAP
0032 tristate "Philips ISP1301 with OMAP OTG"
0033 depends on I2C
0034 depends on ARCH_OMAP_OTG || (ARM && COMPILE_TEST)
0035 depends on USB
0036 depends on USB_GADGET || !USB_GADGET # if USB_GADGET=m, this can't be 'y'
0037 select USB_PHY
0038 help
0039 If you say yes here you get support for the Philips ISP1301
0040 USB-On-The-Go transceiver working with the OMAP OTG controller.
0041 The ISP1301 is a full speed USB transceiver which is used in
0042 products including H2, H3, and H4 development boards for Texas
0043 Instruments OMAP processors.
0044
0045 This driver can also be built as a module. If so, the module
0046 will be called phy-isp1301-omap.
0047
0048 config KEYSTONE_USB_PHY
0049 tristate "Keystone USB PHY Driver"
0050 depends on ARCH_KEYSTONE || COMPILE_TEST
0051 depends on NOP_USB_XCEIV
0052 help
0053 Enable this to support Keystone USB phy. This driver provides
0054 interface to interact with USB 2.0 and USB 3.0 PHY that is part
0055 of the Keystone SOC.
0056
0057 config NOP_USB_XCEIV
0058 tristate "NOP USB Transceiver Driver"
0059 depends on USB_GADGET || !USB_GADGET # if USB_GADGET=m, NOP can't be built-in
0060 select USB_PHY
0061 help
0062 This driver is to be used by all the usb transceiver which are either
0063 built-in with usb ip or which are autonomous and doesn't require any
0064 phy programming such as ISP1x04 etc.
0065
0066 config AM335X_CONTROL_USB
0067 tristate
0068
0069 config AM335X_PHY_USB
0070 tristate "AM335x USB PHY Driver"
0071 depends on ARM || COMPILE_TEST
0072 depends on NOP_USB_XCEIV
0073 select USB_PHY
0074 select AM335X_CONTROL_USB
0075 select USB_COMMON
0076 help
0077 This driver provides PHY support for that phy which part for the
0078 AM335x SoC.
0079
0080 config TWL6030_USB
0081 tristate "TWL6030 USB Transceiver Driver"
0082 depends on TWL4030_CORE && OMAP_USB2 && USB_MUSB_OMAP2PLUS
0083 depends on OF
0084 help
0085 Enable this to support the USB OTG transceiver on TWL6030
0086 family chips. This TWL6030 transceiver has the VBUS and ID GND
0087 and OTG SRP events capabilities. For all other transceiver functionality
0088 UTMI PHY is embedded in OMAP4430. The internal PHY configurations APIs
0089 are hooked to this driver through platform_data structure.
0090 The definition of internal PHY APIs are in the mach-omap2 layer.
0091
0092 config USB_GPIO_VBUS
0093 tristate "GPIO based peripheral-only VBUS sensing 'transceiver'"
0094 depends on GPIOLIB || COMPILE_TEST
0095 depends on USB_GADGET || !USB_GADGET # if USB_GADGET=m, this can't be 'y'
0096 select USB_PHY
0097 help
0098 Provides simple GPIO VBUS sensing for controllers with an
0099 internal transceiver via the usb_phy interface, and
0100 optionally control of a D+ pullup GPIO as well as a VBUS
0101 current limit regulator.
0102
0103 config OMAP_OTG
0104 tristate "OMAP USB OTG controller driver"
0105 depends on ARCH_OMAP_OTG && EXTCON
0106 help
0107 Enable this to support some transceivers on OMAP1 platforms. OTG
0108 controller is needed to switch between host and peripheral modes.
0109
0110 This driver can also be built as a module. If so, the module
0111 will be called phy-omap-otg.
0112
0113 config TAHVO_USB
0114 tristate "Tahvo USB transceiver driver"
0115 depends on MFD_RETU
0116 depends on USB_GADGET || !USB_GADGET # if USB_GADGET=m, this can't be 'y'
0117 select USB_PHY
0118 help
0119 Enable this to support USB transceiver on Tahvo. This is used
0120 at least on Nokia 770.
0121
0122 config TAHVO_USB_HOST_BY_DEFAULT
0123 depends on TAHVO_USB
0124 bool "Device in USB host mode by default"
0125 help
0126 Say Y here, if you want the device to enter USB host mode
0127 by default on bootup.
0128
0129 config USB_ISP1301
0130 tristate "NXP ISP1301 USB transceiver support"
0131 depends on USB || USB_GADGET
0132 depends on I2C
0133 select USB_PHY
0134 help
0135 Say Y here to add support for the NXP ISP1301 USB transceiver driver.
0136 This chip is typically used as USB transceiver for USB host, gadget
0137 and OTG drivers (to be selected separately).
0138
0139 To compile this driver as a module, choose M here: the
0140 module will be called phy-isp1301.
0141
0142 config USB_MV_OTG
0143 tristate "Marvell USB OTG support"
0144 depends on USB_EHCI_MV && USB_MV_UDC && PM && USB_OTG
0145 depends on USB_GADGET || !USB_GADGET # if USB_GADGET=m, this can't be 'y'
0146 select USB_PHY
0147 help
0148 Say Y here if you want to build Marvell USB OTG transceiver
0149 driver in kernel (including PXA and MMP series). This driver
0150 implements role switch between EHCI host driver and gadget driver.
0151
0152 To compile this driver as a module, choose M here.
0153
0154 config USB_MXS_PHY
0155 tristate "Freescale MXS USB PHY support"
0156 depends on ARCH_MXC || ARCH_MXS
0157 select STMP_DEVICE
0158 select USB_PHY
0159 help
0160 Enable this to support the Freescale MXS USB PHY.
0161
0162 MXS Phy is used by some of the i.MX SoCs, for example imx23/28/6x.
0163
0164 config USB_TEGRA_PHY
0165 tristate "NVIDIA Tegra USB PHY Driver"
0166 depends on ARCH_TEGRA || COMPILE_TEST
0167 select USB_COMMON
0168 select USB_PHY
0169 select USB_ULPI
0170 help
0171 This driver provides PHY support for the USB controllers found
0172 on NVIDIA Tegra SoC's.
0173
0174 config USB_ULPI
0175 bool "Generic ULPI Transceiver Driver"
0176 depends on ARM || ARM64 || COMPILE_TEST
0177 select USB_ULPI_VIEWPORT
0178 help
0179 Enable this to support ULPI connected USB OTG transceivers which
0180 are likely found on embedded boards.
0181
0182 config USB_ULPI_VIEWPORT
0183 bool
0184 help
0185 Provides read/write operations to the ULPI phy register set for
0186 controllers with a viewport register (e.g. Chipidea/ARC controllers).
0187
0188 config JZ4770_PHY
0189 tristate "Ingenic SoCs Transceiver Driver"
0190 depends on MIPS || COMPILE_TEST
0191 select USB_PHY
0192 help
0193 This driver provides PHY support for the USB controller found
0194 on the JZ-series and X-series SoCs from Ingenic.
0195
0196 endmenu