cachepc-linux

Fork of AMDESE/linux with modifications for CachePC side-channel attack
git clone https://git.sinitax.com/sinitax/cachepc-linux
Log | Files | Refs | README | LICENSE | sfeed.txt

i8042.h (2041B)


      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
     54struct serio;
     55
     56#if defined(CONFIG_SERIO_I8042) || defined(CONFIG_SERIO_I8042_MODULE)
     57
     58void i8042_lock_chip(void);
     59void i8042_unlock_chip(void);
     60int i8042_command(unsigned char *param, int command);
     61int i8042_install_filter(bool (*filter)(unsigned char data, unsigned char str,
     62					struct serio *serio));
     63int i8042_remove_filter(bool (*filter)(unsigned char data, unsigned char str,
     64				       struct serio *serio));
     65
     66#else
     67
     68static inline void i8042_lock_chip(void)
     69{
     70}
     71
     72static inline void i8042_unlock_chip(void)
     73{
     74}
     75
     76static inline int i8042_command(unsigned char *param, int command)
     77{
     78	return -ENODEV;
     79}
     80
     81static inline int i8042_install_filter(bool (*filter)(unsigned char data, unsigned char str,
     82					struct serio *serio))
     83{
     84	return -ENODEV;
     85}
     86
     87static 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