OpenCores
URL https://opencores.org/ocsvn/or1k/or1k/trunk

Subversion Repositories or1k

[/] [or1k/] [trunk/] [linux/] [linux-2.4/] [drivers/] [sbus/] [audio/] [amd7930.h] - Blame information for rev 1765

Details | Compare with Previous | View Log

Line No. Rev Author Line
1 1275 phoenix
/* $Id: amd7930.h,v 1.1.1.1 2004-04-15 02:07:29 phoenix Exp $
2
 * drivers/sbus/audio/amd7930.h
3
 *
4
 * Copyright (C) 1996 Thomas K. Dyas (tdyas@noc.rutgers.edu)
5
 *
6
 * Definitions for the AMD79C30 Digital Subscriber Controller which is
7
 * used as an audio chip in sun4c architecture machines. The
8
 * information in this file is based on Advanced Micro Devices
9
 * Publication 09893, Rev G, Amendment /0, Final (a.k.a. the data
10
 * sheet).
11
 */
12
 
13
#ifndef _AMD7930_H_
14
#define _AMD7930_H_
15
 
16
#include <linux/types.h>
17
#include <linux/version.h>
18
 
19
/* Register interface presented to the CPU by the amd7930. */
20
#define CR      0x00UL          /* Command Register (W) */
21
#define IR      CR              /* Interrupt Register (R) */
22
#define DR      0x01UL          /* Data Register (R/W) */
23
#define DSR1    0x02UL          /* D-channel Status Register 1 (R) */
24
#define DER     0x03UL          /* D-channel Error Register (R) */
25
#define DCTB    0x04UL          /* D-channel Transmit Buffer (W) */
26
#define DCRB    DCTB            /* D-channel Receive Buffer (R) */
27
#define BBTB    0x05UL          /* Bb-channel Transmit Buffer (W) */
28
#define BBRB    BBTB            /* Bb-channel Receive Buffer (R) */
29
#define BCTB    0x06UL          /* Bc-channel Transmit Buffer (W) */
30
#define BCRB    BCTB            /* Bc-channel Receive Buffer (R) */
31
#define DSR2    0x07UL          /* D-channel Status Register 2 (R) */
32
 
33
/* Indirect registers in the Main Audio Processor. */
34
struct amd7930_map {
35
        __u16   x[8];
36
        __u16   r[8];
37
        __u16   gx;
38
        __u16   gr;
39
        __u16   ger;
40
        __u16   stgr;
41
        __u16   ftgr;
42
        __u16   atgr;
43
        __u8    mmr1;
44
        __u8    mmr2;
45
};
46
 
47
 
48
/* After an amd7930 interrupt, reading the Interrupt Register (ir)
49
 * clears the interrupt and returns a bitmask indicated which
50
 * interrupt source(s) require service
51
 */
52
 
53
#define AMR_IR_DTTHRSH                  0x01 /* D-channel xmit threshold */
54
#define AMR_IR_DRTHRSH                  0x02 /* D-channel recv threshold */
55
#define AMR_IR_DSRI                     0x04 /* D-channel packet status */
56
#define AMR_IR_DERI                     0x08 /* D-channel error */
57
#define AMR_IR_BBUF                     0x10 /* B-channel data xfer */
58
#define AMR_IR_LSRI                     0x20 /* LIU status */
59
#define AMR_IR_DSR2I                    0x40 /* D-channel buffer status */
60
#define AMR_IR_MLTFRMI                  0x80 /* multiframe or PP */
61
 
62
/* The amd7930 has "indirect registers" which are accessed by writing
63
 * the register number into the Command Register and then reading or
64
 * writing values from the Data Register as appropriate. We define the
65
 * AMR_* macros to be the indirect register numbers and AM_* macros to
66
 * be bits in whatever register is referred to.
67
 */
68
 
