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 48void txx9_dmac_init(int id, unsigned long baseaddr, int irq, 49 const struct txx9dmac_platform_data *pdata); 50 51#endif /* __ASM_TXX9_DMAC_H */ 52