USB: enclose all depends on USB_OHCI_HCD within an if USB_OHCI_HCD block
[firefly-linux-kernel-4.4.55.git] / drivers / usb / host / Kconfig
index c59a1126926f3210dd47d524d6ae5d184a5d535c..76f8bbcd49c3f1e766c097b58179eab55db1559b 100644 (file)
@@ -2,11 +2,9 @@
 # USB Host Controller Drivers
 #
 comment "USB Host Controller Drivers"
-       depends on USB
 
 config USB_C67X00_HCD
        tristate "Cypress C67x00 HCD support"
-       depends on USB
        help
          The Cypress C67x00 (EZ-Host/EZ-OTG) chips are dual-role
          host/peripheral/OTG USB controllers.
@@ -19,7 +17,7 @@ config USB_C67X00_HCD
 
 config USB_XHCI_HCD
        tristate "xHCI HCD (USB 3.0) support"
-       depends on USB && USB_ARCH_HAS_XHCI
+       depends on USB_ARCH_HAS_XHCI
        ---help---
          The eXtensible Host Controller Interface (xHCI) is standard for USB 3.0
          "SuperSpeed" host controller hardware.
@@ -43,7 +41,7 @@ config USB_XHCI_HCD_DEBUGGING
 
 config USB_EHCI_HCD
        tristate "EHCI HCD (USB 2.0) support"
-       depends on USB && USB_ARCH_HAS_EHCI
+       depends on USB_ARCH_HAS_EHCI
        ---help---
          The Enhanced Host Controller Interface (EHCI) is standard for USB 2.0
          "high speed" (480 Mbit/sec, 60 Mbyte/sec) host controller hardware.
@@ -95,14 +93,19 @@ config USB_EHCI_TT_NEWSCHED
 
          If unsure, say Y.
 
+config USB_FSL_MPH_DR_OF
+       tristate
+
+if USB_EHCI_HCD
+
 config USB_EHCI_PCI
        tristate
-       depends on USB_EHCI_HCD && PCI
+       depends on PCI
        default y
 
 config USB_EHCI_HCD_PMC_MSP
        tristate "EHCI support for on-chip PMC MSP71xx USB controller"
-       depends on USB_EHCI_HCD && MSP_HAS_USB
+       depends on MSP_HAS_USB
        default n
        select USB_EHCI_BIG_ENDIAN_DESC
        select USB_EHCI_BIG_ENDIAN_MMIO
@@ -112,22 +115,13 @@ config USB_EHCI_HCD_PMC_MSP
 
 config USB_EHCI_BIG_ENDIAN_MMIO
        bool
-       depends on USB_EHCI_HCD && (PPC_CELLEB || PPC_PS3 || 440EPX || \
-                                   ARCH_IXP4XX || XPS_USB_HCD_XILINX || \
-                                   PPC_MPC512x || CPU_CAVIUM_OCTEON || \
-                                   PMC_MSP || SPARC_LEON || MIPS_SEAD3)
-       default y
 
 config USB_EHCI_BIG_ENDIAN_DESC
        bool
-       depends on USB_EHCI_HCD && (440EPX || ARCH_IXP4XX || XPS_USB_HCD_XILINX || \
-                                   PPC_MPC512x || PMC_MSP || SPARC_LEON || \
-                                   MIPS_SEAD3)
-       default y
 
 config XPS_USB_HCD_XILINX
        bool "Use Xilinx usb host EHCI controller core"
-       depends on USB_EHCI_HCD && (PPC32 || MICROBLAZE)
+       depends on (PPC32 || MICROBLAZE)
        select USB_EHCI_BIG_ENDIAN_DESC
        select USB_EHCI_BIG_ENDIAN_MMIO
        ---help---
@@ -136,12 +130,9 @@ config XPS_USB_HCD_XILINX
                support both high speed and full speed devices, or high speed
                devices only.
 
