[ARM] ANUBIS: Move to using ata_platform driver (libata)
authorBen Dooks <ben-linux@fluff.org>
Thu, 3 Jul 2008 10:24:38 +0000 (11:24 +0100)
committerBen Dooks <ben-linux@fluff.org>
Thu, 3 Jul 2008 15:51:27 +0000 (16:51 +0100)
Change the (as yet unused) IDE bus on the Simtec Anubis board
to use pata_platform and thus libata to provide IDE support.

Signed-off-by: Ben Dooks <ben-linux@fluff.org>
arch/arm/mach-s3c2440/Kconfig
arch/arm/mach-s3c2440/mach-anubis.c

index f1915bd..dcaa4db 100644 (file)
@@ -29,6 +29,7 @@ config MACH_ANUBIS
        bool "Simtec Electronics ANUBIS"
        select CPU_S3C2440
        select PM_SIMTEC if PM
+       select HAVE_PATA_PLATFORM
        help
          Say Y here if you are using the Simtec Electronics ANUBIS
          development system
index 4725891..26536a2 100644 (file)
@@ -17,6 +17,7 @@
 #include <linux/init.h>
 #include <linux/serial_core.h>
 #include <linux/platform_device.h>
+#include <linux/ata_platform.h>
 
 #include <linux/sm501.h>
 #include <linux/sm501-regs.h>
@@ -241,14 +242,18 @@ static struct s3c2410_platform_nand anubis_nand_info = {
 
 /* IDE channels */
 
+struct pata_platform_info anubis_ide_platdata = {
+       .ioport_shift   = 5,
+};
+
 static struct resource anubis_ide0_resource[] = {
        {
                .start  = S3C2410_CS3,
                .end    = S3C2410_CS3 + (8*32) - 1,
                .flags  = IORESOURCE_MEM,
        }, {
-               .start  = S3C2410_CS3 + (1<<26),
-               .end    = S3C2410_CS3 + (1<<26) + (8*32) - 1,
+               .start  = S3C2410_CS3 + (1<<26) + (6*32),
+               .end    = S3C2410_CS3 + (1<<26) + (7*32) - 1,
                .flags  = IORESOURCE_MEM,
        }, {
                .start  = IRQ_IDE0,
@@ -258,10 +263,14 @@ static struct resource anubis_ide0_resource[] = {
 };
 
 static struct platform_device anubis_device_ide0 = {
-       .name           = "simtec-ide",
+       .name           = "pata_platform",
        .id             = 0,
        .num_resources  = ARRAY_SIZE(anubis_ide0_resource),
        .resource       = anubis_ide0_resource,
+       .dev    = {
+               .platform_data = &anubis_ide_platdata,
+               .coherent_dma_mask = ~0,
+       },
 };
 
 static struct resource anubis_ide1_resource[] = {
@@ -270,8 +279,8 @@ static struct resource anubis_ide1_resource[] = {
                .end    = S3C2410_CS4 + (8*32) - 1,
                .flags  = IORESOURCE_MEM,
        }, {
-               .start  = S3C2410_CS4 + (1<<26),
-               .end    = S3C2410_CS4 + (1<<26) + (8*32) - 1,
+               .start  = S3C2410_CS4 + (1<<26) + (6*32),
+               .end    = S3C2410_CS4 + (1<<26) + (7*32) - 1,
                .flags  = IORESOURCE_MEM,
        }, {
                .start  = IRQ_IDE0,
@@ -280,12 +289,15 @@ static struct resource anubis_ide1_resource[] = {
        },
 };
 
-
 static struct platform_device anubis_device_ide1 = {
-       .name           = "simtec-ide",
+       .name           = "pata_platform",
        .id             = 1,
        .num_resources  = ARRAY_SIZE(anubis_ide1_resource),
        .resource       = anubis_ide1_resource,
+       .dev    = {
+               .platform_data = &anubis_ide_platdata,
+               .coherent_dma_mask = ~0,
+       },
 };
 
 /* Asix AX88796 10/100 ethernet controller */