69
/* Initialization */
70
#define AMR_INIT                        0x21
71
#define         AM_INIT_ACTIVE                  0x01
72
#define         AM_INIT_DATAONLY                0x02
73
#define         AM_INIT_POWERDOWN               0x03
74
#define         AM_INIT_DISABLE_INTS            0x04
75
#define AMR_INIT2                       0x20
76
#define         AM_INIT2_ENABLE_POWERDOWN       0x20
77
#define         AM_INIT2_ENABLE_MULTIFRAME      0x10
78
 
79
/* Line Interface Unit */
80
#define AMR_LIU_LSR                     0xA1
81
#define         AM_LIU_LSR_STATE                0x07
82
#define         AM_LIU_LSR_F3                   0x08
83
#define         AM_LIU_LSR_F7                   0x10
84
#define         AM_LIU_LSR_F8                   0x20
85
#define         AM_LIU_LSR_HSW                  0x40
86
#define         AM_LIU_LSR_HSW_CHG              0x80
87
#define AMR_LIU_LPR                     0xA2
88
#define AMR_LIU_LMR1                    0xA3
89
#define         AM_LIU_LMR1_B1_ENABL            0x01
90
#define         AM_LIU_LMR1_B2_ENABL            0x02
91
#define         AM_LIU_LMR1_F_DISABL            0x04
92
#define         AM_LIU_LMR1_FA_DISABL           0x08
93
#define         AM_LIU_LMR1_REQ_ACTIV           0x10
94
#define         AM_LIU_LMR1_F8_F3               0x20
95
#define         AM_LIU_LMR1_LIU_ENABL           0x40
96
#define AMR_LIU_LMR2                    0xA4
97
#define         AM_LIU_LMR2_DECHO               0x01
98
#define         AM_LIU_LMR2_DLOOP               0x02
99
#define         AM_LIU_LMR2_DBACKOFF            0x04
100
#define         AM_LIU_LMR2_EN_F3_INT           0x08
101
#define         AM_LIU_LMR2_EN_F8_INT           0x10
102
#define         AM_LIU_LMR2_EN_HSW_INT          0x20
103
#define         AM_LIU_LMR2_EN_F7_INT           0x40
104
#define AMR_LIU_2_4                     0xA5
105
#define AMR_LIU_MF                      0xA6
106
#define AMR_LIU_MFSB                    0xA7
107
#define AMR_LIU_MFQB                    0xA8
108
 
109
/* Multiplexor */
110
#define AMR_MUX_MCR1                    0x41
111
#define AMR_MUX_MCR2                    0x42
112
#define AMR_MUX_MCR3                    0x43
113
#define         AM_MUX_CHANNEL_B1               0x01
114
#define         AM_MUX_CHANNEL_B2               0x02
115
#define         AM_MUX_CHANNEL_Ba               0x03
116
#define         AM_MUX_CHANNEL_Bb               0x04
117
#define         AM_MUX_CHANNEL_Bc               0x05
118
#define         AM_MUX_CHANNEL_Bd               0x06
119
#define         AM_MUX_CHANNEL_Be               0x07
120
#define         AM_MUX_CHANNEL_Bf               0x08
121
#define AMR_MUX_MCR4                    0x44
122
#define         AM_MUX_MCR4_ENABLE_INTS         0x08
123
#define         AM_MUX_MCR4_REVERSE_Bb          0x10
124
#define         AM_MUX_MCR4_REVERSE_Bc          0x20
125
#define AMR_MUX_1_4                     0x45
126
 
