usb: add CONFIG_USB_PCI for system have both PCI HW and non-PCI based USB HW
authoryuan linyu <Linyu.Yuan@alcatel-sbell.com.cn>
Sat, 25 Feb 2017 11:20:55 +0000 (19:20 +0800)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Fri, 17 Mar 2017 04:16:56 +0000 (13:16 +0900)
a lot of embeded system SOC (e.g. freescale T2080) have both
PCI and USB modules. But USB module is controlled by registers directly,
it have no relationship with PCI module.

when say N here it will not build PCI related code in USB driver.

Signed-off-by: yuan linyu <Linyu.Yuan@alcatel-sbell.com.cn>
Acked-by: Felipe Balbi <felipe.balbi@linux.intel.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
21 files changed:
drivers/usb/Kconfig
drivers/usb/Makefile
drivers/usb/chipidea/Kconfig
drivers/usb/core/Makefile
drivers/usb/dwc2/Kconfig
drivers/usb/dwc3/Kconfig
drivers/usb/gadget/udc/Kconfig
drivers/usb/gadget/udc/bdc/Kconfig
drivers/usb/gadget/udc/net2272.c
drivers/usb/gadget/udc/net2272.h
drivers/usb/host/Kconfig
drivers/usb/host/Makefile
drivers/usb/host/ehci-dbg.c
drivers/usb/host/ohci-hcd.c
drivers/usb/host/ohci.h
drivers/usb/host/pci-quirks.h
drivers/usb/host/uhci-hcd.c
drivers/usb/host/uhci-hcd.h
drivers/usb/host/xhci.c
drivers/usb/isp1760/isp1760-if.c
include/linux/usb/hcd.h

index fbe493d44e816970fa367cfc71a986fbd1a27909..aba6ebd8dedfd2a3022beef889b55ab410567e2b 100644 (file)
@@ -35,7 +35,6 @@ config USB_COMMON
 config USB_ARCH_HAS_HCD
        def_bool y
 
-# ARM SA1111 chips have a non-PCI based "OHCI-compatible" USB host interface.
 config USB
        tristate "Support for Host-side USB"
        depends on USB_ARCH_HAS_HCD
@@ -73,6 +72,17 @@ config USB
          To compile this driver as a module, choose M here: the
          module will be called usbcore.
 
+config USB_PCI
+       bool "PCI based USB host interface"
+       depends on PCI
+       default y
+       ---help---
+         A lot of embeded system SOC (e.g. freescale T2080) have both
+         PCI and USB modules. But USB module is controlled by registers
+         directly, it have no relationship with PCI module.
+
+         When say N here it will not build PCI related code in USB driver.
+
 if USB
 
 source "drivers/usb/core/Kconfig"
index 7791af6c102c7f4ea2c8ecdeda5cbc08fb03a55c..4e1cf090fd20fa554e0db8a4855c45bc7ada0143 100644 (file)
@@ -14,7 +14,7 @@ obj-$(CONFIG_USB_ISP1760)     += isp1760/
 obj-$(CONFIG_USB_MON)          += mon/
 obj-$(CONFIG_USB_MTU3)         += mtu3/
 
-obj-$(CONFIG_PCI)              += host/
+obj-$(CONFIG_USB_PCI)          += host/
 obj-$(CONFIG_USB_EHCI_HCD)     += host/
 obj-$(CONFIG_USB_ISP116X_HCD)  += host/
 obj-$(CONFIG_USB_OHCI_HCD)     += host/
index fc96f5cdcb5cc7744913f560f1c23f70fe6b8250..51f4157bbecfd9972d5c334c688eceeaa9f3ff74 100644 (file)
@@ -20,7 +20,7 @@ config USB_CHIPIDEA_OF
 
 config USB_CHIPIDEA_PCI
        tristate
-       depends on PCI
+       depends on USB_PCI
        depends on NOP_USB_XCEIV
        default USB_CHIPIDEA
 
index b99b871c4b9d9b05c2f4a2f843485fc4ca965506..250ec1d662d9ecbb53ec59449f5cd229a5071e77 100644 (file)
@@ -8,7 +8,7 @@ usbcore-y += devio.o notify.o generic.o quirks.o devices.o
 usbcore-y += port.o
 
 usbcore-$(CONFIG_OF)           += of.o
-usbcore-$(CONFIG_PCI)          += hcd-pci.o
+usbcore-$(CONFIG_USB_PCI)              += hcd-pci.o
 usbcore-$(CONFIG_ACPI)         += usb-acpi.o
 
 obj-$(CONFIG_USB)              += usbcore.o
index e838701d6dd54e624c356171833b929889027c38..b6a495e98fd848a4965f586ca216beab346f53fc 100644 (file)
@@ -54,7 +54,7 @@ endchoice
 
 config USB_DWC2_PCI
        tristate "DWC2 PCI"
