Enable SAI1 MCLK in IMX8mq board

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

Enable SAI1 MCLK in IMX8mq board

Jump to solution
1,288 Views
saurav-pandya
Contributor III

Hi ,

I am working on imx8mq board and trying to enable SAI1 mclk. 

Device tree configuration:

pin configuration

pinctrl_sai1: sai1grp {
fsl,pins = <
      MX8MQ_IOMUXC_SAI1_MCLK_SAI1_MCLK 0xd6
      MX8MQ_IOMUXC_SAI1_TXC_SAI1_TX_BCLK 0xd6
      MX8MQ_IOMUXC_SAI1_TXFS_SAI1_TX_SYNC 0xd6
      MX8MQ_IOMUXC_SAI1_RXD0_SAI1_RX_DATA0 0xd6
      MX8MQ_IOMUXC_SAI1_TXD0_SAI1_TX_DATA0 0xd6
    >;
};

sound-ssm2518 {
compatible = "simple-audio-card";
status="okay";
simple-audio-card,name = "ssm2518-audio";
simple-audio-card,format = "i2s";
simple-audio-card,bitclock-master = <&dai_cpu>;
simple-audio-card,frame-master = <&dai_cpu>;
/*
simple-audio-card,widgets =
"DAC", "playback",
"DAC", "DAC";/*
"Line", "Unbalanced Out",
"Line", "Unbalanced In";
simple-audio-card,routing =
"LINEVOUTL", "DAC",
"LINEVOUTL", "DAC";
"Balanced Out", "OUTL",
"Unbalanced Out", "OUTR";*/
dai_cpu: simple-audio-card,cpu {
sound-dai = <&sai1>;
};

dai0_codec: simple-audio-card,codec {
sound-dai = <&ssm2518>;
clocks = <&clk IMX8MQ_CLK_SAI1>;
clock-names = "mclk";
};

/*simple-audio-card,widgets =
"DACL", "HiFi Playback",
"DACR", "HiFi Playback";
simple-audio-card,routing =
"HiFi Playback", "OUTL",
"HiFi Playback", "OUTL";
simple-audio-card,cpu {
sound-dai = <&sai1>;
};
simple-audio-card,codec {
sound-dai = <&ssm2518>;
};*/
};

&i2c2 {
        clock-frequency = <100000>;
        pinctrl-names = "default";
        pinctrl-0 = <&pinctrl_i2c2>;
        status = "okay";

        ssm2518:ssm2518@34 {

              compatible = "adi,ssm2518";

              #sound-dai-cells = <0>;
              reg = <0x36>;
              status = "okay";
        };

};

&sai1 {
        #sound-dai-cells = <0>;
        pinctrl-names = "default";
        pinctrl-0 = <&pinctrl_sai1>;
/*clock-names = "bus", "mclk1", "mclk2", "mclk3";*/
assigned-clocks = <&clk IMX8MQ_CLK_SAI1>,
                                            <&clk IMX8MQ_CLK_SAI1>;

        assigned-clock-parents = <&clk IMX8MQ_AUDIO_PLL1_OUT>;
        assigned-clock-rates = <0>, <12288000>;
        fsl,sai-mclk-direction-output;
        fsl,sai-synchronous-rx;
        status = "okay";
};

SO, I configure device tree for mclk but got error.

failed to get mclk1 clock 

 

Please help me on this issue.

Thanks,

0 Kudos
Reply
1 Solution
1,283 Views
igorpadykov
NXP Employee
NXP Employee

Hi Saurav

 

one can look at sai1 example below (seems "clocks", "clock-names" are missed)

https://source.codeaurora.org/external/imx/linux-imx/tree/arch/arm64/boot/dts/freescale/imx8mq-evk.d...

 

Best regards
igor

View solution in original post

0 Kudos
Reply
2 Replies
621 Views
rajeshkorabandi
Contributor I

in imx8mm

sound-wm8524 {
compatible = "fsl,imx-audio-wm8524";
model = "wm8524-audio";
audio-cpu = <&sai3>;
audio-codec = <&wm8524>;
audio-routing =
"Line Out Jack", "LINEVOUTL",
"Line Out Jack", "LINEVOUTR";
};

 

what does the following line represents

audio-cpu = <&sai3>;

0 Kudos
Reply
1,284 Views
igorpadykov
NXP Employee
NXP Employee

Hi Saurav

 

one can look at sai1 example below (seems "clocks", "clock-names" are missed)

https://source.codeaurora.org/external/imx/linux-imx/tree/arch/arm64/boot/dts/freescale/imx8mq-evk.d...

 

Best regards
igor

0 Kudos
Reply