linux/drivers/staging/video/axivdma/xvdma.h
<<
>>
Prefs
   1/*
   2xvdma.h
   3Wrapper client driver for xilinx VDMA Engine.
   4
   5*/
   6#ifndef __XVDMA_H
   7#define __XVDMA_H
   8
   9#include <linux/amba/xilinx_dma.h>
  10
  11#define DRIVER_NAME     "xvdma"
  12#define XVDMA_SUSPEND   NULL
  13#define XVDMA_RESUME    NULL
  14
  15#define XVDMA_MAJOR     10
  16#define XVDMA_MINOR     224
  17
  18#define MAX_DEVICES     4
  19#define MAX_FRAMES      5
  20#define DMA_CHAN_RESET 10
  21
  22#define XVDMA_IOCTL_BASE        'W'
  23#define XVDMA_GET_NUM_DEVICES   _IO(XVDMA_IOCTL_BASE, 0)
  24#define XVDMA_GET_DEV_INFO      _IO(XVDMA_IOCTL_BASE, 1)
  25#define XVDMA_DEVICE_CONTROL    _IO(XVDMA_IOCTL_BASE, 2)
  26#define XVDMA_PREP_BUF          _IO(XVDMA_IOCTL_BASE, 3)
  27#define XVDMA_START_TRANSFER    _IO(XVDMA_IOCTL_BASE, 4)
  28#define XVDMA_STOP_TRANSFER     _IO(XVDMA_IOCTL_BASE, 5)
  29
  30#define XVDMA_DEVICE_ID_SHIFT   28
  31
  32struct xvdma_drvdata {
  33        struct device *dev;
  34        struct cdev cdev;       /* Char device structure */
  35        dev_t devt;
  36};
  37
  38struct xvdma_dev {
  39
  40        u32 tx_chan;
  41        u32 rx_chan;
  42        u32 device_id;
  43};
  44
  45struct xvdma_chan_cfg {
  46        struct xilinx_vdma_config config;
  47        u32 chan;
  48};
  49
  50struct xvdma_buf_info {
  51        u32 chan;
  52        u32 device_id;
  53        u32 direction;
  54        u32 shared_buffer;
  55        u32 mem_type;
  56        u32 fixed_buffer;
  57        u32 buf_size;
  58        u32 addr_base;
  59        u32 frm_cnt;
  60        u32 callback;
  61};
  62
  63struct xvdma_transfer {
  64        u32 chan;
  65        u32 wait;
  66};
  67
  68struct chan_buf {
  69        u32 device_id;
  70        dma_addr_t dma_addr[MAX_FRAMES];
  71};
  72
  73void xvdma_device_control(struct xvdma_chan_cfg *);
  74void xvdma_prep_slave_sg(struct xvdma_buf_info *);
  75void xvdma_start_transfer(struct xvdma_transfer *);
  76void xvdma_stop_transfer(struct dma_chan *);
  77
  78#endif
  79