mx31: add dma and fb devices
authorValentin Longchamp <valentin.longchamp@epfl.ch>
Mon, 16 Feb 2009 11:47:52 +0000 (12:47 +0100)
committerSascha Hauer <s.hauer@pengutronix.de>
Fri, 13 Mar 2009 09:34:22 +0000 (10:34 +0100)
This adds the dma (ipu_dma) and fb devices for the mx31 for which drivers now are
available.

v2: merge the ipu and fb device in the same patch as suggested by Sascha

Signed-off-by: Valentin Longchamp <valentin.longchamp@epfl.ch>
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
arch/arm/mach-mx3/devices.c
arch/arm/mach-mx3/devices.h
arch/arm/mach-mx3/mx31moboard.c

index 7cfdef0aad45f1d67718a7a0c59a2975a9b42566..b7d4900b02e49897c3b41e6c2fcdabf087e7c64a 100644 (file)
@@ -242,3 +242,51 @@ struct platform_device mxc_i2c_device2 = {
        .num_resources = ARRAY_SIZE(mxc_i2c2_resources),
        .resource = mxc_i2c2_resources,
 };
+
+/* i.MX31 Image Processing Unit */
+
+/* The resource order is important! */
+static struct resource mx3_ipu_rsrc[] = {
+       {
+               .start = IPU_CTRL_BASE_ADDR,
+               .end = IPU_CTRL_BASE_ADDR + 0x5F,
+               .flags = IORESOURCE_MEM,
+       }, {
+               .start = IPU_CTRL_BASE_ADDR + 0x88,
+               .end = IPU_CTRL_BASE_ADDR + 0xB3,
+               .flags = IORESOURCE_MEM,
+       }, {
+               .start = MXC_INT_IPU_SYN,
+               .end = MXC_INT_IPU_SYN,
+               .flags = IORESOURCE_IRQ,
+       }, {
+               .start = MXC_INT_IPU_ERR,
+               .end = MXC_INT_IPU_ERR,
+               .flags = IORESOURCE_IRQ,
+       },
+};
+
+struct platform_device mx3_ipu = {
+       .name = "ipu-core",
+       .id = -1,
+       .num_resources = ARRAY_SIZE(mx3_ipu_rsrc),
+       .resource = mx3_ipu_rsrc,
+};
+
+static struct resource fb_resources[] = {
+       {
+               .start  = IPU_CTRL_BASE_ADDR + 0xB4,
+               .end    = IPU_CTRL_BASE_ADDR + 0x1BF,
+               .flags  = IORESOURCE_MEM,
+       },
+};
+
+struct platform_device mx3_fb = {
+       .name           = "mx3_sdc_fb",
+       .id             = -1,
+       .num_resources  = ARRAY_SIZE(fb_resources),
+       .resource       = fb_resources,
+       .dev            = {
+               .coherent_dma_mask = 0xffffffff,
+       },
+};
index 077a90226a71ffb81e77ef53cbc9ef9160e2a7a3..d1638518a9d6a4d80fdae7ac6aa1ae6a5f313899 100644 (file)
@@ -9,3 +9,5 @@ extern struct platform_device mxc_nand_device;
 extern struct platform_device mxc_i2c_device0;
 extern struct platform_device mxc_i2c_device1;
 extern struct platform_device mxc_i2c_device2;
+extern struct platform_device mx3_ipu;
+extern struct platform_device mx3_fb;
index 2d51739e24bf1d211a677e2953aa25a8b42c4c33..b30460a2a5596c85c60dae774fbe765b2042a07d 100644 (file)
@@ -101,7 +101,6 @@ static void __init mxc_board_init(void)
        default:
                printk(KERN_ERR "Illegal mx31moboard_baseboard type %d\n", mx31moboard_baseboard);
        }
-
 }
 
 /*