summaryrefslogtreecommitdiffstats
path: root/c/src/lib/libcpu/sh/sh7045/include/io_types.h
blob: 18ba18114326efa611e55322a4b2b33202a30967 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
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 */