Linux Kernel  3.7.1
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
Data Structures | Macros | Functions | Variables
dma.c File Reference
#include <linux/kernel.h>
#include <linux/module.h>
#include <linux/spinlock.h>
#include <linux/interrupt.h>
#include <linux/dma-mapping.h>
#include <asm/mach-jz4740/dma.h>
#include <asm/mach-jz4740/base.h>

Go to the source code of this file.

Data Structures

struct  jz4740_dma_chan
 

Macros

#define JZ_REG_DMA_SRC_ADDR(x)   (0x00 + (x) * 0x20)
 
#define JZ_REG_DMA_DST_ADDR(x)   (0x04 + (x) * 0x20)
 
#define JZ_REG_DMA_TRANSFER_COUNT(x)   (0x08 + (x) * 0x20)
 
#define JZ_REG_DMA_REQ_TYPE(x)   (0x0C + (x) * 0x20)
 
#define JZ_REG_DMA_STATUS_CTRL(x)   (0x10 + (x) * 0x20)
 
#define JZ_REG_DMA_CMD(x)   (0x14 + (x) * 0x20)
 
#define JZ_REG_DMA_DESC_ADDR(x)   (0x18 + (x) * 0x20)
 
#define JZ_REG_DMA_CTRL   0x300
 
#define JZ_REG_DMA_IRQ   0x304
 
#define JZ_REG_DMA_DOORBELL   0x308
 
#define JZ_REG_DMA_DOORBELL_SET   0x30C
 
#define JZ_DMA_STATUS_CTRL_NO_DESC   BIT(31)
 
#define JZ_DMA_STATUS_CTRL_DESC_INV   BIT(6)
 
#define JZ_DMA_STATUS_CTRL_ADDR_ERR   BIT(4)
 
#define JZ_DMA_STATUS_CTRL_TRANSFER_DONE   BIT(3)
 
#define JZ_DMA_STATUS_CTRL_HALT   BIT(2)
 
#define JZ_DMA_STATUS_CTRL_COUNT_TERMINATE   BIT(1)
 
#define JZ_DMA_STATUS_CTRL_ENABLE   BIT(0)
 
#define JZ_DMA_CMD_SRC_INC   BIT(23)
 
#define JZ_DMA_CMD_DST_INC   BIT(22)
 
#define JZ_DMA_CMD_RDIL_MASK   (0xf << 16)
 
#define JZ_DMA_CMD_SRC_WIDTH_MASK   (0x3 << 14)
 
#define JZ_DMA_CMD_DST_WIDTH_MASK   (0x3 << 12)
 
#define JZ_DMA_CMD_INTERVAL_LENGTH_MASK   (0x7 << 8)
 
#define JZ_DMA_CMD_BLOCK_MODE   BIT(7)
 
#define JZ_DMA_CMD_DESC_VALID   BIT(4)
 
#define JZ_DMA_CMD_DESC_VALID_MODE   BIT(3)
 
#define JZ_DMA_CMD_VALID_IRQ_ENABLE   BIT(2)
 
#define JZ_DMA_CMD_TRANSFER_IRQ_ENABLE   BIT(1)
 
#define JZ_DMA_CMD_LINK_ENABLE   BIT(0)
 
#define JZ_DMA_CMD_FLAGS_OFFSET   22
 
#define JZ_DMA_CMD_RDIL_OFFSET   16
 
#define JZ_DMA_CMD_SRC_WIDTH_OFFSET   14
 
#define JZ_DMA_CMD_DST_WIDTH_OFFSET   12
 
#define JZ_DMA_CMD_TRANSFER_SIZE_OFFSET   8
 
#define JZ_DMA_CMD_MODE_OFFSET   7
 
#define JZ_DMA_CTRL_PRIORITY_MASK   (0x3 << 8)
 
#define JZ_DMA_CTRL_HALT   BIT(3)
 
#define JZ_DMA_CTRL_ADDRESS_ERROR   BIT(2)
 
#define JZ_DMA_CTRL_ENABLE   BIT(0)
 
#define JZ4740_DMA_CHANNEL(_id)   { .id = _id }
 

Functions

struct jz4740_dma_chanjz4740_dma_request (void *dev, const char *name)
 
 EXPORT_SYMBOL_GPL (jz4740_dma_request)
 
void jz4740_dma_configure (struct jz4740_dma_chan *dma, const struct jz4740_dma_config *config)
 
 EXPORT_SYMBOL_GPL (jz4740_dma_configure)
 
