/*
- * linux/include/asm-arm/arch-iop80310/dma.h
+ * linux/include/asm-arm/arch-iop3xx/dma.h
*
- * Copyright (C) 2001 MontaVista Software, Inc.
+ * Copyright (C) 2004 Intel Corp.
*
* 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 _IOP310_DMA_H_
-#define _IOP310_DMA_H_
-
-/* 2 DMA on primary PCI and 1 on secondary for 80310 */
-#define MAX_IOP310_DMA_CHANNEL 3
-#define MAX_DMA_DESC 64 /*128 */
-
-/*
- * Make the generic DMA bits go away since we don't use it
- */
-#define MAX_DMA_CHANNELS 0
+#ifndef _IOP3XX_DMA_H_P
+#define _IOP3XX_DMA_H_P
#define MAX_DMA_ADDRESS 0xffffffff
-#define IOP310_DMA_P0 0
-#define IOP310_DMA_P1 1
-#define IOP310_DMA_S0 2
-
-#define DMA_MOD_READ 0x0001
-#define DMA_MOD_WRITE 0x0002
-#define DMA_MOD_CACHED 0x0004
-#define DMA_MOD_NONCACHED 0x0008
-
-
-#define DMA_DESC_DONE 0x0010
-#define DMA_INCOMPLETE 0x0020
-#define DMA_HOLD 0x0040
-#define DMA_END_CHAIN 0x0080
-#define DMA_COMPLETE 0x0100
-#define DMA_NOTIFY 0x0200
-#define DMA_NEW_HEAD 0x0400
-
-#define DMA_USER_MASK (DMA_NOTIFY | DMA_INCOMPLETE | \
- DMA_HOLD | DMA_COMPLETE)
-
-#define DMA_DCR_DAC 0x00000020 /* Dual Addr Cycle Enab */
-#define DMA_DCR_IE 0x00000010 /* Interrupt Enable */
-#define DMA_DCR_PCI_IOR 0x00000002 /* I/O Read */
-#define DMA_DCR_PCI_IOW 0x00000003 /* I/O Write */
-#define DMA_DCR_PCI_MR 0x00000006 /* Memory Read */
-#define DMA_DCR_PCI_MW 0x00000007 /* Memory Write */
-#define DMA_DCR_PCI_CR 0x0000000A /* Configuration Read */
-#define DMA_DCR_PCI_CW 0x0000000B /* Configuration Write */
-#define DMA_DCR_PCI_MRM 0x0000000C /* Memory Read Multiple */
-#define DMA_DCR_PCI_MRL 0x0000000E /* Memory Read Line */
-#define DMA_DCR_PCI_MWI 0x0000000F /* Mem Write and Inval */
-
-#define DMA_USER_CMD_IE 0x00000001 /* user request int */
-#define DMA_USER_END_CHAIN 0x00000002 /* end of sgl chain flag */
-
-/* ATU defines */
-#define IOP310_ATUCR_PRIM_OUT_ENAB /* Configuration */ 0x00000002
-#define IOP310_ATUCR_DIR_ADDR_ENAB /* Configuration */ 0x00000080
-
-
-typedef void (*dma_callback_t) (void *buf_context);
-/*
- * DMA Descriptor
- */
-typedef struct _dma_desc
-{
- u32 NDAR; /* next descriptor address */
- u32 PDAR; /* PCI address */
- u32 PUADR; /* upper PCI address */
- u32 LADR; /* local address */
- u32 BC; /* byte count */
- u32 DC; /* descriptor control */
-} dma_desc_t;
-
-typedef struct _dma_sgl
-{
- dma_desc_t dma_desc; /* DMA descriptor pointer */
- u32 status; /* descriptor status */
- void *data; /* local virt */
- struct _dma_sgl *next; /* next descriptor */
-} dma_sgl_t;
-
-/* dma sgl head */
-typedef struct _dma_head
-{
- u32 total; /* total elements in SGL */
- u32 status; /* status of sgl */
- u32 mode; /* read or write mode */
- dma_sgl_t *list; /* pointer to list */
- dma_callback_t callback; /* callback function */
-} dma_head_t;
-
-/* function prototypes */
-int dma_request(dmach_t, const char *);
-int dma_queue_buffer(dmach_t, dma_head_t *);
-int dma_suspend(dmach_t);
-int dma_resume(dmach_t);
-int dma_flush_all(dmach_t);
-void dma_free(dmach_t);
-void dma_set_irq_threshold(dmach_t, int);
-dma_sgl_t *dma_get_buffer(dmach_t, int);
-void dma_return_buffer(dmach_t, dma_sgl_t *);
-
-#endif /* _ASM_ARCH_DMA_H */
+#endif /* _ASM_ARCH_DMA_H_P */