openwrt+Linkit7688+WM8960:WM8960下I2S的REFCLK的时钟输出设置

来源:互联网 发布:three.js天空盒制作 编辑:程序博客网 时间:2024/06/06 19:36

引用
WM8960需要工作,需要一个I2C总线的读写寄存器,一个I2S来传输音频数据,还需要一个时钟源来提供时钟为WM8960工作。如果不采用外置12.288MHz有源晶振为时钟输入,就需要MT7688的REFCLK为WM8960提供时钟输入。

这里只需要修改一个地方就可以使REFCLK工作。

路径:

.../linux-x.xx.xx/sound/soc/mtk/Makefile

代码:

KBUILD_CFLAGS += -I$(srctree)ifeq ($(CONFIG_SND_MT76XX_SOC_MT7620),y)KBUILD_CFLAGS += -DCONFIG_MT7620 -DCONFIG_RALINK_MT7620endififeq ($(CONFIG_SND_MT76XX_SOC_MT7628),y)KBUILD_CFLAGS += -DCONFIG_MT7628 -DCONFIG_RALINK_MT7628endififeq ($(CONFIG_SOC_MT7620),y)KBUILD_CFLAGS += -DRALINK_SYSCTL_BASE=0xB0000000KBUILD_CFLAGS += -DRALINK_INTCL_BASE=0xB0000200KBUILD_CFLAGS += -DRALINK_PIO_BASE=0xB0000600KBUILD_CFLAGS += -DRALINK_I2S_BASE=0xB0000A00KBUILD_CFLAGS += -DRALINK_GDMA_BASE=0xB0002800KBUILD_CFLAGS += -DCONFIG_GDMA_EVERYBODYKBUILD_CFLAGS += -DCONFIG_SND_MT76XX_SOCKBUILD_CFLAGS += -DCONFIG_I2S_WM8960#KBUILD_CFLAGS += -DCONFIG_I2S_MCLK_12P288MHZKBUILD_CFLAGS += -DCONFIG_I2S_MCLK_12MHZKBUILD_CFLAGS += -DCONFIG_I2S_IN_MCLKKBUILD_CFLAGS += -DCONFIG_GDMA_EVERYBODYKBUILD_CFLAGS += -DSURFBOARDINT_DMA=15KBUILD_CFLAGS += -DRALINK_INTCTL_DMA=128KBUILD_CFLAGS += -DCONFIG_SND_SOC_WM8960endif

这里其实主要是添加一个

KBUILD_CFLAGS += -DCONFIG_I2S_IN_MCLK

到Makefile里面就可以了。

REFCLK引脚在调用WM8960播放声音的时候就会有时钟输出了。测试了频率是4MHz.

还有一种方法是打补丁的形式将KBUILD_CFLAGS += -DCONFIG_I2S_IN_MCLK添加进去。
https://github.com/hnhkj/CC15.05/commit/d74fcf753b37a2e6e8945ce56de30e341d06377d

这里感谢huangkj-henan:http://blog.csdn.net/hnhkj/article/details/50930483#reply的帮助

0 0