obj-$(CONFIG_MACH_OMAP_H4)             += board-h4.o board-h4-mmc.o
 obj-$(CONFIG_MACH_OMAP_2430SDP)                += board-2430sdp.o \
                                           board-2430sdp-flash.o \
-                                          mmc-twl4030.o \
-                                          usb-musb.o \
-                                          usb-ehci.o
+                                          mmc-twl4030.o
 obj-$(CONFIG_MACH_OMAP2EVM)            += board-omap2evm.o \
                                           mmc-twl4030.o
 obj-$(CONFIG_MACH_OMAP_3430SDP)                += board-3430sdp.o \
                                           mmc-twl4030.o \
-                                          usb-musb.o \
-                                          usb-ehci.o \
                                           board-3430sdp-flash.o
 obj-$(CONFIG_MACH_OMAP3EVM)            += board-omap3evm.o \
                                           mmc-twl4030.o \
-                                          usb-musb.o usb-ehci.o \
                                           board-omap3evm-flash.o \
                                           twl4030-generic-scripts.o
 obj-$(CONFIG_MACH_OMAP3_BEAGLE)                += board-omap3beagle.o \
-                                          usb-musb.o usb-ehci.o \
                                           mmc-twl4030.o \
                                           twl4030-generic-scripts.o
 obj-$(CONFIG_MACH_OMAP_LDP)            += board-ldp.o \
-                                          mmc-twl4030.o \
-                                          usb-musb.o
+                                          mmc-twl4030.o
 obj-$(CONFIG_MACH_OMAP_APOLLON)                += board-apollon.o \
                                           board-apollon-mmc.o  \
                                           board-apollon-keys.o
                                           board-rx51-sdram.o \
                                           board-rx51-video.o \
                                           board-rx51-peripherals.o \
-                                          mmc-twl4030.o \
-                                          usb-musb.o
+                                          mmc-twl4030.o
 
 obj-$(CONFIG_MACH_OVERO)               += board-overo.o \
                                           mmc-twl4030.o \
-                                          usb-musb.o \
-                                          usb-ehci.o \
                                           twl4030-generic-scripts.o
 obj-$(CONFIG_MACH_OMAP3_PANDORA)       += board-omap3pandora.o \
-                                          mmc-twl4030.o \
-                                          usb-musb.o \
-                                          usb-ehci.o
+                                          mmc-twl4030.o
 
-# TUSB 6010 chips
+# Platform specific device init code
+obj-$(CONFIG_USB_MUSB_SOC)             += usb-musb.o
 obj-$(CONFIG_MACH_OMAP2_TUSB6010)      += usb-tusb6010.o
 
+ifneq ($(CONFIG_USB_EHCI_HCD),)
+       obj-y                           += usb-ehci.o
+endif
+
+
 
 #include <mach/pm.h>
 #include <mach/usb.h>
 
-#if    defined(CONFIG_USB_EHCI_HCD) || defined(CONFIG_USB_EHCI_HCD_MODULE)
 static struct resource ehci_resources[] = {
        [0] = {
                .start   = OMAP34XX_HSUSB_HOST_BASE + 0x800,
        .resource       = ehci_resources,
 };
 
-
 /* MUX settings for EHCI pins */
 /*
  * setup_ehci_io_mux - initialize IO pad mux for USBHOST
        return;
 }
 
-#endif /* EHCI specific data */
-
 void __init usb_ehci_init(void)
 {
-#if     defined(CONFIG_USB_EHCI_HCD) || defined(CONFIG_USB_EHCI_HCD_MODULE)
        /* Setup Pin IO MUX for EHCI */
        if (cpu_is_omap34xx())
                setup_ehci_io_mux();
                printk(KERN_ERR "Unable to register HS-USB (EHCI) device\n");
                return;
        }
-#endif
 }
 
+
 
 #include <mach/mux.h>
 #include <mach/usb.h>
 
-#ifdef CONFIG_USB_MUSB_SOC
 static struct resource musb_resources[] = {
        [0] = { /* start and end set dynamically */
                .flags  = IORESOURCE_MEM,
        .num_resources  = ARRAY_SIZE(musb_resources),
        .resource       = musb_resources,
 };
-#endif
-
 
 void __init usb_musb_init(void)
 {
-#ifdef CONFIG_USB_MUSB_SOC
-
        if (cpu_is_omap243x()) {
                musb_resources[0].start = OMAP243X_HS_BASE;
                musb_plat.clock = "usbhs_ick";
                printk(KERN_ERR "Unable to register HS-USB (MUSB) device\n");
                return;
        }
-#endif
 }
-
 
 #define UDC_BASE                       OMAP2_UDC_BASE
 #define OMAP_OHCI_BASE                 OMAP2_OHCI_BASE
 
+#ifdef CONFIG_USB_MUSB_SOC
 extern void usb_musb_init(void);
+#else
+static inline void usb_musb_init(void)
+{
+}
+#endif
+
+#if defined(CONFIG_USB_EHCI_HCD) || defined(CONFIG_USB_EHCI_HCD_MODULE)
 extern void usb_ehci_init(void);
+#else
+static inline void usb_ehci_init(void)
+{
+}
+#endif
 
 #endif