Linus Torvalds | 1da177e | 2005-04-16 15:20:36 -0700 | [diff] [blame] | 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 |