<?xml-stylesheet type="text/xsl" href="https://community.element14.com/cfs-file/__key/system/syndication/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>BBB - Building a DAC</title><link>/products/devtools/single-board-computers/next-genbeaglebone/b/blog/posts/bbb---building-a-dac</link><description>IntroductionThis project was about getting audio out of the BeagleBone Black. The aim was to have stereo audio, at least as good as an iPod. See further below for the circuit, and also a video showing it working.Later, this project was used to build </description><dc:language>en-US</dc:language><generator>Telligent Community 12</generator><item><title>RE: BBB - Building a DAC</title><link>https://community.element14.com/products/devtools/single-board-computers/next-genbeaglebone/b/blog/posts/bbb---building-a-dac</link><pubDate>Thu, 15 Mar 2018 12:51:42 GMT</pubDate><guid isPermaLink="false">93d5dcb4-84c2-446f-b2cb-99731719e767:f236cf50-b4c4-44ab-8d57-0f93e7dd3acb</guid><dc:creator>jithu_element14</dc:creator><slash:comments>1</slash:comments><description>&lt;p&gt;Hi Shabaz,&lt;/p&gt;&lt;p&gt;I am trying to play audio file mp3 on BBB using PCM5101A using your circuit only. mplayer is playing mp3 which I can see it on console. but I cant hear any sound from the speaker.&lt;/p&gt;&lt;p&gt;I am attaching my kernel logs&lt;/p&gt;&lt;p&gt;debian@beaglebone:~$ uname -a&lt;/p&gt;&lt;p&gt;Linux beaglebone 4.9.45-ti-r57 #1 SMP PREEMPT Fri Aug 25 22:58:38 UTC 2017 armv7l GN&amp;nbsp;&amp;nbsp; U/Linux&lt;/p&gt;&lt;p&gt;debian@beaglebone:~$ cat /etc/debian_version&lt;/p&gt;&lt;p&gt;9.1&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;iam also attaching the results of mplayer command:&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;debian@beaglebone:~$ mplayer -ao alsa -volume 4&amp;nbsp; ring-8-40047.mp3&lt;br /&gt;MPlayer 1.3.0 (Debian), built with gcc-6.2.1 (C) 2000-2016 MPlayer Team&lt;br /&gt;do_connect: could not connect to socket&lt;br /&gt;connect: No such file or directory&lt;br /&gt;Failed to open LIRC support. You will not be able to use your remote control.&lt;/p&gt;&lt;p&gt;Playing ring-8-40047.mp3.&lt;br /&gt;libavformat version 57.56.101 (external)&lt;br /&gt;Mismatching header version 57.56.100&lt;br /&gt;Audio only file format detected.&lt;br /&gt;Load subtitles in ./&lt;br /&gt;==========================================================================&lt;br /&gt;Opening audio decoder: [mpg123] MPEG 1.0/2.0/2.5 layers I, II, III&lt;br /&gt;AUDIO: 44100 Hz, 2 ch, s16le, 64.0 kbit/4.54% (ratio: 8000-&amp;gt;176400)&lt;br /&gt;Selected audio codec: [mpg123] afm: mpg123 (MPEG 1.0/2.0/2.5 layers I, II, III)&lt;br /&gt;==========================================================================&lt;br /&gt;[AO_ALSA] alsa-lib: pcm_plug.c:909:(snd_pcm_plug_hw_refine_cchange) Unable to find a&amp;nbsp;&amp;nbsp; n usable client format&lt;br /&gt;[AO_ALSA] alsa-lib: pcm_plug.c:913:(snd_pcm_plug_hw_refine_cchange) Format: S16_LE&lt;br /&gt;AO: [alsa] 32000Hz 2ch s16le (2 bytes per sample)&lt;br /&gt;[AO_ALSA] Unable to find simple control &amp;#39;PCM&amp;#39;,0.&lt;br /&gt;[AO_ALSA] Available elements for device:&lt;/p&gt;&lt;p&gt;[Mixer] No hardware mixing, inserting volume filter.&lt;br /&gt;Video: no video&lt;br /&gt;Starting playback...&lt;br /&gt;A:&amp;nbsp; 29.2 (29.1) of 29.0 (29.0)&amp;nbsp; 9.9%&lt;/p&gt;&lt;p&gt;&lt;br /&gt;Exiting... (End of file)&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;I am not understanding where is the problem. I just enabled spidev1 on my BBB and did the connections 6 pin connections with the dac and connected speaker also. waiting for your response as soon. I am badly stuck.&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;Thanks in advance,&lt;/p&gt;&lt;p&gt;Jithu&lt;/p&gt;&lt;img src="https://community.element14.com/aggbug?PostID=16130&amp;AppID=80&amp;AppType=Weblog&amp;ContentType=0" width="1" height="1"&gt;</description></item><item><title>RE: BBB - Building a DAC</title><link>https://community.element14.com/products/devtools/single-board-computers/next-genbeaglebone/b/blog/posts/bbb---building-a-dac</link><pubDate>Wed, 03 Feb 2016 12:06:34 GMT</pubDate><guid isPermaLink="false">93d5dcb4-84c2-446f-b2cb-99731719e767:f236cf50-b4c4-44ab-8d57-0f93e7dd3acb</guid><dc:creator>shabaz</dc:creator><slash:comments>0</slash:comments><description>&lt;p&gt;The EAGLE team has a very nice&lt;a class="jive-link-event" href="https://www.element14.com/community/events/4410/l/creating-an-internet-radio-using-a-beagleboneblack-and-eagle-part-1-dec-32015"&gt; video tutorial BBB DAC cape and a complete Internet Radio project&lt;/a&gt; (including touch-screen interface),&lt;/p&gt;&lt;p&gt;and &lt;a class="jive-link-external-small" href="https://github.com/cadsoftcomputer/BBB-Wifi-Radio" rel="nofollow ugc noopener" target="_blank"&gt;github repository&lt;/a&gt;.&lt;/p&gt;&lt;p&gt;&lt;span&gt;[View:/resized-image/__size/620x225/__key/commentfiles/f7d226abd59f475c9d224a79e3f0ec07-f236cf50-b4c4-44ab-8d57-0f93e7dd3acb/8625.contentimage_5F00_186763.png:620:225]&lt;/span&gt;&lt;/p&gt;&lt;img src="https://community.element14.com/aggbug?PostID=16130&amp;AppID=80&amp;AppType=Weblog&amp;ContentType=0" width="1" height="1"&gt;</description></item><item><title>RE: BBB - Building a DAC</title><link>https://community.element14.com/products/devtools/single-board-computers/next-genbeaglebone/b/blog/posts/bbb---building-a-dac</link><pubDate>Wed, 17 Dec 2014 08:27:18 GMT</pubDate><guid isPermaLink="false">93d5dcb4-84c2-446f-b2cb-99731719e767:f236cf50-b4c4-44ab-8d57-0f93e7dd3acb</guid><dc:creator>Former Member</dc:creator><slash:comments>0</slash:comments><description>&lt;p&gt;FIY: There is initial generic driver implementation for connecting BBB to DAC via I2S/DSD/SPDIF interface with clock switching, multichannel support and other nice stuff.&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;a class="jive-link-external-small" href="http://bbb.ieero.com/" rel="nofollow ugc noopener" target="_blank" title="http://bbb.ieero.com/"&gt;http://bbb.ieero.com/&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;It&amp;#39;s based on mainline kernel 3.16.1 with some patches added. There is also pre-built SD card image available, so you can try it easily.&lt;/p&gt;&lt;img src="https://community.element14.com/aggbug?PostID=16130&amp;AppID=80&amp;AppType=Weblog&amp;ContentType=0" width="1" height="1"&gt;</description></item><item><title>RE: BBB - Building a DAC</title><link>https://community.element14.com/products/devtools/single-board-computers/next-genbeaglebone/b/blog/posts/bbb---building-a-dac</link><pubDate>Fri, 12 Dec 2014 06:21:32 GMT</pubDate><guid isPermaLink="false">93d5dcb4-84c2-446f-b2cb-99731719e767:f236cf50-b4c4-44ab-8d57-0f93e7dd3acb</guid><dc:creator>Former Member</dc:creator><slash:comments>1</slash:comments><description>&lt;p&gt;I recently started looking into how to hook a little codec break-out board up to my BBB, and this is a very nice resource. Thanks for sharing your work!&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;I have worked with an OMAP-based board before, and got to spend a bit of time mucking around with the McASP and similar serial audio cores. The McASP in the BBB is actually an extremely flexible interface, and it supports a whole bunch of TDM-style protocols (of which I2S is one) and also AES3/SPDIF directly! Of course, all this flexibility comes with the price of a pretty impenetrable section of the manual.&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;Anyway, for I2S alone there are a bunch of options. You can run it with as few as 3 lines; one for the serialized audio data, one for clocking those bits, and one to define the sample boundaries. These two clocks have a fixed relationship to one another that&amp;#39;s adjustable to account for different sample widths and sample rates (and when you leave the realm of I2S, different numbers of channels as well). You can also configure the *source* of the clock--it can be provided by either end of the link, and it can be provided directly via the sample clock line, or via a separate high-res timer line that will get divided down to form the sample clock. This takes an extra line, but can clock a whole family of sample rates simultaneously via different clock divisors. In fact, pro audio installs often distribute a high-res and high-quality clock via a separate cable from a special device, so that all the media clocks across all the devices are tightly synchronized and nothing requires sample-rate conversion. Of course, it can also be provided by a media-specific oscillator on the board or even a multi-purpose clock that happens to be a multiple of the required sample rate.&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;Beyond the basic clock configuration, there&amp;#39;s a configurable offset from the word clock edge to determine the bit clock edge at which to sample the data, different bit order and padding options, rising vs. falling edge triggers, etc. Basically, you can talk to just about any chip that does some sort of serialized audio format as long as you&amp;#39;re willing to dig into the McASP (and clock configuration/routing registers, perhaps) documentation and the documentation for the other chip. You can probably base your work on an existing kernel audio driver, but it&amp;#39;s likely you&amp;#39;ll have to get your hands a bit dirty unless you&amp;#39;re doing something very close to what&amp;#39;s in some current driver.&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;Hopefully you or some of your other visitors will find this information useful, and I would be happy to answer any questions about the bits of McASP and serial audio protocols I am familiar with.&lt;/p&gt;&lt;img src="https://community.element14.com/aggbug?PostID=16130&amp;AppID=80&amp;AppType=Weblog&amp;ContentType=0" width="1" height="1"&gt;</description></item><item><title>RE: BBB - Building a DAC</title><link>https://community.element14.com/products/devtools/single-board-computers/next-genbeaglebone/b/blog/posts/bbb---building-a-dac</link><pubDate>Tue, 11 Nov 2014 19:09:43 GMT</pubDate><guid isPermaLink="false">93d5dcb4-84c2-446f-b2cb-99731719e767:f236cf50-b4c4-44ab-8d57-0f93e7dd3acb</guid><dc:creator>Former Member</dc:creator><slash:comments>1</slash:comments><description>&lt;p&gt;Hello all.&amp;nbsp; I am way below the electronics know-how displayed in this thread, but I was hoping one of you could help this electronics novice.&amp;nbsp; I was wondering if you knew that the Sonos Play:1 device uses the same DAC chip from TI (PCM5101A).&amp;nbsp; I have an interest in adding digital and analog audio outputs to the Sonos device.&amp;nbsp; I believe that I can simply tap into pins 6,7, and 9 for the analog output.&amp;nbsp; Would I have to use any resistance or capacitance, or simply solder them to the leads (RCA or 3.5mm plug)?&amp;nbsp; Also, if I wanted a digital output that I could connect to an AV receiver, could i use the I2S (pins 12-16) to tap this, or would I need to build some sort of I2S to S/PDIF circuit?&amp;nbsp; Sorry if my questions are very elementary, please be gentle.&amp;nbsp; I would greatly appreciate you pointing me in the right direction.&amp;nbsp; I have asked this question at &lt;a class="jive-link-external-small" href="http://www.avsforum.com/forum/39-networking-media-servers-content-streaming/1074710-official-sonos-owners-thread-38.html#post28936218" rel="nofollow ugc noopener" target="_blank" title="http://www.avsforum.com/forum/39-networking-media-servers-content-streaming/1074710-official-sonos-owners-thread-38.html#post28936218"&gt;Official SONOS owners thread - Page 38 - AVS Forum&lt;/a&gt; with no answer.&amp;nbsp; Thanks in advance.&lt;/p&gt;&lt;img src="https://community.element14.com/aggbug?PostID=16130&amp;AppID=80&amp;AppType=Weblog&amp;ContentType=0" width="1" height="1"&gt;</description></item><item><title>RE: BBB - Building a DAC</title><link>https://community.element14.com/products/devtools/single-board-computers/next-genbeaglebone/b/blog/posts/bbb---building-a-dac</link><pubDate>Tue, 22 Jul 2014 10:36:34 GMT</pubDate><guid isPermaLink="false">93d5dcb4-84c2-446f-b2cb-99731719e767:f236cf50-b4c4-44ab-8d57-0f93e7dd3acb</guid><dc:creator>Former Member</dc:creator><slash:comments>1</slash:comments><description>&lt;p&gt;Hi,&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;first thanks for these great articles. I would like to know, if you had to modify the devicetree to get I2S working amd if the driver is automatically mounted. Do you know if this works with Debian too?&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;Best&lt;/p&gt;&lt;p&gt;Tom&lt;/p&gt;&lt;img src="https://community.element14.com/aggbug?PostID=16130&amp;AppID=80&amp;AppType=Weblog&amp;ContentType=0" width="1" height="1"&gt;</description></item><item><title>RE: BBB - Building a DAC</title><link>https://community.element14.com/products/devtools/single-board-computers/next-genbeaglebone/b/blog/posts/bbb---building-a-dac</link><pubDate>Sat, 08 Feb 2014 00:24:57 GMT</pubDate><guid isPermaLink="false">93d5dcb4-84c2-446f-b2cb-99731719e767:f236cf50-b4c4-44ab-8d57-0f93e7dd3acb</guid><dc:creator>Former Member</dc:creator><slash:comments>1</slash:comments><description>&lt;p&gt;Here&amp;#39;s a first draft of my implementation document. It is plain text; I need to HTML-ify it and figure out how to post to github. But I wanted to get the info out there, since you guys seem interested. You can do me a favor by proofreading and critiquing it.&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;This document explains how to attach an external cs4271 codec to a Beaglebone Black (BBB) and create an audio device that uses the cs4271. Currently I have a working cs4271 on a breadboard connected to the mcasp0 and i2c2 pins header pins. The cs4271 is acting as clock master and can be instructed via ALSA to play or capture audio at 48, 96, and 192 kHz and 16 or 24 bits. There are several quirks that need to be fixed and improvements that need to be made, but there is enough information here to serve as a complete working example of a BBB audio device.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;On BBB, an audio device is actually a composite of several hardware devices with some glue code to interface&amp;nbsp; the pieces. Mcasp takes care of framing and clocking, and sending/receiving an I2S audio stream to/from the codec. Mcasp uses the edma engine to do the audio file I/O. What we need to do to create an audio device is to instruct the OS how to communicate with the external codec and instruct mcasp on how to format and control the bitstream and how to configure the codec.&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;span&gt;Hardware. The cs4271 sound card is built on a breadboard following the example circuitry shown in the reference document or the codec: &lt;/span&gt;&lt;a class="jive-link-external-small" href="http://www.cirrus.com/en/pubs/proDatasheet/CS4271_F1.pdf" rel="nofollow" target="_blank"&gt;http://www.cirrus.com/en/pubs/proDatasheet/CS4271_F1.pdf&lt;/a&gt;&lt;span&gt;. This codec has 2 channels of ADC and two channels of DAC. The data interface is I2S and the control interface can be either I2C or SPI. I chose to use I2C in this example. An external crystal can be attached to the cs4271 to generate the master clock. The codec can act as either a clock master or clock slave; I chose to make it a clock master. I expect a locally generated master clock would have less jitter than the mcasp generated master clock. However, clocking from the mcasp ought to work perfectly well.&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;Physical interface. Jumper wires are attached from the cs4271 to the BBB header for the following signals:&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp; codec&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; BBB mcasp0&lt;br /&gt;&amp;nbsp; lrclk (4) -&amp;gt;&amp;nbsp; fsx (P9.29) and fsr (P9.27)&lt;br /&gt;&amp;nbsp; sclk&amp;nbsp; (5) -&amp;gt;&amp;nbsp; aclkx (P9.31) and aclkr (P9.42)&lt;br /&gt;&amp;nbsp; sdout (6) -&amp;gt;&amp;nbsp; axr2 (P9.28)&lt;br /&gt;&amp;nbsp; sdin (7)&amp;nbsp; &amp;lt;-&amp;nbsp; axr3 (P9.25)&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp; codec&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; BBB I2C2&lt;br /&gt;&amp;nbsp; scl (11) &amp;lt;-&amp;gt;&amp;nbsp; scl (P9.19) (10k ohm pullup may be needed)&lt;br /&gt;&amp;nbsp; sda (12) &amp;lt;-&amp;gt;&amp;nbsp; sca (P9.20) (10k ohm pullup may be needed)&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp; codec&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; BBB GPIO&lt;br /&gt;&amp;nbsp; rst (14)&amp;nbsp; &amp;lt;-&amp;nbsp; gpio0-5 (P9.17)&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp; codec&lt;br /&gt;&amp;nbsp; ad0 (13)&amp;nbsp; &amp;lt;-&amp;nbsp; ground (to set the I2C address)&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;Note 1. cs4271 mclk out is not connected. The mcasp0 does not need it, apparently getting its internal timing from the codec sclk signal.&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;Note 2. Without the 10k ohm pullup resistors, the cs4271 did not respond to I2C addresses. It looks like the cs4271 needs a faster rise time on scl and sca than is obtained from the BBB internal pullups. This might not be necessary with other codecs.&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;If it is desired to make the codec a clock slave instead of master, some changes are needed to the connections. In particular mclk, lrclk, and sclk will be inputs to the codec. There will also be changes to some kernel modules and the device tree overlay for the codec. I have not tried this, but I have noted some things that must be considered in a later section.&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;Device tree overlay. A device tree overlay needs to be set up that describes the signals, the pin modes, and some device settings. The device tree overlay used in the example is given in appendix A. Note that, since the driver module for the cs4271 (snd-soc-cs4271) is a loadable module, the device tree overlay needs to tell the OS to load the module. This is done by listing the name of the module in the exclusive-use clause of the overlay.&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;span&gt;Kernel code changes. A few kernel routines needed to be changed. To do this you will need to rebuild the kernel from source. The best set of instructions that I have found for this purpose are Robert Nelson&amp;#39;s, at &lt;/span&gt;&lt;a class="jive-link-external-small" href="http://eewiki.net/display/linuxonarm/BeagleBone+Black" rel="nofollow" target="_blank"&gt;http://eewiki.net/display/linuxonarm/BeagleBone+Black&lt;/a&gt;&lt;span&gt;. It really isn&amp;#39;t that hard to build your own kernel. You could even do it on the BBB itself, if you don&amp;#39;t mind waiting a a day for the first compilation. However I did it on a fast deskside Linux server, where a full kernel build takes around half an hour. The following kernel files were changed:&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;Configuration: When you do a build, you are initially offered a menu for changing the kernel configuration. You need to enable building of the asoc codec drivers the first time. Select Device Drivers - Sound card support - Advanced Linux Sound Architectue - ALSA for SoC audio support - Build all ASoC CODEC drivers &amp;lt;M&amp;gt; for modularize. Of course you could just build all the codecs into the kernel, but this wastes space as well as forcing you to rebuild the whole kernel if you want to change something, instead of just rebuilding a single module.&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;Files to change. Patch files in Appendix B.&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;KERNEL/sound/soc/codecs/cs4271.c:&lt;br /&gt; fix the codec register addresses&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;KERNEL/sound/soc/davinci/davinci-evm.c:&lt;br /&gt; change the audio format to LEFT_J, which cs4271 recognizes&lt;br /&gt; fix setting of sysclk and clkdiv&lt;br /&gt; change the codec name to cs4271&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;KERNEL/sound/soc/davinci/davinci-mcasp.c:&lt;br /&gt; make mcasp a clock slave instead of master&lt;br /&gt; change I2S format to left-justified&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;Installing the updated kernel on a BBB. Building the kernel generates a directory named &amp;quot;deploy,&amp;quot; which contains the new kernel, modules, and device tree files. These have to be copied to the appropriate system locations. I use the following little script (you may have to install rsync):&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;commands, as root on BBB:&lt;br /&gt;Note 1. change the source directory to your deploy.&lt;br /&gt;Note 2. change the system version if necessary.&lt;br /&gt;Note 3. you should back up the old versions of these.&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;---&lt;br /&gt;rsync -a /home/jsr/deploy/3.8.13-bone36.zImage /boot&lt;br /&gt;cd /lib/firmware&lt;br /&gt;tar -xzf /home/jsr/deploy/3.8.13-bone36-firmware.tar.gz&lt;br /&gt;cd /&lt;br /&gt;tar -xzf /home/jsr/deploy/3.8.13-bone36-modules.tar.gz&lt;br /&gt;cd /boot/dtbs-3.8.13-bone36&lt;br /&gt;tar -xzf /home/jsr/deploy/3.8.13-bone36-dtbs.tar.gz&lt;br /&gt;---&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;Using the audio device. You have to disable HDMI because it has some pin conflicts with the audio driver. Reboot into new OS and &amp;#39;echo jsr-cs4271 &amp;gt;$slots&amp;#39; where slots is your /sys/devices/bone_capemgr.9/slots file. That&amp;#39;s it, your are ready to use the new audio device.&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;#39;aplay -L&amp;#39; will list the current audio devices&lt;br /&gt;---&lt;br /&gt;jsr@bone:~$ aplay -L&lt;br /&gt;null&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Discard all samples (playback) or generate zero samples (capture)&lt;br /&gt;default:CARD=EVM&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; DA830 EVM, &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Default Audio Device&lt;br /&gt;sysdefault:CARD=EVM&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; DA830 EVM, &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Default Audio Device&lt;br /&gt;dmix:CARD=EVM,DEV=0&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; DA830 EVM, &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Direct sample mixing device&lt;br /&gt;dsnoop:CARD=EVM,DEV=0&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; DA830 EVM, &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Direct sample snooping device&lt;br /&gt;hw:CARD=EVM,DEV=0&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; DA830 EVM, &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Direct hardware device without any conversions&lt;br /&gt;plughw:CARD=EVM,DEV=0&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; DA830 EVM, &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Hardware device with all software conversions&lt;br /&gt;---&lt;br /&gt;&amp;#39;&lt;br /&gt;aplay bach.wav&amp;#39; will play a .wav file. Although it might instead complain &amp;quot;Unable to install hw params&amp;quot; if your audio device does not support the rate and bit-width of the source .wav file. In that case you&amp;#39;ll need a converter program or plugin to convert the audio to a hardware compatible form. Here&amp;#39;s how to make a simple rate converter: In your home directory, create a file &amp;#39;.asound.rc&amp;#39; with the following contents:&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;---&lt;br /&gt;pcm_slave.sl2 {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; pcm default&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; rate 96000&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; format S32_LE&lt;br /&gt;}&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;pcm.rate_convert {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; type plug&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; slave sl2&lt;br /&gt;}&lt;br /&gt;---&lt;br /&gt;Now play your .wav file with the command &amp;#39;aplay -D rate_convert bach.wav&amp;#39;. Alsa will insert a (crappy) rate converter and sample expander into the audio stream and play your (probably 44.1 kHz, 16 bits) file at 96 kHz, 32 bits format. You can add a -v option to see what the plugin is doing and what the actual hardware parameters are. For example &amp;#39;aplay -v -D rate_convert bach.wav&amp;#39; produces:&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;---&lt;br /&gt;Playing WAVE &amp;#39;bach.wav&amp;#39; : Signed 16 bit Little Endian, Rate 44100 Hz, Stereo&lt;br /&gt;Plug PCM: Rate conversion PCM (96000, sformat=S32_LE)&lt;br /&gt;Converter: linear-interpolation&lt;br /&gt;Protocol version: 10002&lt;br /&gt;Its setup is:&lt;br /&gt;&amp;nbsp; stream&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; : PLAYBACK&lt;br /&gt;&amp;nbsp; access&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; : RW_INTERLEAVED&lt;br /&gt;&amp;nbsp; format&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; : S16_LE&lt;br /&gt;&amp;nbsp; subformat&amp;nbsp;&amp;nbsp;&amp;nbsp; : STD&lt;br /&gt;&amp;nbsp; channels&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; : 2&lt;br /&gt;&amp;nbsp; rate&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; : 44100&lt;br /&gt;&amp;nbsp; exact rate&amp;nbsp;&amp;nbsp; : 44100 (44100/1)&lt;br /&gt;&amp;nbsp; msbits&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; : 16&lt;br /&gt;&amp;nbsp; buffer_size&amp;nbsp; : 7526&lt;br /&gt;&amp;nbsp; period_size&amp;nbsp; : 470&lt;br /&gt;&amp;nbsp; period_time&amp;nbsp; : 10666&lt;br /&gt;&amp;nbsp; tstamp_mode&amp;nbsp; : NONE&lt;br /&gt;&amp;nbsp; period_step&amp;nbsp; : 1&lt;br /&gt;&amp;nbsp; avail_min&amp;nbsp;&amp;nbsp;&amp;nbsp; : 470&lt;br /&gt;&amp;nbsp; period_event : 0&lt;br /&gt;&amp;nbsp; start_threshold&amp;nbsp; : 7526&lt;br /&gt;&amp;nbsp; stop_threshold&amp;nbsp;&amp;nbsp; : 7526&lt;br /&gt;&amp;nbsp; silence_threshold: 0&lt;br /&gt;&amp;nbsp; silence_size : 0&lt;br /&gt;&amp;nbsp; boundary&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; : 493223936&lt;br /&gt;Slave: Plug PCM: Hardware PCM card 0 &amp;#39;DA830 EVM&amp;#39; device 0 subdevice 0&lt;br /&gt;Its setup is:&lt;br /&gt;&amp;nbsp; stream&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; : PLAYBACK&lt;br /&gt;&amp;nbsp; access&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; : MMAP_INTERLEAVED&lt;br /&gt;&amp;nbsp; format&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; : S32_LE&lt;br /&gt;&amp;nbsp; subformat&amp;nbsp;&amp;nbsp;&amp;nbsp; : STD&lt;br /&gt;&amp;nbsp; channels&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; : 2&lt;br /&gt;&amp;nbsp; rate&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; : 96000&lt;br /&gt;&amp;nbsp; exact rate&amp;nbsp;&amp;nbsp; : 96000 (96000/1)&lt;br /&gt;&amp;nbsp; msbits&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; : 32&lt;br /&gt;&amp;nbsp; buffer_size&amp;nbsp; : 16384&lt;br /&gt;&amp;nbsp; period_size&amp;nbsp; : 1024&lt;br /&gt;&amp;nbsp; period_time&amp;nbsp; : 10666&lt;br /&gt;&amp;nbsp; tstamp_mode&amp;nbsp; : NONE&lt;br /&gt;&amp;nbsp; period_step&amp;nbsp; : 1&lt;br /&gt;&amp;nbsp; avail_min&amp;nbsp;&amp;nbsp;&amp;nbsp; : 1024&lt;br /&gt;&amp;nbsp; period_event : 0&lt;br /&gt;&amp;nbsp; start_threshold&amp;nbsp; : 16384&lt;br /&gt;&amp;nbsp; stop_threshold&amp;nbsp;&amp;nbsp; : 16384&lt;br /&gt;&amp;nbsp; silence_threshold: 0&lt;br /&gt;&amp;nbsp; silence_size : 0&lt;br /&gt;&amp;nbsp; boundary&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; : 1073741824&lt;br /&gt;&amp;nbsp; appl_ptr&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; : 0&lt;br /&gt;&amp;nbsp; hw_ptr&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; : 0&lt;br /&gt;---&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;Note. I&amp;#39;ve heard there is a much better quality rate converter for alsa than the default linear interpolator, but I don&amp;#39;t know the details.&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;Appendix A. Hints for making the mcasp0 be the clock master. TBD.&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;Appendix B. Patch files for the kernel:&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;======================================&lt;br /&gt;--- KERNEL/sound/soc/davinci/davinci-evm.c&amp;nbsp;&amp;nbsp;&amp;nbsp; 2014-02-07 16:23:30.800284949 -0500&lt;br /&gt;+++ /home/jsr/linux-dev/KERNEL/sound/soc/davinci/davinci-evm.c&amp;nbsp;&amp;nbsp;&amp;nbsp; 2014-02-05 21:19:04.491499253 -0500&lt;br /&gt;@@ -33,8 +33,9 @@&lt;br /&gt; #include &amp;lt;linux/of_gpio.h&amp;gt;&lt;br /&gt; &lt;br /&gt; &lt;br /&gt;-#define AUDIO_FORMAT (SND_SOC_DAIFMT_DSP_B | \&lt;br /&gt;-&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; SND_SOC_DAIFMT_CBM_CFM | SND_SOC_DAIFMT_IB_NF)&lt;br /&gt;+#define AUDIO_FORMAT (SND_SOC_DAIFMT_LEFT_J |&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; \&lt;br /&gt;+&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; SND_SOC_DAIFMT_CBM_CFM | SND_SOC_DAIFMT_NB_NF)&lt;br /&gt;+&lt;br /&gt; static int evm_hw_params(struct snd_pcm_substream *substream,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; struct snd_pcm_hw_params *params)&lt;br /&gt; {&lt;br /&gt;@@ -194,8 +195,30 @@&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; snd_soc_dapm_add_routes(dapm, audio_map, ARRAY_SIZE(audio_map));&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt; &lt;br /&gt;-&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Divide McASP MCLK by 2 to provide 12MHz to codec */&lt;br /&gt;-&amp;nbsp;&amp;nbsp;&amp;nbsp; ret = snd_soc_dai_set_clkdiv(cpu_dai, 0, 2);&lt;br /&gt;+&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Divide McASP MCLK by 2 to provide 12.238 MHz to codec bit clock */&lt;br /&gt;+&amp;nbsp;&amp;nbsp;&amp;nbsp; //ret = snd_soc_dai_set_clkdiv(cpu_dai, 0, 2);&lt;br /&gt;+&amp;nbsp;&amp;nbsp;&amp;nbsp; //if (ret &amp;lt; 0)&lt;br /&gt;+&amp;nbsp;&amp;nbsp;&amp;nbsp; //&amp;nbsp;&amp;nbsp;&amp;nbsp; return ret;&lt;br /&gt;+&lt;br /&gt;+&amp;nbsp;&amp;nbsp;&amp;nbsp; printk(KERN_WARNING &amp;quot;davinci-evm: cs4271 clock init\n&amp;quot;);&lt;br /&gt;+&lt;br /&gt;+&amp;nbsp;&amp;nbsp;&amp;nbsp; ret = snd_soc_dai_set_sysclk(cpu_dai, 0, 0, SND_SOC_CLOCK_OUT);&lt;br /&gt;+&amp;nbsp;&amp;nbsp;&amp;nbsp; if (ret &amp;lt; 0)&lt;br /&gt;+&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return ret;&lt;br /&gt;+&lt;br /&gt;+&amp;nbsp;&amp;nbsp;&amp;nbsp; ret = snd_soc_dai_set_clkdiv(cpu_dai, 0, 1); // div by 2 ahclk = 12.288 MHz&lt;br /&gt;+&amp;nbsp;&amp;nbsp;&amp;nbsp; if (ret &amp;lt; 0)&lt;br /&gt;+&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return ret;&lt;br /&gt;+&lt;br /&gt;+&amp;nbsp;&amp;nbsp;&amp;nbsp; ret = snd_soc_dai_set_clkdiv(cpu_dai, 1, 2); // div by 2 aclk (x 64 bits/frame -&amp;gt; 256 bclk/ahclk)&lt;br /&gt;+&amp;nbsp;&amp;nbsp;&amp;nbsp; if (ret &amp;lt; 0)&lt;br /&gt;+&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return ret;&lt;br /&gt;+&lt;br /&gt;+&amp;nbsp;&amp;nbsp;&amp;nbsp; ret = snd_soc_dai_set_clkdiv(cpu_dai, 2, 64); // div by 64 (bclk/ahclk)&lt;br /&gt;+&amp;nbsp;&amp;nbsp;&amp;nbsp; if (ret &amp;lt; 0)&lt;br /&gt;+&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return ret;&lt;br /&gt;+&lt;br /&gt;+&amp;nbsp;&amp;nbsp;&amp;nbsp; ret = snd_soc_dai_set_fmt(cpu_dai, AUDIO_FORMAT);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (ret &amp;lt; 0)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return ret;&lt;br /&gt; &lt;br /&gt;@@ -376,10 +399,11 @@&lt;br /&gt;&amp;nbsp; * This struct is just used as place holder. It will be filled with&lt;br /&gt;&amp;nbsp; * data from dt node&lt;br /&gt;&amp;nbsp; */&lt;br /&gt;+&lt;br /&gt; static struct snd_soc_dai_link evm_dai = {&lt;br /&gt;-&amp;nbsp;&amp;nbsp;&amp;nbsp; .name&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; = &amp;quot;TLV320AIC3X&amp;quot;,&lt;br /&gt;+&amp;nbsp;&amp;nbsp;&amp;nbsp; .name&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; = &amp;quot;CS4271&amp;quot;,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; .stream_name&amp;nbsp;&amp;nbsp;&amp;nbsp; = &amp;quot;AIC3X&amp;quot;,&lt;br /&gt;-&amp;nbsp;&amp;nbsp;&amp;nbsp; .codec_dai_name&amp;nbsp;&amp;nbsp;&amp;nbsp; = &amp;quot;tlv320aic3x-hifi&amp;quot;,&lt;br /&gt;+&amp;nbsp;&amp;nbsp;&amp;nbsp; .codec_dai_name&amp;nbsp;&amp;nbsp;&amp;nbsp; = &amp;quot;cs4271-hifi&amp;quot;,&lt;br /&gt; };&lt;br /&gt; &lt;br /&gt; /* davinci evm audio machine driver */&lt;br /&gt;======================================&lt;br /&gt;======================================&lt;br /&gt;--- KERNEL/sound/soc/davinci/davinci-mcasp.c&amp;nbsp;&amp;nbsp;&amp;nbsp; 2014-02-07 16:23:31.042282778 -0500&lt;br /&gt;+++ /home/jsr/linux-dev/KERNEL/sound/soc/davinci/davinci-mcasp.c&amp;nbsp;&amp;nbsp;&amp;nbsp; 2014-02-05 21:09:57.568357999 -0500&lt;br /&gt;@@ -392,11 +392,11 @@&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; *&amp;nbsp; the clock source for another device.&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; */&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if((pdir &amp;amp; ACLKR) &amp;amp;&amp;amp; (rclk_reg &amp;amp; ACLKRE)) {&lt;br /&gt;-&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; mcasp_set_ctl_reg(dev-&amp;gt;base + DAVINCI_MCASP_GBLCTLR_REG, RXCLKRST);&lt;br /&gt;+&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; mcasp_set_ctl_reg(dev-&amp;gt;base + DAVINCI_MCASP_GBLCTLX_REG, RXCLKRST);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if((pdir &amp;amp; AHCLKR) &amp;amp;&amp;amp; (rhclk_reg &amp;amp; AHCLKRE)) {&lt;br /&gt;-&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; mcasp_set_ctl_reg(dev-&amp;gt;base + DAVINCI_MCASP_GBLCTLR_REG, RXHCLKRST);&lt;br /&gt;+&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; mcasp_set_ctl_reg(dev-&amp;gt;base + DAVINCI_MCASP_GBLCTLX_REG, RXHCLKRST);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; mcasp_set_ctl_reg(dev-&amp;gt;base + DAVINCI_MCASP_GBLCTLX_REG, TXHCLKRST);&lt;br /&gt;@@ -518,6 +518,7 @@&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; mcasp_clr_bits(dev-&amp;gt;base + DAVINCI_MCASP_TXFMCTL_REG, FSXDUR);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; mcasp_clr_bits(dev-&amp;gt;base + DAVINCI_MCASP_RXFMCTL_REG, FSRDUR);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; break;&lt;br /&gt;+&amp;nbsp;&amp;nbsp;&amp;nbsp; case SND_SOC_DAIFMT_LEFT_J:&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; case SND_SOC_DAIFMT_I2S:&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; mcasp_set_bits(dev-&amp;gt;base + DAVINCI_MCASP_TXFMCTL_REG, FSXDUR);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; mcasp_set_bits(dev-&amp;gt;base + DAVINCI_MCASP_RXFMCTL_REG, FSRDUR);&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;======================================&lt;br /&gt;======================================&lt;br /&gt;--- KERNEL/sound/soc/codecs/cs4271.c&amp;nbsp;&amp;nbsp;&amp;nbsp; 2014-02-07 16:20:47.619748775 -0500&lt;br /&gt;+++ /home/jsr/linux-dev/KERNEL/sound/soc/codecs/cs4271.c&amp;nbsp;&amp;nbsp;&amp;nbsp; 2014-02-05 21:04:05.201931161 -0500&lt;br /&gt;@@ -42,14 +42,14 @@&lt;br /&gt;&amp;nbsp; * High byte represents SPI chip address (0x10) + write command (0)&lt;br /&gt;&amp;nbsp; * Low byte - codec register address&lt;br /&gt;&amp;nbsp; */&lt;br /&gt;-#define CS4271_MODE1&amp;nbsp;&amp;nbsp;&amp;nbsp; 0x2001&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Mode Control 1 */&lt;br /&gt;-#define CS4271_DACCTL&amp;nbsp;&amp;nbsp;&amp;nbsp; 0x2002&amp;nbsp;&amp;nbsp;&amp;nbsp; /* DAC Control */&lt;br /&gt;-#define CS4271_DACVOL&amp;nbsp;&amp;nbsp;&amp;nbsp; 0x2003&amp;nbsp;&amp;nbsp;&amp;nbsp; /* DAC Volume &amp;amp; Mixing Control */&lt;br /&gt;-#define CS4271_VOLA&amp;nbsp;&amp;nbsp;&amp;nbsp; 0x2004&amp;nbsp;&amp;nbsp;&amp;nbsp; /* DAC Channel A Volume Control */&lt;br /&gt;-#define CS4271_VOLB&amp;nbsp;&amp;nbsp;&amp;nbsp; 0x2005&amp;nbsp;&amp;nbsp;&amp;nbsp; /* DAC Channel B Volume Control */&lt;br /&gt;-#define CS4271_ADCCTL&amp;nbsp;&amp;nbsp;&amp;nbsp; 0x2006&amp;nbsp;&amp;nbsp;&amp;nbsp; /* ADC Control */&lt;br /&gt;-#define CS4271_MODE2&amp;nbsp;&amp;nbsp;&amp;nbsp; 0x2007&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Mode Control 2 */&lt;br /&gt;-#define CS4271_CHIPID&amp;nbsp;&amp;nbsp;&amp;nbsp; 0x2008&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Chip ID */&lt;br /&gt;+#define CS4271_MODE1&amp;nbsp;&amp;nbsp;&amp;nbsp; 0x0001&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Mode Control 1 */&lt;br /&gt;+#define CS4271_DACCTL&amp;nbsp;&amp;nbsp;&amp;nbsp; 0x0002&amp;nbsp;&amp;nbsp;&amp;nbsp; /* DAC Control */&lt;br /&gt;+#define CS4271_DACVOL&amp;nbsp;&amp;nbsp;&amp;nbsp; 0x0003&amp;nbsp;&amp;nbsp;&amp;nbsp; /* DAC Volume &amp;amp; Mixing Control */&lt;br /&gt;+#define CS4271_VOLA&amp;nbsp;&amp;nbsp;&amp;nbsp; 0x0004&amp;nbsp;&amp;nbsp;&amp;nbsp; /* DAC Channel A Volume Control */&lt;br /&gt;+#define CS4271_VOLB&amp;nbsp;&amp;nbsp;&amp;nbsp; 0x0005&amp;nbsp;&amp;nbsp;&amp;nbsp; /* DAC Channel B Volume Control */&lt;br /&gt;+#define CS4271_ADCCTL&amp;nbsp;&amp;nbsp;&amp;nbsp; 0x0006&amp;nbsp;&amp;nbsp;&amp;nbsp; /* ADC Control */&lt;br /&gt;+#define CS4271_MODE2&amp;nbsp;&amp;nbsp;&amp;nbsp; 0x0007&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Mode Control 2 */&lt;br /&gt;+#define CS4271_CHIPID&amp;nbsp;&amp;nbsp;&amp;nbsp; 0x0008&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Chip ID */&lt;br /&gt; &lt;br /&gt; #define CS4271_FIRSTREG&amp;nbsp;&amp;nbsp;&amp;nbsp; CS4271_MODE1&lt;br /&gt; #define CS4271_LASTREG&amp;nbsp;&amp;nbsp;&amp;nbsp; CS4271_MODE2&lt;br /&gt;======================================&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;Appendix C. The device tree overlay.&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;/*&lt;br /&gt;* Copyright (C) 2014 John Rhoades&lt;br /&gt;*&lt;br /&gt;* This program is free software; you can redistribute it and/or modify&lt;br /&gt;* it under the terms of the GNU General Public License version 2 as&lt;br /&gt;* published by the Free Software Foundation.&lt;br /&gt;*/&lt;br /&gt;/dts-v1/;&lt;br /&gt;/plugin/;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;/ {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; compatible = &amp;quot;ti,beaglebone-black&amp;quot;;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; part-number = &amp;quot;jsr-cs4271&amp;quot;;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; version = &amp;quot;00A0&amp;quot;;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* state the resources this cape uses */&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; exclusive-use =&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* the pin header uses */&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;quot;P9.17&amp;quot;,&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* cs4271 reset */&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* i2c2 */&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;quot;P9.19&amp;quot;,&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* i2c2: scl */&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;quot;P9.20&amp;quot;,&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* i2c2: sca */&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* mcasp0 */&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;quot;P9.31&amp;quot;,&amp;nbsp;&amp;nbsp;&amp;nbsp; /* mcasp0: aclkx&amp;nbsp; 0x190 */&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;quot;P9.29&amp;quot;,&amp;nbsp;&amp;nbsp;&amp;nbsp; /* mcasp0: fsx&amp;nbsp;&amp;nbsp;&amp;nbsp; 0x194 */&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* not used &amp;quot;P9.30&amp;quot;,&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* mcasp0: axr0&amp;nbsp;&amp;nbsp; 0x198 */&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;quot;P9.28&amp;quot;,&amp;nbsp;&amp;nbsp;&amp;nbsp; /* mcasp0: axr2&amp;nbsp;&amp;nbsp; 0x19c */&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;quot;P9.42&amp;quot;,&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* mcasp0: aclkr&amp;nbsp; 0x1a0 */&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;quot;P9.27&amp;quot;,&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* mcasp0: fsr&amp;nbsp;&amp;nbsp;&amp;nbsp; 0x1a4 */&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* not used &amp;quot;P9.41&amp;quot;,&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* mcasp0: axr1&amp;nbsp;&amp;nbsp; 0x1a8 */&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;quot;P9.25&amp;quot;,&amp;nbsp;&amp;nbsp;&amp;nbsp; /* mcasp0: axr3&amp;nbsp;&amp;nbsp; 0x1ac */&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* the hardware IP uses */&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;quot;gpio1_27&amp;quot;,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;quot;snd-soc-cs4271&amp;quot;, // needed to get module loaded&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;quot;mcasp0&amp;quot;;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; fragment@0 {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; target = &amp;lt;&amp;amp;am33xx_pinmux&amp;gt;;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; __overlay__ {&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; cs4271_i2c2_reset: cs4271_i2c2_reset {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; pinctrl-single,pins = &amp;lt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0x078 0x0f&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* gpio0_5, mode7 */&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;gt;;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; };&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; cs4271_i2c2_pins: cs4271_i2c2_pins {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; pinctrl-single,pins = &amp;lt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0x178 0x73&amp;nbsp;&amp;nbsp;&amp;nbsp; /* I2C2_sda */&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0x17c 0x73&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* I2C2_scl */&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;gt;;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; };&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; mcasp0_pins: mcasp0_pins {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; pinctrl-single,pins = &amp;lt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0x190 0x20&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* P9.31 mcasp0 0-&amp;gt;aclkx&amp;nbsp;&amp;nbsp; */&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0x194 0x20&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* P9.29 mcasp0 0-&amp;gt;fsx&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; */&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0x198 0x20&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* P9.30 mcasp0 0-&amp;gt;axr0&amp;nbsp;&amp;nbsp;&amp;nbsp; */&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0x19c 0x22&amp;nbsp;&amp;nbsp;&amp;nbsp; /* P9.28 mcasp0 0-&amp;gt;ahclkr, 2-&amp;gt;axr2&amp;nbsp; */&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0x1a0 0x20&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* P9.42 mcasp0 0-&amp;gt;aclkr,&amp;nbsp; 2-&amp;gt;axr2&amp;nbsp; */&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0x1a4 0x20&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* P9.27 mcasp0 0-&amp;gt;fsr,&amp;nbsp;&amp;nbsp;&amp;nbsp; 2-&amp;gt;axr3&amp;nbsp; */&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0x1a8 0x20&amp;nbsp;&amp;nbsp;&amp;nbsp; /* P9.41 mcasp0 0-&amp;gt;axr1&amp;nbsp;&amp;nbsp;&amp;nbsp; */&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0x1ac 0x22&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* P9.25 mcasp0 0-&amp;gt;ahclkx, 2-&amp;gt;axr3&amp;nbsp; */&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;gt;;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; };&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; };&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; };&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; fragment@2 {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; target = &amp;lt;&amp;amp;i2c2&amp;gt;;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; __overlay__ {&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; #address-cells = &amp;lt;1&amp;gt;;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; #size-cells = &amp;lt;0&amp;gt;;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; cs4271: cs4271@10 {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; compatible = &amp;quot;ti,cs4271&amp;quot;;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; reg = &amp;lt;0x10&amp;gt;;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; status = &amp;quot;okay&amp;quot;;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; };&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; };&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; };&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; fragment@3 {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; target = &amp;lt;&amp;amp;mcasp0&amp;gt;;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; __overlay__ {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; pinctrl-names = &amp;quot;default&amp;quot;;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; pinctrl-0 = &amp;lt;&amp;amp;mcasp0_pins&amp;gt;;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; status = &amp;quot;okay&amp;quot;;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; op-mode = &amp;lt;0&amp;gt;;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* MCASP_I2S_MODE */&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; tdm-slots = &amp;lt;2&amp;gt;;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; num-serializer = &amp;lt;16&amp;gt;;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; serial-dir = &amp;lt;&amp;nbsp; /* 0: INACTIVE, 1: TX, 2: RX */&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0 0 2 1 /* axr2: capture data, axr3: play data */&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0 0 0 0&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0 0 0 0&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0 0 0 0&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;gt;;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; tx-num-evt = &amp;lt;1&amp;gt;;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; rx-num-evt = &amp;lt;1&amp;gt;;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; };&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; };&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; fragment@4 {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; target = &amp;lt;&amp;amp;ocp&amp;gt;;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; __overlay__ {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; sound {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; compatible = &amp;quot;ti,da830-evm-audio&amp;quot;; //&amp;quot;ti,am33xx-beaglebone-black&amp;quot;;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ti,model = &amp;quot;DA830 EVM&amp;quot;; // &amp;quot;cs4271&amp;quot;;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ti,audio-codec = &amp;lt;&amp;amp;cs4271&amp;gt;;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ti,mcasp-controller = &amp;lt;&amp;amp;mcasp0&amp;gt;;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ti,codec-clock-rate = &amp;lt;24576000&amp;gt;;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; #mcasp_clock_enable = &amp;lt;&amp;amp;gpio2 27 0&amp;gt;; /* BeagleBone Black Clk enable on GPIO1_27 */&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ti,audio-routing =&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;quot;Headphone Jack&amp;quot;,&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;quot;HPLOUT&amp;quot;,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;quot;Headphone Jack&amp;quot;,&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;quot;HPROUT&amp;quot;,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;quot;LINE1L&amp;quot;,&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;quot;Line In&amp;quot;,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;quot;LINE1R&amp;quot;,&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;quot;Line In&amp;quot;;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; };&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; };&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; };&lt;br /&gt;};&lt;/p&gt;&lt;img src="https://community.element14.com/aggbug?PostID=16130&amp;AppID=80&amp;AppType=Weblog&amp;ContentType=0" width="1" height="1"&gt;</description></item><item><title>RE: BBB - Building a DAC</title><link>https://community.element14.com/products/devtools/single-board-computers/next-genbeaglebone/b/blog/posts/bbb---building-a-dac</link><pubDate>Mon, 03 Feb 2014 00:20:00 GMT</pubDate><guid isPermaLink="false">93d5dcb4-84c2-446f-b2cb-99731719e767:f236cf50-b4c4-44ab-8d57-0f93e7dd3acb</guid><dc:creator>Former Member</dc:creator><slash:comments>2</slash:comments><description>&lt;p&gt;Success at long last! I now have my cs4271 acting as a clock master and able to interface with the alsa sound system at 48, 96, and 192 kHz. The sound quality is nearly flawless, even with my breadboard layout. The only flaw I hear is a very low level of digital grunginess, so low level that you have to put your ear right against the speaker with the volume fully turned up to hear it. From normal listening distances, it is inaudible. I cannot hear any distortion at all (need to make some measurements). 192 kHz and 96 kHz sound exactly the same to me, but that&amp;#39;s not surprising. The input stage of the hifi system to which the analog output of the beaglebone-cs4271 is connected first converts analog to 96 kHz digital. So I have not ever actually heard anything rendered at 192 kHz. There is a slight but obvious, once you train your ears, step up in sound quality going from 48 kHz to 96 kHz. Oddly this can be heard even playing 44.1 kHz tracks ripped from CDs, though it is more obvious on material that was recorded at higher bit rates (I have several 176 kHz tracks obtained from HDTracks.)&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;Next is to figure out what I actually did in the guts of the sound driver that made it work and why, remove gobs of debug prints, and make a clean patch with just the necessary parts. There are a couple of oddities I don&amp;#39;t understand yet. With the mcasp in slave mode, it sends the audio serial bit stream to the DAC on a different pin than when it is in master mode, in fact it sends the serial data on P9.25, which is normally the 24.576 MHz master clock output! I saw nothing in the documentation about this and I never would have guessed it, but I accidentally noticed it on my scope while trying to figure out why nothing was working. Another other oddity is that I&amp;#39;m not sending the master clock frequency from the sound chip to the beagleboard at all. I couldn&amp;#39;t figure out where to connect it, given that P9.25 is not an input pin. I suppose mcasp is syncing to the serial clock, which I&amp;#39;m sending on P9.31.&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;I&amp;#39;m going to make a printed circuit board for the DAC, which hopefully will get rid of the digital grunge. I&amp;#39;ll use a different DAC chip, since the cs4271 is quite old and requires more external circuitry than more modern DACs. I started with the cs4271 since there was already a driver for it on the beaglebone. Also I need at least four channels of output and the cs4271 has only two. There are more modern DACs that have up to 8 channels out.&lt;/p&gt;&lt;img src="https://community.element14.com/aggbug?PostID=16130&amp;AppID=80&amp;AppType=Weblog&amp;ContentType=0" width="1" height="1"&gt;</description></item><item><title>RE: BBB - Building a DAC</title><link>https://community.element14.com/products/devtools/single-board-computers/next-genbeaglebone/b/blog/posts/bbb---building-a-dac</link><pubDate>Tue, 28 Jan 2014 13:43:58 GMT</pubDate><guid isPermaLink="false">93d5dcb4-84c2-446f-b2cb-99731719e767:f236cf50-b4c4-44ab-8d57-0f93e7dd3acb</guid><dc:creator>Former Member</dc:creator><slash:comments>1</slash:comments><description>&lt;p&gt;Hi everybody&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;I&amp;#39;m in trouble with the beagle bone black audio driver. I&amp;#39;ve read this discussion. It&amp;#39;s very useful and interesting. At the moment I have a lot of questions .&lt;span lang="en"&gt;&lt;span class="hps"&gt;I hope&lt;/span&gt; &lt;span class="hps"&gt;you will be&lt;/span&gt; &lt;span class="hps"&gt;kind enough to&lt;/span&gt; &lt;span class="hps"&gt;help me.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span lang="en"&gt;&lt;span class="hps"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span lang="en"&gt;&lt;span class="hps"&gt;My project involves the acquisition of an audio stream from web radio and then forward it to an FPGA by the I2S interface. &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span lang="en"&gt;&lt;span class="hps"&gt;&lt;/span&gt;&lt;/span&gt;&lt;span lang="en"&gt;&lt;span class="hps"&gt;I Use this command to provide the audio data &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span lang="en"&gt;&lt;span class="hps"&gt;&lt;span&gt;ffmpeg -i &lt;/span&gt;&lt;a class="jive-link-external-small" href="http://wma03.fluidstream.net:8080/fluid03" rel="nofollow" target="_blank"&gt;http://wma03.fluidstream.net:8080/fluid03&lt;/a&gt;&lt;span&gt;&amp;nbsp; -f alsa &amp;quot;default:CARD=Black&amp;quot; -re -vol 150 &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span lang="en"&gt;&lt;span class="hps"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span lang="en"&gt;&lt;span class="hps"&gt;With the oscilloscope , I can see clearly the I2S data on the output pins. Of the BBB ( bit clock on&amp;nbsp; 31, L/R on 29, data on 28) . Now the problems begin to rise&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span lang="en"&gt;&lt;span class="hps"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span lang="en"&gt;&lt;span class="hps"&gt;1) it seems that for every kind of sound source, the output sample rate is the same : 48KHz. It never changes.Even if i have forced it with normal synytax of ffmpeg ( -ar new sample rate) or with .asoundrc script.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span lang="en"&gt;&lt;span class="hps"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span lang="en"&gt;&lt;span class="hps"&gt;So, is it possible to force an output sample rate of 96kHz? (the initial clock of 24,etc is divided by four&amp;nbsp; ).&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span lang="en"&gt;&lt;span class="hps"&gt;I&amp;#39;m going crazy for this &lt;span&gt;[View:/resized-image/__size/16x16/__key/commentfiles/f7d226abd59f475c9d224a79e3f0ec07-f236cf50-b4c4-44ab-8d57-0f93e7dd3acb/contentimage_5F00_2.png:16:16]&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span lang="en"&gt;&lt;span class="hps"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span lang="en"&gt;&lt;span class="hps"&gt;2) The audio quality is good enough at 48 kHz ??! I&amp;#39;ve buy the evaluation board with he same Dac of Shabaz to evaluate the sound. &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span lang="en"&gt;&lt;span class="hps"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span lang="en"&gt;&lt;span class="hps"&gt; &lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span lang="en"&gt;&lt;span class="hps"&gt;&lt;/span&gt;&lt;/span&gt;&amp;nbsp;&lt;/p&gt;&lt;img src="https://community.element14.com/aggbug?PostID=16130&amp;AppID=80&amp;AppType=Weblog&amp;ContentType=0" width="1" height="1"&gt;</description></item><item><title>RE: BBB - Building a DAC</title><link>https://community.element14.com/products/devtools/single-board-computers/next-genbeaglebone/b/blog/posts/bbb---building-a-dac</link><pubDate>Sun, 12 Jan 2014 07:24:51 GMT</pubDate><guid isPermaLink="false">93d5dcb4-84c2-446f-b2cb-99731719e767:f236cf50-b4c4-44ab-8d57-0f93e7dd3acb</guid><dc:creator>Former Member</dc:creator><slash:comments>1</slash:comments><description>&lt;p&gt;Thanks for posting this. I am working on a project to make a high quality digital crossover/speaker and room equalizer. The plan is to use the Beaglebone Black for the DSP, running a 8k or 16k tap FIR digital filter, and a decent multichannel external ADC/DAC, with a channel per driver element in the speakers. My codecs (AKM4621) have been ordered from Digikey, and should show up next week. This article will be a big help getting me started on the hardware aspects. I already have the digital filter software&amp;nbsp; running on a Linux desktop machine connected to a studio quality multichannel box (RME ADI-8 DS). I just finished porting it to the Beaglebone this week, and it can process about 300k stereo samples/sec. That&amp;#39;s without any optimization work; I expect I can fine tune it to about twice that speed. Anyhow there&amp;#39;s already enough headroom to go for a 192 kHz sample rate. The RME box is limited to 96 kHz.However, that system is kind of old, and it would be nice to have a much smaller stand alone system.&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;One problem I&amp;#39;m facing is that I cannot really use the Beaglebone-generated MCLK. It just has to much noise and jitter for true hifi and it isn&amp;#39;t accurate enough. I need the Beaglebone slaved to an external master clock. That probably means I cannot use the existing I2C interface, I&amp;#39;m assuming it cannot be clocked externally. Of course I&amp;#39;ll use the Beaglebone clocks for development purposes, since they&amp;#39;re there and working.&lt;/p&gt;&lt;img src="https://community.element14.com/aggbug?PostID=16130&amp;AppID=80&amp;AppType=Weblog&amp;ContentType=0" width="1" height="1"&gt;</description></item><item><title>RE: BBB - Building a DAC</title><link>https://community.element14.com/products/devtools/single-board-computers/next-genbeaglebone/b/blog/posts/bbb---building-a-dac</link><pubDate>Sun, 22 Sep 2013 09:02:42 GMT</pubDate><guid isPermaLink="false">93d5dcb4-84c2-446f-b2cb-99731719e767:f236cf50-b4c4-44ab-8d57-0f93e7dd3acb</guid><dc:creator>ukonline2000</dc:creator><slash:comments>1</slash:comments><description>&lt;p&gt;Hi shabaz,&lt;/p&gt;&lt;p&gt;In addition to the necessary hardware, what steps need to configure BBB to use the I2S interface to play audio files?&lt;/p&gt;&lt;img src="https://community.element14.com/aggbug?PostID=16130&amp;AppID=80&amp;AppType=Weblog&amp;ContentType=0" width="1" height="1"&gt;</description></item><item><title>RE: BBB - Building a DAC</title><link>https://community.element14.com/products/devtools/single-board-computers/next-genbeaglebone/b/blog/posts/bbb---building-a-dac</link><pubDate>Mon, 19 Aug 2013 12:05:40 GMT</pubDate><guid isPermaLink="false">93d5dcb4-84c2-446f-b2cb-99731719e767:f236cf50-b4c4-44ab-8d57-0f93e7dd3acb</guid><dc:creator>Former Member</dc:creator><slash:comments>1</slash:comments><description>&lt;p&gt;I&amp;#39;m not sure if the source code I looked at is the correct driver which is loaded.&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;However, I browsed through the technical reference manual of the CPU, and the programming model for the I2S and ASP shows there&amp;#39;s a bit which defines whether the data should be latched on to a rising edge or a falling edge.&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;I&amp;#39;ll try to configure this bit.&lt;/p&gt;&lt;img src="https://community.element14.com/aggbug?PostID=16130&amp;AppID=80&amp;AppType=Weblog&amp;ContentType=0" width="1" height="1"&gt;</description></item><item><title>RE: BBB - Building a DAC</title><link>https://community.element14.com/products/devtools/single-board-computers/next-genbeaglebone/b/blog/posts/bbb---building-a-dac</link><pubDate>Tue, 13 Aug 2013 15:18:40 GMT</pubDate><guid isPermaLink="false">93d5dcb4-84c2-446f-b2cb-99731719e767:f236cf50-b4c4-44ab-8d57-0f93e7dd3acb</guid><dc:creator>Former Member</dc:creator><slash:comments>1</slash:comments><description>&lt;p&gt;Hi &lt;span&gt;[mention:b0bc65b9ecdc4307bd967592f00e340a:e9ed411860ed4f2ba0265705b8793d05]&lt;/span&gt;,&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;I&amp;#39;m trying to do almost the same project but with an audio ADC ( pcm4202 ==&amp;gt; &lt;a class="jive-link-external-small" href="http://www.ti.com/lit/ds/symlink/pcm4202.pdf" rel="nofollow ugc noopener" target="_blank"&gt;http://www.ti.com/lit/ds/symlink/pcm4202.pdf&lt;/a&gt;)&lt;/p&gt;&lt;p&gt;Its connecting with McASP port and use I2s interface as well.&lt;/p&gt;&lt;p&gt;If I figure it out, you didnt write any driver or kernel code to get the i2s works on your BBB?&lt;/p&gt;&lt;p&gt;You just connect the pin and use the originally HDMI driver is that correct?&amp;nbsp; &lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;Thanks for your reply, I&amp;#39;ve been looking a solution for days&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;GG&lt;/p&gt;&lt;img src="https://community.element14.com/aggbug?PostID=16130&amp;AppID=80&amp;AppType=Weblog&amp;ContentType=0" width="1" height="1"&gt;</description></item><item><title>RE: BBB - Building a DAC</title><link>https://community.element14.com/products/devtools/single-board-computers/next-genbeaglebone/b/blog/posts/bbb---building-a-dac</link><pubDate>Sun, 07 Jul 2013 11:23:11 GMT</pubDate><guid isPermaLink="false">93d5dcb4-84c2-446f-b2cb-99731719e767:f236cf50-b4c4-44ab-8d57-0f93e7dd3acb</guid><dc:creator>Former Member</dc:creator><slash:comments>1</slash:comments><description>&lt;p&gt;avconv, or more properly &amp;#39;libav&amp;#39; is just a fork of the original ffmpeg. As can be seen from the startup messages when you &amp;#39;re running the &amp;#39;ffmpeg&amp;#39; command it&amp;#39;s actually avconv/libav that&amp;#39;s being used.&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;I had a look at the whole ffmpeg / libav situation while I was trying to get video streaming running with my RPi Camera. While ultimately, as with any fork, the codebases have diverged to some degree, there seems little to choose between them. However in my case Debian/Raspbian were using libav and had disabled any features they considered to be wrong for them, resulting in something that didn&amp;#39;t actually work.&lt;/p&gt;&lt;p&gt;Angstrom similarly has it&amp;#39;s own problems, most notably that lots of things have been stripped down to minimums and so may be missing features.&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;If you&amp;#39;re going to do anything media related on debian or angstrom and want either of libav or ffmpeg, I&amp;#39;d strongly suggest building these and any dependencies yourself from source and ignoring the distro versions as that will allow you to choose the features you need.&amp;nbsp; It may also be worth trying your file with both libav and the original ffmpeg as it&amp;#39;s always possible there&amp;#39;s a bug in one that&amp;#39;s been fixed in the other&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;Maybe also try some different players like &lt;a class="jive-link-external-small" href="http://flac-tools.sourceforge.net/" rel="nofollow ugc noopener" target="_blank" title="http://flac-tools.sourceforge.net/"&gt;http://flac-tools.sourceforge.net/&lt;/a&gt; &lt;a class="jive-link-external-small" href="http://alsaplayer.sourceforge.net/" rel="nofollow ugc noopener" target="_blank" title="http://alsaplayer.sourceforge.net/"&gt;http://alsaplayer.sourceforge.net/&lt;/a&gt; MPlayer, VLC, Xine etc.. I&amp;#39;m assuming most of those probably aren&amp;#39;t available for angstrom, so some compiling may be required &lt;span&gt;[View:/resized-image/__size/16x16/__key/commentfiles/f7d226abd59f475c9d224a79e3f0ec07-f236cf50-b4c4-44ab-8d57-0f93e7dd3acb/contentimage_5F00_1.png:16:16]&lt;/span&gt;&lt;/p&gt;&lt;img src="https://community.element14.com/aggbug?PostID=16130&amp;AppID=80&amp;AppType=Weblog&amp;ContentType=0" width="1" height="1"&gt;</description></item></channel></rss>