]> git.proxmox.com Git - mirror_edk2.git/blame - IntelFrameworkModulePkg/Bus/Isa/Ps2MouseDxe/CommPs2.h
Coding style modification.
[mirror_edk2.git] / IntelFrameworkModulePkg / Bus / Isa / Ps2MouseDxe / CommPs2.h
CommitLineData
f8cd287b 1/**@file\r
2 PS2 Mouse Communication Interface \r
05fbd06d 3\r
f8cd287b 4 \r
92a428e1 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
05fbd06d 13\r
f8cd287b 14**/\r
05fbd06d 15\r
16#ifndef _COMMPS2_H_\r
17#define _COMMPS2_H_\r
18\r
05fbd06d 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
bcd70414 109/**\r
05fbd06d 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
bcd70414 123**/\r
05fbd06d 124;\r
125\r
126EFI_STATUS\r
127KbcEnableAux (\r
128 IN EFI_ISA_IO_PROTOCOL *IsaIo\r
129 )\r
bcd70414 130/**\r
05fbd06d 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
bcd70414 144**/\r
05fbd06d 145;\r
146\r
147EFI_STATUS\r
148KbcDisableAux (\r
149 IN EFI_ISA_IO_PROTOCOL *IsaIo\r
150 )\r
bcd70414 151/**\r
05fbd06d 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
bcd70414 165**/\r
05fbd06d 166;\r
167\r
168EFI_STATUS\r
169KbcEnableKb (\r
170 IN EFI_ISA_IO_PROTOCOL *IsaIo\r
171 )\r
bcd70414 172/**\r
05fbd06d 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
bcd70414 186**/\r
05fbd06d 187;\r
188\r
189EFI_STATUS\r
190KbcDisableKb (\r
191 IN EFI_ISA_IO_PROTOCOL *IsaIo\r
192 )\r
bcd70414 193/**\r
05fbd06d 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
bcd70414 207**/\r
05fbd06d 208;\r
209\r
210EFI_STATUS\r
211CheckKbStatus (\r
212 IN EFI_ISA_IO_PROTOCOL *IsaIo,\r
213 OUT BOOLEAN *KeyboardEnable\r
214 )\r
bcd70414 215/**\r
05fbd06d 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
bcd70414 230**/\r
05fbd06d 231;\r
232\r
233EFI_STATUS\r
234PS2MouseReset (\r
235 IN EFI_ISA_IO_PROTOCOL *IsaIo\r
236 )\r
bcd70414 237/**\r
05fbd06d 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
bcd70414 251**/\r
05fbd06d 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
bcd70414 259/**\r
05fbd06d 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
bcd70414 274**/\r
05fbd06d 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
bcd70414 282/**\r
05fbd06d 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
bcd70414 297**/\r
05fbd06d 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
bcd70414 305/**\r
05fbd06d 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
bcd70414 320**/\r
05fbd06d 321;\r
322\r
323EFI_STATUS\r
324PS2MouseEnable (\r
325 IN EFI_ISA_IO_PROTOCOL *IsaIo\r
326 )\r
bcd70414 327/**\r
05fbd06d 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
bcd70414 341**/\r
05fbd06d 342;\r
343\r
344EFI_STATUS\r
345PS2MouseGetPacket (\r
346 PS2_MOUSE_DEV *MouseDev\r
347 )\r
bcd70414 348/**\r
05fbd06d 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
bcd70414 362**/\r
05fbd06d 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