Tool/software:
we have issue with speaker, we have connected two speakers across, right speaker working fine, but left speaker not able listen when i set to full volume some low music able here, below is the ckt and i2c dump.
Bellow is my dts
sound-tlv320aic310x {
compatible = "simple-audio-card";
simple-audio-card,name = "sound-tlv320aic310x";
simple-audio-card,format = "i2s";
simple-audio-card,bitclock-master = <&cpudai2>;
simple-audio-card,frame-master = <&cpudai2>;
/* simple-audio-card,mclk-fs = <256>;*/
simple-audio-card,widgets =
"Microphone", "Microphone Jack",
"Line", "Line In Jack",
"Line", "Line Out Jack",
"Headphone", "Headphone Jack",
"Speaker", "Speaker External",
"Line", "POTS Line In",
"Line", "External Mic";
simple-audio-card,routing =
"Headphone Jack", "HPLOUT",
"Headphone Jack", "HPROUT",
"LINE2R", "POTS Line In",
"Line Out Jack", "LLOUT",
"Line Out Jack", "RLOUT";
cpudai2:simple-audio-card,cpu {
sound-dai = <&sai3>;
clocks = <&clk IMX8MP_CLK_SAI3_ROOT>;
dai-tdm-slot-num = <2>;
dai-tdm-slot-width = <32>;
dai-tdm-slot-tx-mask = <0 0 0 0 0 0 0 0>;
dai-tdm-slot-rx-mask = <1 1 1 1 0 0 0 0>;
};
simple-audio-card,codec {
sound-dai = <&codec>;
/*clocks = <&audio_blk_ctrl IMX8MP_CLK_AUDIO_BLK_CTRL_SAI3_MCLK1>; */
clocks = <&clk IMX8MP_CLK_SAI3_ROOT>;
};
};
codec: codec@18 {
#sound-dai-cells=<0>;
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_tlv320>;
compatible = "ti,tlv320aic3x";
reg = <0x18>;
reset-gpios = <&gpio1 10 GPIO_ACTIVE_LOW>;
ai31xx-micbias-vg = <MICBIAS_2_0V>;
/* ai31xx-micbias-vg = <MICBIAS_AVDDV>; */
IOVDD-supply = <&buck5>;
DVDD-supply = <&buck5>;
AVDD-supply = <&buck4>;
DRVDD-supply = <&buck4>;
};
&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 = <24576000>;
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>, <&clk IMX8MP_AUDIO_PLL1_OUT>, <&clk IMX8MP_AUDIO_PLL2_OUT>;
clock-names = "bus", "mclk0", "mclk1", "mclk2", "mclk3", "pll8k", "pll11k";
fsl,sai-mclk-direction-output;
/*fsl,sai-synchronous-rx;*/
status = "okay";
};
pinctrl_tlv320: tlv320grp {
fsl,pins = <
MX8MP_IOMUXC_GPIO1_IO10__GPIO1_IO10 0x00
>;
};
pinctrl_sai3: sai3grp {
fsl,pins = <
MX8MP_IOMUXC_SAI3_TXFS__AUDIOMIX_SAI3_TX_SYNC 0xd6
MX8MP_IOMUXC_SAI3_TXC__AUDIOMIX_SAI3_TX_BCLK 0xd6
MX8MP_IOMUXC_SAI3_RXD__AUDIOMIX_SAI3_RX_DATA00 0xd6
MX8MP_IOMUXC_SAI3_TXD__AUDIOMIX_SAI3_TX_DATA00 0xd6
MX8MP_IOMUXC_SAI3_MCLK__AUDIOMIX_SAI3_MCLK 0xd6
MX8MP_IOMUXC_SAI3_RXFS__GPIO4_IO28 0xd6
MX8MP_IOMUXC_SAI3_RXC__GPIO4_IO29 0xd6
>;
};