-config USB_FSL_MPH_DR_OF
-       tristate
-
 config USB_EHCI_FSL
        bool "Support for Freescale PPC on-chip EHCI USB controller"
-       depends on USB_EHCI_HCD && FSL_SOC
+       depends on FSL_SOC
        select USB_EHCI_ROOT_HUB_TT
        select USB_FSL_MPH_DR_OF if OF
        ---help---
@@ -149,22 +140,50 @@ config USB_EHCI_FSL
 
 config USB_EHCI_MXC
        tristate "Support for Freescale i.MX on-chip EHCI USB controller"
-       depends on USB_EHCI_HCD && ARCH_MXC
+       depends on ARCH_MXC
        select USB_EHCI_ROOT_HUB_TT
        ---help---
          Variation of ARC USB block used in some Freescale chips.
 
 config USB_EHCI_HCD_OMAP
-       bool "EHCI support for OMAP3 and later chips"
-       depends on USB_EHCI_HCD && ARCH_OMAP
+       tristate "EHCI support for OMAP3 and later chips"
+       depends on ARCH_OMAP
+       select NOP_USB_XCEIV
        default y
        ---help---
          Enables support for the on-chip EHCI controller on
          OMAP3 and later chips.
 
+config USB_EHCI_HCD_ORION
+       tristate  "Support for Marvell EBU on-chip EHCI USB controller"
+       depends on USB_EHCI_HCD && PLAT_ORION
+       default y
+       ---help---
+         Enables support for the on-chip EHCI controller on Marvell's
+         embedded ARM SoCs, including Orion, Kirkwood, Dove, Armada XP,
+         Armada 370.  This is different from the EHCI implementation
+         on Marvell's mobile PXA and MMP SoC, see "EHCI support for
+         Marvell PXA/MMP USB controller" for those.
+
+config USB_EHCI_HCD_SPEAR
+        tristate "Support for ST SPEAr on-chip EHCI USB controller"
+        depends on USB_EHCI_HCD && PLAT_SPEAR
+        default y
+        ---help---
+          Enables support for the on-chip EHCI controller on
+          ST SPEAr chips.
+
+config USB_EHCI_HCD_AT91
+        tristate  "Support for Atmel on-chip EHCI USB controller"
+        depends on USB_EHCI_HCD && ARCH_AT91
+        default y
+        ---help---
+          Enables support for the on-chip EHCI controller on
+          Atmel chips.
+
 config USB_EHCI_MSM
-       bool "Support for MSM on-chip EHCI USB controller"
-       depends on USB_EHCI_HCD && ARCH_MSM
+       tristate "Support for Qualcomm QSD/MSM on-chip EHCI USB controller"
+       depends on ARCH_MSM
        select USB_EHCI_ROOT_HUB_TT
        select USB_MSM_OTG
        ---help---
@@ -177,15 +196,16 @@ config USB_EHCI_MSM
 
 config USB_EHCI_TEGRA
        boolean "NVIDIA Tegra HCD support"
-       depends on USB_EHCI_HCD && ARCH_TEGRA
+       depends on ARCH_TEGRA
        select USB_EHCI_ROOT_HUB_TT
+       select USB_PHY
        help
          This driver enables support for the internal USB Host Controllers
          found in NVIDIA Tegra SoCs. The controllers are EHCI compliant.
 
 config USB_EHCI_HCD_PPC_OF
        bool "EHCI support for PPC USB controller on OF platform bus"
-       depends on USB_EHCI_HCD && PPC_OF
+       depends on PPC_OF
        default y
        ---help---
          Enables support for the USB controller present on the PowerPC
@@ -193,35 +213,40 @@ config USB_EHCI_HCD_PPC_OF
 
 config USB_EHCI_SH
        bool "EHCI support for SuperH USB controller"
-       depends on USB_EHCI_HCD && SUPERH
+       depends on SUPERH
        ---help---
          Enables support for the on-chip EHCI controller on the SuperH.
          If you use the PCI EHCI controller, this option is not necessary.
 
 config USB_EHCI_S5P
