xref: /openbmc/linux/drivers/usb/phy/Kconfig (revision 1f7fc408)
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
10e90b8417SFelipe Balbi	tristate "USB 2.0 OTG FSM implementation"
11e90b8417SFelipe Balbi	depends on USB
12e1d2e319SAnton Tikhomirov	select USB_OTG
13e1d2e319SAnton Tikhomirov	select USB_PHY
14e1d2e319SAnton Tikhomirov	help
15e1d2e319SAnton Tikhomirov	  Implements OTG Final State Machine as specified in On-The-Go
16e1d2e319SAnton Tikhomirov	  and Embedded Host Supplement to the USB Revision 2.0 Specification.
17e1d2e319SAnton Tikhomirov
18a0e63123SFelipe Balbi#
19a0e63123SFelipe Balbi# USB Transceiver Drivers
20a0e63123SFelipe Balbi#
21a0e63123SFelipe Balbiconfig AB8500_USB
22a0e63123SFelipe Balbi	tristate "AB8500 USB Transceiver Driver"
23a0e63123SFelipe Balbi	depends on AB8500_CORE
24052a11d1SRoger Quadros	select USB_PHY
2557f6ce07SKishon Vijay Abraham I	help
26a0e63123SFelipe Balbi	  Enable this to support the USB OTG transceiver in AB8500 chip.
27a0e63123SFelipe Balbi	  This transceiver supports high and full speed devices plus,
28a0e63123SFelipe Balbi	  in host mode, low speed.
29a0e63123SFelipe Balbi
30a0e63123SFelipe Balbiconfig FSL_USB2_OTG
31a0e63123SFelipe Balbi	bool "Freescale USB OTG Transceiver Driver"
32e1d2e319SAnton Tikhomirov	depends on USB_EHCI_FSL && USB_FSL_USB2 && USB_OTG_FSM && PM_RUNTIME
33a0e63123SFelipe Balbi	select USB_OTG
34052a11d1SRoger Quadros	select USB_PHY
35a0e63123SFelipe Balbi	help
36a0e63123SFelipe Balbi	  Enable this to support Freescale USB OTG transceiver.
37a0e63123SFelipe Balbi
38a0e63123SFelipe Balbiconfig ISP1301_OMAP
39a0e63123SFelipe Balbi	tristate "Philips ISP1301 with OMAP OTG"
40a0e63123SFelipe Balbi	depends on I2C && ARCH_OMAP_OTG
417cd0c298SFelipe Balbi	depends on USB
42052a11d1SRoger Quadros	select USB_PHY
43a0e63123SFelipe Balbi	help
44a0e63123SFelipe Balbi	  If you say yes here you get support for the Philips ISP1301
45a0e63123SFelipe Balbi	  USB-On-The-Go transceiver working with the OMAP OTG controller.
46a0e63123SFelipe Balbi	  The ISP1301 is a full speed USB  transceiver which is used in
47a0e63123SFelipe Balbi	  products including H2, H3, and H4 development boards for Texas
48a0e63123SFelipe Balbi	  Instruments OMAP processors.
49a0e63123SFelipe Balbi
50a0e63123SFelipe Balbi	  This driver can also be built as a module.  If so, the module
5112c8d64eSAaro Koskinen	  will be called phy-isp1301-omap.
52a0e63123SFelipe Balbi
5325acdd08SWingMan Kwokconfig KEYSTONE_USB_PHY
5425acdd08SWingMan Kwok	tristate "Keystone USB PHY Driver"
5525acdd08SWingMan Kwok	depends on ARCH_KEYSTONE || COMPILE_TEST
5625acdd08SWingMan Kwok	select NOP_USB_XCEIV
5725acdd08SWingMan Kwok	help
5825acdd08SWingMan Kwok	  Enable this to support Keystone USB phy. This driver provides
5925acdd08SWingMan Kwok	  interface to interact with USB 2.0 and USB 3.0 PHY that is part
6025acdd08SWingMan Kwok	  of the Keystone SOC.
6125acdd08SWingMan Kwok
62a0e63123SFelipe Balbiconfig MV_U3D_PHY
63a0e63123SFelipe Balbi	bool "Marvell USB 3.0 PHY controller Driver"
6460630c2eSFelipe Balbi	depends on CPU_MMP3
65052a11d1SRoger Quadros	select USB_PHY
66a0e63123SFelipe Balbi	help
67a0e63123SFelipe Balbi	  Enable this to support Marvell USB 3.0 phy controller for Marvell
68a0e63123SFelipe Balbi	  SoC.
69a0e63123SFelipe Balbi
70a0e63123SFelipe Balbiconfig NOP_USB_XCEIV
71a0e63123SFelipe Balbi	tristate "NOP USB Transceiver Driver"
72052a11d1SRoger Quadros	select USB_PHY
73a0e63123SFelipe Balbi	help
74a0e63123SFelipe Balbi	  This driver is to be used by all the usb transceiver which are either
75a0e63123SFelipe Balbi	  built-in with usb ip or which are autonomous and doesn't require any
76a0e63123SFelipe Balbi	  phy programming such as ISP1x04 etc.
7757f6ce07SKishon Vijay Abraham I
783bb869c8SSebastian Andrzej Siewiorconfig AM335X_CONTROL_USB
793bb869c8SSebastian Andrzej Siewior	tristate
803bb869c8SSebastian Andrzej Siewior
813bb869c8SSebastian Andrzej Siewiorconfig AM335X_PHY_USB
823bb869c8SSebastian Andrzej Siewior	tristate "AM335x USB PHY Driver"
837ba01278SDave Jones	depends on ARM || COMPILE_TEST
843bb869c8SSebastian Andrzej Siewior	select USB_PHY
853bb869c8SSebastian Andrzej Siewior	select AM335X_CONTROL_USB
863bb869c8SSebastian Andrzej Siewior	select NOP_USB_XCEIV
873bb869c8SSebastian Andrzej Siewior	help
883bb869c8SSebastian Andrzej Siewior	  This driver provides PHY support for that phy which part for the
893bb869c8SSebastian Andrzej Siewior	  AM335x SoC.
903bb869c8SSebastian Andrzej Siewior
91a0e63123SFelipe Balbiconfig SAMSUNG_USBPHY
926278703bSTomasz Figa	tristate
9301658f0fSKishon Vijay Abraham I	help
94dc2377d0SVivek Gautam	  Enable this to support Samsung USB phy helper driver for Samsung SoCs.
95dc2377d0SVivek Gautam	  This driver provides common interface to interact, for Samsung USB 2.0 PHY
96dc2377d0SVivek Gautam	  driver and later for Samsung USB 3.0 PHY driver.
97dc2377d0SVivek Gautam
98dc2377d0SVivek Gautamconfig SAMSUNG_USB2PHY
99dc2377d0SVivek Gautam	tristate "Samsung USB 2.0 PHY controller Driver"
100dc2377d0SVivek Gautam	select SAMSUNG_USBPHY
101052a11d1SRoger Quadros	select USB_PHY
102dc2377d0SVivek Gautam	help
103dc2377d0SVivek Gautam	  Enable this to support Samsung USB 2.0 (High Speed) PHY controller
104dc2377d0SVivek Gautam	  driver for Samsung SoCs.
105a0e63123SFelipe Balbi
106b5276758SVivek Gautamconfig SAMSUNG_USB3PHY
107b5276758SVivek Gautam	tristate "Samsung USB 3.0 PHY controller Driver"
108b5276758SVivek Gautam	select SAMSUNG_USBPHY
109052a11d1SRoger Quadros	select USB_PHY
110b5276758SVivek Gautam	help
111b5276758SVivek Gautam	  Enable this to support Samsung USB 3.0 (Super Speed) phy controller
112b5276758SVivek Gautam	  for samsung SoCs.
113b5276758SVivek Gautam
114a0e63123SFelipe Balbiconfig TWL6030_USB
115a0e63123SFelipe Balbi	tristate "TWL6030 USB Transceiver Driver"
116a0e63123SFelipe Balbi	depends on TWL4030_CORE && OMAP_USB2 && USB_MUSB_OMAP2PLUS
117a0e63123SFelipe Balbi	help
118a0e63123SFelipe Balbi	  Enable this to support the USB OTG transceiver on TWL6030
119a0e63123SFelipe Balbi	  family chips. This TWL6030 transceiver has the VBUS and ID GND
120a0e63123SFelipe Balbi	  and OTG SRP events capabilities. For all other transceiver functionality
121a0e63123SFelipe Balbi	  UTMI PHY is embedded in OMAP4430. The internal PHY configurations APIs
122a0e63123SFelipe Balbi	  are hooked to this driver through platform_data structure.
123a0e63123SFelipe Balbi	  The definition of internal PHY APIs are in the mach-omap2 layer.
124a0e63123SFelipe Balbi
125a0e63123SFelipe Balbiconfig USB_GPIO_VBUS
126a0e63123SFelipe Balbi	tristate "GPIO based peripheral-only VBUS sensing 'transceiver'"
1275647ac0aSLinus Torvalds	depends on GPIOLIB
128052a11d1SRoger Quadros	select USB_PHY
129a0e63123SFelipe Balbi	help
130a0e63123SFelipe Balbi	  Provides simple GPIO VBUS sensing for controllers with an
131a0e63123SFelipe Balbi	  internal transceiver via the usb_phy interface, and
132a0e63123SFelipe Balbi	  optionally control of a D+ pullup GPIO as well as a VBUS
133a0e63123SFelipe Balbi	  current limit regulator.
13401658f0fSKishon Vijay Abraham I
135449d2ba6SAaro Koskinenconfig OMAP_OTG
136449d2ba6SAaro Koskinen	tristate "OMAP USB OTG controller driver"
137449d2ba6SAaro Koskinen	depends on ARCH_OMAP_OTG && EXTCON
138449d2ba6SAaro Koskinen	help
139449d2ba6SAaro Koskinen	  Enable this to support some transceivers on OMAP1 platforms. OTG
140449d2ba6SAaro Koskinen	  controller is needed to switch between host and peripheral modes.
141449d2ba6SAaro Koskinen
142449d2ba6SAaro Koskinen	  This driver can also be built as a module. If so, the module
14312c8d64eSAaro Koskinen	  will be called phy-omap-otg.
144449d2ba6SAaro Koskinen
1459ba96ae5SAaro Koskinenconfig TAHVO_USB
1469ba96ae5SAaro Koskinen	tristate "Tahvo USB transceiver driver"
1479ba96ae5SAaro Koskinen	depends on MFD_RETU && EXTCON
1489ba96ae5SAaro Koskinen	select USB_PHY
1499ba96ae5SAaro Koskinen	help
1509ba96ae5SAaro Koskinen	  Enable this to support USB transceiver on Tahvo. This is used
1519ba96ae5SAaro Koskinen	  at least on Nokia 770.
1529ba96ae5SAaro Koskinen
1539ba96ae5SAaro Koskinenconfig TAHVO_USB_HOST_BY_DEFAULT
1549ba96ae5SAaro Koskinen	depends on TAHVO_USB
1559ba96ae5SAaro Koskinen	boolean "Device in USB host mode by default"
1569ba96ae5SAaro Koskinen	help
1579ba96ae5SAaro Koskinen	  Say Y here, if you want the device to enter USB host mode
1589ba96ae5SAaro Koskinen	  by default on bootup.
1599ba96ae5SAaro Koskinen
1608b7c3b68SRoland Stiggeconfig USB_ISP1301
1618b7c3b68SRoland Stigge	tristate "NXP ISP1301 USB transceiver support"
162c6156328SAlexandre Pereira da Silva	depends on USB || USB_GADGET
1638b7c3b68SRoland Stigge	depends on I2C
164052a11d1SRoger Quadros	select USB_PHY
1658b7c3b68SRoland Stigge	help
1668b7c3b68SRoland Stigge	  Say Y here to add support for the NXP ISP1301 USB transceiver driver.
1678b7c3b68SRoland Stigge	  This chip is typically used as USB transceiver for USB host, gadget
1688b7c3b68SRoland Stigge	  and OTG drivers (to be selected separately).
1698b7c3b68SRoland Stigge
1708b7c3b68SRoland Stigge	  To compile this driver as a module, choose M here: the
17112c8d64eSAaro Koskinen	  module will be called phy-isp1301.
172a67e76acSYu Xu
173a0e63123SFelipe Balbiconfig USB_MSM_OTG
1740d092fdbSIvan T. Ivanov	tristate "Qualcomm on-chip USB OTG controller support"
1751f7fc408SFelipe Balbi	depends on (USB || USB_GADGET) && (ARCH_MSM || ARCH_QCOM || COMPILE_TEST)
176052a11d1SRoger Quadros	select USB_PHY
177a67e76acSYu Xu	help
1780d092fdbSIvan T. Ivanov	  Enable this to support the USB OTG transceiver on Qualcomm chips. It
179a0e63123SFelipe Balbi	  handles PHY initialization, clock management, and workarounds
180a0e63123SFelipe Balbi	  required after resetting the hardware and power management.
181a0e63123SFelipe Balbi	  This driver is required even for peripheral only or host only
182a0e63123SFelipe Balbi	  mode configurations.
183a0e63123SFelipe Balbi	  This driver is not supported on boards like trout which
184a0e63123SFelipe Balbi	  has an external PHY.
185a0e63123SFelipe Balbi
186a0e63123SFelipe Balbiconfig USB_MV_OTG
187a0e63123SFelipe Balbi	tristate "Marvell USB OTG support"
18898f541c6SAlan Stern	depends on USB_EHCI_MV && USB_MV_UDC && PM_RUNTIME
189a0e63123SFelipe Balbi	select USB_OTG
190052a11d1SRoger Quadros	select USB_PHY
191a0e63123SFelipe Balbi	help
192a0e63123SFelipe Balbi	  Say Y here if you want to build Marvell USB OTG transciever
193a0e63123SFelipe Balbi	  driver in kernel (including PXA and MMP series). This driver
194a0e63123SFelipe Balbi	  implements role switch between EHCI host driver and gadget driver.
195a0e63123SFelipe Balbi
196a0e63123SFelipe Balbi	  To compile this driver as a module, choose M here.
197a0e63123SFelipe Balbi
198a0e63123SFelipe Balbiconfig USB_MXS_PHY
199a0e63123SFelipe Balbi	tristate "Freescale MXS USB PHY support"
200a0e63123SFelipe Balbi	depends on ARCH_MXC || ARCH_MXS
201a0e63123SFelipe Balbi	select STMP_DEVICE
202052a11d1SRoger Quadros	select USB_PHY
203a0e63123SFelipe Balbi	help
204a0e63123SFelipe Balbi	  Enable this to support the Freescale MXS USB PHY.
205a0e63123SFelipe Balbi
206a0e63123SFelipe Balbi	  MXS Phy is used by some of the i.MX SoCs, for example imx23/28/6x.
2071789e52aSKuninori Morimoto
2081789e52aSKuninori Morimotoconfig USB_RCAR_PHY
20954407f19SSergei Shtylyov	tristate "Renesas R-Car USB PHY support"
2101789e52aSKuninori Morimoto	depends on USB || USB_GADGET
211052a11d1SRoger Quadros	select USB_PHY
2121789e52aSKuninori Morimoto	help
21354407f19SSergei Shtylyov	  Say Y here to add support for the Renesas R-Car USB common PHY driver.
21454407f19SSergei Shtylyov	  This chip is typically used as USB PHY for USB host, gadget.
21554407f19SSergei Shtylyov	  This driver supports R8A7778 and R8A7779.
2161789e52aSKuninori Morimoto
2171789e52aSKuninori Morimoto	  To compile this driver as a module, choose M here: the
21854407f19SSergei Shtylyov	  module will be called phy-rcar-usb.
219337dc3a7SPraveen Paneri
2205578b266SValentine Barshakconfig USB_RCAR_GEN2_PHY
2215578b266SValentine Barshak	tristate "Renesas R-Car Gen2 USB PHY support"
2225578b266SValentine Barshak	depends on ARCH_R8A7790 || ARCH_R8A7791 || COMPILE_TEST
2235578b266SValentine Barshak	select USB_PHY
2245578b266SValentine Barshak	help
2255578b266SValentine Barshak	  Say Y here to add support for the Renesas R-Car Gen2 USB PHY driver.
2265578b266SValentine Barshak	  It is typically used to control internal USB PHY for USBHS,
2275578b266SValentine Barshak	  and to configure shared USB channels 0 and 2.
2285578b266SValentine Barshak	  This driver supports R8A7790 and R8A7791.
2295578b266SValentine Barshak
2305578b266SValentine Barshak	  To compile this driver as a module, choose M here: the
2315578b266SValentine Barshak	  module will be called phy-rcar-gen2-usb.
2325578b266SValentine Barshak
233a0e63123SFelipe Balbiconfig USB_ULPI
234a0e63123SFelipe Balbi	bool "Generic ULPI Transceiver Driver"
235a0e63123SFelipe Balbi	depends on ARM
236337dc3a7SPraveen Paneri	help
237a0e63123SFelipe Balbi	  Enable this to support ULPI connected USB OTG transceivers which
238a0e63123SFelipe Balbi	  are likely found on embedded boards.
239a0e63123SFelipe Balbi
240a0e63123SFelipe Balbiconfig USB_ULPI_VIEWPORT
241a0e63123SFelipe Balbi	bool
242a0e63123SFelipe Balbi	depends on USB_ULPI
243a0e63123SFelipe Balbi	help
244a0e63123SFelipe Balbi	  Provides read/write operations to the ULPI phy register set for
245a0e63123SFelipe Balbi	  controllers with a viewport register (e.g. Chipidea/ARC controllers).
246a0e63123SFelipe Balbi
247052a11d1SRoger Quadrosendmenu
248