blob: 9c24f5ef72d8c9881e1982bb5e1032d62838dd68 [file] [log] [blame]
The Android Open Source Project1dc9e472009-03-03 19:28:35 -08001/****************************************************************************
2 ****************************************************************************
3 ***
4 *** This header was automatically generated from a Linux kernel header
5 *** of the same name, to make information necessary for userspace to
6 *** call into the kernel available to libc. It contains only constants,
7 *** structures, and macros generated from the original header, and thus,
8 *** contains no copyrightable information.
9 ***
10 ****************************************************************************
11 ****************************************************************************/
12#ifndef _ASM_DMA_H
13#define _ASM_DMA_H
Ben Cheng4b29af02012-03-07 16:14:53 -080014
The Android Open Source Project1dc9e472009-03-03 19:28:35 -080015#include <linux/spinlock.h>
16#include <asm/io.h>
17#include <linux/delay.h>
Ben Cheng4b29af02012-03-07 16:14:53 -080018
The Android Open Source Project1dc9e472009-03-03 19:28:35 -080019#ifdef HAVE_REALLY_SLOW_DMA_CONTROLLER
20#define dma_outb outb_p
21#else
22#define dma_outb outb
23#endif
Ben Cheng4b29af02012-03-07 16:14:53 -080024
The Android Open Source Project1dc9e472009-03-03 19:28:35 -080025#define dma_inb inb
Ben Cheng4b29af02012-03-07 16:14:53 -080026
The Android Open Source Project1dc9e472009-03-03 19:28:35 -080027#define MAX_DMA_CHANNELS 8
Ben Cheng4b29af02012-03-07 16:14:53 -080028
The Android Open Source Project1dc9e472009-03-03 19:28:35 -080029#define MAX_DMA_ADDRESS (PAGE_OFFSET+0x1000000)
Ben Cheng4b29af02012-03-07 16:14:53 -080030
The Android Open Source Project1dc9e472009-03-03 19:28:35 -080031#define IO_DMA1_BASE 0x00
32#define IO_DMA2_BASE 0xC0
Ben Cheng4b29af02012-03-07 16:14:53 -080033
The Android Open Source Project1dc9e472009-03-03 19:28:35 -080034#define DMA1_CMD_REG 0x08
35#define DMA1_STAT_REG 0x08
36#define DMA1_REQ_REG 0x09
37#define DMA1_MASK_REG 0x0A
38#define DMA1_MODE_REG 0x0B
39#define DMA1_CLEAR_FF_REG 0x0C
40#define DMA1_TEMP_REG 0x0D
41#define DMA1_RESET_REG 0x0D
42#define DMA1_CLR_MASK_REG 0x0E
43#define DMA1_MASK_ALL_REG 0x0F
Ben Cheng4b29af02012-03-07 16:14:53 -080044
The Android Open Source Project1dc9e472009-03-03 19:28:35 -080045#define DMA2_CMD_REG 0xD0
46#define DMA2_STAT_REG 0xD0
47#define DMA2_REQ_REG 0xD2
48#define DMA2_MASK_REG 0xD4
49#define DMA2_MODE_REG 0xD6
50#define DMA2_CLEAR_FF_REG 0xD8
51#define DMA2_TEMP_REG 0xDA
52#define DMA2_RESET_REG 0xDA
53#define DMA2_CLR_MASK_REG 0xDC
54#define DMA2_MASK_ALL_REG 0xDE
Ben Cheng4b29af02012-03-07 16:14:53 -080055
The Android Open Source Project1dc9e472009-03-03 19:28:35 -080056#define DMA_ADDR_0 0x00
57#define DMA_ADDR_1 0x02
58#define DMA_ADDR_2 0x04
59#define DMA_ADDR_3 0x06
60#define DMA_ADDR_4 0xC0
61#define DMA_ADDR_5 0xC4
62#define DMA_ADDR_6 0xC8
63#define DMA_ADDR_7 0xCC
Ben Cheng4b29af02012-03-07 16:14:53 -080064
The Android Open Source Project1dc9e472009-03-03 19:28:35 -080065#define DMA_CNT_0 0x01
66#define DMA_CNT_1 0x03
67#define DMA_CNT_2 0x05
68#define DMA_CNT_3 0x07
69#define DMA_CNT_4 0xC2
70#define DMA_CNT_5 0xC6
71#define DMA_CNT_6 0xCA
72#define DMA_CNT_7 0xCE
Ben Cheng4b29af02012-03-07 16:14:53 -080073
The Android Open Source Project1dc9e472009-03-03 19:28:35 -080074#define DMA_PAGE_0 0x87
75#define DMA_PAGE_1 0x83
76#define DMA_PAGE_2 0x81
77#define DMA_PAGE_3 0x82
78#define DMA_PAGE_5 0x8B
79#define DMA_PAGE_6 0x89
80#define DMA_PAGE_7 0x8A
Ben Cheng4b29af02012-03-07 16:14:53 -080081
The Android Open Source Project1dc9e472009-03-03 19:28:35 -080082#define DMA_MODE_READ 0x44
83#define DMA_MODE_WRITE 0x48
84#define DMA_MODE_CASCADE 0xC0
Ben Cheng4b29af02012-03-07 16:14:53 -080085
The Android Open Source Project1dc9e472009-03-03 19:28:35 -080086#define DMA_AUTOINIT 0x10
Ben Cheng4b29af02012-03-07 16:14:53 -080087
The Android Open Source Project1dc9e472009-03-03 19:28:35 -080088#define isa_dma_bridge_buggy (0)
Ben Cheng4b29af02012-03-07 16:14:53 -080089
The Android Open Source Project1dc9e472009-03-03 19:28:35 -080090#endif