diff options
author | stas <stas@FreeBSD.org> | 2009-04-22 23:54:41 +0000 |
---|---|---|
committer | stas <stas@FreeBSD.org> | 2009-04-22 23:54:41 +0000 |
commit | 7daf5e0713c3bb6c39c2db80272e07f3ed3607cf (patch) | |
tree | 741112db39dd3ca5b644c63fadadb61c60f65fb7 /sys/arm/at91/at91.c | |
parent | 5ff418d07144cf4e3e408792042d9be38a391296 (diff) | |
download | FreeBSD-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.c | 8 |
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 + |