<?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>i.MX ProcessorsのトピックRe: [iMX8 QM] Using SAI2 interface as I2S slave</title>
    <link>https://community.nxp.com/t5/i-MX-Processors/iMX8-QM-Using-SAI2-interface-as-I2S-slave/m-p/1180226#M164677</link>
    <description>&lt;P&gt;Hi Igor&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Unfortunately, I don't know how to do what you proposed. I only have Yocto set up on the iMX8 CPU, and I am unable to get the SAI2 to work as slave. I have tried to do the same with sai0 connected to sai3, ran into the same problem. Enabling SAI2 with the M4 cores does little help, as I need the audio on the A cores.&lt;/P&gt;&lt;P&gt;The drivers present in the SDK you mentioned are significantly different from the drivers present in yocto, and are of little help for my use case.&lt;/P&gt;</description>
    <pubDate>Mon, 09 Nov 2020 16:27:13 GMT</pubDate>
    <dc:creator>tlugaric</dc:creator>
    <dc:date>2020-11-09T16:27:13Z</dc:date>
    <item>
      <title>[iMX8 QM] Using SAI2 interface as I2S slave</title>
      <link>https://community.nxp.com/t5/i-MX-Processors/iMX8-QM-Using-SAI2-interface-as-I2S-slave/m-p/1178058#M164517</link>
      <description>&lt;P&gt;I am trying to use the SAI2 interface on the iMX8 QM to receive audio from a radio tuner module. The radio module only supports I2S master configuration, so I have configured SAI2 as I2S slave. When in such configuration, I am unable to record any audio from the SAI2 interface in Linux.&lt;/P&gt;&lt;P&gt;For purposes of testing, I have made a loopback interface between SAI0 and SAI2 by making the following connections:&lt;/P&gt;&lt;DIV&gt;SAI0_TXD -&amp;gt; SAI2_RXD&lt;/DIV&gt;&lt;DIV&gt;SAI0_TXFS -&amp;gt; SAI2_RXFS&lt;/DIV&gt;&lt;DIV&gt;SAI0_TXC -&amp;gt; SAI2_RXC&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;I have configured my pinmux as follows:&lt;/DIV&gt;&lt;DIV&gt;&lt;DIV&gt;SAI0:&lt;/DIV&gt;&lt;SPAN&gt;SC_P_SAI1_RXC_AUD_SAI0_TXD &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;0x00000021&lt;/SPAN&gt;&lt;BR /&gt;&lt;DIV&gt;SC_P_SPI0_CS1_AUD_SAI0_TXC &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;0x00000021&lt;/DIV&gt;&lt;DIV&gt;SC_P_SAI1_RXFS_AUD_SAI0_RXD &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 0x00000021&lt;/DIV&gt;&lt;DIV&gt;SC_P_SPI2_CS1_AUD_SAI0_TXFS&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 0x00000021&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;SAI2:&lt;/DIV&gt;&lt;DIV&gt;SC_P_ESAI1_TX0_AUD_SAI2_RXD &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 0x00000021&lt;BR /&gt;&lt;DIV&gt;SC_P_ESAI1_TX1_AUD_SAI2_RXFS &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;0x00000021&lt;/DIV&gt;SC_P_ESAI1_SCKT_AUD_SAI2_RXC &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;0x00000021&lt;/DIV&gt;&lt;/DIV&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I have then tried to make two tests, one with SAI0 as I2S master, the other one with SAI2 as I2S master. In both tests, I used aplay to output audio from SAI0 (hw:3,0 in Linux) and arecord to record it from SAI2 (hw:4,0):&lt;/P&gt;&lt;DIV&gt;&lt;SPAN&gt;aplay -Dplughw:3,0 -vv test.wav&lt;BR /&gt;&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;DIV&gt;arecord -Dplughw:4,0 -vv test2.wav&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;When SAI0 is configured as master, aplay shows data is being output (i can see the VU meter moving), and there is BCLK, FS and data visible on the I2S lines with a logic analyzer. however arecord does not record any audio (there is no VU meter displayed, and the "test2.wav" file is empty)&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;When SAI2 is configured as master, both aplay and arecord show data is going (VU meter moving), data, BCLK and FSCLK are visible with the logic analyzer&amp;nbsp; and the test2.wav contains the same audio as test1.wav.&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;From this it seems to me like the SAI2 interface only works properly in I2S master mode.&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;I tried this on kernel version 4.14 and 5.4.&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;Extract from my device tree with &lt;STRONG&gt;SAI0 &lt;/STRONG&gt;as master:&lt;/DIV&gt;&lt;DIV&gt;&lt;DIV&gt;&amp;amp;sai0 {&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; #sound-dai-cells = &amp;lt;0&amp;gt;;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; status = "okay";&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; fsl,txmasterflag = &amp;lt;4&amp;gt;; // SND_SOC_DAIFMT_CBS_CFS&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; fsl,rxmasterflag = &amp;lt;4&amp;gt;; // SND_SOC_DAIFMT_CBS_CFS&lt;/DIV&gt;&lt;DIV&gt;};&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&amp;amp;sai2 {&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; #sound-dai-cells = &amp;lt;0&amp;gt;;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; status= "okay";&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; fsl,txmasterflag = &amp;lt;1&amp;gt;; // SND_SOC_DAIFMT_CBM_CFM&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; fsl,rxmasterflag = &amp;lt;1&amp;gt;; // SND_SOC_DAIFMT_CBM_CFM&lt;/DIV&gt;&lt;DIV&gt;};&lt;/DIV&gt;&lt;STRONG&gt;&lt;BR /&gt;&lt;/STRONG&gt;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; sound-btsco {&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; compatible = "simple-audio-card";&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; pinctrl-names = "default";&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; pinctrl-0 = &amp;lt;&amp;amp;pinctrl_btsco_gpios&amp;gt;;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; simple-audio-card,bitclock-master = &amp;lt;&amp;amp;btsco_master&amp;gt;;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; simple-audio-card,format = "i2s";&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; simple-audio-card,frame-master = &amp;lt;&amp;amp;btsco_master&amp;gt;;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; simple-audio-card,name = "bt-sco";&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;STRONG&gt;btsco_master:&lt;/STRONG&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;simple-audio-card,cpu {&lt;/DIV&gt;&lt;DIV&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; sound-dai = &amp;lt;&amp;amp;sai0&amp;gt;;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; };&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; simple-audio-card,codec {&lt;/DIV&gt;&lt;DIV&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; sound-dai = &amp;lt;&amp;amp;btsco_codec&amp;gt;;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; };&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; };&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; btsco_codec: btsco_codec {&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; compatible= "linux,bt-sco";&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; status = "okay";&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; #sound-dai-cells = &amp;lt;0&amp;gt;;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; };&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; sound-radio {&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; compatible = "simple-audio-card";&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; pinctrl-names = "default";&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; pinctrl-0 = &amp;nbsp;&amp;lt;&amp;amp;pinctrl_st_radio_control&amp;gt;,&amp;lt;&amp;amp;pinctrl_st_radio_audio&amp;gt;;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; simple-audio-card,bitclock-master = &amp;lt;&amp;amp;radio_master&amp;gt;;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; simple-audio-card,format = "i2s";&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; simple-audio-card,frame-master = &amp;lt;&amp;amp;radio_master&amp;gt;;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; simple-audio-card,name = "radio";&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; simple-audio-card,cpu {&lt;/DIV&gt;&lt;DIV&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; sound-dai = &amp;lt;&amp;amp;sai2&amp;gt;;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; };&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;STRONG&gt;radio_master:&lt;/STRONG&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;simple-audio-card,codec {&lt;/DIV&gt;&lt;DIV&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; sound-dai = &amp;lt;&amp;amp;radio_codec&amp;gt;;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; };&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; };&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; radio_codec: radio_codec {&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; compatible= "linux,bt-sco";&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; status = "okay";&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; #sound-dai-cells = &amp;lt;0&amp;gt;;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; };&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;Extract from my device tree with &lt;STRONG&gt;SAI2&lt;/STRONG&gt; as master:&lt;/DIV&gt;&lt;DIV&gt;&lt;DIV&gt;&amp;amp;sai0 {&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; #sound-dai-cells = &amp;lt;0&amp;gt;;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; status = "okay";&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; fsl,txmasterflag = &amp;lt;1&amp;gt;; // SND_SOC_DAIFMT_CBM_CFM&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; fsl,rxmasterflag = &amp;lt;1&amp;gt;; // SND_SOC_DAIFMT_CBM_CFM&lt;/DIV&gt;&lt;DIV&gt;};&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&amp;amp;sai2 {&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; #sound-dai-cells = &amp;lt;0&amp;gt;;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; status= "okay";&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; fsl,txmasterflag = &amp;lt;4&amp;gt;; // SND_SOC_DAIFMT_CBS_CFS&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; fsl,rxmasterflag = &amp;lt;4&amp;gt;; // SND_SOC_DAIFMT_CBS_CFS&lt;/DIV&gt;&lt;DIV&gt;};&lt;/DIV&gt;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; sound-btsco {&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; compatible = "simple-audio-card";&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; pinctrl-names = "default";&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; pinctrl-0 = &amp;lt;&amp;amp;pinctrl_btsco_gpios&amp;gt;;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; simple-audio-card,bitclock-master = &amp;lt;&amp;amp;btsco_master&amp;gt;;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; simple-audio-card,format = "i2s";&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; simple-audio-card,frame-master = &amp;lt;&amp;amp;btsco_master&amp;gt;;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; simple-audio-card,name = "bt-sco";&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; simple-audio-card,cpu {&lt;/DIV&gt;&lt;DIV&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; sound-dai = &amp;lt;&amp;amp;sai0&amp;gt;;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; };&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;STRONG&gt;btsco_master:&lt;/STRONG&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;simple-audio-card,codec {&lt;/DIV&gt;&lt;DIV&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; sound-dai = &amp;lt;&amp;amp;btsco_codec&amp;gt;;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; };&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; };&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; btsco_codec: btsco_codec {&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; compatible= "linux,bt-sco";&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; status = "okay";&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; #sound-dai-cells = &amp;lt;0&amp;gt;;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; };&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; sound-radio {&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; compatible = "simple-audio-card";&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; pinctrl-names = "default";&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; pinctrl-0 = &amp;nbsp;&amp;lt;&amp;amp;pinctrl_st_radio_control&amp;gt;,&amp;lt;&amp;amp;pinctrl_st_radio_audio&amp;gt;;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; simple-audio-card,bitclock-master = &amp;lt;&amp;amp;radio_master&amp;gt;;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; simple-audio-card,format = "i2s";&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; simple-audio-card,frame-master = &amp;lt;&amp;amp;radio_master&amp;gt;;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; simple-audio-card,name = "radio";&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;STRONG&gt;radio_master:&lt;/STRONG&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;simple-audio-card,cpu {&lt;/DIV&gt;&lt;DIV&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; sound-dai = &amp;lt;&amp;amp;sai2&amp;gt;;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; };&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; simple-audio-card,codec {&lt;/DIV&gt;&lt;DIV&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; sound-dai = &amp;lt;&amp;amp;radio_codec&amp;gt;;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; };&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; };&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; radio_codec: radio_codec {&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; compatible= "linux,bt-sco";&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; status = "okay";&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; #sound-dai-cells = &amp;lt;0&amp;gt;;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; };&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;Does anyone know how to make SAI2 work in I2S slave mode, or maybe what I could check? As far as I can see, SAI0 and SAI2 have identical configurations, but SAI2 only works as master, while SAI0 works as both.&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;</description>
      <pubDate>Wed, 04 Nov 2020 16:37:32 GMT</pubDate>
      <guid>https://community.nxp.com/t5/i-MX-Processors/iMX8-QM-Using-SAI2-interface-as-I2S-slave/m-p/1178058#M164517</guid>
      <dc:creator>tlugaric</dc:creator>
      <dc:date>2020-11-04T16:37:32Z</dc:date>
    </item>
    <item>
      <title>Re: [iMX8 QM] Using SAI2 interface as I2S slave</title>
      <link>https://community.nxp.com/t5/i-MX-Processors/iMX8-QM-Using-SAI2-interface-as-I2S-slave/m-p/1178356#M164530</link>
      <description>&lt;P&gt;Hi tlugaric&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;one can try to test sai slave with M4 SDK_MEK-MIMX8QM available on&lt;/P&gt;
&lt;P&gt;&lt;A href="https://mcuxpresso.nxp.com/en/welcome" target="_blank"&gt;https://mcuxpresso.nxp.com/en/welcome&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;there are several sai examples, in particular in fsl_sai.c:&lt;BR /&gt;/* Set master or slave */&lt;BR /&gt;if (config-&amp;gt;masterSlave == kSAI_Master)&lt;/P&gt;
&lt;P&gt;..drivers/fsl_sai.h&lt;/P&gt;
&lt;P&gt;/*! @brief Master or slave mode */&lt;BR /&gt;typedef enum _sai_master_slave&lt;BR /&gt;{&lt;BR /&gt;kSAI_Master = 0x0U, /*!&amp;lt; Master mode include bclk and frame sync */&lt;BR /&gt;kSAI_Slave = 0x1U, /*!&amp;lt; Slave mode include bclk and frame sync */&lt;BR /&gt;kSAI_Bclk_Master_FrameSync_Slave = 0x2U, /*!&amp;lt; bclk in master mode, frame sync in slave mode */&lt;BR /&gt;kSAI_Bclk_Slave_FrameSync_Master = 0x3U, /*!&amp;lt; bclk in slave mode, frame sync in master mode */&lt;BR /&gt;} sai_master_slave_t;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Best regards&lt;BR /&gt;igor&lt;/P&gt;</description>
      <pubDate>Thu, 05 Nov 2020 00:39:07 GMT</pubDate>
      <guid>https://community.nxp.com/t5/i-MX-Processors/iMX8-QM-Using-SAI2-interface-as-I2S-slave/m-p/1178356#M164530</guid>
      <dc:creator>igorpadykov</dc:creator>
      <dc:date>2020-11-05T00:39:07Z</dc:date>
    </item>
    <item>
      <title>Re: [iMX8 QM] Using SAI2 interface as I2S slave</title>
      <link>https://community.nxp.com/t5/i-MX-Processors/iMX8-QM-Using-SAI2-interface-as-I2S-slave/m-p/1180226#M164677</link>
      <description>&lt;P&gt;Hi Igor&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Unfortunately, I don't know how to do what you proposed. I only have Yocto set up on the iMX8 CPU, and I am unable to get the SAI2 to work as slave. I have tried to do the same with sai0 connected to sai3, ran into the same problem. Enabling SAI2 with the M4 cores does little help, as I need the audio on the A cores.&lt;/P&gt;&lt;P&gt;The drivers present in the SDK you mentioned are significantly different from the drivers present in yocto, and are of little help for my use case.&lt;/P&gt;</description>
      <pubDate>Mon, 09 Nov 2020 16:27:13 GMT</pubDate>
      <guid>https://community.nxp.com/t5/i-MX-Processors/iMX8-QM-Using-SAI2-interface-as-I2S-slave/m-p/1180226#M164677</guid>
      <dc:creator>tlugaric</dc:creator>
      <dc:date>2020-11-09T16:27:13Z</dc:date>
    </item>
    <item>
      <title>Re: [iMX8 QM] Using SAI2 interface as I2S slave</title>
      <link>https://community.nxp.com/t5/i-MX-Processors/iMX8-QM-Using-SAI2-interface-as-I2S-slave/m-p/1180371#M164694</link>
      <description>&lt;P&gt;Hi tlugaric&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;one can debug it using AN12631&lt;/P&gt;
&lt;P&gt;&lt;A id="relatedDocsClick_6" href="https://www.nxp.com/docs/en/application-note/AN12631.pdf" target="_blank" rel="noopener"&gt;&lt;STRONG&gt;Normal and Secure Debug for i.MX8/8X Family of Applications Processors&lt;/STRONG&gt;&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;since slave configuration is supported in SDK, one can check sai registers, then&lt;/P&gt;
&lt;P&gt;compare them with linux driver.&lt;/P&gt;
&lt;P&gt;May be useful to look at suggestions provided on:&lt;/P&gt;
&lt;P&gt;&lt;A href="https://community.nxp.com/t5/i-MX-Processors/i-MX7D-SAI1-Slave-connection-to-codec-Master/td-p/690910" target="_blank"&gt;https://community.nxp.com/t5/i-MX-Processors/i-MX7D-SAI1-Slave-connection-to-codec-Master/td-p/690910&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Best regards&lt;BR /&gt;igor&lt;/P&gt;</description>
      <pubDate>Tue, 10 Nov 2020 01:43:37 GMT</pubDate>
      <guid>https://community.nxp.com/t5/i-MX-Processors/iMX8-QM-Using-SAI2-interface-as-I2S-slave/m-p/1180371#M164694</guid>
      <dc:creator>igorpadykov</dc:creator>
      <dc:date>2020-11-10T01:43:37Z</dc:date>
    </item>
    <item>
      <title>Re: [iMX8 QM] Using SAI2 interface as I2S slave</title>
      <link>https://community.nxp.com/t5/i-MX-Processors/iMX8-QM-Using-SAI2-interface-as-I2S-slave/m-p/1527463#M195557</link>
      <description>&lt;P&gt;How were you setting the devices into master of slave mode? Any reference?&lt;/P&gt;&lt;P&gt;Thanks&lt;/P&gt;</description>
      <pubDate>Fri, 23 Sep 2022 15:49:37 GMT</pubDate>
      <guid>https://community.nxp.com/t5/i-MX-Processors/iMX8-QM-Using-SAI2-interface-as-I2S-slave/m-p/1527463#M195557</guid>
      <dc:creator>mwilliams</dc:creator>
      <dc:date>2022-09-23T15:49:37Z</dc:date>
    </item>
  </channel>
</rss>

