Merge branch 'for-3.18-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/tj...
[linux/fpc-iii.git] / arch / unicore32 / include / mach / regs-dmac.h
blob66de9e7d1c8f856c1f6c4de7302bea0b1db01793
1 /*
2 * PKUnity Direct Memory Access Controller (DMAC)
3 */
5 /*
6 * Interrupt Status Reg DMAC_ISR.
7 */
8 #define DMAC_ISR (PKUNITY_DMAC_BASE + 0x0020)
9 /*
10 * Interrupt Transfer Complete Status Reg DMAC_ITCSR.
12 #define DMAC_ITCSR (PKUNITY_DMAC_BASE + 0x0050)
14 * Interrupt Transfer Complete Clear Reg DMAC_ITCCR.
16 #define DMAC_ITCCR (PKUNITY_DMAC_BASE + 0x0060)
18 * Interrupt Error Status Reg DMAC_IESR.
20 #define DMAC_IESR (PKUNITY_DMAC_BASE + 0x0080)
22 * Interrupt Error Clear Reg DMAC_IECR.
24 #define DMAC_IECR (PKUNITY_DMAC_BASE + 0x0090)
26 * Enable Channels Reg DMAC_ENCH.
28 #define DMAC_ENCH (PKUNITY_DMAC_BASE + 0x00B0)
31 * DMA control reg. Space [byte]
33 #define DMASp 0x00000100
36 * Source Addr DMAC_SRCADDR(ch).
38 #define DMAC_SRCADDR(ch) (PKUNITY_DMAC_BASE + (ch)*DMASp + 0x00)
40 * Destination Addr DMAC_DESTADDR(ch).
42 #define DMAC_DESTADDR(ch) (PKUNITY_DMAC_BASE + (ch)*DMASp + 0x04)
44 * Control Reg DMAC_CONTROL(ch).
46 #define DMAC_CONTROL(ch) (PKUNITY_DMAC_BASE + (ch)*DMASp + 0x0C)
48 * Configuration Reg DMAC_CONFIG(ch).
50 #define DMAC_CONFIG(ch) (PKUNITY_DMAC_BASE + (ch)*DMASp + 0x10)
52 #define DMAC_IR_MASK FMASK(6, 0)
54 * select channel (ch)
56 #define DMAC_CHANNEL(ch) FIELD(1, 1, (ch))
58 #define DMAC_CONTROL_SIZE_BYTE(v) (FIELD((v), 12, 14) | \
59 FIELD(0, 3, 9) | FIELD(0, 3, 6))
60 #define DMAC_CONTROL_SIZE_HWORD(v) (FIELD((v) >> 1, 12, 14) | \
61 FIELD(1, 3, 9) | FIELD(1, 3, 6))
62 #define DMAC_CONTROL_SIZE_WORD(v) (FIELD((v) >> 2, 12, 14) | \
63 FIELD(2, 3, 9) | FIELD(2, 3, 6))
64 #define DMAC_CONTROL_DI FIELD(1, 1, 13)
65 #define DMAC_CONTROL_SI FIELD(1, 1, 12)
66 #define DMAC_CONTROL_BURST_1BYTE (FIELD(0, 3, 3) | FIELD(0, 3, 0))
67 #define DMAC_CONTROL_BURST_4BYTE (FIELD(3, 3, 3) | FIELD(3, 3, 0))
68 #define DMAC_CONTROL_BURST_8BYTE (FIELD(5, 3, 3) | FIELD(5, 3, 0))
69 #define DMAC_CONTROL_BURST_16BYTE (FIELD(7, 3, 3) | FIELD(7, 3, 0))
71 #define DMAC_CONFIG_UART0_WR (FIELD(2, 4, 11) | FIELD(1, 2, 1))
72 #define DMAC_CONFIG_UART0_RD (FIELD(2, 4, 7) | FIELD(2, 2, 1))
73 #define DMAC_CONFIG_UART1_WR (FIELD(3, 4, 11) | FIELD(1, 2, 1))
74 #define DMAC_CONFIG_UART1RD (FIELD(3, 4, 7) | FIELD(2, 2, 1))
75 #define DMAC_CONFIG_AC97WR (FIELD(4, 4, 11) | FIELD(1, 2, 1))
76 #define DMAC_CONFIG_AC97RD (FIELD(4, 4, 7) | FIELD(2, 2, 1))
77 #define DMAC_CONFIG_MMCWR (FIELD(7, 4, 11) | FIELD(1, 2, 1))
78 #define DMAC_CONFIG_MMCRD (FIELD(7, 4, 7) | FIELD(2, 2, 1))
79 #define DMAC_CONFIG_MASKITC FIELD(1, 1, 4)
80 #define DMAC_CONFIG_MASKIE FIELD(1, 1, 3)
81 #define DMAC_CONFIG_EN FIELD(1, 1, 0)