summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJoel Sherrill <joel.sherrill@OARcorp.com>1998-07-15 23:54:24 +0000
committerJoel Sherrill <joel.sherrill@OARcorp.com>1998-07-15 23:54:24 +0000
commit8414c033e23f5ac89769fd25cc9fbe513a63f152 (patch)
treec3bd81db57a6664b6dae25b80c74b0b70a3762b3
parentAdded default mc68681 register access routines. (diff)
downloadrtems-8414c033e23f5ac89769fd25cc9fbe513a63f152.tar.bz2
Added default z85c30 register access routines.
-rw-r--r--c/src/lib/libchip/serial/Makefile.in3
-rw-r--r--c/src/lib/libchip/serial/z85c30.h24
-rw-r--r--c/src/lib/libchip/serial/z85c30_reg.c103
-rw-r--r--c/src/libchip/serial/Makefile.in3
-rw-r--r--c/src/libchip/serial/z85c30.h24
-rw-r--r--c/src/libchip/serial/z85c30_reg.c103
6 files changed, 258 insertions, 2 deletions
diff --git a/c/src/lib/libchip/serial/Makefile.in b/c/src/lib/libchip/serial/Makefile.in
index e6156e8fbe..7b1b87fb6a 100644
--- a/c/src/lib/libchip/serial/Makefile.in
+++ b/c/src/lib/libchip/serial/Makefile.in
@@ -12,7 +12,8 @@ LIBNAME=libserialio.a
LIB=${ARCH}/${LIBNAME}
C_PIECES=mc68681 mc68681_reg mc68681_reg2 mc68681_reg4 mc68681_reg8 \
- ns16550 z85c30 \
+ ns16550 \
+ z85c30 z85c30_reg \
serprobe termios_baud2index termios_baud2num
C_FILES=$(C_PIECES:%=%.c)
diff --git a/c/src/lib/libchip/serial/z85c30.h b/c/src/lib/libchip/serial/z85c30.h
index 5f40994dfc..f1beeef5e0 100644
--- a/c/src/lib/libchip/serial/z85c30.h
+++ b/c/src/lib/libchip/serial/z85c30.h
@@ -47,6 +47,30 @@ extern console_fns z85c30_fns_polled;
extern console_flow z85c30_flow_RTSCTS;
extern console_flow z85c30_flow_DTRCTS;
+/*
+ * Default register access routines
+ */
+
+unsigned8 z85c30_get_register( /* registers are byte-wide */
+ unsigned32 ulCtrlPort,
+ unsigned8 ucRegNum
+);
+
+void z85c30_set_register(
+ unsigned32 ulCtrlPort,
+ unsigned8 ucRegNum,
+ unsigned8 ucData
+);
+
+unsigned8 z85c30_get_data(
+ unsigned32 ulDataPort
+);
+
+void z85c30_set_data(
+ unsigned32 ulDataPort,
+ unsigned8 ucData
+);
+
#ifdef __cplusplus
}
#endif
diff --git a/c/src/lib/libchip/serial/z85c30_reg.c b/c/src/lib/libchip/serial/z85c30_reg.c
new file mode 100644
index 0000000000..af1f761db8
--- /dev/null
+++ b/c/src/lib/libchip/serial/z85c30_reg.c
@@ -0,0 +1,103 @@
+/*
+ * This file contains a typical set of register access routines which may be
+ * used with the z85c30 chip if accesses to the chip are as follows:
+ *
+ * + registers are accessed as bytes
+ *
+ * COPYRIGHT (c) 1989-1997.
+ * On-Line Applications Research Corporation (OAR).
+ * Copyright assigned to U.S. Government, 1994.
+ *
+ * The license and distribution terms for this file may be
+ * found in the file LICENSE in this distribution or at
+ * http://www.OARcorp.com/rtems/license.html.
+ *
+ * $Id$
+ */
+
+#include <rtems.h>
+
+#ifndef _Z85C30_MULTIPLIER
+#define _Z85C30_MULTIPLIER 1
+#define _Z85C30_NAME(_X) _X
+#define _Z85C30_TYPE unsigned8
+#endif
+
+/*
+ * Z85C30 Get Register Routine
+ */
+
+unsigned8 _Z85C30_NAME(z85c30_get_register)(
+ unsigned32 ulCtrlPort,
+ unsigned8 ucRegNum
+)
+{
+ _Z85C30_TYPE *port;
+ unsigned8 data;
+ rtems_interrupt_level level;
+
+ port = (_Z85C30_TYPE *)ulCtrlPort;
+
+ rtems_interrupt_disable(level);
+
+ if(ucRegNum) {
+ *port = ucRegNum;
+ }
+ data = *port;
+ rtems_interrupt_disable(level);
+
+ return data;
+}
+
+/*
+ * Z85C30 Set Register Routine
+ */
+
+void _Z85C30_NAME(z85c30_set_register)(
+ unsigned32 ulCtrlPort,
+ unsigned8 ucRegNum,
+ unsigned8 ucData
+)
+{
+ _Z85C30_TYPE *port;
+ rtems_interrupt_level level;
+
+ port = (_Z85C30_TYPE *)ulCtrlPort;
+
+ rtems_interrupt_disable(level);
+ if(ucRegNum) {
+ *port = ucRegNum;
+ }
+ *port = ucData;
+ rtems_interrupt_disable(level);
+}
+
+
+/*
+ * Z85C30 Get Data Routine
+ */
+
+unsigned8 _Z85C30_NAME(z85c30_get_data)(
+ unsigned32 ulDataPort
+)
+{
+ _Z85C30_TYPE *port;
+
+ port = (_Z85C30_TYPE *)ulDataPort;
+ return *port;
+}
+
+/*
+ * Z85C30 Set Data Routine
+ */
+
+void _Z85C30_NAME(z85c30_set_data)(
+ unsigned32 ulDataPort,
+ unsigned8 ucData
+)
+{
+ _Z85C30_TYPE *port;
+
+ port = (_Z85C30_TYPE *)ulDataPort;
+ *port = ucData;
+}
diff --git a/c/src/libchip/serial/Makefile.in b/c/src/libchip/serial/Makefile.in
index e6156e8fbe..7b1b87fb6a 100644
--- a/c/src/libchip/serial/Makefile.in
+++ b/c/src/libchip/serial/Makefile.in
@@ -12,7 +12,8 @@ LIBNAME=libserialio.a
LIB=${ARCH}/${LIBNAME}
C_PIECES=mc68681 mc68681_reg mc68681_reg2 mc68681_reg4 mc68681_reg8 \
- ns16550 z85c30 \
+ ns16550 \
+ z85c30 z85c30_reg \
serprobe termios_baud2index termios_baud2num
C_FILES=$(C_PIECES:%=%.c)
diff --git a/c/src/libchip/serial/z85c30.h b/c/src/libchip/serial/z85c30.h
index 5f40994dfc..f1beeef5e0 100644
--- a/c/src/libchip/serial/z85c30.h
+++ b/c/src/libchip/serial/z85c30.h
@@ -47,6 +47,30 @@ extern console_fns z85c30_fns_polled;
extern console_flow z85c30_flow_RTSCTS;
extern console_flow z85c30_flow_DTRCTS;
+/*
+ * Default register access routines
+ */
+
+unsigned8 z85c30_get_register( /* registers are byte-wide */
+ unsigned32 ulCtrlPort,
+ unsigned8 ucRegNum
+);
+
+void z85c30_set_register(
+ unsigned32 ulCtrlPort,
+ unsigned8 ucRegNum,
+ unsigned8 ucData
+);
+
+unsigned8 z85c30_get_data(
+ unsigned32 ulDataPort
+);
+
+void z85c30_set_data(
+ unsigned32 ulDataPort,
+ unsigned8 ucData
+);
+
#ifdef __cplusplus
}
#endif
diff --git a/c/src/libchip/serial/z85c30_reg.c b/c/src/libchip/serial/z85c30_reg.c
new file mode 100644
index 0000000000..af1f761db8
--- /dev/null
+++ b/c/src/libchip/serial/z85c30_reg.c
@@ -0,0 +1,103 @@
+/*
+ * This file contains a typical set of register access routines which may be
+ * used with the z85c30 chip if accesses to the chip are as follows:
+ *
+ * + registers are accessed as bytes
+ *
+ * COPYRIGHT (c) 1989-1997.
+ * On-Line Applications Research Corporation (OAR).
+ * Copyright assigned to U.S. Government, 1994.
+ *
+ * The license and distribution terms for this file may be
+ * found in the file LICENSE in this distribution or at
+ * http://www.OARcorp.com/rtems/license.html.
+ *
+ * $Id$
+ */
+
+#include <rtems.h>
+
+#ifndef _Z85C30_MULTIPLIER
+#define _Z85C30_MULTIPLIER 1
+#define _Z85C30_NAME(_X) _X
+#define _Z85C30_TYPE unsigned8
+#endif
+
+/*
+ * Z85C30 Get Register Routine
+ */
+
+unsigned8 _Z85C30_NAME(z85c30_get_register)(
+ unsigned32 ulCtrlPort,
+ unsigned8 ucRegNum
+)
+{
+ _Z85C30_TYPE *port;
+ unsigned8 data;
+ rtems_interrupt_level level;
+
+ port = (_Z85C30_TYPE *)ulCtrlPort;
+
+ rtems_interrupt_disable(level);
+
+ if(ucRegNum) {
+ *port = ucRegNum;
+ }
+ data = *port;
+ rtems_interrupt_disable(level);
+
+ return data;
+}
+
+/*
+ * Z85C30 Set Register Routine
+ */
+
+void _Z85C30_NAME(z85c30_set_register)(
+ unsigned32 ulCtrlPort,
+ unsigned8 ucRegNum,
+ unsigned8 ucData
+)
+{
+ _Z85C30_TYPE *port;
+ rtems_interrupt_level level;
+
+ port = (_Z85C30_TYPE *)ulCtrlPort;
+
+ rtems_interrupt_disable(level);
+ if(ucRegNum) {
+ *port = ucRegNum;
+ }
+ *port = ucData;
+ rtems_interrupt_disable(level);
+}
+
+
+/*
+ * Z85C30 Get Data Routine
+ */
+
+unsigned8 _Z85C30_NAME(z85c30_get_data)(
+ unsigned32 ulDataPort
+)
+{
+ _Z85C30_TYPE *port;
+
+ port = (_Z85C30_TYPE *)ulDataPort;
+ return *port;
+}
+
+/*
+ * Z85C30 Set Data Routine
+ */
+
+void _Z85C30_NAME(z85c30_set_data)(
+ unsigned32 ulDataPort,
+ unsigned8 ucData
+)
+{
+ _Z85C30_TYPE *port;
+
+ port = (_Z85C30_TYPE *)ulDataPort;
+ *port = ucData;
+}