[[PageOutline]] = Ventana Audio The Advanced Linux Sound Architecture (ALSA) system is the current audio driver subsystem in Linux. For details on detecting and configuring ALSA devices see [wiki:linux/audio linux/audio] The audio hardware available on Ventana boards: * [http://cache.freescale.com/files/analog/doc/data_sheet/SGTL5000.pdf?pspll=1 Freescale SGTL5000] with line level input and output (standard board configuration) or (custom board configuration) headphone level output (custom board configuration) - 45mW max into 16ohme@3.3V load, and mic input * tda1997x (HDMI Audio in) * imxhdmisoc (HDMI Audio out) For information regarding Audio / Video breakout adapters for Ventana see: * [wiki:ventana/breakoutadapters Audio / Video breakout Adapters] Note that by default, Ventana family boards that have analog audio have a default strapping of [http://en.wikipedia.org/wiki/Line_level line level] audio (both input and output). However, there is an option to load Headphone level output/Mic level input on request. Please contact sales@gateworks.com if you would like a special built with these loadings. [=#amixer-sgtl5000] === sgtl5000 (analog audio) Note that by default, Ventana family boards that have analog audio have a default strapping of [http://en.wikipedia.org/wiki/Line_level line level] audio (both input and output). However, there is an option to load Headphone level output and/or Mic level input on request. Please contact sales@gateworks.com if you would like a special built with these loadings. [=#amixer-sgtl5000-lineout] ==== Line Level Audio Output common {{{amixer}}} settings for Analog audio output (make sure to look at {{{/proc/asound/cards}}} to find the correct device number to use with the -c option below): * Output (Line out) {{{#!bash # unmute output amixer -c 0 sset Lineout on # set output level to max amixer -c 0 sset PCM 100% }}} * Input (Line in) {{{#!bash # set capture mux amixer -c 0 sset "Capture Mux" LINE_IN amixer -c 0 sset "Line In Function" on # set capture gain amixer -c 0 sset "Capture" 8 # enable it amixer -c 0 sset "Capture" cap }}} [=#amixer-sgtl5000-hpout] ==== Headphone Level Audio Output ==== If you've ordered a board with HP level audio the following specifications apply: * sgtl5000 can drive 45mW max into a 16ohm load at 3.3V (53mA) common {{{amixer}}} settings for headphone level audio: {{{#!bash # Set zero cross detect gain amixer -c 0 sset Headphone Playback ZC 60% # unmute output amixer -c 0 sset Headphone on # set output level to max amixer -c 0 sset PCM 100% }}} In addition, you will also have to make a change to your device tree file in the kernel. Below is a sample patch of what you will have to do (filename depends on product you've ordered) {{{ #!diff diff --git a/arch/arm/boot/dts/imx6qdl-gw52xx.dtsi b/arch/arm/boot/dts/imx6qdl-gw52xx.dtsi index ed71beb..1c0b229 100644 --- a/arch/arm/boot/dts/imx6qdl-gw52xx.dtsi +++ b/arch/arm/boot/dts/imx6qdl-gw52xx.dtsi @@ -109,7 +109,7 @@ audio-codec = <&codec>; audio-routing = "LINE_IN", "Line In Jack", - "Line Out Jack", "LINE_OUT"; + "Headphone Jack", "HP_OUT"; mux-int-port = <1>; mux-ext-port = <4>; }; }}} The defaults for the analog audio (which are found by running 'amixer' with no args) are: * Output Level (PCM) (0 - 192) * Front Left: Playback 192 [100%] * Front Right: Playback 192 [100%] * disabled * Capture Mux (MIC_IN or LINE_IN) * MIC_IN * Capture Gain (0-15): * Front Left: Capture 5 [33%] * Front Right: Capture 6 [40%] * disabled [=#amixer-hdmi-out] === HDMI (digital audio) === The '''imxhdmisoc''' audio (output only) device can be used to send digital audio to a connected (and unblanked) HDMI monitor that has speakers. The '''tda1997xaudio''' audio (input only) device (on GW5400 models) can be used to capture digital audio from a connected (and unblanked) HDMI source that streams audio. Note that HDMI audio supports multiple sample-rates and the sample-rate available to capture depends on the incoming source stream. The source stream's audio sample rate can be found via sysfs /sys/bus/i2c/drivers/tda1997x/2-0048/audmode [=#alsa-utils] == ALSA utility (alsa-utils package) examples (arecord/aplay) == The alsa-utils package contains the arecord, aplay, amixer applications aplay: * playback pre-recorded sound to analog audio device (GW54xx/GW53xx/GW52xx) {{{ aplay -D sysdefault:CARD=sgtl5000audio /usr/share/sounds/alsa/Front_Center.wav }}} * playback pre-recorded sound to HDMI audio output device {{{ aplay -D sysdefault:CARD=imxhdmisoc /usr/share/sounds/alsa/Front_Center.wav }}} arecord: * record 10 seconds of CD quality audio (16bit, 44.1KHz, stereo) from analog audio device to /tmp/foo.wav {{{ arecord -D sysdefault:CARD=sgtl5000audio -f cd -d 10 -t wav /tmp/foo.wav }}} * make sure you have specified the capture gain and input device (see above) == Codecs == For Codec support (Encoder / Decoder) details please see: * [wiki:ventana/codec Ventana Codecs] [=#gstreamer] == Gstreamer examples == For GStreamer information and examples please see: * [wiki:Yocto/gstreamer/audio GStreamer Audio Wiki Page]