Linux-libre 5.3.12-gnu
[librecmc/linux-libre.git] / drivers / usb / phy / Kconfig
1 # SPDX-License-Identifier: GPL-2.0
2 #
3 # Physical Layer USB driver configuration
4 #
5 menu "USB Physical Layer drivers"
6
7 config USB_PHY
8         select EXTCON
9         def_bool n
10
11 #
12 # USB Transceiver Drivers
13 #
14 config 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
23 config 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
31 config 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
47 config 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
56 config 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
65 config AM335X_CONTROL_USB
66         tristate
67
68 config 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
79 config 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
91 config 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
102 config 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
112 config 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
121 config 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
128 config 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
141 config 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 transciever
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
153 config 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
163 config USB_TEGRA_PHY
164         tristate "NVIDIA Tegra USB PHY Driver"
165         depends on ARCH_TEGRA
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
173 config USB_ULPI
174         bool "Generic ULPI Transceiver Driver"
175         depends on ARM || ARM64
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
181 config 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
187 endmenu