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

wm8960音频驱动移植到LEDE17.01系统_第1张图片

wm8960音频驱动移植到LEDE17.01系统_第2张图片

wm8960音频驱动移植到LEDE17.01系统_第3张图片

wm8960音频驱动移植到LEDE17.01系统_第4张图片

wm8960音频驱动移植到LEDE17.01系统_第5张图片

make menuconfig

wm8960音频驱动移植到LEDE17.01系统_第6张图片

你可能感兴趣的:(MT7628/MT7688)