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

Annotation of sys/dev/ic/opl3sa3reg.h, Revision 1.1.1.1

1.1       nbrk        1: /*     $OpenBSD: opl3sa3reg.h,v 1.1 1999/10/06 12:48:32 fgsch Exp $    */
                      2: /*     $NetBSD: opl3sa3reg.h,v 1.1 1999/10/05 03:38:17 itohy Exp $     */
                      3:
                      4: /*-
                      5:  * Copyright (c) 1999 The NetBSD Foundation, Inc.
                      6:  * All rights reserved.
                      7:  *
                      8:  * This code is derived from software contributed to The NetBSD Foundation
                      9:  * by ITOH Yasufumi.
                     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: /*
                     41:  * YAMAHA YMF715x (OPL3 Single-chip Audio System 3; OPL3-SA3)
                     42:  * control register description
                     43:  *
                     44:  * Other ports (SBpro, WSS CODEC, MPU401, OPL3, etc.) are NOT listed here.
                     45:  */
                     46:
                     47: /*
                     48:  * direct registers
                     49:  */
                     50:
                     51: /* offset from the base address */
                     52: #define SA3_CTL_INDEX  0       /* Index port (R/W) */
                     53: #define SA3_CTL_DATA   1       /* Data register port (R/W) */
                     54:
                     55: #define SA3_CTL_NPORT  2       /* number of ports */
                     56:
                     57: /*
                     58:  * indirect registers
                     59:  */
                     60:
                     61: #define SA3_PWR_MNG            0x01    /* Power management (R/W) */
                     62: #define   SA3_PWR_MNG_ADOWN    0x20    /* Analog Down */
                     63: #define   SA3_PWR_MNG_PSV      0x04    /* Power save */
                     64: #define   SA3_PWR_MNG_PDN      0x02    /* Power down */
                     65: #define   SA3_PWR_MNG_PDX      0x01    /* Oscillation stop */
                     66: #define SA3_PWR_MNG_DEFAULT    0x00    /* default value */
                     67:
                     68: #define SA3_SYS_CTL            0x02    /* System control (R/W) */
                     69: #define   SA3_SYS_CTL_SBHE     0x80    /* 0: AT-bus, 1: XT-bus */
                     70: #define   SA3_SYS_CTL_YMODE    0x30    /* 3D Enhancement mode */
                     71: #define     SA3_SYS_CTL_YMODE0 0x00    /* Desktop mode  (speaker 5-12cm) */
                     72: #define     SA3_SYS_CTL_YMODE1 0x10    /* Notebook PC mode (1)  (3cm) */
                     73: #define     SA3_SYS_CTL_YMODE2 0x20    /* Notebook PC mode (2)  (1.5cm) */
                     74: #define     SA3_SYS_CTL_YMODE3 0x30    /* Hi-Fi mode            (16-38cm) */
                     75: #define   SA3_SYS_CTL_IDSEL    0x06    /* Specify DSP version of SBPro */
                     76: #define     SA3_SYS_CTL_IDSEL0 0x00    /* major 0x03, minor 0x01 */
                     77: #define     SA3_SYS_CTL_IDSEL1 0x02    /* major 0x02, minor 0x01 */
                     78: #define     SA3_SYS_CTL_IDSEL2 0x04    /* major 0x01, minor 0x05 */
                     79: #define     SA3_SYS_CTL_IDSEL3 0x06    /* major 0x00, minor 0x00 */
                     80: #define   SA3_SYS_CTL_VZE      0x01    /* ZV */
                     81: #define SA3_SYS_CTL_DEFAULT    0x00    /* default value */
                     82:
                     83: #define SA3_IRQ_CONF           0x03    /* Interrupt Channel config (R/W) */
                     84: #define   SA3_IRQ_CONF_OPL3_B  0x80    /* OPL3 uses IRQ-B */
                     85: #define   SA3_IRQ_CONF_MPU_B   0x40    /* MPU401 uses IRQ-B */
                     86: #define   SA3_IRQ_CONF_SB_B    0x20    /* Sound Blaster uses IRQ-B */
                     87: #define   SA3_IRQ_CONF_WSS_B   0x10    /* WSS CODEC uses IRQ-B */
                     88: #define   SA3_IRQ_CONF_OPL3_A  0x08    /* OPL3 uses IRQ-A */
                     89: #define   SA3_IRQ_CONF_MPU_A   0x04    /* MPU401 uses IRQ-A */
                     90: #define   SA3_IRQ_CONF_SB_A    0x02    /* Sound Blaster uses IRQ-A */
                     91: #define   SA3_IRQ_CONF_WSS_A   0x01    /* WSS CODEC uses IRQ-A */
                     92: #define SA3_IRQ_CONF_DEFAULT   (SA3_IRQ_CONF_MPU_B | SA3_IRQ_CONF_SB_B | \
                     93:                                 SA3_IRQ_CONF_OPL3_A | SA3_IRQ_CONF_WSS_A)
                     94:
                     95: #define SA3_IRQA_STAT          0x04    /* Interrupt (IRQ-A) STATUS (RO) */
                     96: #define SA3_IRQB_STAT          0x05    /* Interrupt (IRQ-B) STATUS (RO) */
                     97: #define   SA3_IRQ_STAT_MV      0x40    /* Hardware Volume Interrupt */
                     98: #define   SA3_IRQ_STAT_OPL3    0x20    /* Internal FM-synthesizer timer */
                     99: #define   SA3_IRQ_STAT_MPU     0x10    /* MPU401 Interrupt */
                    100: #define   SA3_IRQ_STAT_SB      0x08    /* Sound Blaster Playback Interrupt */
                    101: #define   SA3_IRQ_STAT_TI      0x04    /* Timer Flag of CODEC */
                    102: #define   SA3_IRQ_STAT_CI      0x02    /* Recording Flag of CODEC */
                    103: #define   SA3_IRQ_STAT_PI      0x01    /* Playback Flag of CODEC */
                    104:
                    105: #define SA3_DMA_CONF           0x06    /* DMA configuration (R/W) */
                    106: #define   SA3_DMA_CONF_SB_B    0x40    /* Sound Blaster playback uses DMA-B */
                    107: #define   SA3_DMA_CONF_WSS_R_B 0x20    /* WSS CODEC recording uses DMA-B */
                    108: #define   SA3_DMA_CONF_WSS_P_B 0x10    /* WSS CODEC playback uses DMA-B */
                    109: #define   SA3_DMA_CONF_SB_A    0x04    /* Sound Blaster playback uses DMA-A */
                    110: #define   SA3_DMA_CONF_WSS_R_A 0x02    /* WSS CODEC recording uses DMA-A */
                    111: #define   SA3_DMA_CONF_WSS_P_A 0x01    /* WSS CODEC playback uses DMA-A */
                    112: #define SA3_DMA_CONF_DEFAULT   (SA3_DMA_CONF_SB_B | SA3_DMA_CONF_WSS_R_B | \
                    113:                                 SA3_DMA_CONF_WSS_P_A)
                    114:
                    115: #define SA3_VOL_L              0x07    /* Master Volume Lch (R/W) */
                    116: #define SA3_VOL_R              0x08    /* Master Volume Rch (R/W) */
                    117: #define   SA3_VOL_MUTE         0x80    /* Mute the channel */
                    118: #define   SA3_VOL_MV           0x0f    /* Master Volume bits */
                    119: #define     SA3_VOL_MV_0       0x00    /*   0dB (maximum volume) */
                    120: #define     SA3_VOL_MV_2       0x01    /*  -2dB */
                    121: #define     SA3_VOL_MV_4       0x02    /*  -4dB */
                    122: #define     SA3_VOL_MV_6       0x03    /*  -6dB */
                    123: #define     SA3_VOL_MV_8       0x04    /*  -8dB */
                    124: #define     SA3_VOL_MV_10      0x05    /* -10dB */
                    125: #define     SA3_VOL_MV_12      0x06    /* -12dB */
                    126: #define     SA3_VOL_MV_14      0x07    /* -14dB (default) */
                    127: #define     SA3_VOL_MV_16      0x08    /* -16dB */
                    128: #define     SA3_VOL_MV_18      0x09    /* -18dB */
                    129: #define     SA3_VOL_MV_20      0x0a    /* -20dB */
                    130: #define     SA3_VOL_MV_22      0x0b    /* -22dB */
                    131: #define     SA3_VOL_MV_24      0x0c    /* -24dB */
                    132: #define     SA3_VOL_MV_26      0x0d    /* -26dB */
                    133: #define     SA3_VOL_MV_28      0x0e    /* -28dB */
                    134: #define     SA3_VOL_MV_30      0x0f    /* -30dB (minimum volume) */
                    135: #define SA3_VOL_DEFAULT                SA3_VOL_MV_14
                    136:
                    137: #define SA3_MIC_VOL            0x09    /* MIC Volume (R/W) */
                    138: #define   SA3_MIC_MUTE         0x80    /* Mute Mic Volume */
                    139: #define   SA3_MIC_MCV          0x1f    /* Mic volume bits */
                    140: #define     SA3_MIC_MCV12      0x00    /* +12.0dB (maximum volume) */
                    141: #define     SA3_MIC_MCV10_5    0x01    /* +10.5dB */
                    142: #define     SA3_MIC_MCV9       0x02    /*  +9.0dB */
                    143: #define     SA3_MIC_MCV7_5     0x03    /*  +7.5dB */
                    144: #define     SA3_MIC_MCV6       0x04    /*  +6.0dB */
                    145: #define     SA3_MIC_MCV4_5     0x05    /*  +4.5dB */
                    146: #define     SA3_MIC_MCV3       0x06    /*  +3.0dB */
                    147: #define     SA3_MIC_MCV1_5     0x07    /*  +1.5dB */
                    148: #define     SA3_MIC_MCV_0      0x08    /*   0.0dB (default) */
                    149: #define     SA3_MIC_MCV_1_5    0x09    /*  -1.5dB */
                    150: #define     SA3_MIC_MCV_3_0    0x0a    /*  -3.0dB */
                    151: #define     SA3_MIC_MCV_4_5    0x0b    /*  -4.5dB */
                    152: #define     SA3_MIC_MCV_6      0x0c    /*  -6.0dB */
                    153: #define     SA3_MIC_MCV_7_5    0x0d    /*  -7.5dB */
                    154: #define     SA3_MIC_MCV_9      0x0e    /*  -9.0dB */
                    155: #define     SA3_MIC_MCV_10_5   0x0f    /* -10.5dB */
                    156: #define     SA3_MIC_MCV_12     0x10    /* -12.0dB */
                    157: #define     SA3_MIC_MCV_13_5   0x11    /* -13.5dB */
                    158: #define     SA3_MIC_MCV_15     0x12    /* -15.0dB */
                    159: #define     SA3_MIC_MCV_16_5   0x13    /* -16.5dB */
                    160: #define     SA3_MIC_MCV_18     0x14    /* -18.0dB */
                    161: #define     SA3_MIC_MCV_19_5   0x15    /* -19.5dB */
                    162: #define     SA3_MIC_MCV_21     0x16    /* -21.0dB */
                    163: #define     SA3_MIC_MCV_22_5   0x17    /* -22.5dB */
                    164: #define     SA3_MIC_MCV_24     0x18    /* -24.0dB */
                    165: #define     SA3_MIC_MCV_25_5   0x19    /* -25.5dB */
                    166: #define     SA3_MIC_MCV_27     0x1a    /* -27.0dB */
                    167: #define     SA3_MIC_MCV_28_5   0x1b    /* -28.5dB */
                    168: #define     SA3_MIC_MCV_30     0x1c    /* -30.0dB */
                    169: #define     SA3_MIC_MCV_31_5   0x1d    /* -31.5dB */
                    170: #define     SA3_MIC_MCV_33     0x1e    /* -33.0dB */
                    171: #define     SA3_MIC_MCV_34_5   0x1f    /* -34.5dB (minimum volume) */
                    172: #define SA3_MIC_VOL_DEFAULT    (SA3_MIC_MUTE | SA3_MIC_MCV_0)
                    173:
                    174: #define SA3_MISC               0x0a    /* Miscellaneous */
                    175: #define   SA3_MISC_VEN         0x80    /* Enable hardware volume control */
                    176: #define   SA3_MISC_MCSW                0x10    /* A/D is connected to  0: Rch of Mic,
                    177:                                           1: loopback of monaural output */
                    178: #define   SA3_MISC_MODE                0x08    /* 0: SB mode, 1: WSS mode (RO) */
                    179: #define   SA3_MISC_VER         0x07    /* Version of OPL3-SA3 (RO) */
                    180:                                        /*      (4 or 5?) */
                    181: /*#define SA3_MISC_DEFAULT     (SA3_MISC_VEN | (4 or 5?)) */
                    182:
                    183: /* WSS DMA Base counters (R/W) used for suspend/resume */
                    184: #define SA3_DMA_CNT_PLAY_LOW   0x0b    /* Playback Base Counter (Low) */
                    185: #define SA3_DMA_CNT_PLAY_HIGH  0x0c    /* Playback Base Counter (High) */
                    186: #define SA3_DMA_CNT_REC_LOW    0x0d    /* Recording Base Counter (Low) */
                    187: #define SA3_DMA_CNT_REC_HIGH   0x0e    /* Recording Base Counter (High) */
                    188:
                    189: #define SA3_WSS_INT_SCAN       0x0f    /* WSS Interrupt Scan out/in (R/W) */
                    190: #define   SA3_WSS_INT_SCAN_STI 0x04    /* 1: TI = "1" and IRQ active */
                    191: #define   SA3_WSS_INT_SCAN_SCI 0x02    /* 1: CI = "1" and IRQ active */
                    192: #define   SA3_WSS_INT_SCAN_SPI 0x01    /* 1: PI = "1" and IRQ active */
                    193: #define SA3_WSS_INT_DEFAULT    0x00    /* default value */
                    194:
                    195: #define SA3_SB_SCAN            0x10    /* SB Internal State Scan out/in (R/W)*/
                    196: #define   SA3_SB_SCAN_SBPDA    0x80    /* Sound Blaster Power Down ack */
                    197: #define   SA3_SB_SCAN_SS       0x08    /* Scan Select */
                    198: #define   SA3_SB_SCAN_SM       0x04    /* Scan Mode 1: read out, 0: write in */
                    199: #define   SA3_SB_SCAN_SE       0x02    /* Scan Enable */
                    200: #define   SA3_SB_SCAN_SBPDR    0x01    /* Sound Blaster Power Down Request */
                    201: #define SA3_SB_SCAN_DEFAULT    0x00    /* default value */
                    202:
                    203: #define SA3_SB_SCAN_DATA       0x11    /* SB Internal State Scan Data (R/W)*/
                    204:
                    205: #define SA3_DPWRDWN            0x12    /* Digital Partial Power Down (R/W) */
                    206: #define   SA3_DPWRDWN_JOY      0x80    /* Joystick power down */
                    207: #define   SA3_DPWRDWN_MPU      0x40    /* MPU401 power down */
                    208: #define   SA3_DPWRDWN_MCLKO    0x20    /* Master Clock disable */
                    209: #define   SA3_DPWRDWN_FM       0x10    /* FM (OPL3) power down */
                    210: #define   SA3_DPWRDWN_WSS_R    0x08    /* WSS recording power down */
                    211: #define   SA3_DPWRDWN_WSS_P    0x04    /* WSS playback power down */
                    212: #define   SA3_DPWRDWN_SB       0x02    /* Sound Blaster power down */
                    213: #define   SA3_DPWRDWN_PNP      0x01    /* PnP power down */
                    214: #define SA3_DPWRDWN_DEFAULT    0x00    /* default value */
                    215:
                    216: #define SA3_APWRDWN            0x13    /* Analog Partial Power Down (R/W) */
                    217: #define   SA3_APWRDWN_FMDAC    0x10    /* FMDAC for OPL3 power down */
                    218: #define   SA3_APWRDWN_AD       0x08    /* A/D for WSS recording power down */
                    219: #define   SA3_APWRDWN_DA       0x04    /* D/A for WSS playback power down */
                    220: #define   SA3_APWRDWN_SBDAC    0x02    /* D/A for SB power down */
                    221: #define   SA3_APWRDWN_WIDE     0x01    /* Wide Stereo power down */
                    222: #define SA3_APWRDWN_DEFAULT    0x00    /* default value */
                    223:
                    224: #define SA3_3D_WIDE            0x14    /* 3D Enhanced control (WIDE) (R/W) */
                    225: #define   SA3_3D_WIDE_WIDER    0x70    /* Rch of wide 3D enhanced control */
                    226: #define   SA3_3D_WIDE_WIDEL    0x07    /* Lch of wide 3D enhanced control */
                    227: #define SA3_3D_WIDE_DEFAULT    0x00    /* default value */
                    228:
                    229: #define SA3_3D_BASS            0x15    /* 3D Enhanced control (BASS) (R/W) */
                    230: #define   SA3_3D_BASS_BASSR    0x70    /* Rch of bass 3D enhanced control */
                    231: #define   SA3_3D_BASS_BASSL    0x07    /* Lch of bass 3D enhanced control */
                    232: #define SA3_3D_BASS_DEFAULT    0x00    /* default value */
                    233:
                    234: #define SA3_3D_TREBLE          0x16    /* 3D Enhanced control (TREBLE) (R/W) */
                    235: #define   SA3_3D_TREBLE_TRER   0x70    /* Rch of treble 3D enhanced control */
                    236: #define   SA3_3D_TREBLE_TREL   0x07    /* Lch of treble 3D enhanced control */
                    237: #define SA3_3D_TREBLE_DEFAULT  0x00    /* default value */
                    238:
                    239: /* common to the 3D enhance registers */
                    240: #define   SA3_3D_BITS          0x07
                    241: #define   SA3_3D_LSHIFT                0
                    242: #define   SA3_3D_RSHIFT                4
                    243:
                    244: #define SA3_HVOL_INTR_CNF      0x17    /* Hardware Volume Intr Channel (R/W) */
                    245: #define   SA3_HVOL_INTR_CNF_B  0x20    /* Hardware Volume uses IRQ-B */
                    246: #define   SA3_HVOL_INTR_CNF_A  0x10    /* Hardware Volume uses IRQ-A */
                    247: #define SA3_HVOL_INTR_CNF_DEFAULT      0x00
                    248:
                    249: #define SA3_MULTI_STAT         0x18    /* Multi-purpose Select Pin Stat (RO) */
                    250: #define   SA3_MULTI_STAT_SEL   0x70    /* State of SEL2-0 pins */

CVSweb