summaryrefslogtreecommitdiff
path: root/arch/arm/mach-mx3/devices.c
diff options
context:
space:
mode:
authorUwe Kleine-König <u.kleine-koenig@pengutronix.de>2010-11-12 16:40:06 +0100
committerUwe Kleine-König <u.kleine-koenig@pengutronix.de>2010-11-19 21:54:35 +0100
commit9e1dde33876ba83ad586c336647fff133d0f5472 (patch)
tree52aa4efe87f2f52234f2f55e3a2b29e61de683c9 /arch/arm/mach-mx3/devices.c
parentfed3d35b06bf3f6a3383c2637d054823c563200b (diff)
ARM: mx3: dynamically allocate fsl-usb2-udc devices
While adapting the #defines for this I noticed that the offset used for USB HS on i.MX35 differs from the documented offset. I kept the working offset and commented that the documentation differs. Signed-off-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
Diffstat (limited to 'arch/arm/mach-mx3/devices.c')
-rw-r--r--arch/arm/mach-mx3/devices.c52
1 files changed, 20 insertions, 32 deletions
diff --git a/arch/arm/mach-mx3/devices.c b/arch/arm/mach-mx3/devices.c
index 202c06c552b2..3f859ae8b850 100644
--- a/arch/arm/mach-mx3/devices.c
+++ b/arch/arm/mach-mx3/devices.c
@@ -97,30 +97,18 @@ struct platform_device mx3_camera = {
static struct resource otg_resources[] = {
{
- .start = MX31_OTG_BASE_ADDR,
- .end = MX31_OTG_BASE_ADDR + 0x1ff,
+ .start = MX31_USB_OTG_BASE_ADDR,
+ .end = MX31_USB_OTG_BASE_ADDR + 0x1ff,
.flags = IORESOURCE_MEM,
}, {
- .start = MX31_INT_USB3,
- .end = MX31_INT_USB3,
+ .start = MX31_INT_USB_OTG,
+ .end = MX31_INT_USB_OTG,
.flags = IORESOURCE_IRQ,
},
};
static u64 otg_dmamask = DMA_BIT_MASK(32);
-/* OTG gadget device */
-struct platform_device mxc_otg_udc_device = {
- .name = "fsl-usb2-udc",
- .id = -1,
- .dev = {
- .dma_mask = &otg_dmamask,
- .coherent_dma_mask = DMA_BIT_MASK(32),
- },
- .resource = otg_resources,
- .num_resources = ARRAY_SIZE(otg_resources),
-};
-
/* OTG host */
struct platform_device mxc_otg_host = {
.name = "mxc-ehci",
@@ -139,12 +127,12 @@ static u64 usbh1_dmamask = ~(u32)0;
static struct resource mxc_usbh1_resources[] = {
{
- .start = MX31_OTG_BASE_ADDR + 0x200,
- .end = MX31_OTG_BASE_ADDR + 0x3ff,
+ .start = MX31_USB_HS1_BASE_ADDR,
+ .end = MX31_USB_HS1_BASE_ADDR + 0x1ff,
.flags = IORESOURCE_MEM,
}, {
- .start = MX31_INT_USB1,
- .end = MX31_INT_USB1,
+ .start = MX31_INT_USB_HS1,
+ .end = MX31_INT_USB_HS1,
.flags = IORESOURCE_IRQ,
},
};
@@ -166,12 +154,12 @@ static u64 usbh2_dmamask = ~(u32)0;
static struct resource mxc_usbh2_resources[] = {
{
- .start = MX31_OTG_BASE_ADDR + 0x400,
- .end = MX31_OTG_BASE_ADDR + 0x5ff,
+ .start = MX31_USB_HS2_BASE_ADDR,
+ .end = MX31_USB_HS2_BASE_ADDR + 0x1ff,
.flags = IORESOURCE_MEM,
}, {
- .start = MX31_INT_USB2,
- .end = MX31_INT_USB2,
+ .start = MX31_INT_USB_HS2,
+ .end = MX31_INT_USB_HS2,
.flags = IORESOURCE_IRQ,
},
};
@@ -249,14 +237,14 @@ static int __init mx3_devices_init(void)
#endif
#if defined(CONFIG_ARCH_MX35)
if (cpu_is_mx35()) {
- otg_resources[0].start = MX35_OTG_BASE_ADDR;
- otg_resources[0].end = MX35_OTG_BASE_ADDR + 0x1ff;
- otg_resources[1].start = MX35_INT_USBOTG;
- otg_resources[1].end = MX35_INT_USBOTG;
- mxc_usbh1_resources[0].start = MX35_OTG_BASE_ADDR + 0x400;
- mxc_usbh1_resources[0].end = MX35_OTG_BASE_ADDR + 0x5ff;
- mxc_usbh1_resources[1].start = MX35_INT_USBHS;
- mxc_usbh1_resources[1].end = MX35_INT_USBHS;
+ otg_resources[0].start = MX35_USB_OTG_BASE_ADDR;
+ otg_resources[0].end = MX35_USB_OTG_BASE_ADDR + 0x1ff;
+ otg_resources[1].start = MX35_INT_USB_OTG;
+ otg_resources[1].end = MX35_INT_USB_OTG;
+ mxc_usbh1_resources[0].start = MX35_USB_HS_BASE_ADDR;
+ mxc_usbh1_resources[0].end = MX35_USB_HS_BASE_ADDR + 0x1ff;
+ mxc_usbh1_resources[1].start = MX35_INT_USB_HS;
+ mxc_usbh1_resources[1].end = MX35_INT_USB_HS;
imx_wdt_resources[0].start = MX35_WDOG_BASE_ADDR;
imx_wdt_resources[0].end = MX35_WDOG_BASE_ADDR + 0x3fff;
}