-       boolean "S5P EHCI support"
-       depends on USB_EHCI_HCD && PLAT_S5P
+       tristate "EHCI support for Samsung S5P/EXYNOS SoC Series"
+       depends on PLAT_S5P
        help
-        Enable support for the S5P SOC's on-chip EHCI controller.
+       Enable support for the Samsung S5Pxxxx and Exynos3/4/5 SOC's
+       on-chip EHCI controller.
 
 config USB_EHCI_MV
-       bool "EHCI support for Marvell on-chip controller"
-       depends on USB_EHCI_HCD && (ARCH_PXA || ARCH_MMP)
+       bool "EHCI support for Marvell PXA/MMP USB controller"
+       depends on (ARCH_PXA || ARCH_MMP)
        select USB_EHCI_ROOT_HUB_TT
        ---help---
          Enables support for Marvell (including PXA and MMP series) on-chip
          USB SPH and OTG controller. SPH is a single port host, and it can
          only be EHCI host. OTG is controller that can switch to host mode.
+         Note that this driver will not work on Marvell's other EHCI
+         controller used by the EBU-type SoCs including Orion, Kirkwood,
+         Dova, Armada 370 and Armada XP. See "Support for Marvell EBU
+         on-chip EHCI USB controller" for those.
 
 config USB_W90X900_EHCI
        bool "W90X900(W90P910) EHCI support"
-       depends on USB_EHCI_HCD && ARCH_W90X900
+       depends on ARCH_W90X900
        ---help---
                Enables support for the W90X900 USB controller
 
 config USB_CNS3XXX_EHCI
        bool "Cavium CNS3XXX EHCI Module (DEPRECATED)"
-       depends on USB_EHCI_HCD && ARCH_CNS3XXX
+       depends on ARCH_CNS3XXX
        select USB_EHCI_HCD_PLATFORM
        ---help---
          This option is deprecated now and the driver was removed, use
@@ -233,7 +258,7 @@ config USB_CNS3XXX_EHCI
 
 config USB_EHCI_ATH79
        bool "EHCI support for AR7XXX/AR9XXX SoCs (DEPRECATED)"
-       depends on USB_EHCI_HCD && (SOC_AR71XX || SOC_AR724X || SOC_AR913X || SOC_AR933X)
+       depends on (SOC_AR71XX || SOC_AR724X || SOC_AR913X || SOC_AR933X)
        select USB_EHCI_ROOT_HUB_TT
        select USB_EHCI_HCD_PLATFORM
        default y
@@ -244,9 +269,31 @@ config USB_EHCI_ATH79
          Enables support for the built-in EHCI controller present
          on the Atheros AR7XXX/AR9XXX SoCs.
 
+config USB_EHCI_HCD_PLATFORM
+       tristate "Generic EHCI driver for a platform device"
+       default n
+       ---help---
+         Adds an EHCI host driver for a generic platform device, which
+         provides a memory space and an irq.
+
+         If unsure, say N.
+
+config USB_OCTEON_EHCI
+       bool "Octeon on-chip EHCI support"
+       depends on CPU_CAVIUM_OCTEON
+       default n
+       select USB_EHCI_BIG_ENDIAN_MMIO
+       help
+         Enable support for the Octeon II SOC's on-chip EHCI
+         controller.  It is needed for high-speed (480Mbit/sec)
+         USB 2.0 device support.  All CN6XXX based chips with USB are
+         supported.
+
+endif # USB_EHCI_HCD
+
 config USB_OXU210HP_HCD
        tristate "OXU210HP HCD support"
-       depends on USB && GENERIC_HARDIRQS
+       depends on GENERIC_HARDIRQS
        ---help---
          The OXU210HP is an USB host/OTG/device controller. Enable this
          option if your board has this chip. If unsure, say N.