127
/* Main Audio Processor */
128
#define AMR_MAP_X                       0x61
129
#define AMR_MAP_R                       0x62
130
#define AMR_MAP_GX                      0x63
131
#define AMR_MAP_GR                      0x64
132
#define AMR_MAP_GER                     0x65
133
#define AMR_MAP_STGR                    0x66
134
#define AMR_MAP_FTGR_1_2                0x67
135
#define AMR_MAP_ATGR_1_2                0x68
136
#define AMR_MAP_MMR1                    0x69
137
#define         AM_MAP_MMR1_ALAW                0x01
138
#define         AM_MAP_MMR1_GX                  0x02
139
#define         AM_MAP_MMR1_GR                  0x04
140
#define         AM_MAP_MMR1_GER                 0x08
141
#define         AM_MAP_MMR1_X                   0x10
142
#define         AM_MAP_MMR1_R                   0x20
143
#define         AM_MAP_MMR1_STG                 0x40
144
#define         AM_MAP_MMR1_LOOPBACK            0x80
145
#define AMR_MAP_MMR2                    0x6A
146
#define         AM_MAP_MMR2_AINB                0x01
147
#define         AM_MAP_MMR2_LS                  0x02
148
#define         AM_MAP_MMR2_ENABLE_DTMF         0x04
149
#define         AM_MAP_MMR2_ENABLE_TONEGEN      0x08
150
#define         AM_MAP_MMR2_ENABLE_TONERING     0x10
151
#define         AM_MAP_MMR2_DISABLE_HIGHPASS    0x20
152
#define         AM_MAP_MMR2_DISABLE_AUTOZERO    0x40
153
#define AMR_MAP_1_10                    0x6B
154
#define AMR_MAP_MMR3                    0x6C
155
#define AMR_MAP_STRA                    0x6D
156
#define AMR_MAP_STRF                    0x6E
157
#define AMR_MAP_PEAKX                   0x70
158
#define AMR_MAP_PEAKR                   0x71
159
#define AMR_MAP_15_16                   0x72
160
 
161
/* Data Link Controller */
162
#define AMR_DLC_FRAR_1_2_3              0x81
163
#define AMR_DLC_SRAR_1_2_3              0x82
164
#define AMR_DLC_TAR                     0x83
165
#define AMR_DLC_DRLR                    0x84
166
#define AMR_DLC_DTCR                    0x85
167
#define AMR_DLC_DMR1                    0x86
168
#define         AMR_DLC_DMR1_DTTHRSH_INT        0x01
169
#define         AMR_DLC_DMR1_DRTHRSH_INT        0x02
170
#define         AMR_DLC_DMR1_TAR_ENABL          0x04
171
#define         AMR_DLC_DMR1_EORP_INT           0x08
172
#define         AMR_DLC_DMR1_EN_ADDR1           0x10
173
#define         AMR_DLC_DMR1_EN_ADDR2           0x20
174
#define         AMR_DLC_DMR1_EN_ADDR3           0x40
175
#define         AMR_DLC_DMR1_EN_ADDR4           0x80
176
#define         AMR_DLC_DMR1_EN_ADDRS           0xf0
177
#define AMR_DLC_DMR2                    0x87
178
#define         AMR_DLC_DMR2_RABRT_INT          0x01
179
#define         AMR_DLC_DMR2_RESID_INT          0x02
180
#define         AMR_DLC_DMR2_COLL_INT           0x04
181
#define         AMR_DLC_DMR2_FCS_INT            0x08
182
#define         AMR_DLC_DMR2_OVFL_INT           0x10
183
#define         AMR_DLC_DMR2_UNFL_INT           0x20
184
#define         AMR_DLC_DMR2_OVRN_INT           0x40
185
#define         AMR_DLC_DMR2_UNRN_INT           0x80
186
#define AMR_DLC_1_7                     0x88
187
#define AMR_DLC_DRCR                    0x89
188
#define AMR_DLC_RNGR1                   0x8A
189
#define AMR_DLC_RNGR2                   0x8B
190
#define AMR_DLC_FRAR4                   0x8C
191
#define AMR_DLC_SRAR4                   0x8D
192
#define AMR_DLC_DMR3                    0x8E
193
#define         AMR_DLC_DMR3_VA_INT             0x01
194
#define         AMR_DLC_DMR3_EOTP_INT           0x02
195
#define         AMR_DLC_DMR3_LBRP_INT           0x04
196
#define         AMR_DLC_DMR3_RBA_INT            0x08
197
#define         AMR_DLC_DMR3_LBT_INT            0x10
198
#define         AMR_DLC_DMR3_TBE_INT            0x20
199
#define         AMR_DLC_DMR3_RPLOST_INT         0x40
200
#define         AMR_DLC_DMR3_KEEP_FCS           0x80
201
#define AMR_DLC_DMR4                    0x8F
202
#define         AMR_DLC_DMR4_RCV_1              0x00
203
#define         AMR_DLC_DMR4_RCV_2              0x01
204
#define         AMR_DLC_DMR4_RCV_4              0x02
205
#define         AMR_DLC_DMR4_RCV_8              0x03
206
#define         AMR_DLC_DMR4_RCV_16             0x01
207
#define         AMR_DLC_DMR4_RCV_24             0x02
208
#define         AMR_DLC_DMR4_RCV_30             0x03
209
#define         AMR_DLC_DMR4_XMT_1              0x00
210
#define         AMR_DLC_DMR4_XMT_2              0x04
211
#define         AMR_DLC_DMR4_XMT_4              0x08
212
#define         AMR_DLC_DMR4_XMT_8              0x0c
213
#define         AMR_DLC_DMR4_XMT_10             0x08
214
#define         AMR_DLC_DMR4_XMT_14             0x0c
215
#define         AMR_DLC_DMR4_IDLE_MARK          0x00
216
#define         AMR_DLC_DMR4_IDLE_FLAG          0x10
217
#define         AMR_DLC_DMR4_ADDR_BOTH          0x00
218
#define         AMR_DLC_DMR4_ADDR_1ST           0x20
219
#define         AMR_DLC_DMR4_ADDR_2ND           0xa0
220
#define         AMR_DLC_DMR4_CR_ENABLE          0x40
221
#define AMR_DLC_12_15                   0x90
222
#define AMR_DLC_ASR                     0x91
223
#define AMR_DLC_EFCR                    0x92
224
#define         AMR_DLC_EFCR_EXTEND_FIFO        0x01
225
#define         AMR_DLC_EFCR_SEC_PKT_INT        0x02
226
 
