cachepc-linux

Fork of AMDESE/linux with modifications for CachePC side-channel attack
git clone https://git.sinitax.com/sinitax/cachepc-linux
Log | Files | Refs | README | LICENSE | sfeed.txt

hsu.h (1637B)


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