<?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 TLV320AIC3107 on an i.MX6QP (EDM1-IMX6PLUS) in i.MX Processors</title>
    <link>https://community.nxp.com/t5/i-MX-Processors/TLV320AIC3107-on-an-i-MX6QP-EDM1-IMX6PLUS/m-p/681420#M105247</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Our HW team decided to use the TI Audio Codec TLV320AIC3107 on one of the boards (utilizing EDM1-IMX6PLUS module from TechNexion) mainly because of the Class D amplifier. I tried to use the&amp;nbsp; /sound/soc/codecs/tlv320aic3x.c&amp;nbsp; codec and the /sound/soc/fsl/imx-tlv320aic3x.c machine driver. In the DTS file, the codec was configured to be compatible with tlv320aic3007 (3007 and 3107 are similar and the functionality I need is covered by the 3007 driver). All power supplies are connected directly to the power sources and we are using a gpio pin to drive the reset pin (gpio6 3)&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;The first issue was that the following message was shown during boot:&lt;/P&gt;&lt;BLOCKQUOTE class="jive_macro_quote jive-quote jive_text_macro"&gt;&lt;P&gt;tlv320aic3x-codec 2-0018: Failed to init class D: -5&lt;/P&gt;&lt;/BLOCKQUOTE&gt;&lt;P&gt;Attaching an oscilloscope to the i2c lines and the reset pin showed that the reset was always set to 0 during boot up. I found out that in the “probe” function, the reset pin was only configured to output but its value was never set. So I made the following two modifications to release the RESET in the probe function and to activate it on power down:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;BLOCKQUOTE class="jive_macro_quote jive-quote jive_text_macro"&gt;&lt;P&gt;diff --git a/sound/soc/codecs/tlv320aic3x.c b/sound/soc/codecs/tlv320aic3x.c&lt;BR /&gt;index 76bc41b..d805b74 100644&lt;BR /&gt;--- a/sound/soc/codecs/tlv320aic3x.c&lt;BR /&gt;+++ b/sound/soc/codecs/tlv320aic3x.c&lt;BR /&gt;@@ -1370,6 +1370,12 @@&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;regcache_cache_only(aic3x-&amp;gt;regmap, true);&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;ret = regulator_bulk_disable(ARRAY_SIZE(aic3x-&amp;gt;supplies),&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;nbsp; aic3x-&amp;gt;supplies);&lt;BR /&gt;+&lt;BR /&gt;+&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;if (gpio_is_valid(aic3x-&amp;gt;gpio_reset)) {&lt;BR /&gt;+&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;udelay(1);&lt;BR /&gt;+&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;gpio_set_value(aic3x-&amp;gt;gpio_reset, 0);&lt;BR /&gt;+&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;}&lt;BR /&gt;+&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;}&lt;BR /&gt;&amp;nbsp;out:&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;return ret;&lt;BR /&gt;@@ -1758,6 +1764,9 @@&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;if (ret != 0)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;goto err;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;gpio_direction_output(aic3x-&amp;gt;gpio_reset, 0);&lt;BR /&gt;+&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;gpio_set_value(aic3x-&amp;gt;gpio_reset, 0);&lt;BR /&gt;+&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;udelay(1);&lt;BR /&gt;+&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;gpio_set_value(aic3x-&amp;gt;gpio_reset, 1);&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;}&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;for (i = 0; i &amp;lt; ARRAY_SIZE(aic3x-&amp;gt;supplies); i++)&lt;/P&gt;&lt;/BLOCKQUOTE&gt;&lt;P&gt;&lt;BR /&gt;This removed the “Failed to init class D: -5" error message but when trying to play a simple wav file "aplay Front_Center.wav", the command just hung and never finished. Trying different settings in the DTS didn’t help and I tried to look for another machine driver. Luckily I found an alternative machine driver which worked out of the box: &lt;BR /&gt;&lt;A href="https://github.com/Ansync/kernel-tgif/blob/master/sound/soc/fsl/imx-tlv320aic3x.c"&gt;https://github.com/Ansync/kernel-tgif/blob/master/sound/soc/fsl/imx-tlv320aic3x.c&lt;/A&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;The DTS settings are:&lt;/P&gt;&lt;BLOCKQUOTE class="jive_macro_quote jive-quote jive_text_macro"&gt;&lt;P&gt;/ {&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;sound {&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;compatible = "fsl,imx-audio-tlv320aic3x";&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;model = "tlv320aic3007";&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;ssi-controller = &amp;lt;&amp;amp;EDM1_AUD_I2S_CHANNEL&amp;gt;;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; cpu-dai = &amp;lt;&amp;amp;EDM1_AUD_I2S_CHANNEL&amp;gt;;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;audio-codec = &amp;lt;&amp;amp;codec&amp;gt;;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;audio-routing =&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;"Ext Spk", "SPOP",&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;"Ext Spk", "SPOM",&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;"Line Out Jack", "LLOUT",&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;"Line Out Jack", "RLOUT";&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;mux-int-port = &amp;lt;EDM1_AUD_MUX_INT&amp;gt;;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;mux-ext-port = &amp;lt;EDM1_AUD_MUX_EXT&amp;gt;;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;};&lt;BR /&gt;};&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;&amp;amp;i2c3 {&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;status = "okay";&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; codec: tlv320aic310x@18 {&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;compatible = "ti,tlv320aic3007";&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;reg = &amp;lt;0x18&amp;gt;;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;gpio-reset = &amp;lt;&amp;amp;gpio6 3 GPIO_ACTIVE_LOW&amp;gt;;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;clocks = &amp;lt;&amp;amp;EDM1_AUD_CLK_SRC&amp;gt;;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; status = "okay";&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; };&lt;/P&gt;&lt;P&gt;};&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;amp;ssi1 {&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;fsl,mode = "i2s-master";&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;status = "okay";&lt;BR /&gt;};&lt;/P&gt;&lt;/BLOCKQUOTE&gt;&lt;P&gt;&lt;BR /&gt;Finally sound was played out of the speaker. The picture below is a snapshot of the oscilloscope screen. The signals are:&lt;BR /&gt;-&amp;nbsp;&amp;nbsp; &amp;nbsp;The Analog line is the audio output&lt;BR /&gt;-&amp;nbsp;&amp;nbsp; &amp;nbsp;Digital 4 is i2c clock&lt;BR /&gt;-&amp;nbsp;&amp;nbsp; &amp;nbsp;Digital 5 is i2c data&lt;BR /&gt;-&amp;nbsp;&amp;nbsp; &amp;nbsp;Digital 6 is the reset pin&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper" image-alt="Scope.png"&gt;&lt;img src="https://community.nxp.com/t5/image/serverpage/image-id/24549i4B26A4E19E44BD65/image-size/large?v=v2&amp;amp;px=999" role="button" title="Scope.png" alt="Scope.png" /&gt;&lt;/span&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Mon, 03 Jul 2017 11:38:09 GMT</pubDate>
    <dc:creator>slav_slavov</dc:creator>
    <dc:date>2017-07-03T11:38:09Z</dc:date>
    <item>
      <title>TLV320AIC3107 on an i.MX6QP (EDM1-IMX6PLUS)</title>
      <link>https://community.nxp.com/t5/i-MX-Processors/TLV320AIC3107-on-an-i-MX6QP-EDM1-IMX6PLUS/m-p/681420#M105247</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Our HW team decided to use the TI Audio Codec TLV320AIC3107 on one of the boards (utilizing EDM1-IMX6PLUS module from TechNexion) mainly because of the Class D amplifier. I tried to use the&amp;nbsp; /sound/soc/codecs/tlv320aic3x.c&amp;nbsp; codec and the /sound/soc/fsl/imx-tlv320aic3x.c machine driver. In the DTS file, the codec was configured to be compatible with tlv320aic3007 (3007 and 3107 are similar and the functionality I need is covered by the 3007 driver). All power supplies are connected directly to the power sources and we are using a gpio pin to drive the reset pin (gpio6 3)&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;The first issue was that the following message was shown during boot:&lt;/P&gt;&lt;BLOCKQUOTE class="jive_macro_quote jive-quote jive_text_macro"&gt;&lt;P&gt;tlv320aic3x-codec 2-0018: Failed to init class D: -5&lt;/P&gt;&lt;/BLOCKQUOTE&gt;&lt;P&gt;Attaching an oscilloscope to the i2c lines and the reset pin showed that the reset was always set to 0 during boot up. I found out that in the “probe” function, the reset pin was only configured to output but its value was never set. So I made the following two modifications to release the RESET in the probe function and to activate it on power down:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;BLOCKQUOTE class="jive_macro_quote jive-quote jive_text_macro"&gt;&lt;P&gt;diff --git a/sound/soc/codecs/tlv320aic3x.c b/sound/soc/codecs/tlv320aic3x.c&lt;BR /&gt;index 76bc41b..d805b74 100644&lt;BR /&gt;--- a/sound/soc/codecs/tlv320aic3x.c&lt;BR /&gt;+++ b/sound/soc/codecs/tlv320aic3x.c&lt;BR /&gt;@@ -1370,6 +1370,12 @@&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;regcache_cache_only(aic3x-&amp;gt;regmap, true);&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;ret = regulator_bulk_disable(ARRAY_SIZE(aic3x-&amp;gt;supplies),&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;nbsp; aic3x-&amp;gt;supplies);&lt;BR /&gt;+&lt;BR /&gt;+&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;if (gpio_is_valid(aic3x-&amp;gt;gpio_reset)) {&lt;BR /&gt;+&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;udelay(1);&lt;BR /&gt;+&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;gpio_set_value(aic3x-&amp;gt;gpio_reset, 0);&lt;BR /&gt;+&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;}&lt;BR /&gt;+&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;}&lt;BR /&gt;&amp;nbsp;out:&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;return ret;&lt;BR /&gt;@@ -1758,6 +1764,9 @@&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;if (ret != 0)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;goto err;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;gpio_direction_output(aic3x-&amp;gt;gpio_reset, 0);&lt;BR /&gt;+&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;gpio_set_value(aic3x-&amp;gt;gpio_reset, 0);&lt;BR /&gt;+&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;udelay(1);&lt;BR /&gt;+&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;gpio_set_value(aic3x-&amp;gt;gpio_reset, 1);&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;}&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;for (i = 0; i &amp;lt; ARRAY_SIZE(aic3x-&amp;gt;supplies); i++)&lt;/P&gt;&lt;/BLOCKQUOTE&gt;&lt;P&gt;&lt;BR /&gt;This removed the “Failed to init class D: -5" error message but when trying to play a simple wav file "aplay Front_Center.wav", the command just hung and never finished. Trying different settings in the DTS didn’t help and I tried to look for another machine driver. Luckily I found an alternative machine driver which worked out of the box: &lt;BR /&gt;&lt;A href="https://github.com/Ansync/kernel-tgif/blob/master/sound/soc/fsl/imx-tlv320aic3x.c"&gt;https://github.com/Ansync/kernel-tgif/blob/master/sound/soc/fsl/imx-tlv320aic3x.c&lt;/A&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;The DTS settings are:&lt;/P&gt;&lt;BLOCKQUOTE class="jive_macro_quote jive-quote jive_text_macro"&gt;&lt;P&gt;/ {&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;sound {&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;compatible = "fsl,imx-audio-tlv320aic3x";&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;model = "tlv320aic3007";&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;ssi-controller = &amp;lt;&amp;amp;EDM1_AUD_I2S_CHANNEL&amp;gt;;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; cpu-dai = &amp;lt;&amp;amp;EDM1_AUD_I2S_CHANNEL&amp;gt;;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;audio-codec = &amp;lt;&amp;amp;codec&amp;gt;;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;audio-routing =&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;"Ext Spk", "SPOP",&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;"Ext Spk", "SPOM",&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;"Line Out Jack", "LLOUT",&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;"Line Out Jack", "RLOUT";&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;mux-int-port = &amp;lt;EDM1_AUD_MUX_INT&amp;gt;;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;mux-ext-port = &amp;lt;EDM1_AUD_MUX_EXT&amp;gt;;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;};&lt;BR /&gt;};&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;&amp;amp;i2c3 {&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;status = "okay";&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; codec: tlv320aic310x@18 {&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;compatible = "ti,tlv320aic3007";&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;reg = &amp;lt;0x18&amp;gt;;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;gpio-reset = &amp;lt;&amp;amp;gpio6 3 GPIO_ACTIVE_LOW&amp;gt;;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;clocks = &amp;lt;&amp;amp;EDM1_AUD_CLK_SRC&amp;gt;;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; status = "okay";&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; };&lt;/P&gt;&lt;P&gt;};&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;amp;ssi1 {&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;fsl,mode = "i2s-master";&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;status = "okay";&lt;BR /&gt;};&lt;/P&gt;&lt;/BLOCKQUOTE&gt;&lt;P&gt;&lt;BR /&gt;Finally sound was played out of the speaker. The picture below is a snapshot of the oscilloscope screen. The signals are:&lt;BR /&gt;-&amp;nbsp;&amp;nbsp; &amp;nbsp;The Analog line is the audio output&lt;BR /&gt;-&amp;nbsp;&amp;nbsp; &amp;nbsp;Digital 4 is i2c clock&lt;BR /&gt;-&amp;nbsp;&amp;nbsp; &amp;nbsp;Digital 5 is i2c data&lt;BR /&gt;-&amp;nbsp;&amp;nbsp; &amp;nbsp;Digital 6 is the reset pin&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper" image-alt="Scope.png"&gt;&lt;img src="https://community.nxp.com/t5/image/serverpage/image-id/24549i4B26A4E19E44BD65/image-size/large?v=v2&amp;amp;px=999" role="button" title="Scope.png" alt="Scope.png" /&gt;&lt;/span&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 03 Jul 2017 11:38:09 GMT</pubDate>
      <guid>https://community.nxp.com/t5/i-MX-Processors/TLV320AIC3107-on-an-i-MX6QP-EDM1-IMX6PLUS/m-p/681420#M105247</guid>
      <dc:creator>slav_slavov</dc:creator>
      <dc:date>2017-07-03T11:38:09Z</dc:date>
    </item>
    <item>
      <title>Re: TLV320AIC3107 on an i.MX6QP (EDM1-IMX6PLUS)</title>
      <link>https://community.nxp.com/t5/i-MX-Processors/TLV320AIC3107-on-an-i-MX6QP-EDM1-IMX6PLUS/m-p/681421#M105248</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Slav&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;thank for sharing this experience as it may help other customers&lt;/P&gt;&lt;P&gt;working with TLV320AIC3107.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Best regards&lt;BR /&gt;igor&lt;/P&gt;&lt;H1&gt;&lt;/H1&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 03 Jul 2017 22:58:33 GMT</pubDate>
      <guid>https://community.nxp.com/t5/i-MX-Processors/TLV320AIC3107-on-an-i-MX6QP-EDM1-IMX6PLUS/m-p/681421#M105248</guid>
      <dc:creator>igorpadykov</dc:creator>
      <dc:date>2017-07-03T22:58:33Z</dc:date>
    </item>
    <item>
      <title>Re: TLV320AIC3107 on an i.MX6QP (EDM1-IMX6PLUS)</title>
      <link>https://community.nxp.com/t5/i-MX-Processors/TLV320AIC3107-on-an-i-MX6QP-EDM1-IMX6PLUS/m-p/681422#M105249</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Slav,&lt;/P&gt;&lt;P&gt;can you show me driver:&amp;nbsp;&lt;SPAN style="color: #51626f; background-color: #ffffff;"&gt;/sound/soc/codecs/tlv320aic3x.c?&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #51626f; background-color: #ffffff;"&gt;i use TLV320AIC3105 codec on iMX6Q, i also use your machine driver :&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #51626f; background-color: #ffffff;"&gt;&lt;A data-content-finding="Community" href="https://community.nxp.com/external-link.jspa?url=https%3A%2F%2Fgithub.com%2FAnsync%2Fkernel-tgif%2Fblob%2Fmaster%2Fsound%2Fsoc%2Ffsl%2Fimx-tlv320aic3x.c" rel="nofollow" style="color: #5e89c1; border: 0px; text-decoration: none; padding: 0px calc(12px + 0.35ex) 0px 0px;" target="_blank"&gt;https://github.com/Ansync/kernel-tgif/blob/master/sound/soc/fsl/imx-tlv320aic3x.c&lt;/A&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #51626f; background-color: #ffffff;"&gt;but when playing music, i see only have MCLK, don't have clock &amp;nbsp;on BCLK, WCLK, TXC&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #51626f; background-color: #ffffff;"&gt;my issue here:&amp;nbsp;&lt;A href="https://community.nxp.com/thread/460769"&gt;https://community.nxp.com/thread/460769&lt;/A&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #51626f; background-color: #ffffff;"&gt;Thank you!&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #51626f; background-color: #ffffff;"&gt;BR/Nguyen&lt;/SPAN&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 22 Sep 2017 03:47:50 GMT</pubDate>
      <guid>https://community.nxp.com/t5/i-MX-Processors/TLV320AIC3107-on-an-i-MX6QP-EDM1-IMX6PLUS/m-p/681422#M105249</guid>
      <dc:creator>nguyenmr</dc:creator>
      <dc:date>2017-09-22T03:47:50Z</dc:date>
    </item>
  </channel>
</rss>

