]> git.proxmox.com Git - mirror_edk2.git/blob - IntelFrameworkModulePkg/Bus/Isa/Ps2MouseDxe/CommPs2.h
mass cleanup inf name
[mirror_edk2.git] / IntelFrameworkModulePkg / Bus / Isa / Ps2MouseDxe / CommPs2.h
1 /*++
2
3 Copyright (c) 2006 - 2007, Intel Corporation
4 All rights reserved. This program and the accompanying materials
5 are licensed and made available under the terms and conditions of the BSD License
6 which accompanies this distribution. The full text of the license may be found at
7 http://opensource.org/licenses/bsd-license.php
8
9 THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
10 WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
11
12
13 Module Name:
14
15 CommPs2.h
16
17 Abstract:
18
19 PS2 Mouse Communication Interface
20
21
22 Revision History
23
24 --*/
25
26 #ifndef _COMMPS2_H_
27 #define _COMMPS2_H_
28
29 #define PS2_PACKET_LENGTH 3
30 #define PS2_SYNC_MASK 0xc
31 #define PS2_SYNC_BYTE 0x8
32
33 #define IS_PS2_SYNC_BYTE(byte) ((byte & PS2_SYNC_MASK) == PS2_SYNC_BYTE)
34
35 #define PS2_READ_BYTE_ONE 0
36 #define PS2_READ_DATA_BYTE 1
37 #define PS2_PROCESS_PACKET 2
38
39 #define TIMEOUT 50000
40 #define BAT_TIMEOUT 500000
41
42 //
43 // 8042 I/O Port
44 //
45 #define KBC_DATA_PORT 0x60
46 #define KBC_CMD_STS_PORT 0x64
47
48 //
49 // 8042 Command
50 //
51 #define READ_CMD_BYTE 0x20
52 #define WRITE_CMD_BYTE 0x60
53 #define DISABLE_AUX 0xa7
54 #define ENABLE_AUX 0xa8
55 #define SELF_TEST 0xaa
56 #define DISABLE_KB 0xad
57 #define ENABLE_KB 0xae
58 #define WRITE_AUX_DEV 0xd4
59
60 #define CMD_SYS_FLAG 0x04
61 #define CMD_KB_STS 0x10
62 #define CMD_KB_DIS 0x10
63 #define CMD_KB_EN 0x0
64
65 //
66 // 8042 Auxiliary Device Command
67 //
68 #define SETSF1_CMD 0xe6
69 #define SETSF2_CMD 0xe7
70 #define SETRE_CMD 0xe8
71 #define READ_CMD 0xeb
72 #define SETRM_CMD 0xf0
73 #define SETSR_CMD 0xf3
74 #define ENABLE_CMD 0xf4
75 #define DISABLE_CMD 0xf5
76 #define RESET_CMD 0xff
77
78 //
79 // return code
80 //
81 #define PS2_ACK 0xfa
82 #define PS2_RESEND 0xfe
83 #define PS2MOUSE_BAT1 0xaa
84 #define PS2MOUSE_BAT2 0x0
85
86 //
87 // Keyboard Controller Status
88 //
89 #define KBC_PARE 0x80 // Parity Error
90 #define KBC_TIM 0x40 // General Time Out
91 #define KBC_AUXB 0x20 // Output buffer for auxiliary device (PS/2):
92 // 0 - Holds keyboard data
93 // 1 - Holds data for auxiliary device
94 //
95 #define KBC_KEYL 0x10 // Keyboard lock status:
96 // 0 - keyboard locked
97 // 1 - keyboard free
98 //
99 #define KBC_CD 0x08 // Command/Data:
100 // 0 - data byte written via port 60h
101 // 1 - command byte written via port 64h
102 //
103 #define KBC_SYSF 0x04 // System Flag:
104 // 0 - power-on reset
105 // 1 - self-test successful
106 //
107 #define KBC_INPB 0x02 // Input Buffer Status :
108 // 0 - input buffer empty
109 // 1 - CPU data in input buffer
110 //
111 #define KBC_OUTB 0x01 // Output Buffer Status :
112 // 0 - output buffer empty
113 // 1 - keyboard controller data in output buffer
114 //
115 EFI_STATUS
116 KbcSelfTest (
117 IN EFI_ISA_IO_PROTOCOL *IsaIo
118 )
119 /*++
120
121 Routine Description:
122
123 GC_TODO: Add function description
124
125 Arguments:
126
127 IsaIo - GC_TODO: add argument description
128
129 Returns:
130
131 GC_TODO: add return values
132
133 --*/
134 ;
135
136 EFI_STATUS
137 KbcEnableAux (
138 IN EFI_ISA_IO_PROTOCOL *IsaIo
139 )
140 /*++
141
142 Routine Description:
143
144 GC_TODO: Add function description
145
146 Arguments:
147
148 IsaIo - GC_TODO: add argument description
149
150 Returns:
151
152 GC_TODO: add return values
153
154 --*/
155 ;
156
157 EFI_STATUS
158 KbcDisableAux (
159 IN EFI_ISA_IO_PROTOCOL *IsaIo
160 )
161 /*++
162
163 Routine Description:
164
165 GC_TODO: Add function description
166
167 Arguments:
168
169 IsaIo - GC_TODO: add argument description
170
171 Returns:
172
173 GC_TODO: add return values
174
175 --*/
176 ;
177
178 EFI_STATUS
179 KbcEnableKb (
180 IN EFI_ISA_IO_PROTOCOL *IsaIo
181 )
182 /*++
183
184 Routine Description:
185
186 GC_TODO: Add function description
187
188 Arguments:
189
190 IsaIo - GC_TODO: add argument description
191
192 Returns:
193
194 GC_TODO: add return values
195
196 --*/
197 ;
198
199 EFI_STATUS
200 KbcDisableKb (
201 IN EFI_ISA_IO_PROTOCOL *IsaIo
202 )
203 /*++
204
205 Routine Description:
206
207 GC_TODO: Add function description
208
209 Arguments:
210
211 IsaIo - GC_TODO: add argument description
212
213 Returns:
214
215 GC_TODO: add return values
216
217 --*/
218 ;
219
220 EFI_STATUS
221 CheckKbStatus (
222 IN EFI_ISA_IO_PROTOCOL *IsaIo,
223 OUT BOOLEAN *KeyboardEnable
224 )
225 /*++
226
227 Routine Description:
228
229 GC_TODO: Add function description
230
231 Arguments:
232
233 IsaIo - GC_TODO: add argument description
234 KeyboardEnable - GC_TODO: add argument description
235
236 Returns:
237
238 GC_TODO: add return values
239
240 --*/
241 ;
242
243 EFI_STATUS
244 PS2MouseReset (
245 IN EFI_ISA_IO_PROTOCOL *IsaIo
246 )
247 /*++
248
249 Routine Description:
250
251 GC_TODO: Add function description
252
253 Arguments:
254
255 IsaIo - GC_TODO: add argument description
256
257 Returns:
258
259 GC_TODO: add return values
260
261 --*/
262 ;
263
264 EFI_STATUS
265 PS2MouseSetSampleRate (
266 IN EFI_ISA_IO_PROTOCOL *IsaIo,
267 IN MOUSE_SR SampleRate
268 )
269 /*++
270
271 Routine Description:
272
273 GC_TODO: Add function description
274
275 Arguments:
276
277 IsaIo - GC_TODO: add argument description
278 SampleRate - GC_TODO: add argument description
279
280 Returns:
281
282 GC_TODO: add return values
283
284 --*/
285 ;
286
287 EFI_STATUS
288 PS2MouseSetResolution (
289 IN EFI_ISA_IO_PROTOCOL *IsaIo,
290 IN MOUSE_RE Resolution
291 )
292 /*++
293
294 Routine Description:
295
296 GC_TODO: Add function description
297
298 Arguments:
299
300 IsaIo - GC_TODO: add argument description
301 Resolution - GC_TODO: add argument description
302
303 Returns:
304
305 GC_TODO: add return values
306
307 --*/
308 ;
309
310 EFI_STATUS
311 PS2MouseSetScaling (
312 IN EFI_ISA_IO_PROTOCOL *IsaIo,
313 IN MOUSE_SF Scaling
314 )
315 /*++
316
317 Routine Description:
318
319 GC_TODO: Add function description
320
321 Arguments:
322
323 IsaIo - GC_TODO: add argument description
324 Scaling - GC_TODO: add argument description
325
326 Returns:
327
328 GC_TODO: add return values
329
330 --*/
331 ;
332
333 EFI_STATUS
334 PS2MouseEnable (
335 IN EFI_ISA_IO_PROTOCOL *IsaIo
336 )
337 /*++
338
339 Routine Description:
340
341 GC_TODO: Add function description
342
343 Arguments:
344
345 IsaIo - GC_TODO: add argument description
346
347 Returns:
348
349 GC_TODO: add return values
350
351 --*/
352 ;
353
354 EFI_STATUS
355 PS2MouseGetPacket (
356 PS2_MOUSE_DEV *MouseDev
357 )
358 /*++
359
360 Routine Description:
361
362 GC_TODO: Add function description
363
364 Arguments:
365
366 MouseDev - GC_TODO: add argument description
367
368 Returns:
369
370 GC_TODO: add return values
371
372 --*/
373 ;
374
375 EFI_STATUS
376 PS2MouseRead (
377 IN EFI_ISA_IO_PROTOCOL *IsaIo,
378 OUT VOID *Buffer,
379 IN OUT UINTN *BufSize,
380 IN UINTN State
381 );
382
383 //
384 // 8042 I/O function
385 //
386 EFI_STATUS
387 Out8042Command (
388 IN EFI_ISA_IO_PROTOCOL *IsaIo,
389 IN UINT8 Command
390 );
391
392 EFI_STATUS
393 In8042Data (
394 IN EFI_ISA_IO_PROTOCOL *IsaIo,
395 IN OUT UINT8 *Data
396 );
397
398 EFI_STATUS
399 Out8042Data (
400 IN EFI_ISA_IO_PROTOCOL *IsaIo,
401 IN UINT8 Data
402 );
403
404 EFI_STATUS
405 Out8042AuxCommand (
406 IN EFI_ISA_IO_PROTOCOL *IsaIo,
407 IN UINT8 Command,
408 IN BOOLEAN Resend
409 );
410
411 EFI_STATUS
412 In8042AuxData (
413 IN EFI_ISA_IO_PROTOCOL *IsaIo,
414 IN OUT UINT8 *Data
415 );
416
417 EFI_STATUS
418 Out8042AuxData (
419 IN EFI_ISA_IO_PROTOCOL *IsaIo,
420 IN UINT8 Data
421 );
422
423 EFI_STATUS
424 CheckForInput (
425 IN EFI_ISA_IO_PROTOCOL *IsaIo
426 );
427
428 EFI_STATUS
429 WaitInputEmpty (
430 IN EFI_ISA_IO_PROTOCOL *IsaIo,
431 IN UINTN Timeout
432 );
433
434 EFI_STATUS
435 WaitOutputFull (
436 IN EFI_ISA_IO_PROTOCOL *IsaIo,
437 IN UINTN Timeout
438 );
439
440 #endif // _COMMPS2_H_