summaryrefslogtreecommitdiffstats
path: root/c/src/lib/libcpu/sh/sh7045/include/io_types.h
diff options
context:
space:
mode:
authorJoel Sherrill <joel.sherrill@OARcorp.com>1999-11-18 21:22:58 +0000
committerJoel Sherrill <joel.sherrill@OARcorp.com>1999-11-18 21:22:58 +0000
commit4a238002e71ec018723229f8669363a5ffb7302e (patch)
treefc5a57faf9a30225bd1f3fa2d713b85815cb77ef /c/src/lib/libcpu/sh/sh7045/include/io_types.h
parentCorrected to include extra arguments for simulators on sparc (diff)
downloadrtems-4a238002e71ec018723229f8669363a5ffb7302e.tar.bz2
Patch from "John M. Mills" <jmills@tga.com> with subsequent cleanup from
Ralf Corsepius <corsepiu@faw.uni-ulm.de> that adds initial Hitachi SH-2 support to RTEMS. Ralf's comments are: Changes: ------ 1. SH-Port: * Many files renamed. * CONSOLE_DEVNAME and MHZ defines removed from libcpu. * console.c moved to libbsp/sh/shared, build in libbsp/sh/<BSP>/console applying VPATH. * CONSOLE_DEVNAME made BSP-specific, replacement is defined in bsp.h * MHZ define replaced with HZ (extendent resolution) in custom/*.cfg * -DHZ=HZ used in bspstart.c, only * Makefile variable HZ used in bsp-dependent directories only. 2. SH1-Port * clock-driver rewritten to provide better resolution for odd CPU frequencies. This driver is only partially tested on hardware, ie. sightly experimental, but I don't expect severe problems with it. * Polling SCI-driver added. This driver is experimental and completly untested yet. Therefore it is not yet used for the console (/dev/console is still pointing to /dev/null, cf. gensh1/bsp.h). * minor changes to the timer driver * SH1 specific delay()/CPU_delay() now is implemented as a function 3. SH2-Port * Merged * IMO, the code is still in its infancy. Therefore I have interspersed comments (FIXME) it for items which I think John should look after. * sci and console drivers partially rewritten and extended (John, I hope you don't mind). * Copyright notices are not yet adapted
Diffstat (limited to 'c/src/lib/libcpu/sh/sh7045/include/io_types.h')
-rw-r--r--c/src/lib/libcpu/sh/sh7045/include/io_types.h87
1 files changed, 87 insertions, 0 deletions
diff --git a/c/src/lib/libcpu/sh/sh7045/include/io_types.h b/c/src/lib/libcpu/sh/sh7045/include/io_types.h
new file mode 100644
index 0000000000..18ba181143
--- /dev/null
+++ b/c/src/lib/libcpu/sh/sh7045/include/io_types.h
@@ -0,0 +1,87 @@
+/************************************************************************
+ *
+ * Data types and constants for Hitachi SH704X on-chip peripherals
+ *
+ * Author: John M.Mills (jmills@tga.com)
+ *
+ * COPYRIGHT (c) 1999, TGA Technologies, Norcross, GA, USA
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+ *
+ * This file may be distributed as part of the RTEMS software item.
+ *
+ * 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.
+ *
+ * John M. Mills (jmills@tga.com)
+ * TGA Technologies, Inc.
+ * 100 Pinnacle Way, Suite 140
+ * Norcross, GA 30071 U.S.A.
+ *
+ * This modified file may be copied and distributed in accordance
+ * the above-referenced license. It is provided for critique and
+ * developmental purposes without any warranty nor representation
+ * by the authors or by TGA Technologies.
+ *
+ * $Id$
+ *
+ *
+ ************************************************************************/
+
+#ifndef _sh_io_types_h
+#define _sh_io_types_h
+
+#include <rtems/score/iosh7045.h>
+#include <termios.h>
+
+typedef enum {SCI0, SCI1} portNo;
+typedef enum {eight, seven} dataBits;
+typedef enum {one, two} stopBits;
+typedef enum {even, odd} parity;
+
+typedef struct {
+ portNo line;
+ int speed_ix;
+ dataBits dBits;
+ int parEn;
+ parity par;
+ int mulPro;
+ stopBits sBits;
+} sci_setup_t;
+
+typedef union{
+ unsigned char Reg; /* By Register */
+ struct { /* By Field */
+ unsigned char Sync :1; /* Async/Sync */
+ unsigned char DBts :1; /* Char.Length */
+ unsigned char ParEn :1; /* Parity En.*/
+ unsigned char Odd :1; /* Even/Odd */
+ unsigned char SBts :1; /* No.Stop Bits */
+ unsigned char MulP :1; /* Multi-Proc. */
+ unsigned char Dvsr :2; /* Clock Sel. */
+ } Fld;
+} sci_smr_t;
+
+typedef union {
+ unsigned char Reg; /* By Register */
+ struct { /* By Field */
+ unsigned char TIE :1; /* Tx.Int.En. */
+ unsigned char RIE :1; /* Rx.Int.En. */
+ unsigned char TE :1; /* Tx.En. */
+ unsigned char RE :1; /* Rx.En. */
+ unsigned char MPIE:1; /* Mult.Pro.Int.En. */
+ unsigned char TEIE:1; /* Tx.End Int.En. */
+ unsigned char CkSrc :2; /* Clock Src. */
+ } Fld;
+} sci_scr_t;
+
+typedef struct {
+ unsigned char n ;
+ unsigned char N ;
+} sci_bitrate_t;
+
+#endif /* _sh_io_types_h */
+