summaryrefslogtreecommitdiff
path: root/include/linux/i8042.h
diff options
context:
space:
mode:
authorAndrey Moiseev <o2g.org.ru@gmail.com>2013-08-25 22:51:15 -0700
committerDmitry Torokhov <dmitry.torokhov@gmail.com>2013-08-26 09:30:03 -0700
commit1ea4c16120f529d811de0a35db6b252352268e95 (patch)
tree9acbfa8f5a82bcf06632ceadc3e8565480fcd0cc /include/linux/i8042.h
parent50f3c163751f84bd572a712a255cd69903e232e2 (diff)
downloadlinux-rpi3-1ea4c16120f529d811de0a35db6b252352268e95.tar.gz
linux-rpi3-1ea4c16120f529d811de0a35db6b252352268e95.tar.bz2
linux-rpi3-1ea4c16120f529d811de0a35db6b252352268e95.zip
Input: add driver for slidebar on Lenovo IdeaPad laptops
This driver adds support for slidebars found on some Lenovo IdeaPad laptops (the slidebars work with SlideNav/Desktop Navigator under Windows). Fixes: https://bugzilla.kernel.org/show_bug.cgi?id=16004 Registers 'IdeaPad Slidebar' input device and /sys/devices/platform/ideapad_slidebar/slidebar_mode for switching slidebar's modes. Now works on: IdeaPad Y550, Y550P. May work on (testing and adding new models is needed): Ideapad Y560, Y460, Y450, Y650, and, probably, some others. Signed-off-by: Andrey Moiseev <o2g.org.ru@gmail.com> Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>
Diffstat (limited to 'include/linux/i8042.h')
-rw-r--r--include/linux/i8042.h24
1 files changed, 24 insertions, 0 deletions
diff --git a/include/linux/i8042.h b/include/linux/i8042.h
index a986ff588944..0f9bafa17a02 100644
--- a/include/linux/i8042.h
+++ b/include/linux/i8042.h
@@ -31,6 +31,30 @@
#define I8042_CMD_MUX_PFX 0x0090
#define I8042_CMD_MUX_SEND 0x1090
+/*
+ * Status register bits.
+ */
+
+#define I8042_STR_PARITY 0x80
+#define I8042_STR_TIMEOUT 0x40
+#define I8042_STR_AUXDATA 0x20
+#define I8042_STR_KEYLOCK 0x10
+#define I8042_STR_CMDDAT 0x08
+#define I8042_STR_MUXERR 0x04
+#define I8042_STR_IBF 0x02
+#define I8042_STR_OBF 0x01
+
+/*
+ * Control register bits.
+ */
+
+#define I8042_CTR_KBDINT 0x01
+#define I8042_CTR_AUXINT 0x02
+#define I8042_CTR_IGNKEYLOCK 0x08
+#define I8042_CTR_KBDDIS 0x10
+#define I8042_CTR_AUXDIS 0x20
+#define I8042_CTR_XLATE 0x40
+
struct serio;
#if defined(CONFIG_SERIO_I8042) || defined(CONFIG_SERIO_I8042_MODULE)