Open main menu

DAVE Developer's Wiki β

Changes

DESK-MX6-L/Peripherals/Audio

304 bytes added, 8 January
no edit summary
<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"|Version!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:#edf8fb; padding:5px; color:#000000"|X.Y.Z{{oldid|14107|2021/07/14}}|style="border-left:solid 2px #73B2C7; border-right:solid 2px #73B2C7;border-top:solid 2px #73B2C7; border-bottom:solid 2px #73B2C7; background-color:#edf8fb; padding:5px; color:#000000"|Month Year|style="border-left:solid 2px #73B2C7; border-right:solid 2px #73B2C7;border-top:solid 2px #73B2C7; borderFirst DESK-bottom:solid 2px #73B2C7; backgroundMX6-color:#edf8fb; padding:5px; color:#000000"|TBDL release
|-
| style="border-left:solid 2px #73B2C7; border-right:solid 2px #73B2C7;border-top:solid 2px #73B2C7; border-bottom:solid 2px #73B2C7; background-color:#edf8fb; padding:5px; color:#000000" |{{oldid|16994|2022/03/03}}
| style="border-left:solid 2px #73B2C7; border-right:solid 2px #73B2C7;border-top:solid 2px #73B2C7; border-bottom:solid 2px #73B2C7; background-color:#edf8fb; padding:5px; color:#000000" |DESK-MX6-L 3.0.0 release
|-
|style="border-left:solid 2px #73B2C7; border-right:solid 2px #73B2C7;border-top:solid 2px #73B2C7; border-bottom:solid 2px #73B2C7; background-color:#edf8fb; padding:5px; color:#000000"|[TBD_link X.Y.Z]|style="border-left:solid 2px #73B2C7; border-right:solid 2px #73B2C7;border-top:solid 2px #73B2C7; border-bottom:solid 2px #73B2C7; background-color:#edf8fb; padding:5px; color:#000000"|Month Year|style="border-left:solid 2px #73B2C7; border-right:solid 2px #73B2C7;border-top:solid 2px #73B2C7; border-bottom:solid 2px #73B2C7; background-color:#edf8fb; padding:5px; color:#000000"|TBD|-|! style="border-left:solid 2px #73B2C7; border-right:solid 2px #73B2C7;border-top:solid 2px #73B2C7; border-bottom:solid 2px #73B2C7; background-color:#edf8fbededed; padding:5px; color:#000000"|...2023/04/07|! style="border-left:solid 2px #73B2C7; border-right:solid 2px #73B2C7;border-top:solid 2px #73B2C7; border-bottom:solid 2px #73B2C7; background-color:#edf8fbededed; padding:5px; color:#000000"|...|style="border-left:solid 2px #73B2C7; border-right:solid 2px #73B2C7;border-top:solid 2px #73B2C7; borderDESK-bottom:solid 2px #73B2C7; backgroundMX6-color:#edf8fb; padding:5px; color:#000000"|.L 4.0.0 release
|-
|}
<section end="History" /><section begin="Body" />
==Peripheral Audio ==
''TBD: sostituire tutti i dump con le informazioni sull'uso della periferica''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 ===
Here below an example of device tree configuration used on standard DAVE's kit for the AXEL Lite SOM:
From <code>''carrierimx6qdl-sbcx-revb-common.dts''dtsi</code>it is possible to find the codec SSI interface configuration:
<pre>
sound { compatible = "fsl,imx-audio-tlv320aic31xx"; model = "sbcx-audio-tlv320aic3100"; ssi-controller = <&can1 ssi1>; audio-codec = <&codec>; audio-routing = "Speaker", "SPK", "Headphone Jack", "HPL", "Headphone Jack", "HPR", "MIC1LP", "Line In", "MIC1LM", "Line In", "MIC1RP", "Mic Jack", "Mic Jack", "MICBIAS"; mux-int-port = <1>; mux-ext-port = <3>; status = "okay"; };......&audmux {
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_flexcan1_axelpinctrl_tlv320aic3x_1>;
status = "okay";
};
</pre>
From &ssi1 { status = "okay";};......&iomuxc { pinctrl-names = "default"; pinctrl-0 = <code&pinctrl_hog_sbcx &pinctrl_hog_sbcx_one_piece>''carrier;...... tlv320aic3x { pinctrl_tlv320aic3x_1: tlv320aic3x_codecgrp-common.dtsi''1{ fsl,pins = </code>: MX6QDL_PAD_CSI0_DAT5__AUD3_TXD 0x130b0 MX6QDL_PAD_CSI0_DAT6__AUD3_TXFS 0x130b0 MX6QDL_PAD_CSI0_DAT7__AUD3_RXD 0x130b0 MX6QDL_PAD_CSI0_DAT4__AUD3_TXC 0x130b0 MX6QDL_PAD_GPIO_3__XTALOSC_REF_CLK_24M 0x130b0
<pre> can1 { pinctrl_flexcan1_axel: flexcan1axelgrp-1 { fsl,pins = < MX6QDL_PAD_GPIO_7__FLEXCAN1_TX 0x80000000 MX6QDL_PAD_GPIO_8__FLEXCAN1_RX 0x80000000MX6QDL_PAD_GPIO_4__GPIO1_IO04 0x130b0
>;
};
};
 
</pre>
===Accessing the peripheral===
 
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.
 
====Linux messages at boot time====
...
...
[ 14.807495408197] flexcan 2090000fsl-ssi-dai 2028000.flexcanssi: 2090000.flexcan supply xceiver not found, using dummy regulator[ 1.817366] flexcan 2090000.flexcan: device registered (reg_base=c0a30000No cache defaults, irq=31)reading back from HW
...
...
[ 34.952659964996] canALSA device list: controller area network core (rev 20170425 abi 9)[ 34.963413971421] can #0: raw protocol (rev 20170425)[ 3.967717] can: broadcast manager protocol (rev 20170425 t)[ 3.973397] can: netlink gateway (rev 20170425) max_hops=1sbcx-audio-tlv320aic3100
</pre>
====Enable To list the interface and check status====audio sound cards just use the <code>aplay</code> utility: 
<pre class="workstation-terminal">
root@imx6qxelkdesk-mx6:~# ip link set can0 type can bitrate 500000aplay -lroot@imx6qxelk:~# ifconfig can0 up**** List of PLAYBACK Hardware Devices ****root@imx6qxelkcard 0:~# ifconfig can0can0 Link encap:UNSPEC HWaddr 00sbcxaudiotlv320 [sbcx-00audio-00tlv320aic3100], device 0: HiFi tlv320aic31xx-00hifi-000 [HiFi tlv320aic31xx-00hifi-00-00-00-00-00-00-00-00-00-000] UP RUNNING NOARP MTU:16 Metric Subdevices:1/1 RX packets: Subdevice #0 errors:0 dropped:0 overruns:0 frame:subdevice #0 TX packets:0 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:10 RX bytes:0 (0.0 B) TX bytes:0 (0.0 B) Interrupt:31</pre>
root@imx6qxelk====Usage [https:~#</pre>/alsa-project.org/wiki/SoundcardTesting speaker-test (from alsa-utils)] ====
<pre class==== Usage with [https"workstation-terminal">root@desk-mx6://github.com/linux-can/can~# speaker-utils cantest -utils] ====t sine
''TBD: reference verso eventuali informazioni sul web''speaker-test 1.2.6
<pre classPlayback device is defaultStream parameters are 48000Hz, S16_LE, 1 channelsSine wave rate is 440.0000HzRate set to 48000Hz (requested 48000Hz)Buffer size range from 3840 to 5760Period size range from 1920 to 1920Using max buffer size 5760Periods ="workstation-terminal">4root@imx6qxelk:~# ip link was set can0 type can bitrate 500000 triple-sampling onperiod_size = 1920root@imx6qxelk:~# ifconfig can0 upwas set buffer_size = 5760root@imx6qxelk:~# cansend can0 128#1122334455667788 0 - Front Leftroot@imx6qxelk:~# candump can0Time per period = 2.889438 can0 128 [8] 11 22 33 44 55 66 77 88...root@imx6qxelk:~# ...
</pre>
 
In order to unmute the speaker the <code>alsamixer</code> utility can be used.
=== Additional information ===
Each CAN port appears like a networking interface in the form <code>canX</code> where <b><i>X</i></b> is the port number.
Information about programming the CAN socket interface is given in the kernel tree under ''Documentationalsa-utils'' can be found on [https:/networking/canalsa-project.txt''org/wiki/Documentation ALSA project wiki pages]<section end="Body" />
----
[[Category:AXEL Lite]]
8,226
edits