18c2ecf20Sopenharmony_ci# SPDX-License-Identifier: GPL-2.0
28c2ecf20Sopenharmony_ci#
38c2ecf20Sopenharmony_ci# Physical Layer USB driver configuration
48c2ecf20Sopenharmony_ci#
58c2ecf20Sopenharmony_cimenu "USB Physical Layer drivers"
68c2ecf20Sopenharmony_ci
78c2ecf20Sopenharmony_ciconfig USB_PHY
88c2ecf20Sopenharmony_ci	select EXTCON
98c2ecf20Sopenharmony_ci	def_bool n
108c2ecf20Sopenharmony_ci
118c2ecf20Sopenharmony_ci#
128c2ecf20Sopenharmony_ci# USB Transceiver Drivers
138c2ecf20Sopenharmony_ci#
148c2ecf20Sopenharmony_ciconfig AB8500_USB
158c2ecf20Sopenharmony_ci	tristate "AB8500 USB Transceiver Driver"
168c2ecf20Sopenharmony_ci	depends on AB8500_CORE
178c2ecf20Sopenharmony_ci	select USB_PHY
188c2ecf20Sopenharmony_ci	help
198c2ecf20Sopenharmony_ci	  Enable this to support the USB OTG transceiver in AB8500 chip.
208c2ecf20Sopenharmony_ci	  This transceiver supports high and full speed devices plus,
218c2ecf20Sopenharmony_ci	  in host mode, low speed.
228c2ecf20Sopenharmony_ci
238c2ecf20Sopenharmony_ciconfig FSL_USB2_OTG
248c2ecf20Sopenharmony_ci	tristate "Freescale USB OTG Transceiver Driver"
258c2ecf20Sopenharmony_ci	depends on USB_EHCI_FSL && USB_FSL_USB2 && USB_OTG_FSM=y && PM
268c2ecf20Sopenharmony_ci	depends on USB_GADGET || !USB_GADGET # if USB_GADGET=m, this can't be 'y'
278c2ecf20Sopenharmony_ci	select USB_PHY
288c2ecf20Sopenharmony_ci	help
298c2ecf20Sopenharmony_ci	  Enable this to support Freescale USB OTG transceiver.
308c2ecf20Sopenharmony_ci
318c2ecf20Sopenharmony_ciconfig ISP1301_OMAP
328c2ecf20Sopenharmony_ci	tristate "Philips ISP1301 with OMAP OTG"
338c2ecf20Sopenharmony_ci	depends on I2C && ARCH_OMAP_OTG
348c2ecf20Sopenharmony_ci	depends on USB
358c2ecf20Sopenharmony_ci	depends on USB_GADGET || !USB_GADGET # if USB_GADGET=m, this can't be 'y'
368c2ecf20Sopenharmony_ci	select USB_PHY
378c2ecf20Sopenharmony_ci	help
388c2ecf20Sopenharmony_ci	  If you say yes here you get support for the Philips ISP1301
398c2ecf20Sopenharmony_ci	  USB-On-The-Go transceiver working with the OMAP OTG controller.
408c2ecf20Sopenharmony_ci	  The ISP1301 is a full speed USB  transceiver which is used in
418c2ecf20Sopenharmony_ci	  products including H2, H3, and H4 development boards for Texas
428c2ecf20Sopenharmony_ci	  Instruments OMAP processors.
438c2ecf20Sopenharmony_ci
448c2ecf20Sopenharmony_ci	  This driver can also be built as a module.  If so, the module
458c2ecf20Sopenharmony_ci	  will be called phy-isp1301-omap.
468c2ecf20Sopenharmony_ci
478c2ecf20Sopenharmony_ciconfig KEYSTONE_USB_PHY
488c2ecf20Sopenharmony_ci	tristate "Keystone USB PHY Driver"
498c2ecf20Sopenharmony_ci	depends on ARCH_KEYSTONE || COMPILE_TEST
508c2ecf20Sopenharmony_ci	depends on NOP_USB_XCEIV
518c2ecf20Sopenharmony_ci	help
528c2ecf20Sopenharmony_ci	  Enable this to support Keystone USB phy. This driver provides
538c2ecf20Sopenharmony_ci	  interface to interact with USB 2.0 and USB 3.0 PHY that is part
548c2ecf20Sopenharmony_ci	  of the Keystone SOC.
558c2ecf20Sopenharmony_ci
568c2ecf20Sopenharmony_ciconfig NOP_USB_XCEIV
578c2ecf20Sopenharmony_ci	tristate "NOP USB Transceiver Driver"
588c2ecf20Sopenharmony_ci	depends on USB_GADGET || !USB_GADGET # if USB_GADGET=m, NOP can't be built-in
598c2ecf20Sopenharmony_ci	select USB_PHY
608c2ecf20Sopenharmony_ci	help
618c2ecf20Sopenharmony_ci	  This driver is to be used by all the usb transceiver which are either
628c2ecf20Sopenharmony_ci	  built-in with usb ip or which are autonomous and doesn't require any
638c2ecf20Sopenharmony_ci	  phy programming such as ISP1x04 etc.
648c2ecf20Sopenharmony_ci
658c2ecf20Sopenharmony_ciconfig AM335X_CONTROL_USB
668c2ecf20Sopenharmony_ci	tristate
678c2ecf20Sopenharmony_ci
688c2ecf20Sopenharmony_ciconfig AM335X_PHY_USB
698c2ecf20Sopenharmony_ci	tristate "AM335x USB PHY Driver"
708c2ecf20Sopenharmony_ci	depends on ARM || COMPILE_TEST
718c2ecf20Sopenharmony_ci	depends on NOP_USB_XCEIV
728c2ecf20Sopenharmony_ci	select USB_PHY
738c2ecf20Sopenharmony_ci	select AM335X_CONTROL_USB
748c2ecf20Sopenharmony_ci	select USB_COMMON
758c2ecf20Sopenharmony_ci	help
768c2ecf20Sopenharmony_ci	  This driver provides PHY support for that phy which part for the
778c2ecf20Sopenharmony_ci	  AM335x SoC.
788c2ecf20Sopenharmony_ci
798c2ecf20Sopenharmony_ciconfig TWL6030_USB
808c2ecf20Sopenharmony_ci	tristate "TWL6030 USB Transceiver Driver"
818c2ecf20Sopenharmony_ci	depends on TWL4030_CORE && OMAP_USB2 && USB_MUSB_OMAP2PLUS
828c2ecf20Sopenharmony_ci	depends on OF
838c2ecf20Sopenharmony_ci	help
848c2ecf20Sopenharmony_ci	  Enable this to support the USB OTG transceiver on TWL6030
858c2ecf20Sopenharmony_ci	  family chips. This TWL6030 transceiver has the VBUS and ID GND
868c2ecf20Sopenharmony_ci	  and OTG SRP events capabilities. For all other transceiver functionality
878c2ecf20Sopenharmony_ci	  UTMI PHY is embedded in OMAP4430. The internal PHY configurations APIs
888c2ecf20Sopenharmony_ci	  are hooked to this driver through platform_data structure.
898c2ecf20Sopenharmony_ci	  The definition of internal PHY APIs are in the mach-omap2 layer.
908c2ecf20Sopenharmony_ci
918c2ecf20Sopenharmony_ciconfig USB_GPIO_VBUS
928c2ecf20Sopenharmony_ci	tristate "GPIO based peripheral-only VBUS sensing 'transceiver'"
938c2ecf20Sopenharmony_ci	depends on GPIOLIB || COMPILE_TEST
948c2ecf20Sopenharmony_ci	depends on USB_GADGET || !USB_GADGET # if USB_GADGET=m, this can't be 'y'
958c2ecf20Sopenharmony_ci	select USB_PHY
968c2ecf20Sopenharmony_ci	help
978c2ecf20Sopenharmony_ci	  Provides simple GPIO VBUS sensing for controllers with an
988c2ecf20Sopenharmony_ci	  internal transceiver via the usb_phy interface, and
998c2ecf20Sopenharmony_ci	  optionally control of a D+ pullup GPIO as well as a VBUS
1008c2ecf20Sopenharmony_ci	  current limit regulator.
1018c2ecf20Sopenharmony_ci
1028c2ecf20Sopenharmony_ciconfig OMAP_OTG
1038c2ecf20Sopenharmony_ci	tristate "OMAP USB OTG controller driver"
1048c2ecf20Sopenharmony_ci	depends on ARCH_OMAP_OTG && EXTCON
1058c2ecf20Sopenharmony_ci	help
1068c2ecf20Sopenharmony_ci	  Enable this to support some transceivers on OMAP1 platforms. OTG
1078c2ecf20Sopenharmony_ci	  controller is needed to switch between host and peripheral modes.
1088c2ecf20Sopenharmony_ci
1098c2ecf20Sopenharmony_ci	  This driver can also be built as a module. If so, the module
1108c2ecf20Sopenharmony_ci	  will be called phy-omap-otg.
1118c2ecf20Sopenharmony_ci
1128c2ecf20Sopenharmony_ciconfig TAHVO_USB
1138c2ecf20Sopenharmony_ci	tristate "Tahvo USB transceiver driver"
1148c2ecf20Sopenharmony_ci	depends on MFD_RETU
1158c2ecf20Sopenharmony_ci	depends on USB_GADGET || !USB_GADGET # if USB_GADGET=m, this can't be 'y'
1168c2ecf20Sopenharmony_ci	select USB_PHY
1178c2ecf20Sopenharmony_ci	help
1188c2ecf20Sopenharmony_ci	  Enable this to support USB transceiver on Tahvo. This is used
1198c2ecf20Sopenharmony_ci	  at least on Nokia 770.
1208c2ecf20Sopenharmony_ci
1218c2ecf20Sopenharmony_ciconfig TAHVO_USB_HOST_BY_DEFAULT
1228c2ecf20Sopenharmony_ci	depends on TAHVO_USB
1238c2ecf20Sopenharmony_ci	bool "Device in USB host mode by default"
1248c2ecf20Sopenharmony_ci	help
1258c2ecf20Sopenharmony_ci	  Say Y here, if you want the device to enter USB host mode
1268c2ecf20Sopenharmony_ci	  by default on bootup.
1278c2ecf20Sopenharmony_ci
1288c2ecf20Sopenharmony_ciconfig USB_ISP1301
1298c2ecf20Sopenharmony_ci	tristate "NXP ISP1301 USB transceiver support"
1308c2ecf20Sopenharmony_ci	depends on USB || USB_GADGET
1318c2ecf20Sopenharmony_ci	depends on I2C
1328c2ecf20Sopenharmony_ci	select USB_PHY
1338c2ecf20Sopenharmony_ci	help
1348c2ecf20Sopenharmony_ci	  Say Y here to add support for the NXP ISP1301 USB transceiver driver.
1358c2ecf20Sopenharmony_ci	  This chip is typically used as USB transceiver for USB host, gadget
1368c2ecf20Sopenharmony_ci	  and OTG drivers (to be selected separately).
1378c2ecf20Sopenharmony_ci
1388c2ecf20Sopenharmony_ci	  To compile this driver as a module, choose M here: the
1398c2ecf20Sopenharmony_ci	  module will be called phy-isp1301.
1408c2ecf20Sopenharmony_ci
1418c2ecf20Sopenharmony_ciconfig USB_MV_OTG
1428c2ecf20Sopenharmony_ci	tristate "Marvell USB OTG support"
1438c2ecf20Sopenharmony_ci	depends on USB_EHCI_MV && USB_MV_UDC && PM && USB_OTG
1448c2ecf20Sopenharmony_ci	depends on USB_GADGET || !USB_GADGET # if USB_GADGET=m, this can't be 'y'
1458c2ecf20Sopenharmony_ci	select USB_PHY
1468c2ecf20Sopenharmony_ci	help
1478c2ecf20Sopenharmony_ci	  Say Y here if you want to build Marvell USB OTG transciever
1488c2ecf20Sopenharmony_ci	  driver in kernel (including PXA and MMP series). This driver
1498c2ecf20Sopenharmony_ci	  implements role switch between EHCI host driver and gadget driver.
1508c2ecf20Sopenharmony_ci
1518c2ecf20Sopenharmony_ci	  To compile this driver as a module, choose M here.
1528c2ecf20Sopenharmony_ci
1538c2ecf20Sopenharmony_ciconfig USB_MXS_PHY
1548c2ecf20Sopenharmony_ci	tristate "Freescale MXS USB PHY support"
1558c2ecf20Sopenharmony_ci	depends on ARCH_MXC || ARCH_MXS
1568c2ecf20Sopenharmony_ci	select STMP_DEVICE
1578c2ecf20Sopenharmony_ci	select USB_PHY
1588c2ecf20Sopenharmony_ci	help
1598c2ecf20Sopenharmony_ci	  Enable this to support the Freescale MXS USB PHY.
1608c2ecf20Sopenharmony_ci
1618c2ecf20Sopenharmony_ci	  MXS Phy is used by some of the i.MX SoCs, for example imx23/28/6x.
1628c2ecf20Sopenharmony_ci
1638c2ecf20Sopenharmony_ciconfig USB_TEGRA_PHY
1648c2ecf20Sopenharmony_ci	tristate "NVIDIA Tegra USB PHY Driver"
1658c2ecf20Sopenharmony_ci	depends on ARCH_TEGRA || COMPILE_TEST
1668c2ecf20Sopenharmony_ci	select USB_COMMON
1678c2ecf20Sopenharmony_ci	select USB_PHY
1688c2ecf20Sopenharmony_ci	select USB_ULPI
1698c2ecf20Sopenharmony_ci	help
1708c2ecf20Sopenharmony_ci	  This driver provides PHY support for the USB controllers found
1718c2ecf20Sopenharmony_ci	  on NVIDIA Tegra SoC's.
1728c2ecf20Sopenharmony_ci
1738c2ecf20Sopenharmony_ciconfig USB_ULPI
1748c2ecf20Sopenharmony_ci	bool "Generic ULPI Transceiver Driver"
1758c2ecf20Sopenharmony_ci	depends on ARM || ARM64 || COMPILE_TEST
1768c2ecf20Sopenharmony_ci	select USB_ULPI_VIEWPORT
1778c2ecf20Sopenharmony_ci	help
1788c2ecf20Sopenharmony_ci	  Enable this to support ULPI connected USB OTG transceivers which
1798c2ecf20Sopenharmony_ci	  are likely found on embedded boards.
1808c2ecf20Sopenharmony_ci
1818c2ecf20Sopenharmony_ciconfig USB_ULPI_VIEWPORT
1828c2ecf20Sopenharmony_ci	bool
1838c2ecf20Sopenharmony_ci	help
1848c2ecf20Sopenharmony_ci	  Provides read/write operations to the ULPI phy register set for
1858c2ecf20Sopenharmony_ci	  controllers with a viewport register (e.g. Chipidea/ARC controllers).
1868c2ecf20Sopenharmony_ci
1878c2ecf20Sopenharmony_ciconfig JZ4770_PHY
1888c2ecf20Sopenharmony_ci	tristate "Ingenic SoCs Transceiver Driver"
1898c2ecf20Sopenharmony_ci	depends on MIPS || COMPILE_TEST
1908c2ecf20Sopenharmony_ci	select USB_PHY
1918c2ecf20Sopenharmony_ci	help
1928c2ecf20Sopenharmony_ci	  This driver provides PHY support for the USB controller found
1938c2ecf20Sopenharmony_ci	  on the JZ-series and X-series SoCs from Ingenic.
1948c2ecf20Sopenharmony_ci
1958c2ecf20Sopenharmony_ciendmenu
196