Blame view

kernel/linux-rt-4.4.41/include/linux/platform_data/dma-imx.h 1.97 KB
5113f6f70   김현기   kernel add
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
  /*
   * Copyright 2004-2009 Freescale Semiconductor, Inc. All Rights Reserved.
   *
   * This program is free software; you can redistribute it and/or modify
   * it under the terms of the GNU General Public License version 2 as
   * published by the Free Software Foundation.
   */
  
  #ifndef __ASM_ARCH_MXC_DMA_H__
  #define __ASM_ARCH_MXC_DMA_H__
  
  #include <linux/scatterlist.h>
  #include <linux/device.h>
  #include <linux/dmaengine.h>
  
  /*
   * This enumerates peripheral types. Used for SDMA.
   */
  enum sdma_peripheral_type {
  	IMX_DMATYPE_SSI,	/* MCU domain SSI */
  	IMX_DMATYPE_SSI_SP,	/* Shared SSI */
  	IMX_DMATYPE_MMC,	/* MMC */
  	IMX_DMATYPE_SDHC,	/* SDHC */
  	IMX_DMATYPE_UART,	/* MCU domain UART */
  	IMX_DMATYPE_UART_SP,	/* Shared UART */
  	IMX_DMATYPE_FIRI,	/* FIRI */
  	IMX_DMATYPE_CSPI,	/* MCU domain CSPI */
  	IMX_DMATYPE_CSPI_SP,	/* Shared CSPI */
  	IMX_DMATYPE_SIM,	/* SIM */
  	IMX_DMATYPE_ATA,	/* ATA */
  	IMX_DMATYPE_CCM,	/* CCM */
  	IMX_DMATYPE_EXT,	/* External peripheral */
  	IMX_DMATYPE_MSHC,	/* Memory Stick Host Controller */
  	IMX_DMATYPE_MSHC_SP,	/* Shared Memory Stick Host Controller */
  	IMX_DMATYPE_DSP,	/* DSP */
  	IMX_DMATYPE_MEMORY,	/* Memory */
  	IMX_DMATYPE_FIFO_MEMORY,/* FIFO type Memory */
  	IMX_DMATYPE_SPDIF,	/* SPDIF */
  	IMX_DMATYPE_IPU_MEMORY,	/* IPU Memory */
  	IMX_DMATYPE_ASRC,	/* ASRC */
  	IMX_DMATYPE_ESAI,	/* ESAI */
  	IMX_DMATYPE_SSI_DUAL,	/* SSI Dual FIFO */
  	IMX_DMATYPE_ASRC_SP,	/* Shared ASRC */
  	IMX_DMATYPE_SAI,	/* SAI */
  };
  
  enum imx_dma_prio {
  	DMA_PRIO_HIGH = 0,
  	DMA_PRIO_MEDIUM = 1,
  	DMA_PRIO_LOW = 2
  };
  
  struct imx_dma_data {
  	int dma_request; /* DMA request line */
  	int dma_request2; /* secondary DMA request line */
  	enum sdma_peripheral_type peripheral_type;
  	int priority;
  };
  
  static inline int imx_dma_is_ipu(struct dma_chan *chan)
  {
  	return !strcmp(dev_name(chan->device->dev), "ipu-core");
  }
  
  static inline int imx_dma_is_general_purpose(struct dma_chan *chan)
  {
  	return !strcmp(chan->device->dev->driver->name, "imx-sdma") ||
  		!strcmp(chan->device->dev->driver->name, "imx-dma");
  }
  
  #endif