YM(4)                   NetBSD Kernel Interfaces Manual                  YM(4)

NAME
     ym -- Yamaha OPL3-SA2 and OPL3-SA3 audio device driver

SYNOPSIS
     ym*    at acpi?
     ym*    at isapnp?
     ym*    at pnpbios? index ?
     audio* at audiobus?
     mpu*   at ym?
     opl*   at ym?

DESCRIPTION
     The ym driver provides support for Yamaha YMF711 (OPL3-SA2) and YMF715x
     (OPL3-SA3) sound devices.

     The OPL3-SAx device has WSS compatible full-duplex 16bit CODEC, OPL3 FM
     synthesizer, and MPU401 compatible MIDI I/O port interface.  Addition-
     ally, OPL3-SA3 has built-in `3D Enhanced' equalizer.

     The joystick interface is handled by the joy(4) driver.

MIXER DEVICE
     The mixer device of ym driver can be accessed by mixerctl(1) command.
     The layout is shown below.

                 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     -----------------

     Note that the `inputs.dac' is twice as sensitive as other `inputs' volume
     variables.

     The hardware volume changes the `outputs.master' value.

     If an external input source is unmuted by setting corresponding
     `inputs.*.mute' variable to `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.

     All the external input sources (CD playback, line input, speaker, and
     MIC) are muted by default.

     The `equalization.*' variables does not exists on OPL3-SA2.  The
     `equalization.treble' and `equalization.bass' are enhancement only, and
     any values below the center position (128) don't take any effect.

POWER MANAGEMENT
     The ym driver is capable of power management on the OPL3-SAx devices.
     The following modes can be selected by setting `power.save' variable of
     mixerctl(1) to `powerdown', `powersave', and `nosave' respectively.

     Global power-down mode
             When a subpart of the device is unused, the part is power-down
             after a timeout period (specified by `power.save.timeout' vari-
             able of 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 `Global Power Down' mode.

             On the global power down mode, the power consumption is minimized
             (10uA (SA3) or 200uA (SA2) typ.), but the click noise on power
             up/down the device is rather loud.  This mode should not be used
             with headphones or hi-fi audio systems, or your ears or the sys-
             tems may be damaged.
     Power save mode
             When a subpart of the device is unused, the part is powered-down
             after a timeout period (specified by `power.save.timeout' vari-
             able of 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 `Power Save' mode.

             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.
     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 switch-
             ing, but maximizes power consumption (30-100mA).

             On suspending, the device is put into power-save state.

SEE ALSO
     mixerctl(1), apm(4), audio(4), isapnp(4), joy(4), midi(4), mpu(4),
     opl(4), pnpbios(4)

HISTORY
     The ym device driver appeared in NetBSD 1.4.

BUGS
     Although the parameters of the device are saved and restored on 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.

     The joystick port is not under power management.  If a joy(4) device is
     configured, the device will never be put in global power down or power
     save mode.

     The external devices, such as Zoomed Video port, OPL4-ML/2, modem, and
     CD-ROM are not supported.

NetBSD 5.0_STABLE               August 14, 2006              NetBSD 5.0_STABLE
