]> git.ipfire.org Git - thirdparty/linux.git/blob - sound/oss/cs4281/cs4281_hwdefs.h
Linux-2.6.12-rc2
[thirdparty/linux.git] / sound / oss / cs4281 / cs4281_hwdefs.h
1 //****************************************************************************
2 //
3 // HWDEFS.H - Definitions of the registers and data structures used by the
4 // CS4281
5 //
6 // Copyright (c) 1999,2000,2001 Crystal Semiconductor Corp.
7 //
8 //****************************************************************************
9
10 #ifndef _H_HWDEFS
11 #define _H_HWDEFS
12
13 //****************************************************************************
14 //
15 // The following define the offsets of the registers located in the PCI
16 // configuration space of the CS4281 part.
17 //
18 //****************************************************************************
19 #define PCICONFIG_DEVID_VENID 0x00000000L
20 #define PCICONFIG_STATUS_COMMAND 0x00000004L
21 #define PCICONFIG_CLASS_REVISION 0x00000008L
22 #define PCICONFIG_LATENCY_TIMER 0x0000000CL
23 #define PCICONFIG_BA0 0x00000010L
24 #define PCICONFIG_BA1 0x00000014L
25 #define PCICONFIG_SUBSYSID_SUBSYSVENID 0x0000002CL
26 #define PCICONFIG_INTERRUPT 0x0000003CL
27
28 //****************************************************************************
29 //
30 // The following define the offsets of the registers accessed via base address
31 // register zero on the CS4281 part.
32 //
33 //****************************************************************************
34 #define BA0_HISR 0x00000000L
35 #define BA0_HICR 0x00000008L
36 #define BA0_HIMR 0x0000000CL
37 #define BA0_IIER 0x00000010L
38 #define BA0_HDSR0 0x000000F0L
39 #define BA0_HDSR1 0x000000F4L
40 #define BA0_HDSR2 0x000000F8L
41 #define BA0_HDSR3 0x000000FCL
42 #define BA0_DCA0 0x00000110L
43 #define BA0_DCC0 0x00000114L
44 #define BA0_DBA0 0x00000118L
45 #define BA0_DBC0 0x0000011CL
46 #define BA0_DCA1 0x00000120L
47 #define BA0_DCC1 0x00000124L
48 #define BA0_DBA1 0x00000128L
49 #define BA0_DBC1 0x0000012CL
50 #define BA0_DCA2 0x00000130L
51 #define BA0_DCC2 0x00000134L
52 #define BA0_DBA2 0x00000138L
53 #define BA0_DBC2 0x0000013CL
54 #define BA0_DCA3 0x00000140L
55 #define BA0_DCC3 0x00000144L
56 #define BA0_DBA3 0x00000148L
57 #define BA0_DBC3 0x0000014CL
58 #define BA0_DMR0 0x00000150L
59 #define BA0_DCR0 0x00000154L
60 #define BA0_DMR1 0x00000158L
61 #define BA0_DCR1 0x0000015CL
62 #define BA0_DMR2 0x00000160L
63 #define BA0_DCR2 0x00000164L
64 #define BA0_DMR3 0x00000168L
65 #define BA0_DCR3 0x0000016CL
66 #define BA0_DLMR 0x00000170L
67 #define BA0_DLSR 0x00000174L
68 #define BA0_FCR0 0x00000180L
69 #define BA0_FCR1 0x00000184L
70 #define BA0_FCR2 0x00000188L
71 #define BA0_FCR3 0x0000018CL
72 #define BA0_FPDR0 0x00000190L
73 #define BA0_FPDR1 0x00000194L
74 #define BA0_FPDR2 0x00000198L
75 #define BA0_FPDR3 0x0000019CL
76 #define BA0_FCHS 0x0000020CL
77 #define BA0_FSIC0 0x00000210L
78 #define BA0_FSIC1 0x00000214L
79 #define BA0_FSIC2 0x00000218L
80 #define BA0_FSIC3 0x0000021CL
81 #define BA0_PCICFG00 0x00000300L
82 #define BA0_PCICFG04 0x00000304L
83 #define BA0_PCICFG08 0x00000308L
84 #define BA0_PCICFG0C 0x0000030CL
85 #define BA0_PCICFG10 0x00000310L
86 #define BA0_PCICFG14 0x00000314L
87 #define BA0_PCICFG18 0x00000318L
88 #define BA0_PCICFG1C 0x0000031CL
89 #define BA0_PCICFG20 0x00000320L
90 #define BA0_PCICFG24 0x00000324L
91 #define BA0_PCICFG28 0x00000328L
92 #define BA0_PCICFG2C 0x0000032CL
93 #define BA0_PCICFG30 0x00000330L
94 #define BA0_PCICFG34 0x00000334L
95 #define BA0_PCICFG38 0x00000338L
96 #define BA0_PCICFG3C 0x0000033CL
97 #define BA0_PCICFG40 0x00000340L
98 #define BA0_PMCS 0x00000344L
99 #define BA0_CWPR 0x000003E0L
100 #define BA0_EPPMC 0x000003E4L
101 #define BA0_GPIOR 0x000003E8L
102 #define BA0_SPMC 0x000003ECL
103 #define BA0_CFLR 0x000003F0L
104 #define BA0_IISR 0x000003F4L
105 #define BA0_TMS 0x000003F8L
106 #define BA0_SSVID 0x000003FCL
107 #define BA0_CLKCR1 0x00000400L
108 #define BA0_FRR 0x00000410L
109 #define BA0_SLT12O 0x0000041CL
110 #define BA0_SERMC 0x00000420L
111 #define BA0_SERC1 0x00000428L
112 #define BA0_SERC2 0x0000042CL
113 #define BA0_SLT12M 0x0000045CL
114 #define BA0_ACCTL 0x00000460L
115 #define BA0_ACSTS 0x00000464L
116 #define BA0_ACOSV 0x00000468L
117 #define BA0_ACCAD 0x0000046CL
118 #define BA0_ACCDA 0x00000470L
119 #define BA0_ACISV 0x00000474L
120 #define BA0_ACSAD 0x00000478L
121 #define BA0_ACSDA 0x0000047CL
122 #define BA0_JSPT 0x00000480L
123 #define BA0_JSCTL 0x00000484L
124 #define BA0_MIDCR 0x00000490L
125 #define BA0_MIDCMD 0x00000494L
126 #define BA0_MIDSR 0x00000494L
127 #define BA0_MIDWP 0x00000498L
128 #define BA0_MIDRP 0x0000049CL
129 #define BA0_AODSD1 0x000004A8L
130 #define BA0_AODSD2 0x000004ACL
131 #define BA0_CFGI 0x000004B0L
132 #define BA0_SLT12M2 0x000004DCL
133 #define BA0_ACSTS2 0x000004E4L
134 #define BA0_ACISV2 0x000004F4L
135 #define BA0_ACSAD2 0x000004F8L
136 #define BA0_ACSDA2 0x000004FCL
137 #define BA0_IOTGP 0x00000500L
138 #define BA0_IOTSB 0x00000504L
139 #define BA0_IOTFM 0x00000508L
140 #define BA0_IOTDMA 0x0000050CL
141 #define BA0_IOTAC0 0x00000500L
142 #define BA0_IOTAC1 0x00000504L
143 #define BA0_IOTAC2 0x00000508L
144 #define BA0_IOTAC3 0x0000050CL
145 #define BA0_IOTPCP 0x0000052CL
146 #define BA0_IOTCC 0x00000530L
147 #define BA0_IOTCR 0x0000058CL
148 #define BA0_PCPRR 0x00000600L
149 #define BA0_PCPGR 0x00000604L
150 #define BA0_PCPCR 0x00000608L
151 #define BA0_PCPCIEN 0x00000608L
152 #define BA0_SBMAR 0x00000700L
153 #define BA0_SBMDR 0x00000704L
154 #define BA0_SBRR 0x00000708L
155 #define BA0_SBRDP 0x0000070CL
156 #define BA0_SBWDP 0x00000710L
157 #define BA0_SBWBS 0x00000710L
158 #define BA0_SBRBS 0x00000714L
159 #define BA0_FMSR 0x00000730L
160 #define BA0_B0AP 0x00000730L
161 #define BA0_FMDP 0x00000734L
162 #define BA0_B1AP 0x00000738L
163 #define BA0_B1DP 0x0000073CL
164 #define BA0_SSPM 0x00000740L
165 #define BA0_DACSR 0x00000744L
166 #define BA0_ADCSR 0x00000748L
167 #define BA0_SSCR 0x0000074CL
168 #define BA0_FMLVC 0x00000754L
169 #define BA0_FMRVC 0x00000758L
170 #define BA0_SRCSA 0x0000075CL
171 #define BA0_PPLVC 0x00000760L
172 #define BA0_PPRVC 0x00000764L
173 #define BA0_PASR 0x00000768L
174 #define BA0_CASR 0x0000076CL
175
176 //****************************************************************************
177 //
178 // The following define the offsets of the AC97 shadow registers, which appear
179 // as a virtual extension to the base address register zero memory range.
180 //
181 //****************************************************************************
182 #define AC97_REG_OFFSET_MASK 0x0000007EL
183 #define AC97_CODEC_NUMBER_MASK 0x00003000L
184
185 #define BA0_AC97_RESET 0x00001000L
186 #define BA0_AC97_MASTER_VOLUME 0x00001002L
187 #define BA0_AC97_HEADPHONE_VOLUME 0x00001004L
188 #define BA0_AC97_MASTER_VOLUME_MONO 0x00001006L
189 #define BA0_AC97_MASTER_TONE 0x00001008L
190 #define BA0_AC97_PC_BEEP_VOLUME 0x0000100AL
191 #define BA0_AC97_PHONE_VOLUME 0x0000100CL
192 #define BA0_AC97_MIC_VOLUME 0x0000100EL
193 #define BA0_AC97_LINE_IN_VOLUME 0x00001010L
194 #define BA0_AC97_CD_VOLUME 0x00001012L
195 #define BA0_AC97_VIDEO_VOLUME 0x00001014L
196 #define BA0_AC97_AUX_VOLUME 0x00001016L
197 #define BA0_AC97_PCM_OUT_VOLUME 0x00001018L
198 #define BA0_AC97_RECORD_SELECT 0x0000101AL
199 #define BA0_AC97_RECORD_GAIN 0x0000101CL
200 #define BA0_AC97_RECORD_GAIN_MIC 0x0000101EL
201 #define BA0_AC97_GENERAL_PURPOSE 0x00001020L
202 #define BA0_AC97_3D_CONTROL 0x00001022L
203 #define BA0_AC97_MODEM_RATE 0x00001024L
204 #define BA0_AC97_POWERDOWN 0x00001026L
205 #define BA0_AC97_EXT_AUDIO_ID 0x00001028L
206 #define BA0_AC97_EXT_AUDIO_POWER 0x0000102AL
207 #define BA0_AC97_PCM_FRONT_DAC_RATE 0x0000102CL
208 #define BA0_AC97_PCM_SURR_DAC_RATE 0x0000102EL
209 #define BA0_AC97_PCM_LFE_DAC_RATE 0x00001030L
210 #define BA0_AC97_PCM_LR_ADC_RATE 0x00001032L
211 #define BA0_AC97_MIC_ADC_RATE 0x00001034L
212 #define BA0_AC97_6CH_VOL_C_LFE 0x00001036L
213 #define BA0_AC97_6CH_VOL_SURROUND 0x00001038L
214 #define BA0_AC97_RESERVED_3A 0x0000103AL
215 #define BA0_AC97_EXT_MODEM_ID 0x0000103CL
216 #define BA0_AC97_EXT_MODEM_POWER 0x0000103EL
217 #define BA0_AC97_LINE1_CODEC_RATE 0x00001040L
218 #define BA0_AC97_LINE2_CODEC_RATE 0x00001042L
219 #define BA0_AC97_HANDSET_CODEC_RATE 0x00001044L
220 #define BA0_AC97_LINE1_CODEC_LEVEL 0x00001046L
221 #define BA0_AC97_LINE2_CODEC_LEVEL 0x00001048L
222 #define BA0_AC97_HANDSET_CODEC_LEVEL 0x0000104AL
223 #define BA0_AC97_GPIO_PIN_CONFIG 0x0000104CL
224 #define BA0_AC97_GPIO_PIN_TYPE 0x0000104EL
225 #define BA0_AC97_GPIO_PIN_STICKY 0x00001050L
226 #define BA0_AC97_GPIO_PIN_WAKEUP 0x00001052L
227 #define BA0_AC97_GPIO_PIN_STATUS 0x00001054L
228 #define BA0_AC97_MISC_MODEM_AFE_STAT 0x00001056L
229 #define BA0_AC97_RESERVED_58 0x00001058L
230 #define BA0_AC97_CRYSTAL_REV_N_FAB_ID 0x0000105AL
231 #define BA0_AC97_TEST_AND_MISC_CTRL 0x0000105CL
232 #define BA0_AC97_AC_MODE 0x0000105EL
233 #define BA0_AC97_MISC_CRYSTAL_CONTROL 0x00001060L
234 #define BA0_AC97_LINE1_HYPRID_CTRL 0x00001062L
235 #define BA0_AC97_VENDOR_RESERVED_64 0x00001064L
236 #define BA0_AC97_VENDOR_RESERVED_66 0x00001066L
237 #define BA0_AC97_SPDIF_CONTROL 0x00001068L
238 #define BA0_AC97_VENDOR_RESERVED_6A 0x0000106AL
239 #define BA0_AC97_VENDOR_RESERVED_6C 0x0000106CL
240 #define BA0_AC97_VENDOR_RESERVED_6E 0x0000106EL
241 #define BA0_AC97_VENDOR_RESERVED_70 0x00001070L
242 #define BA0_AC97_VENDOR_RESERVED_72 0x00001072L
243 #define BA0_AC97_VENDOR_RESERVED_74 0x00001074L
244 #define BA0_AC97_CAL_ADDRESS 0x00001076L
245 #define BA0_AC97_CAL_DATA 0x00001078L
246 #define BA0_AC97_VENDOR_RESERVED_7A 0x0000107AL
247 #define BA0_AC97_VENDOR_ID1 0x0000107CL
248 #define BA0_AC97_VENDOR_ID2 0x0000107EL
249
250 //****************************************************************************
251 //
252 // The following define the offsets of the registers and memories accessed via
253 // base address register one on the CS4281 part.
254 //
255 //****************************************************************************
256
257 //****************************************************************************
258 //
259 // The following defines are for the flags in the PCI device ID/vendor ID
260 // register.
261 //
262 //****************************************************************************
263 #define PDV_VENID_MASK 0x0000FFFFL
264 #define PDV_DEVID_MASK 0xFFFF0000L
265 #define PDV_VENID_SHIFT 0L
266 #define PDV_DEVID_SHIFT 16L
267 #define VENID_CIRRUS_LOGIC 0x1013L
268 #define DEVID_CS4281 0x6005L
269
270 //****************************************************************************
271 //
272 // The following defines are for the flags in the PCI status and command
273 // register.
274 //
275 //****************************************************************************
276 #define PSC_IO_SPACE_ENABLE 0x00000001L
277 #define PSC_MEMORY_SPACE_ENABLE 0x00000002L
278 #define PSC_BUS_MASTER_ENABLE 0x00000004L
279 #define PSC_SPECIAL_CYCLES 0x00000008L
280 #define PSC_MWI_ENABLE 0x00000010L
281 #define PSC_VGA_PALETTE_SNOOP 0x00000020L
282 #define PSC_PARITY_RESPONSE 0x00000040L
283 #define PSC_WAIT_CONTROL 0x00000080L
284 #define PSC_SERR_ENABLE 0x00000100L
285 #define PSC_FAST_B2B_ENABLE 0x00000200L
286 #define PSC_UDF_MASK 0x007F0000L
287 #define PSC_FAST_B2B_CAPABLE 0x00800000L
288 #define PSC_PARITY_ERROR_DETECTED 0x01000000L
289 #define PSC_DEVSEL_TIMING_MASK 0x06000000L
290 #define PSC_TARGET_ABORT_SIGNALLED 0x08000000L
291 #define PSC_RECEIVED_TARGET_ABORT 0x10000000L
292 #define PSC_RECEIVED_MASTER_ABORT 0x20000000L
293 #define PSC_SIGNALLED_SERR 0x40000000L
294 #define PSC_DETECTED_PARITY_ERROR 0x80000000L
295 #define PSC_UDF_SHIFT 16L
296 #define PSC_DEVSEL_TIMING_SHIFT 25L
297
298 //****************************************************************************
299 //
300 // The following defines are for the flags in the PCI class/revision ID
301 // register.
302 //
303 //****************************************************************************
304 #define PCR_REVID_MASK 0x000000FFL
305 #define PCR_INTERFACE_MASK 0x0000FF00L
306 #define PCR_SUBCLASS_MASK 0x00FF0000L
307 #define PCR_CLASS_MASK 0xFF000000L
308 #define PCR_REVID_SHIFT 0L
309 #define PCR_INTERFACE_SHIFT 8L
310 #define PCR_SUBCLASS_SHIFT 16L
311 #define PCR_CLASS_SHIFT 24L
312
313 //****************************************************************************
314 //
315 // The following defines are for the flags in the PCI latency timer register.
316 //
317 //****************************************************************************
318 #define PLT_CACHE_LINE_SIZE_MASK 0x000000FFL
319 #define PLT_LATENCY_TIMER_MASK 0x0000FF00L
320 #define PLT_HEADER_TYPE_MASK 0x00FF0000L
321 #define PLT_BIST_MASK 0xFF000000L
322 #define PLT_CACHE_LINE_SIZE_SHIFT 0L
323 #define PLT_LATENCY_TIMER_SHIFT 8L
324 #define PLT_HEADER_TYPE_SHIFT 16L
325 #define PLT_BIST_SHIFT 24L
326
327 //****************************************************************************
328 //
329 // The following defines are for the flags in the PCI base address registers.
330 //
331 //****************************************************************************
332 #define PBAR_MEMORY_SPACE_INDICATOR 0x00000001L
333 #define PBAR_LOCATION_TYPE_MASK 0x00000006L
334 #define PBAR_NOT_PREFETCHABLE 0x00000008L
335 #define PBAR_ADDRESS_MASK 0xFFFFFFF0L
336 #define PBAR_LOCATION_TYPE_SHIFT 1L
337
338 //****************************************************************************
339 //
340 // The following defines are for the flags in the PCI subsystem ID/subsystem
341 // vendor ID register.
342 //
343 //****************************************************************************
344 #define PSS_SUBSYSTEM_VENDOR_ID_MASK 0x0000FFFFL
345 #define PSS_SUBSYSTEM_ID_MASK 0xFFFF0000L
346 #define PSS_SUBSYSTEM_VENDOR_ID_SHIFT 0L
347 #define PSS_SUBSYSTEM_ID_SHIFT 16L
348
349 //****************************************************************************
350 //
351 // The following defines are for the flags in the PCI interrupt register.
352 //
353 //****************************************************************************
354 #define PI_LINE_MASK 0x000000FFL
355 #define PI_PIN_MASK 0x0000FF00L
356 #define PI_MIN_GRANT_MASK 0x00FF0000L
357 #define PI_MAX_LATENCY_MASK 0xFF000000L
358 #define PI_LINE_SHIFT 0L
359 #define PI_PIN_SHIFT 8L
360 #define PI_MIN_GRANT_SHIFT 16L
361 #define PI_MAX_LATENCY_SHIFT 24L
362
363 //****************************************************************************
364 //
365 // The following defines are for the flags in the host interrupt status
366 // register.
367 //
368 //****************************************************************************
369 #define HISR_HVOLMASK 0x00000003L
370 #define HISR_VDNI 0x00000001L
371 #define HISR_VUPI 0x00000002L
372 #define HISR_GP1I 0x00000004L
373 #define HISR_GP3I 0x00000008L
374 #define HISR_GPSI 0x00000010L
375 #define HISR_GPPI 0x00000020L
376 #define HISR_DMAI 0x00040000L
377 #define HISR_FIFOI 0x00100000L
378 #define HISR_HVOL 0x00200000L
379 #define HISR_MIDI 0x00400000L
380 #define HISR_SBINT 0x00800000L
381 #define HISR_INTENA 0x80000000L
382 #define HISR_DMA_MASK 0x00000F00L
383 #define HISR_FIFO_MASK 0x0000F000L
384 #define HISR_DMA_SHIFT 8L
385 #define HISR_FIFO_SHIFT 12L
386 #define HISR_FIFO0 0x00001000L
387 #define HISR_FIFO1 0x00002000L
388 #define HISR_FIFO2 0x00004000L
389 #define HISR_FIFO3 0x00008000L
390 #define HISR_DMA0 0x00000100L
391 #define HISR_DMA1 0x00000200L
392 #define HISR_DMA2 0x00000400L
393 #define HISR_DMA3 0x00000800L
394 #define HISR_RESERVED 0x40000000L
395
396 //****************************************************************************
397 //
398 // The following defines are for the flags in the host interrupt control
399 // register.
400 //
401 //****************************************************************************
402 #define HICR_IEV 0x00000001L
403 #define HICR_CHGM 0x00000002L
404
405 //****************************************************************************
406 //
407 // The following defines are for the flags in the DMA Mode Register n
408 // (DMRn)
409 //
410 //****************************************************************************
411 #define DMRn_TR_MASK 0x0000000CL
412 #define DMRn_TR_SHIFT 2L
413 #define DMRn_AUTO 0x00000010L
414 #define DMRn_TR_READ 0x00000008L
415 #define DMRn_TR_WRITE 0x00000004L
416 #define DMRn_TYPE_MASK 0x000000C0L
417 #define DMRn_TYPE_SHIFT 6L
418 #define DMRn_SIZE8 0x00010000L
419 #define DMRn_MONO 0x00020000L
420 #define DMRn_BEND 0x00040000L
421 #define DMRn_USIGN 0x00080000L
422 #define DMRn_SIZE20 0x00100000L
423 #define DMRn_SWAPC 0x00400000L
424 #define DMRn_CBC 0x01000000L
425 #define DMRn_TBC 0x02000000L
426 #define DMRn_POLL 0x10000000L
427 #define DMRn_DMA 0x20000000L
428 #define DMRn_FSEL_MASK 0xC0000000L
429 #define DMRn_FSEL_SHIFT 30L
430 #define DMRn_FSEL0 0x00000000L
431 #define DMRn_FSEL1 0x40000000L
432 #define DMRn_FSEL2 0x80000000L
433 #define DMRn_FSEL3 0xC0000000L
434
435 //****************************************************************************
436 //
437 // The following defines are for the flags in the DMA Command Register n
438 // (DCRn)
439 //
440 //****************************************************************************
441 #define DCRn_HTCIE 0x00020000L
442 #define DCRn_TCIE 0x00010000L
443 #define DCRn_MSK 0x00000001L
444
445 //****************************************************************************
446 //
447 // The following defines are for the flags in the FIFO Control
448 // register n.(FCRn)
449 //
450 //****************************************************************************
451 #define FCRn_OF_MASK 0x0000007FL
452 #define FCRn_OF_SHIFT 0L
453 #define FCRn_SZ_MASK 0x00007F00L
454 #define FCRn_SZ_SHIFT 8L
455 #define FCRn_LS_MASK 0x001F0000L
456 #define FCRn_LS_SHIFT 16L
457 #define FCRn_RS_MASK 0x1F000000L
458 #define FCRn_RS_SHIFT 24L
459 #define FCRn_FEN 0x80000000L
460 #define FCRn_PSH 0x20000000L
461 #define FCRn_DACZ 0x40000000L
462
463 //****************************************************************************
464 //
465 // The following defines are for the flags in the serial port Power Management
466 // control register.(SPMC)
467 //
468 //****************************************************************************
469 #define SPMC_RSTN 0x00000001L
470 #define SPMC_ASYN 0x00000002L
471 #define SPMC_WUP1 0x00000004L
472 #define SPMC_WUP2 0x00000008L
473 #define SPMC_ASDI2E 0x00000100L
474 #define SPMC_ESSPD 0x00000200L
475 #define SPMC_GISPEN 0x00004000L
476 #define SPMC_GIPPEN 0x00008000L
477
478 //****************************************************************************
479 //
480 // The following defines are for the flags in the Configuration Load register.
481 // (CFLR)
482 //
483 //****************************************************************************
484 #define CFLR_CLOCK_SOURCE_MASK 0x00000003L
485 #define CFLR_CLOCK_SOURCE_AC97 0x00000001L
486
487 #define CFLR_CB0_MASK 0x000000FFL
488 #define CFLR_CB1_MASK 0x0000FF00L
489 #define CFLR_CB2_MASK 0x00FF0000L
490 #define CFLR_CB3_MASK 0xFF000000L
491 #define CFLR_CB0_SHIFT 0L
492 #define CFLR_CB1_SHIFT 8L
493 #define CFLR_CB2_SHIFT 16L
494 #define CFLR_CB3_SHIFT 24L
495
496 #define IOTCR_DMA0 0x00000000L
497 #define IOTCR_DMA1 0x00000400L
498 #define IOTCR_DMA2 0x00000800L
499 #define IOTCR_DMA3 0x00000C00L
500 #define IOTCR_CCLS 0x00000100L
501 #define IOTCR_PCPCI 0x00000200L
502 #define IOTCR_DDMA 0x00000300L
503
504 #define SBWBS_WBB 0x00000080L
505
506 //****************************************************************************
507 //
508 // The following defines are for the flags in the SRC Slot Assignment Register
509 // (SRCSA)
510 //
511 //****************************************************************************
512 #define SRCSA_PLSS_MASK 0x0000001FL
513 #define SRCSA_PLSS_SHIFT 0L
514 #define SRCSA_PRSS_MASK 0x00001F00L
515 #define SRCSA_PRSS_SHIFT 8L
516 #define SRCSA_CLSS_MASK 0x001F0000L
517 #define SRCSA_CLSS_SHIFT 16L
518 #define SRCSA_CRSS_MASK 0x1F000000L
519 #define SRCSA_CRSS_SHIFT 24L
520
521 //****************************************************************************
522 //
523 // The following defines are for the flags in the Sound System Power Management
524 // register.(SSPM)
525 //
526 //****************************************************************************
527 #define SSPM_FPDN 0x00000080L
528 #define SSPM_MIXEN 0x00000040L
529 #define SSPM_CSRCEN 0x00000020L
530 #define SSPM_PSRCEN 0x00000010L
531 #define SSPM_JSEN 0x00000008L
532 #define SSPM_ACLEN 0x00000004L
533 #define SSPM_FMEN 0x00000002L
534
535 //****************************************************************************
536 //
537 // The following defines are for the flags in the Sound System Control
538 // Register. (SSCR)
539 //
540 //****************************************************************************
541 #define SSCR_SB 0x00000004L
542 #define SSCR_HVC 0x00000008L
543 #define SSCR_LPFIFO 0x00000040L
544 #define SSCR_LPSRC 0x00000080L
545 #define SSCR_XLPSRC 0x00000100L
546 #define SSCR_MVMD 0x00010000L
547 #define SSCR_MVAD 0x00020000L
548 #define SSCR_MVLD 0x00040000L
549 #define SSCR_MVCS 0x00080000L
550
551 //****************************************************************************
552 //
553 // The following defines are for the flags in the Clock Control Register 1.
554 // (CLKCR1)
555 //
556 //****************************************************************************
557 #define CLKCR1_DLLSS_MASK 0x0000000CL
558 #define CLKCR1_DLLSS_SHIFT 2L
559 #define CLKCR1_DLLP 0x00000010L
560 #define CLKCR1_SWCE 0x00000020L
561 #define CLKCR1_DLLOS 0x00000040L
562 #define CLKCR1_CKRA 0x00010000L
563 #define CLKCR1_CKRN 0x00020000L
564 #define CLKCR1_DLLRDY 0x01000000L
565 #define CLKCR1_CLKON 0x02000000L
566
567 //****************************************************************************
568 //
569 // The following defines are for the flags in the Sound Blaster Read Buffer
570 // Status.(SBRBS)
571 //
572 //****************************************************************************
573 #define SBRBS_RD_MASK 0x0000007FL
574 #define SBRBS_RD_SHIFT 0L
575 #define SBRBS_RBF 0x00000080L
576
577 //****************************************************************************
578 //
579 // The following defines are for the flags in the serial port master control
580 // register.(SERMC)
581 //
582 //****************************************************************************
583 #define SERMC_MSPE 0x00000001L
584 #define SERMC_PTC_MASK 0x0000000EL
585 #define SERMC_PTC_SHIFT 1L
586 #define SERMC_PTC_AC97 0x00000002L
587 #define SERMC_PLB 0x00000010L
588 #define SERMC_PXLB 0x00000020L
589 #define SERMC_LOFV 0x00080000L
590 #define SERMC_SLB 0x00100000L
591 #define SERMC_SXLB 0x00200000L
592 #define SERMC_ODSEN1 0x01000000L
593 #define SERMC_ODSEN2 0x02000000L
594
595 //****************************************************************************
596 //
597 // The following defines are for the flags in the General Purpose I/O Register.
598 // (GPIOR)
599 //
600 //****************************************************************************
601 #define GPIOR_VDNS 0x00000001L
602 #define GPIOR_VUPS 0x00000002L
603 #define GPIOR_GP1S 0x00000004L
604 #define GPIOR_GP3S 0x00000008L
605 #define GPIOR_GPSS 0x00000010L
606 #define GPIOR_GPPS 0x00000020L
607 #define GPIOR_GP1D 0x00000400L
608 #define GPIOR_GP3D 0x00000800L
609 #define GPIOR_VDNLT 0x00010000L
610 #define GPIOR_VDNPO 0x00020000L
611 #define GPIOR_VDNST 0x00040000L
612 #define GPIOR_VDNW 0x00080000L
613 #define GPIOR_VUPLT 0x00100000L
614 #define GPIOR_VUPPO 0x00200000L
615 #define GPIOR_VUPST 0x00400000L
616 #define GPIOR_VUPW 0x00800000L
617 #define GPIOR_GP1OE 0x01000000L
618 #define GPIOR_GP1PT 0x02000000L
619 #define GPIOR_GP1ST 0x04000000L
620 #define GPIOR_GP1W 0x08000000L
621 #define GPIOR_GP3OE 0x10000000L
622 #define GPIOR_GP3PT 0x20000000L
623 #define GPIOR_GP3ST 0x40000000L
624 #define GPIOR_GP3W 0x80000000L
625
626 //****************************************************************************
627 //
628 // The following defines are for the flags in the clock control register 1.
629 //
630 //****************************************************************************
631 #define CLKCR1_PLLSS_MASK 0x0000000CL
632 #define CLKCR1_PLLSS_SERIAL 0x00000000L
633 #define CLKCR1_PLLSS_CRYSTAL 0x00000004L
634 #define CLKCR1_PLLSS_PCI 0x00000008L
635 #define CLKCR1_PLLSS_RESERVED 0x0000000CL
636 #define CLKCR1_PLLP 0x00000010L
637 #define CLKCR1_SWCE 0x00000020L
638 #define CLKCR1_PLLOS 0x00000040L
639
640 //****************************************************************************
641 //
642 // The following defines are for the flags in the feature reporting register.
643 //
644 //****************************************************************************
645 #define FRR_FAB_MASK 0x00000003L
646 #define FRR_MASK_MASK 0x0000001CL
647 #define FRR_ID_MASK 0x00003000L
648 #define FRR_FAB_SHIFT 0L
649 #define FRR_MASK_SHIFT 2L
650 #define FRR_ID_SHIFT 12L
651
652 //****************************************************************************
653 //
654 // The following defines are for the flags in the serial port 1 configuration
655 // register.
656 //
657 //****************************************************************************
658 #define SERC1_VALUE 0x00000003L
659 #define SERC1_SO1EN 0x00000001L
660 #define SERC1_SO1F_MASK 0x0000000EL
661 #define SERC1_SO1F_CS423X 0x00000000L
662 #define SERC1_SO1F_AC97 0x00000002L
663 #define SERC1_SO1F_DAC 0x00000004L
664 #define SERC1_SO1F_SPDIF 0x00000006L
665
666 //****************************************************************************
667 //
668 // The following defines are for the flags in the serial port 2 configuration
669 // register.
670 //
671 //****************************************************************************
672 #define SERC2_VALUE 0x00000003L
673 #define SERC2_SI1EN 0x00000001L
674 #define SERC2_SI1F_MASK 0x0000000EL
675 #define SERC2_SI1F_CS423X 0x00000000L
676 #define SERC2_SI1F_AC97 0x00000002L
677 #define SERC2_SI1F_ADC 0x00000004L
678 #define SERC2_SI1F_SPDIF 0x00000006L
679
680 //****************************************************************************
681 //
682 // The following defines are for the flags in the AC97 control register.
683 //
684 //****************************************************************************
685 #define ACCTL_ESYN 0x00000002L
686 #define ACCTL_VFRM 0x00000004L
687 #define ACCTL_DCV 0x00000008L
688 #define ACCTL_CRW 0x00000010L
689 #define ACCTL_TC 0x00000040L
690
691 //****************************************************************************
692 //
693 // The following defines are for the flags in the AC97 status register.
694 //
695 //****************************************************************************
696 #define ACSTS_CRDY 0x00000001L
697 #define ACSTS_VSTS 0x00000002L
698
699 //****************************************************************************
700 //
701 // The following defines are for the flags in the AC97 output slot valid
702 // register.
703 //
704 //****************************************************************************
705 #define ACOSV_SLV3 0x00000001L
706 #define ACOSV_SLV4 0x00000002L
707 #define ACOSV_SLV5 0x00000004L
708 #define ACOSV_SLV6 0x00000008L
709 #define ACOSV_SLV7 0x00000010L
710 #define ACOSV_SLV8 0x00000020L
711 #define ACOSV_SLV9 0x00000040L
712 #define ACOSV_SLV10 0x00000080L
713 #define ACOSV_SLV11 0x00000100L
714 #define ACOSV_SLV12 0x00000200L
715
716 //****************************************************************************
717 //
718 // The following defines are for the flags in the AC97 command address
719 // register.
720 //
721 //****************************************************************************
722 #define ACCAD_CI_MASK 0x0000007FL
723 #define ACCAD_CI_SHIFT 0L
724
725 //****************************************************************************
726 //
727 // The following defines are for the flags in the AC97 command data register.
728 //
729 //****************************************************************************
730 #define ACCDA_CD_MASK 0x0000FFFFL
731 #define ACCDA_CD_SHIFT 0L
732
733 //****************************************************************************
734 //
735 // The following defines are for the flags in the AC97 input slot valid
736 // register.
737 //
738 //****************************************************************************
739 #define ACISV_ISV3 0x00000001L
740 #define ACISV_ISV4 0x00000002L
741 #define ACISV_ISV5 0x00000004L
742 #define ACISV_ISV6 0x00000008L
743 #define ACISV_ISV7 0x00000010L
744 #define ACISV_ISV8 0x00000020L
745 #define ACISV_ISV9 0x00000040L
746 #define ACISV_ISV10 0x00000080L
747 #define ACISV_ISV11 0x00000100L
748 #define ACISV_ISV12 0x00000200L
749
750 //****************************************************************************
751 //
752 // The following defines are for the flags in the AC97 status address
753 // register.
754 //
755 //****************************************************************************
756 #define ACSAD_SI_MASK 0x0000007FL
757 #define ACSAD_SI_SHIFT 0L
758
759 //****************************************************************************
760 //
761 // The following defines are for the flags in the AC97 status data register.
762 //
763 //****************************************************************************
764 #define ACSDA_SD_MASK 0x0000FFFFL
765 #define ACSDA_SD_SHIFT 0L
766
767 //****************************************************************************
768 //
769 // The following defines are for the flags in the I/O trap address and control
770 // registers (all 12).
771 //
772 //****************************************************************************
773 #define IOTAC_SA_MASK 0x0000FFFFL
774 #define IOTAC_MSK_MASK 0x000F0000L
775 #define IOTAC_IODC_MASK 0x06000000L
776 #define IOTAC_IODC_16_BIT 0x00000000L
777 #define IOTAC_IODC_10_BIT 0x02000000L
778 #define IOTAC_IODC_12_BIT 0x04000000L
779 #define IOTAC_WSPI 0x08000000L
780 #define IOTAC_RSPI 0x10000000L
781 #define IOTAC_WSE 0x20000000L
782 #define IOTAC_WE 0x40000000L
783 #define IOTAC_RE 0x80000000L
784 #define IOTAC_SA_SHIFT 0L
785 #define IOTAC_MSK_SHIFT 16L
786
787 //****************************************************************************
788 //
789 // The following defines are for the flags in the PC/PCI master enable
790 // register.
791 //
792 //****************************************************************************
793 #define PCPCIEN_EN 0x00000001L
794
795 //****************************************************************************
796 //
797 // The following defines are for the flags in the joystick poll/trigger
798 // register.
799 //
800 //****************************************************************************
801 #define JSPT_CAX 0x00000001L
802 #define JSPT_CAY 0x00000002L
803 #define JSPT_CBX 0x00000004L
804 #define JSPT_CBY 0x00000008L
805 #define JSPT_BA1 0x00000010L
806 #define JSPT_BA2 0x00000020L
807 #define JSPT_BB1 0x00000040L
808 #define JSPT_BB2 0x00000080L
809
810 //****************************************************************************
811 //
812 // The following defines are for the flags in the joystick control register.
813 // The TBF bit has been moved from MIDSR register to JSCTL register bit 8.
814 //
815 //****************************************************************************
816 #define JSCTL_SP_MASK 0x00000003L
817 #define JSCTL_SP_SLOW 0x00000000L
818 #define JSCTL_SP_MEDIUM_SLOW 0x00000001L
819 #define JSCTL_SP_MEDIUM_FAST 0x00000002L
820 #define JSCTL_SP_FAST 0x00000003L
821 #define JSCTL_ARE 0x00000004L
822 #define JSCTL_TBF 0x00000100L
823
824
825 //****************************************************************************
826 //
827 // The following defines are for the flags in the MIDI control register.
828 //
829 //****************************************************************************
830 #define MIDCR_TXE 0x00000001L
831 #define MIDCR_RXE 0x00000002L
832 #define MIDCR_RIE 0x00000004L
833 #define MIDCR_TIE 0x00000008L
834 #define MIDCR_MLB 0x00000010L
835 #define MIDCR_MRST 0x00000020L
836
837 //****************************************************************************
838 //
839 // The following defines are for the flags in the MIDI status register.
840 //
841 //****************************************************************************
842 #define MIDSR_RBE 0x00000080L
843 #define MIDSR_RDA 0x00008000L
844
845 //****************************************************************************
846 //
847 // The following defines are for the flags in the MIDI write port register.
848 //
849 //****************************************************************************
850 #define MIDWP_MWD_MASK 0x000000FFL
851 #define MIDWP_MWD_SHIFT 0L
852
853 //****************************************************************************
854 //
855 // The following defines are for the flags in the MIDI read port register.
856 //
857 //****************************************************************************
858 #define MIDRP_MRD_MASK 0x000000FFL
859 #define MIDRP_MRD_SHIFT 0L
860
861 //****************************************************************************
862 //
863 // The following defines are for the flags in the configuration interface
864 // register.
865 //
866 //****************************************************************************
867 #define CFGI_CLK 0x00000001L
868 #define CFGI_DOUT 0x00000002L
869 #define CFGI_DIN_EEN 0x00000004L
870 #define CFGI_EELD 0x00000008L
871
872 //****************************************************************************
873 //
874 // The following defines are for the flags in the subsystem ID and vendor ID
875 // register.
876 //
877 //****************************************************************************
878 #define SSVID_VID_MASK 0x0000FFFFL
879 #define SSVID_SID_MASK 0xFFFF0000L
880 #define SSVID_VID_SHIFT 0L
881 #define SSVID_SID_SHIFT 16L
882
883 //****************************************************************************
884 //
885 // The following defines are for the flags in the GPIO pin interface register.
886 //
887 //****************************************************************************
888 #define GPIOR_VOLDN 0x00000001L
889 #define GPIOR_VOLUP 0x00000002L
890 #define GPIOR_SI2D 0x00000004L
891 #define GPIOR_SI2OE 0x00000008L
892
893 //****************************************************************************
894 //
895 // The following defines are for the flags in the AC97 status register 2.
896 //
897 //****************************************************************************
898 #define ACSTS2_CRDY 0x00000001L
899 #define ACSTS2_VSTS 0x00000002L
900
901 //****************************************************************************
902 //
903 // The following defines are for the flags in the AC97 input slot valid
904 // register 2.
905 //
906 //****************************************************************************
907 #define ACISV2_ISV3 0x00000001L
908 #define ACISV2_ISV4 0x00000002L
909 #define ACISV2_ISV5 0x00000004L
910 #define ACISV2_ISV6 0x00000008L
911 #define ACISV2_ISV7 0x00000010L
912 #define ACISV2_ISV8 0x00000020L
913 #define ACISV2_ISV9 0x00000040L
914 #define ACISV2_ISV10 0x00000080L
915 #define ACISV2_ISV11 0x00000100L
916 #define ACISV2_ISV12 0x00000200L
917
918 //****************************************************************************
919 //
920 // The following defines are for the flags in the AC97 status address
921 // register 2.
922 //
923 //****************************************************************************
924 #define ACSAD2_SI_MASK 0x0000007FL
925 #define ACSAD2_SI_SHIFT 0L
926
927 //****************************************************************************
928 //
929 // The following defines are for the flags in the AC97 status data register 2.
930 //
931 //****************************************************************************
932 #define ACSDA2_SD_MASK 0x0000FFFFL
933 #define ACSDA2_SD_SHIFT 0L
934
935 //****************************************************************************
936 //
937 // The following defines are for the flags in the I/O trap control register.
938 //
939 //****************************************************************************
940 #define IOTCR_ITD 0x00000001L
941 #define IOTCR_HRV 0x00000002L
942 #define IOTCR_SRV 0x00000004L
943 #define IOTCR_DTI 0x00000008L
944 #define IOTCR_DFI 0x00000010L
945 #define IOTCR_DDP 0x00000020L
946 #define IOTCR_JTE 0x00000040L
947 #define IOTCR_PPE 0x00000080L
948
949 //****************************************************************************
950 //
951 // The following defines are for the flags in the I/O trap address and control
952 // registers for Hardware Master Volume.
953 //
954 //****************************************************************************
955 #define IOTGP_SA_MASK 0x0000FFFFL
956 #define IOTGP_MSK_MASK 0x000F0000L
957 #define IOTGP_IODC_MASK 0x06000000L
958 #define IOTGP_IODC_16_BIT 0x00000000L
959 #define IOTGP_IODC_10_BIT 0x02000000L
960 #define IOTGP_IODC_12_BIT 0x04000000L
961 #define IOTGP_WSPI 0x08000000L
962 #define IOTGP_RSPI 0x10000000L
963 #define IOTGP_WSE 0x20000000L
964 #define IOTGP_WE 0x40000000L
965 #define IOTGP_RE 0x80000000L
966 #define IOTGP_SA_SHIFT 0L
967 #define IOTGP_MSK_SHIFT 16L
968
969 //****************************************************************************
970 //
971 // The following defines are for the flags in the I/O trap address and control
972 // registers for Sound Blaster
973 //
974 //****************************************************************************
975 #define IOTSB_SA_MASK 0x0000FFFFL
976 #define IOTSB_MSK_MASK 0x000F0000L
977 #define IOTSB_IODC_MASK 0x06000000L
978 #define IOTSB_IODC_16_BIT 0x00000000L
979 #define IOTSB_IODC_10_BIT 0x02000000L
980 #define IOTSB_IODC_12_BIT 0x04000000L
981 #define IOTSB_WSPI 0x08000000L
982 #define IOTSB_RSPI 0x10000000L
983 #define IOTSB_WSE 0x20000000L
984 #define IOTSB_WE 0x40000000L
985 #define IOTSB_RE 0x80000000L
986 #define IOTSB_SA_SHIFT 0L
987 #define IOTSB_MSK_SHIFT 16L
988
989 //****************************************************************************
990 //
991 // The following defines are for the flags in the I/O trap address and control
992 // registers for FM.
993 //
994 //****************************************************************************
995 #define IOTFM_SA_MASK 0x0000FFFFL
996 #define IOTFM_MSK_MASK 0x000F0000L
997 #define IOTFM_IODC_MASK 0x06000000L
998 #define IOTFM_IODC_16_BIT 0x00000000L
999 #define IOTFM_IODC_10_BIT 0x02000000L
1000 #define IOTFM_IODC_12_BIT 0x04000000L
1001 #define IOTFM_WSPI 0x08000000L
1002 #define IOTFM_RSPI 0x10000000L
1003 #define IOTFM_WSE 0x20000000L
1004 #define IOTFM_WE 0x40000000L
1005 #define IOTFM_RE 0x80000000L
1006 #define IOTFM_SA_SHIFT 0L
1007 #define IOTFM_MSK_SHIFT 16L
1008
1009 //****************************************************************************
1010 //
1011 // The following defines are for the flags in the PC/PCI request register.
1012 //
1013 //****************************************************************************
1014 #define PCPRR_RDC_MASK 0x00000007L
1015 #define PCPRR_REQ 0x00008000L
1016 #define PCPRR_RDC_SHIFT 0L
1017
1018 //****************************************************************************
1019 //
1020 // The following defines are for the flags in the PC/PCI grant register.
1021 //
1022 //****************************************************************************
1023 #define PCPGR_GDC_MASK 0x00000007L
1024 #define PCPGR_VL 0x00008000L
1025 #define PCPGR_GDC_SHIFT 0L
1026
1027 //****************************************************************************
1028 //
1029 // The following defines are for the flags in the PC/PCI Control Register.
1030 //
1031 //****************************************************************************
1032 #define PCPCR_EN 0x00000001L
1033
1034 //****************************************************************************
1035 //
1036 // The following defines are for the flags in the debug index register.
1037 //
1038 //****************************************************************************
1039 #define DREG_REGID_MASK 0x0000007FL
1040 #define DREG_DEBUG 0x00000080L
1041 #define DREG_RGBK_MASK 0x00000700L
1042 #define DREG_TRAP 0x00000800L
1043 #if !defined(NO_CS4612)
1044 #if !defined(NO_CS4615)
1045 #define DREG_TRAPX 0x00001000L
1046 #endif
1047 #endif
1048 #define DREG_REGID_SHIFT 0L
1049 #define DREG_RGBK_SHIFT 8L
1050 #define DREG_RGBK_REGID_MASK 0x0000077FL
1051 #define DREG_REGID_R0 0x00000010L
1052 #define DREG_REGID_R1 0x00000011L
1053 #define DREG_REGID_R2 0x00000012L
1054 #define DREG_REGID_R3 0x00000013L
1055 #define DREG_REGID_R4 0x00000014L
1056 #define DREG_REGID_R5 0x00000015L
1057 #define DREG_REGID_R6 0x00000016L
1058 #define DREG_REGID_R7 0x00000017L
1059 #define DREG_REGID_R8 0x00000018L
1060 #define DREG_REGID_R9 0x00000019L
1061 #define DREG_REGID_RA 0x0000001AL
1062 #define DREG_REGID_RB 0x0000001BL
1063 #define DREG_REGID_RC 0x0000001CL
1064 #define DREG_REGID_RD 0x0000001DL
1065 #define DREG_REGID_RE 0x0000001EL
1066 #define DREG_REGID_RF 0x0000001FL
1067 #define DREG_REGID_RA_BUS_LOW 0x00000020L
1068 #define DREG_REGID_RA_BUS_HIGH 0x00000038L
1069 #define DREG_REGID_YBUS_LOW 0x00000050L
1070 #define DREG_REGID_YBUS_HIGH 0x00000058L
1071 #define DREG_REGID_TRAP_0 0x00000100L
1072 #define DREG_REGID_TRAP_1 0x00000101L
1073 #define DREG_REGID_TRAP_2 0x00000102L
1074 #define DREG_REGID_TRAP_3 0x00000103L
1075 #define DREG_REGID_TRAP_4 0x00000104L
1076 #define DREG_REGID_TRAP_5 0x00000105L
1077 #define DREG_REGID_TRAP_6 0x00000106L
1078 #define DREG_REGID_TRAP_7 0x00000107L
1079 #define DREG_REGID_INDIRECT_ADDRESS 0x0000010EL
1080 #define DREG_REGID_TOP_OF_STACK 0x0000010FL
1081 #if !defined(NO_CS4612)
1082 #if !defined(NO_CS4615)
1083 #define DREG_REGID_TRAP_8 0x00000110L
1084 #define DREG_REGID_TRAP_9 0x00000111L
1085 #define DREG_REGID_TRAP_10 0x00000112L
1086 #define DREG_REGID_TRAP_11 0x00000113L
1087 #define DREG_REGID_TRAP_12 0x00000114L
1088 #define DREG_REGID_TRAP_13 0x00000115L
1089 #define DREG_REGID_TRAP_14 0x00000116L
1090 #define DREG_REGID_TRAP_15 0x00000117L
1091 #define DREG_REGID_TRAP_16 0x00000118L
1092 #define DREG_REGID_TRAP_17 0x00000119L
1093 #define DREG_REGID_TRAP_18 0x0000011AL
1094 #define DREG_REGID_TRAP_19 0x0000011BL
1095 #define DREG_REGID_TRAP_20 0x0000011CL
1096 #define DREG_REGID_TRAP_21 0x0000011DL
1097 #define DREG_REGID_TRAP_22 0x0000011EL
1098 #define DREG_REGID_TRAP_23 0x0000011FL
1099 #endif
1100 #endif
1101 #define DREG_REGID_RSA0_LOW 0x00000200L
1102 #define DREG_REGID_RSA0_HIGH 0x00000201L
1103 #define DREG_REGID_RSA1_LOW 0x00000202L
1104 #define DREG_REGID_RSA1_HIGH 0x00000203L
1105 #define DREG_REGID_RSA2 0x00000204L
1106 #define DREG_REGID_RSA3 0x00000205L
1107 #define DREG_REGID_RSI0_LOW 0x00000206L
1108 #define DREG_REGID_RSI0_HIGH 0x00000207L
1109 #define DREG_REGID_RSI1 0x00000208L
1110 #define DREG_REGID_RSI2 0x00000209L
1111 #define DREG_REGID_SAGUSTATUS 0x0000020AL
1112 #define DREG_REGID_RSCONFIG01_LOW 0x0000020BL
1113 #define DREG_REGID_RSCONFIG01_HIGH 0x0000020CL
1114 #define DREG_REGID_RSCONFIG23_LOW 0x0000020DL
1115 #define DREG_REGID_RSCONFIG23_HIGH 0x0000020EL
1116 #define DREG_REGID_RSDMA01E 0x0000020FL
1117 #define DREG_REGID_RSDMA23E 0x00000210L
1118 #define DREG_REGID_RSD0_LOW 0x00000211L
1119 #define DREG_REGID_RSD0_HIGH 0x00000212L
1120 #define DREG_REGID_RSD1_LOW 0x00000213L
1121 #define DREG_REGID_RSD1_HIGH 0x00000214L
1122 #define DREG_REGID_RSD2_LOW 0x00000215L
1123 #define DREG_REGID_RSD2_HIGH 0x00000216L
1124 #define DREG_REGID_RSD3_LOW 0x00000217L
1125 #define DREG_REGID_RSD3_HIGH 0x00000218L
1126 #define DREG_REGID_SRAR_HIGH 0x0000021AL
1127 #define DREG_REGID_SRAR_LOW 0x0000021BL
1128 #define DREG_REGID_DMA_STATE 0x0000021CL
1129 #define DREG_REGID_CURRENT_DMA_STREAM 0x0000021DL
1130 #define DREG_REGID_NEXT_DMA_STREAM 0x0000021EL
1131 #define DREG_REGID_CPU_STATUS 0x00000300L
1132 #define DREG_REGID_MAC_MODE 0x00000301L
1133 #define DREG_REGID_STACK_AND_REPEAT 0x00000302L
1134 #define DREG_REGID_INDEX0 0x00000304L
1135 #define DREG_REGID_INDEX1 0x00000305L
1136 #define DREG_REGID_DMA_STATE_0_3 0x00000400L
1137 #define DREG_REGID_DMA_STATE_4_7 0x00000404L
1138 #define DREG_REGID_DMA_STATE_8_11 0x00000408L
1139 #define DREG_REGID_DMA_STATE_12_15 0x0000040CL
1140 #define DREG_REGID_DMA_STATE_16_19 0x00000410L
1141 #define DREG_REGID_DMA_STATE_20_23 0x00000414L
1142 #define DREG_REGID_DMA_STATE_24_27 0x00000418L
1143 #define DREG_REGID_DMA_STATE_28_31 0x0000041CL
1144 #define DREG_REGID_DMA_STATE_32_35 0x00000420L
1145 #define DREG_REGID_DMA_STATE_36_39 0x00000424L
1146 #define DREG_REGID_DMA_STATE_40_43 0x00000428L
1147 #define DREG_REGID_DMA_STATE_44_47 0x0000042CL
1148 #define DREG_REGID_DMA_STATE_48_51 0x00000430L
1149 #define DREG_REGID_DMA_STATE_52_55 0x00000434L
1150 #define DREG_REGID_DMA_STATE_56_59 0x00000438L
1151 #define DREG_REGID_DMA_STATE_60_63 0x0000043CL
1152 #define DREG_REGID_DMA_STATE_64_67 0x00000440L
1153 #define DREG_REGID_DMA_STATE_68_71 0x00000444L
1154 #define DREG_REGID_DMA_STATE_72_75 0x00000448L
1155 #define DREG_REGID_DMA_STATE_76_79 0x0000044CL
1156 #define DREG_REGID_DMA_STATE_80_83 0x00000450L
1157 #define DREG_REGID_DMA_STATE_84_87 0x00000454L
1158 #define DREG_REGID_DMA_STATE_88_91 0x00000458L
1159 #define DREG_REGID_DMA_STATE_92_95 0x0000045CL
1160 #define DREG_REGID_TRAP_SELECT 0x00000500L
1161 #define DREG_REGID_TRAP_WRITE_0 0x00000500L
1162 #define DREG_REGID_TRAP_WRITE_1 0x00000501L
1163 #define DREG_REGID_TRAP_WRITE_2 0x00000502L
1164 #define DREG_REGID_TRAP_WRITE_3 0x00000503L
1165 #define DREG_REGID_TRAP_WRITE_4 0x00000504L
1166 #define DREG_REGID_TRAP_WRITE_5 0x00000505L
1167 #define DREG_REGID_TRAP_WRITE_6 0x00000506L
1168 #define DREG_REGID_TRAP_WRITE_7 0x00000507L
1169 #if !defined(NO_CS4612)
1170 #if !defined(NO_CS4615)
1171 #define DREG_REGID_TRAP_WRITE_8 0x00000510L
1172 #define DREG_REGID_TRAP_WRITE_9 0x00000511L
1173 #define DREG_REGID_TRAP_WRITE_10 0x00000512L
1174 #define DREG_REGID_TRAP_WRITE_11 0x00000513L
1175 #define DREG_REGID_TRAP_WRITE_12 0x00000514L
1176 #define DREG_REGID_TRAP_WRITE_13 0x00000515L
1177 #define DREG_REGID_TRAP_WRITE_14 0x00000516L
1178 #define DREG_REGID_TRAP_WRITE_15 0x00000517L
1179 #define DREG_REGID_TRAP_WRITE_16 0x00000518L
1180 #define DREG_REGID_TRAP_WRITE_17 0x00000519L
1181 #define DREG_REGID_TRAP_WRITE_18 0x0000051AL
1182 #define DREG_REGID_TRAP_WRITE_19 0x0000051BL
1183 #define DREG_REGID_TRAP_WRITE_20 0x0000051CL
1184 #define DREG_REGID_TRAP_WRITE_21 0x0000051DL
1185 #define DREG_REGID_TRAP_WRITE_22 0x0000051EL
1186 #define DREG_REGID_TRAP_WRITE_23 0x0000051FL
1187 #endif
1188 #endif
1189 #define DREG_REGID_MAC0_ACC0_LOW 0x00000600L
1190 #define DREG_REGID_MAC0_ACC1_LOW 0x00000601L
1191 #define DREG_REGID_MAC0_ACC2_LOW 0x00000602L
1192 #define DREG_REGID_MAC0_ACC3_LOW 0x00000603L
1193 #define DREG_REGID_MAC1_ACC0_LOW 0x00000604L
1194 #define DREG_REGID_MAC1_ACC1_LOW 0x00000605L
1195 #define DREG_REGID_MAC1_ACC2_LOW 0x00000606L
1196 #define DREG_REGID_MAC1_ACC3_LOW 0x00000607L
1197 #define DREG_REGID_MAC0_ACC0_MID 0x00000608L
1198 #define DREG_REGID_MAC0_ACC1_MID 0x00000609L
1199 #define DREG_REGID_MAC0_ACC2_MID 0x0000060AL
1200 #define DREG_REGID_MAC0_ACC3_MID 0x0000060BL
1201 #define DREG_REGID_MAC1_ACC0_MID 0x0000060CL
1202 #define DREG_REGID_MAC1_ACC1_MID 0x0000060DL
1203 #define DREG_REGID_MAC1_ACC2_MID 0x0000060EL
1204 #define DREG_REGID_MAC1_ACC3_MID 0x0000060FL
1205 #define DREG_REGID_MAC0_ACC0_HIGH 0x00000610L
1206 #define DREG_REGID_MAC0_ACC1_HIGH 0x00000611L
1207 #define DREG_REGID_MAC0_ACC2_HIGH 0x00000612L
1208 #define DREG_REGID_MAC0_ACC3_HIGH 0x00000613L
1209 #define DREG_REGID_MAC1_ACC0_HIGH 0x00000614L
1210 #define DREG_REGID_MAC1_ACC1_HIGH 0x00000615L
1211 #define DREG_REGID_MAC1_ACC2_HIGH 0x00000616L
1212 #define DREG_REGID_MAC1_ACC3_HIGH 0x00000617L
1213 #define DREG_REGID_RSHOUT_LOW 0x00000620L
1214 #define DREG_REGID_RSHOUT_MID 0x00000628L
1215 #define DREG_REGID_RSHOUT_HIGH 0x00000630L
1216
1217 //****************************************************************************
1218 //
1219 // The following defines are for the flags in the AC97 S/PDIF Control register.
1220 //
1221 //****************************************************************************
1222 #define SPDIF_CONTROL_SPDIF_EN 0x00008000L
1223 #define SPDIF_CONTROL_VAL 0x00004000L
1224 #define SPDIF_CONTROL_COPY 0x00000004L
1225 #define SPDIF_CONTROL_CC0 0x00000010L
1226 #define SPDIF_CONTROL_CC1 0x00000020L
1227 #define SPDIF_CONTROL_CC2 0x00000040L
1228 #define SPDIF_CONTROL_CC3 0x00000080L
1229 #define SPDIF_CONTROL_CC4 0x00000100L
1230 #define SPDIF_CONTROL_CC5 0x00000200L
1231 #define SPDIF_CONTROL_CC6 0x00000400L
1232 #define SPDIF_CONTROL_L 0x00000800L
1233
1234 #endif // _H_HWDEFS