dma.h 1.29 KB
Newer Older
Linus Torvalds's avatar
Linus Torvalds committed
1
2
3
#ifndef __ASM_CPU_SH4_DMA_H
#define __ASM_CPU_SH4_DMA_H

4
5
#define DMAOR_INIT	( 0x8000 | DMAOR_DME )

Manuel Lauss's avatar
Manuel Lauss committed
6
7
8
9
10
11
12
13
14
15
16
/* SH7751/7760/7780 DMA IRQ sources */
#define DMTE0_IRQ	34
#define DMTE1_IRQ	35
#define DMTE2_IRQ	36
#define DMTE3_IRQ	37
#define DMTE4_IRQ	44
#define DMTE5_IRQ	45
#define DMTE6_IRQ	46
#define DMTE7_IRQ	47
#define DMAE_IRQ	38

Paul Mundt's avatar
Paul Mundt committed
17
18
#ifdef CONFIG_CPU_SH4A
#define SH_DMAC_BASE	0xfc808020
19
20
21
22
23

#define CHCR_TS_MASK	0x18
#define CHCR_TS_SHIFT	3

#include <asm/cpu/dma-sh7780.h>
Paul Mundt's avatar
Paul Mundt committed
24
#else
Linus Torvalds's avatar
Linus Torvalds committed
25
26
#define SH_DMAC_BASE	0xffa00000

Paul Mundt's avatar
Paul Mundt committed
27
28
29
30
31
32
/* Definitions for the SuperH DMAC */
#define TM_BURST	0x0000080
#define TS_8		0x00000010
#define TS_16		0x00000020
#define TS_32		0x00000030
#define TS_64		0x00000000
Linus Torvalds's avatar
Linus Torvalds committed
33

Paul Mundt's avatar
Paul Mundt committed
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
#define CHCR_TS_MASK	0x30
#define CHCR_TS_SHIFT	4

#define DMAOR_COD	0x00000008

/*
 * The SuperH DMAC supports a number of transmit sizes, we list them here,
 * with their respective values as they appear in the CHCR registers.
 *
 * Defaults to a 64-bit transfer size.
 */
enum {
	XMIT_SZ_64BIT,
	XMIT_SZ_8BIT,
	XMIT_SZ_16BIT,
	XMIT_SZ_32BIT,
	XMIT_SZ_256BIT,
};

/*
 * The DMA count is defined as the number of bytes to transfer.
 */
David Rientjes's avatar
David Rientjes committed
56
static unsigned int ts_shift[] __maybe_unused = {
Paul Mundt's avatar
Paul Mundt committed
57
58
59
60
61
62
	[XMIT_SZ_64BIT]		= 3,
	[XMIT_SZ_8BIT]		= 0,
	[XMIT_SZ_16BIT]		= 1,
	[XMIT_SZ_32BIT]		= 2,
	[XMIT_SZ_256BIT]	= 5,
};
63
#endif
Paul Mundt's avatar
Paul Mundt committed
64
65

#endif /* __ASM_CPU_SH4_DMA_H */