IMX6 wm8960 驱动调试记录

最近在调试wm8960, 在此记录一下。

ALSA 架构下,imx6平台的wm8960驱动支持两种模式。

codec-master

在codec-master模式下,由芯片旁的晶振提供mclk时钟(我用的是24m),wm8960输出bclk时钟给cpu

codec-slave

在codec-slave模式下,由cpu输出mclk时钟(我用的是24m),bclk时钟给wm8960.

在两种模式的切换时,有个坑,在imx6内部有个音频路由模块audmux,默认的代码只用于codec-slave模式

...
   ret = imx_audmux_v2_configure_port(int_port,
            IMX_AUDMUX_V2_PTCR_SYN |
            IMX_AUDMUX_V2_PTCR_TFSEL(ext_port) |
            IMX_AUDMUX_V2_PTCR_TCSEL(ext_port) |
            IMX_AUDMUX_V2_PTCR_TFSDIR |
            IMX_AUDMUX_V2_PTCR_TCLKDIR,
            IMX_AUDMUX_V2_PDCR_RXDSEL(ext_port));
...

请将ext_port 和int_port的位置交换,才能用于codec-master模式。修改为:

...
   ret = imx_audmux_v2_configure_port(ext_port,
            IMX_AUDMUX_V2_PTCR_SYN |
            IMX_AUDMUX_V2_PTCR_TFSEL(int_port) |
            IMX_AUDMUX_V2_PTCR_TCSEL(int_port) |
            IMX_AUDMUX_V2_PTCR_TFSDIR |
            IMX_AUDMUX_V2_PTCR_TCLKDIR,
            IMX_AUDMUX_V2_PDCR_RXDSEL(int_port));
...

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值