12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849 |
- /*
- * linux/arch/unicore32/include/mach/dma.h
- *
- * Code specific to PKUnity SoC and UniCore ISA
- *
- * Copyright (C) 2001-2010 GUAN Xue-tao
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License version 2 as
- * published by the Free Software Foundation.
- */
- #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__ */
|