DM646x has MUSB connected to IRQs 13 and 14 (unlike IRQ12 on other platforms),
so pass the correct IRQ resources with the platform device.

Signed-off-by: Dmitry Krivoschekov <[email protected]>
Signed-off-by: Sergei Shtylyov <[email protected]>

---
Killed stray spaces...

 arch/arm/mach-davinci/usb.c |   13 +++++++++++++
 1 files changed, 13 insertions(+)

Index: linux-davinci/arch/arm/mach-davinci/usb.c
===================================================================
--- linux-davinci.orig/arch/arm/mach-davinci/usb.c
+++ linux-davinci/arch/arm/mach-davinci/usb.c
@@ -13,6 +13,7 @@
 #include <mach/common.h>
 #include <mach/hardware.h>
 #include <mach/irqs.h>
+#include <mach/cputype.h>
 
 #define DAVINCI_USB_OTG_BASE 0x01C64000
 
@@ -64,6 +65,10 @@ static struct resource usb_resources[] =
                .start          = IRQ_USBINT,
                .flags          = IORESOURCE_IRQ,
        },
+       {
+               /* placeholder for the dedicated CPPI IRQ */
+               .flags          = IORESOURCE_IRQ,
+       },
 };
 
 static u64 usb_dmamask = DMA_BIT_MASK(32);
@@ -84,6 +89,14 @@ void __init setup_usb(unsigned mA, unsig
 {
        usb_data.power = mA / 2;
        usb_data.potpgt = potpgt_msec / 2;
+
+       if (cpu_is_davinci_dm646x()) {
+               /* Override the defaults as DM6467 uses different IRQs. */
+               usb_dev.resource[1].start = IRQ_DM646X_USBINT;
+               usb_dev.resource[2].start = IRQ_DM646X_USBDMAINT;
+       } else  /* other devices don't have dedicated CPPI IRQ */
+               usb_dev.num_resources = 2;
+
        platform_device_register(&usb_dev);
 }
 


_______________________________________________
Davinci-linux-open-source mailing list
[email protected]
http://linux.davincidsp.com/mailman/listinfo/davinci-linux-open-source

Reply via email to