Changes

Jump to: navigation, search

DESK-MX9-L/Peripherals/Audio

6,019 bytes added, 31 January
Created page with "<section begin="History" /> {| style="border-collapse:collapse; " !colspan="4" style="width:100%; text-align:left"; border-bottom:solid 2px #ededed"|History |- !style="border..."
<section begin="History" />
{| style="border-collapse:collapse; "
!colspan="4" style="width:100%; text-align:left"; border-bottom:solid 2px #ededed"|History
|-
!style="border-left:solid 2px #73B2C7; border-right:solid 2px #73B2C7;border-top:solid 2px #73B2C7; border-bottom:solid 2px #73B2C7; background-color:#73B2C7; padding:5px; color:white"|Issue Date
!style="border-left:solid 2px #73B2C7; border-right:solid 2px #73B2C7;border-top:solid 2px #73B2C7; border-bottom:solid 2px #73B2C7; background-color:#73B2C7; padding:5px; color:white"|Notes
|-
! style="border-left:solid 2px #73B2C7; border-right:solid 2px #73B2C7;border-top:solid 2px #73B2C7; border-bottom:solid 2px #73B2C7; background-color:#ededed; padding:5px; color:#000000" |2024/01/31
! style="border-left:solid 2px #73B2C7; border-right:solid 2px #73B2C7;border-top:solid 2px #73B2C7; border-bottom:solid 2px #73B2C7; background-color:#ededed; padding:5px; color:#000000" |DESK-MX9-L 5.0.0 release
|-
|}
<section end="History" />
<section begin="Body" />

==Peripheral Audio ==

Access to the audio interface is provided by ALSA (Advanced Linux Sound Architecture), which consists in a kernel driver and a users space library for application developers. A set of standard tools (alsa-utils) can be used for simple management of the audio codec.

=== Device tree configuration ===

==== AURA SBCX ====
Here below an example of device tree configuration used on standard DAVE's kit for MITO 8M Mini:

From <code>imx8mm-mito8mmini.dts</code> it is possible to find the codec SSI interface configuration:

<pre>
/ {
...
sound {
compatible = "simple-audio-card";
simple-audio-card,format = "i2s";
simple-audio-card,name = "SBCX_TLV320";
simple-audio-card,bitclock-master = <&codec_dai>;
simple-audio-card,frame-master = <&codec_dai>;
simple-audio-card,widgets = "Headphone", "Headphone Jack",
"Line", "Line In",
"Microphone", "Mic Jack";
simple-audio-card,routing = "Speaker", "SPK",
"Headphone Jack", "HPL",
"Headphone Jack", "HPR",
"MIC1LP", "Line In",
"MIC1LM", "Line In",
"MIC1RP", "Mic Jack",
"Mic Jack", "MICBIAS";

simple-audio-card,cpu {
sound-dai = <&sai3>;
};

codec_dai: simple-audio-card,codec {
sound-dai = <&codec>;
system-clock-frequency = <24000000>;
};
};
...
};
...
&sai3 {
#sound-dai-cells = <0>;
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_sai3>;
pinctrl-1 = <&pinctrl_codec_en>;
assigned-clocks = <&clk IMX93_CLK_SAI3>;
assigned-clock-parents = <&clk IMX93_CLK_AUDIO_PLL>;
assigned-clock-rates = <12288000>;
fsl,sai-mclk-direction-output;
status = "okay";
};
...
&lpi2c1 {
...
codec: tlv320aic31xx@18 {
#sound-dai-cells = <0>;
compatible = "ti,tlv320aic3100";
reg = <0x18>;
reset-gpios = <&gpio2 21 GPIO_ACTIVE_LOW>;
HPVDD-supply = <&carrier_reg_3v3>;
SPRVDD-supply = <&carrier_reg_5v0>;
SPLVDD-supply = <&carrier_reg_5v0>;
AVDD-supply = <&carrier_reg_3v3>;
IOVDD-supply = <&carrier_reg_3v3>;
DVDD-supply = <&carrier_reg_1v8>;
};
...
};
...
&iomuxc {
...
pinctrl_sai3: sai3grp {
fsl,pins = <
MX93_PAD_GPIO_IO26__SAI3_TX_SYNC 0x31e
MX93_PAD_GPIO_IO16__SAI3_TX_BCLK 0x31e
MX93_PAD_GPIO_IO17__SAI3_MCLK 0x31e
MX93_PAD_GPIO_IO19__SAI3_TX_DATA00 0x31e
MX93_PAD_GPIO_IO20__SAI3_RX_DATA00 0x31e
>;
};

pinctrl_codec_en: codecen {
fsl,pins = <
MX93_PAD_GPIO_IO21__GPIO2_IO21 0x31e
>;
};
...
};
</pre>

