The Design and Implementation of the FreeBSD Operating System, Second Edition
Now available: The Design and Implementation of the FreeBSD Operating System (Second Edition)


[ source navigation ] [ diff markup ] [ identifier search ] [ freetext search ] [ file search ] [ list types ] [ track identifier ]

FreeBSD/Linux Kernel Cross Reference
sys/dev/ic/ac97reg.h

Version: -  FREEBSD  -  FREEBSD-13-STABLE  -  FREEBSD-13-0  -  FREEBSD-12-STABLE  -  FREEBSD-12-0  -  FREEBSD-11-STABLE  -  FREEBSD-11-0  -  FREEBSD-10-STABLE  -  FREEBSD-10-0  -  FREEBSD-9-STABLE  -  FREEBSD-9-0  -  FREEBSD-8-STABLE  -  FREEBSD-8-0  -  FREEBSD-7-STABLE  -  FREEBSD-7-0  -  FREEBSD-6-STABLE  -  FREEBSD-6-0  -  FREEBSD-5-STABLE  -  FREEBSD-5-0  -  FREEBSD-4-STABLE  -  FREEBSD-3-STABLE  -  FREEBSD22  -  l41  -  OPENBSD  -  linux-2.6  -  MK84  -  PLAN9  -  xnu-8792 
SearchContext: -  none  -  3  -  10 

    1 /*      $NetBSD: ac97reg.h,v 1.9 2003/09/07 11:27:33 kent Exp $ */
    2 
    3 /*
    4  * Copyright (c) 1999 Constantine Sapuntzakis
    5  *
    6  * Author:        Constantine Sapuntzakis <csapuntz@stanford.edu>
    7  *
    8  * Redistribution and use in source and binary forms, with or without
    9  * modification, are permitted provided that the following conditions
   10  * are met:
   11  * 1. Redistributions of source code must retain the above copyright
   12  *    notice, this list of conditions and the following disclaimer.
   13  * 2. Redistributions in binary form must reproduce the above copyright
   14  *    notice, this list of conditions and the following disclaimer in the
   15  *    documentation and/or other materials provided with the distribution.
   16  *
   17  * THIS SOFTWARE IS PROVIDED BY CONSTANTINE SAPUNTZAKIS AND CONTRIBUTORS
   18  * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
   19  * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
   20  * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS
   21  * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
   22  * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
   23  * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
   24  * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
   25  * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
   26  * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
   27  * POSSIBILITY OF SUCH DAMAGE.
   28  */
   29 
   30 #define AC97_REG_RESET                  0x00
   31 #define         AC97_CAPS_MICIN                 0x0001
   32 #define         AC97_CAPS_TONECTRL              0x0004
   33 #define         AC97_CAPS_SIMSTEREO             0x0008
   34 #define         AC97_CAPS_HEADPHONES            0x0010
   35 #define         AC97_CAPS_LOUDNESS              0x0020
   36 #define         AC97_CAPS_DAC18                 0x0040
   37 #define         AC97_CAPS_DAC20                 0x0080
   38 #define         AC97_CAPS_ADC18                 0x0100
   39 #define         AC97_CAPS_ADC20                 0x0200
   40 #define         AC97_CAPS_ENHANCEMENT_MASK      0xfc00
   41 #define         AC97_CAPS_ENHANCEMENT_SHIFT     10
   42 #define         AC97_CAPS_ENHANCEMENT(reg)      (((reg) >> 10) & 0x1f)
   43 #define AC97_REG_MASTER_VOLUME          0x02
   44 #define AC97_REG_HEADPHONE_VOLUME       0x04
   45 #define AC97_REG_MASTER_VOLUME_MONO     0x06
   46 #define AC97_REG_MASTER_TONE            0x08
   47 #define AC97_REG_PCBEEP_VOLUME          0x0a
   48 #define AC97_REG_PHONE_VOLUME           0x0c
   49 #define AC97_REG_MIC_VOLUME             0x0e
   50 #define AC97_REG_LINEIN_VOLUME          0x10
   51 #define AC97_REG_CD_VOLUME              0x12
   52 #define AC97_REG_VIDEO_VOLUME           0x14
   53 #define AC97_REG_AUX_VOLUME             0x16
   54 #define AC97_REG_PCMOUT_VOLUME          0x18
   55 #define AC97_REG_RECORD_SELECT          0x1a
   56 #define AC97_REG_RECORD_GAIN            0x1c
   57 #define AC97_REG_RECORD_GAIN_MIC        0x1e /* for dedicated mic */
   58 #define AC97_REG_GP                     0x20
   59 #define AC97_REG_3D_CONTROL             0x22
   60                                 /*      0x24    Modem sample rate in AC97 1.03
   61                                                 Reserved in AC97 2.0
   62                                                 Interrupt/paging in AC97 2.3 */
   63 #define AC97_REG_POWER                  0x26
   64 #define         AC97_POWER_ADC                  0x0001
   65 #define         AC97_POWER_DAC                  0x0002
   66 #define         AC97_POWER_ANL                  0x0004
   67 #define         AC97_POWER_REF                  0x0008
   68 #define         AC97_POWER_IN                   0x0100
   69 #define         AC97_POWER_OUT                  0x0200
   70 #define         AC97_POWER_MIXER                0x0400
   71 #define         AC97_POWER_MIXER_VREF           0x0800
   72 #define         AC97_POWER_ACLINK               0x1000
   73 #define         AC97_POWER_CLK                  0x2000
   74 #define         AC97_POWER_AUX                  0x4000
   75 #define         AC97_POWER_EAMP                 0x8000
   76 
   77 /* AC'97 2.0 extensions -- 0x28-0x3a */
   78 #define AC97_REG_EXT_AUDIO_ID           0x28
   79 #define AC97_REG_EXT_AUDIO_CTRL         0x2a
   80 #define         AC97_EXT_AUDIO_VRA              0x0001
   81 #define         AC97_EXT_AUDIO_DRA              0x0002
   82 #define         AC97_EXT_AUDIO_SPDIF            0x0004
   83 #define         AC97_EXT_AUDIO_VRM              0x0008 /* for dedicated mic */
   84 #define         AC97_EXT_AUDIO_DSA_MASK         0x0030 /* for EXT ID */
   85 #define          AC97_EXT_AUDIO_DSA00           0x0000 /* for EXT ID */
   86 #define          AC97_EXT_AUDIO_DSA01           0x0010 /* for EXT ID */
   87 #define          AC97_EXT_AUDIO_DSA10           0x0020 /* for EXT ID */
   88 #define          AC97_EXT_AUDIO_DSA11           0x0030 /* for EXT ID */
   89 #define         AC97_EXT_AUDIO_SPSA_MASK        0x0030 /* for EXT CTRL */
   90 #define          AC97_EXT_AUDIO_SPSA34          0x0000 /* for EXT CTRL */
   91 #define          AC97_EXT_AUDIO_SPSA78          0x0010 /* for EXT CTRL */
   92 #define          AC97_EXT_AUDIO_SPSA69          0x0020 /* for EXT CTRL */
   93 #define          AC97_EXT_AUDIO_SPSAAB          0x0030 /* for EXT CTRL */
   94 #define         AC97_EXT_AUDIO_CDAC             0x0040
   95 #define         AC97_EXT_AUDIO_SDAC             0x0080
   96 #define         AC97_EXT_AUDIO_LDAC             0x0100
   97 #define         AC97_EXT_AUDIO_AMAP             0x0200 /* for EXT ID */
   98 #define         AC97_EXT_AUDIO_REV_MASK         0x0C00 /* for EXT ID */
   99 #define          AC97_EXT_AUDIO_REV_11          0x0000 /* for EXT ID */
  100 #define          AC97_EXT_AUDIO_REV_22          0x0400 /* for EXT ID */
  101 #define          AC97_EXT_AUDIO_REV_23          0x0800 /* for EXT ID */
  102 #define          AC97_EXT_AUDIO_REV_RESERVED11  0x0c00 /* for EXT ID */
  103 #define         AC97_EXT_AUDIO_ID_MASK          0xC000 /* for EXT ID */
  104 #define          AC97_EXT_AUDIO_ID_PRIMARY      0x0000 /* for EXT ID */
  105 #define          AC97_EXT_AUDIO_ID_SECONDARY01  0x4000 /* for EXT ID */
  106 #define          AC97_EXT_AUDIO_ID_SECONDARY10  0x8000 /* for EXT ID */
  107 #define          AC97_EXT_AUDIO_ID_SECONDARY11  0xc000 /* for EXT ID */
  108 #define         AC97_EXT_AUDIO_MADC             0x0200 /* for EXT CTRL */
  109 #define         AC97_EXT_AUDIO_SPCV             0x0400 /* for EXT CTRL */
  110 #define         AC97_EXT_AUDIO_PRI              0x0800 /* for EXT CTRL */
  111 #define         AC97_EXT_AUDIO_PRJ              0x1000 /* for EXT CTRL */
  112 #define         AC97_EXT_AUDIO_PRK              0x2000 /* for EXT CTRL */
  113 #define         AC97_EXT_AUDIO_PRL              0x4000 /* for EXT CTRL */
  114 #define         AC97_EXT_AUDIO_VCFG             0x8000 /* for EXT CTRL */
  115 
  116 #define         AC97_SINGLE_RATE                48000
  117 #define AC97_REG_PCM_FRONT_DAC_RATE     0x2c
  118 #define AC97_REG_PCM_SURR_DAC_RATE      0x2e
  119 #define AC97_REG_PCM_LFE_DAC_RATE       0x30
  120 #define AC97_REG_PCM_LR_ADC_RATE        0x32
  121 #define AC97_REG_PCM_MIC_ADC_RATE       0x34    /* dedicated mic */
  122 #define AC97_REG_CENTER_LFE_MASTER      0x36    /* center + LFE master volume */
  123 #define AC97_REG_SURR_MASTER            0x38    /* surround (rear) master vol */
  124 #define AC97_REG_SPDIF_CTRL             0x3a
  125 #define         AC97_SPDIF_V                    0x8000
  126 #define         AC97_SPDIF_DRS                  0x4000
  127 #define         AC97_SPDIF_SPSR_MASK            0x3000
  128 #define          AC97_SPDIF_SPSR_44K            0x0000
  129 #define          AC97_SPDIF_SPSR_48K            0x2000
  130 #define          AC97_SPDIF_SPSR_32K            0x1000
  131 #define         AC97_SPDIF_L                    0x0800
  132 #define         AC97_SPDIF_CC_MASK              0x07f0
  133 #define         AC97_SPDIF_PRE                  0x0008
  134 #define         AC97_SPDIF_COPY                 0x0004
  135 #define         AC97_SPDIF_NONAUDIO             0x0002
  136 #define         AC97_SPDIF_PRO                  0x0001
  137 
  138 /* Modem -- 0x3c-0x58 */
  139 
  140 /* Vendor specific -- 0x5a-0x7b */
  141 
  142 #define AC97_REG_VENDOR_ID1             0x7c
  143 #define AC97_REG_VENDOR_ID2             0x7e
  144 #define         AC97_VENDOR_ID_MASK             0xffffff00
  145 
  146 #define AC97_CODEC_ID(a0, a1, a2, x)                                    \
  147         (((a0) << 24) | ((a1) << 16) | ((a2) << 8) | (x))
  148 
  149 #define AC97_GET_CODEC_ID(id, cp)                                       \
  150 do {                                                                    \
  151         (cp)[0] = ((id) >> 24) & 0xff;                                  \
  152         (cp)[1] = ((id) >> 16) & 0xff;                                  \
  153         (cp)[2] = ((id) >> 8)  & 0xff;                                  \
  154         (cp)[3] = (id) & 0xff;                                          \
  155 } while (0)

Cache object: a11d1c7c2e5e46f5ed052d2bfcc4b85f


[ source navigation ] [ diff markup ] [ identifier search ] [ freetext search ] [ file search ] [ list types ] [ track identifier ]


This page is part of the FreeBSD/Linux Linux Kernel Cross-Reference, and was automatically generated using a modified version of the LXR engine.