WM8978 on Colibri iMX7

Hi @gustavo.tx,

i’ve tested your device tree, unfortunately it failed with “no sound card found”. After changing it to following I’m getting rid of the error:

/ {
     sound-wm8978 {
         compatible = "simple-audio-card";
         status="okay";
         simple-audio-card,name = "Wolfson WM8978";
 
             simple-audio-card,widgets =
                 "Microphone", "Built-in Microphone",
                 "Line", "Line-in Jack",
                 "Line", "Aux-in Jack",
                 "Headphone", "Headphone Jack",
                 "Speaker", "Built-in Speaker";
             simple-audio-card,routing =
                 "LMICP", "Built-in Microphone",
                 "RMICP", "Built-in Microphone",
                 "L2", "Line-in Jack",
                 "R2", "Line-in Jack",
                 "LAUX", "Aux-in Jack",
                 "RAUX", "Aux-in Jack",
                 "Headphone Jack", "LHP",
                 "Headphone Jack", "RHP";
         simple-audio-card,format = "i2s";
         simple-audio-card,cpu {
               sound-dai = <&sai2 0>;
               system-clock-frequency = <3072000>;
               
                


         };
         simple-audio-card,codec {
             sound-dai = <&wm8978 0>;
            clocks = <&clks IMX7D_AUDIO_MCLK_ROOT_CLK>;
            bitclock-master;
            frame-master;
         };
 
 
     };
 };
 
 &i2c3 {
     clock-frequency = <400000>;
     pinctrl-names = "default";
     status = "okay";
     pinctrl-0 = <&pinctrl_i2c3>;
 
     wm8978: wm8978@1a {
        compatible = "wlf,wm8978";
        #sound-dai-cells = <0>;
        clocks = <&clks IMX7D_AUDIO_MCLK_ROOT_CLK>;
        reg = <0x1a>;
     };
 };

It’s now playing sound. Anyway I have to test the correct output tomorrow or on Monday. It would be great not to close this post until then :wink:

Can you also give me some info, why I need to set this clock?

Best regards