===Accessing the peripheral ===

====Linux messages at boot time====

<pre class="workstation-terminal">
...
[ 2.155123] ALSA device list:
[ 2.162823] #0: SBCX_TLV320
...
</pre>

To list the audio sound cards just use the <code>aplay</code> utility:

<pre class="workstation-terminal">
root@desk-mx93:~# aplay -l
**** List of PLAYBACK Hardware Devices ****
card 0: SBCXTLV320 [SBCX_TLV320], device 0: 42660000.sai-tlv320aic31xx-hifi tlv320aic31xx-hifi-0 [42660000.sai-tlv320aic31xx-hifi tlv320aic31xx-hifi-0]
Subdevices: 1/1
Subdevice #0: subdevice #0
root@desk-mx93:~#
</pre>

====Usage [https://alsa-project.org/wiki/Documentation alsa-utils] ====
In order to unmute the speaker the <code>amixer</code> utility can be used.
<pre class="workstation-terminal">
root@desk-mx93:~# amixer sset "Speaker" on
Simple mixer control 'Speaker',0
Capabilities: pswitch pswitch-joined
Playback channels: Mono
Mono: Playback [on]
root@desk-mx93:~# amixer sset "Speaker Analog" 100
Simple mixer control 'Speaker Analog',0
Capabilities: pvolume pvolume-joined
Playback channels: Mono
Limits: Playback 0 - 127
Mono: Playback 100 [79%] [-13.50dB]
root@desk-mx93:~# amixer sset "Speaker Driver" on 2
Simple mixer control 'Speaker Driver',0
Capabilities: pvolume pvolume-joined pswitch pswitch-joined
Playback channels: Mono
Limits: Playback 0 - 3
Mono: Playback 2 [67%] [18.00dB] [on]
root@desk-mx93:~# amixer sset "DAC" 100
Simple mixer control 'DAC',0
Capabilities: pvolume
Playback channels: Front Left - Front Right
Limits: Playback 0 - 175
Mono:
Front Left: Playback 100 [57%] [-13.50dB]
Front Right: Playback 100 [57%] [-13.50dB]
root@desk-mx93:~# amixer sset "Output Left From Left DAC" on
Simple mixer control 'Output Left From Left DAC',0
Capabilities: pswitch pswitch-joined
Playback channels: Mono
Mono: Playback [on]
root@desk-mx93:~#
</pre>

To perform a sound, execute the command:
<pre class="workstation-terminal">
root@desk-mx93:~# speaker-test sim

speaker-test 1.2.8

Playback device is default
Stream parameters are 48000Hz, S16_LE, 1 channels
Using 16 octaves of pink noise
Rate set to 48000Hz (requested 48000Hz)
Buffer size range from 3848 to 5773
Period size range from 1924 to 1925
Using max buffer size 5772
Periods = 4
was set period_size = 1924
was set buffer_size = 5773
0 - Front Left
</pre>

=== Additional information ===

Information about ''alsa-utils'' can be found on [https://alsa-project.org/wiki/Documentation ALSA project wiki pages]
<section end="Body" />

----

[[Category:AURA SBCX]]
dave_user
226
edits

Navigation menu