ixp4xx: fix usb on cambria boards by using the ehci-platform driver
authorFelix Fietkau <nbd@openwrt.org>
Mon, 11 Nov 2013 16:51:01 +0000 (16:51 +0000)
committerFelix Fietkau <nbd@openwrt.org>
Mon, 11 Nov 2013 16:51:01 +0000 (16:51 +0000)
Signed-off-by: Felix Fietkau <nbd@openwrt.org>
SVN-Revision: 38740

target/linux/ixp4xx/patches-3.10/190-cambria_support.patch

index 7698912ccefaf9c634b182d01760732d6fcd1c35..c3de81a11719c4315fa1a70f91be251a02a716f7 100644 (file)
 +subsys_initcall(cambria_pci_init);
 --- /dev/null
 +++ b/arch/arm/mach-ixp4xx/cambria-setup.c
-@@ -0,0 +1,993 @@
+@@ -0,0 +1,1003 @@
 +/*
 + * arch/arm/mach-ixp4xx/cambria-setup.c
 + *
 +#include <linux/types.h>
 +#include <linux/tty.h>
 +#include <linux/irq.h>
++#include <linux/usb/ehci_pdriver.h>
 +
 +#include <mach/hardware.h>
 +#include <asm/irq.h>
 +
 +static u64 ehci_dma_mask = ~(u32)0;
 +
++static struct usb_ehci_pdata cambria_usb_pdata = {
++      .big_endian_desc = 1,
++      .big_endian_mmio = 1,
++      .has_tt = 1,
++      .caps_offset = 0x100,
++};
++
 +static struct platform_device cambria_usb0_device =  {
-+      .name           = "ixp4xx-ehci",
++      .name           = "ehci-platform",
 +      .id             = 0,
 +      .resource       = cambria_usb0_resources,
 +      .num_resources  = ARRAY_SIZE(cambria_usb0_resources),
 +      .dev = {
 +              .dma_mask               = &ehci_dma_mask,
 +              .coherent_dma_mask      = 0xffffffff,
++              .platform_data = &cambria_usb_pdata,
 +      },
 +};
 +
 +static struct platform_device cambria_usb1_device = {
-+      .name           = "ixp4xx-ehci",
++      .name           = "ehci-platform",
 +      .id             = 1,
 +      .resource       = cambria_usb1_resources,
 +      .num_resources  = ARRAY_SIZE(cambria_usb1_resources),
 +      .dev = {
 +              .dma_mask               = &ehci_dma_mask,
 +              .coherent_dma_mask      = 0xffffffff,
++              .platform_data = &cambria_usb_pdata,
 +      },
 +};
 +