uboot/include/i8042.h
<<
>>
Prefs
   1/* SPDX-License-Identifier: GPL-2.0+ */
   2/*
   3 * (C) Copyright 2002 ELTEC Elektronik AG
   4 * Frank Gottschling <fgottschling@eltec.de>
   5 */
   6
   7/* i8042.h - Intel 8042 keyboard driver header */
   8
   9#ifndef _I8042_H_
  10#define _I8042_H_
  11
  12/* defines */
  13
  14#define I8042_DATA_REG  0x60    /* keyboard i/o buffer */
  15#define I8042_STS_REG   0x64    /* keyboard status read */
  16#define I8042_CMD_REG   0x64    /* keyboard ctrl write */
  17
  18/* Status register bit defines */
  19#define STATUS_OBF      (1 << 0)
  20#define STATUS_IBF      (1 << 1)
  21
  22/* Configuration byte bit defines */
  23#define CONFIG_KIRQ_EN  (1 << 0)
  24#define CONFIG_MIRQ_EN  (1 << 1)
  25#define CONFIG_SET_BIST (1 << 2)
  26#define CONFIG_KCLK_DIS (1 << 4)
  27#define CONFIG_MCLK_DIS (1 << 5)
  28#define CONFIG_AT_TRANS (1 << 6)
  29
  30/* i8042 commands */
  31#define CMD_RD_CONFIG   0x20    /* read configuration byte */
  32#define CMD_WR_CONFIG   0x60    /* write configuration byte */
  33#define CMD_SELF_TEST   0xaa    /* controller self-test */
  34#define CMD_KBD_DIS     0xad    /* keyboard disable */
  35#define CMD_KBD_EN      0xae    /* keyboard enable */
  36#define CMD_SET_KBD_LED 0xed    /* set keyboard led */
  37#define CMD_DRAIN_OUTPUT 0xf4   /* drain output buffer */
  38#define CMD_RESET_KBD   0xff    /* reset keyboard */
  39
  40/* i8042 command result */
  41#define KBC_TEST_OK     0x55
  42#define KBD_ACK         0xfa
  43#define KBD_POR         0xaa
  44
  45/* keyboard scan codes */
  46
  47#define KBD_US          0       /* default US layout */
  48#define KBD_GER         1       /* german layout */
  49
  50#define KBD_TIMEOUT     1000    /* 1 sec */
  51#define KBD_RESET_TRIES 3
  52
  53#define AS              0       /* normal character index */
  54#define SH              1       /* shift index */
  55#define CN              2       /* control index */
  56#define NM              3       /* numeric lock index */
  57#define AK              4       /* right alt key */
  58#define CP              5       /* capslock index */
  59#define ST              6       /* stop output index */
  60#define EX              7       /* extended code index */
  61#define ES              8       /* escape and extended code index */
  62
  63#define NORMAL          0x0000  /* normal key */
  64#define STP             0x0001  /* scroll lock stop output*/
  65#define NUM             0x0002  /* numeric lock */
  66#define CAPS            0x0004  /* capslock */
  67#define SHIFT           0x0008  /* shift */
  68#define CTRL            0x0010  /* control*/
  69#define EXT             0x0020  /* extended scan code 0xe0 */
  70#define ESC             0x0040  /* escape key press */
  71#define E1              0x0080  /* extended scan code 0xe1 */
  72#define BRK             0x0100  /* make break flag for keyboard */
  73#define ALT             0x0200  /* right alt */
  74
  75#endif /* _I8042_H_ */
  76