annotate packages/io/serial/current/src/arm/pid_serial.h @ 50:a0774359f013 ecos-sw-1999-11-02

Merge from eCos master repository on 1999-11-02-17:02:15-GMT
author jlarmour
date Tue, 02 Nov 1999 20:57:07 +0000
parents 1370c5e55234
children c38311975d4f
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
2
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents:
diff changeset
1 #ifndef CYGONCE_ARM_PID_SERIAL_H
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents:
diff changeset
2 #define CYGONCE_ARM_PID_SERIAL_H
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents:
diff changeset
3
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents:
diff changeset
4 // ====================================================================
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents:
diff changeset
5 //
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents:
diff changeset
6 // pid_serial.h
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents:
diff changeset
7 //
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents:
diff changeset
8 // Device I/O - Description of ARM PID7T serial hardware
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents:
diff changeset
9 //
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents:
diff changeset
10 // ====================================================================
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents:
diff changeset
11 //####COPYRIGHTBEGIN####
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents:
diff changeset
12 //
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents:
diff changeset
13 // -------------------------------------------
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents:
diff changeset
14 // The contents of this file are subject to the Cygnus eCos Public License
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents:
diff changeset
15 // Version 1.0 (the "License"); you may not use this file except in
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents:
diff changeset
16 // compliance with the License. You may obtain a copy of the License at
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents:
diff changeset
17 // http://sourceware.cygnus.com/ecos
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents:
diff changeset
18 //
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents:
diff changeset
19 // Software distributed under the License is distributed on an "AS IS"
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents:
diff changeset
20 // basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents:
diff changeset
21 // License for the specific language governing rights and limitations under
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents:
diff changeset
22 // the License.
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents:
diff changeset
23 //
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents:
diff changeset
24 // The Original Code is eCos - Embedded Cygnus Operating System, released
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents:
diff changeset
25 // September 30, 1998.
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents:
diff changeset
26 //
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents:
diff changeset
27 // The Initial Developer of the Original Code is Cygnus. Portions created
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents:
diff changeset
28 // by Cygnus are Copyright (C) 1998,1999 Cygnus Solutions. All Rights Reserved.
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents:
diff changeset
29 // -------------------------------------------
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents:
diff changeset
30 //
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents:
diff changeset
31 //####COPYRIGHTEND####
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents:
diff changeset
32 // ====================================================================
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents:
diff changeset
33 //#####DESCRIPTIONBEGIN####
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents:
diff changeset
34 //
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents:
diff changeset
35 // Author(s): gthomas
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents:
diff changeset
36 // Contributors: gthomas
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents:
diff changeset
37 // Date: 1999-02-04
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents:
diff changeset
38 // Purpose: Internal interfaces for serial I/O drivers
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents:
diff changeset
39 // Description:
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents:
diff changeset
40 //
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents:
diff changeset
41 //####DESCRIPTIONEND####
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents:
diff changeset
42 //
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents:
diff changeset
43 // ====================================================================
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents:
diff changeset
44
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents:
diff changeset
45 // Description of serial ports on ARM PID7T
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents:
diff changeset
46
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents:
diff changeset
47 struct serial_port {
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents:
diff changeset
48 unsigned char _byte[32];
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents:
diff changeset
49 };
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents:
diff changeset
50
50
a0774359f013 Merge from eCos master repository on 1999-11-02-17:02:15-GMT
jlarmour
parents: 48
diff changeset
51 // Little-endian version
a0774359f013 Merge from eCos master repository on 1999-11-02-17:02:15-GMT
jlarmour
parents: 48
diff changeset
52 #if (CYG_BYTEORDER == CYG_LSBFIRST)
a0774359f013 Merge from eCos master repository on 1999-11-02-17:02:15-GMT
jlarmour
parents: 48
diff changeset
53
2
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents:
diff changeset
54 #define reg(n) _byte[n*4]
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents:
diff changeset
55
50
a0774359f013 Merge from eCos master repository on 1999-11-02-17:02:15-GMT
jlarmour
parents: 48
diff changeset
56 #else // Big-endian version
a0774359f013 Merge from eCos master repository on 1999-11-02-17:02:15-GMT
jlarmour
parents: 48
diff changeset
57
a0774359f013 Merge from eCos master repository on 1999-11-02-17:02:15-GMT
jlarmour
parents: 48
diff changeset
58 #define reg(n) _byte[(n*4)^3]
a0774359f013 Merge from eCos master repository on 1999-11-02-17:02:15-GMT
jlarmour
parents: 48
diff changeset
59
a0774359f013 Merge from eCos master repository on 1999-11-02-17:02:15-GMT
jlarmour
parents: 48
diff changeset
60 #endif
a0774359f013 Merge from eCos master repository on 1999-11-02-17:02:15-GMT
jlarmour
parents: 48
diff changeset
61
2
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents:
diff changeset
62 // Receive control registers
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents:
diff changeset
63 #define rhr reg(0) // Receive holding register
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents:
diff changeset
64 #define isr reg(2) // Interrupt status register
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents:
diff changeset
65 #define lsr reg(5) // Line status register
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents:
diff changeset
66 #define msr reg(6) // Modem status register
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents:
diff changeset
67 #define scr reg(7) // Scratch register
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents:
diff changeset
68
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents:
diff changeset
69 // Transmit control registers
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents:
diff changeset
70 #define thr reg(0) // Transmit holding register
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents:
diff changeset
71 #define ier reg(1) // Interrupt enable register
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents:
diff changeset
72 #define fcr reg(2) // FIFO control register
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents:
diff changeset
73 #define lcr reg(3) // Line control register
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents:
diff changeset
74 #define mcr reg(4) // Modem control register
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents:
diff changeset
75 #define ldl reg(0) // LSB of baud rate
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents:
diff changeset
76 #define mdl reg(1) // MSB of baud rate
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents:
diff changeset
77
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents:
diff changeset
78 // Interrupt Enable Register
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents:
diff changeset
79 #define IER_RCV 0x01
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents:
diff changeset
80 #define IER_XMT 0x02
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents:
diff changeset
81 #define IER_LS 0x04
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents:
diff changeset
82 #define IER_MS 0x08
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents:
diff changeset
83
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents:
diff changeset
84 // Line Control Register
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents:
diff changeset
85 #define LCR_WL5 0x00 // Word length
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents:
diff changeset
86 #define LCR_WL6 0x01
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents:
diff changeset
87 #define LCR_WL7 0x02
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents:
diff changeset
88 #define LCR_WL8 0x03
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents:
diff changeset
89 #define LCR_SB1 0x00 // Number of stop bits
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents:
diff changeset
90 #define LCR_SB1_5 0x04 // 1.5 -> only valid with 5 bit words
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents:
diff changeset
91 #define LCR_SB2 0x04
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents:
diff changeset
92 #define LCR_PN 0x00 // Parity mode - none
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents:
diff changeset
93 #define LCR_PE 0x0C // Parity mode - even
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents:
diff changeset
94 #define LCR_PO 0x08 // Parity mode - odd
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents:
diff changeset
95 #define LCR_PM 0x28 // Forced "mark" parity
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents:
diff changeset
96 #define LCR_PS 0x38 // Forced "space" parity
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents:
diff changeset
97 #define LCR_DL 0x80 // Enable baud rate latch
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents:
diff changeset
98
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents:
diff changeset
99 // Line Status Register
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents:
diff changeset
100 #define LSR_RSR 0x01
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents:
diff changeset
101 #define LSR_THE 0x20
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents:
diff changeset
102
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents:
diff changeset
103 // Modem Control Register
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents:
diff changeset
104 #define MCR_DTR 0x01
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents:
diff changeset
105 #define MCR_RTS 0x02
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents:
diff changeset
106 #define MCR_INT 0x08 // Enable interrupts
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents:
diff changeset
107
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents:
diff changeset
108 // Interrupt status register
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents:
diff changeset
109 #define ISR_Tx 0x02
6
d376b777e2ce Merge from eCos master repository on 1999-05-14-19:27:43-BST
jlarmour
parents: 2
diff changeset
110 #define ISR_Rx 0x04
48
1370c5e55234 Merge from eCos master repository on 1999-10-25-21:18:27-BST
jlarmour
parents: 6
diff changeset
111 #define ISR_RxTO 0x0C
2
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents:
diff changeset
112
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents:
diff changeset
113 static unsigned char select_word_length[] = {
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents:
diff changeset
114 LCR_WL5, // 5 bits / word (char)
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents:
diff changeset
115 LCR_WL6,
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents:
diff changeset
116 LCR_WL7,
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents:
diff changeset
117 LCR_WL8
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents:
diff changeset
118 };
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents:
diff changeset
119
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents:
diff changeset
120 static unsigned char select_stop_bits[] = {
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents:
diff changeset
121 0,
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents:
diff changeset
122 LCR_SB1, // 1 stop bit
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents:
diff changeset
123 LCR_SB1_5, // 1.5 stop bit
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents:
diff changeset
124 LCR_SB2 // 2 stop bits
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents:
diff changeset
125 };
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents:
diff changeset
126
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents:
diff changeset
127 static unsigned char select_parity[] = {
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents:
diff changeset
128 LCR_PN, // No parity
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents:
diff changeset
129 LCR_PE, // Even parity
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents:
diff changeset
130 LCR_PO, // Odd parity
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents:
diff changeset
131 LCR_PM, // Mark parity
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents:
diff changeset
132 LCR_PS, // Space parity
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents:
diff changeset
133 };
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents:
diff changeset
134
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents:
diff changeset
135 static unsigned short select_baud[] = {
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents:
diff changeset
136 0, // Unused
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents:
diff changeset
137 0, // 50
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents:
diff changeset
138 0, // 75
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents:
diff changeset
139 1047, // 110
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents:
diff changeset
140 0, // 134.5
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents:
diff changeset
141 768, // 150
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents:
diff changeset
142 0, // 200
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents:
diff changeset
143 384, // 300
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents:
diff changeset
144 192, // 600
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents:
diff changeset
145 96, // 1200
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents:
diff changeset
146 24, // 1800
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents:
diff changeset
147 48, // 2400
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents:
diff changeset
148 0, // 3600
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents:
diff changeset
149 24, // 4800
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents:
diff changeset
150 16, // 7200
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents:
diff changeset
151 12, // 9600
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents:
diff changeset
152 8, // 14400
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents:
diff changeset
153 6, // 19200
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents:
diff changeset
154 3, // 38400
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents:
diff changeset
155 2, // 57600
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents:
diff changeset
156 1, // 115200
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents:
diff changeset
157 0, // 230400
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents:
diff changeset
158 };
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents:
diff changeset
159
443894e2e912 Block commit of eCos version 1.2.1
jlarmour
parents:
diff changeset
160 #endif // CYGONCE_ARM_PID_SERIAL_H