/* * * include/linux/coh901318.h * * * Copyright (C) 2007-2009 ST-Ericsson * License terms: GNU General Public License (GPL) version 2 * DMA driver for COH 901 318 * Author: Per Friden */ #ifndef COH901318_H #define COH901318_H #include #include #define MAX_DMA_PACKET_SIZE_SHIFT 11 #define MAX_DMA_PACKET_SIZE (1 << MAX_DMA_PACKET_SIZE_SHIFT) /** * struct coh901318_lli - linked list item for DMAC * @control: control settings for DMAC * @src_addr: transfer source address * @dst_addr: transfer destination address * @link_addr: physical address to next lli * @virt_link_addr: virtual address of next lli (only used by pool_free) * @phy_this: physical address of current lli (only used by pool_free) */ struct coh901318_lli { u32 control; dma_addr_t src_addr; dma_addr_t dst_addr; dma_addr_t link_addr; void *virt_link_addr; dma_addr_t phy_this; }; /** * struct coh901318_params - parameters for DMAC configuration * @config: DMA config register * @ctrl_lli_last: DMA control register for the last lli in the list * @ctrl_lli: DMA control register for an lli * @ctrl_lli_chained: DMA control register for a chained lli */ struct coh901318_params { u32 config; u32 ctrl_lli_last; u32 ctrl_lli; u32 ctrl_lli_chained; }; /** * struct coh_dma_channel - dma channel base * @name: ascii name of dma channel