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