xref: /openbmc/linux/drivers/usb/phy/Kconfig (revision edc7cb2e)
18b7c3b68SRoland Stigge#
28b7c3b68SRoland Stigge# Physical Layer USB driver configuration
38b7c3b68SRoland Stigge#
4edc7cb2eSFelipe Balbimenuconfig USB_PHY
5edc7cb2eSFelipe Balbi	tristate "USB Physical Layer drivers"
6edc7cb2eSFelipe Balbi	select USB_OTG_UTILS
7edc7cb2eSFelipe Balbi	help
8edc7cb2eSFelipe Balbi	  USB controllers (those which are host, device or DRD) need a
9edc7cb2eSFelipe Balbi	  device to handle the physical layer signalling, commonly called
10edc7cb2eSFelipe Balbi	  a PHY.
11edc7cb2eSFelipe Balbi
12edc7cb2eSFelipe Balbi	  The following drivers add support for such PHY devices.
13edc7cb2eSFelipe Balbi
14edc7cb2eSFelipe Balbiif USB_PHY
158b7c3b68SRoland Stigge
16a0e63123SFelipe Balbiconfig USB_OTG_UTILS
17a0e63123SFelipe Balbi	bool
18a0e63123SFelipe Balbi	help
19a0e63123SFelipe Balbi	  Select this to make sure the build includes objects from
20a0e63123SFelipe Balbi	  the OTG infrastructure directory.
21a0e63123SFelipe Balbi
22a0e63123SFelipe Balbi#
23a0e63123SFelipe Balbi# USB Transceiver Drivers
24a0e63123SFelipe Balbi#
25a0e63123SFelipe Balbiconfig AB8500_USB
26a0e63123SFelipe Balbi	tristate "AB8500 USB Transceiver Driver"
27a0e63123SFelipe Balbi	depends on AB8500_CORE
28a0e63123SFelipe Balbi	select USB_OTG_UTILS
29a0e63123SFelipe Balbi	help
30a0e63123SFelipe Balbi	  Enable this to support the USB OTG transceiver in AB8500 chip.
31a0e63123SFelipe Balbi	  This transceiver supports high and full speed devices plus,
32a0e63123SFelipe Balbi	  in host mode, low speed.
33a0e63123SFelipe Balbi
34a0e63123SFelipe Balbiconfig FSL_USB2_OTG
35a0e63123SFelipe Balbi	bool "Freescale USB OTG Transceiver Driver"
36a0e63123SFelipe Balbi	depends on USB_EHCI_FSL && USB_FSL_USB2 && USB_SUSPEND
37a0e63123SFelipe Balbi	select USB_OTG
38a0e63123SFelipe Balbi	select USB_OTG_UTILS
39a0e63123SFelipe Balbi	help
40a0e63123SFelipe Balbi	  Enable this to support Freescale USB OTG transceiver.
41a0e63123SFelipe Balbi
42a0e63123SFelipe Balbiconfig ISP1301_OMAP
43a0e63123SFelipe Balbi	tristate "Philips ISP1301 with OMAP OTG"
44a0e63123SFelipe Balbi	depends on I2C && ARCH_OMAP_OTG
45a0e63123SFelipe Balbi	select USB_OTG_UTILS
46a0e63123SFelipe Balbi	help
47a0e63123SFelipe Balbi	  If you say yes here you get support for the Philips ISP1301
48a0e63123SFelipe Balbi	  USB-On-The-Go transceiver working with the OMAP OTG controller.
49a0e63123SFelipe Balbi	  The ISP1301 is a full speed USB  transceiver which is used in
50a0e63123SFelipe Balbi	  products including H2, H3, and H4 development boards for Texas
51a0e63123SFelipe Balbi	  Instruments OMAP processors.
52a0e63123SFelipe Balbi
53a0e63123SFelipe Balbi	  This driver can also be built as a module.  If so, the module
54a0e63123SFelipe Balbi	  will be called isp1301_omap.
55a0e63123SFelipe Balbi
56a0e63123SFelipe Balbiconfig MV_U3D_PHY
57a0e63123SFelipe Balbi	bool "Marvell USB 3.0 PHY controller Driver"
58a0e63123SFelipe Balbi	depends on USB_MV_U3D
59a0e63123SFelipe Balbi	select USB_OTG_UTILS
60a0e63123SFelipe Balbi	help
61a0e63123SFelipe Balbi	  Enable this to support Marvell USB 3.0 phy controller for Marvell
62a0e63123SFelipe Balbi	  SoC.
63a0e63123SFelipe Balbi
64a0e63123SFelipe Balbiconfig NOP_USB_XCEIV
65a0e63123SFelipe Balbi	tristate "NOP USB Transceiver Driver"
66a0e63123SFelipe Balbi	select USB_OTG_UTILS
67a0e63123SFelipe Balbi	help
68a0e63123SFelipe Balbi	  This driver is to be used by all the usb transceiver which are either
69a0e63123SFelipe Balbi	  built-in with usb ip or which are autonomous and doesn't require any
70a0e63123SFelipe Balbi	  phy programming such as ISP1x04 etc.
71a0e63123SFelipe Balbi
72a0e63123SFelipe Balbiconfig OMAP_CONTROL_USB
73a0e63123SFelipe Balbi	tristate "OMAP CONTROL USB Driver"
74a0e63123SFelipe Balbi	help
75a0e63123SFelipe Balbi	  Enable this to add support for the USB part present in the control
76a0e63123SFelipe Balbi	  module. This driver has API to power on the USB2 PHY and to write to
77a0e63123SFelipe Balbi	  the mailbox. The mailbox is present only in omap4 and the register to
78a0e63123SFelipe Balbi	  power on the USB2 PHY is present in OMAP4 and OMAP5. OMAP5 has an
79a0e63123SFelipe Balbi	  additional register to power on USB3 PHY.
80a0e63123SFelipe Balbi
81657b306aSKishon Vijay Abraham Iconfig OMAP_USB2
82657b306aSKishon Vijay Abraham I	tristate "OMAP USB2 PHY Driver"
83770b6cb4STony Lindgren	depends on ARCH_OMAP2PLUS
84657b306aSKishon Vijay Abraham I	select USB_OTG_UTILS
85ca784be3SKishon Vijay Abraham I	select OMAP_CONTROL_USB
86657b306aSKishon Vijay Abraham I	help
87657b306aSKishon Vijay Abraham I	  Enable this to support the transceiver that is part of SOC. This
88657b306aSKishon Vijay Abraham I	  driver takes care of all the PHY functionality apart from comparator.
89657b306aSKishon Vijay Abraham I	  The USB OTG controller communicates with the comparator using this
90657b306aSKishon Vijay Abraham I	  driver.
91657b306aSKishon Vijay Abraham I
9257f6ce07SKishon Vijay Abraham Iconfig OMAP_USB3
9357f6ce07SKishon Vijay Abraham I	tristate "OMAP USB3 PHY Driver"
9457f6ce07SKishon Vijay Abraham I	select USB_OTG_UTILS
9557f6ce07SKishon Vijay Abraham I	select OMAP_CONTROL_USB
9657f6ce07SKishon Vijay Abraham I	help
9757f6ce07SKishon Vijay Abraham I	  Enable this to support the USB3 PHY that is part of SOC. This
9857f6ce07SKishon Vijay Abraham I	  driver takes care of all the PHY functionality apart from comparator.
9957f6ce07SKishon Vijay Abraham I	  This driver interacts with the "OMAP Control USB Driver" to power
10057f6ce07SKishon Vijay Abraham I	  on/off the PHY.
10157f6ce07SKishon Vijay Abraham I
102a0e63123SFelipe Balbiconfig SAMSUNG_USBPHY
103a0e63123SFelipe Balbi	bool "Samsung USB PHY controller Driver"
104a0e63123SFelipe Balbi	depends on USB_S3C_HSOTG || USB_EHCI_S5P || USB_OHCI_EXYNOS
105a0e63123SFelipe Balbi	select USB_OTG_UTILS
10601658f0fSKishon Vijay Abraham I	help
107a0e63123SFelipe Balbi	  Enable this to support Samsung USB phy controller for samsung
108a0e63123SFelipe Balbi	  SoCs.
109a0e63123SFelipe Balbi
110a0e63123SFelipe Balbiconfig TWL4030_USB
111a0e63123SFelipe Balbi	tristate "TWL4030 USB Transceiver Driver"
112a0e63123SFelipe Balbi	depends on TWL4030_CORE && REGULATOR_TWL4030 && USB_MUSB_OMAP2PLUS
113a0e63123SFelipe Balbi	select USB_OTG_UTILS
114a0e63123SFelipe Balbi	help
115a0e63123SFelipe Balbi	  Enable this to support the USB OTG transceiver on TWL4030
116a0e63123SFelipe Balbi	  family chips (including the TWL5030 and TPS659x0 devices).
117a0e63123SFelipe Balbi	  This transceiver supports high and full speed devices plus,
118a0e63123SFelipe Balbi	  in host mode, low speed.
119a0e63123SFelipe Balbi
120a0e63123SFelipe Balbiconfig TWL6030_USB
121a0e63123SFelipe Balbi	tristate "TWL6030 USB Transceiver Driver"
122a0e63123SFelipe Balbi	depends on TWL4030_CORE && OMAP_USB2 && USB_MUSB_OMAP2PLUS
123a0e63123SFelipe Balbi	select USB_OTG_UTILS
124a0e63123SFelipe Balbi	help
125a0e63123SFelipe Balbi	  Enable this to support the USB OTG transceiver on TWL6030
126a0e63123SFelipe Balbi	  family chips. This TWL6030 transceiver has the VBUS and ID GND
127a0e63123SFelipe Balbi	  and OTG SRP events capabilities. For all other transceiver functionality
128a0e63123SFelipe Balbi	  UTMI PHY is embedded in OMAP4430. The internal PHY configurations APIs
129a0e63123SFelipe Balbi	  are hooked to this driver through platform_data structure.
130a0e63123SFelipe Balbi	  The definition of internal PHY APIs are in the mach-omap2 layer.
131a0e63123SFelipe Balbi
132a0e63123SFelipe Balbiconfig USB_GPIO_VBUS
133a0e63123SFelipe Balbi	tristate "GPIO based peripheral-only VBUS sensing 'transceiver'"
134a0e63123SFelipe Balbi	depends on GENERIC_GPIO
135a0e63123SFelipe Balbi	select USB_OTG_UTILS
136a0e63123SFelipe Balbi	help
137a0e63123SFelipe Balbi	  Provides simple GPIO VBUS sensing for controllers with an
138a0e63123SFelipe Balbi	  internal transceiver via the usb_phy interface, and
139a0e63123SFelipe Balbi	  optionally control of a D+ pullup GPIO as well as a VBUS
140a0e63123SFelipe Balbi	  current limit regulator.
14101658f0fSKishon Vijay Abraham I
1428b7c3b68SRoland Stiggeconfig USB_ISP1301
1438b7c3b68SRoland Stigge	tristate "NXP ISP1301 USB transceiver support"
144c6156328SAlexandre Pereira da Silva	depends on USB || USB_GADGET
1458b7c3b68SRoland Stigge	depends on I2C
1468b7c3b68SRoland Stigge	help
1478b7c3b68SRoland Stigge	  Say Y here to add support for the NXP ISP1301 USB transceiver driver.
1488b7c3b68SRoland Stigge	  This chip is typically used as USB transceiver for USB host, gadget
1498b7c3b68SRoland Stigge	  and OTG drivers (to be selected separately).
1508b7c3b68SRoland Stigge
1518b7c3b68SRoland Stigge	  To compile this driver as a module, choose M here: the
1528b7c3b68SRoland Stigge	  module will be called isp1301.
153a67e76acSYu Xu
154a0e63123SFelipe Balbiconfig USB_MSM_OTG
155a0e63123SFelipe Balbi	tristate "OTG support for Qualcomm on-chip USB controller"
156a0e63123SFelipe Balbi	depends on (USB || USB_GADGET) && ARCH_MSM
157a67e76acSYu Xu	select USB_OTG_UTILS
158a67e76acSYu Xu	help
159a0e63123SFelipe Balbi	  Enable this to support the USB OTG transceiver on MSM chips. It
160a0e63123SFelipe Balbi	  handles PHY initialization, clock management, and workarounds
161a0e63123SFelipe Balbi	  required after resetting the hardware and power management.
162a0e63123SFelipe Balbi	  This driver is required even for peripheral only or host only
163a0e63123SFelipe Balbi	  mode configurations.
164a0e63123SFelipe Balbi	  This driver is not supported on boards like trout which
165a0e63123SFelipe Balbi	  has an external PHY.
166a0e63123SFelipe Balbi
167a0e63123SFelipe Balbiconfig USB_MV_OTG
168a0e63123SFelipe Balbi	tristate "Marvell USB OTG support"
169a0e63123SFelipe Balbi	depends on USB_EHCI_MV && USB_MV_UDC && USB_SUSPEND
170a0e63123SFelipe Balbi	select USB_OTG
171a0e63123SFelipe Balbi	select USB_OTG_UTILS
172a0e63123SFelipe Balbi	help
173a0e63123SFelipe Balbi	  Say Y here if you want to build Marvell USB OTG transciever
174a0e63123SFelipe Balbi	  driver in kernel (including PXA and MMP series). This driver
175a0e63123SFelipe Balbi	  implements role switch between EHCI host driver and gadget driver.
176a0e63123SFelipe Balbi
177a0e63123SFelipe Balbi	  To compile this driver as a module, choose M here.
178a0e63123SFelipe Balbi
179a0e63123SFelipe Balbiconfig USB_MXS_PHY
180a0e63123SFelipe Balbi	tristate "Freescale MXS USB PHY support"
181a0e63123SFelipe Balbi	depends on ARCH_MXC || ARCH_MXS
182a0e63123SFelipe Balbi	select STMP_DEVICE
183a0e63123SFelipe Balbi	select USB_OTG_UTILS
184a0e63123SFelipe Balbi	help
185a0e63123SFelipe Balbi	  Enable this to support the Freescale MXS USB PHY.
186a0e63123SFelipe Balbi
187a0e63123SFelipe Balbi	  MXS Phy is used by some of the i.MX SoCs, for example imx23/28/6x.
1881789e52aSKuninori Morimoto
1891789e52aSKuninori Morimotoconfig USB_RCAR_PHY
1901789e52aSKuninori Morimoto	tristate "Renesas R-Car USB phy support"
1911789e52aSKuninori Morimoto	depends on USB || USB_GADGET
1921789e52aSKuninori Morimoto	select USB_OTG_UTILS
1931789e52aSKuninori Morimoto	help
1941789e52aSKuninori Morimoto	  Say Y here to add support for the Renesas R-Car USB phy driver.
1951789e52aSKuninori Morimoto	  This chip is typically used as USB phy for USB host, gadget.
1961789e52aSKuninori Morimoto	  This driver supports: R8A7779
1971789e52aSKuninori Morimoto
1981789e52aSKuninori Morimoto	  To compile this driver as a module, choose M here: the
1991789e52aSKuninori Morimoto	  module will be called rcar-phy.
200337dc3a7SPraveen Paneri
201a0e63123SFelipe Balbiconfig USB_ULPI
202a0e63123SFelipe Balbi	bool "Generic ULPI Transceiver Driver"
203a0e63123SFelipe Balbi	depends on ARM
204337dc3a7SPraveen Paneri	select USB_OTG_UTILS
205337dc3a7SPraveen Paneri	help
206a0e63123SFelipe Balbi	  Enable this to support ULPI connected USB OTG transceivers which
207a0e63123SFelipe Balbi	  are likely found on embedded boards.
208a0e63123SFelipe Balbi
209a0e63123SFelipe Balbiconfig USB_ULPI_VIEWPORT
210a0e63123SFelipe Balbi	bool
211a0e63123SFelipe Balbi	depends on USB_ULPI
212a0e63123SFelipe Balbi	help
213a0e63123SFelipe Balbi	  Provides read/write operations to the ULPI phy register set for
214a0e63123SFelipe Balbi	  controllers with a viewport register (e.g. Chipidea/ARC controllers).
215a0e63123SFelipe Balbi
216edc7cb2eSFelipe Balbiendif # USB_PHY
217