root/include/linux/i8042.h

/* [<][>][^][v][top][bottom][index][help] */

INCLUDED FROM


DEFINITIONS

This source file includes following definitions.
  1. i8042_lock_chip
  2. i8042_unlock_chip
  3. i8042_command
  4. i8042_install_filter
  5. i8042_remove_filter

   1 /* SPDX-License-Identifier: GPL-2.0-only */
   2 #ifndef _LINUX_I8042_H
   3 #define _LINUX_I8042_H
   4 
   5 
   6 #include <linux/types.h>
   7 
   8 /*
   9  * Standard commands.
  10  */
  11 
  12 #define I8042_CMD_CTL_RCTR      0x0120
  13 #define I8042_CMD_CTL_WCTR      0x1060
  14 #define I8042_CMD_CTL_TEST      0x01aa
  15 
  16 #define I8042_CMD_KBD_DISABLE   0x00ad
  17 #define I8042_CMD_KBD_ENABLE    0x00ae
  18 #define I8042_CMD_KBD_TEST      0x01ab
  19 #define I8042_CMD_KBD_LOOP      0x11d2
  20 
  21 #define I8042_CMD_AUX_DISABLE   0x00a7
  22 #define I8042_CMD_AUX_ENABLE    0x00a8
  23 #define I8042_CMD_AUX_TEST      0x01a9
  24 #define I8042_CMD_AUX_SEND      0x10d4
  25 #define I8042_CMD_AUX_LOOP      0x11d3
  26 
  27 #define I8042_CMD_MUX_PFX       0x0090
  28 #define I8042_CMD_MUX_SEND      0x1090
  29 
  30 /*
  31  * Status register bits.
  32  */
  33 
  34 #define I8042_STR_PARITY        0x80
  35 #define I8042_STR_TIMEOUT       0x40
  36 #define I8042_STR_AUXDATA       0x20
  37 #define I8042_STR_KEYLOCK       0x10
  38 #define I8042_STR_CMDDAT        0x08
  39 #define I8042_STR_MUXERR        0x04
  40 #define I8042_STR_IBF           0x02
  41 #define I8042_STR_OBF           0x01
  42 
  43 /*
  44  * Control register bits.
  45  */
  46 
  47 #define I8042_CTR_KBDINT        0x01
  48 #define I8042_CTR_AUXINT        0x02
  49 #define I8042_CTR_IGNKEYLOCK    0x08
  50 #define I8042_CTR_KBDDIS        0x10
  51 #define I8042_CTR_AUXDIS        0x20
  52 #define I8042_CTR_XLATE         0x40
  53 
  54 struct serio;
  55 
  56 #if defined(CONFIG_SERIO_I8042) || defined(CONFIG_SERIO_I8042_MODULE)
  57 
  58 void i8042_lock_chip(void);
  59 void i8042_unlock_chip(void);
  60 int i8042_command(unsigned char *param, int command);
  61 int i8042_install_filter(bool (*filter)(unsigned char data, unsigned char str,
  62                                         struct serio *serio));
  63 int i8042_remove_filter(bool (*filter)(unsigned char data, unsigned char str,
  64                                        struct serio *serio));
  65 
  66 #else
  67 
  68 static inline void i8042_lock_chip(void)
  69 {
  70 }
  71 
  72 static inline void i8042_unlock_chip(void)
  73 {
  74 }
  75 
  76 static inline int i8042_command(unsigned char *param, int command)
  77 {
  78         return -ENODEV;
  79 }
  80 
  81 static inline int i8042_install_filter(bool (*filter)(unsigned char data, unsigned char str,
  82                                         struct serio *serio))
  83 {
  84         return -ENODEV;
  85 }
  86 
  87 static inline int i8042_remove_filter(bool (*filter)(unsigned char data, unsigned char str,
  88                                        struct serio *serio))
  89 {
  90         return -ENODEV;
  91 }
  92 
  93 #endif
  94 
  95 #endif

/* [<][>][^][v][top][bottom][index][help] */