xref: /linux/drivers/usb/phy/Kconfig (revision 07f0148aafe8c95a3a76cd59e9e75b4d78d1d31d)
1# SPDX-License-Identifier: GPL-2.0
2#
3# Physical Layer USB driver configuration
4#
5menu "USB Physical Layer drivers"
6
7config USB_PHY
8	select EXTCON
9	def_bool n
10
11#
12# USB Transceiver Drivers
13#
14config AB8500_USB
15	tristate "AB8500 USB Transceiver Driver"
16	depends on AB8500_CORE
17	select USB_PHY
18	help
19	  Enable this to support the USB OTG transceiver in AB8500 chip.
20	  This transceiver supports high and full speed devices plus,
21	  in host mode, low speed.
22
23config FSL_USB2_OTG
24	tristate "Freescale USB OTG Transceiver Driver"
25	depends on USB_EHCI_FSL && USB_FSL_USB2 && USB_OTG_FSM=y && PM
26	depends on USB_GADGET || !USB_GADGET # if USB_GADGET=m, this can't be 'y'
27	select USB_PHY
28	help
29	  Enable this to support Freescale USB OTG transceiver.
30
31config ISP1301_OMAP
32	tristate "Philips ISP1301 with OMAP OTG"
33	depends on I2C
34	depends on ARCH_OMAP_OTG || (ARM && COMPILE_TEST)
35	depends on USB
36	depends on USB_GADGET || !USB_GADGET # if USB_GADGET=m, this can't be 'y'
37	select USB_PHY
38	help
39	  If you say yes here you get support for the Philips ISP1301
40	  USB-On-The-Go transceiver working with the OMAP OTG controller.
41	  The ISP1301 is a full speed USB  transceiver which is used in
42	  products including H2, H3, and H4 development boards for Texas
43	  Instruments OMAP processors.
44
45	  This driver can also be built as a module.  If so, the module
46	  will be called phy-isp1301-omap.
47
48config KEYSTONE_USB_PHY
49	tristate "Keystone USB PHY Driver"
50	depends on ARCH_KEYSTONE || COMPILE_TEST
51	depends on NOP_USB_XCEIV
52	help
53	  Enable this to support Keystone USB phy. This driver provides
54	  interface to interact with USB 2.0 and USB 3.0 PHY that is part
55	  of the Keystone SOC.
56
57config NOP_USB_XCEIV
58	tristate "NOP USB Transceiver Driver"
59	depends on USB_GADGET || !USB_GADGET # if USB_GADGET=m, NOP can't be built-in
60	select USB_PHY
61	help
62	  This driver is to be used by all the usb transceiver which are either
63	  built-in with usb ip or which are autonomous and doesn't require any
64	  phy programming such as ISP1x04 etc.
65
66config AM335X_CONTROL_USB
67	tristate
68
69config AM335X_PHY_USB
70	tristate "AM335x USB PHY Driver"
71	depends on ARM || COMPILE_TEST
72	depends on NOP_USB_XCEIV
73	select USB_PHY
74	select AM335X_CONTROL_USB
75	select USB_COMMON
76	help
77	  This driver provides PHY support for that phy which part for the
78	  AM335x SoC.
79
80config TWL6030_USB
81	tristate "TWL6030 USB Transceiver Driver"
82	depends on TWL4030_CORE && OMAP_USB2 && USB_MUSB_OMAP2PLUS
83	depends on OF
84	help
85	  Enable this to support the USB OTG transceiver on TWL6030
86	  family chips. This TWL6030 transceiver has the VBUS and ID GND
87	  and OTG SRP events capabilities. For all other transceiver functionality
88	  UTMI PHY is embedded in OMAP4430. The internal PHY configurations APIs
89	  are hooked to this driver through platform_data structure.
90	  The definition of internal PHY APIs are in the mach-omap2 layer.
91
92config USB_GPIO_VBUS
93	tristate "GPIO based peripheral-only VBUS sensing 'transceiver'"
94	depends on GPIOLIB || COMPILE_TEST
95	depends on USB_GADGET || !USB_GADGET # if USB_GADGET=m, this can't be 'y'
96	depends on !USB_CONN_GPIO
97	select USB_PHY
98	help
99	  Provides simple GPIO VBUS sensing for controllers with an
100	  internal transceiver via the usb_phy interface, and
101	  optionally control of a D+ pullup GPIO as well as a VBUS
102	  current limit regulator. This driver is for devices that do
103	  NOT support role switch. OTG devices that can do role switch
104	  (master/peripheral) shall use the USB based connection
105	  detection driver USB_CONN_GPIO.
106
107config OMAP_OTG
108	tristate "OMAP USB OTG controller driver"
109	depends on ARCH_OMAP_OTG && EXTCON
110	help
111	  Enable this to support some transceivers on OMAP1 platforms. OTG
112	  controller is needed to switch between host and peripheral modes.
113
114	  This driver can also be built as a module. If so, the module
115	  will be called phy-omap-otg.
116
117config TAHVO_USB
118	tristate "Tahvo USB transceiver driver"
119	depends on MFD_RETU
120	depends on USB_GADGET || !USB_GADGET # if USB_GADGET=m, this can't be 'y'
121	select USB_PHY
122	help
123	  Enable this to support USB transceiver on Tahvo. This is used
124	  at least on Nokia 770.
125
126config TAHVO_USB_HOST_BY_DEFAULT
127	depends on TAHVO_USB
128	bool "Device in USB host mode by default"
129	help
130	  Say Y here, if you want the device to enter USB host mode
131	  by default on bootup.
132
133config USB_ISP1301
134	tristate "NXP ISP1301 USB transceiver support"
135	depends on USB || USB_GADGET
136	depends on I2C
137	select USB_PHY
138	help
139	  Say Y here to add support for the NXP ISP1301 USB transceiver driver.
140	  This chip is typically used as USB transceiver for USB host, gadget
141	  and OTG drivers (to be selected separately).
142
143	  To compile this driver as a module, choose M here: the
144	  module will be called phy-isp1301.
145
146config USB_MV_OTG
147	tristate "Marvell USB OTG support"
148	depends on USB_EHCI_MV && USB_MV_UDC && PM && USB_OTG
149	depends on USB_GADGET || !USB_GADGET # if USB_GADGET=m, this can't be 'y'
150	select USB_PHY
151	help
152	  Say Y here if you want to build Marvell USB OTG transceiver
153	  driver in kernel (including PXA and MMP series). This driver
154	  implements role switch between EHCI host driver and gadget driver.
155
156	  To compile this driver as a module, choose M here.
157
158config USB_MXS_PHY
159	tristate "Freescale MXS USB PHY support"
160	depends on ARCH_MXC || ARCH_MXS
161	select STMP_DEVICE
162	select USB_PHY
163	help
164	  Enable this to support the Freescale MXS USB PHY.
165
166	  MXS Phy is used by some of the i.MX SoCs, for example imx23/28/6x.
167
168config USB_TEGRA_PHY
169	tristate "NVIDIA Tegra USB PHY Driver"
170	depends on ARCH_TEGRA || COMPILE_TEST
171	select USB_COMMON
172	select USB_PHY
173	select USB_ULPI
174	help
175	  This driver provides PHY support for the USB controllers found
176	  on NVIDIA Tegra SoC's.
177
178config USB_ULPI
179	bool "Generic ULPI Transceiver Driver"
180	depends on ARM || ARM64 || COMPILE_TEST
181	select USB_ULPI_VIEWPORT
182	help
183	  Enable this to support ULPI connected USB OTG transceivers which
184	  are likely found on embedded boards.
185
186config USB_ULPI_VIEWPORT
187	bool
188	help
189	  Provides read/write operations to the ULPI phy register set for
190	  controllers with a viewport register (e.g. Chipidea/ARC controllers).
191
192endmenu
193