diff options
| author | Russell King <rmk@dyn-67.arm.linux.org.uk> | 2007-04-21 10:55:06 -0400 |
|---|---|---|
| committer | Russell King <rmk+kernel@arm.linux.org.uk> | 2007-05-03 09:16:55 -0400 |
| commit | a17dba8df9848c548912fbe9bf4b28c5a67c5413 (patch) | |
| tree | ab699b209ec5a6b952de52c0238e01d21dc478fb | |
| parent | 69f4f331a0f78470f0bc42ba8db8d6cdd9cae4a9 (diff) | |
[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>
| -rw-r--r-- | arch/arm/mach-rpc/riscpc.c | 35 | ||||
| -rw-r--r-- | drivers/ata/Kconfig | 2 |
2 files changed, 36 insertions, 1 deletions
diff --git a/arch/arm/mach-rpc/riscpc.c b/arch/arm/mach-rpc/riscpc.c index 208a2b5dba1b..570cf937e73b 100644 --- a/arch/arm/mach-rpc/riscpc.c +++ b/arch/arm/mach-rpc/riscpc.c | |||
| @@ -17,6 +17,7 @@ | |||
| 17 | #include <linux/sched.h> | 17 | #include <linux/sched.h> |
| 18 | #include <linux/device.h> | 18 | #include <linux/device.h> |
| 19 | #include <linux/serial_8250.h> | 19 | #include <linux/serial_8250.h> |
| 20 | #include <linux/pata_platform.h> | ||
| 20 | 21 | ||
| 21 | #include <asm/elf.h> | 22 | #include <asm/elf.h> |
| 22 | #include <asm/io.h> | 23 | #include <asm/io.h> |
| @@ -159,11 +160,45 @@ static struct platform_device serial_device = { | |||
| 159 | }, | 160 | }, |
| 160 | }; | 161 | }; |
| 161 | 162 | ||
| 163 | static struct pata_platform_info pata_platform_data = { | ||
| 164 | .ioport_shift = 2, | ||
| 165 | }; | ||
| 166 | |||
| 167 | static struct resource pata_resources[] = { | ||
| 168 | [0] = { | ||
| 169 | .start = 0x030107c0, | ||
| 170 | .end = 0x030107df, | ||
| 171 | .flags = IORESOURCE_MEM, | ||
| 172 | }, | ||
| 173 | [1] = { | ||
| 174 | .start = 0x03010fd8, | ||
| 175 | .end = 0x03010fdb, | ||
| 176 | .flags = IORESOURCE_MEM, | ||
| 177 | }, | ||
| 178 | [2] = { | ||
| 179 | .start = IRQ_HARDDISK, | ||
| 180 | .end = IRQ_HARDDISK, | ||
| 181 | .flags = IORESOURCE_IRQ, | ||
| 182 | }, | ||
| 183 | }; | ||
| 184 | |||
| 185 | static struct platform_device pata_device = { | ||
| 186 | .name = "pata_platform", | ||
| 187 | .id = -1, | ||
| 188 | .num_resources = ARRAY_SIZE(pata_resources), | ||
| 189 | .resource = pata_resources, | ||
| 190 | .dev = { | ||
| 191 | .platform_data = &pata_platform_data, | ||
| 192 | .coherent_dma_mask = ~0, /* grumble */ | ||
| 193 | }, | ||
| 194 | }; | ||
| 195 | |||
| 162 | static struct platform_device *devs[] __initdata = { | 196 | static struct platform_device *devs[] __initdata = { |
| 163 | &iomd_device, | 197 | &iomd_device, |
| 164 | &kbd_device, | 198 | &kbd_device, |
| 165 | &serial_device, | 199 | &serial_device, |
| 166 | &acornfb_device, | 200 | &acornfb_device, |
| 201 | &pata_device, | ||
| 167 | }; | 202 | }; |
| 168 | 203 | ||
| 169 | static int __init rpc_init(void) | 204 | static int __init rpc_init(void) |
diff --git a/drivers/ata/Kconfig b/drivers/ata/Kconfig index 7bdbe5a914d0..e0820e8dd1c7 100644 --- a/drivers/ata/Kconfig +++ b/drivers/ata/Kconfig | |||
| @@ -545,7 +545,7 @@ config PATA_WINBOND_VLB | |||
| 545 | 545 | ||
| 546 | config PATA_PLATFORM | 546 | config PATA_PLATFORM |
| 547 | tristate "Generic platform device PATA support" | 547 | tristate "Generic platform device PATA support" |
| 548 | depends on EMBEDDED | 548 | depends on EMBEDDED || ARCH_RPC |
| 549 | help | 549 | help |
| 550 | This option enables support for generic directly connected ATA | 550 | This option enables support for generic directly connected ATA |
| 551 | devices commonly found on embedded systems. | 551 | devices commonly found on embedded systems. |
