嵌入式设备开发专题《MT7688开发,wm8960音频驱动移植到LEDE17.01系统》

先说明,在openwrt和lede项目未合并之前,也就是在openwrt15.05版本,内核3.18.29,是集成wm8960驱动补丁的,当时合并之后lede17.01(内核版本4.4.124)去除了wm8960驱动补丁,所以得折腾把它加回去。widora发布的openwrt版本,内核3.18.29,是对wm8960的驱动做了小小的优化,所以选择采用widora所包含的驱动补丁进行移植。

默认mt7628/mt7688 refclk提供12MHZ MCLK,wm8960使用主机模式,i2s数据格式

1.先把widora下载并编译一次,从内核提取驱动:

位置:

build_dir/target-mipsel_24kec+dsp_uClibc-0.9.33.2/linux-ramips_mt7688/linux-3.18.29/sound/soc/mtk

build_dir/target-mipsel_24kec+dsp_uClibc-0.9.33.2/linux-ramips_mt7688/linux-3.18.29/sound/soc/codecs/wm8960.c

build_dir/target-mipsel_24kec+dsp_uClibc-0.9.33.2/linux-ramips_mt7688/linux-3.18.29/sound/soc/codecs/wm8960.h

build_dir/target-mipsel_24kec+dsp_uClibc-0.9.33.2/linux-ramips_mt7688/linux-3.18.29/include/sound/wm8960.h

2.下载lede17.01先编译一次,再把上述驱动cp到内核对应位置,并修改上层Makefile和Kconfig

Makefile    添加obj-$(CONFIG_SND_SOC)   += mtk /

Kconfig      添加source "sound/soc/mtk/Kconfig"

3.修改target/linux/ramips/dts/MT7628.dts,使其支持wm8960驱动(一定要使能i2c并注意i2s的io复用)

refclk {
ralink,group = "refclk";
ralink,function = "gpio";

};    //注意位置

i2s {

ralink,group = "i2s";
ralink,function = "i2s";

};    //注意位置

&i2c {

status = "okay";

};    //注意位置

4.修改相应接口,使其支持Linux4.4.124,修改后的驱动包已上传点击打开链接

5.make kernel_menuconfig 添加wm8960驱动 和 make menuconfig 添加alsa库和alsa命令工具

make kernel_menuconfig

make menuconfig

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

物联网研究室BBC

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值