|
|
1.1 root 1: /*
2: * Copyright (c) 1998-1999 Apple Computer, Inc. All rights reserved.
3: *
4: * Burgundy Hardware Registers
5: *
6: */
7:
8: #define kSoundCtlReg 0x00
9: #define kSoundCtlReg_InSubFrame_Mask 0x0000000F /*All of the input subframe bits*/
10: #define kSoundCtlReg_InSubFrame_Bit 0x00000001 /*All of the input subframe bits*/
11: #define kSoundCtlReg_InSubFrame0 0x00000001
12: #define kSoundCtlReg_InSubFrame1 0x00000002
13: #define kSoundCtlReg_InSubFrame2 0x00000004
14: #define kSoundCtlReg_InSubFrame3 0x00000008
15: #define kSoundCtlReg_OutSubFrame_Mask 0x000000F0
16: #define kSoundCtlReg_OutSubFrame_Bit 0x00000010
17: #define kSoundCtlReg_OutSubFrame0 0x00000010
18: #define kSoundCtlReg_OutSubFrame1 0x00000020
19: #define kSoundCtlReg_OutSubFrame2 0x00000040
20: #define kSoundCtlReg_OutSubFrame3 0x00000080
21: #define kSoundCtlReg_Rate_Mask 0x00000700
22: #define kSoundCtlReg_Rate_Bit 0x00000100
23: #define kSoundCtlReg_Rate_44100 0x00000000
24: #define kSoundCtlReg_Error 0x00000800
25: #define kSoundCtlReg_PortChange 0x00001000
26: #define kSoundCtlReg_ErrorInt 0x00002000
27: #define kSoundCtlReg_StatusSubFrame_Mask 0x00018000
28: #define kSoundCtlReg_StatusSubFrame_Bit 0x00008000
29: #define kSoundCtlReg_StatusSubFrame0 0x00000000
30: #define kSoundCtlReg_StatusSubFrame1 0x00008000
31: #define kSoundCtlReg_StatusSubFrame2 0x00010000
32: #define kSoundCtlReg_StatusSubFrame3 0x00018000
33:
34: /*
35: *
36: * Codec Control Fields Bit Format: vuwr Pppp Aaaa nn qq Ddddddddd
37: * 23 0
38: *
39: * Ddddddddd - Data byte (to Codec)
40: * qq - Current byte in register transaction
41: * nn - Last byte in register transaction
42: * Aaaa - Codec register address - reg #
43: * Pppp - Codec register address - page #
44: * r - Reset transaction pointers
45: * w - 0=read 1=write
46: * u - unused
47: * v - Valid (v is set by the hardware automatically)
48: */
49: #define kCodecCtlReg 0x10
50: #define kCodecCtlReg_Data_Mask 0x000000FF
51: #define kCodecCtlReg_Data_Bit 0x00000001
52: #define kCodecCtlReg_CurrentByte_Mask 0x00000300
53: #define kCodecCtlReg_CurrentByte_Bit 0x00000100
54: #define kCodecCtlReg_LastByte_Mask 0x00000C00
55: #define kCodecCtlReg_LastByte_Bit 0x00000400
56: #define kCodecCtlReg_Addr_Mask 0x000FF000
57: #define kCodecCtlReg_Addr_Bit 0x00001000
58: #define kCodecCtlReg_Reset 0x00100000
59: #define kCodecCtlReg_Write 0x00200000
60: #define kCodecCtlReg_Busy 0x01000000
61:
62: /*
63: *
64: * Codec Status Fields Bit Format: FC00 IIII BB LL Dddddddd Pppp
65: * 23 0
66: * Pppp - Input sense lines
67: * Dddddddd - Data byte (from Codec)
68: * LL - Byte location being read (0-3)
69: * BB - Byte counter (0-3) Increments when new byte is presented.
70: * IIII - Indicator code
71: * C - Codec ready
72: * F - First valid byte
73: */
74: #define kCodecStatusReg 0x20
75: #define kCodecStatusReg_Sense_Mask 0x0000000F
76: #define kCodecStatusReg_Sense_Bit 0x00000001
77: #define kCodecStatusReg_Sense_Mic 0x00000002
78: #define kCodecStatusReg_Sense_Headphones 0x00000004
79: #define kCodecStatusReg_Sense_Headphones2 0x00000008
80: #define kCodecStatusReg_Data_Mask 0x00000FF0
81: #define kCodecStatusReg_Data_Bit 0x00000010
82: #define kCodecStatusReg_CurrentByte_Mask 0x00003000
83: #define kCodecStatusReg_CurrentByte_Bit 0x00001000
84: #define kCodecStatusReg_ByteCounter_Mask 0x0000C000
85: #define kCodecStatusReg_ByteCounter_Bit 0x00004000
86: #define kCodecStatusReg_Indicator_Mask 0x000F0000
87: #define kCodecStatusReg_Indicator_Bit 0x00010000
88: #define kCodecStatusReg_Ready 0x00400000
89: #define kCodecStatusReg_FirstByte 0x00800000
90:
91:
92: #define kCodec_Indicator_ToneControl 0x01
93: #define kCodec_Indicator_Overflow0 0x02
94: #define kCodec_Indicator_Overflow1 0x03
95: #define kCodec_Indicator_Overflow2 0x04
96: #define kCodec_Indicator_InputLineChg 0x06
97: #define kCodec_Indicator_Threshold0 0x0B
98: #define kCodec_Indicator_Threshold1 0x0C
99: #define kCodec_Indicator_Threshold2 0x0D
100: #define kCodec_Indicator_Threshold3 0x0E
101: #define kCodec_Indicator_TwilightCmp 0x0F
102:
103:
104: /*
105: * The I/O routines use the following convention to pass Codec register addresses:
106: *
107: * Codec Register Address: 00LL Pppp Aaaa 0000 00BB
108: *
109: * LL - Length of register
110: * Pppp - Codec register address - page #
111: * Aaaa - Codec register address - reg #
112: * BB - Offset to 1st byte of register.
113: */
114:
115: #define BURGUNDY_LENGTH_1 0x00010000
116: #define BURGUNDY_LENGTH_2 0x00020000
117: #define BURGUNDY_LENGTH_3 0x00030000
118: #define BURGUNDY_LENGTH_4 0x00040000
119:
120: #define kInitReg (0x0000 | BURGUNDY_LENGTH_1)
121: #define kInitReg_Recalibrate 0x01
122: #define kInitReg_Twilight 0x02
123:
124: #define kRevisionReg (0x0100 | BURGUNDY_LENGTH_1)
125: #define kVersionReg (0x0101 | BURGUNDY_LENGTH_1)
126: #define kVendorReg (0x0102 | BURGUNDY_LENGTH_1)
127: #define kIdReg (0x0103 | BURGUNDY_LENGTH_1)
128:
129: #define kGlobalStatusReg (0x0200 | BURGUNDY_LENGTH_2)
130: #define kGlobalStatusReg_ClippingStatus 0x0001
131: #define kGlobalStatusReg_OverflowStatus0 0x0002
132: #define kGlobalStatusReg_OverflowStatus1 0x0004
133: #define kGlobalStatusReg_SOSStatus1 0x0008
134: #define kGlobalStatusReg_ParallelInStatus 0x0020
135: #define kGlobalStatusReg_Threshold0 0x0400
136: #define kGlobalStatusReg_Threshold1 0x0800
137: #define kGlobalStatusReg_Threshold2 0x1000
138: #define kGlobalStatusReg_Threshold3 0x2000
139:
140: #define kReturnZeroReg (0x0F00 | BURGUNDY_LENGTH_1)
141:
142:
143: /*
144: * This register controls a fixed gain preamp (+24dB) on input ports 5-7
145: */
146: #define kInputPreampReg (0x1000 | BURGUNDY_LENGTH_1)
147: #define kInputPreampReg_Port5L 0x04
148: #define kInputPreampReg_Port5R 0x08
149: #define kInputPreampReg_Port6L 0x10
150: #define kInputPreampReg_Port6R 0x20
151: #define kInputPreampReg_Port7L 0x40
152: #define kInputPreampReg_Port7R 0x80
153:
154: /*
155: * Mux01 and Mux2 determine which analog inputs will be presented to A/D Converters 0-2
156: */
157: #define kMux01Reg (0x1100 | BURGUNDY_LENGTH_1)
158: #define kMux01Reg_Mux0L_Mask 0x03
159: #define kMux01Reg_Mux0L_SelectPort1L 0x00
160: #define kMux01Reg_Mux0L_SelectPort2L 0x01
161: #define kMux01Reg_Mux0L_SelectPort3L 0x02
162: #define kMux01Reg_Mux0R_Mask 0x0C
163: #define kMux01Reg_Mux0R_SelectPort1R 0x00
164: #define kMux01Reg_Mux0R_SelectPort2R 0x04
165: #define kMux01Reg_Mux0R_SelectPort3R 0x08
166: #define kMux01Reg_Mux1L_Mask 0x30
167: #define kMux01Reg_Mux1L_SelectPort1L 0x00
168: #define kMux01Reg_Mux1L_SelectPort2L 0x10
169: #define kMux01Reg_Mux1L_SelectPort3L 0x20
170: #define kMux01Reg_Mux1R_Mask 0xC0
171: #define kMux01Reg_Mux1R_SelectPort1R 0x00
172: #define kMux01Reg_Mux1R_SelectPort2R 0x40
173: #define kMux01Reg_Mux1R_SelectPort3R 0x80
174:
175: #define kMux2Reg (0x1200 | BURGUNDY_LENGTH_1)
176: #define kMux2Reg_Mux2L_Mask 0x03
177: #define kMux2Reg_Mux2L_SelectPort5L 0x00
178: #define kMux2Reg_Mux2L_SelectPort6L 0x01
179: #define kMux2Reg_Mux2L_SelectPort7L 0x02
180: #define kMux2Reg_Mux2R_Mask 0x0C
181: #define kMux2Reg_Mux2R_SelectPort5R 0x00
182: #define kMux2Reg_Mux2R_SelectPort6R 0x04
183: #define kMux2Reg_Mux2R_SelectPort7R 0x08
184:
185: /*
186: * VGA0-3 control an analog amp at the input to each A/D Converter
187: */
188: #define kVGA0Reg (0x1300 | BURGUNDY_LENGTH_1)
189: #define kVGA0Reg_VGA0L_GainMask 0x0F
190: #define kVGA0Reg_VGA0L_GainBit 0x01
191: #define kVGA0Reg_VGA0R_GainMask 0xF0
192: #define kVGA0Reg_VGA0R_GainBit 0x10
193:
194: #define kVGA1Reg (0x1400 | BURGUNDY_LENGTH_1)
195: #define kVGA1Reg_VGA1L_GainMask 0x0F
196: #define kVGA1Reg_VGA1L_GainBit 0x01
197: #define kVGA1Reg_VGA1R_GainMask 0xF0
198: #define kVGA1Reg_VGA1R_GainBit 0x10
199:
200: #define kVGA2Reg (0x1500 | BURGUNDY_LENGTH_1)
201: #define kVGA2Reg_VGA2L_GainMask 0x0F
202: #define kVGA2Reg_VGA2L_GainBit 0x01
203: #define kVGA2Reg_VGA2R_GainMask 0xF0
204: #define kVGA2Reg_VGA2R_GainBit 0x10
205:
206: #define kVGA3Reg (0x1600 | BURGUNDY_LENGTH_1)
207: #define kVGA0Reg_VGA3M_GainMask 0x0F
208: #define kVGA0Reg_VGA3M_GainBit 0x01
209:
210: #define kDigInputPortReg (0x1700 | BURGUNDY_LENGTH_1)
211:
212:
213: /*
214: * This register provides the status of various input sense lines
215: */
216: #define kInputStateReg (0x1800 | BURGUNDY_LENGTH_1)
217: #define kInputStateReg_InputIndicator 0x01
218: #define kInputStateReg_Input1Active 0x02
219: #define kInputStateReg_Input2Active 0x04
220: #define kInputStateReg_Input3Active 0x08
221: #define kInputStateReg_Sense0Active 0x10
222: #define kInputStateReg_Sense1Active 0x20
223: #define kInputStateReg_Sense2Active 0x40
224: #define kInputStateReg_Sense3Active 0x80
225:
226: /*
227: * This register provides the status of the A/D Converters
228: */
229: #define kAD12StatusReg (0x1900 | BURGUNDY_LENGTH_2)
230: #define kAD12StatusReg_AD0L_OverRange 0x0001
231: #define kAD12StatusReg_AD0R_OverRange 0x0002
232: #define kAD12StatusReg_AD1L_OverRange 0x0004
233: #define kAD12StatusReg_AD1R_OverRange 0x0008
234: #define kAD12StatusReg_AD2L_OverRange 0x0010
235: #define kAD12StatusReg_AD2R_OverRange 0x0020
236: #define kAD12StatusReg_AD3M_OverRange 0x0040
237: #define kAD12StatusReg_AD0L_OverRangeIndicator 0x0100
238: #define kAD12StatusReg_AD0R_OverRangeIndicator 0x0200
239: #define kAD12StatusReg_AD1L_OverRangeIndicator 0x0400
240: #define kAD12StatusReg_AD1R_OverRangeIndicator 0x0800
241: #define kAD12StatusReg_AD2L_OverRangeIndicator 0x1000
242: #define kAD12StatusReg_AD2R_OverRangeIndicator 0x2000
243: #define kAD12StatusReg_AD3M_OverRangeIndicator 0x4000
244:
245:
246: /*
247: * These registers control digital scalars for the various input sources.
248: * Sources 0-4 are derived from the A/D Converter outputs. Sources A-H
249: * are either data from the host system or digital outputs from the chip
250: * which are being internally wrapped back.
251: */
252: #define kGAS0LReg (0x2000 | BURGUNDY_LENGTH_1)
253: #define kPAS0LReg (0x2001 | BURGUNDY_LENGTH_1)
254: #define kGAS0RReg (0x2002 | BURGUNDY_LENGTH_1)
255: #define kPAS0RReg (0x2003 | BURGUNDY_LENGTH_1)
256:
257: #define kGAS_Default_Gain 0xDF
258:
259: #define kGAS1LReg (0x2100 | BURGUNDY_LENGTH_1)
260: #define kPAS1LReg (0x2101 | BURGUNDY_LENGTH_1)
261: #define kGAS1RReg (0x2102 | BURGUNDY_LENGTH_1)
262: #define kPAS1RReg (0x2103 | BURGUNDY_LENGTH_1)
263:
264: #define kGAS2LReg (0x2200 | BURGUNDY_LENGTH_1)
265: #define kPAS2LReg (0x2201 | BURGUNDY_LENGTH_1)
266: #define kGAS2RReg (0x2202 | BURGUNDY_LENGTH_1)
267: #define kPAS2RReg (0x2203 | BURGUNDY_LENGTH_1)
268:
269: #define kGAS3LReg (0x2300 | BURGUNDY_LENGTH_1)
270: #define kGAS3RReg (0x2301 | BURGUNDY_LENGTH_1)
271: #define kGAS4LReg (0x2302 | BURGUNDY_LENGTH_1)
272: #define kGAS4RReg (0x2303 | BURGUNDY_LENGTH_1)
273:
274: #define kGASALReg (0x2500 | BURGUNDY_LENGTH_1)
275: #define kGASARReg (0x2501 | BURGUNDY_LENGTH_1)
276: #define kGASBLReg (0x2502 | BURGUNDY_LENGTH_1)
277: #define kGASBRReg (0x2503 | BURGUNDY_LENGTH_1)
278:
279: #define kGASCLReg (0x2600 | BURGUNDY_LENGTH_1)
280: #define kGASCRReg (0x2601 | BURGUNDY_LENGTH_1)
281: #define kGASDLReg (0x2602 | BURGUNDY_LENGTH_1)
282: #define kGASDRReg (0x2603 | BURGUNDY_LENGTH_1)
283:
284: #define kGASELReg (0x2700 | BURGUNDY_LENGTH_1)
285: #define kGASERReg (0x2701 | BURGUNDY_LENGTH_1)
286: #define kGASFLReg (0x2702 | BURGUNDY_LENGTH_1)
287: #define kGASFRReg (0x2703 | BURGUNDY_LENGTH_1)
288:
289: #define kGASGLReg (0x2800 | BURGUNDY_LENGTH_1)
290: #define kGASGRReg (0x2801 | BURGUNDY_LENGTH_1)
291: #define kGASHLReg (0x2802 | BURGUNDY_LENGTH_1)
292: #define kGASHRReg (0x2803 | BURGUNDY_LENGTH_1)
293:
294: /*
295: * These registers control the inputs of four digital mixers.
296: *
297: * Each mixer may be provided any combination of the input sources mentioned
298: * listed above.
299: */
300: #define kMX0Reg (0x2900 | BURGUNDY_LENGTH_4)
301: #define kMX0Reg_Select_IS0L 0x00000001
302: #define kMX0Reg_Select_IS1L 0x00000002
303: #define kMX0Reg_Select_IS2L 0x00000004
304: #define kMX0Reg_Select_IS3L 0x00000008
305: #define kMX0Reg_Select_IS4L 0x00000010
306: #define kMX0Reg_Select_ISAL 0x00000100
307: #define kMX0Reg_Select_ISBL 0x00000200
308: #define kMX0Reg_Select_ISCL 0x00000400
309: #define kMX0Reg_Select_ISDL 0x00000800
310: #define kMX0Reg_Select_ISEL 0x00001000
311: #define kMX0Reg_Select_ISFL 0x00002000
312: #define kMX0Reg_Select_ISGL 0x00004000
313: #define kMX0Reg_Select_ISHL 0x00008000
314: #define kMX0Reg_Select_IS0R 0x00010000
315: #define kMX0Reg_Select_IS1R 0x00020000
316: #define kMX0Reg_Select_IS2R 0x00040000
317: #define kMX0Reg_Select_IS3R 0x00080000
318: #define kMX0Reg_Select_IS4R 0x00100000
319: #define kMX0Reg_Select_ISAR 0x01000000
320: #define kMX0Reg_Select_ISBR 0x02000000
321: #define kMX0Reg_Select_ISCR 0x04000000
322: #define kMX0Reg_Select_ISDR 0x08000000
323: #define kMX0Reg_Select_ISER 0x10000000
324: #define kMX0Reg_Select_ISFR 0x20000000
325: #define kMX0Reg_Select_ISGR 0x40000000
326: #define kMX0Reg_Select_ISHR 0x80000000
327:
328: #define kMX1Reg (0x2A00 | BURGUNDY_LENGTH_4)
329: #define kMX1Reg_Select_IS0L 0x00000001
330: #define kMX1Reg_Select_IS1L 0x00000002
331: #define kMX1Reg_Select_IS2L 0x00000004
332: #define kMX1Reg_Select_IS3L 0x00000008
333: #define kMX1Reg_Select_IS4L 0x00000010
334: #define kMX1Reg_Select_ISAL 0x00000100
335: #define kMX1Reg_Select_ISBL 0x00000200
336: #define kMX1Reg_Select_ISCL 0x00000400
337: #define kMX1Reg_Select_ISDL 0x00000800
338: #define kMX1Reg_Select_ISEL 0x00001000
339: #define kMX1Reg_Select_ISFL 0x00002000
340: #define kMX1Reg_Select_ISGL 0x00004000
341: #define kMX1Reg_Select_ISHL 0x00008000
342: #define kMX1Reg_Select_IS0R 0x00010000
343: #define kMX1Reg_Select_IS1R 0x00020000
344: #define kMX1Reg_Select_IS2R 0x00040000
345: #define kMX1Reg_Select_IS3R 0x00080000
346: #define kMX1Reg_Select_IS4R 0x00100000
347: #define kMX1Reg_Select_ISAR 0x01000000
348: #define kMX1Reg_Select_ISBR 0x02000000
349: #define kMX1Reg_Select_ISCR 0x04000000
350: #define kMX1Reg_Select_ISDR 0x08000000
351: #define kMX1Reg_Select_ISER 0x10000000
352: #define kMX1Reg_Select_ISFR 0x20000000
353: #define kMX1Reg_Select_ISGR 0x40000000
354: #define kMX1Reg_Select_ISHR 0x80000000
355:
356: #define kMX2Reg (0x2B00 | BURGUNDY_LENGTH_4)
357: #define kMX2Reg_Select_IS0L 0x00000001
358: #define kMX2Reg_Select_IS1L 0x00000002
359: #define kMX2Reg_Select_IS2L 0x00000004
360: #define kMX2Reg_Select_IS3L 0x00000008
361: #define kMX2Reg_Select_IS4L 0x00000010
362: #define kMX2Reg_Select_ISAL 0x00000100
363: #define kMX2Reg_Select_ISBL 0x00000200
364: #define kMX2Reg_Select_ISCL 0x00000400
365: #define kMX2Reg_Select_ISDL 0x00000800
366: #define kMX2Reg_Select_ISEL 0x00001000
367: #define kMX2Reg_Select_ISFL 0x00002000
368: #define kMX2Reg_Select_ISGL 0x00004000
369: #define kMX2Reg_Select_ISHL 0x00008000
370: #define kMX2Reg_Select_IS0R 0x00010000
371: #define kMX2Reg_Select_IS1R 0x00020000
372: #define kMX2Reg_Select_IS2R 0x00040000
373: #define kMX2Reg_Select_IS3R 0x00080000
374: #define kMX2Reg_Select_IS4R 0x00100000
375: #define kMX2Reg_Select_ISAR 0x01000000
376: #define kMX2Reg_Select_ISBR 0x02000000
377: #define kMX2Reg_Select_ISCR 0x04000000
378: #define kMX2Reg_Select_ISDR 0x08000000
379: #define kMX2Reg_Select_ISER 0x10000000
380: #define kMX2Reg_Select_ISFR 0x20000000
381: #define kMX2Reg_Select_ISGR 0x40000000
382: #define kMX2Reg_Select_ISHR 0x80000000
383:
384: #define kMX3Reg (0x2C00 | BURGUNDY_LENGTH_4)
385: #define kMX3Reg_Select_IS0L 0x00000001
386: #define kMX3Reg_Select_IS1L 0x00000002
387: #define kMX3Reg_Select_IS2L 0x00000004
388: #define kMX3Reg_Select_IS3L 0x00000008
389: #define kMX3Reg_Select_IS4L 0x00000010
390: #define kMX3Reg_Select_ISAL 0x00000100
391: #define kMX3Reg_Select_ISBL 0x00000200
392: #define kMX3Reg_Select_ISCL 0x00000400
393: #define kMX3Reg_Select_ISDL 0x00000800
394: #define kMX3Reg_Select_ISEL 0x00001000
395: #define kMX3Reg_Select_ISFL 0x00002000
396: #define kMX3Reg_Select_ISGL 0x00004000
397: #define kMX3Reg_Select_ISHL 0x00008000
398: #define kMX3Reg_Select_IS0R 0x00010000
399: #define kMX3Reg_Select_IS1R 0x00020000
400: #define kMX3Reg_Select_IS2R 0x00040000
401: #define kMX3Reg_Select_IS3R 0x00080000
402: #define kMX3Reg_Select_IS4R 0x00100000
403: #define kMX3Reg_Select_ISAR 0x01000000
404: #define kMX3Reg_Select_ISBR 0x02000000
405: #define kMX3Reg_Select_ISCR 0x04000000
406: #define kMX3Reg_Select_ISDR 0x08000000
407: #define kMX3Reg_Select_ISER 0x10000000
408: #define kMX3Reg_Select_ISFR 0x20000000
409: #define kMX3Reg_Select_ISGR 0x40000000
410: #define kMX3Reg_Select_ISHR 0x80000000
411:
412: /*
413: * This register controls a digital scalar at the output of each mixer.
414: */
415: #define kMXEQ0LReg (0x2D00 | BURGUNDY_LENGTH_1)
416: #define kMXEQ0RReg (0x2D01 | BURGUNDY_LENGTH_1)
417: #define kMXEQ1LReg (0x2D02 | BURGUNDY_LENGTH_1)
418: #define kMXEQ1RReg (0x2D03 | BURGUNDY_LENGTH_1)
419:
420: #define kMXEQ2LReg (0x2E00 | BURGUNDY_LENGTH_1)
421: #define kMXEQ2RReg (0x2E01 | BURGUNDY_LENGTH_1)
422: #define kMXEQ3LReg (0x2E02 | BURGUNDY_LENGTH_1)
423: #define kMXEQ3RReg (0x2E03 | BURGUNDY_LENGTH_1)
424:
425: #define kMXEQ_Default_Gain 0xDF
426:
427: /*
428: * This register controls a digital demultiplexer which routes
429: * the mixer 0-3 output to one 12 output sources.
430: *
431: * Output sources 0-2 can eventually be converted to analog. The
432: * remaining output sources remain digital and may be either
433: * sent to the host or wrapped back as digital input sources.
434: */
435: #define kOSReg (0x2F00 | BURGUNDY_LENGTH_4)
436: #define kOSReg_OS0_SelectMask 0x00000003
437: #define kOSReg_OS0_SelectBit 0x00000001
438: #define kOSReg_OS0_Select_MXO0 0x00000000
439: #define kOSReg_OS0_Select_MXO1 0x00000001
440: #define kOSReg_OS0_Select_MXO2 0x00000002
441: #define kOSReg_OS0_Select_MXO3 0x00000003
442:
443: #define kOSReg_OS1_SelectMask 0x0000000C
444: #define kOSReg_OS1_SelectBit 0x00000004
445: #define kOSReg_OS1_Select_MXO0 0x00000000
446: #define kOSReg_OS1_Select_MXO1 0x00000004
447: #define kOSReg_OS1_Select_MXO2 0x00000008
448: #define kOSReg_OS1_Select_MXO3 0x0000000C
449:
450: #define kOSReg_OS2_SelectMask 0x00000030
451: #define kOSReg_OS2_SelectBit 0x00000010
452: #define kOSReg_OS2_Select_MXO0 0x00000000
453: #define kOSReg_OS2_Select_MXO1 0x00000010
454: #define kOSReg_OS2_Select_MXO2 0x00000020
455: #define kOSReg_OS2_Select_MXO3 0x00000030
456:
457: #define kOSReg_OS3_SelectMask 0x000000C0
458: #define kOSReg_OS3_SelectBit 0x00000040
459: #define kOSReg_OS3_Select_MXO0 0x00000000
460: #define kOSReg_OS3_Select_MXO1 0x00000040
461: #define kOSReg_OS3_Select_MXO2 0x00000080
462: #define kOSReg_OS3_Select_MXO3 0x000000C0
463:
464: #define kOSReg_OSA_SelectMask 0x00030000
465: #define kOSReg_OSA_SelectBit 0x00010000
466: #define kOSReg_OSA_Select_MXO0 0x00000000
467: #define kOSReg_OSA_Select_MXO1 0x00010000
468: #define kOSReg_OSA_Select_MXO2 0x00020000
469: #define kOSReg_OSA_Select_MXO3 0x00030000
470:
471: #define kOSReg_OSB_SelectMask 0x000C0000
472: #define kOSReg_OSB_SelectBit 0x00040000
473: #define kOSReg_OSB_Select_MXO0 0x00000000
474: #define kOSReg_OSB_Select_MXO1 0x00040000
475: #define kOSReg_OSB_Select_MXO2 0x00080000
476: #define kOSReg_OSB_Select_MXO3 0x000C0000
477:
478: #define kOSReg_OSC_SelectMask 0x00100000
479: #define kOSReg_OSC_SelectBit 0x00300000
480: #define kOSReg_OSC_Select_MXO0 0x00000000
481: #define kOSReg_OSC_Select_MXO1 0x00100000
482: #define kOSReg_OSC_Select_MXO2 0x00200000
483: #define kOSReg_OSC_Select_MXO3 0x00300000
484:
485: #define kOSReg_OSD_SelectMask 0x00C00000
486: #define kOSReg_OSD_SelectBit 0x00400000
487: #define kOSReg_OSD_Select_MXO0 0x00000000
488: #define kOSReg_OSD_Select_MXO1 0x00400000
489: #define kOSReg_OSD_Select_MXO2 0x00800000
490: #define kOSReg_OSD_Select_MXO3 0x00C00000
491:
492: #define kOSReg_OSE_SelectMask 0x03000000
493: #define kOSReg_OSE_SelectBit 0x01000000
494: #define kOSReg_OSE_Select_MXO0 0x00000000
495: #define kOSReg_OSE_Select_MXO1 0x01000000
496: #define kOSReg_OSE_Select_MXO2 0x02000000
497: #define kOSReg_OSE_Select_MXO3 0x03000000
498:
499: #define kOSReg_OSF_SelectMask 0x0C000000
500: #define kOSReg_OSF_SelectBit 0x04000000
501: #define kOSReg_OSF_Select_MXO0 0x00000000
502: #define kOSReg_OSF_Select_MXO1 0x04000000
503: #define kOSReg_OSF_Select_MXO2 0x08000000
504: #define kOSReg_OSF_Select_MXO3 0x0C000000
505:
506: #define kOSReg_OSG_SelectMask 0x30000000
507: #define kOSReg_OSG_SelectBit 0x10000000
508: #define kOSReg_OSG_Select_MXO0 0x00000000
509: #define kOSReg_OSG_Select_MXO1 0x10000000
510: #define kOSReg_OSG_Select_MXO2 0x20000000
511: #define kOSReg_OSG_Select_MXO3 0x30000000
512:
513: #define kOSReg_OSH_SelectMask 0xC0000000
514: #define kOSReg_OSH_SelectBit 0x40000000
515: #define kOSReg_OSH_Select_MXO0 0x00000000
516: #define kOSReg_OSH_Select_MXO1 0x40000000
517: #define kOSReg_OSH_Select_MXO2 0x80000000
518: #define kOSReg_OSH_Select_MXO3 0xC0000000
519:
520: /*
521: * This register controls a digital scalar for Output sources 0-3
522: */
523: #define kGAP0LReg (0x3000 | BURGUNDY_LENGTH_1)
524: #define kGAP0RReg (0x3001 | BURGUNDY_LENGTH_1)
525: #define kGAP1LReg (0x3002 | BURGUNDY_LENGTH_1)
526: #define kGAP1RReg (0x3003 | BURGUNDY_LENGTH_1)
527:
528: #define kGAP2LReg (0x3100 | BURGUNDY_LENGTH_1)
529: #define kGAP2RReg (0x3101 | BURGUNDY_LENGTH_1)
530: #define kGAP3LReg (0x3102 | BURGUNDY_LENGTH_1)
531: #define kGAP3RReg (0x3103 | BURGUNDY_LENGTH_1)
532:
533: #define kGAP_Default_Gain 0xDF
534:
535: /*
536: * These registers access the values of four peak-level meters. Inputs to the
537: * digital mixers MX0-3 or the mixer outputs may be routed these meters.
538: */
539: #define kPeakLvl0Reg (0x3300 | BURGUNDY_LENGTH_2)
540: #define kPeakLvl1Reg (0x3302 | BURGUNDY_LENGTH_2)
541:
542: #define kPeakLvl3Reg (0x3400 | BURGUNDY_LENGTH_2)
543: #define kPeakLvl4Reg (0x3402 | BURGUNDY_LENGTH_2)
544:
545: /*
546: * These registers select the digital inputs to be monitored by each level meter.
547: */
548: #define kPeakLvl0SourceReg (0x3500 | BURGUNDY_LENGTH_1)
549: #define kPeakLvl0SourceReg_SelectMask 0x3F
550: #define kPeakLvl0SourceReg_Select_AS0L 0x00
551: #define kPeakLvl0SourceReg_Select_AS0R 0x01
552: #define kPeakLvl0SourceReg_Select_AS1L 0x02
553: #define kPeakLvl0SourceReg_Select_AS1R 0x03
554: #define kPeakLvl0SourceReg_Select_AS2L 0x04
555: #define kPeakLvl0SourceReg_Select_AS2R 0x05
556: #define kPeakLvl0SourceReg_Select_AS3L 0x06
557: #define kPeakLvl0SourceReg_Select_AS3R 0x07
558: #define kPeakLvl0SourceReg_Select_AS4L 0x08
559: #define kPeakLvl0SourceReg_Select_AS4R 0x09
560: #define kPeakLvl0SourceReg_Select_IS0L 0x10
561: #define kPeakLvl0SourceReg_Select_IS0R 0x11
562: #define kPeakLvl0SourceReg_Select_IS1L 0x12
563: #define kPeakLvl0SourceReg_Select_IS1R 0x13
564: #define kPeakLvl0SourceReg_Select_IS2L 0x14
565: #define kPeakLvl0SourceReg_Select_IS2R 0x15
566: #define kPeakLvl0SourceReg_Select_IS3L 0x16
567: #define kPeakLvl0SourceReg_Select_IS3R 0x17
568: #define kPeakLvl0SourceReg_Select_IS4L 0x18
569: #define kPeakLvl0SourceReg_Select_IS5R 0x19
570: #define kPeakLvl0SourceReg_Select_ISAL 0x20
571: #define kPeakLvl0SourceReg_Select_ISAR 0x21
572: #define kPeakLvl0SourceReg_Select_ISBL 0x22
573: #define kPeakLvl0SourceReg_Select_ISBR 0x23
574: #define kPeakLvl0SourceReg_Select_ISCL 0x24
575: #define kPeakLvl0SourceReg_Select_ISCR 0x25
576: #define kPeakLvl0SourceReg_Select_ISDL 0x26
577: #define kPeakLvl0SourceReg_Select_ISDR 0x27
578: #define kPeakLvl0SourceReg_Select_ISEL 0x28
579: #define kPeakLvl0SourceReg_Select_ISER 0x29
580: #define kPeakLvl0SourceReg_Select_ISFL 0x2A
581: #define kPeakLvl0SourceReg_Select_ISFR 0x2B
582: #define kPeakLvl0SourceReg_Select_ISGL 0x2C
583: #define kPeakLvl0SourceReg_Select_ISGR 0x2D
584: #define kPeakLvl0SourceReg_Select_ISHL 0x2E
585: #define kPeakLvl0SourceReg_Select_ISHR 0x2F
586: #define kPeakLvl0SourceReg_Select_MXO0L 0x30
587: #define kPeakLvl0SourceReg_Select_MXO0R 0x31
588: #define kPeakLvl0SourceReg_Select_MXO1L 0x32
589: #define kPeakLvl0SourceReg_Select_MXO1R 0x33
590: #define kPeakLvl0SourceReg_Select_MXO2L 0x34
591: #define kPeakLvl0SourceReg_Select_MXO2R 0x35
592: #define kPeakLvl0SourceReg_Select_MXO3L 0x36
593: #define kPeakLvl0SourceReg_Select_MXO3R 0x37
594: #define kPeakLvl0SourceReg_Zero 0x40
595:
596: #define kPeakLvl1SourceReg (0x3501 | BURGUNDY_LENGTH_1)
597: #define kPeakLvl1SourceReg_SelectMask 0x3F
598: #define kPeakLvl1SourceReg_Select_AS0L 0x00
599: #define kPeakLvl1SourceReg_Select_AS0R 0x01
600: #define kPeakLvl1SourceReg_Select_AS1L 0x02
601: #define kPeakLvl1SourceReg_Select_AS1R 0x03
602: #define kPeakLvl1SourceReg_Select_AS2L 0x04
603: #define kPeakLvl1SourceReg_Select_AS2R 0x05
604: #define kPeakLvl1SourceReg_Select_AS3L 0x06
605: #define kPeakLvl1SourceReg_Select_AS3R 0x07
606: #define kPeakLvl1SourceReg_Select_AS4L 0x08
607: #define kPeakLvl1SourceReg_Select_AS4R 0x09
608: #define kPeakLvl1SourceReg_Select_IS0L 0x10
609: #define kPeakLvl1SourceReg_Select_IS0R 0x11
610: #define kPeakLvl1SourceReg_Select_IS1L 0x12
611: #define kPeakLvl1SourceReg_Select_IS1R 0x13
612: #define kPeakLvl1SourceReg_Select_IS2L 0x14
613: #define kPeakLvl1SourceReg_Select_IS2R 0x15
614: #define kPeakLvl1SourceReg_Select_IS3L 0x16
615: #define kPeakLvl1SourceReg_Select_IS3R 0x17
616: #define kPeakLvl1SourceReg_Select_IS4L 0x18
617: #define kPeakLvl1SourceReg_Select_IS5R 0x19
618: #define kPeakLvl1SourceReg_Select_ISAL 0x20
619: #define kPeakLvl1SourceReg_Select_ISAR 0x21
620: #define kPeakLvl1SourceReg_Select_ISBL 0x22
621: #define kPeakLvl1SourceReg_Select_ISBR 0x23
622: #define kPeakLvl1SourceReg_Select_ISCL 0x24
623: #define kPeakLvl1SourceReg_Select_ISCR 0x25
624: #define kPeakLvl1SourceReg_Select_ISDL 0x26
625: #define kPeakLvl1SourceReg_Select_ISDR 0x27
626: #define kPeakLvl1SourceReg_Select_ISEL 0x28
627: #define kPeakLvl1SourceReg_Select_ISER 0x29
628: #define kPeakLvl1SourceReg_Select_ISFL 0x2A
629: #define kPeakLvl1SourceReg_Select_ISFR 0x2B
630: #define kPeakLvl1SourceReg_Select_ISGL 0x2C
631: #define kPeakLvl1SourceReg_Select_ISGR 0x2D
632: #define kPeakLvl1SourceReg_Select_ISHL 0x2E
633: #define kPeakLvl1SourceReg_Select_ISHR 0x2F
634: #define kPeakLvl1SourceReg_Select_MXO0L 0x30
635: #define kPeakLvl1SourceReg_Select_MXO0R 0x31
636: #define kPeakLvl1SourceReg_Select_MXO1L 0x32
637: #define kPeakLvl1SourceReg_Select_MXO1R 0x33
638: #define kPeakLvl1SourceReg_Select_MXO2L 0x34
639: #define kPeakLvl1SourceReg_Select_MXO2R 0x35
640: #define kPeakLvl1SourceReg_Select_MXO3L 0x36
641: #define kPeakLvl1SourceReg_Select_MXO3R 0x37
642: #define kPeakLvl1SourceReg_Zero 0x40
643:
644: #define kPeakLvl2SourceReg (0x3502 | BURGUNDY_LENGTH_1)
645: #define kPeakLvl2SourceReg_SelectMask 0x3F
646: #define kPeakLvl2SourceReg_Select_AS0L 0x00
647: #define kPeakLvl2SourceReg_Select_AS0R 0x01
648: #define kPeakLvl2SourceReg_Select_AS1L 0x02
649: #define kPeakLvl2SourceReg_Select_AS1R 0x03
650: #define kPeakLvl2SourceReg_Select_AS2L 0x04
651: #define kPeakLvl2SourceReg_Select_AS2R 0x05
652: #define kPeakLvl2SourceReg_Select_AS3L 0x06
653: #define kPeakLvl2SourceReg_Select_AS3R 0x07
654: #define kPeakLvl2SourceReg_Select_AS4L 0x08
655: #define kPeakLvl2SourceReg_Select_AS4R 0x09
656: #define kPeakLvl2SourceReg_Select_IS0L 0x10
657: #define kPeakLvl2SourceReg_Select_IS0R 0x11
658: #define kPeakLvl2SourceReg_Select_IS1L 0x12
659: #define kPeakLvl2SourceReg_Select_IS1R 0x13
660: #define kPeakLvl2SourceReg_Select_IS2L 0x14
661: #define kPeakLvl2SourceReg_Select_IS2R 0x15
662: #define kPeakLvl2SourceReg_Select_IS3L 0x16
663: #define kPeakLvl2SourceReg_Select_IS3R 0x17
664: #define kPeakLvl2SourceReg_Select_IS4L 0x18
665: #define kPeakLvl2SourceReg_Select_IS5R 0x19
666: #define kPeakLvl2SourceReg_Select_ISAL 0x20
667: #define kPeakLvl2SourceReg_Select_ISAR 0x21
668: #define kPeakLvl2SourceReg_Select_ISBL 0x22
669: #define kPeakLvl2SourceReg_Select_ISBR 0x23
670: #define kPeakLvl2SourceReg_Select_ISCL 0x24
671: #define kPeakLvl2SourceReg_Select_ISCR 0x25
672: #define kPeakLvl2SourceReg_Select_ISDL 0x26
673: #define kPeakLvl2SourceReg_Select_ISDR 0x27
674: #define kPeakLvl2SourceReg_Select_ISEL 0x28
675: #define kPeakLvl2SourceReg_Select_ISER 0x29
676: #define kPeakLvl2SourceReg_Select_ISFL 0x2A
677: #define kPeakLvl2SourceReg_Select_ISFR 0x2B
678: #define kPeakLvl2SourceReg_Select_ISGL 0x2C
679: #define kPeakLvl2SourceReg_Select_ISGR 0x2D
680: #define kPeakLvl2SourceReg_Select_ISHL 0x2E
681: #define kPeakLvl2SourceReg_Select_ISHR 0x2F
682: #define kPeakLvl2SourceReg_Select_MXO0L 0x30
683: #define kPeakLvl2SourceReg_Select_MXO0R 0x31
684: #define kPeakLvl2SourceReg_Select_MXO1L 0x32
685: #define kPeakLvl2SourceReg_Select_MXO1R 0x33
686: #define kPeakLvl2SourceReg_Select_MXO2L 0x34
687: #define kPeakLvl2SourceReg_Select_MXO2R 0x35
688: #define kPeakLvl2SourceReg_Select_MXO3L 0x36
689: #define kPeakLvl2SourceReg_Select_MXO3R 0x37
690: #define kPeakLvl2SourceReg_Zero 0x40
691:
692: #define kPeakLvl3SourceReg (0x3503 | BURGUNDY_LENGTH_1)
693: #define kPeakLvl3SourceReg_SelectMask 0x3F
694: #define kPeakLvl3SourceReg_Select_AS0L 0x00
695: #define kPeakLvl3SourceReg_Select_AS0R 0x01
696: #define kPeakLvl3SourceReg_Select_AS1L 0x02
697: #define kPeakLvl3SourceReg_Select_AS1R 0x03
698: #define kPeakLvl3SourceReg_Select_AS2L 0x04
699: #define kPeakLvl3SourceReg_Select_AS2R 0x05
700: #define kPeakLvl3SourceReg_Select_AS3L 0x06
701: #define kPeakLvl3SourceReg_Select_AS3R 0x07
702: #define kPeakLvl3SourceReg_Select_AS4L 0x08
703: #define kPeakLvl3SourceReg_Select_AS4R 0x09
704: #define kPeakLvl3SourceReg_Select_IS0L 0x10
705: #define kPeakLvl3SourceReg_Select_IS0R 0x11
706: #define kPeakLvl3SourceReg_Select_IS1L 0x12
707: #define kPeakLvl3SourceReg_Select_IS1R 0x13
708: #define kPeakLvl3SourceReg_Select_IS2L 0x14
709: #define kPeakLvl3SourceReg_Select_IS2R 0x15
710: #define kPeakLvl3SourceReg_Select_IS3L 0x16
711: #define kPeakLvl3SourceReg_Select_IS3R 0x17
712: #define kPeakLvl3SourceReg_Select_IS4L 0x18
713: #define kPeakLvl3SourceReg_Select_IS5R 0x19
714: #define kPeakLvl3SourceReg_Select_ISAL 0x20
715: #define kPeakLvl3SourceReg_Select_ISAR 0x21
716: #define kPeakLvl3SourceReg_Select_ISBL 0x22
717: #define kPeakLvl3SourceReg_Select_ISBR 0x23
718: #define kPeakLvl3SourceReg_Select_ISCL 0x24
719: #define kPeakLvl3SourceReg_Select_ISCR 0x25
720: #define kPeakLvl3SourceReg_Select_ISDL 0x26
721: #define kPeakLvl3SourceReg_Select_ISDR 0x27
722: #define kPeakLvl3SourceReg_Select_ISEL 0x28
723: #define kPeakLvl3SourceReg_Select_ISER 0x29
724: #define kPeakLvl3SourceReg_Select_ISFL 0x2A
725: #define kPeakLvl3SourceReg_Select_ISFR 0x2B
726: #define kPeakLvl3SourceReg_Select_ISGL 0x2C
727: #define kPeakLvl3SourceReg_Select_ISGR 0x2D
728: #define kPeakLvl3SourceReg_Select_ISHL 0x2E
729: #define kPeakLvl3SourceReg_Select_ISHR 0x2F
730: #define kPeakLvl3SourceReg_Select_MXO0L 0x30
731: #define kPeakLvl3SourceReg_Select_MXO0R 0x31
732: #define kPeakLvl3SourceReg_Select_MXO1L 0x32
733: #define kPeakLvl3SourceReg_Select_MXO1R 0x33
734: #define kPeakLvl3SourceReg_Select_MXO2L 0x34
735: #define kPeakLvl3SourceReg_Select_MXO2R 0x35
736: #define kPeakLvl3SourceReg_Select_MXO3L 0x36
737: #define kPeakLvl3SourceReg_Select_MXO3R 0x37
738: #define kPeakLvl3SourceReg_Zero 0x40
739:
740: /*
741: * This register holds the threshold value at which the level meters will
742: * indicate an event.
743: */
744: #define kPeakLvlThresholdReg (0x3600 | BURGUNDY_LENGTH_2)
745: #define kPeakLvlThresholdReg_Default 0x7FFF
746:
747: /*
748: * These registers indicate overflows in the digital scalars prior to the mixers.
749: * See GAS0-4.
750: */
751: #define kISOverflowReg (0x3700 | BURGUNDY_LENGTH_1)
752: #define kISOverflowReg_IS0 0x01
753: #define kISOverflowReg_IS1 0x02
754: #define kISOverflowReg_IS2 0x04
755: #define kISOverflowReg_IS3 0x08
756: #define kISOverflowReg_IS4 0x10
757: #define kISOverflowReg_Indicator 0x80
758:
759: /*
760: * This register monitors overflows in digital mixers 0-3.
761: */
762: #define kMXOverflowReg (0x3701 | BURGUNDY_LENGTH_2)
763: #define kMXOverflowReg_MX0L 0x0001
764: #define kMXOverflowReg_MX0R 0x0002
765: #define kMXOverflowReg_MX1L 0x0004
766: #define kMXOverflowReg_MX1R 0x0008
767: #define kMXOverflowReg_MX2L 0x0010
768: #define kMXOverflowReg_MX2R 0x0020
769: #define kMXOverflowReg_MX3L 0x0040
770: #define kMXOverflowReg_MX3R 0x0080
771: #define kMXOverflowReg_MX0L_Indicator 0x0100
772: #define kMXOverflowReg_MX0R_Indicator 0x0200
773: #define kMXOverflowReg_MX1L_Indicator 0x0400
774: #define kMXOverflowReg_MX1R_Indicator 0x0800
775: #define kMXOverflowReg_MX2L_Indicator 0x1000
776: #define kMXOverflowReg_MX2R_Indicator 0x2000
777: #define kMXOverflowReg_MX3L_Indicator 0x4000
778: #define kMXOverflowReg_MX3R_Indicator 0x8000
779:
780: /*
781: * This register controls a digital tone filter connected to the output
782: * of mixer 0.
783: *
784: * The registers are programmed with 3-byte coefficients for the filters.
785: */
786: #define kSOSS0B0Reg (0x4000 | BURGUNDY_LENGTH_3)
787: #define kSOSS0B1Reg (0x4100 | BURGUNDY_LENGTH_3)
788: #define kSOSS0B2Reg (0x4200 | BURGUNDY_LENGTH_3)
789: #define kSOSS0A1Reg (0x4300 | BURGUNDY_LENGTH_3)
790: #define kSOSS0A2Reg (0x4400 | BURGUNDY_LENGTH_3)
791:
792: #define kSOSS1B0Reg (0x4500 | BURGUNDY_LENGTH_3)
793: #define kSOSS1B1Reg (0x4600 | BURGUNDY_LENGTH_3)
794: #define kSOSS1B2Reg (0x4700 | BURGUNDY_LENGTH_3)
795: #define kSOSS1A1Reg (0x4800 | BURGUNDY_LENGTH_3)
796: #define kSOSS1A2Reg (0x4900 | BURGUNDY_LENGTH_3)
797:
798: #define kSOSS2B0Reg (0x4A00 | BURGUNDY_LENGTH_3)
799: #define kSOSS2B1Reg (0x4B00 | BURGUNDY_LENGTH_3)
800: #define kSOSS2B2Reg (0x4C00 | BURGUNDY_LENGTH_3)
801: #define kSOSS2A1Reg (0x4D00 | BURGUNDY_LENGTH_3)
802: #define kSOSS2A2Reg (0x4E00 | BURGUNDY_LENGTH_3)
803:
804: #define kSOSS3B0Reg (0x5000 | BURGUNDY_LENGTH_3)
805: #define kSOSS3B1Reg (0x5100 | BURGUNDY_LENGTH_3)
806: #define kSOSS3A1Reg (0x5200 | BURGUNDY_LENGTH_3)
807: #define kSOSS3A2Reg (0x5300 | BURGUNDY_LENGTH_3)
808:
809: #define kSOSControlReg (0x5500 | BURGUNDY_LENGTH_1)
810: #define kSOSControlReg_Mode0 0x00
811: #define kSOSControlReg_Mode1 0x01
812:
813: #define kSOSOverflowReg (0x5600 | BURGUNDY_LENGTH_1)
814: #define kSOSOverflowReg_S0 0x01
815: #define kSOSOverflowReg_S1 0x02
816: #define kSOSOverflowReg_S2 0x04
817: #define kSOSOverflowReg_S3 0x08
818: #define kSOSOverflowReg_Indicator 0x10
819:
820: /*
821: * This register controls the muting the of analog outputs
822: */
823: #define kOutputMuteReg (0x6000 | BURGUNDY_LENGTH_1)
824: #define kOutputMuteReg_Port13M 0x01
825: #define kOutputMuteReg_Port14L 0x02
826: #define kOutputMuteReg_Port14R 0x04
827: #define kOutputMuteReg_Port15L 0x08
828: #define kOutputMuteReg_Port15R 0x10
829: #define kOutputMuteReg_Port16L 0x20
830: #define kOutputMuteReg_Port16R 0x40
831: #define kOutputMuteReg_Port17M 0x80
832:
833: /*
834: * These registers control attenuators at each analog output
835: */
836: #define kOutputLvlPort13Reg (0x6100 | BURGUNDY_LENGTH_1)
837: #define kOutputLvlPort13Reg_Mask 0x0F
838: #define kOutputLvlPort13Reg_Bit 0x01
839:
840: #define kOutputLvl_Default 0x00
841:
842: #define kOutputLvlPort14Reg (0x6200 | BURGUNDY_LENGTH_1)
843: #define kOutputLvlPort14Reg_LeftMask 0x0F
844: #define kOutputLvlPort14Reg_LeftBit 0x01
845: #define kOutputLvlPort14Reg_RightMask 0xF0
846: #define kOutputLvlPort14Reg_RightBit 0x10
847:
848: #define kOutputLvlPort15Reg (0x6300 | BURGUNDY_LENGTH_1)
849: #define kOutputLvlPort15Reg_LeftMask 0x0F
850: #define kOutputLvlPort15Reg_LeftBit 0x01
851: #define kOutputLvlPort15Reg_RightMask 0xF0
852: #define kOutputLvlPort15Reg_RightBit 0x10
853:
854: #define kOutputLvlPort16Reg (0x6400 | BURGUNDY_LENGTH_1)
855: #define kOutputLvlPort16Reg_LeftMask 0x0F
856: #define kOutputLvlPort16Reg_LeftBit 0x01
857: #define kOutputLvlPort16Reg_RightMask 0xF0
858: #define kOutputLvlPort16Reg_RightBit 0x10
859:
860: #define kOutputLvlPort17Reg (0x6500 | BURGUNDY_LENGTH_1)
861: #define kOutputLvlPort17Reg_Mask 0x0F
862: #define kOutputLvlPort17Reg_Bit 0x01
863:
864: /*
865: * This register controls discharge current to reduce noise if the chip
866: * is powered down.
867: */
868: #define kOutputSettleTimeReg (0x6600 | BURGUNDY_LENGTH_2)
869: #define kOutputSettleTimeReg_Port13_Mask 0x0003
870: #define kOutputSettleTimeReg_Port13_Bit 0x0001
871: #define kOutputSettleTimeReg_Port14_Mask 0x000C
872: #define kOutputSettleTimeReg_Port14_Bit 0x0004
873: #define kOutputSettleTimeReg_Port15_Mask 0x0030
874: #define kOutputSettleTimeReg_Port15_Bit 0x0010
875: #define kOutputSettleTimeReg_Port16_Mask 0x00C0
876: #define kOutputSettleTimeReg_Port16_Bit 0x0040
877: #define kOutputSettleTimeReg_Port17_Mask 0x0300
878: #define kOutputSettleTimeReg_Port17_Bit 0x0100
879:
880:
881: #define kOutputCtl0Reg (0x6700 | BURGUNDY_LENGTH_1)
882: #define kOutputCtl0Reg_OutCtl0_High 0x10
883: #define kOutputCtl0Reg_OutCtl0_Tristate 0x20
884: #define kOutputCtl0Reg_OutCtl1_High 0x40
885: #define kOutputCtl0Reg_OutCtl1_Tristate 0x80
886:
887: #define kOutputCtl2Reg (0x6800 | BURGUNDY_LENGTH_1)
888: #define kOutputCtl2Reg_OutCtl2_High 0x01
889: #define kOutputCtl2Reg_OutCtl2_Tristate 0x02
890: #define kOutputCtl2Reg_OutCtl3_High 0x04
891: #define kOutputCtl2Reg_OutCtl3_Tristate 0x08
892: #define kOutputCtl2Reg_OutCtl4_High 0x10
893: #define kOutputCtl2Reg_OutCtl4_Tristate 0x20
894:
895: #define kDOutConfigReg (0x6900 | BURGUNDY_LENGTH_1)
896: #define kDOutConfigReg_Zero 0x80
897: #define kDOutConfigReg_Enable 0x80
898:
899: #define kMClkReg (0x7000 | BURGUNDY_LENGTH_1)
900: #define kMClkReg_Tristate 0x00
901: #define kMClkReg_Div1 0x01
902: #define kMClkReg_Div2 0x02
903: #define kMClkReg_Div4 0x03
904:
905:
906: /*
907: * These registers control the digital input sources A-C to the chip.
908: * A source may be derived from data comming from the host (SF0-3) or
909: * from an internally generated digital output source (OSA-D)
910: */
911: #define kSDInReg (0x7800 | BURGUNDY_LENGTH_1)
912: #define kSDInReg_OSA_To_SF0 0x01
913: #define kSDInReg_ASA_Mask 0x02
914: #define kSDInReg_ASA_From_SF0 0x00
915: #define kSDInReg_ASA_From_OSA 0x02
916: #define kSDInReg_OSB_To_SF1 0x04
917: #define kSDInReg_ASB_From_SF1 0x00
918: #define kSDInReg_ASB_From_OSB 0x08
919: #define kSDInReg_OSC_To_SF2 0x10
920: #define kSDInReg_ASC_From_SF2 0x00
921: #define kSDInReg_ASC_From_OSC 0x20
922: #define kSDInReg_OSD_To_SF3 0x40
923: #define kSDInReg_ASD_From_SF3 0x00
924: #define kSDInReg_ASD_From_OSD 0x80
925:
926: /*
927: * This register controls digital output sources (OSE-H) from the chip.
928: * These sources may be routed to the host (SF0-3) or may be internally
929: * wrapped back to input sources (ASE-H).
930: */
931: #define kSDOutReg (0x7A00 | BURGUNDY_LENGTH_1)
932: #define kSDOutReg_OSE_To_SF0 0x01
933: #define kSDOutReg_ASE_Mask 0x02
934: #define kSDOutReg_ASE_From_SF0 0x00
935: #define kSDOutReg_ASE_From_OSE 0x02
936: #define kSDOutReg_OSF_To_SF1 0x04
937: #define kSDOutReg_ASF_From_SF1 0x00
938: #define kSDOutReg_ASF_From_OSF 0x08
939: #define kSDOutReg_OSG_To_SF2 0x10
940: #define kSDOutReg_ASG_From_SF2 0x00
941: #define kSDOutReg_ASG_From_OSG 0x20
942: #define kSDOutReg_OSH_To_SF3 0x40
943: #define kSDOutReg_ASH_From_SF3 0x00
944: #define kSDOutReg_ASH_From_OSH 0x80
945:
946: #define kThresholdMaskReg (0x7A00 | BURGUNDY_LENGTH_1)
947: #define kThresholdMaskReg_Threshold0 0x01
948: #define kThresholdMaskReg_Threshold1 0x02
949: #define kThresholdMaskReg_Threshold2 0x04
950: #define kThresholdMaskReg_Threshold3 0x08
951:
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.