| Márton Németh | 553a05b | 2007-10-22 00:56:52 -0400 | [diff] [blame] | 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 |  | 
| Dmitry Torokhov | 181d683 | 2009-09-16 01:06:43 -0700 | [diff] [blame] | 10 | #include <linux/types.h> | 
| Márton Németh | 553a05b | 2007-10-22 00:56:52 -0400 | [diff] [blame] | 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 |  | 
| Dmitry Torokhov | 181d683 | 2009-09-16 01:06:43 -0700 | [diff] [blame] | 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); | 
| Márton Németh | 553a05b | 2007-10-22 00:56:52 -0400 | [diff] [blame] | 40 | int i8042_command(unsigned char *param, int command); | 
| Dmitry Torokhov | 181d683 | 2009-09-16 01:06:43 -0700 | [diff] [blame] | 41 | bool i8042_check_port_owner(const struct serio *); | 
| Matthew Garrett | 967c9ef | 2009-12-11 22:00:57 -0800 | [diff] [blame] | 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)); | 
| Dmitry Torokhov | 181d683 | 2009-09-16 01:06:43 -0700 | [diff] [blame] | 46 |  | 
|  | 47 | #else | 
|  | 48 |  | 
| Feng Tang | c59690f | 2010-06-30 00:53:53 -0700 | [diff] [blame] | 49 | static inline void i8042_lock_chip(void) | 
| Dmitry Torokhov | 181d683 | 2009-09-16 01:06:43 -0700 | [diff] [blame] | 50 | { | 
|  | 51 | } | 
|  | 52 |  | 
| Feng Tang | c59690f | 2010-06-30 00:53:53 -0700 | [diff] [blame] | 53 | static inline void i8042_unlock_chip(void) | 
| Dmitry Torokhov | 181d683 | 2009-09-16 01:06:43 -0700 | [diff] [blame] | 54 | { | 
|  | 55 | } | 
|  | 56 |  | 
| Feng Tang | c59690f | 2010-06-30 00:53:53 -0700 | [diff] [blame] | 57 | static inline int i8042_command(unsigned char *param, int command) | 
| Dmitry Torokhov | 181d683 | 2009-09-16 01:06:43 -0700 | [diff] [blame] | 58 | { | 
| Matthew Garrett | 967c9ef | 2009-12-11 22:00:57 -0800 | [diff] [blame] | 59 | return -ENODEV; | 
| Dmitry Torokhov | 181d683 | 2009-09-16 01:06:43 -0700 | [diff] [blame] | 60 | } | 
|  | 61 |  | 
| Feng Tang | c59690f | 2010-06-30 00:53:53 -0700 | [diff] [blame] | 62 | static inline bool i8042_check_port_owner(const struct serio *serio) | 
| Dmitry Torokhov | 181d683 | 2009-09-16 01:06:43 -0700 | [diff] [blame] | 63 | { | 
|  | 64 | return false; | 
|  | 65 | } | 
|  | 66 |  | 
| Feng Tang | c59690f | 2010-06-30 00:53:53 -0700 | [diff] [blame] | 67 | static inline int i8042_install_filter(bool (*filter)(unsigned char data, unsigned char str, | 
| Matthew Garrett | 967c9ef | 2009-12-11 22:00:57 -0800 | [diff] [blame] | 68 | struct serio *serio)) | 
|  | 69 | { | 
|  | 70 | return -ENODEV; | 
|  | 71 | } | 
|  | 72 |  | 
| Feng Tang | c59690f | 2010-06-30 00:53:53 -0700 | [diff] [blame] | 73 | static inline int i8042_remove_filter(bool (*filter)(unsigned char data, unsigned char str, | 
| Matthew Garrett | 967c9ef | 2009-12-11 22:00:57 -0800 | [diff] [blame] | 74 | struct serio *serio)) | 
|  | 75 | { | 
|  | 76 | return -ENODEV; | 
|  | 77 | } | 
|  | 78 |  | 
| Dmitry Torokhov | 181d683 | 2009-09-16 01:06:43 -0700 | [diff] [blame] | 79 | #endif | 
| Márton Németh | 553a05b | 2007-10-22 00:56:52 -0400 | [diff] [blame] | 80 |  | 
|  | 81 | #endif |