xref: /openbsd/sys/dev/ic/i8042reg.h (revision 09467b48)
1 /*	$OpenBSD: i8042reg.h,v 1.9 2015/05/05 16:27:20 shadchin Exp $	*/
2 /*	$NetBSD: i8042reg.h,v 1.7 1998/01/18 14:41:37 drochner Exp $	*/
3 
4 #define	KBSTATP		4	/* kbd controller status port (I) */
5 #define	 KBS_DIB	0x01	/* kbd data in buffer */
6 #define	 KBS_IBF	0x02	/* kbd input buffer low */
7 #define	 KBS_WARM	0x04	/* kbd input buffer low */
8 #define	 KBS_OCMD	0x08	/* kbd output buffer has command */
9 #define	 KBS_NOSEC	0x10	/* kbd security lock not engaged */
10 #define	 KBS_AUXDATA	0x20	/* kbd data in buffer from aux port */
11 #define	 KBS_RERR	0x40	/* kbd receive error */
12 #define	 KBS_PERR	0x80	/* kbd parity error */
13 
14 #define	KBCMDP		4	/* kbd controller port (O) */
15 #define	 KBC_RAMREAD	0x20	/* read from RAM */
16 #define	 KBC_RAMWRITE	0x60	/* write to RAM */
17 #define	 KBC_AUXDISABLE	0xa7	/* disable auxiliary port */
18 #define	 KBC_AUXENABLE	0xa8	/* enable auxiliary port */
19 #define	 KBC_AUXTEST	0xa9	/* test auxiliary port */
20 #define	 KBC_CMDWOUT	0xd1	/* write output port */
21 #define	 KBC_KBDECHO	0xd2	/* echo to keyboard port */
22 #define	 KBC_AUXECHO	0xd3	/* echo to auxiliary port */
23 #define	 KBC_AUXWRITE	0xd4	/* write to auxiliary port */
24 #define	 KBC_SELFTEST	0xaa	/* start self-test */
25 #define	 KBC_KBDTEST	0xab	/* test keyboard port */
26 #define	 KBC_KBDDISABLE	0xad	/* disable keyboard port */
27 #define	 KBC_KBDENABLE	0xae	/* enable keyboard port */
28 #define	 KBC_READID	0xf2	/* read device id */
29 #define	 KBC_PULSE0	0xfe	/* pulse output bit 0 */
30 #define	 KBC_PULSE1	0xfd	/* pulse output bit 1 */
31 #define	 KBC_PULSE2	0xfb	/* pulse output bit 2 */
32 #define	 KBC_PULSE3	0xf7	/* pulse output bit 3 */
33 
34 #define	KBDATAP		0	/* kbd data port (I) */
35 #define	KBOUTP		0	/* kbd data port (O) */
36 
37 #define	K_RDCMDBYTE	0x20
38 #define	K_LDCMDBYTE	0x60
39 
40 #define	KC8_TRANS	0x40	/* convert to old scan codes */
41 #define	KC8_MDISABLE	0x20	/* disable mouse */
42 #define	KC8_KDISABLE	0x10	/* disable keyboard */
43 #define	KC8_IGNSEC	0x08	/* ignore security lock */
44 #define	KC8_CPU		0x04	/* exit from protected mode reset */
45 #define	KC8_MENABLE	0x02	/* enable mouse interrupt */
46 #define	KC8_KENABLE	0x01	/* enable keyboard interrupt */
47 #define	CMDBYTE		(KC8_TRANS|KC8_CPU|KC8_MENABLE|KC8_KENABLE)
48 
49 #define	KCID_KBD1	0xAB
50 #define	KCID_KBD2	0x83
51 #define	KCID_MOUSE	0x00
52