void jz4740_dma_set_src_addr (struct jz4740_dma_chan *dma, dma_addr_t src)
 
 EXPORT_SYMBOL_GPL (jz4740_dma_set_src_addr)
 
void jz4740_dma_set_dst_addr (struct jz4740_dma_chan *dma, dma_addr_t dst)
 
 EXPORT_SYMBOL_GPL (jz4740_dma_set_dst_addr)
 
void jz4740_dma_set_transfer_count (struct jz4740_dma_chan *dma, uint32_t count)
 
 EXPORT_SYMBOL_GPL (jz4740_dma_set_transfer_count)
 
void jz4740_dma_set_complete_cb (struct jz4740_dma_chan *dma, jz4740_dma_complete_callback_t cb)
 
 EXPORT_SYMBOL_GPL (jz4740_dma_set_complete_cb)
 
void jz4740_dma_free (struct jz4740_dma_chan *dma)
 
 EXPORT_SYMBOL_GPL (jz4740_dma_free)
 
void jz4740_dma_enable (struct jz4740_dma_chan *dma)
 
 EXPORT_SYMBOL_GPL (jz4740_dma_enable)
 
void jz4740_dma_disable (struct jz4740_dma_chan *dma)
 
 EXPORT_SYMBOL_GPL (jz4740_dma_disable)
 
uint32_t jz4740_dma_get_residue (const struct jz4740_dma_chan *dma)
 
 EXPORT_SYMBOL_GPL (jz4740_dma_get_residue)
 
 arch_initcall (jz4740_dma_init)
 

Variables

struct jz4740_dma_chan jz4740_dma_channels []
 

Macro Definition Documentation

#define JZ4740_DMA_CHANNEL (   _id)    { .id = _id }

Definition at line 107 of file dma.c.

#define JZ_DMA_CMD_BLOCK_MODE   BIT(7)

Definition at line 52 of file dma.c.

#define JZ_DMA_CMD_DESC_VALID   BIT(4)

Definition at line 53 of file dma.c.

#define JZ_DMA_CMD_DESC_VALID_MODE   BIT(3)

Definition at line 54 of file dma.c.

#define JZ_DMA_CMD_DST_INC   BIT(22)

Definition at line 47 of file dma.c.

#define JZ_DMA_CMD_DST_WIDTH_MASK   (0x3 << 12)

Definition at line 50 of file dma.c.

#define JZ_DMA_CMD_DST_WIDTH_OFFSET   12

Definition at line 62 of file dma.c.

#define JZ_DMA_CMD_FLAGS_OFFSET   22

Definition at line 59 of file dma.c.

#define JZ_DMA_CMD_INTERVAL_LENGTH_MASK   (0x7 << 8)

Definition at line 51 of file dma.c.

#define JZ_DMA_CMD_LINK_ENABLE   BIT(0)

Definition at line 57 of file dma.c.

#define JZ_DMA_CMD_MODE_OFFSET   7

Definition at line 64 of file dma.c.

#define JZ_DMA_CMD_RDIL_MASK   (0xf << 16)

Definition at line 48 of file dma.c.

#define JZ_DMA_CMD_RDIL_OFFSET   16

Definition at line 60 of file dma.c.

#define JZ_DMA_CMD_SRC_INC   BIT(23)

Definition at line 46 of file dma.c.

#define JZ_DMA_CMD_SRC_WIDTH_MASK   (0x3 << 14)

Definition at line 49 of file dma.c.

#define JZ_DMA_CMD_SRC_WIDTH_OFFSET   14

Definition at line 61 of file dma.c.

#define JZ_DMA_CMD_TRANSFER_IRQ_ENABLE   BIT(1)

Definition at line 56 of file dma.c.

#define JZ_DMA_CMD_TRANSFER_SIZE_OFFSET   8

Definition at line 63 of file dma.c.

#define JZ_DMA_CMD_VALID_IRQ_ENABLE   BIT(2)

Definition at line 55 of file dma.c.

#define JZ_DMA_CTRL_ADDRESS_ERROR   BIT(2)

Definition at line 68 of file dma.c.

#define JZ_DMA_CTRL_ENABLE   BIT(0)

Definition at line 69 of file dma.c.

#define JZ_DMA_CTRL_HALT   BIT(3)

Definition at line 67 of file dma.c.

#define JZ_DMA_CTRL_PRIORITY_MASK   (0x3 << 8)

Definition at line 66 of file dma.c.

#define JZ_DMA_STATUS_CTRL_ADDR_ERR   BIT(4)

Definition at line 40 of file dma.c.

#define JZ_DMA_STATUS_CTRL_COUNT_TERMINATE   BIT(1)

