Hello Everyone,
I am working with two rt5640 audio chips having imx8mplus soc. In both of the audio chip one is working in slave mode and the other one is master. IMX8MPLUS soc is master mode for rt5640 slave and slave for rt5640 master. I am not getting sound in any one of them.
But first I need to focus for the rt5640 slave chip and have to work it. I am able to make audio card for rt5640 and also getting data on the i2c-3 bus for it. But when I try to play a wav file or record I get "Unsupported clock setting 44100 for DAI 0".
It is not getting the proper clock setting for rt5640 work in slave mode. Here I am attaching some pieces of code which I have configured and rt5640 driver code.
imx8mp-evk.dts
&i2c4 {
clock-frequency = <400000>;
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_i2c4>;
status = "okay";
codec: rt5640@1c {
compatible = "realtek,rt5640";
reg = <0x1c>;
clocks = <&audio_blk_ctrl IMX8MP_CLK_AUDIO_BLK_CTRL_SAI3_MCLK1>;
//clock-names = "mclk";
clock-names = "bus", "mclk0", "mclk1", "mclk2", "mclk3";
interrupt-parent=<&gpio1>;
interrupts=<11 IRQ_TYPE_LEVEL_HIGH>;
realtek,in1-differential = "true";
realtek,in2-differential = "true";
//realtek,in3-differential = "true";
realtek,jack-detect-source = <0>;
status = "okay";
};
};
&sai3 {
#sound-dai-cells = <0>;
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_sai3>;
assigned-clocks = <&clk IMX8MP_CLK_SAI3>;
assigned-clock-parents = <&clk IMX8MP_AUDIO_PLL1_OUT>;
//assigned-clock-rates = <12288000>;
assigned-clock-rates = <786432000>, <393216000>, <49152000>, <12288000>, <49152000>;
clocks = <&audio_blk_ctrl IMX8MP_CLK_AUDIO_BLK_CTRL_SAI3_IPG>, <&clk IMX8MP_CLK_DUMMY>,
<&audio_blk_ctrl IMX8MP_CLK_AUDIO_BLK_CTRL_SAI3_MCLK1>, <&clk IMX8MP_CLK_DUMMY>,
<&clk IMX8MP_CLK_DUMMY>;
clock-names = "bus", "mclk0", "mclk1", "mclk2", "mclk3";
fsl,sai-mclk-direction-output;
status = "okay";
};
sound-rt5640 {
compatible = "fsl,imx-audio-rt5640";
model = "rt5640-audio";
audio-cpu = <&sai3>;
audio-codec = <&codec>;
audio-ascr =<&easrc>;
hp-det-gpio=<&gpio1 13 0>;
mic-det-gpio=<&gpio1 12 0>;
audio-routing =
"Headphone Jack", "HPO_L",
"Headphone Jack", "HPO_R",
"Ext Spk", "SPO_LP",
"Ext Spk", "SPO_LN",
"Ext Spk", "SPO_RP",
"Ext Spk", "SPO_RN",
"IN2P", "Mic Jack",
"IN2N", "Mic Jack",
"Mic Jack", "MICBIAS1";
constraint-rate = <8000>,
<11025>,
<12000>,
<16000>,
<22050>,
<24000>,
<32000>,
<44100>,
<48000>,
<88200>,
<96000>,
<176400>,
<192000>;
staus = "okay";
};
why am I getting this unsupported clock setting how to resolve this for rt5640 slave working?
Thanks in Advance