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
8 * $Id: keyboard.h,v 1.12 1998/09/16 22:52:41 ralf Exp $
10 #ifndef __ASM_MIPS_KEYBOARD_H
11 #define __ASM_MIPS_KEYBOARD_H
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
,
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)
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()
75 #endif /* __ASM_MIPS_KEYBOARD_H */