123456789101112131415161718192021222324252627282930313233343536373839404142434445464748 |
- /* SPDX-License-Identifier: GPL-2.0-only */
- /*
- * TXx9 SoC DMA Controller
- */
- #ifndef __ASM_TXX9_DMAC_H
- #define __ASM_TXX9_DMAC_H
- #include <linux/dmaengine.h>
- #define TXX9_DMA_MAX_NR_CHANNELS 4
- /**
- * struct txx9dmac_platform_data - Controller configuration parameters
- * @memcpy_chan: Channel used for DMA_MEMCPY
- * @have_64bit_regs: DMAC have 64 bit registers
- */
- struct txx9dmac_platform_data {
- int memcpy_chan;
- bool have_64bit_regs;
- };
- /**
- * struct txx9dmac_chan_platform_data - Channel configuration parameters
- * @dmac_dev: A platform device for DMAC
- */
- struct txx9dmac_chan_platform_data {
- struct platform_device *dmac_dev;
- };
- /**
- * struct txx9dmac_slave - Controller-specific information about a slave
- * @tx_reg: physical address of data register used for
- * memory-to-peripheral transfers
- * @rx_reg: physical address of data register used for
- * peripheral-to-memory transfers
- * @reg_width: peripheral register width
- */
- struct txx9dmac_slave {
- u64 tx_reg;
- u64 rx_reg;
- unsigned int reg_width;
- };
- void txx9_dmac_init(int id, unsigned long baseaddr, int irq,
- const struct txx9dmac_platform_data *pdata);
- #endif /* __ASM_TXX9_DMAC_H */
|