1 /* $Id: keyboard.h,v 1.1 1999/08/19 22:56:34 ralf Exp $
2 *
3 * This file is subject to the terms and conditions of the GNU General Public
4 * License. See the file "COPYING" in the main directory of this archive
5 * for more details.
6 *
7 * Copyright (C) 1994 - 1999 Ralf Baechle
8 */
9 #ifndef _ASM_KEYBOARD_H
10 #define _ASM_KEYBOARD_H
11
12 #ifdef __KERNEL__
13
14 #include <linux/delay.h>
15 #include <linux/ioport.h>
16 #include <asm/bootinfo.h>
17
18 #define DISABLE_KBD_DURING_INTERRUPTS 0
19
20 extern int pckbd_setkeycode(unsigned int scancode, unsigned int keycode);
21 extern int pckbd_getkeycode(unsigned int scancode);
22 extern int pckbd_translate(unsigned char scancode, unsigned char *keycode,
23 char raw_mode);
24 extern char pckbd_unexpected_up(unsigned char keycode);
25 extern void pckbd_leds(unsigned char leds);
26 extern void pckbd_init_hw(void);
27 extern unsigned char pckbd_sysrq_xlate[128];
28
29 #define kbd_setkeycode pckbd_setkeycode
30 #define kbd_getkeycode pckbd_getkeycode
31 #define kbd_translate pckbd_translate
32 #define kbd_unexpected_up pckbd_unexpected_up
33 #define kbd_leds pckbd_leds
34 #define kbd_init_hw pckbd_init_hw
35 #define kbd_sysrq_xlate pckbd_sysrq_xlate
36
37 #define SYSRQ_KEY 0x54
38
39 /* Some stoneage hardware needs delays after some operations. */
40 #define kbd_pause() do { } while(0)
41
42 struct kbd_ops {
43 /* Keyboard driver resource allocation */
44 void (*kbd_request_region)(void);
45 int (*kbd_request_irq)(void (*handler)(int, void *, struct pt_regs *));
46
47 /* PSaux driver resource managment */
48 int (*aux_request_irq)(void (*handler)(int, void *, struct pt_regs *));
49 void (*aux_free_irq)(void);
50
51 /* Methods to access the keyboard processor's I/O registers */
52 unsigned char (*kbd_read_input)(void);
53 void (*kbd_write_output)(unsigned char val);
54 void (*kbd_write_command)(unsigned char val);
55 unsigned char (*kbd_read_status)(void);
56 };
57
58 extern struct kbd_ops *kbd_ops;
59
60 /* Do the actual calls via kbd_ops vector */
61 #define kbd_request_region() kbd_ops->kbd_request_region()
62 #define kbd_request_irq(handler) kbd_ops->kbd_request_irq(handler)
63
64 #define aux_request_irq(hand, dev_id) kbd_ops->aux_request_irq(hand)
65 #define aux_free_irq(dev_id) kbd_ops->aux_free_irq()
66
67 #define kbd_read_input() kbd_ops->kbd_read_input()
68 #define kbd_write_output(val) kbd_ops->kbd_write_output(val)
69 #define kbd_write_command(val) kbd_ops->kbd_write_command(val)
70 #define kbd_read_status() kbd_ops->kbd_read_status()
71
72 #endif /* __KERNEL */
73
74 #endif /* _ASM_KEYBOARD_H */
75
This page was automatically generated by the
LXR engine.
Visit the LXR main site for more
information.