summaryrefslogtreecommitdiffstats
path: root/c/src/lib/libbsp/powerpc/ppcn_60x/console/i8042_p.h
diff options
context:
space:
mode:
Diffstat (limited to 'c/src/lib/libbsp/powerpc/ppcn_60x/console/i8042_p.h')
-rw-r--r--c/src/lib/libbsp/powerpc/ppcn_60x/console/i8042_p.h196
1 files changed, 196 insertions, 0 deletions
diff --git a/c/src/lib/libbsp/powerpc/ppcn_60x/console/i8042_p.h b/c/src/lib/libbsp/powerpc/ppcn_60x/console/i8042_p.h
new file mode 100644
index 0000000000..57273fbe7f
--- /dev/null
+++ b/c/src/lib/libbsp/powerpc/ppcn_60x/console/i8042_p.h
@@ -0,0 +1,196 @@
+/*
+ * COPYRIGHT (c) 1998 by Radstone Technology
+ *
+ *
+ * THIS FILE IS PROVIDED TO YOU, THE USER, "AS IS", WITHOUT WARRANTY OF ANY
+ * KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTY OF FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK
+ * AS TO THE QUALITY AND PERFORMANCE OF ALL CODE IN THIS FILE IS WITH YOU.
+ *
+ * You are hereby granted permission to use, copy, modify, and distribute
+ * this file, provided that this notice, plus the above copyright notice
+ * and disclaimer, appears in all copies. Radstone Technology will provide
+ * no support for this code.
+ *
+ */
+
+#ifndef _I8042_P_H_
+#define _I8042_P_H_
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#define KBD_CTR_WRITE_COMMAND 0x60
+#define KBD_CTR_READ_COMMAND 0x20
+#define KBD_CTR_TEST_PASSWORD 0xA4
+#define KBD_CTR_LOAD_PASSWORD 0xA5
+#define KBD_CTR_ENABLE_PASSWORD 0xA6
+#define KBD_CTR_DISABLE_AUX 0xA7
+#define KBD_CTR_ENABLE_AUX 0xA8
+#define KBD_CTR_AUXLINES_TEST 0xA9
+#define KBD_CTR_SELFTEST 0xAA
+#define KBD_CTR_KBDLINES_TEST 0xAB
+#define KBD_CTR_DISABLE_KBD 0xAD
+#define KBD_CTR_ENABLE_KBD 0xAE
+#define KBD_CTR_WRITE_AUX 0xD4
+#define KBD_CTR_READ_REV 0xD5
+#define KBD_CTR_READ_VER 0xD6
+#define KBD_CTR_READ_MODEL 0xD7
+
+/* Keyboard Controller Data */
+#define KBD_CTR_SELFTEST_PASSED 0x55
+#define KBD_CTR_PASSWORD_INSTALLED 0xFA
+#define KBD_CTR_PASSWORD_NOT_INSTALLED 0xF1
+
+/* Controller Command Byte bit definitions. */
+#define KBD_CMD_BYTE_DISABLE_AUX 0x20
+#define KBD_CMD_BYTE_DISABLE_KBD 0x10
+#define KBD_CMD_ENABLE_AUX_INT 0x02
+#define KBD_CMD_ENABLE_KBD_INT 0x01
+
+/* Keyboard Controller Status byte masks */
+#define KBD_OBF_MASK 0x1 /* Output buffer full */
+#define KBD_IBF_MASK 0x2 /* Input buffer full */
+#define KBD_FROM_AUX_MASK 0x20 /* Byte from Aux Port. */
+
+/* Interface Test Results */
+#define INTERFACE_NO_ERROR 0x00
+#define CLOCK_STUCK_LOW 0x01
+#define CLOCK_STUCK_HIGH 0x02
+#define DATA_STUCK_LOW 0x03
+#define DATA_STUCK_HIGH 0x04
+
+/* Timeout */
+#define KBD_TIMEOUT 500000 /* Effectively ISA read access times */
+
+/* Keyboard Commands */
+#define KBD_CMD_SET_LEDS 0xed /* Set/Reset LEDs */
+#define KBD_CMD_ECHO 0xee /* request keyboard echo resp. "EE" */
+#define KBD_CMD_SEL_SCAN_CODE 0xf0 /* Scan codes 1,2,3 or 0 = rquest current. */
+#define KBD_CMD_READ_ID 0xf2 /* Request for two byte response */
+#define KBD_CMD_SET_RATE 0xf3 /* Set tellematic Rate */
+#define KBD_CMD_ENABLE 0xf4 /* Clears Buffer and Starts Scanning. */
+#define KBD_CMD_DISABLE 0xf5 /* reset to power up */
+
+#define KBD_CMD_SET_DEFAULT 0xf6
+#define KBD_CMD_SET_ALL_TLMTIC 0xf7 /* Set all keys telematic */
+#define KBD_CMD_SET_ALL_MKBR 0xf8 /* Set all keys Make /Break */
+#define KBD_CMD_SET_ALL_MAKE 0xf9 /* Set all keys Make only */
+#define KBD_CMD_SET_KEY_TLMTIC 0xfb /* Set individual key telemativ */
+#define KBD_CMD_SET_KEY_MKBR 0xfc /* set individual key make/break */
+#define KBD_CMD_SET_KEY_MK 0xfd /* set individual key make only */
+#define KBD_CMD_RESEND 0xfe /* request to resend last transfer */
+#define KBD_CMD_RESET 0xff /* request to start a program reset */
+#define KBD_CMD_ACK 0xfa /* keyboard ack after reset */
+#define KBD_CMD_BAT 0xaa /* Keyboard Bat completion Response */
+
+/*
+ * Define LED encodings for use with the KbdSetLEDs command
+ */
+#define KBD_LED_CAPS 0x04
+#define KBD_LED_NUM 0x02
+#define KBD_LED_SCROLL 0x01
+
+/*
+ * Define two code scan codes in keycode order
+ */
+#define KEY_TWO_KEY 0xe0
+#define KEY_ALT 0x38
+#define KEY_CONTROL 0x1d
+#define KEY_INSERT 0x52
+#define KEY_DELETE 0x53
+#define KEY_LEFT_ARROW 0x4b
+#define KEY_HOME 0x47
+#define KEY_END 0x4F
+#define KEY_UP_ARROW 0x48
+#define KEY_DOWN_ARROW 0x50
+#define KEY_PAGE_UP 0x49
+#define KEY_PAGE_DOWN 0x51
+#define KEY_RIGHT_ARROW 0x4d
+#define KEY_KEYPAD_SLASH 0x35
+#define KEY_KEYPAD_ENTER 0x1c
+#define KEY_SYS_REQUEST 0x2a
+#define KEY_PRINT_SCREEN 0x37
+
+#define KEY_LEFT_SHIFT 0x2a
+#define KEY_RIGHT_SHIFT 0x36
+#define KEY_TAB 0x0f
+#define KEY_CAPS_LOCK 0x3a
+#define KEY_NUM_LOCK 0x45
+#define KEY_SCROLL_LOCK 0x46
+#define KEY_ESC 0x01
+#define KEY_F1 0x3b
+#define KEY_F2 0x3c
+#define KEY_F3 0x3d
+#define KEY_F4 0x3e
+#define KEY_F5 0x3f
+#define KEY_F6 0x40
+#define KEY_F7 0x41
+#define KEY_F8 0x42
+#define KEY_F9 0x43
+#define KEY_F10 0x44
+#define KEY_F11 0x57
+#define KEY_F12 0x58
+
+/*
+ * ASCII control codes
+ */
+#define ASCII_NUL 0x00
+#define ASCII_SOH 0x01
+#define ASCII_STX 0x02
+#define ASCII_ETX 0x03
+#define ASCII_EOT 0x04
+#define ASCII_ENQ 0x05
+#define ASCII_ACK 0x06
+#define ASCII_BEL 0x07
+#define ASCII_BS 0x08
+#define ASCII_HT 0x09
+#define ASCII_LF 0x0a
+#define ASCII_VT 0x0b
+#define ASCII_FF 0x0c
+#define ASCII_CR 0x0d
+#define ASCII_SO 0x0e
+#define ASCII_SI 0x0f
+#define ASCII_DLE 0x10
+#define ASCII_XON 0x11
+#define ASCII_DC1 0x11
+#define ASCII_DC2 0x12
+#define ASCII_XOFF 0x13
+#define ASCII_DC3 0x13
+#define ASCII_DC4 0x14
+#define ASCII_NAK 0x15
+#define ASCII_SYN 0x16
+#define ASCII_ETB 0x17
+#define ASCII_CAN 0x18
+#define ASCII_EM 0x19
+#define ASCII_SUB 0x1a
+#define ASCII_ESC 0x1b
+#define ASCII_FS 0x1c
+#define ASCII_GS 0x1d
+#define ASCII_RS 0x1e
+#define ASCII_US 0x1f
+#define ASCII_DEL 0x7f
+#define ASCII_SYSRQ 0x80
+#define ASCII_CSI 0x9b
+
+/*
+ * Exported functions
+ */
+extern boolean i8042_probe(int minor);
+
+extern void i8042_init(int minor);
+#if CONSOLE_USE_INTERRUPTS
+extern void i8042_initialize_interrupts(int minor);
+
+#else
+extern int i8042_inbyte_nonblocking_polled(
+ int minor
+);
+#endif /* CONSOLE_USE_INTERRUPTS */
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _I8042_P_H_ */