Import 2.3.18pre1
[davej-history.git] / include / asm-mips / keyboard.h
blob0cd00b7b816bf73ec6d21fcd2db56ceada188c67
1 /*
2 * CPU specific parts of the keyboard driver
4 * This file is subject to the terms and conditions of the GNU General Public
5 * License. See the file "COPYING" in the main directory of this archive
6 * for more details.
8 * $Id: keyboard.h,v 1.12 1998/09/16 22:52:41 ralf Exp $
9 */
10 #ifndef __ASM_MIPS_KEYBOARD_H
11 #define __ASM_MIPS_KEYBOARD_H
13 #ifdef __KERNEL__
15 #include <linux/delay.h>
16 #include <linux/ioport.h>
17 #include <asm/bootinfo.h>
19 #define DISABLE_KBD_DURING_INTERRUPTS 0
21 extern int pckbd_setkeycode(unsigned int scancode, unsigned int keycode);
22 extern int pckbd_getkeycode(unsigned int scancode);
23 extern int pckbd_translate(unsigned char scancode, unsigned char *keycode,
24 char raw_mode);
25 extern char pckbd_unexpected_up(unsigned char keycode);
26 extern void pckbd_leds(unsigned char leds);
27 extern void pckbd_init_hw(void);
28 extern unsigned char pckbd_sysrq_xlate[128];
30 #define kbd_setkeycode pckbd_setkeycode
31 #define kbd_getkeycode pckbd_getkeycode
32 #define kbd_translate pckbd_translate
33 #define kbd_unexpected_up pckbd_unexpected_up
34 #define kbd_leds pckbd_leds
35 #define kbd_init_hw pckbd_init_hw
36 #define kbd_sysrq_xlate pckbd_sysrq_xlate
38 #define SYSRQ_KEY 0x54
40 /* Some stoneage hardware needs delays after some operations. */
41 #define kbd_pause() do { } while(0)
43 struct kbd_ops {
44 /* Keyboard driver resource allocation */
45 void (*kbd_request_region)(void);
46 int (*kbd_request_irq)(void (*handler)(int, void *, struct pt_regs *));
48 /* PSaux driver resource managment */
49 int (*aux_request_irq)(void (*handler)(int, void *, struct pt_regs *));
50 void (*aux_free_irq)(void);
52 /* Methods to access the keyboard processor's I/O registers */
53 unsigned char (*kbd_read_input)(void);
54 void (*kbd_write_output)(unsigned char val);
55 void (*kbd_write_command)(unsigned char val);
56 unsigned char (*kbd_read_status)(void);
59 extern struct kbd_ops *kbd_ops;
61 /* Do the actual calls via kbd_ops vector */
62 #define kbd_request_region() kbd_ops->kbd_request_region()
63 #define kbd_request_irq(handler) kbd_ops->kbd_request_irq(handler)
65 #define aux_request_irq(hand, dev_id) kbd_ops->aux_request_irq(hand)
66 #define aux_free_irq(dev_id) kbd_ops->aux_free_irq()
68 #define kbd_read_input() kbd_ops->kbd_read_input()
69 #define kbd_write_output(val) kbd_ops->kbd_write_output(val)
70 #define kbd_write_command(val) kbd_ops->kbd_write_command(val)
71 #define kbd_read_status() kbd_ops->kbd_read_status()
73 #endif /* __KERNEL */
75 #endif /* __ASM_MIPS_KEYBOARD_H */