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