RTEMS  5.1
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_ */