开发环境:ubuntu+openwrt15.05
开发套件:Linkit Smart 7688
这里介绍怎么修改I2C的时钟频率。
官方文档说没有提供I2C根据不同工程修改不同的时钟频率,也就是说I2C的时钟频率在一个工程下是固定的。
在openwrt下配置的Linkit Smart 7688里面,
碰巧又用到了一个I2C的设备时钟频率很低,只能降低I2C时钟频率来满足使用。
目录(linux-3.18.44:不同内核版本也不一样):
/openwrt/build_dir/target-mipsel_24kec+dsp_uClibc-0.9.33.2/linux-ramips_mt7688/linux-3.18.44/drivers/i2c/busses/i2c-ralink.c
在i2c-ralink.c中第60行:
#define CLKDIV_VALUE 200
这个是个分频值,默认的主频是40MHz的,所以#define CLKDIV_VALUE=200,实际输出就是200KHz。
具体的就按照自己的需求去修改吧。