linux/include/linux/dma/dw.h
<<
>>
Prefs
   1/* SPDX-License-Identifier: GPL-2.0 */
   2/*
   3 * Driver for the Synopsys DesignWare DMA Controller
   4 *
   5 * Copyright (C) 2007 Atmel Corporation
   6 * Copyright (C) 2010-2011 ST Microelectronics
   7 * Copyright (C) 2014 Intel Corporation
   8 */
   9#ifndef _DMA_DW_H
  10#define _DMA_DW_H
  11
  12#include <linux/clk.h>
  13#include <linux/device.h>
  14#include <linux/dmaengine.h>
  15
  16#include <linux/platform_data/dma-dw.h>
  17
  18struct dw_dma;
  19
  20/**
  21 * struct dw_dma_chip - representation of DesignWare DMA controller hardware
  22 * @dev:                struct device of the DMA controller
  23 * @id:                 instance ID
  24 * @irq:                irq line
  25 * @regs:               memory mapped I/O space
  26 * @clk:                hclk clock
  27 * @dw:                 struct dw_dma that is filed by dw_dma_probe()
  28 * @pdata:              pointer to platform data
  29 */
  30struct dw_dma_chip {
  31        struct device   *dev;
  32        int             id;
  33        int             irq;
  34        void __iomem    *regs;
  35        struct clk      *clk;
  36        struct dw_dma   *dw;
  37
  38        const struct dw_dma_platform_data       *pdata;
  39};
  40
  41/* Export to the platform drivers */
  42#if IS_ENABLED(CONFIG_DW_DMAC_CORE)
  43int dw_dma_probe(struct dw_dma_chip *chip);
  44int dw_dma_remove(struct dw_dma_chip *chip);
  45int idma32_dma_probe(struct dw_dma_chip *chip);
  46int idma32_dma_remove(struct dw_dma_chip *chip);
  47#else
  48static inline int dw_dma_probe(struct dw_dma_chip *chip) { return -ENODEV; }
  49static inline int dw_dma_remove(struct dw_dma_chip *chip) { return 0; }
  50static inline int idma32_dma_probe(struct dw_dma_chip *chip) { return -ENODEV; }
  51static inline int idma32_dma_remove(struct dw_dma_chip *chip) { return 0; }
  52#endif /* CONFIG_DW_DMAC_CORE */
  53
  54#endif /* _DMA_DW_H */
  55