This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[参考译文] TLV320AIC3204:2个音频编解码器(TLV320AIC3204音频编解码器和 Max 9860)共存

Guru**** 2489685 points
Other Parts Discussed in Thread: TLV320AIC3204

请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/audio-group/audio/f/audio-forum/887152/tlv320aic3204-cohabitation-between-2-audio-codecs-tlv320aic3204-audio-codec-and-max-9860

器件型号:TLV320AIC3204

您好!

实际上、我正在开发在 devicetree 中实现 MAX9860单声道音频语音编解码器。

TLV320AIC3204音频编解码器工作正常 、操作系统(嵌入式 Linux)可以使用命令"aplay -l "来查看它。

因此、在内核中、我已经激活了 MAX9860音频编解码器、但是、我不知道如何在 TLV 编解码器旁边的器件树中声明它。

因此、我已经在 i2c 节点中尝试过类似的操作:

max9860:max9860@10{
      兼容="maxim、max9860";
      reg =<0x10>;
      时钟=<&max9860_clock>;
      时钟名称="MCLK";
      supple-av =<Registered_aud_AVDD>;
      supple-dv =<Registered_aud_dvdd>;
      supple-dvdio =<Registered_aud_dvdio>;    
   };

然后、我添加了一个稳压器

   reg_aud_dvdio:reg_aud_dvdio{
      兼容="稳压器固定";
      电脑控制器名称="dvdio";
      稳压器最小微伏=<1800000>;
      稳压器最大值微伏=<1800000>;
      稳压器常开;
   };

然后、我在"时钟"中创建了一个子节点"max9860_clock"

   时钟{
               CODEC 时钟:clk12M{
                       兼容="固定时钟";
                       #clock-cells =<0>;
                       时钟频率=<12000000>;
               };
      
      max9860_clock:clkmax9860{
         兼容="固定时钟";
                       #clock-cells =<0>;
                       时钟频率=<12288000>;
      };
       };

当我这样声明时、devicetree 编译良好、当我在嵌入式系统 Linux 的命令行上放置"i2cdetect -y 0"时、地址0x10 (MAX9860)会显示 UU。 但是、当我在 Linux 上执行命令"aplay -l "时、编解码器不会出现。

因此、我的声音节点看起来像这样:

听起来{
      兼容="eukrea、ASOC-tlv320";
       eukrea、model ="TLV320AIC3204音频编解码器";
       SSI-controller =<&SSI1>;
       codec-handle =<编解码器>;
       FSL、mux-int-port =<1>;
       FSL、mux-ext-port =<3>;
       状态="正常";
   };

SSI1{(&S)
   codec-handle =<编解码器>;
   FSL、MODE ="I2S-SLAVE;
   状态="正常";
};

SSI2{
   编解码器句柄=<&max9860>;
   FSL、MODE ="I2S-SLAVE;
   状态="正常";
};

我知道我应该修改声音节点来指定 MAX9860、但我已经尝试了、但这并不成功、我遇到了编译错误:

秘书长的报告

Sound0:声音@0{
      兼容="简单音频卡";
      简单音频卡、小工具="耳机"、"耳机插孔";
      简单音频卡,路由=
         "耳机插孔"、"HPLEFT"、
         "耳机插孔"、"HPRIGHT"、
         "LEFTIN"、"HPL"、
         "RIGHTIN"、"HPR";
      
      简单音频卡、CPU{
         Sound-Dai =<&SSI2>;
      };
      简单音频卡、编解码器{
         Sound-Dai =<&max9860>;
         时钟=<&max9860_clock>;
      };
   }

   Sound1:声音@1{
      兼容="eukrea、ASOC-tlv320";    
   }

听起来{
      兼容="eukrea、ASOC-tlv320";
       eukrea、model ="TLV320AIC3204音频编解码器";
       SSI-controller =<&SSI1>;
       codec-handle =<编解码器>;
       FSL、mux-int-port =<1>;
       FSL、mux-ext-port =<3>;
       状态="正常";
   };

秘书长的报告

我在这种环境中很新,所以如果有人有一个可以帮助的想法,谢谢:-)

此致、Anthony

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    Anthony、  

    我可以为 AIC3204提供支持、但我不会认为自己是 Linux 专家、 我建议将其添加到 Linux 论坛之一

    此致、

    -Steve Wilson