diff options
author | Ralf Baechle <ralf@linux-mips.org> | 1994-11-28 11:59:19 +0000 |
---|---|---|
committer | <ralf@linux-mips.org> | 1994-11-28 11:59:19 +0000 |
commit | 1513ff9b7899ab588401c89db0e99903dbf5f886 (patch) | |
tree | f69cc81a940a502ea23d664c3ffb2d215a479667 /include/linux/busmouse.h |
Import of Linus's Linux 1.1.68
Diffstat (limited to 'include/linux/busmouse.h')
-rw-r--r-- | include/linux/busmouse.h | 100 |
1 files changed, 100 insertions, 0 deletions
diff --git a/include/linux/busmouse.h b/include/linux/busmouse.h new file mode 100644 index 000000000..33c6ec7a9 --- /dev/null +++ b/include/linux/busmouse.h @@ -0,0 +1,100 @@ +#ifndef _LINUX_BUSMOUSE_H +#define _LINUX_BUSMOUSE_H + +/* + * linux/include/linux/mouse.h: header file for Logitech Bus Mouse driver + * by James Banks + * + * based on information gleamed from various mouse drivers on the net + * + * Heavily modified by David giller (rafetmad@oxy.edu) + * + * Minor modifications for Linux 0.96c-pl1 by Nathan Laredo + * gt7080a@prism.gatech.edu (13JUL92) + * + * Microsoft BusMouse support by Teemu Rantanen (tvr@cs.hut.fi) (02AUG92) + * + * Microsoft Bus Mouse support modified by Derrick Cole (cole@concert.net) + * 8/28/92 + * + * Microsoft Bus Mouse support folded into 0.97pl4 code + * by Peter Cervasio (pete%q106fm.uucp@wupost.wustl.edu) (08SEP92) + * Changes: Logitech and Microsoft support in the same kernel. + * Defined new constants in busmouse.h for MS mice. + * Added int mse_busmouse_type to distinguish busmouse types + * Added a couple of new functions to handle differences in using + * MS vs. Logitech (where the int variable wasn't appropriate). + * + */ + +#define MOUSE_IRQ 5 +#define LOGITECH_BUSMOUSE 0 /* Minor device # for Logitech */ +#define MICROSOFT_BUSMOUSE 2 /* Minor device # for Microsoft */ + +/*--------- LOGITECH BUSMOUSE ITEMS -------------*/ + +#define MSE_DATA_PORT 0x23c +#define MSE_SIGNATURE_PORT 0x23d +#define MSE_CONTROL_PORT 0x23e +#define MSE_INTERRUPT_PORT 0x23e +#define MSE_CONFIG_PORT 0x23f + +#define MSE_ENABLE_INTERRUPTS 0x00 +#define MSE_DISABLE_INTERRUPTS 0x10 + +#define MSE_READ_X_LOW 0x80 +#define MSE_READ_X_HIGH 0xa0 +#define MSE_READ_Y_LOW 0xc0 +#define MSE_READ_Y_HIGH 0xe0 + +/* Magic number used to check if the mouse exists */ +#define MSE_CONFIG_BYTE 0x91 +#define MSE_DEFAULT_MODE 0x90 +#define MSE_SIGNATURE_BYTE 0xa5 + +/* useful Logitech Mouse macros */ + +#define MSE_INT_OFF() outb(MSE_DISABLE_INTERRUPTS, MSE_CONTROL_PORT) +#define MSE_INT_ON() outb(MSE_ENABLE_INTERRUPTS, MSE_CONTROL_PORT) + +/*--------- MICROSOFT BUSMOUSE ITEMS -------------*/ + +#define MS_MSE_DATA_PORT 0x23d +#define MS_MSE_SIGNATURE_PORT 0x23e +#define MS_MSE_CONTROL_PORT 0x23c +#define MS_MSE_CONFIG_PORT 0x23f + +#define MS_MSE_ENABLE_INTERRUPTS 0x11 +#define MS_MSE_DISABLE_INTERRUPTS 0x10 + +#define MS_MSE_READ_BUTTONS 0x00 +#define MS_MSE_READ_X 0x01 +#define MS_MSE_READ_Y 0x02 + +#define MS_MSE_START 0x80 +#define MS_MSE_COMMAND_MODE 0x07 + +/* useful microsoft busmouse macros */ + +#define MS_MSE_INT_OFF() {outb(MS_MSE_COMMAND_MODE, MS_MSE_CONTROL_PORT); \ + outb(MS_MSE_DISABLE_INTERRUPTS, MS_MSE_DATA_PORT);} +#define MS_MSE_INT_ON() {outb(MS_MSE_COMMAND_MODE, MS_MSE_CONTROL_PORT); \ + outb(MS_MSE_ENABLE_INTERRUPTS, MS_MSE_DATA_PORT);} + + +struct mouse_status { + unsigned char buttons; + unsigned char latch_buttons; + int dx; + int dy; + int present; + int ready; + int active; + struct wait_queue *wait; +}; + +/* Function Prototypes */ +extern long mouse_init(long); + +#endif + |