1 /* $OpenBSD: gsckbcreg.h,v 1.1 2003/01/31 22:50:19 miod Exp $ */ 2 /* 3 * Copyright (c) 2003, Miodrag Vallat. 4 * All rights reserved. 5 * 6 * Redistribution and use in source and binary forms, with or without 7 * modification, are permitted provided that the following conditions 8 * are met: 9 * 1. Redistributions of source code must retain the above copyright 10 * notice, this list of conditions and the following disclaimer. 11 * 2. Redistributions in binary form must reproduce the above copyright 12 * notice, this list of conditions and the following disclaimer in the 13 * documentation and/or other materials provided with the distribution. 14 * 15 * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR 16 * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES 17 * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. 18 * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, 19 * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT 20 * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF MIND, 21 * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 22 * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 23 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF 24 * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 25 */ 26 27 /* 28 * Register definitions for the GSC PS/2 compatible keyboard/mouse ports. 29 * 30 * These definitions attempt to match <dev/ic/i8042reg.h> names although the 31 * actual wiring is different. 32 */ 33 34 #define KBSTATP 12 /* controller status port (I) */ 35 #define KBS_DIB 0x01 /* data in buffer */ 36 #define KBS_OCMD 0x02 /* output buffer has command */ 37 #define KBS_PERR 0x04 /* parity error */ 38 #define KBS_TERR 0x08 /* transmission error */ 39 40 #define KBCMDP 8 /* controller port (O) */ 41 #define KBCP_ENABLE 0x01 /* enable device */ 42 #define KBCP_DIAG 0x20 /* diagnostic mode control */ 43 44 #define KBDATAP 4 /* data port (I) */ 45 #define KBOUTP 4 /* data port (O) */ 46 47 #define KBIDP 0 /* id port (I) */ 48 #define ID_KBD 0 /* slot is a keyboard port */ 49 #define ID_MOUSE 1 /* slot is a mouse port */ 50 51 #define KBRESETP 0 /* reset port (O) */ 52 53 #define KBMAPSIZE 16 /* size to bus_space_map() */ 54 55 /* 56 * Various command definitions not provided by the existing pckbc code. 57 */ 58 59 #define KBC_ID 0xF2 /* get device identifier */ 60 #define KBR_MOUSE_ID 0x00 /* mouse type */ 61 #define KBR_KBD_ID1 0xAB /* keyboard type */ 62 #define KBR_KBD_ID2 0x83 63 64 #define KB_MAX_RETRANS 5 /* maximum number of command retrans attempts */ 65