summaryrefslogtreecommitdiffstats
path: root/c/src/lib/libbsp/mips/genmongoosev/console/mg5uart_reg.c
diff options
context:
space:
mode:
authorJoel Sherrill <joel.sherrill@oarcorp.com>2014-10-08 15:06:52 -0500
committerJoel Sherrill <joel.sherrill@oarcorp.com>2014-10-10 10:16:57 -0500
commit8536b67bab9886ea992f08fe23e35a84579df573 (patch)
tree4d4997eacaacc0ea4ecbb6f6a8f10797dfe731a6 /c/src/lib/libbsp/mips/genmongoosev/console/mg5uart_reg.c
parentarm: Fix warning (diff)
downloadrtems-8536b67bab9886ea992f08fe23e35a84579df573.tar.bz2
Move Mongoose-V specific devices into BSP.
Putting the duart in libcpu was very optimistic and presumptuous. It has never been used again on another SoC and is BSP specific.
Diffstat (limited to 'c/src/lib/libbsp/mips/genmongoosev/console/mg5uart_reg.c')
-rw-r--r--c/src/lib/libbsp/mips/genmongoosev/console/mg5uart_reg.c58
1 files changed, 58 insertions, 0 deletions
diff --git a/c/src/lib/libbsp/mips/genmongoosev/console/mg5uart_reg.c b/c/src/lib/libbsp/mips/genmongoosev/console/mg5uart_reg.c
new file mode 100644
index 0000000000..134695fb98
--- /dev/null
+++ b/c/src/lib/libbsp/mips/genmongoosev/console/mg5uart_reg.c
@@ -0,0 +1,58 @@
+/*
+ * This file contains a typical set of register access routines which may be
+ * used with the mg5uart chip if accesses to the chip are as follows:
+ *
+ * + registers are accessed as uint32_t 's
+ * + registers are only u32-aligned (no address gaps)
+ *
+ * COPYRIGHT (c) 1989-2001.
+ * 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>
+
+#ifndef _MG5UART_MULTIPLIER
+#define _MG5UART_MULTIPLIER 1
+#define _MG5UART_NAME(_X) _X
+#define _MG5UART_TYPE uint32_t
+#endif
+
+#define CALCULATE_REGISTER_ADDRESS( _base, _reg ) \
+ (_MG5UART_TYPE *)((_base) + ((_reg) * _MG5UART_MULTIPLIER ))
+
+/*
+ * MG5UART Get Register Routine
+ */
+
+uint8_t _MG5UART_NAME(mg5uart_get_register)(
+ uint32_t ulCtrlPort,
+ uint8_t ucRegNum
+)
+{
+ _MG5UART_TYPE *port;
+
+ port = CALCULATE_REGISTER_ADDRESS( ulCtrlPort, ucRegNum );
+
+ return *port;
+}
+
+/*
+ * MG5UART Set Register Routine
+ */
+
+void _MG5UART_NAME(mg5uart_set_register)(
+ uint32_t ulCtrlPort,
+ uint8_t ucRegNum,
+ uint8_t ucData
+)
+{
+ _MG5UART_TYPE *port;
+
+ port = CALCULATE_REGISTER_ADDRESS( ulCtrlPort, ucRegNum );
+
+ *port = ucData;
+}