File: /usr/src/linux/include/asm-arm/arch-sa1100/keyboard.h
1 /*
2 * linux/include/asm-arm/arch-sa1100/keyboard.h
3 * Created 16 Dec 1999 by Nicolas Pitre <nico@cam.org>
4 * This file contains the SA1100 architecture specific keyboard definitions
5 */
6
7 #ifndef _SA1100_KEYBOARD_H
8 #define _SA1100_KEYBOARD_H
9
10 #include <linux/config.h>
11
12
13 // #ifdef CONFIG_SA1100_BRUTUS
14 /* need fixing... */
15 #if 0
16
17 extern int Brutus_kbd_translate(unsigned char scancode, unsigned char *keycode,
18 char raw_mode);
19 extern void Brutus_kbd_leds(unsigned char leds);
20 extern void Brutus_kbd_init_hw(void);
21 extern void Brutus_kbd_enable_irq(void);
22 extern void Brutus_kbd_disable_irq(void);
23 extern unsigned char Brutus_kbd_sysrq_xlate[128];
24
25 #define kbd_setkeycode(x...) (-ENOSYS)
26 #define kbd_getkeycode(x...) (-ENOSYS)
27 #define kbd_translate Brutus_kbd_translate
28 #define kbd_unexpected_up(x...) (1)
29 #define kbd_leds Brutus_kbd_leds
30 #define kbd_init_hw Brutus_kbd_init_hw
31 #define kbd_enable_irq Brutus_kbd_enable_irq
32 #define kbd_disable_irq Brutus_kbd_disable_irq
33 #define kbd_sysrq_xlate Brutus_kbd_sysrq_xlate
34
35 #define SYSRQ_KEY 0x54
36
37 #elif CONFIG_SA1100_GRAPHICSCLIENT
38 extern int gc_kbd_translate(unsigned char scancode, unsigned char *keycode, char raw_mode);
39 extern void gc_kbd_leds(unsigned char leds);
40 extern void gc_kbd_init_hw(void);
41 extern void gc_kbd_enable_irq(void);
42 extern void gc_kbd_disable_irq(void);
43 extern unsigned char gc_kbd_sysrq_xlate[128];
44
45 #define kbd_setkeycode(x...) (-ENOSYS)
46 #define kbd_getkeycode(x...) (-ENOSYS)
47 #define kbd_translate gc_kbd_translate
48 #define kbd_unexpected_up(x...) (1)
49 #define kbd_leds gc_kbd_leds
50 #define kbd_init_hw gc_kbd_init_hw
51 #define kbd_enable_irq gc_kbd_enable_irq
52 #define kbd_disable_irq gc_kbd_disable_irq
53 #define kbd_sysrq_xlate gc_kbd_sysrq_xlate
54
55 #elif CONFIG_SA1100_BITSY
56
57 #define kbd_setkeycode(x...) (-ENOSYS)
58 #define kbd_getkeycode(x...) (-ENOSYS)
59 #define kbd_translate(sc_,kc_,rm_) ((*(kc_)=(sc_)),1)
60 #define kbd_unexpected_up(x...) (1)
61 #define kbd_leds(x...) do { } while (0)
62 #define kbd_init_hw(x...) do { } while (0)
63 #define kbd_enable_irq(x...) do { } while (0)
64 #define kbd_disable_irq(x...) do { } while (0)
65
66 #elif 0 //defined(CONFIG_SA1111) /*@@@@@*/
67
68 #define KEYBOARD_IRQ TPRXINT
69 #define DISABLE_KBD_DURING_INTERRUPTS 0
70
71 /* redefine some macros */
72 #ifdef KBD_DATA_REG
73 #undef KBD_DATA_REG
74 #endif
75 #ifdef KBD_STATUS_REG
76 #undef KBD_STATUS_REG
77 #endif
78 #ifdef KBD_CNTL_REG
79 #undef KBD_CNTL_REG
80 #endif
81 #define KBD_DATA_REG KBDDATA
82 #define KBD_STATUS_REG KBDSTAT
83 #define KBD_CNTL_REG KBDCR
84
85 extern int sa1111_setkeycode(unsigned int scancode, unsigned int keycode);
86 extern int sa1111_getkeycode(unsigned int scancode);
87 extern int sa1111_translate(unsigned char scancode, unsigned char *keycode,
88 char raw_mode);
89 extern char sa1111_unexpected_up(unsigned char keycode);
90 extern void sa1111_leds(unsigned char leds);
91 extern void sa1111_init_hw(void);
92 extern unsigned char sa1111_sysrq_xlate[128];
93
94 #define kbd_setkeycode sa1111_setkeycode
95 #define kbd_getkeycode sa1111_getkeycode
96 #define kbd_translate sa1111_translate
97 #define kbd_unexpected_up sa1111_unexpected_up
98 #define kbd_leds sa1111_leds
99 #define kbd_init_hw sa1111_init_hw
100 #define kbd_sysrq_xlate sa1111_sysrq_xlate
101 #define kbd_disable_irq(x...) do{;}while(0)
102 #define kbd_enable_irq(x...) do{;}while(0)
103
104 #define SYSRQ_KEY 0x54
105
106 /* resource allocation */
107 #define kbd_request_region()
108 #define kbd_request_irq(handler) request_irq(KEYBOARD_IRQ, handler, 0, \
109 "keyboard", NULL)
110
111 /* How to access the keyboard macros on this platform. */
112 #define kbd_read_input() (*KBDDATA & 0x00ff)
113 #define kbd_read_status() (*KBDSTAT & 0x01ff)
114 #define kbd_write_output(val) (*KBDDATA = (val))
115 #define kbd_write_command(val) (*KBDCR = (val))
116
117 /* Some stoneage hardware needs delays after some operations. */
118 #define kbd_pause() do {;} while(0)
119
120 /* bit definitions for some registers */
121 #define KBD_CR_ENA (1<<3)
122
123 #define KBD_STAT_RXB (1<<4)
124 #define KBD_STAT_RXF (1<<5)
125 #define KBD_STAT_TXB (1<<6)
126 #define KBD_STAT_TXE (1<<7)
127 #define KBD_STAT_STP (1<<8)
128
129 /*
130 * Machine specific bits for the PS/2 driver
131 */
132
133 #define AUX_IRQ MSRXINT
134
135 #define aux_request_irq(hand, dev_id) \
136 request_irq(AUX_IRQ, hand, SA_SHIRQ, "PS/2 Mouse", dev_id)
137 #define aux_free_irq(dev_id) free_irq(AUX_IRQ, dev_id)
138
139 /* How to access the mouse macros on this platform. */
140 #define mse_read_input() (*MSEDATA & 0x00ff)
141 #define mse_read_status() (*MSESTAT & 0x01ff)
142 #define mse_write_output(val) (*MSEDATA = (val))
143 #define mse_write_command(val) (*MSECR = (val))
144
145 /* bit definitions for some registers */
146 #define MSE_CR_ENA (1<<3)
147
148 #define MSE_STAT_RXB (1<<4)
149 #define MSE_STAT_RXF (1<<5)
150 #define MSE_STAT_TXB (1<<6)
151 #define MSE_STAT_TXE (1<<7)
152 #define MSE_STAT_STP (1<<8)
153
154
155 #else
156
157 /* dummy i.e. no real keyboard */
158 #define kbd_setkeycode(x...) (-ENOSYS)
159 #define kbd_getkeycode(x...) (-ENOSYS)
160 #define kbd_translate(x...) (0)
161 #define kbd_unexpected_up(x...) (1)
162 #define kbd_leds(x...) do {;} while (0)
163 #define kbd_init_hw(x...) do {;} while (0)
164 #define kbd_enable_irq(x...) do {;} while (0)
165 #define kbd_disable_irq(x...) do {;} while (0)
166
167 #endif
168
169
170 /* needed if MAGIC_SYSRQ is enabled for serial console */
171 #ifndef SYSRQ_KEY
172 #define SYSRQ_KEY ((unsigned char)(-1))
173 #define kbd_sysrq_xlate ((unsigned char *)NULL)
174 #endif
175
176
177 #endif /* _SA1100_KEYBOARD_H */
178
179