1.\" $OpenBSD: azalia.4,v 1.27 2012/03/15 14:22:59 sthen Exp $ 2.\" $NetBSD: azalia.4,v 1.2 2005/06/22 04:19:09 kent Exp $ 3.\" 4.\" Copyright (c) 2005 The NetBSD Foundation, Inc. 5.\" All rights reserved. 6.\" 7.\" This code is derived from software contributed to The NetBSD Foundation 8.\" by TAMURA Kent 9.\" 10.\" Redistribution and use in source and binary forms, with or without 11.\" modification, are permitted provided that the following conditions 12.\" are met: 13.\" 1. Redistributions of source code must retain the above copyright 14.\" notice, this list of conditions and the following disclaimer. 15.\" 2. Redistributions in binary form must reproduce the above copyright 16.\" notice, this list of conditions and the following disclaimer in the 17.\" documentation and/or other materials provided with the distribution. 18.\" 19.\" THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS 20.\" ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED 21.\" TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR 22.\" PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS 23.\" BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR 24.\" CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF 25.\" SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS 26.\" INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN 27.\" CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 28.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 29.\" POSSIBILITY OF SUCH DAMAGE. 30.\" 31.Dd $Mdocdate: March 15 2012 $ 32.Dt AZALIA 4 33.Os 34.Sh NAME 35.Nm azalia 36.Nd generic High Definition Audio device 37.Sh SYNOPSIS 38.Cd "azalia* at pci?" 39.Cd "audio* at azalia?" 40.Sh DESCRIPTION 41The 42.Nm 43device driver is expected to support any PCI device which is 44compliant with the High Definition Audio Specification 1.0. 45.Pp 46Supported controllers include: 47.Pp 48.Bl -bullet -compact -offset indent 49.It 50Acer Labs M5461 51.It 52AMD Hudson-2 53.It 54ATI SB450, SB600, SB700, SB800 55.It 56Intel 82801FB/GB/H/I/JI (ICH6, ICH7, ICH8, ICH9, ICH10) 57.It 58NVIDIA MCP51/MCP55/MCP61/MCP65/MCP67/MCP73/MCP77/MCP79/MCP89 59.It 60Silicon Integrated System 966/966L 61.It 62VIA Technologies VT8237A, VT8251 63.El 64.Pp 65The High Definition Audio (HDA) specification describes a flexible and 66extensible infrastructure to support high quality audio. 67HDA supports sample rates up to 192 kHz, bit rates of up to 32 bits per 68sample, and up to 16 channels in audio streams. 69It also supports S/PDIF input/output as well as jack retasking and sensing. 70The HDA specification defines a controller register set and a codec 71architecture. 72.Sh MIXER INTERFACE 73The codec is the main audio processor. 74Configuration of the device, such as selecting playback sample rate 75or decreasing the volume, is handled by the codec. 76Codecs are comprised of interconnected widgets. 77Common examples of widgets include DACs (digital to analog converter), 78ADCs (analog to digital converter), selectors, mixers, and pin 79complexes (input/output jacks). 80Widgets may have fixed or controllable properties. 81Some of these properties include source selection, amplifier gain, 82mute, and operational direction. 83.Pp 84The mixer interface for 85.Nm 86is designed to allow the user to control most properties of the widgets. 87When 88.Nm 89first attaches and configures the device, it will set all widgets to 90unmuted, moderate volume, and configure connections such that stereo 91playback and recording will work with the expected input/output pins. 92.Pp 93There are a wide range of HDA codecs. 94Some have only a few widgets that don't have many controllable 95properties, and some may have many, very controllable widgets. 96The mixer interface on one 97.Nm 98may be very different than the mixer interface on another. 99.Pp 100Mixer item names describe the widget and property being controlled. 101Names take the following form: 102.Bd -literal 103<mixer class>.<widget type>[<widget type enumerator>][_<property>] 104.Ed 105.Pp 106The mixer class gives a hint as to the purpose of the control. 107The widget type enumerator is used to distinguish different widgets 108of the same type. 109The enumeration starts at 2: the first widget of each type is not 110enumerated. 111The enumeration order is meaningless. 112The property is optional. 113Generally, if there is no property, the mixer item is an amplifier gain 114control. 115.Pp 116The following are the widget type names used in mixer control names: 117.Bl -tag -width "SPDIF-in" 118.It Cm dac 119Digital to analog converter, usually used for playback. 120The audio stream channels these widgets will convert are encoded into 121their name in the form of <start channel>:<end channel>. 122For example, 123.Cm dac-0:1 124converts channels 0 and 1 (stereo). 125However, a dac that is connected to built-in speakers or front 126panel headphone jacks by default will convert audio stream channels 127starting at 0 if the dac would otherwise not be converting any channels. 128For example, if 129.Cm dac-2:3 130is the default dac for the built-in speakers in a laptop, 131.Cm dac-2:3 132will convert channels 0 and 1 when a stereo audio stream is being played. 133This is to allow simultaneous stereo playback on both the built-in speakers 134and a line or headphone jack. 135.It Cm dig-dac 136Digital output converter, usually an S/PDIF transmitter. 137The audio stream channels these widgets will convert are encoded into 138their name in the form of <start channel>:<end channel>. 139For example, 140.Cm dig-dac-0:1 141converts channels 0 and 1 (stereo). 142.It Cm adc 143Analog to digital converter, usually used for recording. 144The audio stream channels these widgets will convert are encoded into 145their name in the form of <start channel>:<end channel>. 146For example, 147.Cm adc-0:1 148converts channels 0 and 1 (stereo). 149.It Cm dig-adc 150Digital input converter, usually an S/PDIF receiver. 151The audio stream channels these widgets will convert are encoded into 152their name in the form of <start channel>:<end channel>. 153For example, 154.Cm dig-adc-0:1 155converts channels 0 and 1 (stereo). 156.It Cm mix 157Sums multiple audio sources into a single stream, but 158sometimes only used for amplifier or mute properties. 159The property part of a mix widget mixer control name may be 160the name of another widget. 161Such a mixer item controls the input level from the widget in the 162property part of the name. 163.It Cm sel 164Selects a single audio source, but sometimes used only for amplifier 165or mute properties. 166.It Cm pow 167Controls power state for a group of widgets. 168.It Cm volume 169Interprets data from external controls, such as a volume knob. 170.It Cm beep 171Creates a tone at a certain frequency. 172.It Cm line 173Pin complex for a line-level jack that is normally used for analog audio 174output. 175The name may also be appended with a color abbreviation such as -grn (green), 176-blk (black), -org (orange), or -gry (grey), to help differentiate jacks. 177.It Cm spkr 178Pin complex for a speaker, often built into the machine. 179.It Cm hp 180Pin complex for a jack that is normally used for output to a headphone. 181.It Cm cd 182Pin complex for analog audio input from a CD device. 183.It Cm SPDIF 184Pin complex for an S/PDIF output connector. 185.It Cm line-in 186Pin complex for a line-level jack that is normally used for analog audio input. 187.It Cm aux 188Pin complex for an auxiliary analog audio input. 189.It Cm mic 190Pin complex for analog audio input from a microphone, either a jack or built 191into the machine. 192.It Cm SPDIF-in 193Pin complex for an S/PDIF input connector. 194.It Cm beep 195Pin complex for analog audio input from a beep generator. 196.El 197.Pp 198The following are the property names used in mixer control names: 199.Bl -tag -width "source" 200.It Cm mute 201Mutes input or output audio stream. 202.It Cm source 203Selects input source. 204Can either select a single source or multiple sources. 205Sometimes these controls may only have a single choice, but they are 206provided to show how audio streams move through the codec. 207.It Cm dir 208Selects pin direction and input VRef signal. 209VRef is represented in percent of the analog voltage rail. 210For example, 'input-vr80' means input direction with 80% VRef. 211.It Cm boost 212Enables/disables low impedance amplifier, usually for use with headphones. 213.It Cm eapd 214Powers on/off external amplifier circuitry. 215.It Cm sense 216Reports current jack sense state. 217.El 218.Pp 219There are also some special mixer controls that don't directly 220correspond to properties of the widgets, but control aspects 221of the driver or other mixer controls. 222The following describes these special controls: 223.Bl -tag -width "outputsXmasterXslaves" 224.It Cm outputs.spkr_muters 225List of pins that can mute a built-in speaker. 226A pin mutes the speaker by sending a signal when it senses that something 227has been plugged into its jack. 228If a pin supports both input and output operation, the pin will only mute 229the speaker when plugged into if that pin is configured for output. 230.It Cm outputs.master.slaves 231List of widgets with amplifier gain or mute controls that are configured 232with the parameters used for 233.Cm outputs.master 234and 235.Cm outputs.master.mute . 236For example, if 237.Cm dac 238is in the list and has an input amplifier gain control, setting 239.Cm outputs.master 240to 200 will set 241.Cm inputs.dac 242to 200. 243.It Cm outputs.master 244Amplifier gain control for widgets listed in 245.Cm outputs.master.slaves . 246.It Cm outputs.master.mute 247Mute control for widgets listed in 248.Cm outputs.master.slaves . 249.It Cm record.volume.slaves 250List of widgets with amplifier gain or mute controls that are configured 251with the parameters used for 252.Cm record.volume 253and 254.Cm record.volume.mute . 255For example, if 256.Cm adc 257is in the list and has an input amplifier gain control, setting 258.Cm record.volume 259to 200 will set 260.Cm record.adc 261to 200. 262.It Cm record.volume 263Amplifier gain control for widgets listed in 264.Cm record.volume.slaves . 265.It Cm record.volume.mute 266Mute control for widgets listed in 267.Cm record.volume.slaves . 268.It Cm outputs.mode 269Controls whether the digital or analog converters and pins will be 270used for playback. 271.It Cm record.mode 272Controls whether the digital or analog converters and pins will be 273used for recording. 274.El 275.Sh SEE ALSO 276.Xr audio 4 , 277.Xr pci 4 278.Sh HISTORY 279The 280.Nm 281device driver first appeared in 282.Nx 3.0 . 283.Ox 284support first appeared in 285.Ox 4.0 . 286.Sh BUGS 287This driver does not support codecs that are intended for HDMI or 288DisplayPort connectivity. 289