RK3399 I2C 外设接入

I2C 探测

参考
rk3399 自带了i2c的探测功能. 需要我们将其打开. 当i2c外设接入后可以先用i2c_detect来探测设备是否成功被识别.

打开I2C_detect
  1. 修改config
    rk3399/source/kernel/arch/arm64/configs
    添加:
    添加config_i2c_rockchip
  2. 修改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.
  1. Makefile修改
    rk3399/source/kernel/drivers/i2c/busses/Makefile
    修改makefile
  2. 编译报错修改
    然后编译会时出错,还需修改源码:
    修改源文件
    打开:kernel/drivers/i2c/busses/i2c-rockchip.c
    注释头文件
    remove of_i2c.h
    后接着编译:

再注释文件rockchip_i2c_probe函数中的
fix_probe

还有:
rockchip_i2c_xfer函数中:

fix_xfer
fix_xfer2

4、开始探测I2C设备:
首先看下我们的新产生的节点:
vi kernel/arch/arm64/boot/dts/rockchip/rk3399-firefly.dts
i2c1_at24cxx

我的RK3399板子I2C1下面接了一个at24cxx,其地址是0X50

修改完dts后重新编译 , 将resource.img烧入重启测试.
同时外设的sda和scl需要接到rk3399的i2c1对应的管脚.

开始使用RK的探测工具探测I2C1:

rk3399_firefly_box:/ # echo 1 > /dev/i2c_detect

dmesg

I2C 驱动编写
  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值