unicore32 core architecture: mm related: consistent device DMA handling
[deliverable/linux.git] / arch / unicore32 / include / mach / dma.h
1 /*
2 * linux/arch/unicore32/include/mach/dma.h
3 *
4 * Code specific to PKUnity SoC and UniCore ISA
5 *
6 * Copyright (C) 2001-2010 GUAN Xue-tao
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 __MACH_PUV3_DMA_H__
13 #define __MACH_PUV3_DMA_H__
14
15 /*
16 * The PKUnity has six internal DMA channels.
17 */
18 #define MAX_DMA_CHANNELS 6
19
20 typedef enum {
21 DMA_PRIO_HIGH = 0,
22 DMA_PRIO_MEDIUM = 1,
23 DMA_PRIO_LOW = 2
24 } puv3_dma_prio;
25
26 /*
27 * DMA registration
28 */
29
30 extern int puv3_request_dma(char *name,
31 puv3_dma_prio prio,
32 void (*irq_handler)(int, void *),
33 void (*err_handler)(int, void *),
34 void *data);
35
36 extern void puv3_free_dma(int dma_ch);
37
38 #define puv3_stop_dma(ch) (DMAC_CONFIG(ch) &= ~DMAC_CONFIG_EN)
39 #define puv3_resume_dma(ch) (DMAC_CONFIG(ch) |= DMAC_CONFIG_EN)
40
41 #endif /* __MACH_PUV3_DMA_H__ */
This page took 0.060147 seconds and 5 git commands to generate.