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