Проблемы со звуком при использовании платы IMX6 (кодек max98357a) - PullRequest
0 голосов
/ 24 октября 2018

Я работаю над пользовательской платой на основе IMX6 Solo процессора и TX6S-8035 , пытаясь воспроизвести звук с помощью кодека MAX98357a .Я просто начинаю понимать, как работает дерево устройств. Я внедряю simple-audio-card в ядре linux 4.1.15 и использую следующий DTS, как это было предложено в i.MX6 и MA98357a, для simple-audio-card:

codec: max98357a@0 {
        compatible = "maxim,max98357a";
        #sound-dai-cells = <0>;
    };

    sound {
        compatible = "simple-audio-card";
        pinctrl-names = "default";
        pinctrl-0 = <&pinctrl_ssi1>;
        simple-audio-card,name = "TI3 Audio";
        simple-audio-card,format = "i2s";
        simple-audio-card,widgets = "Speaker", "Speakers";
        simple-audio-card,routing = "Speakers", "Speaker";
        simple-audio-card,bitclock-master = <&cpu_dai>;
        simple-audio-card,frame-master = <&cpu_dai>;
        cpu_dai: simple-audio-card,cpu {
            sound-dai = <&ssi1>;
            system-clock-frequency = <883200>;
            dai-tdm-slot-num = <2>;
            dai-tdm-slot-width = <16>;
        };
        codec_dai: simple-audio-card,codec {
            sound-dai = <&codec>;
        };
    };



&audmux {
    status = "okay";
    // Note: 'ssi1' (node of first SSI) corresponds to '_SSI0' below.
    ssi1 {
         fsl,audmux-port = <MX31_AUDMUX_PORT1_SSI0>;
         fsl,port-config = <
               0x00000000
               IMX_AUDMUX_V2_PDCR_RXDSEL(MX31_AUDMUX_PORT3_SSI_PINS_3)
               >;
           };


    aud3 {
      fsl,audmux-port = <MX31_AUDMUX_PORT3_SSI_PINS_3>;
      fsl,port-config = <
          (IMX_AUDMUX_V2_PTCR_TFSDIR |
          IMX_AUDMUX_V2_PTCR_TFSEL(MX31_AUDMUX_PORT1_SSI0) |
          IMX_AUDMUX_V2_PTCR_TCLKDIR |
          IMX_AUDMUX_V2_PTCR_TCSEL(MX31_AUDMUX_PORT1_SSI0))
          IMX_AUDMUX_V2_PDCR_RXDSEL(MX31_AUDMUX_PORT1_SSI0)
          >;
     };
};


&ssi1 {
      fsl,mode = "i2s-master";
      assigned-clocks = <&clks IMX6QDL_CLK_SSI1_SEL>, <&clks IMX6QDL_CLK_SSI1>;
      assigned-clock-parents = <&clks IMX6QDL_CLK_PLL4_AUDIO_DIV>;
      assigned-clock-rates = <0>, <49152000>; // 48kHz on SSI1 clock
      status = "okay";    
};

Кодек MAX98357a подключен к SSI1.Звуковая карта обнаружена ALSA.Но когда я пытаюсь воспроизвести аудиофайл, на динамике ничего не появляется, и на выводе SSI1 нет сигнала I2S.Есть ли у кого-нибудь идеи по этому вопросу.Благодарю.С наилучшими пожеланиями!

...