1 #ifndef __ASM_SH_CPU_SH4_DMA_SH7780_H
2 #define __ASM_SH_CPU_SH4_DMA_SH7780_H
4 #if defined(CONFIG_CPU_SUBTYPE_SH7343) || \
5 defined(CONFIG_CPU_SUBTYPE_SH7730)
8 #define DMAE0_IRQ 78 /* DMA Error IRQ*/
9 #define SH_DMAC_BASE0 0xFE008020
10 #define SH_DMARS_BASE0 0xFE009000
11 #define CHCR_TS_LOW_MASK 0x00000018
12 #define CHCR_TS_LOW_SHIFT 3
13 #define CHCR_TS_HIGH_MASK 0
14 #define CHCR_TS_HIGH_SHIFT 0
15 #elif defined(CONFIG_CPU_SUBTYPE_SH7722)
18 #define DMAE0_IRQ 78 /* DMA Error IRQ*/
19 #define SH_DMAC_BASE0 0xFE008020
20 #define SH_DMARS_BASE0 0xFE009000
21 #define CHCR_TS_LOW_MASK 0x00000018
22 #define CHCR_TS_LOW_SHIFT 3
23 #define CHCR_TS_HIGH_MASK 0x00300000
24 #define CHCR_TS_HIGH_SHIFT 20
25 #elif defined(CONFIG_CPU_SUBTYPE_SH7763) || \
26 defined(CONFIG_CPU_SUBTYPE_SH7764)
30 #define SH_DMAC_BASE0 0xFF608020
31 #define SH_DMARS_BASE0 0xFF609000
32 #define CHCR_TS_LOW_MASK 0x00000018
33 #define CHCR_TS_LOW_SHIFT 3
34 #define CHCR_TS_HIGH_MASK 0
35 #define CHCR_TS_HIGH_SHIFT 0
36 #elif defined(CONFIG_CPU_SUBTYPE_SH7723)
37 #define DMTE0_IRQ 48 /* DMAC0A*/
38 #define DMTE4_IRQ 76 /* DMAC0B */
40 #define DMTE8_IRQ 42 /* DMAC1A */
42 #define DMTE10_IRQ 72 /* DMAC1B */
44 #define DMAE0_IRQ 78 /* DMA Error IRQ*/
45 #define DMAE1_IRQ 74 /* DMA Error IRQ*/
46 #define SH_DMAC_BASE0 0xFE008020
47 #define SH_DMAC_BASE1 0xFDC08020
48 #define SH_DMARS_BASE0 0xFDC09000
49 #define CHCR_TS_LOW_MASK 0x00000018
50 #define CHCR_TS_LOW_SHIFT 3
51 #define CHCR_TS_HIGH_MASK 0
52 #define CHCR_TS_HIGH_SHIFT 0
53 #elif defined(CONFIG_CPU_SUBTYPE_SH7724)
54 #define DMTE0_IRQ 48 /* DMAC0A*/
55 #define DMTE4_IRQ 76 /* DMAC0B */
57 #define DMTE8_IRQ 42 /* DMAC1A */
59 #define DMTE10_IRQ 72 /* DMAC1B */
61 #define DMAE0_IRQ 78 /* DMA Error IRQ*/
62 #define DMAE1_IRQ 74 /* DMA Error IRQ*/
63 #define SH_DMAC_BASE0 0xFE008020
64 #define SH_DMAC_BASE1 0xFDC08020
65 #define SH_DMARS_BASE0 0xFE009000
66 #define SH_DMARS_BASE1 0xFDC09000
67 #define CHCR_TS_LOW_MASK 0x00000018
68 #define CHCR_TS_LOW_SHIFT 3
69 #define CHCR_TS_HIGH_MASK 0x00600000
70 #define CHCR_TS_HIGH_SHIFT 21
71 #elif defined(CONFIG_CPU_SUBTYPE_SH7780)
79 #define DMAE0_IRQ 38 /* DMA Error IRQ */
80 #define SH_DMAC_BASE0 0xFC808020
81 #define SH_DMAC_BASE1 0xFC818020
82 #define SH_DMARS_BASE0 0xFC809000
83 #define CHCR_TS_LOW_MASK 0x00000018
84 #define CHCR_TS_LOW_SHIFT 3
85 #define CHCR_TS_HIGH_MASK 0
86 #define CHCR_TS_HIGH_SHIFT 0
95 #define DMAE0_IRQ 39 /* DMA Error IRQ0 */
96 #define DMAE1_IRQ 58 /* DMA Error IRQ1 */
97 #define SH_DMAC_BASE0 0xFC808020
98 #define SH_DMAC_BASE1 0xFCC08020
99 #define SH_DMARS_BASE0 0xFC809000
100 #define CHCR_TS_LOW_MASK 0x00000018
101 #define CHCR_TS_LOW_SHIFT 3
102 #define CHCR_TS_HIGH_MASK 0
103 #define CHCR_TS_HIGH_SHIFT 0
106 #define REQ_HE 0x000000C0
107 #define REQ_H 0x00000080
108 #define REQ_LE 0x00000040
109 #define TM_BURST 0x00000020
112 * The SuperH DMAC supports a number of transmit sizes, we list them here,
113 * with their respective values as they appear in the CHCR registers.
115 * Defaults to a 64-bit transfer size.
124 XMIT_SZ_128BIT_BLK = 0xb,
125 XMIT_SZ_256BIT_BLK = 0xc,
129 * The DMA count is defined as the number of bytes to transfer.
132 [XMIT_SZ_8BIT] = 0, \
133 [XMIT_SZ_16BIT] = 1, \
134 [XMIT_SZ_32BIT] = 2, \
135 [XMIT_SZ_64BIT] = 3, \
136 [XMIT_SZ_128BIT] = 4, \
137 [XMIT_SZ_256BIT] = 5, \
138 [XMIT_SZ_128BIT_BLK] = 4, \
139 [XMIT_SZ_256BIT_BLK] = 5, \
142 #define TS_INDEX2VAL(i) ((((i) & 3) << CHCR_TS_LOW_SHIFT) | \
143 ((((i) >> 2) & 3) << CHCR_TS_HIGH_SHIFT))
145 #endif /* __ASM_SH_CPU_SH4_DMA_SH7780_H */