diff options
| author | Keith Packard <keithp@keithp.com> | 2012-03-28 21:54:32 -0700 |
|---|---|---|
| committer | Keith Packard <keithp@keithp.com> | 2012-03-31 12:44:25 -0700 |
| commit | 1f2b75518169c4f2da9762de46bf1d9a71a04d17 (patch) | |
| tree | 7b632af5c878b30dd27a0c297000d0055ca9a16c /src/cc1111 | |
| parent | 47a9925f16f6a13b173c49d3873d91fc7cf6d46e (diff) | |
altos: Move cc1111 DMA engine interface to cc1111/ao_arch.h from ao.h
It's hardware specific
Signed-off-by: Keith Packard <keithp@keithp.com>
Diffstat (limited to 'src/cc1111')
| -rw-r--r-- | src/cc1111/ao_arch.h | 36 |
1 files changed, 36 insertions, 0 deletions
diff --git a/src/cc1111/ao_arch.h b/src/cc1111/ao_arch.h index 360b35c8..847ac1a6 100644 --- a/src/cc1111/ao_arch.h +++ b/src/cc1111/ao_arch.h @@ -258,4 +258,40 @@ struct ao_serial_speed { extern const __code struct ao_serial_speed ao_serial_speeds[]; +/* + * ao_dma.c + */ + +/* Allocate a DMA channel. the 'done' parameter will be set when the + * dma is finished and will be used to wakeup any waiters + */ + +uint8_t +ao_dma_alloc(__xdata uint8_t * done); + +/* Setup a DMA channel */ +void +ao_dma_set_transfer(uint8_t id, + void __xdata *srcaddr, + void __xdata *dstaddr, + uint16_t count, + uint8_t cfg0, + uint8_t cfg1); + +/* Start a DMA channel */ +void +ao_dma_start(uint8_t id); + +/* Manually trigger a DMA channel */ +void +ao_dma_trigger(uint8_t id); + +/* Abort a running DMA transfer */ +void +ao_dma_abort(uint8_t id); + +/* DMA interrupt routine */ +void +ao_dma_isr(void) ao_arch_interrupt(8); + #endif /* _AO_ARCH_H_ */ |
