summaryrefslogtreecommitdiff
path: root/drivers/tdm/line_ctrl/slic_maxim.h
blob: f1b13245123b81909180bd8e2c48cd0306a42df7 (plain)
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
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
/*
 * drivers/tdm/line_ctrl/slic_maxim.h
 *
 * Copyright 2014 Freescale Semiconductor, Inc.
 *
 * Author: Zhao Qiang <B45475@freescale.com>
 *
 * This program is free software; you can redistribute  it and/or modify it
 * under  the terms of  the GNU General  Public License as published by the
 * Free Software Foundation;  either version 2 of the  License, or (at your
 * option) any later version.
 *
 *
 * 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.  See the GNU
 * General Public License for more details.
 *
 * You should have received a copy of the  GNU General Public License along
 * with this program; if not, write  to the Free Software Foundation, Inc.,
 * 675 Mass Ave, Cambridge, MA 02139, USA.
 */

#define DS26522_RF_ADDR_START	0x00
#define DS26522_RF_ADDR_END	0xef
#define DS26522_GLB_ADDR_START	0xf0
#define DS26522_GLB_ADDR_END	0xff
#define DS26522_TF_ADDR_START	0x100
#define DS26522_TF_ADDR_END	0x1ef
#define DS26522_LIU_ADDR_START	0x1000
#define DS26522_LIU_ADDR_END	0x101f
#define DS26522_TEST_ADDR_START	0x1008
#define DS26522_TEST_ADDR_END	0x101f
#define DS26522_BERT_ADDR_START	0x1100
#define DS26522_BERT_ADDR_END	0x110f

#define DS26522_RMMR_ADDR	0x80
#define DS26522_RCR1_ADDR	0x81
#define DS26522_RCR3_ADDR	0x83
#define DS26522_RIOCR_ADDR	0x84

#define DS26522_GTCR1_ADDR	0xf0
#define DS26522_GFCR_ADDR	0xf1
#define DS26522_GTCR2_ADDR	0xf2
#define DS26522_GTCCR_ADDR	0xf3
#define DS26522_GLSRR_ADDR	0xf5
#define DS26522_GFSRR_ADDR	0xf6
#define DS26522_IDR_ADDR	0xf8

#define DS26522_E1TAF_ADDR	0x164
#define DS26522_E1TNAF_ADDR	0x165
#define DS26522_TMMR_ADDR	0x180
#define DS26522_TCR1_ADDR	0x181
#define DS26522_TIOCR_ADDR	0x184

#define DS26522_LTRCR_ADDR	0x1000
#define DS26522_LTITSR_ADDR	0x1001
#define DS26522_LMCR_ADDR	0x1002
#define DS26522_LRISMR_ADDR	0x1007

#define MAX_NUM_OF_CHANNELS	8
#define PQ_MDS_8E1T1_BRD_REV	0x00
#define PQ_MDS_8E1T1_PLD_REV	0x00

#define DS26522_GTCCR_BPREFSEL_REFCLKIN	0xa0	/* REFCLKIO is an input */
#define DS26522_GTCCR_BFREQSEL_1544KHZ	0x08	/* Backplane reference clock
						   is 1.544MHz */
#define DS26522_GTCCR_FREQSEL_1544KHZ	0x04	/* The external master clock
						   is 1.544MHz or multiple
						   thereof */
#define DS26522_GTCCR_BFREQSEL_2048KHZ	0x00	/* Backplane reference clock
						   is 2.048MHz */
#define DS26522_GTCCR_FREQSEL_2048KHZ	0x00	/* The external master clock is
						   2.048MHz or multiple thereof
						*/

#define DS26522_GFCR_BPCLK_2048KHZ	0x00	/* Backplane Clock Select
						   2.048MHz */

#define DS26522_GTCR2_TSSYNCOUT	0x02	/* the TSSYNCIO is an 8kHz output
					   synchronous to the BPCLK */
#define DS26522_GTCR1	0x00

#define DS26522_GFSRR_RESET	0x01	/* Reset framer and BERT */
#define DS26522_GFSRR_NORMAL	0x00	/* Normal operation */

