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.

[参考译文] TAS2780:IMX8MP SoC 的 DTS 设置和音频支持

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

https://e2e.ti.com/support/audio-group/audio/f/audio-forum/1235589/tas2780-dts-setting-and-audio-support-with-imx8mp-soc

器件型号:TAS2780

您好!  

我将尝试在与 IMX8M P SOC 耦合的载板上启用 TAS2780。  

我已 在互联网上找到5.10.xxx 的内核补丁、并想知道 如何在 DTS 中声明器件。  

您可以提供支持。

B.回顾

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

    您好、Olivier、

    很高兴通过 e2e 再次与您见面。 我想知道操作系统是 Linux 还是 Android。

    关于 DTS 设置、这是 BBB 的准则、希望这可以帮助您。

    Linux 音频驱动程序指南(TI.com)

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

    您好、Shenghao:

    感谢您的答复和文档。  

    我会尝试它。 尽快  

    我将从 Yocto Hardknot 构建运行 Linux。  

    此致

    是否能够再次提供驱动器的源。 我不确定我的版本(tas27xx 补丁)?

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

    以下是 tas2780的两个不同代码。

    一个已上传到 Linux 社区、并已成为内核的一部分

    tas2780.c«编解码器«soc«声音- kernel/git/torvalds/linux.git - Linux 内核源码树

    另一个是:

    lpaa-android-drivers/tasdevice-linux-driver -未命名的存储库;编辑此文件"说明"以命名存储库。

    在该副本中、所有寄存器设置都位于 bin 文件中。

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

    您好,Shenghao,  

    我试图将 lpaa-android-drivers/tasdriver-linux-driver 作为外部模块纳入我的 Yocto 项目,但它在编译时失败: 错误:'fw_action_uevENT' undecade  

    请参阅以下内容:  

    Log data follows:
    | DEBUG: Executing shell function do_compile
    | NOTE: make -j 8 KERNEL_SRC=/data/build/adlink-yocto-bsp_1v5/dls01build/tmp/work-shared/lec-imx8mp/kernel-source KERNEL_PATH=/data/build/adlink-yocto-bsp_1v5/dls01build/tmp/work-shared/lec-imx8mp/kernel-source KERNEL_VERSION=5.10.72-lts-5.10.y+ge1553135bba4 CC=ccache aarch64-poky-linux-gcc   -fuse-ld=bfd -fmacro-prefix-map=/data/build/adlink-yocto-bsp_1v5/dls01build/tmp/work/lec_imx8mp-poky-linux/tasdevice-mod/0.1-r0=/usr/src/debug/tasdevice-mod/0.1-r0                      -fdebug-prefix-map=/data/build/adlink-yocto-bsp_1v5/dls01build/tmp/work/lec_imx8mp-poky-linux/tasdevice-mod/0.1-r0=/usr/src/debug/tasdevice-mod/0.1-r0                      -fdebug-prefix-map=/data/build/adlink-yocto-bsp_1v5/dls01build/tmp/work/lec_imx8mp-poky-linux/tasdevice-mod/0.1-r0/recipe-sysroot=                      -fdebug-prefix-map=/data/build/adlink-yocto-bsp_1v5/dls01build/tmp/work/lec_imx8mp-poky-linux/tasdevice-mod/0.1-r0/recipe-sysroot-native=  -fdebug-prefix-map=/data/build/adlink-yocto-bsp_1v5/dls01build/tmp/work-shared/lec-imx8mp/kernel-source=/usr/src/kernel LD=ccache aarch64-poky-linux-ld.bfd   AR=ccache aarch64-poky-linux-ar  O=/data/build/adlink-yocto-bsp_1v5/dls01build/tmp/work-shared/lec-imx8mp/kernel-build-artifacts KBUILD_EXTRA_SYMBOLS=
    | make -C /data/build/adlink-yocto-bsp_1v5/dls01build/tmp/work-shared/lec-imx8mp/kernel-source M=/data/build/adlink-yocto-bsp_1v5/dls01build/tmp/work/lec_imx8mp-poky-linux/tasdevice-mod/0.1-r0
    | make[1]: Entering directory '/data/build/adlink-yocto-bsp_1v5/dls01build/tmp/work-shared/lec-imx8mp/kernel-source'
    | make[2]: Entering directory '/data/build/adlink-yocto-bsp_1v5/dls01build/tmp/work-shared/lec-imx8mp/kernel-build-artifacts'
    |   CC [M]  /data/build/adlink-yocto-bsp_1v5/dls01build/tmp/work/lec_imx8mp-poky-linux/tasdevice-mod/0.1-r0/tasdevice-regbin.o
    |   CC [M]  /data/build/adlink-yocto-bsp_1v5/dls01build/tmp/work/lec_imx8mp-poky-linux/tasdevice-mod/0.1-r0/tasdevice-core.o
    |   CC [M]  /data/build/adlink-yocto-bsp_1v5/dls01build/tmp/work/lec_imx8mp-poky-linux/tasdevice-mod/0.1-r0/tasdevice-node.o
    |   CC [M]  /data/build/adlink-yocto-bsp_1v5/dls01build/tmp/work/lec_imx8mp-poky-linux/tasdevice-mod/0.1-r0/tasdevice-rw.o
    |   CC [M]  /data/build/adlink-yocto-bsp_1v5/dls01build/tmp/work/lec_imx8mp-poky-linux/tasdevice-mod/0.1-r0/tas2780-irq.o
    |   CC [M]  /data/build/adlink-yocto-bsp_1v5/dls01build/tmp/work/lec_imx8mp-poky-linux/tasdevice-mod/0.1-r0/tas2770-irq.o
    |   CC [M]  /data/build/adlink-yocto-bsp_1v5/dls01build/tmp/work/lec_imx8mp-poky-linux/tasdevice-mod/0.1-r0/tas2564-irq.o
    |   CC [M]  /data/build/adlink-yocto-bsp_1v5/dls01build/tmp/work/lec_imx8mp-poky-linux/tasdevice-mod/0.1-r0/tas2560-irq.o
    |   CC [M]  /data/build/adlink-yocto-bsp_1v5/dls01build/tmp/work/lec_imx8mp-poky-linux/tasdevice-mod/0.1-r0/pcm9211-irq.o
    | ../../../work/lec_imx8mp-poky-linux/tasdevice-mod/0.1-r0/tasdevice-core.c: In function 'tasdevice_codec_probe':
    | ../../../work/lec_imx8mp-poky-linux/tasdevice-mod/0.1-r0/tasdevice-core.c:395:45: error: 'FW_ACTION_UEVENT' undeclared (first use in this function)
    |   395 |  ret = request_firmware_nowait(THIS_MODULE, FW_ACTION_UEVENT,
    |       |                                             ^~~~~~~~~~~~~~~~
    | ../../../work/lec_imx8mp-poky-linux/tasdevice-mod/0.1-r0/tasdevice-core.c:395:45: note: each undeclared identifier is reported only once for each function it appears in
    | ../../../work/lec_imx8mp-poky-linux/tasdevice-mod/0.1-r0/tasdevice-core.c: At top level:
    | ../../../work/lec_imx8mp-poky-linux/tasdevice-mod/0.1-r0/tasdevice-core.c:549:4: error: 'struct snd_soc_dai_driver' has no member named 'symmetric_rate'; did you mean 'symmetric_rates'?
    |   549 |   .symmetric_rate = 1,
    |       |    ^~~~~~~~~~~~~~
    |       |    symmetric_rates
    | ../../../work/lec_imx8mp-poky-linux/tasdevice-mod/0.1-r0/tasdevice-core.c:549:21: warning: initialization of 'const struct snd_soc_cdai_ops *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
    |   549 |   .symmetric_rate = 1,
    |       |                     ^
    | ../../../work/lec_imx8mp-poky-linux/tasdevice-mod/0.1-r0/tasdevice-core.c:549:21: note: (near initialization for 'tasdevice_dai_driver[0].cops')
    | make[3]: *** [/data/build/adlink-yocto-bsp_1v5/dls01build/tmp/work-shared/lec-imx8mp/kernel-source/scripts/Makefile.build:280: /data/build/adlink-yocto-bsp_1v5/dls01build/tmp/work/lec_imx8mp-poky-linux/tasdevice-mod/0.1-r0/tasdevice-core.o] Error 1
    | make[3]: *** Waiting for unfinished jobs....
    | ../../../work/lec_imx8mp-poky-linux/tasdevice-mod/0.1-r0/tasdevice-node.c: In function 'tas_fwload_store':
    | ../../../work/lec_imx8mp-poky-linux/tasdevice-mod/0.1-r0/tasdevice-node.c:554:46: error: 'FW_ACTION_UEVENT' undeclared (first use in this function)
    |   554 |   ret = request_firmware_nowait(THIS_MODULE, FW_ACTION_UEVENT,
    |       |                                              ^~~~~~~~~~~~~~~~
    

    如何生成 bin (固件)文件?  

    如果我  在内部版本中使用 tas2780.c,我需要这些步骤吗?还需要固件吗?  

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

    作为固件、依次选择下载 regbin 工具及其指南。

    tool - lpa-android-drivers/pcmdevice-linux-driver - Unnamed repository;编辑此文件'description'以命名存储库。

    FW_ACTION_UEVENT 在5.18之后引入、请更改为 FW_ACTION_HOTPLUG 。

    在 tasdeivce git 分支中,如果你检查提交历史记录,你会发现一年前我们的代码 使用  fw_action_hotplug。