1 /*        $NetBSD: i8042reg.h,v 1.8 2002/01/31 13:25:20 uwe Exp $     */
2 
3 #define   KBSTATP             4         /* kbd controller status port (I) */
4 #define    KBS_DIB  0x01      /* kbd data in buffer */
5 #define    KBS_IBF  0x02      /* kbd input buffer low */
6 #define    KBS_WARM 0x04      /* kbd system flag */
7 #define    KBS_OCMD 0x08      /* kbd output buffer has command */
8 #define    KBS_NOSEC          0x10      /* kbd security lock not engaged */
9 #define    KBS_TERR 0x20      /* kbd transmission error */
10 #define    KBS_RERR 0x40      /* kbd receive error */
11 #define    KBS_PERR 0x80      /* kbd parity error */
12 
13 #define   KBCMDP              4         /* kbd controller port (O) */
14 #define    KBC_RAMREAD        0x20      /* read from RAM */
15 #define    KBC_RAMWRITE       0x60      /* write to RAM */
16 #define    KBC_AUXDISABLE     0xa7      /* disable auxiliary port */
17 #define    KBC_AUXENABLE      0xa8      /* enable auxiliary port */
18 #define    KBC_AUXTEST        0xa9      /* test auxiliary port */
19 #define    KBC_KBDECHO        0xd2      /* echo to keyboard port */
20 #define    KBC_AUXECHO        0xd3      /* echo to auxiliary port */
21 #define    KBC_AUXWRITE       0xd4      /* write to auxiliary port */
22 #define    KBC_SELFTEST       0xaa      /* start self-test */
23 #define    KBC_KBDTEST        0xab      /* test keyboard port */
24 #define    KBC_KBDDISABLE     0xad      /* disable keyboard port */
25 #define    KBC_KBDENABLE      0xae      /* enable keyboard port */
26 #define    KBC_PULSE0         0xfe      /* pulse output bit 0 */
27 #define    KBC_PULSE1         0xfd      /* pulse output bit 1 */
28 #define    KBC_PULSE2         0xfb      /* pulse output bit 2 */
29 #define    KBC_PULSE3         0xf7      /* pulse output bit 3 */
30 
31 #define   KBDATAP             0         /* kbd data port (I) */
32 #define   KBOUTP              0         /* kbd data port (O) */
33 
34 #define   K_RDCMDBYTE         0x20
35 #define   K_LDCMDBYTE         0x60
36 
37 #define   KC8_TRANS 0x40      /* convert to old scan codes */
38 #define   KC8_MDISABLE        0x20      /* disable mouse */
39 #define   KC8_KDISABLE        0x10      /* disable keyboard */
40 #define   KC8_IGNSEC          0x08      /* ignore security lock */
41 #define   KC8_CPU             0x04      /* exit from protected mode reset */
42 #define   KC8_MENABLE         0x02      /* enable mouse interrupt */
43 #define   KC8_KENABLE         0x01      /* enable keyboard interrupt */
44 #define   CMDBYTE             (KC8_TRANS|KC8_CPU|KC8_MENABLE|KC8_KENABLE)
45