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