sh: Add maple bus support for the SEGA Dreamcast.
[linux-2.6.git] / include / asm-sh / dreamcast / maple.h
1 #ifndef __ASM_MAPLE_H
2 #define __ASM_MAPLE_H
3
4 #define MAPLE_PORTS 4
5 #define MAPLE_PNP_INTERVAL HZ
6 #define MAPLE_MAXPACKETS 8
7 #define MAPLE_DMA_ORDER 14
8 #define MAPLE_DMA_SIZE (1 << MAPLE_DMA_ORDER)
9 #define MAPLE_DMA_PAGES ((MAPLE_DMA_ORDER > PAGE_SHIFT) ? \
10                           MAPLE_DMA_ORDER - PAGE_SHIFT : 0)
11
12 /* Maple Bus registers */
13 #define MAPLE_BASE     0xa05f6c00
14 #define MAPLE_DMAADDR  (MAPLE_BASE+0x04)
15 #define MAPLE_TRIGTYPE (MAPLE_BASE+0x10)
16 #define MAPLE_ENABLE   (MAPLE_BASE+0x14)
17 #define MAPLE_STATE    (MAPLE_BASE+0x18)
18 #define MAPLE_SPEED    (MAPLE_BASE+0x80)
19 #define MAPLE_RESET    (MAPLE_BASE+0x8c)
20
21 #define MAPLE_MAGIC    0x6155404f
22 #define MAPLE_2MBPS    0
23 #define MAPLE_TIMEOUT(n) ((n)<<15)
24
25 /* Function codes */
26 #define MAPLE_FUNC_CONTROLLER 0x001
27 #define MAPLE_FUNC_MEMCARD    0x002
28 #define MAPLE_FUNC_LCD        0x004
29 #define MAPLE_FUNC_CLOCK      0x008
30 #define MAPLE_FUNC_MICROPHONE 0x010
31 #define MAPLE_FUNC_ARGUN      0x020
32 #define MAPLE_FUNC_KEYBOARD   0x040
33 #define MAPLE_FUNC_LIGHTGUN   0x080
34 #define MAPLE_FUNC_PURUPURU   0x100
35 #define MAPLE_FUNC_MOUSE      0x200
36
37 #endif /* __ASM_MAPLE_H */