• Home
  • History
  • Annotate
  • Line#
  • Navigate
  • Raw
  • Download
  • only in /asuswrt-rt-n18u-9.0.0.4.380.2695/release/src-rt-6.x.4708/linux/linux-2.6/arch/arm/mach-ep93xx/include/mach/
1/*
2 * arch/arm/mach-ep93xx/include/mach/dma.h
3 */
4
5#ifndef __ASM_ARCH_DMA_H
6#define __ASM_ARCH_DMA_H
7
8#include <linux/list.h>
9#include <linux/types.h>
10
11struct ep93xx_dma_buffer {
12	struct list_head	list;
13	u32			bus_addr;
14	u16			size;
15};
16
17struct ep93xx_dma_m2p_client {
18	char			*name;
19	u8			flags;
20	void			*cookie;
21	void			(*buffer_started)(void *cookie,
22					struct ep93xx_dma_buffer *buf);
23	void			(*buffer_finished)(void *cookie,
24					struct ep93xx_dma_buffer *buf,
25					int bytes, int error);
26
27	/* Internal to the DMA code.  */
28	void			*channel;
29};
30
31#define EP93XX_DMA_M2P_PORT_I2S1	0x00
32#define EP93XX_DMA_M2P_PORT_I2S2	0x01
33#define EP93XX_DMA_M2P_PORT_AAC1	0x02
34#define EP93XX_DMA_M2P_PORT_AAC2	0x03
35#define EP93XX_DMA_M2P_PORT_AAC3	0x04
36#define EP93XX_DMA_M2P_PORT_I2S3	0x05
37#define EP93XX_DMA_M2P_PORT_UART1	0x06
38#define EP93XX_DMA_M2P_PORT_UART2	0x07
39#define EP93XX_DMA_M2P_PORT_UART3	0x08
40#define EP93XX_DMA_M2P_PORT_IRDA	0x09
41#define EP93XX_DMA_M2P_PORT_MASK	0x0f
42#define EP93XX_DMA_M2P_TX		0x00
43#define EP93XX_DMA_M2P_RX		0x10
44#define EP93XX_DMA_M2P_ABORT_ON_ERROR	0x20
45#define EP93XX_DMA_M2P_IGNORE_ERROR	0x40
46#define EP93XX_DMA_M2P_ERROR_MASK	0x60
47
48int  ep93xx_dma_m2p_client_register(struct ep93xx_dma_m2p_client *m2p);
49void ep93xx_dma_m2p_client_unregister(struct ep93xx_dma_m2p_client *m2p);
50void ep93xx_dma_m2p_submit(struct ep93xx_dma_m2p_client *m2p,
51			   struct ep93xx_dma_buffer *buf);
52void ep93xx_dma_m2p_submit_recursive(struct ep93xx_dma_m2p_client *m2p,
53				     struct ep93xx_dma_buffer *buf);
54void ep93xx_dma_m2p_flush(struct ep93xx_dma_m2p_client *m2p);
55
56#endif /* __ASM_ARCH_DMA_H */
57