special usb hub handling, IDE disks, and retries all over the place
[linux-2.4.git] / include / asm-arm / arch-sa1100 / cerf.h
1 #ifndef _INCLUDE_CERF_H_
2 #define _INCLUDE_CERF_H_
3
4 #include <linux/config.h>
5
6 #ifdef CONFIG_SA1100_CERF_CPLD
7
8
9 // Map sa1100fb.c to sa1100_frontlight.c - Not pretty, but necessary.
10 #define CERF_BACKLIGHT_ENABLE   sa1100_fl_enable
11 #define CERF_BACKLIGHT_DISABLE  sa1100_fl_disable
12
13 //
14 // IO Pins for devices
15 //
16
17 #define CERF_PDA_CPLD             0xf1000000
18 #define CERF_PDA_CPLD_WRCLRINT    (0x0)
19 #define CERF_PDA_CPLD_BACKLIGHT   (0x2)
20 #define CERF_PDA_CPLD_SOUND_FREQ  (0x4)
21 #define CERF_PDA_CPLD_KEYPAD_A    (0x6)
22 #define CERF_PDA_CPLD_BATTFAULT   (0x8)
23 #define CERF_PDA_CPLD_KEYPAD_B    (0xa)
24 #define CERF_PDA_CPLD_SOUND_ENA   (0xc)
25 #define CERF_PDA_CPLD_SOUND_RESET (0xe)
26
27 #define GPIO_CF_BVD2              GPIO_GPIO (5)
28 #define GPIO_CF_BVD1              GPIO_GPIO (6)
29 #define GPIO_CF_RESET             GPIO_GPIO (7)
30 #define GPIO_CF_IRQ               GPIO_GPIO (8)
31 #define GPIO_CF_CD                GPIO_GPIO (9)
32
33 #define GPIO_PWR_SHUTDOWN         GPIO_GPIO (25)
34
35 #define UCB1200_GPIO_CONT_CS      0x0001
36 #define UCB1200_GPIO_CONT_DOWN    0x0002
37 #define UCB1200_GPIO_CONT_INC     0x0004
38 #define UCB1200_GPIO_CONT_ENA     0x0008
39 #define UCB1200_GPIO_LCD_RESET    0x0010
40 #define UCB1200_GPIO_IRDA_ENABLE  0x0020
41 #define UCB1200_GPIO_BT_ENABLE    0x0040
42 #define UCB1200_GPIO_L3_DATA      0x0080
43 #define UCB1200_GPIO_L3_CLOCK     0x0100
44 #define UCB1200_GPIO_L3_MODE      0x0200
45
46 //
47 // IRQ for devices
48 //
49
50 #define IRQ_UCB1200_CONT_CS     IRQ_UCB1200_IO0
51 #define IRQ_UCB1200_CONT_DOWN   IRQ_UCB1200_IO1
52 #define IRQ_UCB1200_CONT_INC    IRQ_UCB1200_IO2
53 #define IRQ_UCB1200_CONT_ENA    IRQ_UCB1200_IO3
54 #define IRQ_UCB1200_LCD_RESET   IRQ_UCB1200_IO4
55 #define IRQ_UCB1200_IRDA_ENABLE IRQ_UCB1200_IO5
56 #define IRQ_UCB1200_BT_ENABLE   IRQ_UCB1200_IO6
57 #define IRQ_UCB1200_L3_DATA     IRQ_UCB1200_IO7
58 #define IRQ_UCB1200_L3_CLOCK    IRQ_UCB1200_IO8
59 #define IRQ_UCB1200_L3_MODE     IRQ_UCB1200_IO9
60
61 #define IRQ_GPIO_CF_BVD2        IRQ_GPIO5
62 #define IRQ_GPIO_CF_BVD1        IRQ_GPIO6
63 #define IRQ_GPIO_CF_IRQ         IRQ_GPIO8
64 #define IRQ_GPIO_CF_CD          IRQ_GPIO9
65
66 //
67 // Device parameters
68 //
69
70 #define CERF_PDA_CPLD_SOUND_FREQ_8000  (0x01)
71 #define CERF_PDA_CPLD_SOUND_FREQ_11025 (0x05)
72 #define CERF_PDA_CPLD_SOUND_FREQ_16000 (0x02)
73 #define CERF_PDA_CPLD_SOUND_FREQ_22050 (0x06)
74 #define CERF_PDA_CPLD_SOUND_FREQ_32000 (0x03)
75 #define CERF_PDA_CPLD_SOUND_FREQ_44100 (0x07)
76 #define CERF_PDA_CPLD_SOUND_FREQ_48000 (0x0b)
77
78 //
79 // General Functions
80 //
81
82 #define CERF_PDA_CPLD_Get(x, y)      (*((char*)(CERF_PDA_CPLD + (x))) & (y))
83 #define CERF_PDA_CPLD_Set(x, y, z)   (*((char*)(CERF_PDA_CPLD + (x))) = (*((char*)(CERF_PDA_CPLD + (x))) & ~(z)) | (y))
84 #define CERF_PDA_CPLD_UnSet(x, y, z) (*((char*)(CERF_PDA_CPLD + (x))) = (*((char*)(CERF_PDA_CPLD + (x))) & ~(z)) & ~(y))
85
86
87 #else // CONFIG_SA1100_CERF_CPLD
88
89
90 #define GPIO_CF_BVD2            GPIO_GPIO (19)
91 #define GPIO_CF_BVD1            GPIO_GPIO (20)
92 #define GPIO_CF_RESET           0
93 #define GPIO_CF_IRQ             GPIO_GPIO (22)
94 #define GPIO_CF_CD              GPIO_GPIO (23)
95
96 #define GPIO_LCD_RESET          GPIO_GPIO (15)
97
98 #define IRQ_GPIO_CF_BVD2        IRQ_GPIO19
99 #define IRQ_GPIO_CF_BVD1        IRQ_GPIO20
100 #define IRQ_GPIO_CF_IRQ         IRQ_GPIO22
101 #define IRQ_GPIO_CF_CD          IRQ_GPIO23
102
103
104 #endif // CONFIG_SA1100_CERF_CPLD
105
106
107 #define GPIO_UCB1200_IRQ        GPIO_GPIO (18)
108 #define IRQ_GPIO_UCB1200_IRQ    IRQ_GPIO18
109
110 #endif // _INCLUDE_CERF_H_