/*
 * (C) Copyright 2002 ELTEC Elektronik AG
 * Frank Gottschling <fgottschling@eltec.de>
 *
 * SPDX-License-Identifier:	GPL-2.0+
 */

/* i8042.h - Intel 8042 keyboard driver header */

#ifndef _I8042_H_
#define _I8042_H_

/* defines */

#define I8042_DATA_REG	0x60	/* keyboard i/o buffer */
#define I8042_STS_REG	0x64	/* keyboard status read */
#define I8042_CMD_REG	0x64	/* keyboard ctrl write */

/* Status register bit defines */
#define STATUS_OBF	(1 << 0)
#define STATUS_IBF	(1 << 1)

/* Configuration byte bit defines */
#define CONFIG_KIRQ_EN	(1 << 0)
#define CONFIG_MIRQ_EN	(1 << 1)
#define CONFIG_SET_BIST	(1 << 2)
#define CONFIG_KCLK_DIS	(1 << 4)
#define CONFIG_MCLK_DIS	(1 << 5)
#define CONFIG_AT_TRANS	(1 << 6)

/* i8042 commands */
#define CMD_RD_CONFIG	0x20	/* read configuration byte */
#define CMD_WR_CONFIG	0x60	/* write configuration byte */
#define CMD_SELF_TEST	0xaa	/* controller self-test */
#define CMD_KBD_DIS	0xad	/* keyboard disable */
#define CMD_KBD_EN	0xae	/* keyboard enable */
#define CMD_SET_KBD_LED	0xed	/* set keyboard led */
#define CMD_RESET_KBD	0xff	/* reset keyboard */

/* i8042 command result */
#define KBC_TEST_OK	0x55
#define KBD_ACK		0xfa
#define KBD_POR		0xaa

/* keyboard scan codes */

#define KBD_US		0	/* default US layout */
#define KBD_GER		1	/* german layout */

#define KBD_TIMEOUT	1000	/* 1 sec */
#define KBD_RESET_TRIES	3

#define AS		0	/* normal character index */
#define SH		1	/* shift index */
#define CN		2	/* control index */
#define NM		3	/* numeric lock index */
#define AK		4	/* right alt key */
#define CP		5	/* capslock index */
#define ST		6	/* stop output index */
#define EX		7	/* extended code index */
#define ES		8	/* escape and extended code index */

#define NORMAL		0x0000	/* normal key */
#define STP		0x0001	/* scroll lock stop output*/
#define NUM		0x0002	/* numeric lock */
#define CAPS		0x0004	/* capslock */
#define SHIFT		0x0008	/* shift */
#define CTRL		0x0010	/* control*/
#define EXT		0x0020	/* extended scan code 0xe0 */
#define ESC		0x0040	/* escape key press */
#define E1		0x0080	/* extended scan code 0xe1 */
#define BRK		0x0100	/* make break flag for keyboard */
#define ALT		0x0200	/* right alt */

/* exports */

/**
 * Flush all buffer from keyboard controller to host.
 */
void i8042_flush(void);

/**
 * Disables the keyboard so that key strokes no longer generate scancodes to
 * the host.
 *
 * @return 0 if ok, -1 if keyboard input was found while disabling
 */
int i8042_disable(void);

#endif /* _I8042_H_ */
