MAX98357a Verdin overlay

Hello, I was assigned to another project and only got to work on this for the last couple of days.
I’ve found few posts on forum from people that had similar problems.

https://community.toradex.com/t/max98357-on-imx8/
https://community.toradex.com/t/imx7-max98357a-device-tree-settings/

I’ve managed to make some progress with my overlay and I’ve added max98357a module to a new TCB image:

/dts-v1/;
/plugin/;

#include <imx8mm-pinfunc.h>
#include <dt-bindings/clock/imx8mm-clock.h>
#include <dt-bindings/interrupt-controller/irq.h>
#include <dt-bindings/gpio/gpio.h>

/ {
    compatible = "toradex,verdin-imx8mm";

    fragment@0
    {
        // MADA FAKA: target-path != target
        target-path = "/";
        __overlay__{
            codec_max: max98357a@0
            {
                compatible = "maxim,max98357a";
                #sound-dai-cells = <0>;
                status = "okay";
            };
        };
    };

    fragment@1
    {
        target = <&nau8822_1a>;
        __overlay__{
            status = "disabled";
        };
    };

    fragment@2
    {
        target = <&sound_card>;
        __overlay__{
            compatible = "simple-audio-card";
            pinctrl-names = "default";
            simple-audio-card,name = "max98357a";
            simple-audio-card,test = "jebenica";
            simple-audio-card,format = "i2s";
            
            simple-audio-card,widgets = "Speaker", "Speakers";
		    simple-audio-card,routing = "Speakers", "Speaker";

            simple-audio-card,bitclock-master = <&dailink_master_cpu>;
            simple-audio-card,frame-master = <&dailink_master_cpu>;

            dailink_master: simple-audio-card,codec {
                sound-dai = <&codec_max>;
                clocks = <&clk IMX8MM_CLK_SAI2>;
            };

            dailink_master_cpu: simple-audio-card,cpu {
                sound-dai = <&sai2>;
            };
        };
    };

    fragment@3
    {
        target = <&pinctrl_sai2>;
        __overlay__{
            fsl,pins = <
                MX8MM_IOMUXC_SAI2_TXFS_SAI2_TX_SYNC		0x1d6	/* SODIMM 32 */
                MX8MM_IOMUXC_SAI2_TXC_SAI2_TX_BCLK		0x1d6	/* SODIMM 30 */
                MX8MM_IOMUXC_SAI2_TXD0_SAI2_TX_DATA0		0x96	/* SODIMM 34 */
		>;
        };
    };

    fragment@4
    {
        target = <&sai2>;
        __overlay__{
            #saund-dai-cells = <0>;
            pinctrl-names = "default";
            pinctrl-0 = <&pinctrl_sai2>;
            
            fsl,sai-asynchronous;
            fsl,sai-mclk-direction-output;

            clock-names = "bus", "mclk0", "mclk1", "mclk2", "mclk3";

            assigned-clocks = <&clk IMX8MM_CLK_SAI2>;
            assigned-clock-parents = <&clk IMX8MM_AUDIO_PLL1_OUT>;
            assigend-clock-rates = <24576000>;
            
            status = "okay";
        };
    };
};

After the boot MAX98357a module and overlay are loaded, speaker-test transmits noise and I can hear it on speakers, but when trying to play .wav file dmesg returns:

aplay rajan.wav

[Wed Jun 29 14:57:09 2022] fsl-sai 30020000.sai: failed to derive required Tx rate: 1411200
[Wed Jun 29 14:57:09 2022] fsl-sai 30020000.sai: ASoC: can't set 30020000.sai hw params: -22

I converted .wav to 48 kHz rate and when I play it, MAX98357a aoutputs some strange noise, similar to noise generated by speaker-test.
I think the problem lays in clock configuration but I dont know what to do about it, can somebody help me ?