]>
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); |
181d683d | 41 | bool i8042_check_port_owner(const struct serio *); |
967c9ef9 MG |
42 | int i8042_install_filter(bool (*filter)(unsigned char data, unsigned char str, |
43 | struct serio *serio)); | |
44 | int i8042_remove_filter(bool (*filter)(unsigned char data, unsigned char str, | |
45 | struct serio *serio)); | |
181d683d DT |
46 | |
47 | #else | |
48 | ||
c59690fa | 49 | static inline void i8042_lock_chip(void) |
181d683d DT |
50 | { |
51 | } | |
52 | ||
c59690fa | 53 | static inline void i8042_unlock_chip(void) |
181d683d DT |
54 | { |
55 | } | |
56 | ||
c59690fa | 57 | static inline int i8042_command(unsigned char *param, int command) |
181d683d | 58 | { |
967c9ef9 | 59 | return -ENODEV; |
181d683d DT |
60 | } |
61 | ||
c59690fa | 62 | static inline bool i8042_check_port_owner(const struct serio *serio) |
181d683d DT |
63 | { |
64 | return false; | |
65 | } | |
66 | ||
c59690fa | 67 | static inline int i8042_install_filter(bool (*filter)(unsigned char data, unsigned char str, |
967c9ef9 MG |
68 | struct serio *serio)) |
69 | { | |
70 | return -ENODEV; | |
71 | } | |
72 | ||
c59690fa | 73 | static inline int i8042_remove_filter(bool (*filter)(unsigned char data, unsigned char str, |
967c9ef9 MG |
74 | struct serio *serio)) |
75 | { | |
76 | return -ENODEV; | |
77 | } | |
78 | ||
181d683d | 79 | #endif |
553a05b8 MN |
80 | |
81 | #endif |