Эх сурвалжийг харах

[ARM] Add platform support for PATA on RiscPC

Add pata_platform device for RiscPC, thereby converting the primary
IDE channel on the machine to PATA.

Acked-by: Jeff Garzik <jeff@garzik.org>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
Russell King 18 жил өмнө
parent
commit
a17dba8df9

+ 35 - 0
arch/arm/mach-rpc/riscpc.c

@@ -17,6 +17,7 @@
 #include <linux/sched.h>
 #include <linux/sched.h>
 #include <linux/device.h>
 #include <linux/device.h>
 #include <linux/serial_8250.h>
 #include <linux/serial_8250.h>
+#include <linux/pata_platform.h>
 
 
 #include <asm/elf.h>
 #include <asm/elf.h>
 #include <asm/io.h>
 #include <asm/io.h>
@@ -159,11 +160,45 @@ static struct platform_device serial_device = {
 	},
 	},
 };
 };
 
 
+static struct pata_platform_info pata_platform_data = {
+	.ioport_shift		= 2,
+};
+
+static struct resource pata_resources[] = {
+	[0] = {
+		.start		= 0x030107c0,
+		.end		= 0x030107df,
+		.flags		= IORESOURCE_MEM,
+	},
+	[1] = {
+		.start		= 0x03010fd8,
+		.end		= 0x03010fdb,
+		.flags		= IORESOURCE_MEM,
+	},
+	[2] = {
+		.start		= IRQ_HARDDISK,
+		.end		= IRQ_HARDDISK,
+		.flags		= IORESOURCE_IRQ,
+	},
+};
+
+static struct platform_device pata_device = {
+	.name			= "pata_platform",
+	.id			= -1,
+	.num_resources		= ARRAY_SIZE(pata_resources),
+	.resource		= pata_resources,
+	.dev			= {
+		.platform_data	= &pata_platform_data,
+		.coherent_dma_mask = ~0,	/* grumble */
+	},
+};
+
 static struct platform_device *devs[] __initdata = {
 static struct platform_device *devs[] __initdata = {
 	&iomd_device,
 	&iomd_device,
 	&kbd_device,
 	&kbd_device,
 	&serial_device,
 	&serial_device,
 	&acornfb_device,
 	&acornfb_device,
+	&pata_device,
 };
 };
 
 
 static int __init rpc_init(void)
 static int __init rpc_init(void)

+ 1 - 1
drivers/ata/Kconfig

@@ -545,7 +545,7 @@ config PATA_WINBOND_VLB
 
 
 config PATA_PLATFORM
 config PATA_PLATFORM
 	tristate "Generic platform device PATA support"
 	tristate "Generic platform device PATA support"
-	depends on EMBEDDED
+	depends on EMBEDDED || ARCH_RPC
 	help
 	help
 	  This option enables support for generic directly connected ATA
 	  This option enables support for generic directly connected ATA
 	  devices commonly found on embedded systems.
 	  devices commonly found on embedded systems.