#include <asm/system.h>
 #include <asm/irq.h>
 #include <mach/hardware.h>
-#include <mach/dma.h>
 #include <mach/dma-mx1-mx2.h>
 
 #define DMA_DCR     0x00               /* Control Register */
        void (*err_handler) (int, void *, int errcode);
        void (*prog_handler) (int, void *, struct scatterlist *);
        void *data;
-       dmamode_t  dma_mode;
+       unsigned int  dma_mode;
        struct scatterlist *sg;
        unsigned int resbytes;
        int dma_num;
 int
 imx_dma_setup_single(int channel, dma_addr_t dma_address,
                     unsigned int dma_length, unsigned int dev_addr,
-                    dmamode_t dmamode)
+                    unsigned int dmamode)
 {
        struct imx_dma_channel *imxdma = &imx_dma_channels[channel];
 
 imx_dma_setup_sg(int channel,
                 struct scatterlist *sg, unsigned int sgcount,
                 unsigned int dma_length, unsigned int dev_addr,
-                dmamode_t dmamode)
+                unsigned int dmamode)
 {
        struct imx_dma_channel *imxdma = &imx_dma_channels[channel];
 
 
  * MA 02110-1301, USA.
  */
 
-#include <mach/dma.h>
-
 #ifndef __ASM_ARCH_MXC_DMA_H
 #define __ASM_ARCH_MXC_DMA_H
 
 #define IMX_DMA_CHANNELS  16
 
+#define DMA_MODE_READ          0
+#define DMA_MODE_WRITE         1
+#define DMA_MODE_MASK          1
+
 #define DMA_BASE IO_ADDRESS(DMA_BASE_ADDR)
 
 #define IMX_DMA_MEMSIZE_32     (0 << 4)
 int
 imx_dma_setup_single(int channel, dma_addr_t dma_address,
                unsigned int dma_length, unsigned int dev_addr,
-               dmamode_t dmamode);
+               unsigned int dmamode);
 
 int
 imx_dma_setup_sg(int channel, struct scatterlist *sg,
                unsigned int sgcount, unsigned int dma_length,
-               unsigned int dev_addr, dmamode_t dmamode);
+               unsigned int dev_addr, unsigned int dmamode);
 
 int
 imx_dma_setup_handlers(int channel,