]> CyberLeo.Net >> Repos - FreeBSD/releng/10.0.git/blob - sys/dev/ctau/ds2153.h
- Copy stable/10 (r259064) to releng/10.0 as part of the
[FreeBSD/releng/10.0.git] / sys / dev / ctau / ds2153.h
1 /*-
2  * Dallas DS2153, DS21x54 single-chip E1 tranceiver registers.
3  *
4  * Copyright (C) 1996 Cronyx Engineering.
5  * Author: Serge Vakulenko, <vak@cronyx.ru>
6  *
7  * This software is distributed with NO WARRANTIES, not even the implied
8  * warranties for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
9  *
10  * Authors grant any other persons or organisations permission to use
11  * or modify this software as long as this message is kept with the software,
12  * all derivative works or modified versions.
13  *
14  * Cronyx Id: ds2153.h,v 1.2.4.1 2003/11/12 17:22:33 rik Exp $
15  * $FreeBSD$
16  */
17
18 /*
19  * Control and test registers
20  */
21 #define DS_RCR1         0x10    /* rw - receive control 1 */
22 #define DS_RCR2         0x11    /* rw - receive control 2 */
23 #define DS_TCR1         0x12    /* rw - transmit control 1 */
24 #define DS_TCR2         0x13    /* rw - transmit control 2 */
25 #define DS_CCR1         0x14    /* rw - common control 1 */
26 #define DS_CCR2         0x1a    /* rw - common control 2 */
27 #define DS_CCR3         0x1b    /* rw - common control 3 */
28 #define DS_LICR         0x18    /* rw - line interface control */
29 #define DS_IMR1         0x16    /* rw - interrupt mask 1 */
30 #define DS_IMR2         0x17    /* rw - interrupt mask 2 */
31 #define DS_TEST1        0x15    /* rw - test 1 */
32 #define DS_TEST2        0x19    /* rw - test 2 */
33
34 /*
35  * Status and information registers
36  */
37 #define DS_RIR          0x08    /* r  - receive information */
38 #define DS_SSR          0x1e    /* r  - synchronizer status */
39 #define DS_SR1          0x06    /* r  - status 1 */
40 #define DS_SR2          0x07    /* r  - status 2 */
41
42 /*
43  * Error count registers
44  */
45 #define DS_VCR1         0x00    /* r  - BPV or code violation count 1 */
46 #define DS_VCR2         0x01    /* r  - BPV or code violation count 2 */
47 #define DS_CRCCR1       0x02    /* r  - CRC4 error count 1 */
48 #define DS_CRCCR2       0x03    /* r  - CRC4 error count 2 */
49 #define DS_EBCR1        0x04    /* r  - E-bit count 1 */
50 #define DS_EBCR2        0x05    /* r  - E-bit count 2 */
51 #define DS_FASCR1       0x02    /* r  - FAS error count 1 */
52 #define DS_FASCR2       0x04    /* r  - FAS error count 2 */
53
54 /*
55  * Signaling registers
56  */
57 #define DS_RS           0x30    /* r  - receive signaling 1..16 */
58 #define DS_TS           0x40    /* rw - transmit signaling 1..16 */
59
60 /*
61  * Transmit idle registers
62  */
63 #define DS_TIR          0x26    /* rw - transmit idle 1..4 */
64 #define DS_TIDR         0x2a    /* rw - transmit idle definition */
65
66 /*
67  * Clock blocking registers
68  */
69 #define DS_RCBR         0x2b    /* rw - receive channel blocking 1..4 */
70 #define DS_TCBR         0x22    /* rw - transmit channel blocking 1..4 */
71
72 /*
73  * Slot 0 registers
74  */
75 #define DS_RAF          0x2f    /* r  - receive align frame */
76 #define DS_RNAF         0x1f    /* r  - receive non-align frame */
77 #define DS_TAF          0x20    /* rw - transmit align frame */
78 #define DS_TNAF         0x21    /* rw - transmit non-align frame */
79
80 /*----------------------------------------------
81  * Receive control register 1
82  */
83 #define RCR1_RSO        0x00    /* RSYNC outputs frame boundaries */
84 #define RCR1_RSI        0x20    /* RSYNC is input (elastic store) */
85 #define RCR1_RSO_CAS    0x40    /* RSYNC outputs CAS multiframe boundaries */
86 #define RCR1_RSO_CRC4   0xc0    /* RSYNC outputs CRC4 multiframe boundaries */
87
88 #define RCR1_FRC        0x04    /* frame resync criteria */
89 #define RCR1_SYNCD      0x02    /* auto resync disable */
90 #define RCR1_RESYNC     0x01    /* force resync */
91
92 /*
93  * Receive control register 2
94  */
95 #define RCR2_SA_8       0x80    /* output Sa8 bit at RLINK pin */
96 #define RCR2_SA_7       0x40    /* output Sa7 bit at RLINK pin */
97 #define RCR2_SA_6       0x20    /* output Sa6 bit at RLINK pin */
98 #define RCR2_SA_5       0x10    /* output Sa5 bit at RLINK pin */
99 #define RCR2_SA_4       0x08    /* output Sa4 bit at RLINK pin */
100 #define RCR2_RSCLKM     0x04    /* receive side SYSCLK mode 2048 */
101 #define RCR2_RESE       0x02    /* receive side elastic store enable */
102
103 /*
104  * Transmit control register 1
105  */
106 #define TCR1_TFPT       0x40    /* source timeslot 0 from TSER pin */
107 #define TCR1_T16S       0x20    /* source timeslot 16 from TS1..TS16 regs */
108 #define TCR1_TUA1       0x10    /* transmit unframed all ones */
109 #define TCR1_TSIS       0x08    /* source Si bits from TAF/TNAF registers */
110 #define TCR1_TSA1       0x04    /* transmit timeslot 16 all ones */
111
112 #define TCR1_TSI        0x00    /* TSYNC is input */
113 #define TCR1_TSO        0x01    /* TSYNC outputs frame boundaries */
114 #define TCR1_TSO_MF     0x03    /* TSYNC outputs CAS/CRC4 m/f boundaries */
115
116 /*
117  * Transmit control register 2
118  */
119 #define TCR2_SA_8       0x80    /* source Sa8 bit from TLINK pin */
120 #define TCR2_SA_7       0x40    /* source Sa7 bit from TLINK pin */
121 #define TCR2_SA_6       0x20    /* source Sa6 bit from TLINK pin */
122 #define TCR2_SA_5       0x10    /* source Sa5 bit from TLINK pin */
123 #define TCR2_SA_4       0x08    /* source Sa4 bit from TLINK pin */
124 #define TCR2_AEBE       0x02    /* automatic E-bit enable */
125 #define TCR2_P16F       0x01    /* pin 16 is Loss of Transmit Clock */
126
127 /*
128  * Common control register 1
129  */
130 #define CCR1_FLOOP      0x80    /* enable framer loopback */
131 #define CCR1_THDB3      0x40    /* enable transmit HDB3 */
132 #define CCR1_TG802      0x20    /* enable transmit G.802 */
133 #define CCR1_TCRC4      0x10    /* enable transmit CRC4 */
134 #define CCR1_CCS        0x08    /* common channel signaling mode */
135 #define CCR1_RHDB3      0x04    /* enable receive HDB3 */
136 #define CCR1_RG802      0x02    /* enable receive G.802 */
137 #define CCR1_RCRC4      0x01    /* enable receive CRC4 */
138
139 /*
140  * Common control register 2
141  */
142 #define CCR2_EC625      0x80    /* update error counters every 62.5 ms */
143 #define CCR2_CNTCV      0x40    /* count code violations */
144 #define CCR2_AUTOAIS    0x20    /* automatic AIS generation */
145 #define CCR2_AUTORA     0x10    /* automatic remote alarm generation */
146 #define CCR2_LOFA1      0x08    /* force RSER to 1 under loss of frame align */
147 #define CCR2_TRCLK      0x04    /* switch transmitter to RCLK if TCLK stops */
148 #define CCR2_RLOOP      0x02    /* enable remote loopback */
149 #define CCR2_LLOOP      0x01    /* enable local loopback */
150
151 /*
152  * Common control register 3
153  */
154 #define CCR3_TESE       0x80    /* enable transmit elastic store */
155 #define CCR3_TCBFS      0x40    /* TCBRs define signaling bits to insert */
156 #define CCR3_TIRSER     0x20    /* TIRs define data channels from RSER pin */
157 #define CCR3_ESRESET    0x10    /* elastic store reset */
158 #define CCR3_LIRESET    0x08    /* line interface reset */
159 #define CCR3_THSE       0x04    /* insert signaling from TSIG into TSER */
160 #define CCR3_TSCLKM     0x02    /* transmit backplane clock 2048 */
161
162 /*
163  * Line interface control register
164  */
165 #define LICR_DB21       0x80    /* return loss 21 dB */
166
167 #define LICR_LB75       0x00    /* 75 Ohm normal */
168 #define LICR_LB120      0x20    /* 120 Ohm normal */
169 #define LICR_LB75P      0x40    /* 75 Ohm protected */
170 #define LICR_LB120P     0x60    /* 120 Ohm protected */
171
172 #define LICR_HIGAIN     0x10    /* receive gain 30 dB */
173 #define LICR_JA_TX      0x08    /* transmit side jitter attenuator select */
174 #define LICR_JA_LOW     0x04    /* low jitter attenuator depth (32 bits) */
175 #define LICR_JA_DISABLE 0x02    /* disable jitter attenuator */
176 #define LICR_POWERDOWN  0x01    /* transmit power down */
177
178 /*----------------------------------------------
179  * Receive information register
180  */
181 #define RIR_TES_FULL    0x80    /* transmit elastic store full */
182 #define RIR_TES_EMPTY   0x40    /* transmit elastic store empty */
183 #define RIR_JALT        0x20    /* jitter attenuation limit trip */
184 #define RIR_ES_FULL     0x10    /* elastic store full */
185 #define RIR_ES_EMPTY    0x08    /* elastic store empty */
186 #define RIR_RESYNC_CRC  0x04    /* CRC4 resync (915/1000 errors) */
187 #define RIR_RESYNC      0x02    /* frame resync (three consec errors) */
188 #define RIR_RESYNC_CAS  0x01    /* CAS resync (two consec errors) */
189
190 /*
191  * Synchronizer status register
192  */
193 #define SSR_CSC(v)      (((v) >> 2) & 0x3c | ((v) >> 3) & 1)
194                                 /* CRC4 sync counter (6 bits, bit 1 n/a) */
195 #define SSR_SYNC        0x04    /* frame alignment sync active */
196 #define SSR_SYNC_CAS    0x02    /* CAS multiframe sync active */
197 #define SSR_SYNC_CRC4   0x01    /* CRC4 multiframe sync active */
198
199 /*
200  * Status register 1
201  */
202 #define SR1_RSA1        0x80    /* receive signaling all ones */
203 #define SR1_RDMA        0x40    /* receive distant multiframe alarm */
204 #define SR1_RSA0        0x20    /* receive signaling all zeros */
205 #define SR1_RSLIP       0x10    /* receive elastic store slip event */
206 #define SR1_RUA1        0x08    /* receive unframed all ones */
207 #define SR1_RRA         0x04    /* receive remote alarm */
208 #define SR1_RCL         0x02    /* receive carrier loss */
209 #define SR1_RLOS        0x01    /* receive loss of sync */
210
211 /*
212  * Status register 2
213  */
214 #define SR2_RMF         0x80    /* receive CAS multiframe (every 2 ms) */
215 #define SR2_RAF         0x40    /* receive align frame (every 250 us) */
216 #define SR2_TMF         0x20    /* transmit multiframe (every 2 ms) */
217 #define SR2_SEC         0x10    /* one second timer (or 62.5 ms) */
218 #define SR2_TAF         0x08    /* transmit align frame (every 250 us) */
219 #define SR2_LOTC        0x04    /* loss of transmit clock */
220 #define SR2_RCMF        0x02    /* receive CRC4 multiframe (every 2 ms) */
221 #define SR2_TSLIP       0x01    /* transmit elastic store slip event */
222
223 /*
224  * Error count registers
225  */
226 #define VCR(h,l)   (((short) (h) << 8) | (l))              /* 16-bit code violation */
227 #define CRCCR(h,l) (((short) (h) << 8 & 0x300) | (l))      /* 10-bit CRC4 error count */
228 #define EBCR(h,l)  (((short) (h) << 8 & 0x300) | (l))      /* 10-bit E-bit count */
229 #define FASCR(h,l) (((short) (h) << 4 & 0xfc0) | (l) >> 2) /* 12-bit FAS error count */
230
231 #define FASCRH(h) ((h) << 4)                    /* 12-bit FAS error count */
232 #define FASCRL(l) ((l) >> 2)                    /* 12-bit FAS error count */
233
234 /*
235  * DS21x54 additional registers
236  */
237 #define DS_IDR          0x0f    /* r  - device id */
238 #define DS_TSACR        0x1c    /* rw - transmit Sa bit control */
239 #define DS_CCR6         0x1d    /* rw - common control 6 */
240
241 #define DS_TSIAF        0x50    /* rw - transmit Si bits align frame */
242 #define DS_TSINAF       0x51    /* rw - transmit Si bits non-align frame */
243 #define DS_TRA          0x52    /* rw - transmit remote alarm bits */
244 #define DS_TSA4         0x53    /* rw - transmit Sa4 bits */
245 #define DS_TSA5         0x54    /* rw - transmit Sa5 bits */
246 #define DS_TSA6         0x55    /* rw - transmit Sa6 bits */
247 #define DS_TSA7         0x56    /* rw - transmit Sa7 bits */
248 #define DS_TSA8         0x57    /* rw - transmit Sa8 bits */
249 #define DS_RSIAF        0x58    /* r  - receive Si bits align frame */
250 #define DS_RSINAF       0x59    /* r  - receive Si bits non-align frame */
251 #define DS_RRA          0x5a    /* r  - receive remote alarm bits */
252 #define DS_RSA4         0x5b    /* r  - receive Sa4 bits */
253 #define DS_RSA5         0x5c    /* r  - receive Sa5 bits */
254 #define DS_RSA6         0x5d    /* r  - receive Sa6 bits */
255 #define DS_RSA7         0x5e    /* r  - receive Sa7 bits */
256 #define DS_RSA8         0x5f    /* r  - receive Sa8 bits */
257
258 #define DS_TCC1         0xa0    /* rw - transmit channel control 1 */
259 #define DS_TCC2         0xa1    /* rw - transmit channel control 2 */
260 #define DS_TCC3         0xa2    /* rw - transmit channel control 3 */
261 #define DS_TCC4         0xa3    /* rw - transmit channel control 4 */
262 #define DS_RCC1         0xa4    /* rw - receive channel control 1 */
263 #define DS_RCC2         0xa5    /* rw - receive channel control 2 */
264 #define DS_RCC3         0xa6    /* rw - receive channel control 3 */
265 #define DS_RCC4         0xa7    /* rw - receive channel control 4 */
266
267 #define DS_CCR4         0xa8    /* rw - common control 4 */
268 #define DS_TDS0M        0xa9    /* r  - transmit ds0 monitor */
269 #define DS_CCR5         0xaa    /* rw - common control 5 */
270 #define DS_RDS0M        0xab    /* r  - receive ds0 monitor */
271 #define DS_TEST3        0xac    /* rw - test 3, set to 00h */
272
273 #define DS_HCR          0xb0    /* rw - hdlc control */
274 #define DS_HSR          0xb1    /* rw - hdlc status */
275 #define DS_HIMR         0xb2    /* rw - hdlc interrupt mask */
276 #define DS_RHIR         0xb3    /* rw - receive hdlc information */
277 #define DS_RHFR         0xb4    /* rw - receive hdlc fifo */
278 #define DS_IBO          0xb5    /* rw - interleave bus operation */
279 #define DS_THIR         0xb6    /* rw - transmit hdlc information */
280 #define DS_THFR         0xb7    /* rw - transmit hdlc fifo */
281 #define DS_RDC1         0xb8    /* rw - receive hdlc ds0 control 1 */
282 #define DS_RDC2         0xb9    /* rw - receive hdlc ds0 control 2 */
283 #define DS_TDC1         0xba    /* rw - transmit hdlc ds0 control 1 */
284 #define DS_TDC2         0xbb    /* rw - transmit hdlc ds0 control 2 */
285
286 #define CCR4_RLB        0x80    /* enable remote loopback */
287 #define CCR4_LLB        0x40    /* enable local loopback */
288 #define CCR5_LIRST      0x80    /* line interface reset */
289 #define CCR6_RESR       0x02    /* receive elastic store reset */
290 #define CCR6_TESR       0x01    /* transmit elastic store reset */