2 PS2 Mouse Communication Interface
5 Copyright (c) 2006 - 2007, Intel Corporation
6 All rights reserved. This program and the accompanying materials
7 are licensed and made available under the terms and conditions of the BSD License
8 which accompanies this distribution. The full text of the license may be found at
9 http://opensource.org/licenses/bsd-license.php
11 THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
12 WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
19 #define PS2_PACKET_LENGTH 3
20 #define PS2_SYNC_MASK 0xc
21 #define PS2_SYNC_BYTE 0x8
23 #define IS_PS2_SYNC_BYTE(byte) ((byte & PS2_SYNC_MASK) == PS2_SYNC_BYTE)
25 #define PS2_READ_BYTE_ONE 0
26 #define PS2_READ_DATA_BYTE 1
27 #define PS2_PROCESS_PACKET 2
30 #define BAT_TIMEOUT 500000
35 #define KBC_DATA_PORT 0x60
36 #define KBC_CMD_STS_PORT 0x64
41 #define READ_CMD_BYTE 0x20
42 #define WRITE_CMD_BYTE 0x60
43 #define DISABLE_AUX 0xa7
44 #define ENABLE_AUX 0xa8
45 #define SELF_TEST 0xaa
46 #define DISABLE_KB 0xad
47 #define ENABLE_KB 0xae
48 #define WRITE_AUX_DEV 0xd4
50 #define CMD_SYS_FLAG 0x04
51 #define CMD_KB_STS 0x10
52 #define CMD_KB_DIS 0x10
56 // 8042 Auxiliary Device Command
58 #define SETSF1_CMD 0xe6
59 #define SETSF2_CMD 0xe7
60 #define SETRE_CMD 0xe8
62 #define SETRM_CMD 0xf0
63 #define SETSR_CMD 0xf3
64 #define ENABLE_CMD 0xf4
65 #define DISABLE_CMD 0xf5
66 #define RESET_CMD 0xff
72 #define PS2_RESEND 0xfe
73 #define PS2MOUSE_BAT1 0xaa
74 #define PS2MOUSE_BAT2 0x0
77 // Keyboard Controller Status
79 #define KBC_PARE 0x80 // Parity Error
80 #define KBC_TIM 0x40 // General Time Out
81 #define KBC_AUXB 0x20 // Output buffer for auxiliary device (PS/2):
82 // 0 - Holds keyboard data
83 // 1 - Holds data for auxiliary device
85 #define KBC_KEYL 0x10 // Keyboard lock status:
86 // 0 - keyboard locked
89 #define KBC_CD 0x08 // Command/Data:
90 // 0 - data byte written via port 60h
91 // 1 - command byte written via port 64h
93 #define KBC_SYSF 0x04 // System Flag:
95 // 1 - self-test successful
97 #define KBC_INPB 0x02 // Input Buffer Status :
98 // 0 - input buffer empty
99 // 1 - CPU data in input buffer
101 #define KBC_OUTB 0x01 // Output Buffer Status :
102 // 0 - output buffer empty
103 // 1 - keyboard controller data in output buffer
107 IN EFI_ISA_IO_PROTOCOL
*IsaIo
113 GC_TODO: Add function description
117 IsaIo - GC_TODO: add argument description
121 GC_TODO: add return values
128 IN EFI_ISA_IO_PROTOCOL
*IsaIo
134 GC_TODO: Add function description
138 IsaIo - GC_TODO: add argument description
142 GC_TODO: add return values
149 IN EFI_ISA_IO_PROTOCOL
*IsaIo
155 GC_TODO: Add function description
159 IsaIo - GC_TODO: add argument description
163 GC_TODO: add return values
170 IN EFI_ISA_IO_PROTOCOL
*IsaIo
176 GC_TODO: Add function description
180 IsaIo - GC_TODO: add argument description
184 GC_TODO: add return values
191 IN EFI_ISA_IO_PROTOCOL
*IsaIo
197 GC_TODO: Add function description
201 IsaIo - GC_TODO: add argument description
205 GC_TODO: add return values
212 IN EFI_ISA_IO_PROTOCOL
*IsaIo
,
213 OUT BOOLEAN
*KeyboardEnable
219 GC_TODO: Add function description
223 IsaIo - GC_TODO: add argument description
224 KeyboardEnable - GC_TODO: add argument description
228 GC_TODO: add return values
235 IN EFI_ISA_IO_PROTOCOL
*IsaIo
241 GC_TODO: Add function description
245 IsaIo - GC_TODO: add argument description
249 GC_TODO: add return values
255 PS2MouseSetSampleRate (
256 IN EFI_ISA_IO_PROTOCOL
*IsaIo
,
257 IN MOUSE_SR SampleRate
263 GC_TODO: Add function description
267 IsaIo - GC_TODO: add argument description
268 SampleRate - GC_TODO: add argument description
272 GC_TODO: add return values
278 PS2MouseSetResolution (
279 IN EFI_ISA_IO_PROTOCOL
*IsaIo
,
280 IN MOUSE_RE Resolution
286 GC_TODO: Add function description
290 IsaIo - GC_TODO: add argument description
291 Resolution - GC_TODO: add argument description
295 GC_TODO: add return values
302 IN EFI_ISA_IO_PROTOCOL
*IsaIo
,
309 GC_TODO: Add function description
313 IsaIo - GC_TODO: add argument description
314 Scaling - GC_TODO: add argument description
318 GC_TODO: add return values
325 IN EFI_ISA_IO_PROTOCOL
*IsaIo
331 GC_TODO: Add function description
335 IsaIo - GC_TODO: add argument description
339 GC_TODO: add return values
346 PS2_MOUSE_ABSOLUTE_POINTER_DEV
*MouseAbsolutePointerDev
352 GC_TODO: Add function description
356 MouseDev - GC_TODO: add argument description
360 GC_TODO: add return values
367 IN EFI_ISA_IO_PROTOCOL
*IsaIo
,
369 IN OUT UINTN
*BufSize
,
378 IN EFI_ISA_IO_PROTOCOL
*IsaIo
,
384 IN EFI_ISA_IO_PROTOCOL
*IsaIo
,
390 IN EFI_ISA_IO_PROTOCOL
*IsaIo
,
396 IN EFI_ISA_IO_PROTOCOL
*IsaIo
,
403 IN EFI_ISA_IO_PROTOCOL
*IsaIo
,
409 IN EFI_ISA_IO_PROTOCOL
*IsaIo
,
415 IN EFI_ISA_IO_PROTOCOL
*IsaIo
420 IN EFI_ISA_IO_PROTOCOL
*IsaIo
,
426 IN EFI_ISA_IO_PROTOCOL
*IsaIo
,
430 #endif // _COMMPS2_H_