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