summaryrefslogtreecommitdiffstats
path: root/sys/arm/at91/at91.c
diff options
context:
space:
mode:
authorstas <stas@FreeBSD.org>2009-04-22 23:54:41 +0000
committerstas <stas@FreeBSD.org>2009-04-22 23:54:41 +0000
commit7daf5e0713c3bb6c39c2db80272e07f3ed3607cf (patch)
tree741112db39dd3ca5b644c63fadadb61c60f65fb7 /sys/arm/at91/at91.c
parent5ff418d07144cf4e3e408792042d9be38a391296 (diff)
downloadFreeBSD-src-7daf5e0713c3bb6c39c2db80272e07f3ed3607cf.zip
FreeBSD-src-7daf5e0713c3bb6c39c2db80272e07f3ed3607cf.tar.gz
- Add the driver for AT91RM9200 CompactFlash controller. The driver
operates in the common memory mode and use polling mode to control the status of operations as I don't have any board with interrupt line routed yet. I'll add the GPIO interrupt driven mode as soon as I get one.
Diffstat (limited to 'sys/arm/at91/at91.c')
-rw-r--r--sys/arm/at91/at91.c8
1 files changed, 8 insertions, 0 deletions
diff --git a/sys/arm/at91/at91.c b/sys/arm/at91/at91.c
index c983e53..17e466e 100644
--- a/sys/arm/at91/at91.c
+++ b/sys/arm/at91/at91.c
@@ -418,6 +418,11 @@ struct cpu_devs at91rm9200_devs[] =
AT91RM92_OHCI_BASE, AT91RM92_OHCI_SIZE,
AT91RM92_IRQ_UHP
},
+ {
+ "at91_cfata", 0,
+ AT91RM92_CF_BASE, AT91RM92_CF_SIZE,
+ -1
+ },
{ 0, 0, 0, 0, 0 }
};
@@ -507,6 +512,9 @@ at91_attach(device_t dev)
if (rman_manage_region(&sc->sc_mem_rman, AT91RM92_OHCI_BASE,
AT91RM92_OHCI_BASE + AT91RM92_OHCI_SIZE - 1) != 0)
panic("at91_attach: failed to set up ohci memory");
+ if (rman_manage_region(&sc->sc_mem_rman, AT91RM92_CF_BASE,
+ AT91RM92_CF_BASE + AT91RM92_CF_SIZE - 1) != 0)
+ panic("at91_attach: failed to set up CompactFlash ATA memory");
for (i = 0; i < 32; i++) {
bus_space_write_4(sc->sc_st, sc->sc_sys_sh, IC_SVR +
OpenPOWER on IntegriCloud