Commit | Line | Data |
---|---|---|
ea76f0b3 AN |
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 | */ | |
21 | struct 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 | */ | |
30 | struct 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 | */ | |
42 | struct txx9dmac_slave { | |
43 | u64 tx_reg; | |
44 | u64 rx_reg; | |
45 | unsigned int reg_width; | |
46 | }; | |
47 | ||
f48c8c95 AN |
48 | void txx9_dmac_init(int id, unsigned long baseaddr, int irq, |
49 | const struct txx9dmac_platform_data *pdata); | |
50 | ||
ea76f0b3 | 51 | #endif /* __ASM_TXX9_DMAC_H */ |