-       depends on PCI
+       depends on USB_PCI
        depends on USB_GADGET || !USB_GADGET
        default n
        select NOP_USB_XCEIV
index c5aa235863e8c7e88b30544f8e1aba98c9a18d03..4c9e56d8776a1f17b8c64cc811a82b1d5479381c 100644 (file)
@@ -70,7 +70,7 @@ config USB_DWC3_EXYNOS
 
 config USB_DWC3_PCI
        tristate "PCIe-based Platforms"
-       depends on PCI && ACPI
+       depends on USB_PCI && ACPI
        default USB_DWC3
        help
          If you're using the DesignWare Core IP with a PCIe, please say
index 4b69f28a9af972dc5fc5584b9f8bbd6a38774f5a..c6cc9d3270acd714f2471b85dddd392746101629 100644 (file)
@@ -277,7 +277,7 @@ source "drivers/usb/gadget/udc/bdc/Kconfig"
 
 config USB_AMD5536UDC
        tristate "AMD5536 UDC"
-       depends on PCI
+       depends on USB_PCI
        help
           The AMD5536 UDC is part of the AMD Geode CS5536, an x86 southbridge.
           It is a USB Highspeed DMA capable USB device controller. Beside ep0
@@ -327,7 +327,7 @@ config USB_NET2272_DMA
 
 config USB_NET2280
        tristate "NetChip NET228x / PLX USB3x8x"
-       depends on PCI
+       depends on USB_PCI
        help
           NetChip 2280 / 2282 is a PCI based USB peripheral controller which
           supports both full and high speed USB 2.0 data transfers.
@@ -352,7 +352,7 @@ config USB_NET2280
 
 config USB_GOKU
        tristate "Toshiba TC86C001 'Goku-S'"
-       depends on PCI
+       depends on USB_PCI
        help
           The Toshiba TC86C001 is a PCI device which includes controllers
           for full speed USB devices, IDE, I2C, SIO, plus a USB host (OHCI).
@@ -366,7 +366,7 @@ config USB_GOKU
 
 config USB_EG20T
        tristate "Intel QUARK X1000/EG20T PCH/LAPIS Semiconductor IOH(ML7213/ML7831) UDC"
-       depends on PCI
+       depends on USB_PCI
        help
          This is a USB device driver for EG20T PCH.
          EG20T PCH is the platform controller hub that is used in Intel's
index 0d7b8c9f72fda17e4a5cfb904592806af817b2ae..eb8b553923609fbd09a0631ae3eaed3b1c5fff87 100644 (file)
@@ -14,7 +14,7 @@ if USB_BDC_UDC
 comment "Platform Support"
 config USB_BDC_PCI
        tristate "BDC support for PCIe based platforms"
-       depends on PCI
+       depends on USB_PCI
        default USB_BDC_UDC
        help
                Enable support for platforms which have BDC connected through PCIe, such as Lego3 FPGA platform.
