summaryrefslogtreecommitdiffstats
path: root/bsps/shared/dev/serial/z85c30_reg.c
diff options
context:
space:
mode:
authorSebastian Huber <sebastian.huber@embedded-brains.de>2018-04-03 07:20:11 +0200
committerSebastian Huber <sebastian.huber@embedded-brains.de>2018-04-04 10:13:28 +0200
commit27de4e1fb8bcdbdd8cb882fc0d7a2c152b4e027a (patch)
treedef0664dcddc53fd5d599b455c64f76ca2293606 /bsps/shared/dev/serial/z85c30_reg.c
parentbsps: Move config macros to RTEMS_BSP_CONFIGURE (diff)
downloadrtems-27de4e1fb8bcdbdd8cb882fc0d7a2c152b4e027a.tar.bz2
bsps: Move libchip to bsps
This patch is a part of the BSP source reorganization. Update #3285.
Diffstat (limited to 'bsps/shared/dev/serial/z85c30_reg.c')
-rw-r--r--bsps/shared/dev/serial/z85c30_reg.c72
1 files changed, 72 insertions, 0 deletions
diff --git a/bsps/shared/dev/serial/z85c30_reg.c b/bsps/shared/dev/serial/z85c30_reg.c
new file mode 100644
index 0000000000..6e7b5d3494
--- /dev/null
+++ b/bsps/shared/dev/serial/z85c30_reg.c
@@ -0,0 +1,72 @@
+/*
+ * 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).
+ *
+ * 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.
+ */
+
+#include <rtems.h>
+
+#include <libchip/z85c30.h>
+
+#ifndef _Z85C30_MULTIPLIER
+#define _Z85C30_MULTIPLIER 1
+#define _Z85C30_NAME(_X) _X
+#define _Z85C30_TYPE uint8_t
+#endif
+
+/*
+ * Z85C30 Get Register Routine
+ */
+
+uint8_t _Z85C30_NAME(z85c30_get_register)(
+ uintptr_t ulCtrlPort,
+ uint8_t ucRegNum
+)
+{
+ _Z85C30_TYPE *port;
+ uint8_t data;
+ rtems_interrupt_level level;
+
+ port = (_Z85C30_TYPE *)ulCtrlPort;
+
+ rtems_interrupt_disable(level);
+
+ if(ucRegNum) {
+ *port = ucRegNum;
+ }
+ data = *port;
+ rtems_interrupt_enable(level);
+
+ return data;
+}
+
+/*
+ * Z85C30 Set Register Routine
+ */
+
+void _Z85C30_NAME(z85c30_set_register)(
+ uintptr_t ulCtrlPort,
+ uint8_t ucRegNum,
+ uint8_t ucData
+)
+{
+ _Z85C30_TYPE *port;
+ rtems_interrupt_level level;
+
+ port = (_Z85C30_TYPE *)ulCtrlPort;
+
+ rtems_interrupt_disable(level);
+ if(ucRegNum) {
+ *port = ucRegNum;
+ }
+ *port = ucData;
+ rtems_interrupt_enable(level);
+}