3 Copyright (c) 2006 - 2007, Intel Corporation. All rights reserved.
4 This software and associated documentation (if any) is furnished
5 under a license and may only be used or copied in accordance
6 with the terms of the license. Except as permitted by such
7 license, no part of this software or documentation may be
8 reproduced, stored in a retrieval system, or transmitted in any
9 form or by any means without the express written consent of
19 PS2 Mouse Communication Interface
30 // Include common header file for this module.
32 #include "CommonHeader.h"
34 #define PS2_PACKET_LENGTH 3
35 #define PS2_SYNC_MASK 0xc
36 #define PS2_SYNC_BYTE 0x8
38 #define IS_PS2_SYNC_BYTE(byte) ((byte & PS2_SYNC_MASK) == PS2_SYNC_BYTE)
40 #define PS2_READ_BYTE_ONE 0
41 #define PS2_READ_DATA_BYTE 1
42 #define PS2_PROCESS_PACKET 2
45 #define BAT_TIMEOUT 500000
50 #define KBC_DATA_PORT 0x60
51 #define KBC_CMD_STS_PORT 0x64
56 #define READ_CMD_BYTE 0x20
57 #define WRITE_CMD_BYTE 0x60
58 #define DISABLE_AUX 0xa7
59 #define ENABLE_AUX 0xa8
60 #define SELF_TEST 0xaa
61 #define DISABLE_KB 0xad
62 #define ENABLE_KB 0xae
63 #define WRITE_AUX_DEV 0xd4
65 #define CMD_SYS_FLAG 0x04
66 #define CMD_KB_STS 0x10
67 #define CMD_KB_DIS 0x10
71 // 8042 Auxiliary Device Command
73 #define SETSF1_CMD 0xe6
74 #define SETSF2_CMD 0xe7
75 #define SETRE_CMD 0xe8
77 #define SETRM_CMD 0xf0
78 #define SETSR_CMD 0xf3
79 #define ENABLE_CMD 0xf4
80 #define DISABLE_CMD 0xf5
81 #define RESET_CMD 0xff
87 #define PS2_RESEND 0xfe
88 #define PS2MOUSE_BAT1 0xaa
89 #define PS2MOUSE_BAT2 0x0
92 // Keyboard Controller Status
94 #define KBC_PARE 0x80 // Parity Error
95 #define KBC_TIM 0x40 // General Time Out
96 #define KBC_AUXB 0x20 // Output buffer for auxiliary device (PS/2):
97 // 0 - Holds keyboard data
98 // 1 - Holds data for auxiliary device
100 #define KBC_KEYL 0x10 // Keyboard lock status:
101 // 0 - keyboard locked
104 #define KBC_CD 0x08 // Command/Data:
105 // 0 - data byte written via port 60h
106 // 1 - command byte written via port 64h
108 #define KBC_SYSF 0x04 // System Flag:
109 // 0 - power-on reset
110 // 1 - self-test successful
112 #define KBC_INPB 0x02 // Input Buffer Status :
113 // 0 - input buffer empty
114 // 1 - CPU data in input buffer
116 #define KBC_OUTB 0x01 // Output Buffer Status :
117 // 0 - output buffer empty
118 // 1 - keyboard controller data in output buffer
122 IN EFI_ISA_IO_PROTOCOL
*IsaIo
128 GC_TODO: Add function description
132 IsaIo - GC_TODO: add argument description
136 GC_TODO: add return values
143 IN EFI_ISA_IO_PROTOCOL
*IsaIo
149 GC_TODO: Add function description
153 IsaIo - GC_TODO: add argument description
157 GC_TODO: add return values
164 IN EFI_ISA_IO_PROTOCOL
*IsaIo
170 GC_TODO: Add function description
174 IsaIo - GC_TODO: add argument description
178 GC_TODO: add return values
185 IN EFI_ISA_IO_PROTOCOL
*IsaIo
191 GC_TODO: Add function description
195 IsaIo - GC_TODO: add argument description
199 GC_TODO: add return values
206 IN EFI_ISA_IO_PROTOCOL
*IsaIo
212 GC_TODO: Add function description
216 IsaIo - GC_TODO: add argument description
220 GC_TODO: add return values
227 IN EFI_ISA_IO_PROTOCOL
*IsaIo
,
228 OUT BOOLEAN
*KeyboardEnable
234 GC_TODO: Add function description
238 IsaIo - GC_TODO: add argument description
239 KeyboardEnable - GC_TODO: add argument description
243 GC_TODO: add return values
250 IN EFI_ISA_IO_PROTOCOL
*IsaIo
256 GC_TODO: Add function description
260 IsaIo - GC_TODO: add argument description
264 GC_TODO: add return values
270 PS2MouseSetSampleRate (
271 IN EFI_ISA_IO_PROTOCOL
*IsaIo
,
272 IN MOUSE_SR SampleRate
278 GC_TODO: Add function description
282 IsaIo - GC_TODO: add argument description
283 SampleRate - GC_TODO: add argument description
287 GC_TODO: add return values
293 PS2MouseSetResolution (
294 IN EFI_ISA_IO_PROTOCOL
*IsaIo
,
295 IN MOUSE_RE Resolution
301 GC_TODO: Add function description
305 IsaIo - GC_TODO: add argument description
306 Resolution - GC_TODO: add argument description
310 GC_TODO: add return values
317 IN EFI_ISA_IO_PROTOCOL
*IsaIo
,
324 GC_TODO: Add function description
328 IsaIo - GC_TODO: add argument description
329 Scaling - GC_TODO: add argument description
333 GC_TODO: add return values
340 IN EFI_ISA_IO_PROTOCOL
*IsaIo
346 GC_TODO: Add function description
350 IsaIo - GC_TODO: add argument description
354 GC_TODO: add return values
361 PS2_MOUSE_DEV
*MouseDev
367 GC_TODO: Add function description
371 MouseDev - GC_TODO: add argument description
375 GC_TODO: add return values
382 IN EFI_ISA_IO_PROTOCOL
*IsaIo
,
384 IN OUT UINTN
*BufSize
,
393 IN EFI_ISA_IO_PROTOCOL
*IsaIo
,
399 IN EFI_ISA_IO_PROTOCOL
*IsaIo
,
405 IN EFI_ISA_IO_PROTOCOL
*IsaIo
,
411 IN EFI_ISA_IO_PROTOCOL
*IsaIo
,
418 IN EFI_ISA_IO_PROTOCOL
*IsaIo
,
424 IN EFI_ISA_IO_PROTOCOL
*IsaIo
,
430 IN EFI_ISA_IO_PROTOCOL
*IsaIo
435 IN EFI_ISA_IO_PROTOCOL
*IsaIo
,
441 IN EFI_ISA_IO_PROTOCOL
*IsaIo
,
445 #endif // _COMMPS2_H_