I2C 探测
参考
rk3399 自带了i2c的探测功能. 需要我们将其打开. 当i2c外设接入后可以先用i2c_detect来探测设备是否成功被识别.
打开I2C_detect
- 修改config
rk3399/source/kernel/arch/arm64/configs
添加:
- 修改kconfig文件
rk3399/source/kernel/drivers/i2c/busses/Kconfig
config I2C_ROCKCHIP
tristate "Rockchip I2C interface"
depends on ARCH_ROCKCHIP
help
If you say yes to this option, support will be included for the
Rockchip I2C interface.
This driver can also be built as a module. If so, the module
will be called i2c-rockchip.
- Makefile修改
rk3399/source/kernel/drivers/i2c/busses/Makefile
- 编译报错修改
然后编译会时出错,还需修改源码:
修改源文件
打开:kernel/drivers/i2c/busses/i2c-rockchip.c
注释头文件
后接着编译:
再注释文件rockchip_i2c_probe函数中的
还有:
rockchip_i2c_xfer函数中:
4、开始探测I2C设备:
首先看下我们的新产生的节点:
vi kernel/arch/arm64/boot/dts/rockchip/rk3399-firefly.dts
我的RK3399板子I2C1下面接了一个at24cxx,其地址是0X50
修改完dts后重新编译 , 将resource.img烧入重启测试.
同时外设的sda和scl需要接到rk3399的i2c1对应的管脚.
开始使用RK的探测工具探测I2C1:
rk3399_firefly_box:/ # echo 1 > /dev/i2c_detect