#define DS26522_GLSRR_RESET	0x01	/* Reset LIU */
#define DS26522_GLSRR_NORMAL	0x00	/* Normal operation */

#define DS26522_RMMR_SFTRST	0x02	/* Level sensitive soft reset */
#define DS26522_RMMR_FRM_EN	0x80	/* Framer enabled—all features
					   active */
#define DS26522_RMMR_INIT_DONE	0x40	/* Initialization Done */
#define DS26522_RMMR_T1		0x00	/* Receiver T1 Mode Select */
#define DS26522_RMMR_E1		0x01	/* Receiver E1 Mode Select */

#define DS26522_E1TAF_DEFAULT	0x1b	/* Transmit Align Frame Register */
#define DS26522_E1TNAF_DEFAULT	0x40	/* Transmit Non-Align Frame Register */

#define DS26522_TMMR_SFTRST	0x02	/* Level sensitive soft reset */
#define DS26522_TMMR_FRM_EN	0x80	/* Framer enabled—all features
					   active */
#define DS26522_TMMR_INIT_DONE	0x40	/* Initialization Done */
#define DS26522_TMMR_T1		0x00	/* Transmit T1 Mode Select */
#define DS26522_TMMR_E1		0x01	/* Transmit E1 Mode Select */

#define DS26522_RCR1_T1_SYNCT	0x80	/* qualify 24 bits */
#define DS26522_RCR1_T1_RB8ZS	0x40	/* B8ZS enabled */
#define DS26522_RCR1_T1_SYNCC	0x08	/* cross couple Ft and Fs pattern */

#define DS26522_RCR1_E1_HDB3	0x40	/* Receive HDB3 enabled */
#define DS26522_RCR1_E1_CCS	0x20	/* Receive CCS signaling mode */

#define DS26522_RIOCR_1544KHZ	0x00	/* RSYSCLK Mode Select is 1.544MHz */
#define DS26522_RIOCR_2048KHZ	0x10	/* RSYSCLK Mode Select is 2.048MHz or
					   IBO enabled */
#define DS26522_RIOCR_RSIO_OUT	0x00	/* RSYNC is an output */

#define DS26522_RCR3_FLB	0x01	/* Framer Loopback enabled */

#define DS26522_TIOCR_1544KHZ	0x00	/* TSYSCLK is 1.544MHz */
#define DS26522_TIOCR_2048KHZ	0x10	/* TSYSCLK is 2.048/4.096/8.192MHz or
					   IBO enabled */
#define DS26522_TIOCR_TSIO_OUT	0x04	/* TSYNC is an output */

#define DS26522_TCR1_TB8ZS	0x04	/* Transmit B8ZS Enable */

#define DS26522_LTRCR_T1	0x02	/* configures the LIU for T1 */
#define DS26522_LTRCR_E1	0x00	/* configures the LIU for E1 */

#define DS26522_LTITSR_TLIS_75OHM	0x00	/* Transmit Load
						   Impedance 75? */
#define DS26522_LTITSR_LBOS_75OHM	0x00	/* Transmit Pulse
						   Shape 75? */
#define DS26522_LTITSR_TLIS_100OHM	0x10	/* Transmit Load
						   Impedance 100? */
#define DS26522_LTITSR_TLIS_0DB_CSU	0x00	/* DSX-1/0dB CSU,
						   0ft–133ft ABAM 100? */

#define DS26522_LRISMR_75OHM	0x00	/* Receive Impedance 75? */
#define DS26522_LRISMR_100OHM	0x10	/* Receive Impedance 100? */
#define DS26522_LRISMR_MAX	0x03	/* Receive Impedance 120? */

#define DS26522_LMCR_TE	0x01	/* TTIP/TRING outputs enabled */


enum line_rate_t {
	LINE_RATE_T1,	/* T1 line rate (1.544 Mbps)      */
	LINE_RATE_E1	/* E1 line rate (2.048 Mbps)     */
};

enum tdm_trans_mode_t {
	NORMAL = 0,
	FRAMER_LB
};

enum card_support_type {
	LM_CARD = 0,
	DS26522_CARD,
	NO_CARD
};