本文转载自:http://blog.csdn.net/kris_fei/article/details/70053135
Platform: ROCKCHIP
OS: Android 6.0
Kernel: 3.10.92
以rt5631为例,后续遇到再增加.
使用tinyalsa工具确定播放音问题是否在驱动层
1|root@rk3288:/data # tinycap test.wav
Capturing sample: 2 ch, 44100 hz, 16 bit
^CCaptured 167936 frames
root@rk3288:/data # tinyplay test.wav
Playing sample: 2 ch, 44100 hz, 16 bit
查看codec寄存器和正常的对比:
root@rk3288:/data # cat /sys/kernel/debug/asoc/RK_RT5631/rt5631.2-001a/codec_reg <
00: 0000
01: 0000
//省略...
查看i2s寄存器和正常的对比:
root@rk3288:/data # cat /sys/kernel/debug/regmap/ff890000.rockchip-i2s/registers
00: 0000000f
04: 00000000
08: 00033f3f
0c: 00000000
10: 000f0010
14: 00000000
18: 00000000
1c: 00000000
20: 00000000
28: 00000000
查看播放或者录音时的sw/hw parameters:(注意,要在工作的时候才有效)
root@rk3288:/proc/asound/card0/pcm0p/sub0 # cat sw_params
tstamp_mode: ENABLE
period_step: 1
avail_min: 1
start_threshold: 1536
stop_threshold: 3072
silence_threshold: 0
silence_size: 0
boundary: 1610612736
root@rk3288:/proc/asound/card0/pcm0p/sub0 # cat hw_params
access: RW_INTERLEAVED
format: S16_LE
subformat: STD
channels: 2
rate: 44100 (44100/1)
period_size: 512
buffer_size: 3072
硬件部分用示波器量一下I2S是否有信号