xref: /openbmc/linux/drivers/usb/phy/Kconfig (revision 12c8d64e)
18b7c3b68SRoland Stigge#
28b7c3b68SRoland Stigge# Physical Layer USB driver configuration
38b7c3b68SRoland Stigge#
4052a11d1SRoger Quadrosmenu "USB Physical Layer drivers"
5657b306aSKishon Vijay Abraham I
6052a11d1SRoger Quadrosconfig USB_PHY
7052a11d1SRoger Quadros	def_bool n
88b7c3b68SRoland Stigge
9e1d2e319SAnton Tikhomirovconfig USB_OTG_FSM
10e1d2e319SAnton Tikhomirov	bool "USB 2.0 OTG FSM implementation"
11e1d2e319SAnton Tikhomirov	select USB_OTG
12e1d2e319SAnton Tikhomirov	select USB_PHY
13e1d2e319SAnton Tikhomirov	help
14e1d2e319SAnton Tikhomirov	  Implements OTG Final State Machine as specified in On-The-Go
15e1d2e319SAnton Tikhomirov	  and Embedded Host Supplement to the USB Revision 2.0 Specification.
16e1d2e319SAnton Tikhomirov
17a0e63123SFelipe Balbi#
18a0e63123SFelipe Balbi# USB Transceiver Drivers
19a0e63123SFelipe Balbi#
20a0e63123SFelipe Balbiconfig AB8500_USB
21a0e63123SFelipe Balbi	tristate "AB8500 USB Transceiver Driver"
22a0e63123SFelipe Balbi	depends on AB8500_CORE
23052a11d1SRoger Quadros	select USB_PHY
2457f6ce07SKishon Vijay Abraham I	help
25a0e63123SFelipe Balbi	  Enable this to support the USB OTG transceiver in AB8500 chip.
26a0e63123SFelipe Balbi	  This transceiver supports high and full speed devices plus,
27a0e63123SFelipe Balbi	  in host mode, low speed.
28a0e63123SFelipe Balbi
29a0e63123SFelipe Balbiconfig FSL_USB2_OTG
30a0e63123SFelipe Balbi	bool "Freescale USB OTG Transceiver Driver"
31e1d2e319SAnton Tikhomirov	depends on USB_EHCI_FSL && USB_FSL_USB2 && USB_OTG_FSM && PM_RUNTIME
32a0e63123SFelipe Balbi	select USB_OTG
33052a11d1SRoger Quadros	select USB_PHY
34a0e63123SFelipe Balbi	help
35a0e63123SFelipe Balbi	  Enable this to support Freescale USB OTG transceiver.
36a0e63123SFelipe Balbi
37a0e63123SFelipe Balbiconfig ISP1301_OMAP
38a0e63123SFelipe Balbi	tristate "Philips ISP1301 with OMAP OTG"
39a0e63123SFelipe Balbi	depends on I2C && ARCH_OMAP_OTG
40052a11d1SRoger Quadros	select USB_PHY
41a0e63123SFelipe Balbi	help
42a0e63123SFelipe Balbi	  If you say yes here you get support for the Philips ISP1301
43a0e63123SFelipe Balbi	  USB-On-The-Go transceiver working with the OMAP OTG controller.
44a0e63123SFelipe Balbi	  The ISP1301 is a full speed USB  transceiver which is used in
45a0e63123SFelipe Balbi	  products including H2, H3, and H4 development boards for Texas
46a0e63123SFelipe Balbi	  Instruments OMAP processors.
47a0e63123SFelipe Balbi
48a0e63123SFelipe Balbi	  This driver can also be built as a module.  If so, the module
4912c8d64eSAaro Koskinen	  will be called phy-isp1301-omap.
50a0e63123SFelipe Balbi
5125acdd08SWingMan Kwokconfig KEYSTONE_USB_PHY
5225acdd08SWingMan Kwok	tristate "Keystone USB PHY Driver"
5325acdd08SWingMan Kwok	depends on ARCH_KEYSTONE || COMPILE_TEST
5425acdd08SWingMan Kwok	select NOP_USB_XCEIV
5525acdd08SWingMan Kwok	help
5625acdd08SWingMan Kwok	  Enable this to support Keystone USB phy. This driver provides
5725acdd08SWingMan Kwok	  interface to interact with USB 2.0 and USB 3.0 PHY that is part
5825acdd08SWingMan Kwok	  of the Keystone SOC.
5925acdd08SWingMan Kwok
60a0e63123SFelipe Balbiconfig MV_U3D_PHY
61a0e63123SFelipe Balbi	bool "Marvell USB 3.0 PHY controller Driver"
6260630c2eSFelipe Balbi	depends on CPU_MMP3
63052a11d1SRoger Quadros	select USB_PHY
64a0e63123SFelipe Balbi	help
65a0e63123SFelipe Balbi	  Enable this to support Marvell USB 3.0 phy controller for Marvell
66a0e63123SFelipe Balbi	  SoC.
67a0e63123SFelipe Balbi
68a0e63123SFelipe Balbiconfig NOP_USB_XCEIV
69a0e63123SFelipe Balbi	tristate "NOP USB Transceiver Driver"
70052a11d1SRoger Quadros	select USB_PHY
71a0e63123SFelipe Balbi	help
72a0e63123SFelipe Balbi	  This driver is to be used by all the usb transceiver which are either
73a0e63123SFelipe Balbi	  built-in with usb ip or which are autonomous and doesn't require any
74a0e63123SFelipe Balbi	  phy programming such as ISP1x04 etc.
7557f6ce07SKishon Vijay Abraham I
7601658f0fSKishon Vijay Abraham Iconfig OMAP_CONTROL_USB
7701658f0fSKishon Vijay Abraham I	tristate "OMAP CONTROL USB Driver"
784e682bbdSPaul Gortmaker	depends on ARCH_OMAP2PLUS || COMPILE_TEST
7901658f0fSKishon Vijay Abraham I	help
8001658f0fSKishon Vijay Abraham I	  Enable this to add support for the USB part present in the control
8101658f0fSKishon Vijay Abraham I	  module. This driver has API to power on the USB2 PHY and to write to
8201658f0fSKishon Vijay Abraham I	  the mailbox. The mailbox is present only in omap4 and the register to
8301658f0fSKishon Vijay Abraham I	  power on the USB2 PHY is present in OMAP4 and OMAP5. OMAP5 has an
8401658f0fSKishon Vijay Abraham I	  additional register to power on USB3 PHY.
8501658f0fSKishon Vijay Abraham I
868b7c3b68SRoland Stiggeconfig OMAP_USB3
878b7c3b68SRoland Stigge	tristate "OMAP USB3 PHY Driver"
884e682bbdSPaul Gortmaker	depends on ARCH_OMAP2PLUS || COMPILE_TEST
898b7c3b68SRoland Stigge	select OMAP_CONTROL_USB
90052a11d1SRoger Quadros	select USB_PHY
918b7c3b68SRoland Stigge	help
928b7c3b68SRoland Stigge	  Enable this to support the USB3 PHY that is part of SOC. This
938b7c3b68SRoland Stigge	  driver takes care of all the PHY functionality apart from comparator.
948b7c3b68SRoland Stigge	  This driver interacts with the "OMAP Control USB Driver" to power
958b7c3b68SRoland Stigge	  on/off the PHY.
968b7c3b68SRoland Stigge
973bb869c8SSebastian Andrzej Siewiorconfig AM335X_CONTROL_USB
983bb869c8SSebastian Andrzej Siewior	tristate
993bb869c8SSebastian Andrzej Siewior
1003bb869c8SSebastian Andrzej Siewiorconfig AM335X_PHY_USB
1013bb869c8SSebastian Andrzej Siewior	tristate "AM335x USB PHY Driver"
1027ba01278SDave Jones	depends on ARM || COMPILE_TEST
1033bb869c8SSebastian Andrzej Siewior	select USB_PHY
1043bb869c8SSebastian Andrzej Siewior	select AM335X_CONTROL_USB
1053bb869c8SSebastian Andrzej Siewior	select NOP_USB_XCEIV
1063bb869c8SSebastian Andrzej Siewior	help
1073bb869c8SSebastian Andrzej Siewior	  This driver provides PHY support for that phy which part for the
1083bb869c8SSebastian Andrzej Siewior	  AM335x SoC.
1093bb869c8SSebastian Andrzej Siewior
110a0e63123SFelipe Balbiconfig SAMSUNG_USBPHY
1116278703bSTomasz Figa	tristate
1128b7c3b68SRoland Stigge	help
113dc2377d0SVivek Gautam	  Enable this to support Samsung USB phy helper driver for Samsung SoCs.
114dc2377d0SVivek Gautam	  This driver provides common interface to interact, for Samsung USB 2.0 PHY
115dc2377d0SVivek Gautam	  driver and later for Samsung USB 3.0 PHY driver.
116dc2377d0SVivek Gautam
117dc2377d0SVivek Gautamconfig SAMSUNG_USB2PHY
118dc2377d0SVivek Gautam	tristate "Samsung USB 2.0 PHY controller Driver"
119dc2377d0SVivek Gautam	select SAMSUNG_USBPHY
120052a11d1SRoger Quadros	select USB_PHY
121dc2377d0SVivek Gautam	help
122dc2377d0SVivek Gautam	  Enable this to support Samsung USB 2.0 (High Speed) PHY controller
123dc2377d0SVivek Gautam	  driver for Samsung SoCs.
124a0e63123SFelipe Balbi
125b5276758SVivek Gautamconfig SAMSUNG_USB3PHY
126b5276758SVivek Gautam	tristate "Samsung USB 3.0 PHY controller Driver"
127b5276758SVivek Gautam	select SAMSUNG_USBPHY
128052a11d1SRoger Quadros	select USB_PHY
129b5276758SVivek Gautam	help
130b5276758SVivek Gautam	  Enable this to support Samsung USB 3.0 (Super Speed) phy controller
131b5276758SVivek Gautam	  for samsung SoCs.
132b5276758SVivek Gautam
133a0e63123SFelipe Balbiconfig TWL6030_USB
134a0e63123SFelipe Balbi	tristate "TWL6030 USB Transceiver Driver"
135a0e63123SFelipe Balbi	depends on TWL4030_CORE && OMAP_USB2 && USB_MUSB_OMAP2PLUS
136a0e63123SFelipe Balbi	help
137a0e63123SFelipe Balbi	  Enable this to support the USB OTG transceiver on TWL6030
138a0e63123SFelipe Balbi	  family chips. This TWL6030 transceiver has the VBUS and ID GND
139a0e63123SFelipe Balbi	  and OTG SRP events capabilities. For all other transceiver functionality
140a0e63123SFelipe Balbi	  UTMI PHY is embedded in OMAP4430. The internal PHY configurations APIs
141a0e63123SFelipe Balbi	  are hooked to this driver through platform_data structure.
142a0e63123SFelipe Balbi	  The definition of internal PHY APIs are in the mach-omap2 layer.
143a0e63123SFelipe Balbi
144a0e63123SFelipe Balbiconfig USB_GPIO_VBUS
145a0e63123SFelipe Balbi	tristate "GPIO based peripheral-only VBUS sensing 'transceiver'"
1465647ac0aSLinus Torvalds	depends on GPIOLIB
147052a11d1SRoger Quadros	select USB_PHY
148a0e63123SFelipe Balbi	help
149a0e63123SFelipe Balbi	  Provides simple GPIO VBUS sensing for controllers with an
150a0e63123SFelipe Balbi	  internal transceiver via the usb_phy interface, and
151a0e63123SFelipe Balbi	  optionally control of a D+ pullup GPIO as well as a VBUS
152a0e63123SFelipe Balbi	  current limit regulator.
1538b7c3b68SRoland Stigge
154449d2ba6SAaro Koskinenconfig OMAP_OTG
155449d2ba6SAaro Koskinen	tristate "OMAP USB OTG controller driver"
156449d2ba6SAaro Koskinen	depends on ARCH_OMAP_OTG && EXTCON
157449d2ba6SAaro Koskinen	help
158449d2ba6SAaro Koskinen	  Enable this to support some transceivers on OMAP1 platforms. OTG
159449d2ba6SAaro Koskinen	  controller is needed to switch between host and peripheral modes.
160449d2ba6SAaro Koskinen
161449d2ba6SAaro Koskinen	  This driver can also be built as a module. If so, the module
16212c8d64eSAaro Koskinen	  will be called phy-omap-otg.
163449d2ba6SAaro Koskinen
1649ba96ae5SAaro Koskinenconfig TAHVO_USB
1659ba96ae5SAaro Koskinen	tristate "Tahvo USB transceiver driver"
1669ba96ae5SAaro Koskinen	depends on MFD_RETU && EXTCON
1679ba96ae5SAaro Koskinen	select USB_PHY
1689ba96ae5SAaro Koskinen	help
1699ba96ae5SAaro Koskinen	  Enable this to support USB transceiver on Tahvo. This is used
1709ba96ae5SAaro Koskinen	  at least on Nokia 770.
1719ba96ae5SAaro Koskinen
1729ba96ae5SAaro Koskinenconfig TAHVO_USB_HOST_BY_DEFAULT
1739ba96ae5SAaro Koskinen	depends on TAHVO_USB
1749ba96ae5SAaro Koskinen	boolean "Device in USB host mode by default"
1759ba96ae5SAaro Koskinen	help
1769ba96ae5SAaro Koskinen	  Say Y here, if you want the device to enter USB host mode
1779ba96ae5SAaro Koskinen	  by default on bootup.
1789ba96ae5SAaro Koskinen
1798b7c3b68SRoland Stiggeconfig USB_ISP1301
1808b7c3b68SRoland Stigge	tristate "NXP ISP1301 USB transceiver support"
1818b7c3b68SRoland Stigge	depends on USB || USB_GADGET
1828b7c3b68SRoland Stigge	depends on I2C
183052a11d1SRoger Quadros	select USB_PHY
1848b7c3b68SRoland Stigge	help
1858b7c3b68SRoland Stigge	  Say Y here to add support for the NXP ISP1301 USB transceiver driver.
1868b7c3b68SRoland Stigge	  This chip is typically used as USB transceiver for USB host, gadget
1878b7c3b68SRoland Stigge	  and OTG drivers (to be selected separately).
1888b7c3b68SRoland Stigge
1898b7c3b68SRoland Stigge	  To compile this driver as a module, choose M here: the
19012c8d64eSAaro Koskinen	  module will be called phy-isp1301.
191a67e76acSYu Xu
192a0e63123SFelipe Balbiconfig USB_MSM_OTG
193a0e63123SFelipe Balbi	tristate "OTG support for Qualcomm on-chip USB controller"
194a0e63123SFelipe Balbi	depends on (USB || USB_GADGET) && ARCH_MSM
195052a11d1SRoger Quadros	select USB_PHY
196a67e76acSYu Xu	help
197a0e63123SFelipe Balbi	  Enable this to support the USB OTG transceiver on MSM chips. It
198a0e63123SFelipe Balbi	  handles PHY initialization, clock management, and workarounds
199a0e63123SFelipe Balbi	  required after resetting the hardware and power management.
200a0e63123SFelipe Balbi	  This driver is required even for peripheral only or host only
201a0e63123SFelipe Balbi	  mode configurations.
202a0e63123SFelipe Balbi	  This driver is not supported on boards like trout which
203a0e63123SFelipe Balbi	  has an external PHY.
204a0e63123SFelipe Balbi
205a0e63123SFelipe Balbiconfig USB_MV_OTG
206a0e63123SFelipe Balbi	tristate "Marvell USB OTG support"
20798f541c6SAlan Stern	depends on USB_EHCI_MV && USB_MV_UDC && PM_RUNTIME
208a0e63123SFelipe Balbi	select USB_OTG
209052a11d1SRoger Quadros	select USB_PHY
210a0e63123SFelipe Balbi	help
211a0e63123SFelipe Balbi	  Say Y here if you want to build Marvell USB OTG transciever
212a0e63123SFelipe Balbi	  driver in kernel (including PXA and MMP series). This driver
213a0e63123SFelipe Balbi	  implements role switch between EHCI host driver and gadget driver.
214a0e63123SFelipe Balbi
215a0e63123SFelipe Balbi	  To compile this driver as a module, choose M here.
216a0e63123SFelipe Balbi
217a0e63123SFelipe Balbiconfig USB_MXS_PHY
218a0e63123SFelipe Balbi	tristate "Freescale MXS USB PHY support"
219a0e63123SFelipe Balbi	depends on ARCH_MXC || ARCH_MXS
220a0e63123SFelipe Balbi	select STMP_DEVICE
221052a11d1SRoger Quadros	select USB_PHY
222a0e63123SFelipe Balbi	help
223a0e63123SFelipe Balbi	  Enable this to support the Freescale MXS USB PHY.
224a0e63123SFelipe Balbi
225a0e63123SFelipe Balbi	  MXS Phy is used by some of the i.MX SoCs, for example imx23/28/6x.
2261789e52aSKuninori Morimoto
2271789e52aSKuninori Morimotoconfig USB_RCAR_PHY
22854407f19SSergei Shtylyov	tristate "Renesas R-Car USB PHY support"
2291789e52aSKuninori Morimoto	depends on USB || USB_GADGET
230052a11d1SRoger Quadros	select USB_PHY
2311789e52aSKuninori Morimoto	help
23254407f19SSergei Shtylyov	  Say Y here to add support for the Renesas R-Car USB common PHY driver.
23354407f19SSergei Shtylyov	  This chip is typically used as USB PHY for USB host, gadget.
23454407f19SSergei Shtylyov	  This driver supports R8A7778 and R8A7779.
2351789e52aSKuninori Morimoto
2361789e52aSKuninori Morimoto	  To compile this driver as a module, choose M here: the
23754407f19SSergei Shtylyov	  module will be called phy-rcar-usb.
238337dc3a7SPraveen Paneri
2395578b266SValentine Barshakconfig USB_RCAR_GEN2_PHY
2405578b266SValentine Barshak	tristate "Renesas R-Car Gen2 USB PHY support"
2415578b266SValentine Barshak	depends on ARCH_R8A7790 || ARCH_R8A7791 || COMPILE_TEST
2425578b266SValentine Barshak	select USB_PHY
2435578b266SValentine Barshak	help
2445578b266SValentine Barshak	  Say Y here to add support for the Renesas R-Car Gen2 USB PHY driver.
2455578b266SValentine Barshak	  It is typically used to control internal USB PHY for USBHS,
2465578b266SValentine Barshak	  and to configure shared USB channels 0 and 2.
2475578b266SValentine Barshak	  This driver supports R8A7790 and R8A7791.
2485578b266SValentine Barshak
2495578b266SValentine Barshak	  To compile this driver as a module, choose M here: the
2505578b266SValentine Barshak	  module will be called phy-rcar-gen2-usb.
2515578b266SValentine Barshak
252a0e63123SFelipe Balbiconfig USB_ULPI
253a0e63123SFelipe Balbi	bool "Generic ULPI Transceiver Driver"
254a0e63123SFelipe Balbi	depends on ARM
255337dc3a7SPraveen Paneri	help
256a0e63123SFelipe Balbi	  Enable this to support ULPI connected USB OTG transceivers which
257a0e63123SFelipe Balbi	  are likely found on embedded boards.
258a0e63123SFelipe Balbi
259a0e63123SFelipe Balbiconfig USB_ULPI_VIEWPORT
260a0e63123SFelipe Balbi	bool
261a0e63123SFelipe Balbi	depends on USB_ULPI
262a0e63123SFelipe Balbi	help
263a0e63123SFelipe Balbi	  Provides read/write operations to the ULPI phy register set for
264a0e63123SFelipe Balbi	  controllers with a viewport register (e.g. Chipidea/ARC controllers).
265a0e63123SFelipe Balbi
266052a11d1SRoger Quadrosendmenu
267