xref: /openbmc/linux/include/linux/timb_dma.h (revision de5d4453)
1de5d4453SRichard Röjfors /*
2de5d4453SRichard Röjfors  * timb_dma.h timberdale FPGA DMA driver defines
3de5d4453SRichard Röjfors  * Copyright (c) 2010 Intel Corporation
4de5d4453SRichard Röjfors  *
5de5d4453SRichard Röjfors  * This program is free software; you can redistribute it and/or modify
6de5d4453SRichard Röjfors  * it under the terms of the GNU General Public License version 2 as
7de5d4453SRichard Röjfors  * published by the Free Software Foundation.
8de5d4453SRichard Röjfors  *
9de5d4453SRichard Röjfors  * This program is distributed in the hope that it will be useful,
10de5d4453SRichard Röjfors  * but WITHOUT ANY WARRANTY; without even the implied warranty of
11de5d4453SRichard Röjfors  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
12de5d4453SRichard Röjfors  * GNU General Public License for more details.
13de5d4453SRichard Röjfors  *
14de5d4453SRichard Röjfors  * You should have received a copy of the GNU General Public License
15de5d4453SRichard Röjfors  * along with this program; if not, write to the Free Software
16de5d4453SRichard Röjfors  * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
17de5d4453SRichard Röjfors  */
18de5d4453SRichard Röjfors 
19de5d4453SRichard Röjfors /* Supports:
20de5d4453SRichard Röjfors  * Timberdale FPGA DMA engine
21de5d4453SRichard Röjfors  */
22de5d4453SRichard Röjfors 
23de5d4453SRichard Röjfors #ifndef _LINUX_TIMB_DMA_H
24de5d4453SRichard Röjfors #define _LINUX_TIMB_DMA_H
25de5d4453SRichard Röjfors 
26de5d4453SRichard Röjfors /**
27de5d4453SRichard Röjfors  * struct timb_dma_platform_data_channel - Description of each individual
28de5d4453SRichard Röjfors  *	DMA channel for the timberdale DMA driver
29de5d4453SRichard Röjfors  * @rx:			true if this channel handles data in the direction to
30de5d4453SRichard Röjfors  *	the CPU.
31de5d4453SRichard Röjfors  * @bytes_per_line:	Number of bytes per line, this is specific for channels
32de5d4453SRichard Röjfors  *	handling video data. For other channels this shall be left to 0.
33de5d4453SRichard Röjfors  * @descriptors:	Number of descriptors to allocate for this channel.
34de5d4453SRichard Röjfors  * @descriptor_elements: Number of elements in each descriptor.
35de5d4453SRichard Röjfors  *
36de5d4453SRichard Röjfors  */
37de5d4453SRichard Röjfors struct timb_dma_platform_data_channel {
38de5d4453SRichard Röjfors 	bool rx;
39de5d4453SRichard Röjfors 	unsigned int bytes_per_line;
40de5d4453SRichard Röjfors 	unsigned int descriptors;
41de5d4453SRichard Röjfors 	unsigned int descriptor_elements;
42de5d4453SRichard Röjfors };
43de5d4453SRichard Röjfors 
44de5d4453SRichard Röjfors /**
45de5d4453SRichard Röjfors  * struct timb_dma_platform_data - Platform data of the timberdale DMA driver
46de5d4453SRichard Röjfors  * @nr_channels:	Number of defined channels in the channels array.
47de5d4453SRichard Röjfors  * @channels:		Definition of the each channel.
48de5d4453SRichard Röjfors  *
49de5d4453SRichard Röjfors  */
50de5d4453SRichard Röjfors struct timb_dma_platform_data {
51de5d4453SRichard Röjfors 	unsigned nr_channels;
52de5d4453SRichard Röjfors 	struct timb_dma_platform_data_channel channels[32];
53de5d4453SRichard Röjfors };
54de5d4453SRichard Röjfors 
55de5d4453SRichard Röjfors #endif
56