+#endif /* DWC_DEVICE_ONLY */
--- /dev/null
+++ b/drivers/usb/dwc_otg/dwc_otg_ifx.c
-@@ -0,0 +1,150 @@
+@@ -0,0 +1,105 @@
+/******************************************************************************
+**
+** FILE NAME : dwc_otg_ifx.c
+
+static void release_platform_dev(struct device * dev)
+{
-+ printk("IFX dwc_otg USB platform_dev release\n");
-+ dev->parent = NULL;
+}
+
-+static struct resource resources[] =
-+{
-+ [0] = {
-+ .name = "dwc_otg_membase",
-+ .start = IFX_USB_IOMEM_BASE,
-+ .end = IFX_USB_IOMEM_BASE + IFX_USB_IOMEM_SIZE - 1,
-+ .flags = IORESOURCE_MEM,
-+ },
-+ [1] = {
-+ .name = "dwc_otg_irq",
-+ .start = IFX_USB_IRQ,
-+ .flags = IORESOURCE_IRQ,
-+ },
-+};
-+
-+static u64 dwc_dmamask = (u32)0x1fffffff;
-+
-+static struct platform_device platform_dev = {
-+ .dev = {
-+ .release = release_platform_dev,
-+ .dma_mask = &dwc_dmamask,
-+ },
-+ .resource = resources,
-+ .num_resources = ARRAY_SIZE(resources),
-+};
-+
-+extern const char dwc_driver_name[];
+int ifx_usb_hc_init(unsigned long base_addr, int irq)
+{
-+ if (platform_dev.dev.parent)
-+ return -EBUSY;
-+
-+ /* finish seting up the platform device */
-+ //resources[0].start = base_addr;
-+ //resources[0].end = base_addr + SZ_256K;
-+
-+ //resources[1].start = irq;
-+
-+ /* The driver core will probe for us. We know sl811-hcd has been
-+ * initialized already because of the link order dependency.
-+ */
-+ platform_dev.name = dwc_driver_name;
-+ lq_enable_irq(resources[1].start);
-+
-+ return platform_device_register(&platform_dev);
++ return 0;
+}
+
+void ifx_usb_hc_remove(void)
+{
-+ platform_device_unregister(&platform_dev);
+}
--- /dev/null
+++ b/drivers/usb/dwc_otg/dwc_otg_ifx.h
+xway_register_dwc(int pin)
+{
+ lq_enable_irq(resources[1].start);
-+ platform_dev.dev.platform_data = pin;
++ platform_dev.dev.platform_data = (void*) pin;
+ return platform_device_register(&platform_dev);
+}
--- /dev/null
+extern void __init xway_register_dwc(int pin);
+
+#endif
---- a/arch/mips/lantiq/xway/mach-arv45xx.c
-+++ b/arch/mips/lantiq/xway/mach-arv45xx.c
-@@ -23,6 +23,7 @@
- #include <lantiq_platform.h>
-
- #include "devices.h"
-+#include "dev-dwc_otg.h"
-
- #define ARV452_LATCH_SWITCH (1 << 10)
-
-@@ -132,6 +133,7 @@
- lq_register_pci(&lq_pci_data);
- lq_register_wdt();
- arv45xx_register_ethernet();
-+ xway_register_dwc(14);
- }
-
- MIPS_MACHINE(LANTIQ_MACH_ARV4518,
-@@ -151,6 +153,7 @@
- lq_register_pci(&lq_pci_data);
- lq_register_wdt();
- arv45xx_register_ethernet();
-+ xway_register_dwc(28);
- }
-
- MIPS_MACHINE(LANTIQ_MACH_ARV452,