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	select USB_PHY
97	help
98	  Provides simple GPIO VBUS sensing for controllers with an
99	  internal transceiver via the usb_phy interface, and
100	  optionally control of a D+ pullup GPIO as well as a VBUS
101	  current limit regulator.
102
103config OMAP_OTG
104	tristate "OMAP USB OTG controller driver"
105	depends on ARCH_OMAP_OTG && EXTCON
106	help
107	  Enable this to support some transceivers on OMAP1 platforms. OTG
108	  controller is needed to switch between host and peripheral modes.
109
110	  This driver can also be built as a module. If so, the module
111	  will be called phy-omap-otg.
112
113config TAHVO_USB
114	tristate "Tahvo USB transceiver driver"
115	depends on MFD_RETU
116	depends on USB_GADGET || !USB_GADGET # if USB_GADGET=m, this can't be 'y'
117	select USB_PHY
118	help
119	  Enable this to support USB transceiver on Tahvo. This is used
120	  at least on Nokia 770.
121
122config TAHVO_USB_HOST_BY_DEFAULT
123	depends on TAHVO_USB
124	bool "Device in USB host mode by default"
125	help
126	  Say Y here, if you want the device to enter USB host mode
127	  by default on bootup.
128
129config USB_ISP1301
130	tristate "NXP ISP1301 USB transceiver support"
131	depends on USB || USB_GADGET
132	depends on I2C
133	select USB_PHY
134	help
135	  Say Y here to add support for the NXP ISP1301 USB transceiver driver.
136	  This chip is typically used as USB transceiver for USB host, gadget
137	  and OTG drivers (to be selected separately).
138
139	  To compile this driver as a module, choose M here: the
140	  module will be called phy-isp1301.
141
142config USB_MV_OTG
143	tristate "Marvell USB OTG support"
144	depends on USB_EHCI_MV && USB_MV_UDC && PM && USB_OTG
145	depends on USB_GADGET || !USB_GADGET # if USB_GADGET=m, this can't be 'y'
146	select USB_PHY
147	help
148	  Say Y here if you want to build Marvell USB OTG transceiver
149	  driver in kernel (including PXA and MMP series). This driver
150	  implements role switch between EHCI host driver and gadget driver.
151
152	  To compile this driver as a module, choose M here.
153
154config USB_MXS_PHY
155	tristate "Freescale MXS USB PHY support"
156	depends on ARCH_MXC || ARCH_MXS
157	select STMP_DEVICE
158	select USB_PHY
159	help
160	  Enable this to support the Freescale MXS USB PHY.
161
162	  MXS Phy is used by some of the i.MX SoCs, for example imx23/28/6x.
163
164config USB_TEGRA_PHY
165	tristate "NVIDIA Tegra USB PHY Driver"
166	depends on ARCH_TEGRA || COMPILE_TEST
167	select USB_COMMON
168	select USB_PHY
169	select USB_ULPI
170	help
171	  This driver provides PHY support for the USB controllers found
172	  on NVIDIA Tegra SoC's.
173
174config USB_ULPI
175	bool "Generic ULPI Transceiver Driver"
176	depends on ARM || ARM64 || COMPILE_TEST
177	select USB_ULPI_VIEWPORT
178	help
179	  Enable this to support ULPI connected USB OTG transceivers which
180	  are likely found on embedded boards.
181
182config USB_ULPI_VIEWPORT
183	bool
184	help
185	  Provides read/write operations to the ULPI phy register set for
186	  controllers with a viewport register (e.g. Chipidea/ARC controllers).
187
188config JZ4770_PHY
189	tristate "Ingenic SoCs Transceiver Driver"
190	depends on MIPS || COMPILE_TEST
191	select USB_PHY
192	help
193	  This driver provides PHY support for the USB controller found
194	  on the JZ-series and X-series SoCs from Ingenic.
195
196endmenu
197