sh: sh7724: Add VEU support.
authorKuninori Morimoto <morimoto.kuninori@renesas.com>
Wed, 15 Apr 2009 02:43:07 +0000 (11:43 +0900)
committerPaul Mundt <lethal@linux-sh.org>
Thu, 16 Apr 2009 05:52:13 +0000 (14:52 +0900)
This adds uio_pdrv_genirq support for the VEU.

Signed-off-by: Kuninori Morimoto <morimoto.kuninori@renesas.com>
Signed-off-by: Paul Mundt <lethal@linux-sh.org>
arch/sh/kernel/cpu/sh4a/setup-sh7724.c

index 499a6fc..65570ed 100644 (file)
@@ -172,20 +172,84 @@ static struct platform_device vpu_device = {
        .num_resources  = ARRAY_SIZE(vpu_resources),
 };
 
+/* VEU0 */
+static struct uio_info veu0_platform_data = {
+       .name = "VEU3F0",
+       .version = "0",
+       .irq = 83,
+};
+
+static struct resource veu0_resources[] = {
+       [0] = {
+               .name   = "VEU3F0",
+               .start  = 0xfe920000,
+               .end    = 0xfe9200cb - 1,
+               .flags  = IORESOURCE_MEM,
+       },
+       [1] = {
+               /* place holder for contiguous memory */
+       },
+};
+
+static struct platform_device veu0_device = {
+       .name           = "uio_pdrv_genirq",
+       .id             = 1,
+       .dev = {
+               .platform_data  = &veu0_platform_data,
+       },
+       .resource       = veu0_resources,
+       .num_resources  = ARRAY_SIZE(veu0_resources),
+};
+
+/* VEU1 */
+static struct uio_info veu1_platform_data = {
+       .name = "VEU3F1",
+       .version = "0",
+       .irq = 54,
+};
+
+static struct resource veu1_resources[] = {
+       [0] = {
+               .name   = "VEU3F1",
+               .start  = 0xfe924000,
+               .end    = 0xfe9240cb - 1,
+               .flags  = IORESOURCE_MEM,
+       },
+       [1] = {
+               /* place holder for contiguous memory */
+       },
+};
+
+static struct platform_device veu1_device = {
+       .name           = "uio_pdrv_genirq",
+       .id             = 2,
+       .dev = {
+               .platform_data  = &veu1_platform_data,
+       },
+       .resource       = veu1_resources,
+       .num_resources  = ARRAY_SIZE(veu1_resources),
+};
+
 static struct platform_device *sh7724_devices[] __initdata = {
        &sci_device,
        &rtc_device,
        &iic0_device,
        &iic1_device,
        &vpu_device,
+       &veu0_device,
+       &veu1_device,
 };
 
 static int __init sh7724_devices_setup(void)
 {
        clk_always_enable("rtc0");   /* RTC */
        clk_always_enable("vpu0");   /* VPU */
+       clk_always_enable("veu1");   /* VEU3F1 */
+       clk_always_enable("veu0");   /* VEU3F0 */
 
        platform_resource_setup_memory(&vpu_device, "vpu", 2 << 20);
+       platform_resource_setup_memory(&veu0_device, "veu0", 2 << 20);
+       platform_resource_setup_memory(&veu1_device, "veu1", 2 << 20);
 
        return platform_add_devices(sh7724_devices,
                                    ARRAY_SIZE(sh7724_devices));