AnsweredAssumed Answered

IMX6UL SAI3 recording failed

Question asked by satellite12 on Dec 26, 2016
Latest reply on Dec 28, 2016 by jimmychan

Hello,

 

I encounter an audio recording problem on our IMX6UL board.

Code is base on L3.14.52_1.1.0 BSP, but the board uses SAI3,  it's different from IMX6ULEVK which uses SAI2.

I refer Linux user guide section 7.3.5 Audio recording and use ALSA "arecord" utility  to test.

But can't record successfully.

 

We find the value of SAI3 0x20300A0 register(I2S3_RDRn) is no change  when recording,

But we can measure BCLK, LR CLK, or Data signal.

 

I will be appreciated if someone can help to fix the issue.

Thanks.

 

P.S. IMX6ULEVK with L4.1.15_1.0.0 or L4.1.15_1.1.0 demo image also can't recoard.

 

Some DTS configuration is modified as below.

IMX6UL.dtsi:
sai3: sai@02030000 {
     compatible = "fsl,imx6ul-sai";
     reg = <0x02030000 0x4000>;
     interrupts = <GIC_SPI 24 IRQ_TYPE_LEVEL_HIGH>;
     clocks = <&clks IMX6UL_CLK_SAI3_IPG>,
       <&clks IMX6UL_CLK_SAI3>,
       <&clks 0>, <&clks 0>;
     clock-names = "bus", "mclk1", "mclk2", "mclk3";
     dmas = <&sdma 39 25 0>,
            <&sdma 40 25 0>;
     dma-names = "rx", "tx";
     status = "disabled";
    };

 

IMX6UL-14x14-evk.dts:
sound {
  compatible = "fsl,imx-audio-rt5672";
  model = "rt5672-audio";
  cpu-dai = <&sai3>;
  audio-codec = <&codec>;
  codec-master;
  gpr = <&gpr>;
  hp-det = <1 0>;

 

&sai3 {
 pinctrl-names = "default";
 pinctrl-0 = <&pinctrl_sai3>;

 assigned-clocks = <&clks IMX6UL_CLK_SAI3_SEL>,
     <&clks IMX6UL_CLK_SAI3>;
 assigned-clock-parents = <&clks IMX6UL_CLK_PLL4_AUDIO_DIV>;
 assigned-clock-rates = <0>, <24576000>;

 status = "okay";
};

 

codec: rt5672@1c {
  compatible = "rt5670";
  reg = <0x1c>;
  clocks = <&clks IMX6UL_CLK_SAI3>;
  clock-names = "mclk";
 };

Outcomes