RTEMS 6.1-rc1
dmaRegs.h
1/* Blackfin DMA Registers
2 *
3 * Copyright (c) 2008 Kallisti Labs, Los Gatos, CA, USA
4 * written by Allan Hessenflow <allanh@kallisti.com>
5 *
6 * The license and distribution terms for this file may be
7 * found in the file LICENSE in this distribution or at
8 * http://www.rtems.org/license/LICENSE.
9 */
10
11#ifndef _dmaRegs_h_
12#define _dmaRegs_h_
13
14
15/* register addresses */
16
17#define DMA_NEXT_DESC_PTR_OFFSET 0x0000
18#define DMA_START_ADDR_OFFSET 0x0004
19#define DMA_CONFIG_OFFSET 0x0008
20#define DMA_X_COUNT_OFFSET 0x0010
21#define DMA_X_MODIFY_OFFSET 0x0014
22#define DMA_Y_COUNT_OFFSET 0x0018
23#define DMA_Y_MODIFY_OFFSET 0x001c
24#define DMA_CURR_DESC_PTR_OFFSET 0x0020
25#define DMA_CURR_ADDR_OFFSET 0x0024
26#define DMA_IRQ_STATUS_OFFSET 0x0028
27#define DMA_PERIPHERAL_MAP_OFFSET 0x002c
28#define DMA_CURR_X_COUNT_OFFSET 0x0030
29#define DMA_CURR_Y_COUNT_OFFSET 0x0038
30
31#define HMDMA_CONTROL_OFFSET 0x0000
32#define HMDMA_ECINIT_OFFSET 0x0004
33#define HMDMA_BCINIT_OFFSET 0x0008
34#define HMDMA_ECURGENT_OFFSET 0x000c
35#define HMDMA_ECOVERFLOW_OFFSET 0x0010
36#define HMDMA_ECOUNT_OFFSET 0x0014
37#define HMDMA_BCOUNT_OFFSET 0x0018
38
39
40/* register fields */
41
42#define DMA_CONFIG_FLOW_MASK 0x7000
43#define DMA_CONFIG_FLOW_STOP 0x0000
44#define DMA_CONFIG_FLOW_AUTOBUFFER 0x1000
45#define DMA_CONFIG_FLOW_DESC_ARRAY 0x4000
46#define DMA_CONFIG_FLOW_DESC_SMALL 0x6000
47#define DMA_CONFIG_FLOW_DESC_LARGE 0x7000
48#define DMA_CONFIG_NDSIZE_MASK 0x0f00
49#define DMA_CONFIG_NDSIZE_SHIFT 8
50#define DMA_CONFIG_DI_EN 0x0080
51#define DMA_CONFIG_DI_SEL 0x0040
52#define DMA_CONFIG_SYNC 0x0020
53#define DMA_CONFIG_DMA2D 0x0010
54#define DMA_CONFIG_WDSIZE_MASK 0x000c
55#define DMA_CONFIG_WDSIZE_8 0x0000
56#define DMA_CONFIG_WDSIZE_16 0x0004
57#define DMA_CONFIG_WDSIZE_32 0x0008
58#define DMA_CONFIG_WNR 0x0002
59#define DMA_CONFIG_DMAEN 0x0001
60
61#define DMA_IRQ_STATUS_DMA_RUN 0x0008
62#define DMA_IRQ_STATUS_DFETCH 0x0004
63#define DMA_IRQ_STATUS_DMA_ERR 0x0002
64#define DMA_IRQ_STATUS_DMA_DONE 0x0001
65
66#define DMA_PERIPHERAL_MAP_PMAP_MASK 0xf000
67#define DMA_PERIPHERAL_MAP_PMAP_PPI 0x0000
68#define DMA_PERIPHERAL_MAP_PMAP_ETHRX 0x1000
69#define DMA_PERIPHERAL_MAP_PMAP_ETHTX 0x2000
70#define DMA_PERIPHERAL_MAP_PMAP_SPORT0RX 0x3000
71#define DMA_PERIPHERAL_MAP_PMAP_SPORT0TX 0x4000
72#define DMA_PERIPHERAL_MAP_PMAP_SPORT1RX 0x5000
73#define DMA_PERIPHERAL_MAP_PMAP_SPORT1TX 0x6000
74#define DMA_PERIPHERAL_MAP_PMAP_SPI 0x7000
75#define DMA_PERIPHERAL_MAP_PMAP_UART0RX 0x8000
76#define DMA_PERIPHERAL_MAP_PMAP_UART0TX 0x9000
77#define DMA_PERIPHERAL_MAP_PMAP_UART1RX 0xa000
78#define DMA_PERIPHERAL_MAP_PMAP_UART1TX 0xb000
79#define DMA_PERIPHERAL_MAP_CTYPE 0x0040
80
81#define HMDMA_CONTROL_BDI 0x8000
82#define HMDMA_CONTROL_OI 0x4000
83#define HMDMA_CONTROL_PS 0x2000
84#define HMDMA_CONTROL_RBC 0x1000
85#define HMDMA_CONTROL_DRQ_MASK 0x0300
86#define HMDMA_CONTROL_DRQ_NONE 0x0000
87#define HMDMA_CONTROL_DRQ_SINGLE 0x0100
88#define HMDMA_CONTROL_DRQ_MULTIPLE 0x0200
89#define HMDMA_CONTROL_DRQ_URGENT_MULTIPLE 0x0300
90#define HMDMA_CONTROL_MBDI 0x0040
91#define HMDMA_CONTROL_BDIE 0x0020
92#define HMDMA_CONTROL_OIE 0x0010
93#define HMDMA_CONTROL_UTE 0x0008
94#define HMDMA_CONTROL_REP 0x0002
95#define HMDMA_CONTROL_HMDMAEN 0x0001
96
97#endif /* _dmaRegs_h_ */