工具/软件:
我们目前正在器件树[LINUX-6.6.36]中测试以下配置、以使用 TPA3110D2PWP 放大器验证 TLV320AIC3101 编解码器。
但是、我们无法在 MICBIAS 获得电压、且在耳机播放时无法获得音频。
请求:
请提供 TLV320AIC3110 的正确器件树配置支持。
下面的支持申请单中提供了硬件设计原理图。 我们还附加了器件树以供审核。

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-6.6.36]中测试以下配置、以使用 TPA3110D2PWP 放大器验证 TLV320AIC3101 编解码器。
但是、我们无法在 MICBIAS 获得电压、且在耳机播放时无法获得音频。
请求:
请提供 TLV320AIC3110 的正确器件树配置支持。
下面的支持申请单中提供了硬件设计原理图。 我们还附加了器件树以供审核。

请查看我们用于编码的设备树。
请回顾一下音频放大器是否需要更改。
尊敬的 Mir:
在引脚 12 的 MICBIAS 电压下、我们无法通电。
MIC: arecord -D HW:0、0 -f S16_LE -r 48000 -c 2 -d 5 --buffer-size=4096 --periode-size=1024 mic-test.wav
命令执行无错误。
此外 、耳机插针 27 (LOUT) 和 30 (ROUT) 处没有模拟输出信号。
耳机: aplay -D 可播放:0、0 -f S16_LE -r 48000 -c 2 test.wav
谢谢您、
达门德拉
尊敬的 Dharmendra:
MICBIAS 是否有任何电压? 我想知道器件是否没有读取 DTS 配置的所有相关.h 文件 — 从 MICBIAS 默认值应为 2V、可以看到您已将其设置为 2.5V。 您可以阅读这篇之前的 E2E 关于此问题的文章: TLV320AIC3100:TLV320AIC31XX-Linux 驱动程序、设置麦克风偏置时的问题、Raspberry Pi 4
您可能还需要在 DTS 文件中添加音频路由属性、如下所述: https://www.kernel.org/doc/Documentation/devicetree/bindings/sound/tlv320aic31xx.txt
这在简单卡文档 https://www.kernel.org/doc/Documentation/devicetree/bindings/sound/simple-card.txt 中看起来像简单音频卡、路由=

