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.

[参考译文] TLV320AIC3111:Linux 问题

Guru**** 2476055 points
Other Parts Discussed in Thread: TLV320AIC3111

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

https://e2e.ti.com/support/audio-group/audio/f/audio-forum/808597/tlv320aic3111-linux-issue

器件型号:TLV320AIC3111

您好!

我尝试将 TLV320AIC3111与运行 Linux 的 NXP i.MX8M 搭配使用。 我按照此处 http://www.ti.com/tool/tlv320aic31xxsw-linux;的说明  、使用 menuconfig 启用了 nd_SOC_TLV320AIC31XX、并在器件树中添加了以下条目:

i2c3{(&I)
时钟频率=<100000 >;
pinctrl-names ="default";
pinctrl-0 =<&pinctrl_i2c3>;
状态="正常";

tlv320aic311x:tlv320aic311x@18{
兼容="ti、tlv320aic311x";
reg =<0x18>;
ai31xx 微偏置 vg = ;
RESET-GPIO =<&GPIO4 28 GPIO_ACTIVE_LOW>;
AVDD-SUPPLY =<Registered音频板>;
HPVDD-SUPPLY =<Registered音频板>;
SPRVDD 电源=<Registered_AUDIO_board>;
SPLVDD-SUPPLY =<Registered音频板>;
IOVdd-supply =<Registered音频板>;
DVDD 电源=<Registered音频板>;
};

};

Saa1{(&S)
pinctrl-names ="default";
pinctrl-0 =<&pinctrl_sa1>;
分配的时钟=<&clk IMX8MM_CLK_SAI1_SRC>、
<&clk IMX8MM_CLK_SAI1_DIV>;
分配的时钟父级=<&clk IMX8MM_AUDIO_PLL1_OUT>;
分配的时钟速率=<0>、<24576000>;
状态="正常";
};

sound-tlv320aic311x{
兼容="ti、tlv320aic311x";
型号="tlv320aic311x-audio";
audio-CPU =<?Saa1?;
音频编解码器=<&tlv320aic311x>;
音频路由=
"左扬声器"、"SPL"、
"右侧扬声器"、"SPR"、
"MIC1LM"、"MIC";
};

目前、我使用的是与 USB 板分离的3111 EVM、因此稳压器实际上不在 i.MX 板的控制之下。 我在 tlv320aic31xx.c 中注释了以下几行:

/*表示(i = 0;i < array_size (aic31xx-> supplies);i++)
aic31xx-> suppli[i]。supply = aic31xx_supply_names[i];

RET = devm_reguler_bulk_get (aic31xx->dev、
array_size (aic31xx-> supplies)、
aic31xx->耗材);
如果(RET!= 0)
DEV_ERR(aic31xx->dev,“Failed to request supplies:%d\n", ret);*/

当我 grep "tlv"时,我在 dmesg 中得到以下错误:

[4.310678]  tlv320aic31xx-codec: probe of 2-0018 failed with error 157556304 (错误157556304)

我使用的是 I2C 2、编解码器的地址为0x18、这让我想知道是否存在 I2C 问题。 我已成功将 I2C 用于此板上的其他器件、当我运行 i2cdetect 时、会显示18 - 2:

0 1 2 3 4 5 6 7 8 9 A b c d e f
00:------------ ------------ ------
10:UU UU UU UU UU ------ 18 ---------- ----
20:UU ---------- ------------ ------------
30:------------ ------------ ---- UU ------
40:40 ------------ ------------ ------------
50:50 ---------- ------------ ------------
60:------------ ------------ ------------ --
70:------------ ------

有什么想法吗?

谢谢、

Dave

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

    您好、Dave、

    我们目前不支持在音频编解码器产品上进行 Linux 驱动程序开发或调试。  可用的驱动程序应该是一个有用的起点、然后您需要完成平台的集成。

    关于后续步骤、请捕获 I2C 通信的示波器捕获、此时一切正常。   

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

    您好、Collin、

    通过在 tlv320aic31xx.c 中进行此更改、我得以解决了这个问题:

    //#define AIC31XX_NUM_耗材6.
    #define AIC31XX_NUM_supplies 1.
    静态 const char * const aic31xx_supply_names[AIC31XX_NUM_supples]={
    //"HPVDD"、
    //"SPRVDD"、
    //"SPLVDD"、
    //"AVDD"、
    //"IOVDD"、
    //"DVDD"、
    "虚拟"、
    };

    我未评论对稳压器的检查、现在驱动器似乎加载正确。 也许我可以通过在器件树中输入虚拟来获得相同的结果、但我没有机会尝试它。

    Dave

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

    Dave、

    非常感谢您通过所需的更新联系我们和社区!

    谢谢!