blob: 21ff1cf9fbddd09c1527dadb783b5ca21289960c [file] [log] [blame]
Mike Frysinger6f070e12010-05-05 00:56:30 -04001/*
2 * dma.h - Blackfin DMA defines/structures/etc...
3 *
4 * Copyright 2004-2008 Analog Devices Inc.
5 * Licensed under the GPL-2 or later.
6 */
7
8#ifndef _BLACKFIN_DMA_H_
9#define _BLACKFIN_DMA_H_
10
11#include <asm/mach-common/bits/dma.h>
12
13struct dmasg_large {
14 void *next_desc_addr;
15 unsigned long start_addr;
16 unsigned short cfg;
17 unsigned short x_count;
18 short x_modify;
19 unsigned short y_count;
20 short y_modify;
21} __attribute__((packed));
22
23struct dmasg {
24 unsigned long start_addr;
25 unsigned short cfg;
26 unsigned short x_count;
27 short x_modify;
28 unsigned short y_count;
29 short y_modify;
30} __attribute__((packed));
31
32struct dma_register {
33 void *next_desc_ptr; /* DMA Next Descriptor Pointer register */
34 unsigned long start_addr; /* DMA Start address register */
35
36 unsigned short cfg; /* DMA Configuration register */
37 unsigned short dummy1; /* DMA Configuration register */
38
39 unsigned long reserved;
40
41 unsigned short x_count; /* DMA x_count register */
42 unsigned short dummy2;
43
44 short x_modify; /* DMA x_modify register */
45 unsigned short dummy3;
46
47 unsigned short y_count; /* DMA y_count register */
48 unsigned short dummy4;
49
50 short y_modify; /* DMA y_modify register */
51 unsigned short dummy5;
52
53 void *curr_desc_ptr; /* DMA Current Descriptor Pointer
54 register */
55 unsigned long curr_addr_ptr; /* DMA Current Address Pointer
56 register */
57 unsigned short irq_status; /* DMA irq status register */
58 unsigned short dummy6;
59
60 unsigned short peripheral_map; /* DMA peripheral map register */
61 unsigned short dummy7;
62
63 unsigned short curr_x_count; /* DMA Current x-count register */
64 unsigned short dummy8;
65
66 unsigned long reserved2;
67
68 unsigned short curr_y_count; /* DMA Current y-count register */
69 unsigned short dummy9;
70
71 unsigned long reserved3;
72
73};
74
75#endif