1 /* 2 * arch/arm/mach-pxa/include/mach/dma.h 3 * 4 * Author: Nicolas Pitre 5 * Created: Jun 15, 2001 6 * Copyright: MontaVista Software, Inc. 7 * 8 * This program is free software; you can redistribute it and/or modify 9 * it under the terms of the GNU General Public License version 2 as 10 * published by the Free Software Foundation. 11 */ 12 #ifndef __ASM_ARCH_DMA_H 13 #define __ASM_ARCH_DMA_H 14 15 /* 16 * Descriptor structure for PXA's DMA engine 17 * Note: this structure must always be aligned to a 16-byte boundary. 18 */ 19 20 typedef struct pxa_dma_desc { 21 volatile u32 ddadr; /* Points to the next descriptor + flags */ 22 volatile u32 dsadr; /* DSADR value for the current transfer */ 23 volatile u32 dtadr; /* DTADR value for the current transfer */ 24 volatile u32 dcmd; /* DCMD value for the current transfer */ 25 } pxa_dma_desc; 26 27 typedef enum { 28 DMA_PRIO_HIGH = 0, 29 DMA_PRIO_MEDIUM = 1, 30 DMA_PRIO_LOW = 2 31 } pxa_dma_prio; 32 33 /* 34 * DMA registration 35 */ 36 37 int __init pxa_init_dma(int num_ch); 38 39 int pxa_request_dma (char *name, 40 pxa_dma_prio prio, 41 void (*irq_handler)(int, void *), 42 void *data); 43 44 void pxa_free_dma (int dma_ch); 45 46 #endif /* _ASM_ARCH_DMA_H */ 47