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