xref: /openbsd/share/man/man4/azalia.4 (revision 73471bf0)
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