|
@@ -0,0 +1,54 @@
|
|
|
+/*
|
|
|
+ *
|
|
|
+ * 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 <per.friden@stericsson.com>
|
|
|
+ */
|
|
|
+
|
|
|
+#ifndef COH901318_H
|
|
|
+#define COH901318_H
|
|
|
+
|
|
|
+#include <linux/device.h>
|
|
|
+#include <linux/dmaengine.h>
|
|
|
+
|
|
|
+#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
|