Linux Audio

Check our new training course

Loading...
v6.8
 1/* SPDX-License-Identifier: GPL-2.0-only */
 2/*
 3 * TXx9 SoC DMA Controller
 
 
 
 
 4 */
 5
 6#ifndef __ASM_TXX9_DMAC_H
 7#define __ASM_TXX9_DMAC_H
 8
 9#include <linux/dmaengine.h>
10
11#define TXX9_DMA_MAX_NR_CHANNELS	4
12
13/**
14 * struct txx9dmac_platform_data - Controller configuration parameters
15 * @memcpy_chan: Channel used for DMA_MEMCPY
16 * @have_64bit_regs: DMAC have 64 bit registers
17 */
18struct txx9dmac_platform_data {
19	int	memcpy_chan;
20	bool	have_64bit_regs;
21};
22
23/**
24 * struct txx9dmac_chan_platform_data - Channel configuration parameters
25 * @dmac_dev: A platform device for DMAC
26 */
27struct txx9dmac_chan_platform_data {
28	struct platform_device *dmac_dev;
29};
30
31/**
32 * struct txx9dmac_slave - Controller-specific information about a slave
33 * @tx_reg: physical address of data register used for
34 *	memory-to-peripheral transfers
35 * @rx_reg: physical address of data register used for
36 *	peripheral-to-memory transfers
37 * @reg_width: peripheral register width
38 */
39struct txx9dmac_slave {
40	u64		tx_reg;
41	u64		rx_reg;
42	unsigned int	reg_width;
43};
44
45void txx9_dmac_init(int id, unsigned long baseaddr, int irq,
46		    const struct txx9dmac_platform_data *pdata);
47
48#endif /* __ASM_TXX9_DMAC_H */
v3.5.6
 
 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 */