<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic Re: PCM-952: How to enable audio clock from device tree? in Vybrid Processors</title>
    <link>https://community.nxp.com/t5/Vybrid-Processors/PCM-952-How-to-enable-audio-clock-from-device-tree/m-p/479790#M5235</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;&lt;A class="jx-jive-macro-user" href="https://community.nxp.com/people/timesyssupport"&gt;timesyssupport&lt;/A&gt;​ can you help to review this case?&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Tue, 02 Feb 2016 19:26:32 GMT</pubDate>
    <dc:creator>karina_valencia</dc:creator>
    <dc:date>2016-02-02T19:26:32Z</dc:date>
    <item>
      <title>PCM-952: How to enable audio clock from device tree?</title>
      <link>https://community.nxp.com/t5/Vybrid-Processors/PCM-952-How-to-enable-audio-clock-from-device-tree/m-p/479789#M5234</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;I want to enable the SGTL5000 audio codec on my PCM-952 Vybrid board from the device tree. Here's the device tree entry (adapted from the vf610 tower board) that works fine:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;TABLE&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD&gt;&lt;/TD&gt;&lt;TD&gt;sound {&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&amp;nbsp;&amp;nbsp; &lt;/TD&gt;&lt;TD&gt; compatible = "simple-audio-card";&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&amp;nbsp;&amp;nbsp; &lt;/TD&gt;&lt;TD&gt; simple-audio-card,format = "i2s";&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&amp;nbsp;&amp;nbsp; &lt;/TD&gt;&lt;TD&gt; simple-audio-card,widgets =&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&amp;nbsp;&amp;nbsp; &lt;/TD&gt;&lt;TD&gt;&lt;/TD&gt;&lt;TD&gt; "Microphone", "Microphone Jack",&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&amp;nbsp;&amp;nbsp; &lt;/TD&gt;&lt;TD&gt;&lt;/TD&gt;&lt;TD&gt; "Headphone", "Headphone Jack",&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&amp;nbsp;&amp;nbsp; &lt;/TD&gt;&lt;TD&gt;&lt;/TD&gt;&lt;TD&gt; "Speaker", "Speaker Ext",&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&amp;nbsp;&amp;nbsp; &lt;/TD&gt;&lt;TD&gt;&lt;/TD&gt;&lt;TD&gt; "Line", "Line In Jack";&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&amp;nbsp;&amp;nbsp; &lt;/TD&gt;&lt;TD&gt; simple-audio-card,routing =&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&amp;nbsp;&amp;nbsp; &lt;/TD&gt;&lt;TD&gt;&lt;/TD&gt;&lt;TD&gt; "MIC_IN", "Microphone Jack",&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&amp;nbsp;&amp;nbsp; &lt;/TD&gt;&lt;TD&gt;&lt;/TD&gt;&lt;TD&gt; "Microphone Jack", "Mic Bias",&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&amp;nbsp;&amp;nbsp; &lt;/TD&gt;&lt;TD&gt;&lt;/TD&gt;&lt;TD&gt; "LINE_IN", "Line In Jack",&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&amp;nbsp;&amp;nbsp; &lt;/TD&gt;&lt;TD&gt;&lt;/TD&gt;&lt;TD&gt; "Headphone Jack", "HP_OUT",&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&amp;nbsp;&amp;nbsp; &lt;/TD&gt;&lt;TD&gt;&lt;/TD&gt;&lt;TD&gt; "Speaker Ext", "LINE_OUT";&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;P&gt;&lt;/P&gt;&lt;TABLE&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD&gt;&amp;nbsp;&amp;nbsp; &lt;/TD&gt;&lt;TD&gt; simple-audio-card,cpu {&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&amp;nbsp;&amp;nbsp; &lt;/TD&gt;&lt;TD&gt;&lt;/TD&gt;&lt;TD&gt; sound-dai = &amp;lt;&amp;amp;sai2&amp;gt;;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&amp;nbsp;&amp;nbsp; &lt;/TD&gt;&lt;TD&gt;&lt;/TD&gt;&lt;TD&gt; frame-master;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&amp;nbsp;&amp;nbsp; &lt;/TD&gt;&lt;TD&gt;&lt;/TD&gt;&lt;TD&gt; bitclock-master;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&amp;nbsp;&amp;nbsp; &lt;/TD&gt;&lt;TD&gt; };&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;P&gt;&lt;/P&gt;&lt;TABLE&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD&gt;&amp;nbsp;&amp;nbsp; &lt;/TD&gt;&lt;TD&gt; simple-audio-card,codec {&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&amp;nbsp;&amp;nbsp; &lt;/TD&gt;&lt;TD&gt;&lt;/TD&gt;&lt;TD&gt; sound-dai = &amp;lt;&amp;amp;codec&amp;gt;;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&amp;nbsp;&amp;nbsp; &lt;/TD&gt;&lt;TD&gt;&lt;/TD&gt;&lt;TD&gt; frame-master;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&amp;nbsp;&amp;nbsp; &lt;/TD&gt;&lt;TD&gt;&lt;/TD&gt;&lt;TD&gt; bitclock-master;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&amp;nbsp;&amp;nbsp; &lt;/TD&gt;&lt;TD&gt;&lt;/TD&gt;&lt;TD&gt; clocks = &amp;lt;&amp;amp;clks VF610_CLK_SAI2&amp;gt;;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&amp;nbsp;&amp;nbsp; &lt;/TD&gt;&lt;TD&gt; };&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&amp;nbsp;&amp;nbsp; &lt;/TD&gt;&lt;TD&gt; &lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; };&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;However, this only works if I use the external codec oscillator by placing the jumper instead of VF610_CLK_SAI2. The codec is probed via I2C. On success the simple-audio-card is activated, which in turn enables the unused VF610_CLK_SAI2 clock. But if I want to use the VF610_CLK_SAI2 clock for the codec, I have some kind of hen and egg problem. In order to enable VF610_CLK_SAI2, the simple-audio-card must be enabled, which in turn depends on the codec. The codec however requires VF610_CLK_SAI2 as bitclock to run. So at system start I only get some codec probe deferrals, and audio doesn't work.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Is there a way to tell the device tree that the codec depends on VF610_CLK_SAI2 and that this clock must be enabled first?&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 01 Feb 2016 10:29:28 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Vybrid-Processors/PCM-952-How-to-enable-audio-clock-from-device-tree/m-p/479789#M5234</guid>
      <dc:creator>mpfgregory</dc:creator>
      <dc:date>2016-02-01T10:29:28Z</dc:date>
    </item>
    <item>
      <title>Re: PCM-952: How to enable audio clock from device tree?</title>
      <link>https://community.nxp.com/t5/Vybrid-Processors/PCM-952-How-to-enable-audio-clock-from-device-tree/m-p/479790#M5235</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;&lt;A class="jx-jive-macro-user" href="https://community.nxp.com/people/timesyssupport"&gt;timesyssupport&lt;/A&gt;​ can you help to review this case?&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 02 Feb 2016 19:26:32 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Vybrid-Processors/PCM-952-How-to-enable-audio-clock-from-device-tree/m-p/479790#M5235</guid>
      <dc:creator>karina_valencia</dc:creator>
      <dc:date>2016-02-02T19:26:32Z</dc:date>
    </item>
    <item>
      <title>Re: PCM-952: How to enable audio clock from device tree?</title>
      <link>https://community.nxp.com/t5/Vybrid-Processors/PCM-952-How-to-enable-audio-clock-from-device-tree/m-p/479791#M5236</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;On different Vybrid hardware, we have been able to use the internal clock to drive the audio codec. This involves changing the clock parent of SAI2 to PLL4.&amp;nbsp; Please see the attached patch for the relevant changes to the device tree and clock source. This patch should apply cleanly to the 3.13 pcm052 kernel source.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thanks,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Timesys Support&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 02 Feb 2016 21:15:55 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Vybrid-Processors/PCM-952-How-to-enable-audio-clock-from-device-tree/m-p/479791#M5236</guid>
      <dc:creator>timesyssupport</dc:creator>
      <dc:date>2016-02-02T21:15:55Z</dc:date>
    </item>
    <item>
      <title>Re: PCM-952: How to enable audio clock from device tree?</title>
      <link>https://community.nxp.com/t5/Vybrid-Processors/PCM-952-How-to-enable-audio-clock-from-device-tree/m-p/479792#M5237</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Thanks, this works. On the PCM-952 you also need to route the SAI2 clock to PTB11. First you have to enable CKO2 in the CCM_CCOSR register. Unfortunately there is no device tree binding for this register. Currently I do this in u-boot using the physical address of CCM_CCOSR. Maybe a device tree binding should be officially added?&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Then you have to set-up PTB11 for CKO2. This needs to be done before the codec is probed. I have added :&lt;/P&gt;&lt;TABLE&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD&gt;VF610_PAD_PTB11__CKO2&amp;nbsp;&amp;nbsp; &lt;/TD&gt;&lt;TD&gt;&lt;/TD&gt;&lt;TD&gt; 0x02ee&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;P&gt;to the i2c pinctrl. With this configuration it works. Thanks for the support!&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 03 Feb 2016 15:37:21 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Vybrid-Processors/PCM-952-How-to-enable-audio-clock-from-device-tree/m-p/479792#M5237</guid>
      <dc:creator>mpfgregory</dc:creator>
      <dc:date>2016-02-03T15:37:21Z</dc:date>
    </item>
  </channel>
</rss>

