Commit | Line | Data |
---|---|---|
553a05b8 MN |
1 | #ifndef _LINUX_I8042_H |
2 | #define _LINUX_I8042_H | |
3 | ||
4 | /* | |
5 | * This program is free software; you can redistribute it and/or modify it | |
6 | * under the terms of the GNU General Public License version 2 as published by | |
7 | * the Free Software Foundation. | |
8 | */ | |
9 | ||
181d683d | 10 | #include <linux/types.h> |
553a05b8 MN |
11 | |
12 | /* | |
13 | * Standard commands. | |
14 | */ | |
15 | ||
16 | #define I8042_CMD_CTL_RCTR 0x0120 | |
17 | #define I8042_CMD_CTL_WCTR 0x1060 | |
18 | #define I8042_CMD_CTL_TEST 0x01aa | |
19 | ||
20 | #define I8042_CMD_KBD_DISABLE 0x00ad | |
21 | #define I8042_CMD_KBD_ENABLE 0x00ae | |
22 | #define I8042_CMD_KBD_TEST 0x01ab | |
23 | #define I8042_CMD_KBD_LOOP 0x11d2 | |
24 | ||
25 | #define I8042_CMD_AUX_DISABLE 0x00a7 | |
26 | #define I8042_CMD_AUX_ENABLE 0x00a8 | |
27 | #define I8042_CMD_AUX_TEST 0x01a9 | |
28 | #define I8042_CMD_AUX_SEND 0x10d4 | |
29 | #define I8042_CMD_AUX_LOOP 0x11d3 | |
30 | ||
31 | #define I8042_CMD_MUX_PFX 0x0090 | |
32 | #define I8042_CMD_MUX_SEND 0x1090 | |
33 | ||
181d683d DT |
34 | struct serio; |
35 | ||
36 | #if defined(CONFIG_SERIO_I8042) || defined(CONFIG_SERIO_I8042_MODULE) | |
37 | ||
38 | void i8042_lock_chip(void); | |
39 | void i8042_unlock_chip(void); | |
553a05b8 | 40 | int i8042_command(unsigned char *param, int command); |
967c9ef9 MG |
41 | int i8042_install_filter(bool (*filter)(unsigned char data, unsigned char str, |
42 | struct serio *serio)); | |
43 | int i8042_remove_filter(bool (*filter)(unsigned char data, unsigned char str, | |
44 | struct serio *serio)); | |
181d683d DT |
45 | |
46 | #else | |
47 | ||
c59690fa | 48 | static inline void i8042_lock_chip(void) |
181d683d DT |
49 | { |
50 | } | |
51 | ||
c59690fa | 52 | static inline void i8042_unlock_chip(void) |
181d683d DT |
53 | { |
54 | } | |
55 | ||
c59690fa | 56 | static inline int i8042_command(unsigned char *param, int command) |
181d683d | 57 | { |
967c9ef9 | 58 | return -ENODEV; |
181d683d DT |
59 | } |
60 | ||
c59690fa | 61 | static inline int i8042_install_filter(bool (*filter)(unsigned char data, unsigned char str, |
967c9ef9 MG |
62 | struct serio *serio)) |
63 | { | |
64 | return -ENODEV; | |
65 | } | |
66 | ||
c59690fa | 67 | static inline int i8042_remove_filter(bool (*filter)(unsigned char data, unsigned char str, |
967c9ef9 MG |
68 | struct serio *serio)) |
69 | { | |
70 | return -ENODEV; | |
71 | } | |
72 | ||
181d683d | 73 | #endif |
553a05b8 MN |
74 | |
75 | #endif |