Definition at line 43 of file dma.c.

#define JZ_DMA_STATUS_CTRL_DESC_INV   BIT(6)

Definition at line 39 of file dma.c.

#define JZ_DMA_STATUS_CTRL_ENABLE   BIT(0)

Definition at line 44 of file dma.c.

#define JZ_DMA_STATUS_CTRL_HALT   BIT(2)

Definition at line 42 of file dma.c.

#define JZ_DMA_STATUS_CTRL_NO_DESC   BIT(31)

Definition at line 38 of file dma.c.

#define JZ_DMA_STATUS_CTRL_TRANSFER_DONE   BIT(3)

Definition at line 41 of file dma.c.

#define JZ_REG_DMA_CMD (   x)    (0x14 + (x) * 0x20)

Definition at line 30 of file dma.c.

#define JZ_REG_DMA_CTRL   0x300

Definition at line 33 of file dma.c.

#define JZ_REG_DMA_DESC_ADDR (   x)    (0x18 + (x) * 0x20)

Definition at line 31 of file dma.c.

#define JZ_REG_DMA_DOORBELL   0x308

Definition at line 35 of file dma.c.

#define JZ_REG_DMA_DOORBELL_SET   0x30C

Definition at line 36 of file dma.c.

#define JZ_REG_DMA_DST_ADDR (   x)    (0x04 + (x) * 0x20)

Definition at line 26 of file dma.c.

#define JZ_REG_DMA_IRQ   0x304

Definition at line 34 of file dma.c.

#define JZ_REG_DMA_REQ_TYPE (   x)    (0x0C + (x) * 0x20)

Definition at line 28 of file dma.c.

#define JZ_REG_DMA_SRC_ADDR (   x)    (0x00 + (x) * 0x20)

Definition at line 25 of file dma.c.

#define JZ_REG_DMA_STATUS_CTRL (   x)    (0x10 + (x) * 0x20)

Definition at line 29 of file dma.c.

#define JZ_REG_DMA_TRANSFER_COUNT (   x)    (0x08 + (x) * 0x20)

Definition at line 27 of file dma.c.

Function Documentation

arch_initcall ( jz4740_dma_init  )
EXPORT_SYMBOL_GPL ( jz4740_dma_request  )
EXPORT_SYMBOL_GPL ( jz4740_dma_configure  )
EXPORT_SYMBOL_GPL ( jz4740_dma_set_src_addr  )
EXPORT_SYMBOL_GPL ( jz4740_dma_set_dst_addr  )
EXPORT_SYMBOL_GPL ( jz4740_dma_set_transfer_count  )
EXPORT_SYMBOL_GPL ( jz4740_dma_set_complete_cb  )
EXPORT_SYMBOL_GPL ( jz4740_dma_free  )
EXPORT_SYMBOL_GPL ( jz4740_dma_enable  )
EXPORT_SYMBOL_GPL ( jz4740_dma_disable  )
EXPORT_SYMBOL_GPL ( jz4740_dma_get_residue  )
void jz4740_dma_configure ( struct jz4740_dma_chan dma,
const struct jz4740_dma_config config 
)

Definition at line 145 of file dma.c.

void jz4740_dma_disable ( struct jz4740_dma_chan dma)

Definition at line 228 of file dma.c.

void jz4740_dma_enable ( struct jz4740_dma_chan dma)

Definition at line 215 of file dma.c.

void jz4740_dma_free ( struct jz4740_dma_chan dma)

Definition at line 207 of file dma.c.

uint32_t jz4740_dma_get_residue ( const struct jz4740_dma_chan dma)

Definition at line 235 of file dma.c.

struct jz4740_dma_chan* jz4740_dma_request ( void dev,
const char name 
)
read

Definition at line 118 of file dma.c.

void jz4740_dma_set_complete_cb ( struct jz4740_dma_chan dma,
jz4740_dma_complete_callback_t  cb 
)

Definition at line 200 of file dma.c.

void jz4740_dma_set_dst_addr ( struct jz4740_dma_chan dma,
dma_addr_t  dst 
)

Definition at line 187 of file dma.c.

void jz4740_dma_set_src_addr ( struct jz4740_dma_chan dma,
dma_addr_t  src 
)

Definition at line 181 of file dma.c.

void jz4740_dma_set_transfer_count ( struct jz4740_dma_chan dma,
uint32_t  count 
)

Definition at line 193 of file dma.c.

Variable Documentation

struct jz4740_dma_chan jz4740_dma_channels[]
Initial value:

Definition at line 109 of file dma.c.