[BACK]Return to emuxkireg.h CVS log [TXT][DIR] Up to [local] / sys / dev / pci

Annotation of sys/dev/pci/emuxkireg.h, Revision 1.1.1.1

1.1       nbrk        1: /*     $OpenBSD: emuxkireg.h,v 1.5 2006/02/06 22:12:39 jmc Exp $       */
                      2: /*     $NetBSD: emuxkireg.h,v 1.1 2001/10/17 18:39:41 jdolecek Exp $   */
                      3:
                      4: /*-
                      5:  * Copyright (c) 2001 The NetBSD Foundation, Inc.
                      6:  * All rights reserved.
                      7:  *
                      8:  * This code is derived from software contributed to The NetBSD Foundation
                      9:  * by Yannick Montulet.
                     10:  *
                     11:  * Redistribution and use in source and binary forms, with or without
                     12:  * modification, are permitted provided that the following conditions
                     13:  * are met:
                     14:  * 1. Redistributions of source code must retain the above copyright
                     15:  *    notice, this list of conditions and the following disclaimer.
                     16:  * 2. Redistributions in binary form must reproduce the above copyright
                     17:  *    notice, this list of conditions and the following disclaimer in the
                     18:  *    documentation and/or other materials provided with the distribution.
                     19:  * 3. All advertising materials mentioning features or use of this software
                     20:  *    must display the following acknowledgement:
                     21:  *     This product includes software developed by the NetBSD
                     22:  *     Foundation, Inc. and its contributors.
                     23:  * 4. Neither the name of The NetBSD Foundation nor the names of its
                     24:  *    contributors may be used to endorse or promote products derived
                     25:  *    from this software without specific prior written permission.
                     26:  *
                     27:  * THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS
                     28:  * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
                     29:  * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
                     30:  * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS
                     31:  * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
                     32:  * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
                     33:  * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
                     34:  * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
                     35:  * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
                     36:  * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
                     37:  * POSSIBILITY OF SUCH DAMAGE.
                     38:  */
                     39:
                     40: #ifndef _DEV_PCI_EMUXKIREG_H_
                     41: #define _DEV_PCI_EMUXKIREG_H_
                     42:
                     43: /*
                     44:  * Register values for Creative EMU10000. The register values have been
                     45:  * taken from GPLed SBLive! header file published by Creative. The comments
                     46:  * have been stripped to avoid GPL pollution in kernel. The Creative version
                     47:  * including comments is available in Linux 2.4.* kernel as file
                     48:  *     drivers/sound/emu10k1/8010.h
                     49:  */
                     50:
                     51: /*
                     52:  * Audigy specific registers contain an '_A_'
                     53:  * Audigy2 specific registers contain an '_A2_'
                     54:  */
                     55:
                     56: #define        EMU_MKSUBREG(sz, idx, reg)      (((sz) << 24) | ((idx) << 16) | (reg))
                     57:
                     58: #define EMU_PTR        0x00
                     59: #define  EMU_PTR_CHNO_MASK     0x0000003f
                     60: #define  EMU_PTR_ADDR_MASK     0x07ff0000
                     61: #define  EMU_A_PTR_ADDR_MASK   0x0fff0000
                     62:
                     63: #define EMU_DATA       0x04
                     64:
                     65: #define EMU_IPR        0x08
                     66: #define  EMU_IPR_RATETRCHANGE  0x01000000
                     67: #define  EMU_IPR_FXDSP         0x00800000
                     68: #define  EMU_IPR_FORCEINT      0x00400000
                     69: #define  EMU_PCIERROR          0x00200000
                     70: #define  EMU_IPR_VOLINCR       0x00100000
                     71: #define  EMU_IPR_VOLDECR       0x00080000
                     72: #define  EMU_IPR_MUTE          0x00040000
                     73: #define  EMU_IPR_MICBUFFULL    0x00020000
                     74: #define  EMU_IPR_MICBUFHALFFULL        0x00010000
                     75: #define  EMU_IPR_ADCBUFFULL    0x00008000
                     76: #define  EMU_IPR_ADCBUFHALFFULL        0x00004000
                     77: #define  EMU_IPR_EFXBUFFULL    0x00002000
                     78: #define  EMU_IPR_EFXBUFHALFFULL        0x00001000
                     79: #define  EMU_IPR_GPSPDIFSTCHANGE 0x00000800
                     80: #define  EMU_IPR_CDROMSTCHANGE 0x00000400
                     81: #define  EMU_IPR_INTERVALTIMER 0x00000200
                     82: #define  EMU_IPR_MIDITRANSBUFE 0x00000100
                     83: #define  EMU_IPR_MIDIRECVBUFE  0x00000080
                     84: #define  EMU_IPR_A_MIDITRANSBUFE2 0x10000000
                     85: #define  EMU_IPR_A_MIDIRECBUFE2        0x08000000
                     86: #define  EMU_IPR_CHANNELLOOP   0x00000040
                     87: #define  EMU_IPR_CHNOMASK      0x0000003f
                     88:
                     89: #define EMU_INTE       0x0c
                     90:
                     91: #define  EMU_INTE_VSB_MASK     0xc0000000
                     92: #define   EMU_INTE_VSB_220     0x00000000
                     93: #define   EMU_INTE_VSB_240     0x40000000
                     94: #define   EMU_INTE_VSB_260     0x80000000
                     95: #define   EMU_INTE_VSB_280     0xc0000000
                     96:
                     97: #define  EMU_INTE_VMPU_MASK    0x30000000
                     98: #define   EMU_INTE_VMPU_300    0x00000000
                     99: #define   EMU_INTE_VMPU_310    0x10000000
                    100: #define   EMU_INTE_VMPU_320    0x20000000
                    101: #define   EMU_INTE_VMPU_330    0x30000000
                    102: #define  EMU_INTE_MDMAENABLE   0x08000000
                    103: #define  EMU_INTE_SDMAENABLE   0x04000000
                    104: #define  EMU_INTE_MPICENABLE   0x02000000
                    105: #define  EMU_INTE_SPICENABLE   0x01000000
                    106: #define  EMU_INTE_VSBENABLE    0x00800000
                    107: #define  EMU_INTE_ADLIBENABLE  0x00400000
                    108: #define  EMU_INTE_MPUENABLE    0x00200000
                    109: #define  EMU_INTE_FORCEINT     0x00100000
                    110: #define  EMU_INTE_MRHANDENABLE 0x00080000
                    111: #define  EMU_INTE_SAMPLERATER  0x00002000
                    112: #define  EMU_INTE_FXDSPENABLE  0x00001000
                    113: #define  EMU_INTE_PCIERRENABLE 0x00000800
                    114: #define  EMU_INTE_VOLINCRENABLE        0x00000400
                    115: #define  EMU_INTE_VOLDECRENABLE        0x00000200
                    116: #define  EMU_INTE_MUTEENABLE   0x00000100
                    117: #define  EMU_INTE_MICBUFENABLE 0x00000080
                    118: #define  EMU_INTE_ADCBUFENABLE 0x00000040
                    119: #define  EMU_INTE_EFXBUFENABLE 0x00000020
                    120: #define  EMU_INTE_GPSPDIFENABLE        0x00000010
                    121: #define  EMU_INTE_CDSPDIFENABLE        0x00000008
                    122: #define  EMU_INTE_INTERTIMERENB        0x00000004
                    123: #define  EMU_INTE_MIDITXENABLE 0x00000002
                    124: #define  EMU_INTE_MIDIRXENABLE 0x00000001
                    125: #define  EMU_INTE_A_MIDITXENABLE2 0x00020000
                    126: #define  EMU_INTE_A_MIDIRXENABLE2 0x00010000
                    127:
                    128: #define EMU_WC 0x10
                    129:
                    130: #define  EMU_WC_SAMPLECOUNTER_MASK     0x03FFFFC0
                    131: #define  EMU_WC_SAMPLECOUNTER EMU_MKSUBREG(20, 6, EMU_WC)
                    132: #define  EMU_WC_CURRENTCHANNEL 0x0000003F
                    133:
                    134: #define EMU_HCFG       0x14
                    135: #define  EMU_HCFG_LEGACYFUNC_MASK      0xe0000000
                    136: #define  EMU_HCFG_LEGACYFUNC_MPU       0x00000000
                    137: #define  EMU_HCFG_LEGACYFUNC_SB                0x40000000
                    138: #define  EMU_HCFG_LEGACYFUNC_AD                0x60000000
                    139: #define  EMU_HCFG_LEGACYFUNC_MPIC      0x80000000
                    140: #define  EMU_HCFG_LEGACYFUNC_MDMA      0xa0000000
                    141: #define  EMU_HCFG_LEGACYFUNC_SPCI      0xc0000000
                    142: #define  EMU_HCFG_LEGACYFUNC_SDMA      0xe0000000
                    143: #define  EMU_HCFG_IOCAPTUREADDR                0x1f000000
                    144: #define  EMU_HCFG_LEGACYWRITE          0x00800000
                    145: #define  EMU_HCFG_LEGACYWORD           0x00400000
                    146:
                    147: #define  EMU_HCFG_LEGACYINT            0x00200000
                    148: #define  EMU_HCFG_CODECFMT_MASK                0x00070000
                    149: #define  EMU_HCFG_CODECFMT_AC97                0x00000000
                    150: #define  EMU_HCFG_CODECFMT_I2S         0x00010000
                    151: #define  EMU_HCFG_GPINPUT0             0x00004000
                    152: #define  EMU_HCFG_GPINPUT1             0x00002000
                    153: #define  EMU_HCFG_GPOUTPUT0            0x00001000
                    154: #define  EMU_HCFG_GPOUTPUT1            0x00000800
                    155: #define  EMU_HCFG_GPOUTPUT2            0x00000400
                    156: #define  EMU_HCFG_GPOUTPUT_MASK                0x00001c00
                    157: #define  EMU_HCFG_JOYENABLE                    0x00000200
                    158: #define  EMU_HCFG_PHASETRACKENABLE     0x00000100
                    159: #define  EMU_HCFG_AC3ENABLE_MASK       0x000000e0
                    160: #define  EMU_HCFG_AC3ENABLE_ZVIDEO     0x00000080
                    161: #define  EMU_HCFG_AC3ENABLE_CDSPDIF    0x00000040
                    162: #define  EMU_HCFG_AC3ENABLE_GPSPDIF    0x00000020
                    163: #define  EMU_HCFG_AUTOMUTE             0x00000010
                    164: #define  EMU_HCFG_LOCKSOUNDCACHE       0x00000008
                    165: #define  EMU_HCFG_LOCKTANKCACHE_MASK 0x00000004
                    166: #define  EMU_HCFG_LOCKTANKCACHE EMU_MKSUBREG(1, 2, EMU_HCFG)
                    167: #define  EMU_HCFG_MUTEBUTTONENABLE     0x00000002
                    168: #define  EMU_HCFG_AUDIOENABLE  0x00000001
                    169:
                    170: #define EMU_MUDATA                     0x18
                    171: #define EMU_MUCMD                      0x19
                    172: #define  EMU_MUCMD_RESET               0xff
                    173: #define  EMU_MUCMD_ENTERUARTMODE       0x3f
                    174:
                    175: #define EMU_MUSTAT     EMU_MUCMD
                    176: #define  EMU_MUSTAT_IRDYN              0x80
                    177: #define  EMU_MUSTAT_ORDYN              0x40
                    178:
                    179: #define EMU_A_IOCFG                    0x18
                    180: #define EMU_A_GPINPUT_MASK             0xff00
                    181: #define EMU_A_GPOUTPUT_MASK            0x00ff
                    182: #define EMU_A_IOCFG_GPOUT0             0x0040
                    183: #define EMU_A_IOCFG_GPOUT1             0x0004
                    184:
                    185: #define EMU_TIMER      0x1a
                    186: #define  EMU_TIMER_RATE_MASK   0x000003ff
                    187: #define  EMU_TIMER_RATE                EMU_MKSUBREG(10, 0, EMU_TIMER)
                    188:
                    189: #define EMU_AC97DATA   0x1c
                    190: #define EMU_AC97ADDR   0x1e
                    191: #define  EMU_AC97ADDR_RDY      0x80
                    192: #define  EMU_AC97ADDR_ADDR     0x7f
                    193:
                    194: #define EMU_A2_PTR             0x20
                    195: #define EMU_A2_DATA            0x24
                    196:
                    197: #define EMU_A2_SRCSEL                  0x600000
                    198: #define EMU_A2_SRCSEL_ENABLE_SPDIF     0x00000004
                    199: #define EMU_A2_SRCSEL_ENABLE_SRCMULTI  0x00000010
                    200: #define EMU_A2_SRCMULTI                        0x6e0000
                    201: #define EMU_A2_SRCMULTI_ENABLE_INPUT   0xff00ff00
                    202:
                    203: #define EMU_CHAN_CPF   0x00
                    204:
                    205: #define  EMU_CHAN_CPF_PITCH_MASK       0xffff0000
                    206: #define  EMU_CHAN_CPF_PITCH    EMU_MKSUBREG(16, 16, EMU_CHAN_CPF)
                    207:
                    208: #define  EMU_CHAN_CPF_STEREO_MASK              0x00008000
                    209: #define  EMU_CHAN_CPF_STEREO   EMU_MKSUBREG(1, 15, EMU_CHAN_CPF)
                    210: #define  EMU_CHAN_CPF_STOP_MASK        0x00004000
                    211:
                    212: #define  EMU_CHAN_CPF_FRACADDRESS_MASK 0x00003fff
                    213:
                    214:
                    215: #define EMU_CHAN_PTRX  0x01
                    216:
                    217: #define  EMU_CHAN_PTRX_PITCHTARGET_MASK        0xffff0000
                    218: #define  EMU_CHAN_PTRX_PITCHTARGET     EMU_MKSUBREG(16, 16, EMU_CHAN_PTRX)
                    219:
                    220: #define  EMU_CHAN_PTRX_FXSENDAMOUNT_A_MASK     0x0000ff00
                    221: #define  EMU_CHAN_PTRX_FXSENDAMOUNT_A EMU_MKSUBREG(8, 8, EMU_CHAN_PTRX)
                    222:
                    223: #define  EMU_CHAN_PTRX_FXSENDAMOUNT_B_MASK     0x000000ff
                    224: #define  EMU_CHAN_PTRX_FXSENDAMOUNT_B EMU_MKSUBREG(8, 0, EMU_CHAN_PTRX)
                    225:
                    226: #define EMU_CHAN_CVCF  0x02
                    227: #define  EMU_CHAN_CVCF_CURRVOL_MASK    0xffff0000
                    228:
                    229: #define  EMU_CHAN_CVCF_CURRVOL EMU_MKSUBREG(16, 16, EMU_CHAN_CVCF)
                    230: #define  EMU_CHAN_CVCF_CURRFILTER_MASK 0x0000ffff
                    231:
                    232: #define  EMU_CHAN_CVCF_CURRFILTER EMU_MKSUBREG(16, 0, EMU_CHAN_CVCF)
                    233:
                    234: #define EMU_CHAN_VTFT  0x03
                    235: #define  EMU_CHAN_VTFT_VOLUMETARGET_MASK       0xffff0000
                    236:
                    237: #define  EMU_CHAN_VTFT_VOLUMETARGET    EMU_MKSUBREG(16, 16, EMU_CHAN_VTFT)
                    238: #define  EMU_CHAN_VTFT_FILTERTARGET_MASK       0x0000ffff
                    239:
                    240: #define         EMU_CHAN_VTFT_FILTERTARGET     EMU_MKSUBREG(16, 0, EMU_CHAN_VTFT)
                    241:
                    242: #define EMU_CHAN_Z1            0x05
                    243: #define EMU_CHAN_Z2            0x04
                    244:
                    245: #define EMU_CHAN_PSST  0x06
                    246: #define  EMU_CHAN_PSST_FXSENDAMOUNT_C_MASK     0xff000000
                    247:
                    248: #define  EMU_CHAN_PSST_FXSENDAMOUNT_C EMU_MKSUBREG(8, 24, EMU_CHAN_PSST)
                    249: #define  EMU_CHAN_PSST_LOOPSTARTADDR_MASK      0x00ffffff
                    250:
                    251: #define  EMU_CHAN_PSST_LOOPSTARTADDR  EMU_MKSUBREG(24, 0, EMU_CHAN_PSST)
                    252:
                    253: #define EMU_CHAN_DSL   0x07
                    254: #define  EMU_CHAN_DSL_FXSENDAMOUNT_D_MASK      0xff000000
                    255:
                    256: #define  EMU_CHAN_DSL_FXSENDAMOUNT_D  EMU_MKSUBREG(8, 24, EMU_CHAN_DSL)
                    257: #define  EMU_CHAN_DSL_LOOPENDADDR_MASK 0x00ffffff
                    258:
                    259: #define  EMU_CHAN_DSL_LOOPENDADDR       EMU_MKSUBREG(24, 0, EMU_CHAN_DSL)
                    260:
                    261: #define EMU_CHAN_CCCA  0x08
                    262:
                    263: #define  EMU_CHAN_CCCA_RESONANCE               0xf0000000
                    264: #define  EMU_CHAN_CCCA_INTERPROMMASK           0x0e000000
                    265: #define   EMU_CHAN_CCCA_INTERPROM_0            0x00000000
                    266: #define   EMU_CHAN_CCCA_INTERPROM_1            0x02000000
                    267: #define   EMU_CHAN_CCCA_INTERPROM_2            0x04000000
                    268: #define   EMU_CHAN_CCCA_INTERPROM_3            0x06000000
                    269: #define   EMU_CHAN_CCCA_INTERPROM_4            0x08000000
                    270: #define   EMU_CHAN_CCCA_INTERPROM_5            0x0a000000
                    271: #define   EMU_CHAN_CCCA_INTERPROM_6            0x0c000000
                    272: #define   EMU_CHAN_CCCA_INTERPROM_7            0x0e000000
                    273:
                    274: #define   EMU_CHAN_CCCA_8BITSELECT             0x01000000
                    275:
                    276: #define  EMU_CHAN_CCCA_CURRADDR_MASK           0x00ffffff
                    277: #define  EMU_CHAN_CCCA_CURRADDR        EMU_MKSUBREG(24, 0, EMU_CHAN_CCCA)
                    278:
                    279: #define EMU_CHAN_CCR   0x09
                    280: #define  EMU_CHAN_CCR_CACHEINVALIDSIZE_MASK    0xfe000000
                    281:
                    282: #define  EMU_CHAN_CCR_CACHEINVALIDSIZE EMU_MKSUBREG(7, 25, EMU_CHAN_CCR)
                    283: #define  EMU_CHAN_CCR_CACHELOOPFLAG            0x01000000
                    284:
                    285: #define  EMU_CHAN_CCR_INTERLEAVEDSAMPLES       0x00800000
                    286:
                    287: #define  EMU_CHAN_CCR_WORDSIZEDSAMPLES 0x00400000
                    288:
                    289: #define  EMU_CHAN_CCR_READADDRESS_MASK 0x003f0000
                    290:
                    291: #define  EMU_CHAN_CCR_READADDRESS      EMU_MKSUBREG(6, 16, EMU_CHAN_CCR)
                    292: #define  EMU_CHAN_CCR_LOOPINVALSIZE            0x0000fe00
                    293: #define  EMU_CHAN_CCR_LOOPFLAG         0x00000100
                    294:
                    295: #define  EMU_CHAN_CCR_CACHELOOPADDRHI  0x000000ff
                    296:
                    297: #define EMU_CHAN_CLP   0x0a
                    298: #define  EMU_CHAN_CLP_CACHELOOPADDR            0x0000ffff
                    299:
                    300: #define EMU_CHAN_FXRT  0x0b
                    301: #define  EMU_CHAN_FXRT_CHANNELA                0x000f0000
                    302: #define  EMU_CHAN_FXRT_CHANNELB                0x00f00000
                    303: #define  EMU_CHAN_FXRT_CHANNELC                0x0f000000
                    304: #define  EMU_CHAN_FXRT_CHANNELD                0xf0000000
                    305:
                    306: #define EMU_CHAN_MAPA  0x0c
                    307: #define EMU_CHAN_MAPB  0x0d
                    308:
                    309: #define  EMU_CHAN_MAP_PTE_MASK         0xffffe000
                    310: #define  EMU_CHAN_MAP_PTI_MASK         0x00001fff
                    311:
                    312:
                    313: #define EMU_CHAN_ENVVOL        0x10
                    314: #define  EMU_CHAN_ENVVOL_MASK          0x0000ffff
                    315:
                    316:
                    317: #define EMU_CHAN_ATKHLDV       0x11
                    318: #define  EMU_CHAN_ATKHLDV_PHASE0       0x00008000
                    319: #define  EMU_CHAN_ATKHLDV_HOLDTIME_MASK        0x00007f00
                    320: #define  EMU_CHAN_ATKHLDV_ATTACKTIME_MASK      0x0000007f
                    321:
                    322:
                    323: #define EMU_CHAN_DCYSUSV       0x12
                    324:
                    325: #define  EMU_CHAN_DCYSUSV_PHASE1_MASK  0x00008000
                    326:
                    327: #define  EMU_CHAN_DCYSUSV_SUSTAINLEVEL_MASK 0x00007f00
                    328: #define  EMU_CHAN_DCYSUSV_CHANNELENABLE_MASK 0x00000080
                    329: #define  EMU_CHAN_DCYSUSV_DECAYTIME_MASK       0x0000007f
                    330:
                    331:
                    332: #define EMU_CHAN_LFOVAL1       0x13
                    333: #define  EMU_CHAN_LFOVAL_MASK          0x0000ffff
                    334:
                    335:
                    336: #define EMU_CHAN_ENVVAL        0x14
                    337: #define  EMU_CHAN_ENVVAL_MASK          0x0000ffff
                    338:
                    339:
                    340: #define EMU_CHAN_ATKHLDM       0x15
                    341: #define  EMU_CHAN_ATKHLDM_PHASE0       0x00008000
                    342: #define  EMU_CHAN_ATKHLDM_HOLDTIME     0x00007f00
                    343: #define  EMU_CHAN_ATKHLDM_ATTACKTIME   0x0000007f
                    344:
                    345:
                    346: #define EMU_CHAN_DCYSUSM       0x16
                    347: #define  EMU_CHAN_DCYSUSM_PHASE1_MASK          0x00008000
                    348: #define  EMU_CHAN_DCYSUSM_SUSTAINLEVEL_MASK    0x00007f00
                    349: #define  EMU_CHAN_DCYSUSM_DECAYTIME_MASK       0x0000007f
                    350:
                    351:
                    352: #define EMU_CHAN_LFOVAL2       0x17
                    353: #define  EMU_CHAN_LFOVAL2_MASK         0x0000ffff
                    354:
                    355:
                    356: #define EMU_CHAN_IP            0x18
                    357: #define  EMU_CHAN_IP_MASK                      0x0000ffff
                    358: #define  EMU_CHAN_IP_UNITY                     0x0000e000
                    359:
                    360: #define EMU_CHAN_IFATN 0x19
                    361: #define  EMU_CHAN_IFATN_FILTERCUTOFF_MASK      0x0000ff00
                    362: #define  EMU_CHAN_IFATN_FILTERCUTOFF EMU_MKSUBREG(8, 8,        EMU_CHAN_IFATN)
                    363:
                    364: #define  EMU_CHAN_IFATN_ATTENUATION_MASK       0x000000ff
                    365: #define  EMU_CHAN_IFATN_ATTENUATION     EMU_MKSUBREG(8, 0, EMU_CHAN_IFATN)
                    366:
                    367:
                    368: #define EMU_CHAN_PEFE  0x1a
                    369: #define  EMU_CHAN_PEFE_PITCHAMOUNT_MASK        0x0000ff00
                    370: #define  EMU_CHAN_PEFE_PITCHAMOUNT     EMU_MKSUBREG(8, 8, EMU_CHAN_PEFE)
                    371: #define  EMU_CHAN_PEFE_FILTERAMOUNT_MASK       0x000000ff
                    372: #define  EMU_CHAN_PEFE_FILTERAMOUNT    EMU_MKSUBREG(8, 0, EMU_CHAN_PEFE)
                    373:
                    374:
                    375: #define EMU_CHAN_FMMOD 0x1b
                    376: #define  EMU_CHAN_FMMOD_MODVIBRATO     0x0000ff00
                    377: #define EMU_CHAN_FMMOD_MOFILTER                0x000000ff
                    378:
                    379:
                    380: #define EMU_CHAN_TREMFRQ       0x1c
                    381: #define  EMU_CHAN_TREMFRQ_DEPTH                0x0000ff00
                    382:
                    383:
                    384: #define EMU_CHAN_FM2FRQ2       0x1d
                    385: #define  EMU_CHAN_FM2FRQ2_DEPTH                0x0000ff00
                    386: #define  EMU_CHAN_FM2FRQ2_FREQUENCY    0x000000ff
                    387:
                    388:
                    389: #define EMU_CHAN_TEMPENV       0x1e
                    390: #define  EMU_CHAN_TEMPENV_MASK         0x0000ffff
                    391:
                    392: #define EMU_CHAN_CD0   0x20
                    393: #define EMU_CHAN_CD1   0x21
                    394: #define EMU_CHAN_CD2   0x22
                    395: #define EMU_CHAN_CD3   0x23
                    396: #define EMU_CHAN_CD4   0x24
                    397: #define EMU_CHAN_CD5   0x25
                    398: #define EMU_CHAN_CD6   0x26
                    399: #define EMU_CHAN_CD7   0x27
                    400: #define EMU_CHAN_CD8   0x28
                    401: #define EMU_CHAN_CD9   0x29
                    402: #define EMU_CHAN_CDA   0x2a
                    403: #define EMU_CHAN_CDB   0x2b
                    404: #define EMU_CHAN_CDC   0x2c
                    405: #define EMU_CHAN_CDD   0x2d
                    406: #define EMU_CHAN_CDE   0x2e
                    407: #define EMU_CHAN_CDF   0x2f
                    408:
                    409: /* -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- */
                    410:
                    411: #define EMU_PTB                0x40
                    412: #define  EMU_PTB_MASK                  0xfffff000
                    413:
                    414: #define EMU_TCB                0x41
                    415: #define  EMU_TCB_MASK                  0xfffff000
                    416:
                    417: #define EMU_ADCCR                      0x42
                    418: #define  EMU_ADCCR_RCHANENABLE         0x00000010
                    419: #define  EMU_A_ADCCR_RCHANENABLE       0x00000020
                    420: #define  EMU_ADCCR_LCHANENABLE         0x00000008
                    421: #define  EMU_A_ADCCR_LCHANENABLE       0x00000010
                    422:
                    423: #define  EMU_ADCCR_SAMPLERATE_MASK             0x00000007
                    424: #define  EMU_A_ADCCR_SAMPLERATE_MASK           0x0000000f
                    425: #define   EMU_ADCCR_SAMPLERATE_48              0x00000000
                    426: #define   EMU_ADCCR_SAMPLERATE_44              0x00000001
                    427: #define   EMU_ADCCR_SAMPLERATE_32              0x00000002
                    428: #define   EMU_ADCCR_SAMPLERATE_24              0x00000003
                    429: #define   EMU_ADCCR_SAMPLERATE_22              0x00000004
                    430: #define   EMU_ADCCR_SAMPLERATE_16              0x00000005
                    431: #define   EMU_A_ADCCR_SAMPLERATE_12            0x00000006
                    432: #define   EMU_ADCCR_SAMPLERATE_11              0x00000006
                    433: #define   EMU_A_ADCCR_SAMPLERATE_11            0x00000007
                    434: #define   EMU_ADCCR_SAMPLERATE_8               0x00000007
                    435: #define   EMU_A_ADCCR_SAMPLERATE_8             0x00000008
                    436:
                    437: #define EMU_FXWC               0x43
                    438: #define EMU_TCBS               0x44
                    439: #define  EMU_TCBS_MASK                 0x00000007
                    440: #define   EMU_TCBS_BUFFSIZE_16K                0x00000000
                    441: #define   EMU_TCBS_BUFFSIZE_32K                0x00000001
                    442: #define   EMU_TCBS_BUFFSIZE_64K                0x00000002
                    443: #define   EMU_TCBS_BUFFSIZE_128K               0x00000003
                    444: #define   EMU_TCBS_BUFFSIZE_256K               0x00000004
                    445: #define   EMU_TCBS_BUFFSIZE_512K               0x00000005
                    446: #define   EMU_TCBS_BUFFSIZE_1024K              0x00000006
                    447: #define   EMU_TCBS_BUFFSIZE_2048K              0x00000007
                    448:
                    449:
                    450: #define EMU_MICBA              0x45
                    451: #define EMU_ADCBA              0x46
                    452: #define EMU_FXBA               0x47
                    453:
                    454: #define  EMU_RECBA_MASK                        0xfffff000
                    455:
                    456: #define EMU_MICBS              0x49
                    457: #define EMU_ADCBS              0x4a
                    458: #define EMU_FXBS               0x4b
                    459: #define  EMU_RECBS_BUFSIZE_NONE                0x00000000
                    460: #define  EMU_RECBS_BUFSIZE_384         0x00000001
                    461: #define  EMU_RECBS_BUFSIZE_448         0x00000002
                    462: #define  EMU_RECBS_BUFSIZE_512         0x00000003
                    463: #define  EMU_RECBS_BUFSIZE_640         0x00000004
                    464: #define  EMU_RECBS_BUFSIZE_768         0x00000005
                    465: #define  EMU_RECBS_BUFSIZE_896         0x00000006
                    466: #define  EMU_RECBS_BUFSIZE_1024                0x00000007
                    467: #define  EMU_RECBS_BUFSIZE_1280                0x00000008
                    468: #define  EMU_RECBS_BUFSIZE_1536                0x00000009
                    469: #define  EMU_RECBS_BUFSIZE_1792                0x0000000a
                    470: #define  EMU_RECBS_BUFSIZE_2048                0x0000000b
                    471: #define  EMU_RECBS_BUFSIZE_2560                0x0000000c
                    472: #define  EMU_RECBS_BUFSIZE_3072                0x0000000d
                    473: #define  EMU_RECBS_BUFSIZE_3584                0x0000000e
                    474: #define  EMU_RECBS_BUFSIZE_4096                0x0000000f
                    475: #define  EMU_RECBS_BUFSIZE_5120                0x00000010
                    476: #define  EMU_RECBS_BUFSIZE_6144                0x00000011
                    477: #define  EMU_RECBS_BUFSIZE_7168                0x00000012
                    478: #define  EMU_RECBS_BUFSIZE_8192                0x00000013
                    479: #define  EMU_RECBS_BUFSIZE_10240       0x00000014
                    480: #define  EMU_RECBS_BUFSIZE_12288       0x00000015
                    481: #define  EMU_RECBS_BUFSIZE_14366       0x00000016
                    482: #define  EMU_RECBS_BUFSIZE_16384       0x00000017
                    483: #define  EMU_RECBS_BUFSIZE_20480       0x00000018
                    484: #define  EMU_RECBS_BUFSIZE_24576       0x00000019
                    485: #define  EMU_RECBS_BUFSIZE_28672       0x0000001a
                    486: #define  EMU_RECBS_BUFSIZE_32768       0x0000001b
                    487: #define  EMU_RECBS_BUFSIZE_40960       0x0000001c
                    488: #define  EMU_RECBS_BUFSIZE_49152       0x0000001d
                    489: #define  EMU_RECBS_BUFSIZE_57344       0x0000001e
                    490: #define  EMU_RECBS_BUFSIZE_65536       0x0000001f
                    491:
                    492:
                    493: #define EMU_CDCS       0x50
                    494: #define EMU_GPSCS      0x51
                    495:
                    496:
                    497: #define EMU_DBG        0x52
                    498: #define EMU_DBG_ZC                     0x80000000
                    499: #define  EMU_DBG_SATURATION_OCCURED    0x02000000
                    500: #define  EMU_DBG_SATURATION_ADDR       0x01ff0000
                    501: #define  EMU_DBG_SINGLE_STEP           0x00008000
                    502: #define  EMU_DBG_STEP                  0x00004000
                    503: #define  EMU_DBG_CONDITION_CODE                0x00003e00
                    504: #define  EMU_DBG_SINGLE_STEP_ADDR      0x000001ff
                    505:
                    506: #define EMU_A_DBG                      0x53
                    507: #define EMU_A_DBG_SINGLE_STEP          0x00020000
                    508: #define EMU_A_DBG_ZC                   0x40000000
                    509: #define EMU_A_DBG_STEP_ADDR            0x000003ff
                    510: #define EMU_A_DBG_SATURATION_OCCRD     0x20000000
                    511: #define EMU_A_DBG_SATURATION_ADDR      0x0ffc0000
                    512:
                    513: #define EMU_SPCS0      0x54
                    514: #define EMU_SPCS1      0x55
                    515: #define EMU_SPCS2      0x56
                    516:
                    517: #define  EMU_SPCS_CLKACCYMASK          0x30000000
                    518: #define   EMU_SPCS_CLKACCY_1000PPM     0x00000000
                    519: #define   EMU_SPCS_CLKACCY_50PPM       0x10000000
                    520: #define   EMU_SPCS_CLKACCY_VARIABLE    0x20000000
                    521:
                    522: #define  EMU_SPCS_SAMPLERATEMASK       0x0f000000
                    523: #define   EMU_SPCS_SAMPLERATE_44       0x00000000
                    524: #define   EMU_SPCS_SAMPLERATE_48       0x02000000
                    525: #define   EMU_SPCS_SAMPLERATE_32       0x03000000
                    526:
                    527: #define  EMU_SPCS_CHANNELNUMMASK       0x00f00000
                    528:
                    529: #define   EMU_SPCS_CHANNELNUM_UNSPEC   0x00000000
                    530: #define   EMU_SPCS_CHANNELNUM_LEFT     0x00100000
                    531: #define   EMU_SPCS_CHANNELNUM_RIGHT    0x00200000
                    532: #define  EMU_SPCS_SOURCENUMMASK                0x000f0000
                    533: #define   EMU_SPCS_SOURCENUM_UNSPEC    0x00000000
                    534: #define  EMU_SPCS_GENERATIONSTATUS     0x00008000
                    535:
                    536: #define  EMU_SPCS_CATEGORYCODEMASK     0x00007f00
                    537:
                    538: #define  EMU_SPCS_MODEMASK             0x000000c0
                    539: #define  EMU_SPCS_EMPHASISMASK         0x00000038
                    540: #define   EMU_SPCS_EMPHASIS_NONE       0x00000000
                    541: #define   EMU_SPCS_EMPHASIS_50_15      0x00000008
                    542: #define  EMU_SPCS_COPYRIGHT            0x00000004
                    543:
                    544: #define  EMU_SPCS_NOTAUDIODATA         0x00000002
                    545:
                    546: #define  EMU_SPCS_PROFESSIONAL         0x00000001
                    547:
                    548:
                    549: #define EMU_CLIEL      0x58
                    550: #define EMU_CLIEH      0x59
                    551: #define EMU_CLIPL      0x5a
                    552: #define EMU_CLIPH      0x5b
                    553: #define EMU_SOLEL      0x5c
                    554: #define EMU_SOLEH      0x5d
                    555:
                    556: #define        EMU_SPBYPASS            0x5e
                    557: #define        EMU_SPBYPASS_ENABLE     0x00000001
                    558: #define        EMU_SPBYPASS_24_BITS    0x00000f00
                    559:
                    560: #define        EMU_AC97SLOT            0x5f
                    561: #define        EMU_AC97SLOT_CENTER     0x00000010
                    562: #define        EMU_AC97SLOT_LFE        0x00000020
                    563:
                    564: #define EMU_CDSRCS     0x60
                    565: #define EMU_GPSRCS     0x61
                    566: #define EMU_ZVSRCS     0x62
                    567: #define  EMU_SRCS_SPDIFLOCKED          0x02000000
                    568: #define  EMU_SRCS_RATELOCKED           0x01000000
                    569: #define  EMU_SRCS_ESTSAMPLERATE                0x0007ffff
                    570:
                    571:
                    572: #define EMU_MICIDX     0x63
                    573: #define EMU_A_MICIDX   0x64
                    574: #define EMU_ADCIDX     0x64
                    575: #define EMU_A_ADCIDX   0x63
                    576: #define EMU_FXIDX      0x65
                    577: #define  EMU_RECIDX_MASK               0x0000ffff
                    578: #define         EMU_RECIDX(idxreg)            (0x10000000|(idxreg))
                    579: /*
                    580: #define  EMU_MICIDX_IDX                        0x10000063
                    581: #define  EMU_ADCIDX_IDX                        0x10000064
                    582: #define  EMU_FXIDX_IDX                 0x10000065
                    583: */
                    584:
                    585: #define EMU_A_MUDATA1          0x70
                    586: #define EMU_A_MUCMD1           0x71
                    587: #define EMU_A_MUSTAT1          EMU_A_MUCMD1
                    588: #define EMU_A_MUDATA2          0x72
                    589: #define EMU_A_MUCMD2           0x73
                    590: #define EMU_A_MUSTAT2          EMU_A_MUCMD2
                    591: #define EMU_A_FXWC1            0x74
                    592: #define EMU_A_FXWC2            0x75
                    593: #define EMU_A_SPDIF_SAMPLERATE 0x76
                    594: #define EMU_A_SPDIF_48000      0x00000080
                    595: #define EMU_A_SPDIF_44100      0x00000000
                    596: #define EMU_A_SPDIF_96000      0x00000040
                    597: #define EMU_A2_SPDIF_SAMPLERATE        EMU_MKSUBREG(3, 9, EMU_A_SPDIF_SAMPLERATE)
                    598: #define EMU_A2_SPDIF_MASK      0x00000e00
                    599: #define EMU_A2_SPDIF_UNKNOWN   0x2
                    600:
                    601: #define EMU_A_CHAN_FXRT2               0x7c
                    602: #define EMU_A_CHAN_FXRT_CHANNELE       0x0000003f
                    603: #define EMU_A_CHAN_FXRT_CHANNELF       0x00003f00
                    604: #define EMU_A_CHAN_FXRT_CHANNELG       0x003f0000
                    605: #define EMU_A_CHAN_FXRT_CHANNELH       0x3f000000
                    606: #define EMU_A_CHAN_SENDAMOUNTS         0x7d
                    607: #define EMU_A_CHAN_FXSENDAMOUNTS_E_MASK        0xff000000
                    608: #define EMU_A_CHAN_FXSENDAMOUNTS_F_MASK        0x00ff0000
                    609: #define EMU_A_CHAN_FXSENDAMOUNTS_G_MASK        0x0000ff00
                    610: #define EMU_A_CHAN_FXSENDAMOUNTS_H_MASK        0x000000ff
                    611: #define EMU_A_CHAN_FXRT1               0x7e
                    612: #define EMU_A_CHAN_FXRT_CHANNELA       0x0000003f
                    613: #define EMU_A_CHAN_FXRT_CHANNELB       0x00003f00
                    614: #define EMU_A_CHAN_FXRT_CHANNELC       0x003f0000
                    615: #define EMU_A_CHAN_FXRT_CHANNELD       0x3f000000
                    616:
                    617: #define EMU_FXGPREGBASE                0x100
                    618: #define EMU_A_FXGPREGBASE      0x400
                    619: #define EMU_TANKMEMDATAREGBASE 0x200
                    620: #define  EMU_TANKMEMDATAREG_MASK               0x000fffff
                    621:
                    622: #define EMU_TANKMEMADDRREGBASE 0x300
                    623: #define  EMU_TANKMEMADDRREG_ADDR_MASK          0x000fffff
                    624: #define  EMU_TANKMEMADDRREG_CLEAR              0x00800000
                    625: #define  EMU_TANKMEMADDRREG_ALIGN              0x00400000
                    626: #define  EMU_TANKMEMADDRREG_WRITE              0x00200000
                    627: #define  EMU_TANKMEMADDRREG_READ               0x00100000
                    628:
                    629:
                    630: #define  EMU_MICROCODEBASE             0x400
                    631: #define  EMU_A_MICROCODEBASE           0x600
                    632:
                    633: #define  EMU_DSP_LOWORD_OPX_MASK               0x000ffc00
                    634: #define  EMU_DSP_LOWORD_OPY_MASK               0x000003ff
                    635: #define  EMU_DSP_HIWORD_OPCODE_MASK            0x00f00000
                    636: #define  EMU_DSP_HIWORD_RESULT_MASK            0x000ffc00
                    637: #define  EMU_DSP_HIWORD_OPA_MASK               0x000003ff
                    638: #define  EMU_A_DSP_LOWORD_OPX_MASK             0x007ff000
                    639: #define  EMU_A_DSP_LOWORD_OPY_MASK             0x000007ff
                    640: #define  EMU_A_DSP_HIWORD_OPCODE_MASK          0x0f000000
                    641: #define  EMU_A_DSP_HIWORD_RESULT_MASK          0x007ff000
                    642: #define  EMU_A_DSP_HIWORD_OPA_MASK             0x000007ff
                    643:
                    644:
                    645: #define        EMU_DSP_OP_MACS         0x0
                    646: #define        EMU_DSP_OP_MACS1        0x1
                    647: #define        EMU_DSP_OP_MACW         0x2
                    648: #define        EMU_DSP_OP_MACW1        0x3
                    649: #define        EMU_DSP_OP_MACINTS      0x4
                    650: #define        EMU_DSP_OP_MACINTW      0x5
                    651: #define        EMU_DSP_OP_ACC3         0x6
                    652: #define        EMU_DSP_OP_MACMV        0x7
                    653: #define        EMU_DSP_OP_ANDXOR       0x8
                    654: #define        EMU_DSP_OP_TSTNEG       0x9
                    655: #define        EMU_DSP_OP_LIMIT        0xA
                    656: #define        EMU_DSP_OP_LIMIT1       0xB
                    657: #define        EMU_DSP_OP_LOG          0xC
                    658: #define        EMU_DSP_OP_EXP          0xD
                    659: #define        EMU_DSP_OP_INTERP       0xE
                    660: #define        EMU_DSP_OP_SKIP 0xF
                    661:
                    662:
                    663: #define        EMU_DSP_FX(num) (num)
                    664:
                    665:
                    666: #define        EMU_DSP_IOL(base, num)  (base + (num << 1))
                    667: #define        EMU_DSP_IOR(base, num)  (EMU_DSP_IOL(base, num) + 1)
                    668:
                    669: #define        EMU_DSP_INL_BASE        0x010
                    670: #define        EMU_DSP_INL(num)        (EMU_DSP_IOL(EMU_DSP_INL_BASE, num))
                    671: #define        EMU_DSP_INR(num)        (EMU_DSP_IOR(EMU_DSP_INL_BASE, num))
                    672: #define        EMU_A_DSP_INL_BASE      0x040
                    673: #define        EMU_A_DSP_INL(num)      (EMU_DSP_IOL(EMU_A_DSP_INL_BASE, num))
                    674: #define        EMU_A_DSP_INR(num)      (EMU_DSP_IOR(EMU_A_DSP_INL_BASE, num))
                    675: #define         EMU_DSP_IN_AC97        0
                    676: #define         EMU_DSP_IN_CDSPDIF     1
                    677: #define  EMU_DSP_IN_ZOOM       2
                    678: #define         EMU_DSP_IN_TOSOPT      3
                    679: #define         EMU_DSP_IN_LVDLM1      4
                    680: #define         EMU_DSP_IN_LVDCOS      5
                    681: #define         EMU_DSP_IN_LVDLM2      6
                    682: #define        EMU_DSP_IN_UNKNOWN      7
                    683:
                    684: #define        EMU_DSP_OUTL_BASE       0x020
                    685: #define        EMU_DSP_OUTL(num)       (EMU_DSP_IOL(EMU_DSP_OUTL_BASE, num))
                    686: #define        EMU_DSP_OUTR(num)       (EMU_DSP_IOR(EMU_DSP_OUTL_BASE, num))
                    687: #define        EMU_DSP_OUT_A_FRONT     0
                    688: #define        EMU_DSP_OUT_D_FRONT     1
                    689: #define        EMU_DSP_OUT_D_CENTER    2
                    690: #define        EMU_DSP_OUT_DRIVE_HP    3
                    691: #define        EMU_DSP_OUT_AD_REAR     4
                    692: #define        EMU_DSP_OUT_ADC         5
                    693: #define        EMU_DSP_OUTL_MIC        6
                    694:
                    695: #define        EMU_A_DSP_OUTL_BASE     0x060
                    696: #define        EMU_A_DSP_OUTL(num)     (EMU_DSP_IOL(EMU_A_DSP_OUTL_BASE, num))
                    697: #define        EMU_A_DSP_OUTR(num)     (EMU_DSP_IOR(EMU_A_DSP_OUTL_BASE, num))
                    698: #define        EMU_A_DSP_OUT_D_FRONT   0
                    699: #define        EMU_A_DSP_OUT_D_CENTER  1
                    700: #define        EMU_A_DSP_OUT_DRIVE_HP  2
                    701: #define        EMU_A_DSP_OUT_DREAR     3
                    702: #define        EMU_A_DSP_OUT_A_FRONT   4
                    703: #define        EMU_A_DSP_OUT_A_CENTER  5
                    704: #define        EMU_A_DSP_OUT_A_REAR    7
                    705: #define EMU_A_DSP_OUT_ADC      11
                    706:
                    707:
                    708: #define        EMU_DSP_CST_BASE        0x40
                    709: #define        EMU_A_DSP_CST_BASE      0xc0
                    710: #define        EMU_DSP_CST(num)        (EMU_DSP_CST_BASE + num)
                    711: #define        EMU_A_DSP_CST(num)      (EMU_A_DSP_CST_BASE + num)
                    712: /*
                    713: 00     = 0x00000000
                    714: 01     = 0x00000001
                    715: 02     = 0x00000002
                    716: 03     = 0x00000003
                    717: 04     = 0x00000004
                    718: 05     = 0x00000008
                    719: 06     = 0x00000010
                    720: 07     = 0x00000020
                    721: 08     = 0x00000100
                    722: 09     = 0x00010000
                    723: 0A     = 0x00080000
                    724: 0B     = 0x10000000
                    725: 0C     = 0x20000000
                    726: 0D     = 0x40000000
                    727: 0E     = 0x80000000
                    728: 0F     = 0x7FFFFFFF
                    729: 10     = 0xFFFFFFFF
                    730: 11     = 0xFFFFFFFE
                    731: 12     = 0xC0000000
                    732: 13     = 0x4F1BBCDC
                    733: 14     = 0x5A7EF9DB
                    734: 15     = 0x00100000
                    735: */
                    736:
                    737: #define        EMU_DSP_HWR_ACC 0x056
                    738: #define EMU_DSP_HWR_CCR        0x057
                    739: #define         EMU_DSP_HWR_CCR_S      0x04
                    740: #define         EMU_DSP_HWR_CCR_Z      0x03
                    741: #define         EMU_DSP_HWR_CCR_M      0x02
                    742: #define         EMU_DSP_HWR_CCR_N      0x01
                    743: #define         EMU_DSP_HWR_CCR_B      0x00
                    744: #define        EMU_DSP_HWR_NOISE0      0x058
                    745: #define        EMU_DSP_HWR_NOISE1      0x059
                    746: #define        EMU_DSP_HWR_INTR        0x05A
                    747: #define        EMU_DSP_HWR_DBAC        0x05B
                    748:
                    749: #define EMU_DSP_GPR(num)       (EMU_FXGPREGBASE + num)
                    750: #define EMU_A_DSP_GPR(num)     (EMU_A_FXGPREGBASE + num)
                    751:
                    752: #endif /* _DEV_PCI_EMUXKIREG_H_ */

CVSweb