Training courses

Kernel and Embedded Linux

Bootlin training courses

Embedded Linux, kernel,
Yocto Project, Buildroot, real-time,
graphics, boot time, debugging...

Bootlin logo

Elixir Cross Referencer

.\" $NetBSD: ym.4,v 1.19 2017/07/03 21:30:58 wiz Exp $
.\"
.\" Copyright (c) 1999 The NetBSD Foundation, Inc.
.\" All rights reserved.
.\"
.\" This code is derived from software contributed to The NetBSD Foundation
.\" by Lennart Augustsson.
.\"
.\" Redistribution and use in source and binary forms, with or without
.\" modification, are permitted provided that the following conditions
.\" are met:
.\" 1. Redistributions of source code must retain the above copyright
.\"    notice, this list of conditions and the following disclaimer.
.\" 2. Redistributions in binary form must reproduce the above copyright
.\"    notice, this list of conditions and the following disclaimer in the
.\"    documentation and/or other materials provided with the distribution.
.\"
.\" THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS
.\" ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
.\" TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
.\" PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS
.\" BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
.\" CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
.\" SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
.\" INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
.\" CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
.\" POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd August 14, 2006
.Dt YM 4
.Os
.Sh NAME
.Nm ym
.Nd Yamaha OPL3-SA2 and OPL3-SA3 audio device driver
.Sh SYNOPSIS
.Cd "ym*    at acpi?"
.Cd "ym*    at isapnp?"
.Cd "ym*    at pnpbios? index ?"
.Cd "audio* at audiobus?"
.Cd "mpu*   at ym?"
.Cd "opl*   at ym?"
.Sh DESCRIPTION
The
.Nm
driver provides support for
Yamaha YMF711 (OPL3-SA2) and YMF715x (OPL3-SA3) sound devices.
.Pp
The OPL3-SAx device has
WSS compatible full-duplex 16bit CODEC,
OPL3 FM synthesizer, and
MPU401 compatible MIDI I/O port interface.
Additionally, OPL3-SA3 has built-in
.Sq 3D Enhanced
equalizer.
.Pp
The joystick interface is handled by the
.Xr joy 4
driver.
.Sh MIXER DEVICE
The mixer device of
.Nm
driver can be accessed by
.Xr mixerctl 1
command.
The layout is shown below.
.Bd -literal
            dac ------------------------<-----  -----------------
midi(OPL3/ZV)->-+----------------------------+->|inputs.midi    |
cd      ->------+-*--------------------------+->|inputs.cd      |
line    ->----*-+-+--------------------------+->|inputs.line    |
speaker ->----+-+-+--------------------------+->|inputs.speaker |
mic     ->--*-+-+-+--------------------------+->|inputs.mic     |
            v v v v      monitor.monitor     |  |               |
        ---------------  -------  |  ------- |  |               |
        |record.record|->| A/D |---->| D/A |-*->|inputs.dac     |analog
        |             |  |conv.|-- ->|conv.|    |               |output
        ---------------  ------- | | -------    | outputs.master|-->
                           wave  v | wave       | equalization.*|
                         recording playback     -----------------
.Ed
.Pp
Note that the
.Sq Dv inputs.dac
is twice as sensitive as other
.Sq Dv inputs
volume variables.
.Pp
The hardware volume changes the
.Sq Dv outputs.master
value.
.Pp
If an external input source is unmuted by setting corresponding
.Sq Dv inputs.*.mute
variable to
.Sq Dv off ,
the device is never put in global power down or power save mode.
This is because if the device is in global power down or power save mode,
the output is automatically muted.
.Pp
All the external input sources (CD playback, line input, speaker, and MIC)
are muted by default.
.Pp
The
.Sq Dv equalization.*
variables does not exists on OPL3-SA2.
The
.Sq equalization.treble
and
.Sq equalization.bass
are enhancement only, and any values below the center position (128)
don't take any effect.
.Sh POWER MANAGEMENT
The
.Nm
driver is capable of power management on the OPL3-SAx devices.
The following modes can be selected by setting
.Sq Dv power.save
variable of
.Xr mixerctl 1
to
.Sq Dv powerdown ,
.Sq Dv powersave ,
and
.Sq Dv nosave
respectively.
.Pp
.Bl -tag -width indent -compact
.It Global power-down mode
When a subpart of the device is unused, the part is power-down after
a timeout period (specified by
.Sq Dv power.save.timeout
variable of
.Xr mixerctl 1
in seconds).
When all the subparts of the device are unused,
and all the external input sources are muted,
the driver puts the device in
.Sq Global Power Down
mode.
.Pp
On the global power down mode, the power consumption is minimized
(10\(*mA (SA3) or 200\(*mA (SA2) typ.),
.\" Note: \(*m is Greek mu
but the click noise on power up/down the device is rather loud.
.Bf Em
This mode should not be used with headphones or hi\-fi audio systems,
or your ears or the systems may be damaged.
.Ef
.It Power save mode
When a subpart of the device is unused, the part is powered-down after
a timeout period (specified by
.Sq Dv power.save.timeout
variable of
.Xr mixerctl 1
in seconds).
When all the subparts of the device are unused,
and all the external input sources are muted,
the driver put the device in
.Sq Power Save
mode.
.Pp
In power save mode, the power consumption is reduced (5mA typ.).
The click noise on power up/down of the device is very small,
but this operation requires muting/unmuting the device, which make some noise.
In order to reduce the noise, setting the master volume at the small value
is effective.
.It "No power-save mode"
Once the device is powered-up, it remains on after the use of the device.
Once a subpart of the device is powered-up, it shall not be power-down.
This mode minimizes click noises on power switching,
but maximizes power consumption (30-100mA).
.Pp
On suspending, the device is put into power-save state.
.El
.Sh SEE ALSO
.Xr mixerctl 1 ,
.Xr apm 4 ,
.Xr audio 4 ,
.Xr isapnp 4 ,
.Xr joy 4 ,
.Xr midi 4 ,
.Xr mpu 4 ,
.Xr opl 4 ,
.Xr pnpbios 4
.Sh HISTORY
The
.Nm
device driver appeared in
.Nx 1.4 .
.Sh BUGS
Although the parameters of the device are saved and restored on
.Xr apm 4
suspend/resume, the DMA state is not restored.
That is, if the system suspends during playback,
this is not continued after suspend/resume cycle.
.Pp
The joystick port is not under power management.
If a
.Xr joy 4
device is configured,
the device will never be put in global power down or power save mode.
.Pp
The external devices, such as Zoomed Video port, OPL4-ML/2, modem, and CD-ROM
are not supported.