xref: /linux/drivers/usb/phy/Kconfig (revision c0c9379f235df33a12ceae94370ad80c5278324d)
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
3125acdd08SWingMan Kwokconfig KEYSTONE_USB_PHY
3225acdd08SWingMan Kwok	tristate "Keystone USB PHY Driver"
3325acdd08SWingMan Kwok	depends on ARCH_KEYSTONE || COMPILE_TEST
345a8d651aSFelipe Balbi	depends on NOP_USB_XCEIV
3525acdd08SWingMan Kwok	help
3625acdd08SWingMan Kwok	  Enable this to support Keystone USB phy. This driver provides
3725acdd08SWingMan Kwok	  interface to interact with USB 2.0 and USB 3.0 PHY that is part
3825acdd08SWingMan Kwok	  of the Keystone SOC.
3925acdd08SWingMan Kwok
40a0e63123SFelipe Balbiconfig NOP_USB_XCEIV
41a0e63123SFelipe Balbi	tristate "NOP USB Transceiver Driver"
425a8d651aSFelipe Balbi	depends on USB_GADGET || !USB_GADGET # if USB_GADGET=m, NOP can't be built-in
43052a11d1SRoger Quadros	select USB_PHY
44a0e63123SFelipe Balbi	help
45a0e63123SFelipe Balbi	  This driver is to be used by all the usb transceiver which are either
46a0e63123SFelipe Balbi	  built-in with usb ip or which are autonomous and doesn't require any
47a0e63123SFelipe Balbi	  phy programming such as ISP1x04 etc.
4857f6ce07SKishon Vijay Abraham I
493bb869c8SSebastian Andrzej Siewiorconfig AM335X_CONTROL_USB
503bb869c8SSebastian Andrzej Siewior	tristate
513bb869c8SSebastian Andrzej Siewior
523bb869c8SSebastian Andrzej Siewiorconfig AM335X_PHY_USB
533bb869c8SSebastian Andrzej Siewior	tristate "AM335x USB PHY Driver"
547ba01278SDave Jones	depends on ARM || COMPILE_TEST
555a8d651aSFelipe Balbi	depends on NOP_USB_XCEIV
563bb869c8SSebastian Andrzej Siewior	select USB_PHY
573bb869c8SSebastian Andrzej Siewior	select AM335X_CONTROL_USB
5859f042f6SBin Liu	select USB_COMMON
593bb869c8SSebastian Andrzej Siewior	help
603bb869c8SSebastian Andrzej Siewior	  This driver provides PHY support for that phy which part for the
613bb869c8SSebastian Andrzej Siewior	  AM335x SoC.
623bb869c8SSebastian Andrzej Siewior
63a0e63123SFelipe Balbiconfig TWL6030_USB
64a0e63123SFelipe Balbi	tristate "TWL6030 USB Transceiver Driver"
65a0e63123SFelipe Balbi	depends on TWL4030_CORE && OMAP_USB2 && USB_MUSB_OMAP2PLUS
661ad528dbSNicolae Rosia	depends on OF
67a0e63123SFelipe Balbi	help
68a0e63123SFelipe Balbi	  Enable this to support the USB OTG transceiver on TWL6030
69a0e63123SFelipe Balbi	  family chips. This TWL6030 transceiver has the VBUS and ID GND
70a0e63123SFelipe Balbi	  and OTG SRP events capabilities. For all other transceiver functionality
71a0e63123SFelipe Balbi	  UTMI PHY is embedded in OMAP4430. The internal PHY configurations APIs
72a0e63123SFelipe Balbi	  are hooked to this driver through platform_data structure.
73a0e63123SFelipe Balbi	  The definition of internal PHY APIs are in the mach-omap2 layer.
74a0e63123SFelipe Balbi
75a0e63123SFelipe Balbiconfig USB_GPIO_VBUS
76a0e63123SFelipe Balbi	tristate "GPIO based peripheral-only VBUS sensing 'transceiver'"
77db978e28SGeert Uytterhoeven	depends on GPIOLIB || COMPILE_TEST
785a8d651aSFelipe Balbi	depends on USB_GADGET || !USB_GADGET # if USB_GADGET=m, this can't be 'y'
79*0ce0f9d0SLinus Walleij	depends on !USB_CONN_GPIO
80052a11d1SRoger Quadros	select USB_PHY
81a0e63123SFelipe Balbi	help
82a0e63123SFelipe Balbi	  Provides simple GPIO VBUS sensing for controllers with an
83a0e63123SFelipe Balbi	  internal transceiver via the usb_phy interface, and
84a0e63123SFelipe Balbi	  optionally control of a D+ pullup GPIO as well as a VBUS
85*0ce0f9d0SLinus Walleij	  current limit regulator. This driver is for devices that do
86*0ce0f9d0SLinus Walleij	  NOT support role switch. OTG devices that can do role switch
87*0ce0f9d0SLinus Walleij	  (master/peripheral) shall use the USB based connection
88*0ce0f9d0SLinus Walleij	  detection driver USB_CONN_GPIO.
8901658f0fSKishon Vijay Abraham I
90449d2ba6SAaro Koskinenconfig OMAP_OTG
91449d2ba6SAaro Koskinen	tristate "OMAP USB OTG controller driver"
92449d2ba6SAaro Koskinen	depends on ARCH_OMAP_OTG && EXTCON
93449d2ba6SAaro Koskinen	help
94449d2ba6SAaro Koskinen	  Enable this to support some transceivers on OMAP1 platforms. OTG
95449d2ba6SAaro Koskinen	  controller is needed to switch between host and peripheral modes.
96449d2ba6SAaro Koskinen
97449d2ba6SAaro Koskinen	  This driver can also be built as a module. If so, the module
9812c8d64eSAaro Koskinen	  will be called phy-omap-otg.
99449d2ba6SAaro Koskinen
1009ba96ae5SAaro Koskinenconfig TAHVO_USB
1019ba96ae5SAaro Koskinen	tristate "Tahvo USB transceiver driver"
1027d21114dSBaolin Wang	depends on MFD_RETU
1035a8d651aSFelipe Balbi	depends on USB_GADGET || !USB_GADGET # if USB_GADGET=m, this can't be 'y'
1049ba96ae5SAaro Koskinen	select USB_PHY
1059ba96ae5SAaro Koskinen	help
1069ba96ae5SAaro Koskinen	  Enable this to support USB transceiver on Tahvo. This is used
1079ba96ae5SAaro Koskinen	  at least on Nokia 770.
1089ba96ae5SAaro Koskinen
1099ba96ae5SAaro Koskinenconfig TAHVO_USB_HOST_BY_DEFAULT
1109ba96ae5SAaro Koskinen	depends on TAHVO_USB
1116341e62bSChristoph Jaeger	bool "Device in USB host mode by default"
1129ba96ae5SAaro Koskinen	help
1139ba96ae5SAaro Koskinen	  Say Y here, if you want the device to enter USB host mode
1149ba96ae5SAaro Koskinen	  by default on bootup.
1159ba96ae5SAaro Koskinen
1168b7c3b68SRoland Stiggeconfig USB_ISP1301
1178b7c3b68SRoland Stigge	tristate "NXP ISP1301 USB transceiver support"
118c6156328SAlexandre Pereira da Silva	depends on USB || USB_GADGET
1198b7c3b68SRoland Stigge	depends on I2C
120052a11d1SRoger Quadros	select USB_PHY
1218b7c3b68SRoland Stigge	help
1228b7c3b68SRoland Stigge	  Say Y here to add support for the NXP ISP1301 USB transceiver driver.
1238b7c3b68SRoland Stigge	  This chip is typically used as USB transceiver for USB host, gadget
1248b7c3b68SRoland Stigge	  and OTG drivers (to be selected separately).
1258b7c3b68SRoland Stigge
1268b7c3b68SRoland Stigge	  To compile this driver as a module, choose M here: the
12712c8d64eSAaro Koskinen	  module will be called phy-isp1301.
128a67e76acSYu Xu
129a0e63123SFelipe Balbiconfig USB_MXS_PHY
130a0e63123SFelipe Balbi	tristate "Freescale MXS USB PHY support"
131a0e63123SFelipe Balbi	depends on ARCH_MXC || ARCH_MXS
132a0e63123SFelipe Balbi	select STMP_DEVICE
133052a11d1SRoger Quadros	select USB_PHY
134a0e63123SFelipe Balbi	help
135a0e63123SFelipe Balbi	  Enable this to support the Freescale MXS USB PHY.
136a0e63123SFelipe Balbi
137a0e63123SFelipe Balbi	  MXS Phy is used by some of the i.MX SoCs, for example imx23/28/6x.
1381789e52aSKuninori Morimoto
139ee30ec0cSDmitry Osipenkoconfig USB_TEGRA_PHY
140ee30ec0cSDmitry Osipenko	tristate "NVIDIA Tegra USB PHY Driver"
14191687c19SKrzysztof Kozlowski	depends on ARCH_TEGRA || COMPILE_TEST
142822852f2SArnd Bergmann	select USB_COMMON
143ee30ec0cSDmitry Osipenko	select USB_PHY
144ee30ec0cSDmitry Osipenko	select USB_ULPI
145ee30ec0cSDmitry Osipenko	help
146ee30ec0cSDmitry Osipenko	  This driver provides PHY support for the USB controllers found
147ee30ec0cSDmitry Osipenko	  on NVIDIA Tegra SoC's.
148ee30ec0cSDmitry Osipenko
149a0e63123SFelipe Balbiconfig USB_ULPI
150a0e63123SFelipe Balbi	bool "Generic ULPI Transceiver Driver"
15191687c19SKrzysztof Kozlowski	depends on ARM || ARM64 || COMPILE_TEST
1521ea276cbSIvan T. Ivanov	select USB_ULPI_VIEWPORT
153337dc3a7SPraveen Paneri	help
154a0e63123SFelipe Balbi	  Enable this to support ULPI connected USB OTG transceivers which
155a0e63123SFelipe Balbi	  are likely found on embedded boards.
156a0e63123SFelipe Balbi
157a0e63123SFelipe Balbiconfig USB_ULPI_VIEWPORT
158a0e63123SFelipe Balbi	bool
159a0e63123SFelipe Balbi	help
160a0e63123SFelipe Balbi	  Provides read/write operations to the ULPI phy register set for
161a0e63123SFelipe Balbi	  controllers with a viewport register (e.g. Chipidea/ARC controllers).
162a0e63123SFelipe Balbi
163052a11d1SRoger Quadrosendmenu
164