@@ -259,7 +306,6 @@ config USB_OXU210HP_HCD
 
 config USB_ISP116X_HCD
        tristate "ISP116X HCD support"
-       depends on USB
        ---help---
          The ISP1160 and ISP1161 chips are USB host controllers. Enable this
          option if your board has this chip. If unsure, say N.
@@ -271,7 +317,6 @@ config USB_ISP116X_HCD
 
 config USB_ISP1760_HCD
        tristate "ISP 1760 HCD support"
-       depends on USB
        ---help---
          The ISP1760 chip is a USB 2.0 host controller.
 
@@ -286,7 +331,6 @@ config USB_ISP1760_HCD
 
 config USB_ISP1362_HCD
        tristate "ISP1362 HCD support"
-       depends on USB
        default N
        ---help---
          Supports the Philips ISP1362 chip as a host controller
@@ -298,9 +342,8 @@ config USB_ISP1362_HCD
 
 config USB_OHCI_HCD
        tristate "OHCI HCD support"
-       depends on USB && USB_ARCH_HAS_OHCI
+       depends on USB_ARCH_HAS_OHCI
        select ISP1301_OMAP if MACH_OMAP_H2 || MACH_OMAP_H3
-       select USB_OTG_UTILS if ARCH_OMAP
        depends on USB_ISP1301 || !ARCH_LPC32XX
        ---help---
          The Open Host Controller Interface (OHCI) is a standard for accessing
@@ -315,16 +358,18 @@ config USB_OHCI_HCD
          To compile this driver as a module, choose M here: the
          module will be called ohci-hcd.
 
+if USB_OHCI_HCD
+
 config USB_OHCI_HCD_OMAP1
        bool "OHCI support for OMAP1/2 chips"
-       depends on USB_OHCI_HCD && ARCH_OMAP1
+       depends on ARCH_OMAP1
        default y
        ---help---
          Enables support for the OHCI controller on OMAP1/2 chips.
 
 config USB_OHCI_HCD_OMAP3
        bool "OHCI support for OMAP3 and later chips"
-       depends on USB_OHCI_HCD && (ARCH_OMAP3 || ARCH_OMAP4)
+       depends on (ARCH_OMAP3 || ARCH_OMAP4)
        default y
        ---help---
          Enables support for the on-chip OHCI controller on
@@ -332,7 +377,7 @@ config USB_OHCI_HCD_OMAP3
 
 config USB_OHCI_ATH79
        bool "USB OHCI support for the Atheros AR71XX/AR7240 SoCs (DEPRECATED)"
-       depends on USB_OHCI_HCD && (SOC_AR71XX || SOC_AR724X)
+       depends on (SOC_AR71XX || SOC_AR724X)
        select USB_OHCI_HCD_PLATFORM
        default y
        help
@@ -344,7 +389,7 @@ config USB_OHCI_ATH79
 
 config USB_OHCI_HCD_PPC_OF_BE
        bool "OHCI support for OF platform bus (big endian)"
-       depends on USB_OHCI_HCD && PPC_OF
+       depends on PPC_OF
        select USB_OHCI_BIG_ENDIAN_DESC
        select USB_OHCI_BIG_ENDIAN_MMIO
        ---help---
@@ -353,7 +398,7 @@ config USB_OHCI_HCD_PPC_OF_BE
 
 config USB_OHCI_HCD_PPC_OF_LE
        bool "OHCI support for OF platform bus (little endian)"
-       depends on USB_OHCI_HCD && PPC_OF
+       depends on PPC_OF
        select USB_OHCI_LITTLE_ENDIAN
        ---help---
          Enables support for little-endian USB controllers present on the
@@ -361,12 +406,12 @@ config USB_OHCI_HCD_PPC_OF_LE
 
 config USB_OHCI_HCD_PPC_OF
        bool
