patch:sc826-audio/kernel/msm-3.18/sound/i2c
如图:
2):修正sc826-audio/kernel/msm-3.18/sound/i2c 下面的Makefile
增加 fm的驱动编译 obj-m := rdafm_drv.o 如下图
3):把编译好的rdafm_drv.ko push 到板子的/data下面
3.1):adb push C:\Users\admin\Desktop\image\rdafm_drv.ko /data/
(C:\Users\admin\Desktop\image\rdafm_drv.ko 换本钱身 rdafm_drv.ko的路径)
3.2):adb root
3.3):adb remount
3.4):adb shell
3.5): chmod 777 /data/rdafm_drv.ko
3.6):insmod /data/rdafm_drv.ko
3.7):dmesg (有下图的打印就解释fm正常事情了)
4):驱动函数接口
4.1):写寄存器 static int RDAFM_write(struct i2c_client client, uint8_t addr, uint16_t val);
4.2):读寄存器 static int RDAFM_read(struct i2c_client client, uint8_t addr, uint16_t val);
4.3):设置固定频率测试函数 static void fm_test_tune(int mode, int freq);
5):驱动在设备树上挂载,kernel 设置dtsi,如下图
路径:arch/arm/boot/dts/qcom/sc826-cn-00-evk/msm8953-sc826-evk.dtsi
改动:
--- a/arch/arm/boot/dts/qcom/sc826-cn-00-evk/msm8953-sc826-evk.dtsi+++ b/arch/arm/boot/dts/qcom/sc826-cn-00-evk/msm8953-sc826-evk.dtsi@@ -193,9 +193,17 @@ &i2c_8 { / bd37033 / status = \"大众okay\公众; + rda5807@11 { + compatible = \"大众rda5807,fm\公众; + reg = <0x11>; + status = \公众okay\"大众; + }; };
备注 :1):FM的天线记得接上
2):PA功放的声频的入口须要调成FM对应的入口,操作如下
2.1):cd sys/bus/i2c/devices/8-0040 //进入sys/bus/i2c/devices/8-0040目录下
2.2):掌握音量接口
echo w 0x20 0x8a >com_test //语音增益掌握
echo w 0x06 0x03 >com_test //输入增益掌握
2.3):把声音切换到FM
echo w 0x05 0x00 >com_test //切换输入通道到fm
2.4):把声音切换回系统
echo w 0x05 0x02 >com_test //切换输入通道到系统
3):RDA5807M驱动源码
https://uploader.shimo.im/f/aNwjlxthkS8qjFI1.h?attname=rdafm_drv.h&download
https://uploader.shimo.im/f/FvcisX5tsigkWS72.c?attname=rdafm_drv.c&download