linux/include/linux/dma/hsu.h
<<
>>
Prefs
   1/*
   2 * Driver for the High Speed UART DMA
   3 *
   4 * Copyright (C) 2015 Intel Corporation
   5 *
   6 * This program is free software; you can redistribute it and/or modify
   7 * it under the terms of the GNU General Public License version 2 as
   8 * published by the Free Software Foundation.
   9 */
  10
  11#ifndef _DMA_HSU_H
  12#define _DMA_HSU_H
  13
  14#include <linux/device.h>
  15#include <linux/interrupt.h>
  16
  17#include <linux/platform_data/dma-hsu.h>
  18
  19struct hsu_dma;
  20
  21/**
  22 * struct hsu_dma_chip - representation of HSU DMA hardware
  23 * @dev:                 struct device of the DMA controller
  24 * @irq:                 irq line
  25 * @regs:                memory mapped I/O space
  26 * @length:              I/O space length
  27 * @offset:              offset of the I/O space where registers are located
  28 * @hsu:                 struct hsu_dma that is filed by ->probe()
  29 * @pdata:               platform data for the DMA controller if provided
  30 */
  31struct hsu_dma_chip {
  32        struct device                   *dev;
  33        int                             irq;
  34        void __iomem                    *regs;
  35        unsigned int                    length;
  36        unsigned int                    offset;
  37        struct hsu_dma                  *hsu;
  38};
  39
  40#if IS_ENABLED(CONFIG_HSU_DMA)
  41/* Export to the internal users */
  42int hsu_dma_get_status(struct hsu_dma_chip *chip, unsigned short nr,
  43                       u32 *status);
  44int hsu_dma_do_irq(struct hsu_dma_chip *chip, unsigned short nr, u32 status);
  45
  46/* Export to the platform drivers */
  47int hsu_dma_probe(struct hsu_dma_chip *chip);
  48int hsu_dma_remove(struct hsu_dma_chip *chip);
  49#else
  50static inline int hsu_dma_get_status(struct hsu_dma_chip *chip,
  51                                     unsigned short nr, u32 *status)
  52{
  53        return 0;
  54}
  55static inline int hsu_dma_do_irq(struct hsu_dma_chip *chip, unsigned short nr,
  56                                 u32 status)
  57{
  58        return 0;
  59}
  60static inline int hsu_dma_probe(struct hsu_dma_chip *chip) { return -ENODEV; }
  61static inline int hsu_dma_remove(struct hsu_dma_chip *chip) { return 0; }
  62#endif /* CONFIG_HSU_DMA */
  63
  64#endif /* _DMA_HSU_H */
  65