index 7dc0102abdfe240ade3729e847b57b43fde768f1..8f85a51bd2b3ca5237f078ed00ee4d7ad201e10a 100644 (file)
@@ -653,7 +653,7 @@ net2272_request_dma(struct net2272 *dev, unsigned ep, u32 buf,
        dev->dma_busy = 1;
 
        /* initialize platform's dma */
-#ifdef CONFIG_PCI
+#ifdef CONFIG_USB_PCI
        /* NET2272 addr, buffer addr, length, etc. */
        switch (dev->dev_id) {
        case PCI_DEVICE_ID_RDK1:
@@ -701,7 +701,7 @@ static void
 net2272_start_dma(struct net2272 *dev)
 {
        /* start platform's dma controller */
-#ifdef CONFIG_PCI
+#ifdef CONFIG_USB_PCI
        switch (dev->dev_id) {
        case PCI_DEVICE_ID_RDK1:
                writeb((1 << CHANNEL_ENABLE) | (1 << CHANNEL_START),
@@ -797,7 +797,7 @@ net2272_kick_dma(struct net2272_ep *ep, struct net2272_request *req)
 
 static void net2272_cancel_dma(struct net2272 *dev)
 {
-#ifdef CONFIG_PCI
+#ifdef CONFIG_USB_PCI
        switch (dev->dev_id) {
        case PCI_DEVICE_ID_RDK1:
                writeb(0, dev->rdk1.plx9054_base_addr + DMACSR0);
@@ -2306,7 +2306,7 @@ err_add_udc:
        return ret;
 }
 
-#ifdef CONFIG_PCI
+#ifdef CONFIG_USB_PCI
 
 /*
  * wrap this driver around the specified device, but
index 127ab03fcde3ba40bf539d231ac92baaeff7f265..69bc9c3c6ce40b871cdf508fb403da74cb7c8ac5 100644 (file)
@@ -472,7 +472,7 @@ struct net2272 {
        unsigned int base_shift;
        u16 __iomem *base_addr;
        union {
-#ifdef CONFIG_PCI
+#ifdef CONFIG_USB_PCI
                struct {
                        void __iomem *plx9054_base_addr;
                        void __iomem *epld_base_addr;
index 407d947b34ea5b524c467c7c992d9774ded5414a..2b2eecd4c11dceebeb7f9cf8d9bb047874391167 100644 (file)
@@ -30,7 +30,7 @@ if USB_XHCI_HCD
 
 config USB_XHCI_PCI
        tristate
-       depends on PCI
+       depends on USB_PCI
        default y
 
 config USB_XHCI_PLATFORM
@@ -139,7 +139,7 @@ if USB_EHCI_HCD
 
 config USB_EHCI_PCI
        tristate
-       depends on PCI
+       depends on USB_PCI
        default y
 
 config USB_EHCI_HCD_PMC_MSP
@@ -525,7 +525,7 @@ config USB_OHCI_HCD_PPC_OF
 
 config USB_OHCI_HCD_PCI
        tristate "OHCI support for PCI-bus USB controllers"
-       depends on PCI
+       depends on USB_PCI
        default y
        select USB_OHCI_LITTLE_ENDIAN
        ---help---
@@ -606,7 +606,7 @@ endif # USB_OHCI_HCD
 
 config USB_UHCI_HCD
        tristate "UHCI HCD (most Intel and VIA) support"
-       depends on PCI || USB_UHCI_SUPPORT_NON_PCI_HC
+       depends on USB_PCI || USB_UHCI_SUPPORT_NON_PCI_HC
        ---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
@@ -739,7 +739,7 @@ config USB_RENESAS_USBHS_HCD
 
 config USB_WHCI_HCD
        tristate "Wireless USB Host Controller Interface (WHCI) driver"
-       depends on PCI && USB && UWB
+       depends on USB_PCI && USB && UWB
        select USB_WUSB
        select UWB_WHCI
        help
index 2644537b7bcfb5cc8452243838815d3aa5669409..c77b0a38557b5bfcd6339302fc780ccdf9a14e35 100644 (file)
@@ -27,9 +27,7 @@ endif
 
 obj-$(CONFIG_USB_WHCI_HCD)     += whci/
 
-ifneq ($(CONFIG_USB), )
-       obj-$(CONFIG_PCI)       += pci-quirks.o
-endif
+obj-$(CONFIG_USB_PCI)  += pci-quirks.o
 
 obj-$(CONFIG_USB_EHCI_HCD)     += ehci-hcd.o
 obj-$(CONFIG_USB_EHCI_PCI)     += ehci-pci.o
index 1a2614aae42cabd8859f1ab327034d18c5f46c12..cbb9b8e12c3ce7e8f18cd8d0765dfc2dc34bd29b 100644 (file)
@@ -803,7 +803,7 @@ static ssize_t fill_registers_buffer(struct debug_buffer *buf)
        size -= temp;
        next += temp;
 
-#ifdef CONFIG_PCI
+#ifdef CONFIG_USB_PCI
        /* EHCI 0.96 and later may have "extended capabilities" */
        if (dev_is_pci(hcd->self.controller)) {
                struct pci_dev  *pdev;
index b6daf2e6998936021e590a444633dbe28e100878..da66ad57e37031caa92e545521a944477f028eac 100644 (file)
@@ -994,7 +994,7 @@ static void ohci_stop (struct usb_hcd *hcd)
 
 /*-------------------------------------------------------------------------*/
 
-#if defined(CONFIG_PM) || defined(CONFIG_PCI)
+#if defined(CONFIG_PM) || defined(CONFIG_USB_PCI)
 
 /* must not be called from interrupt context */
 int ohci_restart(struct ohci_hcd *ohci)
index 37f1725e7a469c45fa035a46ed9827a5b92bc6c7..382444c8b44cfe6e8c9ce201566ce969968292d7 100644 (file)
@@ -438,7 +438,7 @@ struct ohci_hcd {
 
 };
 
-#ifdef CONFIG_PCI
+#ifdef CONFIG_USB_PCI
 static inline int quirk_nec(struct ohci_hcd *ohci)
 {
        return ohci->flags & OHCI_QUIRK_NEC;
index c622ddf21c94e61f6c8089cdc493088f33973599..0222195bd5b0e2a954ec8d2e841720b577c7282a 100644 (file)
@@ -1,7 +1,7 @@
 #ifndef __LINUX_USB_PCI_QUIRKS_H
 #define __LINUX_USB_PCI_QUIRKS_H
 
-#ifdef CONFIG_PCI
+#ifdef CONFIG_USB_PCI
 void uhci_reset_hc(struct pci_dev *pdev, unsigned long base);
 int uhci_check_and_reset_hc(struct pci_dev *pdev, unsigned long base);
 int usb_amd_find_chipset_info(void);
@@ -21,6 +21,6 @@ static inline void usb_amd_quirk_pll_enable(void) {}
 static inline void usb_amd_dev_put(void) {}
 static inline void usb_disable_xhci_ports(struct pci_dev *xhci_pdev) {}
 static inline void sb800_prefetch(struct device *dev, int on) {}
-#endif  /* CONFIG_PCI */
+#endif  /* CONFIG_USB_PCI */
 
 #endif  /*  __LINUX_USB_PCI_QUIRKS_H  */
index 683098afa93ea150ad9888875b6e11ad2d5d33be..94b150196d4f5d575ba5775aae1a29f112df0f55 100644 (file)
@@ -837,7 +837,7 @@ static int uhci_count_ports(struct usb_hcd *hcd)
 
 static const char hcd_name[] = "uhci_hcd";
 
-#ifdef CONFIG_PCI
+#ifdef CONFIG_USB_PCI
 #include "uhci-pci.c"
 #define        PCI_DRIVER              uhci_pci_driver
 #endif
index 6f986d82472d7daf2fad8ff14bac8b201d3391fb..7fa318a3091d6556a1e9bb46fa3eda0f4ba39625 100644 (file)
@@ -530,7 +530,7 @@ static inline void uhci_writeb(const struct uhci_hcd *uhci, u8 val, int reg)
 
 #else
 /* Support non-PCI host controllers */
-#ifdef CONFIG_PCI
+#ifdef CONFIG_USB_PCI
 /* Support PCI and non-PCI host controllers */
 #define uhci_has_pci_registers(u)      ((u)->io_addr != 0)
 #else
index 50aee8b7718b30dc86938bba6a5e540e179ecdb9..bb0becf8561c7068c8cddf6add1c042e3530cca4 100644 (file)
@@ -216,7 +216,7 @@ int xhci_reset(struct xhci_hcd *xhci)
        return ret;
 }
 
-#ifdef CONFIG_PCI
+#ifdef CONFIG_USB_PCI
 static int xhci_free_msi(struct xhci_hcd *xhci)
 {
        int i;
index 79205b31e4a9d5caf01d5c2e06f0349805cb9846..bc68bbab7fa170796e06efc11080c67598bcc32b 100644 (file)
 #include "isp1760-core.h"
 #include "isp1760-regs.h"
 
-#ifdef CONFIG_PCI
+#ifdef CONFIG_USB_PCI
 #include <linux/pci.h>
 #endif
 
-#ifdef CONFIG_PCI
+#ifdef CONFIG_USB_PCI
 static int isp1761_pci_init(struct pci_dev *dev)
 {
        resource_size_t mem_start;
@@ -286,7 +286,7 @@ static int __init isp1760_init(void)
        ret = platform_driver_register(&isp1760_plat_driver);
        if (!ret)
                any_ret = 0;
-#ifdef CONFIG_PCI
+#ifdef CONFIG_USB_PCI
        ret = pci_register_driver(&isp1761_pci_driver);
        if (!ret)
                any_ret = 0;
@@ -301,7 +301,7 @@ module_init(isp1760_init);
 static void __exit isp1760_exit(void)
 {
        platform_driver_unregister(&isp1760_plat_driver);
-#ifdef CONFIG_PCI
+#ifdef CONFIG_USB_PCI
        pci_unregister_driver(&isp1761_pci_driver);
 #endif
        isp1760_deinit_kmem_cache();
index 40edf6a8533e51fef324eb52b91d6038f74ab877..dff1301512352efe726d7b8681a8d346e495ade2 100644 (file)
@@ -453,7 +453,7 @@ extern int usb_hcd_find_raw_port_number(struct usb_hcd *hcd, int port1);
 struct platform_device;
 extern void usb_hcd_platform_shutdown(struct platform_device *dev);
 
-#ifdef CONFIG_PCI
+#ifdef CONFIG_USB_PCI
 struct pci_dev;
 struct pci_device_id;
 extern int usb_hcd_pci_probe(struct pci_dev *dev,
@@ -466,7 +466,7 @@ extern int usb_hcd_amd_remote_wakeup_quirk(struct pci_dev *dev);
 #ifdef CONFIG_PM
 extern const struct dev_pm_ops usb_hcd_pci_pm_ops;
 #endif
-#endif /* CONFIG_PCI */
+#endif /* CONFIG_USB_PCI */
 
 /* pci-ish (pdev null is ok) buffer alloc/mapping support */
 void usb_init_pool_max(void);