aboutsummaryrefslogtreecommitdiffstats
path: root/arch
diff options
context:
space:
mode:
authorAtsushi Nemoto <anemo@mba.ocn.ne.jp>2009-04-22 11:40:30 -0400
committerRalf Baechle <ralf@linux-mips.org>2009-06-17 06:06:25 -0400
commitea76f0b3759283ec3cc06c86e266bf0fa6a981d2 (patch)
tree36719ab69e7d94cc59c909526022219376807313 /arch
parenta43da03ca4719276b9601730627d20b2a71fb6ba (diff)
DMA: TXx9 Soc DMA Controller driver
This patch adds support for the integrated DMAC of the TXx9 family. Signed-off-by: Atsushi Nemoto <anemo@mba.ocn.ne.jp> Acked-by: Dan Williams <dan.j.williams@intel.com> Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
Diffstat (limited to 'arch')
-rw-r--r--arch/mips/include/asm/txx9/dmac.h48
1 files changed, 48 insertions, 0 deletions
diff --git a/arch/mips/include/asm/txx9/dmac.h b/arch/mips/include/asm/txx9/dmac.h
new file mode 100644
index 000000000000..a87d1c3e4f5b
--- /dev/null
+++ b/arch/mips/include/asm/txx9/dmac.h
@@ -0,0 +1,48 @@
1/*
2 * TXx9 SoC DMA Controller
3 *
4 * This program is free software; you can redistribute it and/or modify
5 * it under the terms of the GNU General Public License version 2 as
6 * published by the Free Software Foundation.
7 */
8
9#ifndef __ASM_TXX9_DMAC_H
10#define __ASM_TXX9_DMAC_H
11
12#include <linux/dmaengine.h>
13
14#define TXX9_DMA_MAX_NR_CHANNELS 4
15
16/**
17 * struct txx9dmac_platform_data - Controller configuration parameters
18 * @memcpy_chan: Channel used for DMA_MEMCPY
19 * @have_64bit_regs: DMAC have 64 bit registers
20 */
21struct txx9dmac_platform_data {
22 int memcpy_chan;
23 bool have_64bit_regs;
24};
25
26/**
27 * struct txx9dmac_chan_platform_data - Channel configuration parameters
28 * @dmac_dev: A platform device for DMAC
29 */
30struct txx9dmac_chan_platform_data {
31 struct platform_device *dmac_dev;
32};
33
34/**
35 * struct txx9dmac_slave - Controller-specific information about a slave
36 * @tx_reg: physical address of data register used for
37 * memory-to-peripheral transfers
38 * @rx_reg: physical address of data register used for
39 * peripheral-to-memory transfers
40 * @reg_width: peripheral register width
41 */
42struct txx9dmac_slave {
43 u64 tx_reg;
44 u64 rx_reg;
45 unsigned int reg_width;
46};
47
48#endif /* __ASM_TXX9_DMAC_H */