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