工具/软件:
您好 TI 专家
SDK:0806
主板:Customer Board(No Matter)
这是我的设计:

我想通过 McASP0和 mcasp11从传感器获取音频数据。
A2B 菊花链的配置是通过 C6X_1的 I2C 进行配置的。
如何修改设备树以在 Linux 中创建两个声卡(McASP0和 mcasp11)、从而从两个声卡获取音频数据?
此致
Eason
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.
工具/软件:
您好 TI 专家
SDK:0806
主板:Customer Board(No Matter)
这是我的设计:

我想通过 McASP0和 mcasp11从传感器获取音频数据。
A2B 菊花链的配置是通过 C6X_1的 I2C 进行配置的。
如何修改设备树以在 Linux 中创建两个声卡(McASP0和 mcasp11)、从而从两个声卡获取音频数据?
此致
Eason
尊敬的 Eason:
您可以查看 TDA4VM EVM 器件树以获取灵感。 您只需为 McASP0和 McASP11创建器件树节点。
我还在该主题中介绍了更多详细信息: https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1501141/tda4vm-mcasp1-can-not-work
此外、您可以改用更新的 SDK 版本吗?
此致、
Jared
您好、Jared
我单击了错误按钮、此问题未解决、因此让我们继续讨论。
您提供的参考链接非常有用、但实际上我的问题未解决。 下面是我的调试方法和问题:
1)、我也使用 A2B 芯片 AD2428。在正常应用中、我集成或编写了 AD2428 编解码器驱动程序、但实际上、AD2428的配置是在 C6X_1上完成的(通过 I2C、但此 I2C 也配置了其他 A2B 芯片、因此不能在 Linux 上使用)、因此无法在 Linux 中添加 AD2428编解码器驱动程序。 所以我仍然需要编解码器???
2),我 修改了 dts 和一个虚拟编解码器:
mcasp0_pins_default: mcasp0_pins_default {
pinctrl-single,pins = <
J721E_IOPAD(0xd4, PIN_OUTPUT_PULLDOWN, 12) /* (AB26) PRG0_PRU0_GPO9.MCASP0_ACLKX */
J721E_IOPAD(0xd8, PIN_OUTPUT_PULLDOWN, 12) /* (AB25) PRG0_PRU0_GPO10.MCASP0_AFSX */
J721E_IOPAD(0xb0, PIN_INPUT_PULLDOWN, 12) /* (AF28) PRG0_PRU0_GPO0.MCASP0_AXR0 */
/* J721E_IOPAD(0xb4, PIN_INPUT_PULLDOWN, 12)*/ /* (AE28) PRG0_PRU0_GPO1.MCASP0_AXR1 */
J721E_IOPAD(0xc0, PIN_OUTPUT_PULLDOWN, 12) /* (AD25) PRG0_PRU0_GPO4.MCASP0_AXR2 */
/* J721E_IOPAD(0xc8, PIN_OUTPUT_PULLDOWN, 12)*/ /* (AE26) PRG0_PRU0_GPO6.MCASP0_AXR4 */
>;
};
sound2: sound@2 {
status = "okay";
compatible = "simple-audio-card";
simple-audio-card,name = "front-sensor-a2b3-mcasp0";
simple-audio-card,format = "left_j";
simple-audio-card,mclk-fs = <1024>;
simple-audio-card,bitclock-master = <&dailink2_master>;
simple-audio-card,frame-master = <&dailink2_master>;
dailink2_master: simple-audio-card,cpu {
sound-dai = <&mcasp0>;
dai-tdm-slot-num = <32>;
dai-tdm-slot-width = <32>;
mclk-fs = <1024>;
clocks = <&k3_clks 174 1>;
clock-names = "fck";
system-clock-direction-out;
};
simple-audio-card,codec {
sound-dai = <&dummy_codec2>;
};
};
dummy_codec2: dummy-codec2 {
status = "okay";
compatible = "autox,a2b-codec";
#sound-dai-cells = <0>;
id = <1>;
};
&mcasp0 {
status = "okay";
#sound-dai-cells = <0>;
pinctrl-names = "default";
pinctrl-0 = <&mcasp0_pins_default>;
op-mode = <0>; /* MCASP_IIS_MODE */
tdm-slots = <32>;
auxclk-fs-ratio = <1024>;
serial-dir = < /* 0: INACTIVE, 1: TX, 2: RX */
2 0 0 0
0 0 0 0
1 0 0 0
0 0 0 0
>;
tx-num-evt = <1>;
rx-num-evt = <1>;
};


希望得到您的支持。
此致
Eason
您好 Jared
[引述 userid="574088" url="~/support/processors-group/processors/f/processors-forum/1513738/tda4vm-how-add-new-snd-card-in-linux/5821243 #5821243"]如果您使用 AXR0作为 RX 和 AXR2作为 TX、则以下是正确的属性。
serial-dir = <
2 0 1 0
0 0 0 0
0 0 0 0
0 0 0 0
>;此致、
[/报价]好、
如何设置 McASP 插槽大小?
此致
Eason