-       depends on USB_OHCI_HCD && PPC_OF
+       depends on PPC_OF
        default USB_OHCI_HCD_PPC_OF_BE || USB_OHCI_HCD_PPC_OF_LE
 
 config USB_OHCI_HCD_PCI
        bool "OHCI support for PCI-bus USB controllers"
-       depends on USB_OHCI_HCD && PCI && (STB03xxx || PPC_MPC52xx || USB_OHCI_HCD_PPC_OF)
+       depends on PCI && (STB03xxx || PPC_MPC52xx || USB_OHCI_HCD_PPC_OF)
        default y
        select USB_OHCI_LITTLE_ENDIAN
        ---help---
@@ -375,7 +420,7 @@ config USB_OHCI_HCD_PCI
 
 config USB_OHCI_HCD_SSB
        bool "OHCI support for Broadcom SSB OHCI core (DEPRECATED)"
-       depends on USB_OHCI_HCD && (SSB = y || SSB = USB_OHCI_HCD)
+       depends on (SSB = y || SSB = USB_OHCI_HCD)
        select USB_HCD_SSB
        select USB_OHCI_HCD_PLATFORM
        default n
@@ -393,7 +438,7 @@ config USB_OHCI_HCD_SSB
 
 config USB_OHCI_SH
        bool "OHCI support for SuperH USB controller (DEPRECATED)"
-       depends on USB_OHCI_HCD && SUPERH
+       depends on SUPERH
        select USB_OHCI_HCD_PLATFORM
        ---help---
          This option is deprecated now and the driver was removed, use
@@ -404,13 +449,13 @@ config USB_OHCI_SH
 
 config USB_OHCI_EXYNOS
        boolean "OHCI support for Samsung EXYNOS SoC Series"
-       depends on USB_OHCI_HCD && ARCH_EXYNOS
+       depends on ARCH_EXYNOS
        help
         Enable support for the Samsung Exynos SOC's on-chip OHCI controller.
 
 config USB_CNS3XXX_OHCI
        bool "Cavium CNS3XXX OHCI Module (DEPRECATED)"
-       depends on USB_OHCI_HCD && ARCH_CNS3XXX
+       depends on ARCH_CNS3XXX
        select USB_OHCI_HCD_PLATFORM
        ---help---
          This option is deprecated now and the driver was removed, use
@@ -421,7 +466,6 @@ config USB_CNS3XXX_OHCI
 
 config USB_OHCI_HCD_PLATFORM
        bool "Generic OHCI driver for a platform device"
-       depends on USB_OHCI_HCD
        default n
        ---help---
          Adds an OHCI host driver for a generic platform device, which
@@ -429,35 +473,36 @@ config USB_OHCI_HCD_PLATFORM
 
          If unsure, say N.
 
-config USB_EHCI_HCD_PLATFORM
-       tristate "Generic EHCI driver for a platform device"
-       depends on USB_EHCI_HCD
-       default n
-       ---help---
-         Adds an EHCI host driver for a generic platform device, which
-         provides a memory space and an irq.
+config USB_OCTEON_OHCI
+       bool "Octeon on-chip OHCI support"
+       depends on CPU_CAVIUM_OCTEON
+       default USB_OCTEON_EHCI
+       select USB_OHCI_BIG_ENDIAN_MMIO
+       select USB_OHCI_LITTLE_ENDIAN
+       help
+         Enable support for the Octeon II SOC's on-chip OHCI
+         controller.  It is needed for low-speed USB 1.0 device
+         support.  All CN6XXX based chips with USB are supported.
 
-         If unsure, say N.
 
 config USB_OHCI_BIG_ENDIAN_DESC
        bool
-       depends on USB_OHCI_HCD
        default n
 
 config USB_OHCI_BIG_ENDIAN_MMIO
        bool
-       depends on USB_OHCI_HCD
        default n
 
 config USB_OHCI_LITTLE_ENDIAN
        bool
-       depends on USB_OHCI_HCD
        default n if STB03xxx || PPC_MPC52xx
        default y
 
