I have a trouble with configuring I2S audio output on Banana Pi CM4. I connect I2S DAC PCM5102A to TDM_B (GPIOA_1, GPIOA_2, GPIOA_3).
My device tree:
/ {
...
pcm5102a: pcm5102a {
#sound-dai-cells = <0>;
compatible = "ti,pcm5102a";
sound-name-prefix = "PCM5102A";
};
sound {
compatible = "amlogic,axg-sound-card";
model = "PCM5102A";
audio-aux-devs = <&tdmout_b>;
audio-routing = "TDMOUT_B IN 1", "FRDDR_B OUT 1",
"TDM_B Playback", "TDMOUT_B OUT";
clocks = <&clkc CLKID_MPLL2>,
<&clkc CLKID_MPLL0>,
<&clkc CLKID_MPLL1>;
assigned-clocks = <&clkc CLKID_MPLL2>,
<&clkc CLKID_MPLL0>,
<&clkc CLKID_MPLL1>;
assigned-clock-rates = <294912000>,
<270950400>,
<393216000>;
dai-link-0 {
sound-dai = <&frddr_b>;
};
dai-link-1 {
sound-dai = <&tdmif_b>;
dai-format = "i2s";
dai-tdm-slot-tx-mask-0 = <1 1>;
mclk-fs = <256>;
codec {
sound-dai = <&pcm5102a>;
};
};
};
};
&arb {
status = "okay";
};
&frddr_b {
status = "okay";
};
&clkc_audio {
status = "okay";
};
&tdmout_b {
status = "okay";
};
&tdmif_b {
status = "okay";
pinctrl-0 = <&tdm_b_sclk_pins>, <&tdm_b_fs_pins>, <&tdm_b_dout0_pins>;
pinctrl-names = "default";
assigned-clocks = <&clkc_audio AUD_CLKID_TDM_SCLK_PAD1>, <&clkc_audio AUD_CLKID_TDM_LRCLK_PAD1>;
assigned-clock-parents = <&clkc_audio AUD_CLKID_MST_B_SCLK>, <&clkc_audio AUD_CLKID_MST_B_LRCLK>;
assigned-clock-rates = <0>, <0>;
};
I have built-in kernel modules (linux 7.2.0):
- Amlogic AXG Playback FIFO support
- Amlogic AXG TDM Output Support
- Amlogic AXG Sound Card Support
- Texas Instruments PCM5102A CODEC
- Meson AXG Audio Clock Controller Driver
- AXG SoC clock controllers support
And I see soundcard, alsamixer shows it’s controls, but no actual signal on I2S pins during playing sound. Could you please help me with that?