summaryrefslogtreecommitdiff
path: root/include/libchip/mc68681.h
diff options
context:
space:
mode:
Diffstat (limited to 'include/libchip/mc68681.h')
-rw-r--r--include/libchip/mc68681.h120
1 files changed, 120 insertions, 0 deletions
diff --git a/include/libchip/mc68681.h b/include/libchip/mc68681.h
new file mode 100644
index 0000000000..ec58318dab
--- /dev/null
+++ b/include/libchip/mc68681.h
@@ -0,0 +1,120 @@
+/*
+ *
+ * COPYRIGHT (c) 1989-1999.
+ * On-Line Applications Research Corporation (OAR).
+ *
+ * The license and distribution terms for this file may be
+ * found in the file LICENSE in this distribution or at
+ * http://www.rtems.org/license/LICENSE.
+ */
+
+#ifndef _MC68681_H_
+#define _MC68681_H_
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/*
+ * These are just used in the interface between this driver and
+ * the read/write register routines when accessing the first
+ * control port.
+ */
+
+#define MC68681_STATUS 1
+#define MC68681_RX_BUFFER 3
+
+#define MC68681_MODE 0
+#define MC68681_CLOCK_SELECT 1
+#define MC68681_COMMAND 2
+#define MC68681_TX_BUFFER 3
+
+/*
+ * Data Port bit map configuration
+ *
+ * D0 : Baud Rate Set Selection
+ * D1 - D2 : Extended Baud Rate Setting
+ */
+
+#define MC68681_DATA_BAUD_RATE_SET_1 0 /* ACR[7] = 0 */
+#define MC68681_DATA_BAUD_RATE_SET_2 1 /* ACR[7] = 1 */
+
+#define MC68681_XBRG_IGNORED (0 << 1)
+#define MC68681_XBRG_ENABLED (1 << 1)
+#define MC68681_XBRG_DISABLED (2 << 1)
+#define MC68681_XBRG_MASK (3 << 1)
+
+/*
+ * Custom baud rate table information
+ */
+
+typedef unsigned char mc68681_baud_t;
+typedef mc68681_baud_t mc68681_baud_table_t[RTEMS_TERMIOS_NUMBER_BAUD_RATES];
+
+#define MC68681_BAUD_NOT_VALID 0xFF
+
+extern mc68681_baud_t
+ mc68681_baud_rate_table[4][RTEMS_TERMIOS_NUMBER_BAUD_RATES];
+
+
+/*
+ * Driver function table
+ */
+
+extern const console_fns mc68681_fns;
+extern const console_fns mc68681_fns_polled;
+
+/*
+ * Default register access routines
+ */
+
+uint8_t mc68681_get_register( /* registers are at 1 byte boundaries */
+ uintptr_t ulCtrlPort, /* and accessed as bytes */
+ uint8_t ucRegNum
+);
+
+void mc68681_set_register(
+ uintptr_t ulCtrlPort,
+ uint8_t ucRegNum,
+ uint8_t ucData
+);
+
+uint8_t mc68681_get_register_2( /* registers are at 2 byte boundaries */
+ uintptr_t ulCtrlPort, /* and accessed as bytes */
+ uint8_t ucRegNum
+);
+
+void mc68681_set_register_2(
+ uintptr_t ulCtrlPort,
+ uint8_t ucRegNum,
+ uint8_t ucData
+);
+
+uint8_t mc68681_get_register_4( /* registers are at 4 byte boundaries */
+ uintptr_t ulCtrlPort, /* and accessed as bytes */
+ uint8_t ucRegNum
+);
+
+void mc68681_set_register_4(
+ uintptr_t ulCtrlPort,
+ uint8_t ucRegNum,
+ uint8_t ucData
+);
+
+uint8_t mc68681_get_register_8( /* registers are at 8 byte boundaries */
+ uintptr_t ulCtrlPort, /* and accessed as bytes */
+ uint8_t ucRegNum
+);
+
+void mc68681_set_register_8(
+ uintptr_t ulCtrlPort,
+ uint8_t ucRegNum,
+ uint8_t ucData
+);
+
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _MC68681_H_ */