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.

[参考译文] Linux/TLV320AIC3105:tlv320aic3105播放挂起

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

https://e2e.ti.com/support/audio-group/audio/f/audio-forum/594290/linux-tlv320aic3105-tlv320aic3105-playback-hangs

部件号:TLV320AIC3105

工具/软件:Linux

您好,

在我的应用程序中,我使用BeagleBone Green作为主机,并使用tlv320aic3105自定义音频角。 我使用TI处理器SDK修改器件树AM335x-bonegreen.dts并将其替换为BeagleBone Green。 我看到声卡设置如下:

****播放硬件设备列表****

卡0:EVM [DA830 EVM-],器件0:AIC3X tlv320aic3X-hifi-0[]

 子设备:1/1

 子设备#0:子设备#0

但是,当我运行回放测试时,测试挂起。 以下是测试结果:

a播放/usr/share/doc/Sounds/alsa/Front_Center.wav

播放wave '/usr/share/sounds/alsa/Front_Center.wav':已签名的16位Little Endian,速率4.8万 Hz,Mono

这里有一个问题:当我尝试配置tlv320aic3105时,我必须使用i2cset -f -y强制更改寄存器的值,例如:

i2cset -f -y 2 0x18 0x00 0x00

我不知道导致此问题的原因,我不确定是否由于此问题而导致播放挂起。

此致,

Bruce

 

 

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

    你好,Bruce,

    很遗憾,我们没有有效的Linux支持, 本文仅提及可用的Linux代码。 我负责3105的同事已收到有关您问题的通知,也许他可以提供更多信息。

    此致,

     -Diego Mel é ndez López ñ a
      音频应用工程师

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

    感谢您给我发送链接,但我的问题是为什么在使用i2ctect -r 0x18进行探测时,tlv320aic3105正忙,这表示它正忙,我必须强制更改寄存器的值。 以下是支持aic3105的设备树:

    McASP0_PINS_DEFAULT:McASP0_PINS_DEFAULT {
    pinctrl-single,pins =<

    0x190 (PIN_OUTPUT | MUX_MODE0)/*请参阅BBB AUDIO CAPE*/
    0x194 (PIN_OUTPUT | MUX_MODE0)
    0x198 (PIN_input | MUX_MODE0)/*(D12) McASP0_axr0.McASP0_axr0 */
    0x19c ( PIN_OUTPUT | MUX_Mode2 )/*(C12) McASP0_ahclkr.McASP0_axr2 */

    0x86c (PIN_OUTPT_PULLDOWN | MUX_MODE7)/* GPMC_A11.GPIO1_27 */

    >;
    };

    /*可选的休眠PIN设置。 必须在下面的框架中手动输入值。 */
    McASP0_PINS_SLEEP:McASP0_PINS_SLEEP {
    pinctrl-single,pins =<
    0x190 (PIN_INPUT_PULLDOWN | MUX_MODE7)/*(A13) McASP0_aclkx.McASP0_aclkx */
    0x194 (PIN_INPUT_PULLDOWN | MUX_MODE7)/*(B13) McASP0_FSX.McASP0_FSX */
    0x198 (PIN_INPUT_PULLDOWN | MUX_MODE7)/*(D12) McASP0_axr0.McASP0_axr0 */
    0x19c ( PIN_INPUT_PULLDOWN | MUX_MODE7 )/*(C12) McASP0_ahclkr.McASP0_axr2 */

    0x86c (PIN_INPUT_PULLDOWN | MUX_MODE7)/* GPMC_A11.GPIO1_27 */
    >;
    };


    i2c2_pins:pinmix_i2c2_pins{
    pinctrl-single,pins =<
    0x178 0x73
    0x17c 0x73
    /* 0x178 (PIN_INPUT_PULUP | MUX_MODE3)*//* uart1_CTSN.i2c2_sda */
    /* 0x17c (PIN_input_pullup | MUX_MODE3)*//* uart1_rtsn.i2c2_SCL */
    >;
    };

    i2c2{
    pinctrl-names ="default";
    pinctrl-0 =<&i2c2_pins>;

    状态="正常";
    时钟频率=<10万>;

    tlv320aic3x:tlv320aic3x@18{
    兼容="ti,tlv320aic3x";
    REG =<0x18>;
    状态="正常";
    };
    };

    &McASP0 {
    pinctrl-names ="default","sleep";
    pinctrl-0 =<&McASP0_PINS_DEFAULT>;
    pinctrl-1 =<&McASP0_PINS_SLEE>;
    状态="正常";

    OP模式=<0>; /* MCASP_IIS_MODE */
    TDM插槽=<2>;
    num-serializer =<16>;
    serial-dir =</* 0:非活动,1:TX,2:Rx */
    0 2 1 0
    0 0 0 0
    0 0 0 0
    0 0 0 0
    >;
    tx-num-evt =<1>;
    rx-num-evt =<1>;
    };

    /{
    CLK_McASP0_FIXED:CLK_McASP0_FIXED {
    #clock-cells =<0>;
    兼容="固定时钟";
    时钟频率=<2457.6万>;
    };

    CLK_McASP0:CLK_McASP0 {
    #clock-cells =<0>;
    兼容="GPIO栅极时钟";
    Clocks =<&clk_McASP0_fixed>;
    enable-GPIOs =<&GPIO1 27 0>;/*改回,BG 05/10/17 */
    };

    声音{
    兼容="ti,DA830-EVM-AUDIO";
    TI,型号="DA830 EVM";
    TI,音频编解码器=<&tlv320aic3x>;
    TI,McASP-controller =<&McASP0>;
    TI,音频路由=
    "耳机插孔", "HPLOUT",
    "耳机插孔", "HPROUT";

    Clocks =<&clk_McASP0_fixed>;
    Clock-names ="MCLK";
    };

    我在AM335x-bonegreen.dts和AM335x-bone-common.dtsi上进行了这些更改,然后从TI处理器SDK (ti-processor-SDK-Linux-AM335x-EVM-EVM-SDK- 03.02 .00.05)进行编译。

    我不知道哪里出错了。


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

    遗憾的是,我们不为Linux驱动程序提供支持。 有关Linux驱动程序的所有信息均可在我的同事提供的链接中找到。

    此致,
    Luis Fernando Rodríguez ñ o S.