Viewing file: dma.h (907 B) -rw-r--r-- Select action/file-type: (+) | (+) | (+) | Code (+) | Session (+) | (+) | SDB (+) | (+) | (+) | (+) | (+) | (+) |
/* SPDX-License-Identifier: GPL-2.0-only */ /* * linux/arch/unicore32/include/mach/dma.h * * Code specific to PKUnity SoC and UniCore ISA * * Copyright (C) 2001-2010 GUAN Xue-tao */ #ifndef __MACH_PUV3_DMA_H__ #define __MACH_PUV3_DMA_H__
/* * The PKUnity has six internal DMA channels. */ #define MAX_DMA_CHANNELS 6
typedef enum { DMA_PRIO_HIGH = 0, DMA_PRIO_MEDIUM = 1, DMA_PRIO_LOW = 2 } puv3_dma_prio;
/* * DMA registration */
extern int puv3_request_dma(char *name, puv3_dma_prio prio, void (*irq_handler)(int, void *), void (*err_handler)(int, void *), void *data);
extern void puv3_free_dma(int dma_ch);
static inline void puv3_stop_dma(int ch) { writel(readl(DMAC_CONFIG(ch)) & ~DMAC_CONFIG_EN, DMAC_CONFIG(ch)); }
static inline void puv3_resume_dma(int ch) { writel(readl(DMAC_CONFIG(ch)) | DMAC_CONFIG_EN, DMAC_CONFIG(ch)); }
#endif /* __MACH_PUV3_DMA_H__ */
|