Commit 6e5f1e11 authored by Stanislaw Gruszka's avatar Stanislaw Gruszka Committed by Bartlomiej Zolnierkiewicz

ide: add at91_ide driver

This is IDE host driver for AT91 (SAM9, CAP9, AT572D940HF) Static Memory
Controller with Compact Flash True IDE Mode logic.

Driver have to switch 8/16 bit bus width when accessing Task Tile or Data
Register. Moreover some extra things need to be done when setting PIO mode.
Only PIO mode is used, hardware have no DMA support. If interrupt line is
connected through GPIO extra quirk is needed to cope with fake interrupts.
Signed-off-by: default avatarStanislaw Gruszka <stf_xl@wp.pl>
Cc: Andrew Victor <avictor.za@gmail.com>
Acked-by: default avatarSergei Shtylyov <sshtylyov@ru.mvista.com>
Signed-off-by: default avatarBartlomiej Zolnierkiewicz <bzolnier@gmail.com>
parent 849d7130
...@@ -56,6 +56,9 @@ struct at91_cf_data { ...@@ -56,6 +56,9 @@ struct at91_cf_data {
u8 vcc_pin; /* power switching */ u8 vcc_pin; /* power switching */
u8 rst_pin; /* card reset */ u8 rst_pin; /* card reset */
u8 chipselect; /* EBI Chip Select number */ u8 chipselect; /* EBI Chip Select number */
u8 flags;
#define AT91_CF_TRUE_IDE 0x01
#define AT91_IDE_SWAP_A0_A2 0x02
}; };
extern void __init at91_add_device_cf(struct at91_cf_data *data); extern void __init at91_add_device_cf(struct at91_cf_data *data);
......
...@@ -721,6 +721,11 @@ config BLK_DEV_IDE_TX4939 ...@@ -721,6 +721,11 @@ config BLK_DEV_IDE_TX4939
depends on SOC_TX4939 depends on SOC_TX4939
select BLK_DEV_IDEDMA_SFF select BLK_DEV_IDEDMA_SFF
config BLK_DEV_IDE_AT91
tristate "Atmel AT91 (SAM9, CAP9, AT572D940HF) IDE support"
depends on ARM && ARCH_AT91 && !ARCH_AT91RM9200 && !ARCH_AT91X40
select IDE_TIMINGS
config IDE_ARM config IDE_ARM
tristate "ARM IDE support" tristate "ARM IDE support"
depends on ARM && (ARCH_RPC || ARCH_SHARK) depends on ARM && (ARCH_RPC || ARCH_SHARK)
......
...@@ -116,3 +116,4 @@ obj-$(CONFIG_BLK_DEV_IDE_AU1XXX) += au1xxx-ide.o ...@@ -116,3 +116,4 @@ obj-$(CONFIG_BLK_DEV_IDE_AU1XXX) += au1xxx-ide.o
obj-$(CONFIG_BLK_DEV_IDE_TX4938) += tx4938ide.o obj-$(CONFIG_BLK_DEV_IDE_TX4938) += tx4938ide.o
obj-$(CONFIG_BLK_DEV_IDE_TX4939) += tx4939ide.o obj-$(CONFIG_BLK_DEV_IDE_TX4939) += tx4939ide.o
obj-$(CONFIG_BLK_DEV_IDE_AT91) += at91_ide.o
This diff is collapsed.
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment