Imx8 How to use DAI audio connection to Codec

We have been trying to add the SSM4567 sound driver to our custom Yocto build. The kernel driver has been added to the kernel configuration file.
Additionally, the DTSI file was modified. There is a suspicion that the DTSI changes are not working.
Could you please assist me in understanding the steps I need to take in order to make this driver work and to be recognized by Linux as a sound card?

In our system, we use iMX8QM. We designed a custom board based on the Apalis Evaluation Board V1.1, which uses the imx8qm SOM. Our custom board changes are adding a few GPIOs and adding a SSM4567.

Following are the changes related to ssm4567.

I have added ssm4567 to i2c3 and it is seen by using command line tools.

> /* Apalis I2C3 (CAM) */
> &i2c3 {
> 	pinctrl-names = "default";
> 	pinctrl-0 = <&pinctrl_lpi2c3>;
> 	#address-cells = <1>;
> 	#size-cells = <0>;
> 	clock-frequency = <100000>;
> 	ssm4567: ssm4567@34 {
> 		compatible = "ssm4567";
> 		reg = <0x34>;
> 		};
> };

SSM4567 is seen in i2c port, and it is bonded to ssm4567 driver as seen in the Linux command line.


I also added message prints to “ssm4567_i2c_probe” function to check if the function is called and it does not return an error. Is is called and does not return an error.

What is not working is defining the sound card on device tree,
Need some help on defining codec and DAI connections in device tree.

 sound {
compatible = "simple-audio-card";
simple-audio-card,bitclock-master = <&dailink_master>;
simple-audio-card,format = "i2s";
simple-audio-card,frame-master = <&dailink_master>;
/* simple-audio-card,mclk-fs = <1>; */
simple-audio-card,name = "ssm4567";
        status = "okay";
simple-audio-card,cpu {
sound-dai = <&sai1>;
dailink_master: simple-audio-card,codec {
clocks = <&mclkout0_lpcg 0>;
sound-dai = <&ssm4567-hifi>; 

“aplay -l” and alasamixer could not detect it.

ALSA lib ../../alsa-lib- Cannot get card index for apalisimx8qmsgt
cannot open mixer: No such device

And some dmesg logs related :

[    2.227860] asoc-simple-card: probe of sound failed with error -22
[    2.318370] imx-audmix imx-audmix.0: failed to find SAI platform device
[    2.325248] imx-audmix: probe of imx-audmix.0 failed with error -22

Ssm4567 driver:

Kernel config changed, added for ssm4567.

The yocto setup uses imx8-apalis-v1.1.dtsi device tree file.
device-trees/imx8-apalis-v1.1.dtsi at toradex_5.4-2.1.x-imx · toradex/device-trees · GitHub

Toradex Apalis iMX8QM V1.1
Kernel version: 5.4.193