但使用 aic31xx.txt 文件中定义的“HPL",“,"HPR"、"HPR"和“和"MIC1LP"“"MIC1LP"等“等标签“标签。
如果这对我有帮助、请告诉我! 我认为布线可能也会影响麦克风偏置、如果没有麦克风路由、那么可能不会开启偏置以节省电力。
此致、
Mir
尊敬的 Mir Jeffres :
非常感谢您的持续支持。
使用您建议的布线、我们能够获得 2.5V 的 MICBIAS 电压。
但是、我们仍然无法使用以下命令从麦克风捕获音频:
arecord -D HW:0、0 -f S16_LE -r 48000 -c 2 -d 5 mic-test.wav
您能否确认哪些引脚负责麦克风输入?
如果需要、我们可以使用 DSO 探测信号。
为了便于您参考、我们还随附了 dts 文件。
&sai1 {
#sound-dai-cells = <0>;
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_sai1>;
assigned-clocks = <&clk IMX8MP_CLK_SAI1>;
assigned-clock-parents = <&clk IMX8MP_AUDIO_PLL1_OUT>;
assigned-clock-rates = <12288000>;
fsl,sai-mclk-direction-output;
status = "okay";
};
.
.
.
&i2c6 {
clock-frequency = <100000>; /* Lower clock speed for external bus. */
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_i2c6>;
status = "okay";
tlv320aic3110: audio-codec@18 {
#sound-dai-cells = <0>;
compatible = "ti,tlv320aic3110";
reg = <0x18>;
pinctrl-0 = <&pinctrl_tlv320aic3110>;
clocks = <&audio_blk_ctrl IMX8MP_CLK_AUDIOMIX_SAI1_MCLK1>;
clock-names = "mclk";
assigned-clocks = <&audio_blk_ctrl IMX8MP_CLK_AUDIOMIX_SAI1_MCLK1>;
assigned-clock-rates = <24576000>;
mclk-frequency = <24576000>;
HPVDD-supply = <®_vcc_3v3>;
SPRVDD-supply = <®_vcc_3v3>;
SPLVDD-supply = <®_vcc_3v3>;
AVDD-supply = <®_vcc_3v3>;
IOVDD-supply = <®_vcc_3v3>;
DVDD-supply = <®_vcc_1v8>;
reset-gpios = <&gpio4 31 GPIO_ACTIVE_LOW>;
gpios = <&gpio4 13 GPIO_ACTIVE_HIGH>;
ai31xx-micbias-vg = <MICBIAS_2_5V>;
ai31xx-ocmv = <3>;
};
.
.
.
sound {
compatible = "simple-audio-card";
simple-audio-card,name = "kirtan_sak";
simple-audio-card,format = "i2s";
simple-audio-card,bitclock-master = <&dailink_master>;
simple-audio-card,frame-master = <&dailink_master>;
simple-audio-card,convert-rate = <48000>;
simple-audio-card,widgets =
"Microphone", "Microphone Jack",
"Headphone", "Headphone Jack";
simple-audio-card,routing =
"MIC1RP", "Microphone Jack",
"Microphone Jack", "MICBIAS",
"MIC1RP P-Terminal", "Microphone Jack",
"Microphone Jack", "MICBIAS",
"Headphone Jack", "HPL",
"Headphone Jack", "HPR";
dailink_master: simple-audio-card,cpu {
sound-dai = <&sai1>;
system-clock-direction-out;
};
dailink_codec: simple-audio-card,codec {
sound-dai = <&tlv320aic3110>;
system-clock-frequency = <12000000>;
};
};
谢谢您、
达门德拉·萨瓦利亚。
尊敬的 Dharmendra:
根据 DTS 布线、将麦克风输入设置为 MIC1RP、尽管这只是 P 端子、但通常需要 PGA 的 P 端子和 M 端子。 我看到、对于 PGA 的 M 端子、它只是连接了 MIC1LM、由于您在原理图中将其悬空、因此您需要使用软件将 MIC1LM 配置为连接到共模 VCOM。 它现在可能无法在驱动程序中完全受支持、但我发现了这一点、我想我们可以在 aic31xx.c 驱动程序文件中再添加几行、或者检查 amixer GUI 中存在的内容...

该寄存器需要进行更改才能将 PGA 的 M 端子连接到 VCOM、第 1 页寄存器 49 位 7-6:

我们在 tlv320aic31xx.h 文件中可以看到、 第 1 页寄存器 49 定义为“AIC31XX_MICPGAMI":“: 
在 tlv320aic31xx.c 文件中搜索此内容时、提到 3 次:
首先在默认值部分:

然后在这里两次:

因此、我们正在寻找 cm_m_enum 来定义与此处相对应的 dts 文件条目。 但是、“cm_m_enum"在此“在此文件中仅提及一次、就在这里。 同时、mic1lm_m_enum 如下所述:

因此、要直观地使用驱动器更改共模设置、我们需要为 cm_m_enum 添加一个等效的 snd_kcontrol_new 条目、如下所示:

然后、我们可以针对 DTS 路由文件中的共模连接、其目标与您对“MIC1RP P 终端“所做的类似。
另外、请注意、您需要包括以下设置之一、才能使麦克风选择正常工作、即使对于您的 MIC1RP P 终端也是如此:

我认为这些是应该在 amixer 中填充的东西、GUI 称为 alsamixer。 请检查,在你改变任何驱动程序之前,我很抱歉,如果我使它更复杂. 如果更改 alamixer 或 DTS 没有帮助、我们也可以尝试更改默认寄存器值。 请发送您所看到的 alsamixer 设置的屏幕截图、如果您可以在录制期间获取寄存器转储、这也会很有帮助。
此致、
Mir
您好、 Jeff McPherson
当我们尝试使用麦克风进行录制时、麦克风的 MICBIAS 上出现电压变化。
但是当我们探测到 MIC1RP 时 — 我们在麦克风上讲话时没有信号。
您能否帮助调试此问题(顺便说一下,我们使用的是 ICS-40212 麦克风)?
谢谢你
达门德拉·萨瓦利亚