xref: /openbmc/linux/drivers/usb/phy/Kconfig (revision 4e682bbd)
18b7c3b68SRoland Stigge#
28b7c3b68SRoland Stigge# Physical Layer USB driver configuration
38b7c3b68SRoland Stigge#
4edc7cb2eSFelipe Balbimenuconfig USB_PHY
54623245cSArnd Bergmann	bool "USB Physical Layer drivers"
6657b306aSKishon Vijay Abraham I	help
7035978beSGeorge Spelvin	  Most USB controllers have the physical layer signalling part
8035978beSGeorge Spelvin	  (commonly called a PHY) built in.  However, dual-role devices
9035978beSGeorge Spelvin	  (a.k.a. USB on-the-go) which support being USB master or slave
10035978beSGeorge Spelvin	  with the same connector often use an external PHY.
11657b306aSKishon Vijay Abraham I
12035978beSGeorge Spelvin	  The drivers in this submenu add support for such PHY devices.
13035978beSGeorge Spelvin	  They are not needed for standard master-only (or the vast
14035978beSGeorge Spelvin	  majority of slave-only) USB interfaces.
15035978beSGeorge Spelvin
16035978beSGeorge Spelvin	  If you're not sure if this applies to you, it probably doesn't;
17035978beSGeorge Spelvin	  say N here.
18edc7cb2eSFelipe Balbi
19edc7cb2eSFelipe Balbiif USB_PHY
208b7c3b68SRoland Stigge
21a0e63123SFelipe Balbi#
22a0e63123SFelipe Balbi# USB Transceiver Drivers
23a0e63123SFelipe Balbi#
24a0e63123SFelipe Balbiconfig AB8500_USB
25a0e63123SFelipe Balbi	tristate "AB8500 USB Transceiver Driver"
26a0e63123SFelipe Balbi	depends on AB8500_CORE
2757f6ce07SKishon Vijay Abraham I	help
28a0e63123SFelipe Balbi	  Enable this to support the USB OTG transceiver in AB8500 chip.
29a0e63123SFelipe Balbi	  This transceiver supports high and full speed devices plus,
30a0e63123SFelipe Balbi	  in host mode, low speed.
31a0e63123SFelipe Balbi
32a0e63123SFelipe Balbiconfig FSL_USB2_OTG
33a0e63123SFelipe Balbi	bool "Freescale USB OTG Transceiver Driver"
3498f541c6SAlan Stern	depends on USB_EHCI_FSL && USB_FSL_USB2 && PM_RUNTIME
35a0e63123SFelipe Balbi	select USB_OTG
36a0e63123SFelipe Balbi	help
37a0e63123SFelipe Balbi	  Enable this to support Freescale USB OTG transceiver.
38a0e63123SFelipe Balbi
39a0e63123SFelipe Balbiconfig ISP1301_OMAP
40a0e63123SFelipe Balbi	tristate "Philips ISP1301 with OMAP OTG"
41a0e63123SFelipe Balbi	depends on I2C && ARCH_OMAP_OTG
42a0e63123SFelipe Balbi	help
43a0e63123SFelipe Balbi	  If you say yes here you get support for the Philips ISP1301
44a0e63123SFelipe Balbi	  USB-On-The-Go transceiver working with the OMAP OTG controller.
45a0e63123SFelipe Balbi	  The ISP1301 is a full speed USB  transceiver which is used in
46a0e63123SFelipe Balbi	  products including H2, H3, and H4 development boards for Texas
47a0e63123SFelipe Balbi	  Instruments OMAP processors.
48a0e63123SFelipe Balbi
49a0e63123SFelipe Balbi	  This driver can also be built as a module.  If so, the module
50a0e63123SFelipe Balbi	  will be called isp1301_omap.
51a0e63123SFelipe Balbi
52a0e63123SFelipe Balbiconfig MV_U3D_PHY
53a0e63123SFelipe Balbi	bool "Marvell USB 3.0 PHY controller Driver"
5460630c2eSFelipe Balbi	depends on CPU_MMP3
55a0e63123SFelipe Balbi	help
56a0e63123SFelipe Balbi	  Enable this to support Marvell USB 3.0 phy controller for Marvell
57a0e63123SFelipe Balbi	  SoC.
58a0e63123SFelipe Balbi
59a0e63123SFelipe Balbiconfig NOP_USB_XCEIV
60a0e63123SFelipe Balbi	tristate "NOP USB Transceiver Driver"
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
6601658f0fSKishon Vijay Abraham Iconfig OMAP_CONTROL_USB
6701658f0fSKishon Vijay Abraham I	tristate "OMAP CONTROL USB Driver"
684e682bbdSPaul Gortmaker	depends on ARCH_OMAP2PLUS || COMPILE_TEST
6901658f0fSKishon Vijay Abraham I	help
7001658f0fSKishon Vijay Abraham I	  Enable this to add support for the USB part present in the control
7101658f0fSKishon Vijay Abraham I	  module. This driver has API to power on the USB2 PHY and to write to
7201658f0fSKishon Vijay Abraham I	  the mailbox. The mailbox is present only in omap4 and the register to
7301658f0fSKishon Vijay Abraham I	  power on the USB2 PHY is present in OMAP4 and OMAP5. OMAP5 has an
7401658f0fSKishon Vijay Abraham I	  additional register to power on USB3 PHY.
7501658f0fSKishon Vijay Abraham I
768b7c3b68SRoland Stiggeconfig OMAP_USB2
778b7c3b68SRoland Stigge	tristate "OMAP USB2 PHY Driver"
78c6156328SAlexandre Pereira da Silva	depends on ARCH_OMAP2PLUS
798b7c3b68SRoland Stigge	select OMAP_CONTROL_USB
808b7c3b68SRoland Stigge	help
818b7c3b68SRoland Stigge	  Enable this to support the transceiver that is part of SOC. This
828b7c3b68SRoland Stigge	  driver takes care of all the PHY functionality apart from comparator.
838b7c3b68SRoland Stigge	  The USB OTG controller communicates with the comparator using this
848b7c3b68SRoland Stigge	  driver.
858b7c3b68SRoland Stigge
868b7c3b68SRoland Stiggeconfig OMAP_USB3
87a67e76acSYu Xu	tristate "OMAP USB3 PHY Driver"
884e682bbdSPaul Gortmaker	depends on ARCH_OMAP2PLUS || COMPILE_TEST
898b7c3b68SRoland Stigge	select OMAP_CONTROL_USB
908b7c3b68SRoland Stigge	help
918b7c3b68SRoland Stigge	  Enable this to support the USB3 PHY that is part of SOC. This
928b7c3b68SRoland Stigge	  driver takes care of all the PHY functionality apart from comparator.
938b7c3b68SRoland Stigge	  This driver interacts with the "OMAP Control USB Driver" to power
948b7c3b68SRoland Stigge	  on/off the PHY.
958b7c3b68SRoland Stigge
96a0e63123SFelipe Balbiconfig SAMSUNG_USBPHY
976278703bSTomasz Figa	tristate
988b7c3b68SRoland Stigge	help
99dc2377d0SVivek Gautam	  Enable this to support Samsung USB phy helper driver for Samsung SoCs.
100dc2377d0SVivek Gautam	  This driver provides common interface to interact, for Samsung USB 2.0 PHY
101dc2377d0SVivek Gautam	  driver and later for Samsung USB 3.0 PHY driver.
102dc2377d0SVivek Gautam
103dc2377d0SVivek Gautamconfig SAMSUNG_USB2PHY
104dc2377d0SVivek Gautam	tristate "Samsung USB 2.0 PHY controller Driver"
105dc2377d0SVivek Gautam	select SAMSUNG_USBPHY
106dc2377d0SVivek Gautam	help
107dc2377d0SVivek Gautam	  Enable this to support Samsung USB 2.0 (High Speed) PHY controller
108dc2377d0SVivek Gautam	  driver for Samsung SoCs.
109a0e63123SFelipe Balbi
110b5276758SVivek Gautamconfig SAMSUNG_USB3PHY
111b5276758SVivek Gautam	tristate "Samsung USB 3.0 PHY controller Driver"
112b5276758SVivek Gautam	select SAMSUNG_USBPHY
113b5276758SVivek Gautam	help
114b5276758SVivek Gautam	  Enable this to support Samsung USB 3.0 (Super Speed) phy controller
115b5276758SVivek Gautam	  for samsung SoCs.
116b5276758SVivek Gautam
117a0e63123SFelipe Balbiconfig TWL4030_USB
118a0e63123SFelipe Balbi	tristate "TWL4030 USB Transceiver Driver"
119a0e63123SFelipe Balbi	depends on TWL4030_CORE && REGULATOR_TWL4030 && USB_MUSB_OMAP2PLUS
120a0e63123SFelipe Balbi	help
121a0e63123SFelipe Balbi	  Enable this to support the USB OTG transceiver on TWL4030
122a0e63123SFelipe Balbi	  family chips (including the TWL5030 and TPS659x0 devices).
123a0e63123SFelipe Balbi	  This transceiver supports high and full speed devices plus,
124a0e63123SFelipe Balbi	  in host mode, low speed.
125a0e63123SFelipe Balbi
126a0e63123SFelipe Balbiconfig TWL6030_USB
127a0e63123SFelipe Balbi	tristate "TWL6030 USB Transceiver Driver"
128a0e63123SFelipe Balbi	depends on TWL4030_CORE && OMAP_USB2 && USB_MUSB_OMAP2PLUS
129a0e63123SFelipe Balbi	help
130a0e63123SFelipe Balbi	  Enable this to support the USB OTG transceiver on TWL6030
131a0e63123SFelipe Balbi	  family chips. This TWL6030 transceiver has the VBUS and ID GND
132a0e63123SFelipe Balbi	  and OTG SRP events capabilities. For all other transceiver functionality
133a0e63123SFelipe Balbi	  UTMI PHY is embedded in OMAP4430. The internal PHY configurations APIs
134a0e63123SFelipe Balbi	  are hooked to this driver through platform_data structure.
135a0e63123SFelipe Balbi	  The definition of internal PHY APIs are in the mach-omap2 layer.
136a0e63123SFelipe Balbi
137a0e63123SFelipe Balbiconfig USB_GPIO_VBUS
138a0e63123SFelipe Balbi	tristate "GPIO based peripheral-only VBUS sensing 'transceiver'"
1395647ac0aSLinus Torvalds	depends on GPIOLIB
140a0e63123SFelipe Balbi	help
141a0e63123SFelipe Balbi	  Provides simple GPIO VBUS sensing for controllers with an
142a0e63123SFelipe Balbi	  internal transceiver via the usb_phy interface, and
143a0e63123SFelipe Balbi	  optionally control of a D+ pullup GPIO as well as a VBUS
144a0e63123SFelipe Balbi	  current limit regulator.
1458b7c3b68SRoland Stigge
1468b7c3b68SRoland Stiggeconfig USB_ISP1301
147a67e76acSYu Xu	tristate "NXP ISP1301 USB transceiver support"
148a67e76acSYu Xu	depends on USB || USB_GADGET
149a67e76acSYu Xu	depends on I2C
1508b7c3b68SRoland Stigge	help
1518b7c3b68SRoland Stigge	  Say Y here to add support for the NXP ISP1301 USB transceiver driver.
1528b7c3b68SRoland Stigge	  This chip is typically used as USB transceiver for USB host, gadget
1538b7c3b68SRoland Stigge	  and OTG drivers (to be selected separately).
1548b7c3b68SRoland Stigge
1558b7c3b68SRoland Stigge	  To compile this driver as a module, choose M here: the
1568b7c3b68SRoland Stigge	  module will be called isp1301.
157a67e76acSYu Xu
158a0e63123SFelipe Balbiconfig USB_MSM_OTG
159a0e63123SFelipe Balbi	tristate "OTG support for Qualcomm on-chip USB controller"
160a0e63123SFelipe Balbi	depends on (USB || USB_GADGET) && ARCH_MSM
161a67e76acSYu Xu	help
162a0e63123SFelipe Balbi	  Enable this to support the USB OTG transceiver on MSM chips. It
163a0e63123SFelipe Balbi	  handles PHY initialization, clock management, and workarounds
164a0e63123SFelipe Balbi	  required after resetting the hardware and power management.
165a0e63123SFelipe Balbi	  This driver is required even for peripheral only or host only
166a0e63123SFelipe Balbi	  mode configurations.
167a0e63123SFelipe Balbi	  This driver is not supported on boards like trout which
168a0e63123SFelipe Balbi	  has an external PHY.
169a0e63123SFelipe Balbi
170a0e63123SFelipe Balbiconfig USB_MV_OTG
171a0e63123SFelipe Balbi	tristate "Marvell USB OTG support"
17298f541c6SAlan Stern	depends on USB_EHCI_MV && USB_MV_UDC && PM_RUNTIME
173a0e63123SFelipe Balbi	select USB_OTG
174a0e63123SFelipe Balbi	help
175a0e63123SFelipe Balbi	  Say Y here if you want to build Marvell USB OTG transciever
176a0e63123SFelipe Balbi	  driver in kernel (including PXA and MMP series). This driver
177a0e63123SFelipe Balbi	  implements role switch between EHCI host driver and gadget driver.
178a0e63123SFelipe Balbi
179a0e63123SFelipe Balbi	  To compile this driver as a module, choose M here.
180a0e63123SFelipe Balbi
181a0e63123SFelipe Balbiconfig USB_MXS_PHY
182a0e63123SFelipe Balbi	tristate "Freescale MXS USB PHY support"
183a0e63123SFelipe Balbi	depends on ARCH_MXC || ARCH_MXS
184a0e63123SFelipe Balbi	select STMP_DEVICE
185a0e63123SFelipe Balbi	help
186a0e63123SFelipe Balbi	  Enable this to support the Freescale MXS USB PHY.
187a0e63123SFelipe Balbi
188a0e63123SFelipe Balbi	  MXS Phy is used by some of the i.MX SoCs, for example imx23/28/6x.
1891789e52aSKuninori Morimoto
1901789e52aSKuninori Morimotoconfig USB_RCAR_PHY
19154407f19SSergei Shtylyov	tristate "Renesas R-Car USB PHY support"
1921789e52aSKuninori Morimoto	depends on USB || USB_GADGET
1931789e52aSKuninori Morimoto	help
19454407f19SSergei Shtylyov	  Say Y here to add support for the Renesas R-Car USB common PHY driver.
19554407f19SSergei Shtylyov	  This chip is typically used as USB PHY for USB host, gadget.
19654407f19SSergei Shtylyov	  This driver supports R8A7778 and R8A7779.
1971789e52aSKuninori Morimoto
1981789e52aSKuninori Morimoto	  To compile this driver as a module, choose M here: the
19954407f19SSergei Shtylyov	  module will be called phy-rcar-usb.
200337dc3a7SPraveen Paneri
201a0e63123SFelipe Balbiconfig USB_ULPI
202a0e63123SFelipe Balbi	bool "Generic ULPI Transceiver Driver"
203a0e63123SFelipe Balbi	depends on ARM
204337dc3a7SPraveen Paneri	help
205a0e63123SFelipe Balbi	  Enable this to support ULPI connected USB OTG transceivers which
206a0e63123SFelipe Balbi	  are likely found on embedded boards.
207a0e63123SFelipe Balbi
208a0e63123SFelipe Balbiconfig USB_ULPI_VIEWPORT
209a0e63123SFelipe Balbi	bool
210a0e63123SFelipe Balbi	depends on USB_ULPI
211a0e63123SFelipe Balbi	help
212a0e63123SFelipe Balbi	  Provides read/write operations to the ULPI phy register set for
213a0e63123SFelipe Balbi	  controllers with a viewport register (e.g. Chipidea/ARC controllers).
214a0e63123SFelipe Balbi
215edc7cb2eSFelipe Balbiendif # USB_PHY
216