+endif # USB_OHCI_HCD
+
 config USB_UHCI_HCD
        tristate "UHCI HCD (most Intel and VIA) support"
-       depends on USB && (PCI || SPARC_LEON || ARCH_VT8500)
+       depends on PCI || SPARC_LEON || ARCH_VT8500
        ---help---
          The Universal Host Controller Interface is a standard by Intel for
          accessing the USB hardware in the PC (which is also called the USB
@@ -497,7 +542,7 @@ config USB_UHCI_BIG_ENDIAN_DESC
 
 config USB_FHCI_HCD
        tristate "Freescale QE USB Host Controller support"
-       depends on USB && OF_GPIO && QE_GPIO && QUICC_ENGINE
+       depends on OF_GPIO && QE_GPIO && QUICC_ENGINE
        select FSL_GTM
        select QE_USB
        help
@@ -514,7 +559,7 @@ config FHCI_DEBUG
 
 config USB_U132_HCD
        tristate "Elan U132 Adapter Host Controller"
-       depends on USB && USB_FTDI_ELAN
+       depends on USB_FTDI_ELAN
        default M
        help
          The U132 adapter is a USB to CardBus adapter specifically designed
@@ -542,7 +587,6 @@ config USB_U132_HCD
 
 config USB_SL811_HCD
        tristate "SL811HS HCD support"
-       depends on USB
        help
          The SL811HS is a single-port USB controller that supports either
          host side or peripheral side roles.  Enable this option if your
@@ -574,7 +618,6 @@ config USB_SL811_CS
 
 config USB_R8A66597_HCD
        tristate "R8A66597 HCD support"
-       depends on USB
        help
          The R8A66597 is a USB 2.0 host and peripheral controller.
 
@@ -586,7 +629,6 @@ config USB_R8A66597_HCD
 
 config USB_RENESAS_USBHS_HCD
        tristate "Renesas USBHS HCD support"
-       depends on USB
        depends on USB_RENESAS_USBHS
        help
          The Renesas USBHS is a USB 2.0 host and peripheral controller.
@@ -611,7 +653,7 @@ config USB_WHCI_HCD
 
 config USB_HWA_HCD
        tristate "Host Wire Adapter (HWA) driver"
-       depends on USB && UWB
+       depends on UWB
        select USB_WUSB
        select UWB_HWA
        help
@@ -625,7 +667,7 @@ config USB_HWA_HCD
 
 config USB_IMX21_HCD
        tristate "i.MX21 HCD support"
-       depends on USB && ARM && ARCH_MXC
+       depends on ARM && ARCH_MXC
        help
          This driver enables support for the on-chip USB host in the
          i.MX21 processor.
@@ -633,27 +675,7 @@ config USB_IMX21_HCD
          To compile this driver as a module, choose M here: the
          module will be called "imx21-hcd".
 
-config USB_OCTEON_EHCI
-       bool "Octeon on-chip EHCI support"
-       depends on USB && USB_EHCI_HCD && CPU_CAVIUM_OCTEON
-       default n
-       select USB_EHCI_BIG_ENDIAN_MMIO
-       help
-         Enable support for the Octeon II SOC's on-chip EHCI
-         controller.  It is needed for high-speed (480Mbit/sec)
-         USB 2.0 device support.  All CN6XXX based chips with USB are
-         supported.
 
-config USB_OCTEON_OHCI
-       bool "Octeon on-chip OHCI support"
-       depends on USB && USB_OHCI_HCD && CPU_CAVIUM_OCTEON
-       default USB_OCTEON_EHCI
-       select USB_OHCI_BIG_ENDIAN_MMIO
-       select USB_OHCI_LITTLE_ENDIAN
-       help
-         Enable support for the Octeon II SOC's on-chip OHCI
-         controller.  It is needed for low-speed USB 1.0 device
-         support.  All CN6XXX based chips with USB are supported.
 
 config USB_OCTEON2_COMMON
        bool