From d6434e1042f3b0a6dfe1b1f615af369486f9b1fa Mon Sep 17 00:00:00 2001 From: Ralf Baechle Date: Sat, 9 Oct 1999 00:00:47 +0000 Subject: Merge with 2.3.19. --- include/linux/logibusmouse.h | 104 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 104 insertions(+) create mode 100644 include/linux/logibusmouse.h (limited to 'include/linux/logibusmouse.h') diff --git a/include/linux/logibusmouse.h b/include/linux/logibusmouse.h new file mode 100644 index 000000000..ccbf0f8b6 --- /dev/null +++ b/include/linux/logibusmouse.h @@ -0,0 +1,104 @@ +#ifndef _LINUX_BUSMOUSE_H +#define _LINUX_BUSMOUSE_H + +/* + * linux/include/linux/busmouse.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 LOGIBM_BASE 0x23c +#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 LOGIBM_EXTENT 0x4 + +#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 MSBM_BASE 0x23d +#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 MSBM_EXTENT 0x3 + +#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; + wait_queue_head_t wait; + struct fasync_struct *fasyncptr; +}; + +/* Function Prototypes */ + +#endif + -- cgit v1.2.3