The gadget case is, just depend on the ISP1301 instead of selecting it.
The OHCI case is little more difficult. It is not possible to say select
if and on top of it, the phy depends on USB which depends on OHCI. This
started as a fix for:

| drivers/usb/gadget/lpc32xx_udc.c: In function ‘isp1301_udc_configure’:
| drivers/usb/gadget/lpc32xx_udc.c:606: error: implicit declaration of function 
‘i2c_smbus_write_byte_data’
| drivers/usb/gadget/lpc32xx_udc.c:665: error: implicit declaration of function 
‘i2c_smbus_read_word_data’
| drivers/usb/gadget/lpc32xx_udc.c: In function ‘vbus_work’:
| drivers/usb/gadget/lpc32xx_udc.c:2959: error: implicit declaration of 
function ‘i2c_smbus_read_byte_data’

Cc: Alexandre Pereira da Silva <[email protected]>
Cc: Roland Stigge <[email protected]>
Cc: Alan Stern <[email protected]>
Signed-off-by: Sebastian Andrzej Siewior <[email protected]>
---
 drivers/usb/gadget/Kconfig  |    3 +--
 drivers/usb/host/Kconfig    |   10 +++++++++-
 drivers/usb/host/ohci-hcd.c |    2 +-
 3 files changed, 11 insertions(+), 4 deletions(-)

diff --git a/drivers/usb/gadget/Kconfig b/drivers/usb/gadget/Kconfig
index 51ab5fd..1494112 100644
--- a/drivers/usb/gadget/Kconfig
+++ b/drivers/usb/gadget/Kconfig
@@ -143,8 +143,7 @@ config USB_AT91
 
 config USB_LPC32XX
        tristate "LPC32XX USB Peripheral Controller"
-       depends on ARCH_LPC32XX
-       select USB_ISP1301
+       depends on ARCH_LPC32XX && USB_ISP1301
        help
           This option selects the USB device controller in the LPC32xx SoC.
 
diff --git a/drivers/usb/host/Kconfig b/drivers/usb/host/Kconfig
index c3f619b..cac3ee2 100644
--- a/drivers/usb/host/Kconfig
+++ b/drivers/usb/host/Kconfig
@@ -292,7 +292,6 @@ config USB_OHCI_HCD
        depends on USB && USB_ARCH_HAS_OHCI
        select ISP1301_OMAP if MACH_OMAP_H2 || MACH_OMAP_H3
        select USB_OTG_UTILS if ARCH_OMAP
-       select USB_ISP1301 if ARCH_LPC32XX || ARCH_PNX4008
        ---help---
          The Open Host Controller Interface (OHCI) is a standard for accessing
          USB 1.1 host controller hardware.  It does more in hardware than 
Intel's
@@ -412,6 +411,15 @@ config USB_CNS3XXX_OHCI
          Enable support for the CNS3XXX SOC's on-chip OHCI controller.
          It is needed for low-speed USB 1.0 device support.
 
+config USB_OHCI_LPC32XX_PNX4008
+       bool "LPC32XX or PNX4008 OHCI Module"
+       depends on USB_OHCI_HCD
+       depends on USB_ISP1301
+       ---help---
+         Enable support for the LPC32XX or PNX4008 SOC's on-chip
+         OHCI controller.
+         It is needed for low-speed USB 1.0 device support.
+
 config USB_OHCI_HCD_PLATFORM
        bool "Generic OHCI driver for a platform device"
        depends on USB_OHCI_HCD && EXPERIMENTAL
diff --git a/drivers/usb/host/ohci-hcd.c b/drivers/usb/host/ohci-hcd.c
index 2b1e8d8..95cb858 100644
--- a/drivers/usb/host/ohci-hcd.c
+++ b/drivers/usb/host/ohci-hcd.c
@@ -1049,7 +1049,7 @@ MODULE_LICENSE ("GPL");
 #define PLATFORM_DRIVER                ohci_hcd_at91_driver
 #endif
 
-#if defined(CONFIG_ARCH_PNX4008) || defined(CONFIG_ARCH_LPC32XX)
+#ifdef USB_OHCI_LPC32XX_PNX4008
 #include "ohci-nxp.c"
 #define PLATFORM_DRIVER                usb_hcd_nxp_driver
 #endif
-- 
1.7.10.4

--
To unsubscribe from this list: send the line "unsubscribe linux-usb" in
the body of a message to [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to