I2S configuration

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?