227
#define AMR_DSR1_VADDR                  0x01
228
#define AMR_DSR1_EORP                   0x02
229
#define AMR_DSR1_PKT_IP                 0x04
230
#define AMR_DSR1_DECHO_ON               0x08
231
#define AMR_DSR1_DLOOP_ON               0x10
232
#define AMR_DSR1_DBACK_OFF              0x20
233
#define AMR_DSR1_EOTP                   0x40
234
#define AMR_DSR1_CXMT_ABRT              0x80
235
 
236
#define AMR_DSR2_LBRP                   0x01
237
#define AMR_DSR2_RBA                    0x02
238
#define AMR_DSR2_RPLOST                 0x04
239
#define AMR_DSR2_LAST_BYTE              0x08
240
#define AMR_DSR2_TBE                    0x10
241
#define AMR_DSR2_MARK_IDLE              0x20
242
#define AMR_DSR2_FLAG_IDLE              0x40
243
#define AMR_DSR2_SECOND_PKT             0x80
244
 
245
#define AMR_DER_RABRT                   0x01
246
#define AMR_DER_RFRAME                  0x02
247
#define AMR_DER_COLLISION               0x04
248
#define AMR_DER_FCS                     0x08
249
#define AMR_DER_OVFL                    0x10
250
#define AMR_DER_UNFL                    0x20
251
#define AMR_DER_OVRN                    0x40
252
#define AMR_DER_UNRN                    0x80
253
 
254
/* Peripheral Port */
255
#define AMR_PP_PPCR1                    0xC0
256
#define AMR_PP_PPSR                     0xC1
257
#define AMR_PP_PPIER                    0xC2
258
#define AMR_PP_MTDR                     0xC3
259
#define AMR_PP_MRDR                     0xC3
260
#define AMR_PP_CITDR0                   0xC4
261
#define AMR_PP_CIRDR0                   0xC4
262
#define AMR_PP_CITDR1                   0xC5
263
#define AMR_PP_CIRDR1                   0xC5
264
#define AMR_PP_PPCR2                    0xC8
265
#define AMR_PP_PPCR3                    0xC9
266
 
267
/* Give this chip a "default" sample rate */
268
#define AMD7930_RATE                    (8000)
269
 
270
#endif /* _AMD7930_H_ */

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.