Which Khadas SBC do you use?
VIM3
Which system do you use? Android, Ubuntu, OOWOW or others?
Android P 32bit
当前配置一颗语音芯片 CSK6012
注意到VIM3 管脚映射为

为GPIOA1-GPIOA4
现在时钟由语音芯片提供,需设置A311D为i2s从模式,我看了kvim3.dts 文件
当前/
,“tdmb_slv_sclk”, “tdmb_slv_fs”/; 是注释状态,需要用到的时候是否需要开注释,该如何配置
修改后用tinycap 哪个设备可以录音验证,谢谢
@smartdev 没调试过类似的芯片。也许可以参考es8316来搞。输入下面命令查找相应提交:
common$ git log --grep="8316" -p
amlogic平台都是只有一个声卡,只是选择不同的devices而已。输入下面命令即可找到你声卡的devices:
cat proc/asound/card0/pcm*c/info
通过对应的id字符找到对应的device。例如:
card: 0
device: 1
subdevice: 0
stream: CAPTURE
id: TDM-B-ES8316-HiFi-alsaPORT-i2s-i2s4hdmirx multicodec-1
name:
subname: subdevice #0
class: 0
subclass: 0
subdevices_count: 1
subdevices_avail: 1
@goenjoy 你好,
我参考了这个文档,但是我发现其中的修改 tdmb_din2 为GPIOA5管脚并没有引出,理论上我需要使用GPIOA4 作为输入 是不是应该改为tdmb_din1,还有就是 dai-tdm-lane-slot-mask-in 这个是什么的对应关系,我改成 GPIOA4 这个是不是也要修改
链接中的修改位置对应
1 Like
可能是写错了,应该是tdmb_din1
才对。
下面文档有详细介绍,你可以参考下。希望这篇文档有助于帮到你。
链接:https://pan.baidu.com/s/1DYZXaSTGJ6l_uJP6_xHmDA
提取码:jr8q
1 Like
@goenjoy 你好,我看了相关文档,里面dts的举例是用了A311D2的较多,有A311D的文档dts参考吗 
@goenjoy 就是相关文档有没类似 Revision: 0.2 或者 Revision: 0.1
@smartdev 没有。amlogic平台一如即往统一,参考A311D2也就是参考A311D。
今天刚好有个项目调试涉及dai-tdm-lane-slot-mask-in
和dai-tdm-lane-slot-mask-out
修改。研读了给你上传的文档,发现A311D和A311D2还是不一样的。
A311D中的dai-tdm-lane-slot-mask-in
和dai-tdm-lane-slot-mask-out
都是表示<0,1,2,3>顺序排列。比如:
--- a/arch/arm64/boot/dts/amlogic/kvim3l.dts
+++ b/arch/arm64/boot/dts/amlogic/kvim3l.dts
@@ -1087,18 +1074,25 @@
tdmc: tdm@2 {
compatible = "amlogic, sm1-snd-tdmc";
#sound-dai-cells = <0>;
- dai-tdm-lane-slot-mask-in = <1 0 0 0>;
- #dai-tdm-lane-slot-mask-out = <1 0 1 1>;
+ dai-tdm-lane-slot-mask-in = <0 1 0 0>;
+ dai-tdm-lane-slot-mask-out = <0 0 0 1>;
#dai-tdm-lane-oe-slot-mask-in = <0 0 0 0>;
#dai-tdm-lane-oe-slot-mask-out = <1 0 0 0>;
tdmout_c:tdmout_c {
- mux { /* GPIOA_12, GPIOA_13, GPIOA_8*/
+ mux { /* GPIOA_12, GPIOA_13, GPIOA_7*/
groups = "tdmc_sclk_a",
"tdmc_fs_a",
- "tdmc_dout0_a"
+ "tdmc_dout3_a"
/*, "tdmc_dout2",
* "tdmc_dout3"
*/;
function = "tdmc_out";
};
};
tdmin_c:tdmin_c {
- mux { /* GPIOA_10 */
- groups = "tdmc_din0_a";
+ mux { /* GPIOA_9 */
+ groups = "tdmc_din1_a";
function = "tdmc_in";
};
};
其中tdmc_dout3_a对应的是输出第3位,tdmc_din1_a对应的是输入第1位。故对应的配置则为:
+ dai-tdm-lane-slot-mask-in = <0 1 0 0>;
+ dai-tdm-lane-slot-mask-out = <0 0 0 1>;