~ubuntu-branches/ubuntu/precise/linux-lowlatency/precise

« back to all changes in this revision

Viewing changes to arch/blackfin/include/asm/bfin_dma.h

  • Committer: Package Import Robot
  • Author(s): Alessio Igor Bogani
  • Date: 2011-10-26 11:13:05 UTC
  • Revision ID: package-import@ubuntu.com-20111026111305-tz023xykf0i6eosh
Tags: upstream-3.2.0
ImportĀ upstreamĀ versionĀ 3.2.0

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
/*
 
2
 * bfin_dma.h - Blackfin DMA defines/structures/etc...
 
3
 *
 
4
 * Copyright 2004-2010 Analog Devices Inc.
 
5
 *
 
6
 * Licensed under the GPL-2 or later.
 
7
 */
 
8
 
 
9
#ifndef __ASM_BFIN_DMA_H__
 
10
#define __ASM_BFIN_DMA_H__
 
11
 
 
12
#include <linux/types.h>
 
13
 
 
14
/* DMA_CONFIG Masks */
 
15
#define DMAEN                   0x0001  /* DMA Channel Enable */
 
16
#define WNR                             0x0002  /* Channel Direction (W/R*) */
 
17
#define WDSIZE_8                0x0000  /* Transfer Word Size = 8 */
 
18
#define WDSIZE_16               0x0004  /* Transfer Word Size = 16 */
 
19
#define WDSIZE_32               0x0008  /* Transfer Word Size = 32 */
 
20
#define DMA2D                   0x0010  /* DMA Mode (2D/1D*) */
 
21
#define RESTART                 0x0020  /* DMA Buffer Clear */
 
22
#define DI_SEL                  0x0040  /* Data Interrupt Timing Select */
 
23
#define DI_EN                   0x0080  /* Data Interrupt Enable */
 
24
#define NDSIZE_0                0x0000  /* Next Descriptor Size = 0 (Stop/Autobuffer) */
 
25
#define NDSIZE_1                0x0100  /* Next Descriptor Size = 1 */
 
26
#define NDSIZE_2                0x0200  /* Next Descriptor Size = 2 */
 
27
#define NDSIZE_3                0x0300  /* Next Descriptor Size = 3 */
 
28
#define NDSIZE_4                0x0400  /* Next Descriptor Size = 4 */
 
29
#define NDSIZE_5                0x0500  /* Next Descriptor Size = 5 */
 
30
#define NDSIZE_6                0x0600  /* Next Descriptor Size = 6 */
 
31
#define NDSIZE_7                0x0700  /* Next Descriptor Size = 7 */
 
32
#define NDSIZE_8                0x0800  /* Next Descriptor Size = 8 */
 
33
#define NDSIZE_9                0x0900  /* Next Descriptor Size = 9 */
 
34
#define NDSIZE                  0x0f00  /* Next Descriptor Size */
 
35
#define DMAFLOW                 0x7000  /* Flow Control */
 
36
#define DMAFLOW_STOP    0x0000  /* Stop Mode */
 
37
#define DMAFLOW_AUTO    0x1000  /* Autobuffer Mode */
 
38
#define DMAFLOW_ARRAY   0x4000  /* Descriptor Array Mode */
 
39
#define DMAFLOW_SMALL   0x6000  /* Small Model Descriptor List Mode */
 
40
#define DMAFLOW_LARGE   0x7000  /* Large Model Descriptor List Mode */
 
41
 
 
42
/* DMA_IRQ_STATUS Masks */
 
43
#define DMA_DONE                0x0001  /* DMA Completion Interrupt Status */
 
44
#define DMA_ERR                 0x0002  /* DMA Error Interrupt Status */
 
45
#define DFETCH                  0x0004  /* DMA Descriptor Fetch Indicator */
 
46
#define DMA_RUN                 0x0008  /* DMA Channel Running Indicator */
 
47
 
 
48
/*
 
49
 * All Blackfin system MMRs are padded to 32bits even if the register
 
50
 * itself is only 16bits.  So use a helper macro to streamline this.
 
51
 */
 
52
#define __BFP(m) u16 m; u16 __pad_##m
 
53
 
 
54
/*
 
55
 * bfin dma registers layout
 
56
 */
 
57
struct bfin_dma_regs {
 
58
        u32 next_desc_ptr;
 
59
        u32 start_addr;
 
60
        __BFP(config);
 
61
        u32 __pad0;
 
62
        __BFP(x_count);
 
63
        __BFP(x_modify);
 
64
        __BFP(y_count);
 
65
        __BFP(y_modify);
 
66
        u32 curr_desc_ptr;
 
67
        u32 curr_addr;
 
68
        __BFP(irq_status);
 
69
        __BFP(peripheral_map);
 
70
        __BFP(curr_x_count);
 
71
        u32 __pad1;
 
72
        __BFP(curr_y_count);
 
73
        u32 __pad2;
 
74
};
 
75
 
 
76
/*
 
77
 * bfin handshake mdma registers layout
 
78
 */
 
79
struct bfin_hmdma_regs {
 
80
        __BFP(control);
 
81
        __BFP(ecinit);
 
82
        __BFP(bcinit);
 
83
        __BFP(ecurgent);
 
84
        __BFP(ecoverflow);
 
85
        __BFP(ecount);
 
86
        __BFP(bcount);
 
87
};
 
88
 
 
89
#undef __BFP
 
90
 
 
91
#endif