aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/ata
diff options
context:
space:
mode:
authorPhil Sutter <n0-1@freewrt.org>2008-11-28 14:48:26 -0500
committerJeff Garzik <jgarzik@redhat.com>2008-12-01 13:49:08 -0500
commit9f14786e27908a176f0568cf2132558efef71b31 (patch)
tree6fa18433d61d3fa2629dd1a1e645602081e225c7 /drivers/ata
parent1eedb4a90c958d8d59e0e4f19c297b445df21cf9 (diff)
[libata] pata_rb532_cf: fix and rename register definitions
The original standalone driver uses a custom address for the error register. Use it in pata_rb532_cf, too. Rename two register definitions: - The address offset 0x0800 in fact is the ATA base, not ATA command address. - The offset 0x0C00 is not a regular ATA data address, but a buffered one allowing 4-byte IO. Signed-off-by: Phil Sutter <n0-1@freewrt.org> Signed-off-by: Jeff Garzik <jgarzik@redhat.com>
Diffstat (limited to 'drivers/ata')
-rw-r--r--drivers/ata/pata_rb532_cf.c11
1 files changed, 7 insertions, 4 deletions
diff --git a/drivers/ata/pata_rb532_cf.c b/drivers/ata/pata_rb532_cf.c
index f8b3ffc8ae9e..392116c1c16a 100644
--- a/drivers/ata/pata_rb532_cf.c
+++ b/drivers/ata/pata_rb532_cf.c
@@ -39,9 +39,11 @@
39#define RB500_CF_MAXPORTS 1 39#define RB500_CF_MAXPORTS 1
40#define RB500_CF_IO_DELAY 400 40#define RB500_CF_IO_DELAY 400
41 41
42#define RB500_CF_REG_CMD 0x0800 42#define RB500_CF_REG_BASE 0x0800
43#define RB500_CF_REG_ERR 0x080D
43#define RB500_CF_REG_CTRL 0x080E 44#define RB500_CF_REG_CTRL 0x080E
44#define RB500_CF_REG_DATA 0x0C00 45/* 32bit buffered data register offset */
46#define RB500_CF_REG_DBUF32 0x0C00
45 47
46struct rb532_cf_info { 48struct rb532_cf_info {
47 void __iomem *iobase; 49 void __iomem *iobase;
@@ -146,13 +148,14 @@ static void rb532_pata_setup_ports(struct ata_host *ah)
146 ap->pio_mask = 0x1f; /* PIO4 */ 148 ap->pio_mask = 0x1f; /* PIO4 */
147 ap->flags = ATA_FLAG_NO_LEGACY | ATA_FLAG_MMIO; 149 ap->flags = ATA_FLAG_NO_LEGACY | ATA_FLAG_MMIO;
148 150
149 ap->ioaddr.cmd_addr = info->iobase + RB500_CF_REG_CMD; 151 ap->ioaddr.cmd_addr = info->iobase + RB500_CF_REG_BASE;
150 ap->ioaddr.ctl_addr = info->iobase + RB500_CF_REG_CTRL; 152 ap->ioaddr.ctl_addr = info->iobase + RB500_CF_REG_CTRL;
151 ap->ioaddr.altstatus_addr = info->iobase + RB500_CF_REG_CTRL; 153 ap->ioaddr.altstatus_addr = info->iobase + RB500_CF_REG_CTRL;
152 154
153 ata_sff_std_ports(&ap->ioaddr); 155 ata_sff_std_ports(&ap->ioaddr);
154 156
155 ap->ioaddr.data_addr = info->iobase + RB500_CF_REG_DATA; 157 ap->ioaddr.data_addr = info->iobase + RB500_CF_REG_DBUF32;
158 ap->ioaddr.error_addr = info->iobase + RB500_CF_REG_ERR;
156} 159}
157 160
158static __devinit int rb532_pata_driver_probe(struct platform_device *pdev) 161static __devinit int rb532_pata_driver_probe(struct platform_device *pdev)