at v5.9 1.9 kB view raw
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