1/* Blackfin Direct Memory Access (DMA) Channel model.
2
3   Copyright (C) 2010-2020 Free Software Foundation, Inc.
4   Contributed by Analog Devices, Inc.
5
6   This file is part of simulators.
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 as published by
10   the Free Software Foundation; either version 3 of the License, or
11   (at your option) any later version.
12
13   This program is distributed in the hope that it will be useful,
14   but WITHOUT ANY WARRANTY; without even the implied warranty of
15   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
16   GNU General Public License for more details.
17
18   You should have received a copy of the GNU General Public License
19   along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
20
21#ifndef DV_BFIN_DMA_H
22#define DV_BFIN_DMA_H
23
24/* DMA_CONFIG Masks */
25#define DMAEN		0x0001	/* DMA Channel Enable */
26#define WNR		0x0002	/* Channel Direction (W/R*) */
27#define WDSIZE_8	0x0000	/* Transfer Word Size = 8 */
28#define WDSIZE_16	0x0004	/* Transfer Word Size = 16 */
29#define WDSIZE_32	0x0008	/* Transfer Word Size = 32 */
30#define WDSIZE		0x000c	/* Transfer Word Size */
31#define DMA2D		0x0010	/* DMA Mode (2D/1D*) */
32#define RESTART		0x0020	/* DMA Buffer Clear */
33#define DI_SEL		0x0040	/* Data Interrupt Timing Select */
34#define DI_EN		0x0080	/* Data Interrupt Enable */
35#define NDSIZE_0	0x0000	/* Next Descriptor Size = 0 (Stop/Autobuffer) */
36#define NDSIZE_1	0x0100	/* Next Descriptor Size = 1 */
37#define NDSIZE_2	0x0200	/* Next Descriptor Size = 2 */
38#define NDSIZE_3	0x0300	/* Next Descriptor Size = 3 */
39#define NDSIZE_4	0x0400	/* Next Descriptor Size = 4 */
40#define NDSIZE_5	0x0500	/* Next Descriptor Size = 5 */
41#define NDSIZE_6	0x0600	/* Next Descriptor Size = 6 */
42#define NDSIZE_7	0x0700	/* Next Descriptor Size = 7 */
43#define NDSIZE_8	0x0800	/* Next Descriptor Size = 8 */
44#define NDSIZE_9	0x0900	/* Next Descriptor Size = 9 */
45#define NDSIZE		0x0f00	/* Next Descriptor Size */
46#define NDSIZE_SHIFT	8
47#define DMAFLOW		0x7000	/* Flow Control */
48#define DMAFLOW_STOP	0x0000	/* Stop Mode */
49#define DMAFLOW_AUTO	0x1000	/* Autobuffer Mode */
50#define DMAFLOW_ARRAY	0x4000	/* Descriptor Array Mode */
51#define DMAFLOW_SMALL	0x6000	/* Small Model Descriptor List Mode */
52#define DMAFLOW_LARGE	0x7000	/* Large Model Descriptor List Mode */
53
54/* DMA_IRQ_STATUS Masks */
55#define DMA_DONE	0x0001	/* DMA Completion Interrupt Status */
56#define DMA_ERR		0x0002	/* DMA Error Interrupt Status */
57#define DFETCH		0x0004	/* DMA Descriptor Fetch Indicator */
58#define DMA_RUN		0x0008	/* DMA Channel Running Indicator */
59
60/* DMA_PERIPHERAL_MAP Masks */
61#define CTYPE		(1 << 6)
62
63#endif
64