xref: /openbmc/linux/drivers/usb/phy/Kconfig (revision 11e00292)
1cae8dc3bSGreg Kroah-Hartman# SPDX-License-Identifier: GPL-2.0
28b7c3b68SRoland Stigge#
38b7c3b68SRoland Stigge# Physical Layer USB driver configuration
48b7c3b68SRoland Stigge#
5052a11d1SRoger Quadrosmenu "USB Physical Layer drivers"
6657b306aSKishon Vijay Abraham I
7052a11d1SRoger Quadrosconfig USB_PHY
87d21114dSBaolin Wang	select EXTCON
9052a11d1SRoger Quadros	def_bool n
108b7c3b68SRoland Stigge
11a0e63123SFelipe Balbi#
12a0e63123SFelipe Balbi# USB Transceiver Drivers
13a0e63123SFelipe Balbi#
14a0e63123SFelipe Balbiconfig AB8500_USB
15a0e63123SFelipe Balbi	tristate "AB8500 USB Transceiver Driver"
16a0e63123SFelipe Balbi	depends on AB8500_CORE
17052a11d1SRoger Quadros	select USB_PHY
1857f6ce07SKishon Vijay Abraham I	help
19a0e63123SFelipe Balbi	  Enable this to support the USB OTG transceiver in AB8500 chip.
20a0e63123SFelipe Balbi	  This transceiver supports high and full speed devices plus,
21a0e63123SFelipe Balbi	  in host mode, low speed.
22a0e63123SFelipe Balbi
23a0e63123SFelipe Balbiconfig FSL_USB2_OTG
242100e3caSArnd Bergmann	tristate "Freescale USB OTG Transceiver Driver"
25f2105d42SAnders Roxell	depends on USB_EHCI_FSL && USB_FSL_USB2 && USB_OTG_FSM=y && PM
265a8d651aSFelipe Balbi	depends on USB_GADGET || !USB_GADGET # if USB_GADGET=m, this can't be 'y'
27052a11d1SRoger Quadros	select USB_PHY
28a0e63123SFelipe Balbi	help
29a0e63123SFelipe Balbi	  Enable this to support Freescale USB OTG transceiver.
30a0e63123SFelipe Balbi
31a0e63123SFelipe Balbiconfig ISP1301_OMAP
32a0e63123SFelipe Balbi	tristate "Philips ISP1301 with OMAP OTG"
33*11e00292SArnd Bergmann	depends on I2C
34*11e00292SArnd Bergmann	depends on ARCH_OMAP_OTG || (ARM && COMPILE_TEST)
357cd0c298SFelipe Balbi	depends on USB
365a8d651aSFelipe Balbi	depends on USB_GADGET || !USB_GADGET # if USB_GADGET=m, this can't be 'y'
37052a11d1SRoger Quadros	select USB_PHY
38a0e63123SFelipe Balbi	help
39a0e63123SFelipe Balbi	  If you say yes here you get support for the Philips ISP1301
40a0e63123SFelipe Balbi	  USB-On-The-Go transceiver working with the OMAP OTG controller.
41a0e63123SFelipe Balbi	  The ISP1301 is a full speed USB  transceiver which is used in
42a0e63123SFelipe Balbi	  products including H2, H3, and H4 development boards for Texas
43a0e63123SFelipe Balbi	  Instruments OMAP processors.
44a0e63123SFelipe Balbi
45a0e63123SFelipe Balbi	  This driver can also be built as a module.  If so, the module
4612c8d64eSAaro Koskinen	  will be called phy-isp1301-omap.
47a0e63123SFelipe Balbi
4825acdd08SWingMan Kwokconfig KEYSTONE_USB_PHY
4925acdd08SWingMan Kwok	tristate "Keystone USB PHY Driver"
5025acdd08SWingMan Kwok	depends on ARCH_KEYSTONE || COMPILE_TEST
515a8d651aSFelipe Balbi	depends on NOP_USB_XCEIV
5225acdd08SWingMan Kwok	help
5325acdd08SWingMan Kwok	  Enable this to support Keystone USB phy. This driver provides
5425acdd08SWingMan Kwok	  interface to interact with USB 2.0 and USB 3.0 PHY that is part
5525acdd08SWingMan Kwok	  of the Keystone SOC.
5625acdd08SWingMan Kwok
57a0e63123SFelipe Balbiconfig NOP_USB_XCEIV
58a0e63123SFelipe Balbi	tristate "NOP USB Transceiver Driver"
595a8d651aSFelipe Balbi	depends on USB_GADGET || !USB_GADGET # if USB_GADGET=m, NOP can't be built-in
60052a11d1SRoger Quadros	select USB_PHY
61a0e63123SFelipe Balbi	help
62a0e63123SFelipe Balbi	  This driver is to be used by all the usb transceiver which are either
63a0e63123SFelipe Balbi	  built-in with usb ip or which are autonomous and doesn't require any
64a0e63123SFelipe Balbi	  phy programming such as ISP1x04 etc.
6557f6ce07SKishon Vijay Abraham I
663bb869c8SSebastian Andrzej Siewiorconfig AM335X_CONTROL_USB
673bb869c8SSebastian Andrzej Siewior	tristate
683bb869c8SSebastian Andrzej Siewior
693bb869c8SSebastian Andrzej Siewiorconfig AM335X_PHY_USB
703bb869c8SSebastian Andrzej Siewior	tristate "AM335x USB PHY Driver"
717ba01278SDave Jones	depends on ARM || COMPILE_TEST
725a8d651aSFelipe Balbi	depends on NOP_USB_XCEIV
733bb869c8SSebastian Andrzej Siewior	select USB_PHY
743bb869c8SSebastian Andrzej Siewior	select AM335X_CONTROL_USB
7559f042f6SBin Liu	select USB_COMMON
763bb869c8SSebastian Andrzej Siewior	help
773bb869c8SSebastian Andrzej Siewior	  This driver provides PHY support for that phy which part for the
783bb869c8SSebastian Andrzej Siewior	  AM335x SoC.
793bb869c8SSebastian Andrzej Siewior
80a0e63123SFelipe Balbiconfig TWL6030_USB
81a0e63123SFelipe Balbi	tristate "TWL6030 USB Transceiver Driver"
82a0e63123SFelipe Balbi	depends on TWL4030_CORE && OMAP_USB2 && USB_MUSB_OMAP2PLUS
831ad528dbSNicolae Rosia	depends on OF
84a0e63123SFelipe Balbi	help
85a0e63123SFelipe Balbi	  Enable this to support the USB OTG transceiver on TWL6030
86a0e63123SFelipe Balbi	  family chips. This TWL6030 transceiver has the VBUS and ID GND
87a0e63123SFelipe Balbi	  and OTG SRP events capabilities. For all other transceiver functionality
88a0e63123SFelipe Balbi	  UTMI PHY is embedded in OMAP4430. The internal PHY configurations APIs
89a0e63123SFelipe Balbi	  are hooked to this driver through platform_data structure.
90a0e63123SFelipe Balbi	  The definition of internal PHY APIs are in the mach-omap2 layer.
91a0e63123SFelipe Balbi
92a0e63123SFelipe Balbiconfig USB_GPIO_VBUS
93a0e63123SFelipe Balbi	tristate "GPIO based peripheral-only VBUS sensing 'transceiver'"
94db978e28SGeert Uytterhoeven	depends on GPIOLIB || COMPILE_TEST
955a8d651aSFelipe Balbi	depends on USB_GADGET || !USB_GADGET # if USB_GADGET=m, this can't be 'y'
96052a11d1SRoger Quadros	select USB_PHY
97a0e63123SFelipe Balbi	help
98a0e63123SFelipe Balbi	  Provides simple GPIO VBUS sensing for controllers with an
99a0e63123SFelipe Balbi	  internal transceiver via the usb_phy interface, and
100a0e63123SFelipe Balbi	  optionally control of a D+ pullup GPIO as well as a VBUS
101a0e63123SFelipe Balbi	  current limit regulator.
10201658f0fSKishon Vijay Abraham I
103449d2ba6SAaro Koskinenconfig OMAP_OTG
104449d2ba6SAaro Koskinen	tristate "OMAP USB OTG controller driver"
105449d2ba6SAaro Koskinen	depends on ARCH_OMAP_OTG && EXTCON
106449d2ba6SAaro Koskinen	help
107449d2ba6SAaro Koskinen	  Enable this to support some transceivers on OMAP1 platforms. OTG
108449d2ba6SAaro Koskinen	  controller is needed to switch between host and peripheral modes.
109449d2ba6SAaro Koskinen
110449d2ba6SAaro Koskinen	  This driver can also be built as a module. If so, the module
11112c8d64eSAaro Koskinen	  will be called phy-omap-otg.
112449d2ba6SAaro Koskinen
1139ba96ae5SAaro Koskinenconfig TAHVO_USB
1149ba96ae5SAaro Koskinen	tristate "Tahvo USB transceiver driver"
1157d21114dSBaolin Wang	depends on MFD_RETU
1165a8d651aSFelipe Balbi	depends on USB_GADGET || !USB_GADGET # if USB_GADGET=m, this can't be 'y'
1179ba96ae5SAaro Koskinen	select USB_PHY
1189ba96ae5SAaro Koskinen	help
1199ba96ae5SAaro Koskinen	  Enable this to support USB transceiver on Tahvo. This is used
1209ba96ae5SAaro Koskinen	  at least on Nokia 770.
1219ba96ae5SAaro Koskinen
1229ba96ae5SAaro Koskinenconfig TAHVO_USB_HOST_BY_DEFAULT
1239ba96ae5SAaro Koskinen	depends on TAHVO_USB
1246341e62bSChristoph Jaeger	bool "Device in USB host mode by default"
1259ba96ae5SAaro Koskinen	help
1269ba96ae5SAaro Koskinen	  Say Y here, if you want the device to enter USB host mode
1279ba96ae5SAaro Koskinen	  by default on bootup.
1289ba96ae5SAaro Koskinen
1298b7c3b68SRoland Stiggeconfig USB_ISP1301
1308b7c3b68SRoland Stigge	tristate "NXP ISP1301 USB transceiver support"
131c6156328SAlexandre Pereira da Silva	depends on USB || USB_GADGET
1328b7c3b68SRoland Stigge	depends on I2C
133052a11d1SRoger Quadros	select USB_PHY
1348b7c3b68SRoland Stigge	help
1358b7c3b68SRoland Stigge	  Say Y here to add support for the NXP ISP1301 USB transceiver driver.
1368b7c3b68SRoland Stigge	  This chip is typically used as USB transceiver for USB host, gadget
1378b7c3b68SRoland Stigge	  and OTG drivers (to be selected separately).
1388b7c3b68SRoland Stigge
1398b7c3b68SRoland Stigge	  To compile this driver as a module, choose M here: the
14012c8d64eSAaro Koskinen	  module will be called phy-isp1301.
141a67e76acSYu Xu
142a0e63123SFelipe Balbiconfig USB_MV_OTG
143a0e63123SFelipe Balbi	tristate "Marvell USB OTG support"
144c4f16130SPeter Chen	depends on USB_EHCI_MV && USB_MV_UDC && PM && USB_OTG
1455a8d651aSFelipe Balbi	depends on USB_GADGET || !USB_GADGET # if USB_GADGET=m, this can't be 'y'
146052a11d1SRoger Quadros	select USB_PHY
147a0e63123SFelipe Balbi	help
14844ef9b2cSColin Ian King	  Say Y here if you want to build Marvell USB OTG transceiver
149a0e63123SFelipe Balbi	  driver in kernel (including PXA and MMP series). This driver
150a0e63123SFelipe Balbi	  implements role switch between EHCI host driver and gadget driver.
151a0e63123SFelipe Balbi
152a0e63123SFelipe Balbi	  To compile this driver as a module, choose M here.
153a0e63123SFelipe Balbi
154a0e63123SFelipe Balbiconfig USB_MXS_PHY
155a0e63123SFelipe Balbi	tristate "Freescale MXS USB PHY support"
156a0e63123SFelipe Balbi	depends on ARCH_MXC || ARCH_MXS
157a0e63123SFelipe Balbi	select STMP_DEVICE
158052a11d1SRoger Quadros	select USB_PHY
159a0e63123SFelipe Balbi	help
160a0e63123SFelipe Balbi	  Enable this to support the Freescale MXS USB PHY.
161a0e63123SFelipe Balbi
162a0e63123SFelipe Balbi	  MXS Phy is used by some of the i.MX SoCs, for example imx23/28/6x.
1631789e52aSKuninori Morimoto
164ee30ec0cSDmitry Osipenkoconfig USB_TEGRA_PHY
165ee30ec0cSDmitry Osipenko	tristate "NVIDIA Tegra USB PHY Driver"
16691687c19SKrzysztof Kozlowski	depends on ARCH_TEGRA || COMPILE_TEST
167822852f2SArnd Bergmann	select USB_COMMON
168ee30ec0cSDmitry Osipenko	select USB_PHY
169ee30ec0cSDmitry Osipenko	select USB_ULPI
170ee30ec0cSDmitry Osipenko	help
171ee30ec0cSDmitry Osipenko	  This driver provides PHY support for the USB controllers found
172ee30ec0cSDmitry Osipenko	  on NVIDIA Tegra SoC's.
173ee30ec0cSDmitry Osipenko
174a0e63123SFelipe Balbiconfig USB_ULPI
175a0e63123SFelipe Balbi	bool "Generic ULPI Transceiver Driver"
17691687c19SKrzysztof Kozlowski	depends on ARM || ARM64 || COMPILE_TEST
1771ea276cbSIvan T. Ivanov	select USB_ULPI_VIEWPORT
178337dc3a7SPraveen Paneri	help
179a0e63123SFelipe Balbi	  Enable this to support ULPI connected USB OTG transceivers which
180a0e63123SFelipe Balbi	  are likely found on embedded boards.
181a0e63123SFelipe Balbi
182a0e63123SFelipe Balbiconfig USB_ULPI_VIEWPORT
183a0e63123SFelipe Balbi	bool
184a0e63123SFelipe Balbi	help
185a0e63123SFelipe Balbi	  Provides read/write operations to the ULPI phy register set for
186a0e63123SFelipe Balbi	  controllers with a viewport register (e.g. Chipidea/ARC controllers).
187a0e63123SFelipe Balbi
188541368b4SPaul Cercueilconfig JZ4770_PHY
1892a6c0b82S周琰杰 (Zhou Yanjie)	tristate "Ingenic SoCs Transceiver Driver"
190541368b4SPaul Cercueil	depends on MIPS || COMPILE_TEST
191541368b4SPaul Cercueil	select USB_PHY
192541368b4SPaul Cercueil	help
193541368b4SPaul Cercueil	  This driver provides PHY support for the USB controller found
1942a6c0b82S周琰杰 (Zhou Yanjie)	  on the JZ-series and X-series SoCs from Ingenic.
195541368b4SPaul Cercueil
196052a11d1SRoger Quadrosendmenu
197