xref: /openbmc/linux/include/linux/timb_dma.h (revision 82c29810)
182c29810SThomas Gleixner /* SPDX-License-Identifier: GPL-2.0-only */
2de5d4453SRichard Röjfors /*
3de5d4453SRichard Röjfors  * timb_dma.h timberdale FPGA DMA driver defines
4de5d4453SRichard Röjfors  * Copyright (c) 2010 Intel Corporation
5de5d4453SRichard Röjfors  */
6de5d4453SRichard Röjfors 
7de5d4453SRichard Röjfors /* Supports:
8de5d4453SRichard Röjfors  * Timberdale FPGA DMA engine
9de5d4453SRichard Röjfors  */
10de5d4453SRichard Röjfors 
11de5d4453SRichard Röjfors #ifndef _LINUX_TIMB_DMA_H
12de5d4453SRichard Röjfors #define _LINUX_TIMB_DMA_H
13de5d4453SRichard Röjfors 
14de5d4453SRichard Röjfors /**
15de5d4453SRichard Röjfors  * struct timb_dma_platform_data_channel - Description of each individual
16de5d4453SRichard Röjfors  *	DMA channel for the timberdale DMA driver
17de5d4453SRichard Röjfors  * @rx:			true if this channel handles data in the direction to
18de5d4453SRichard Röjfors  *	the CPU.
19de5d4453SRichard Röjfors  * @bytes_per_line:	Number of bytes per line, this is specific for channels
20de5d4453SRichard Röjfors  *	handling video data. For other channels this shall be left to 0.
21de5d4453SRichard Röjfors  * @descriptors:	Number of descriptors to allocate for this channel.
22de5d4453SRichard Röjfors  * @descriptor_elements: Number of elements in each descriptor.
23de5d4453SRichard Röjfors  *
24de5d4453SRichard Röjfors  */
25de5d4453SRichard Röjfors struct timb_dma_platform_data_channel {
26de5d4453SRichard Röjfors 	bool rx;
27de5d4453SRichard Röjfors 	unsigned int bytes_per_line;
28de5d4453SRichard Röjfors 	unsigned int descriptors;
29de5d4453SRichard Röjfors 	unsigned int descriptor_elements;
30de5d4453SRichard Röjfors };
31de5d4453SRichard Röjfors 
32de5d4453SRichard Röjfors /**
33de5d4453SRichard Röjfors  * struct timb_dma_platform_data - Platform data of the timberdale DMA driver
34de5d4453SRichard Röjfors  * @nr_channels:	Number of defined channels in the channels array.
35de5d4453SRichard Röjfors  * @channels:		Definition of the each channel.
36de5d4453SRichard Röjfors  *
37de5d4453SRichard Röjfors  */
38de5d4453SRichard Röjfors struct timb_dma_platform_data {
39de5d4453SRichard Röjfors 	unsigned nr_channels;
40de5d4453SRichard Röjfors 	struct timb_dma_platform_data_channel channels[32];
41de5d4453SRichard Röjfors };
42de5d4453SRichard Röjfors 
43de5d4453SRichard Röjfors #endif
44