summaryrefslogtreecommitdiff
path: root/sys/arch/sgi/dev/iockbcreg.h
diff options
context:
space:
mode:
Diffstat (limited to 'sys/arch/sgi/dev/iockbcreg.h')
-rw-r--r--sys/arch/sgi/dev/iockbcreg.h51
1 files changed, 51 insertions, 0 deletions
diff --git a/sys/arch/sgi/dev/iockbcreg.h b/sys/arch/sgi/dev/iockbcreg.h
new file mode 100644
index 00000000000..ecd31c81bcb
--- /dev/null
+++ b/sys/arch/sgi/dev/iockbcreg.h
@@ -0,0 +1,51 @@
+/* $OpenBSD: iockbcreg.h,v 1.1 2009/11/18 19:03:27 miod Exp $ */
+
+/*
+ * Copyright (c) 2008 Joel Sing.
+ *
+ * Permission to use, copy, modify, and distribute this software for any
+ * purpose with or without fee is hereby granted, provided that the above
+ * copyright notice and this permission notice appear in all copies.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
+ * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
+ * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
+ * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
+ * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
+ * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
+ * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+ */
+
+/*
+ * Register definitions for the PS/2 controller part of SGI IOC3 and IOC4 ASICS.
+ */
+
+/* bits in KBC_CTRL_STATUS */
+#define IOC3_KBC_STATUS_KBD_WRITE_PENDING 0x00000001
+#define IOC3_KBC_STATUS_AUX_WRITE_PENDING 0x00000002
+#define IOC3_KBC_STATUS_KBD_DATA 0x00000010
+#define IOC3_KBC_STATUS_KBD_CLOCK 0x00000020
+#define IOC3_KBC_CTRL_KBD_PULL_DATA_LOW 0x00000040
+#define IOC3_KBC_CTRL_KBD_PULL_CLOCK_LOW 0x00000080
+#define IOC3_KBC_STATUS_AUX_DATA 0x00000100
+#define IOC3_KBC_STATUS_AUX_CLOCK 0x00000200
+#define IOC3_KBC_CTRL_AUX_PULL_DATA_LOW 0x00000400
+#define IOC3_KBC_CTRL_AUX_PULL_CLOCK_LOW 0x00000800
+#define IOC3_KBC_CTRL_KBD_CLAMP_1 0x00100000
+#define IOC3_KBC_CTRL_AUX_CLAMP_1 0x00200000
+#define IOC3_KBC_CTRL_KBD_CLAMP_3 0x00400000
+#define IOC3_KBC_CTRL_AUX_CLAMP_3 0x00800000
+
+/* bits in KBC_*_RX */
+#define IOC3_KBC_DATA_0_VALID 0x80000000
+#define IOC3_KBC_DATA_1_VALID 0x40000000
+#define IOC3_KBC_DATA_2_VALID 0x20000000
+#define IOC3_KBC_DATA_VALID (IOC3_KBC_DATA_0_VALID | \
+ IOC3_KBC_DATA_1_VALID | \
+ IOC3_KBC_DATA_2_VALID)
+#define IOC3_KBC_DATA_0_MASK 0x00ff0000
+#define IOC3_KBC_DATA_0_SHIFT 16
+#define IOC3_KBC_DATA_1_MASK 0x0000ff00
+#define IOC3_KBC_DATA_1_SHIFT 8
+#define IOC3_KBC_DATA_2_MASK 0x000000ff
+#define IOC3_KBC_DATA_2_SHIFT 0