• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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