android 通信失败,[RK3288][Android6.0] 调试笔记 --- I2C通信失败问题

在使用Rockchip RK3288平台,搭载Android 6.0系统和内核3.10.92的设备上,遇到I2C5接口读写时出现错误日志,主要表现为地址等待超时和启动位设置问题。通过对比kernel源码中的rk3288-pinctrl.dtsi文件发现,I2C配置存在两种不同的情况,但数据手册并未明确说明这两种复用功能的区别。为解决此问题,建议检查和修改相关GPIO配置,确保I2C5的时序和信号正确。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Platform: Rockchip

OS: Android 6.0

Kernel: 3.10.92

使用rk3288的i2c5读写时,会出现以下error log:

root@rk3288:/ # cat /sys/bus/i2c/drivers/at24/5-0050/eeprom

[   24.297924] rockchip_i2c ff170000.i2c: Addr[0x0050] wait event timeout, state: 1, is_busy: 1, error: 0, complete_what: 0x0, ipd: 0x0

[   24.302052] rockchip_i2c ff170000.i2c: I2C_CON: start bit is set

[   24.514383] rockchip_i2c ff170000.i2c: Addr[0x0050] wait event timeout, state: 2, is_busy: 1, error: 0, complete_what: 0x2, ipd: 0x20

解决方法:

[kris@:~/rk3288/kernel]$ g df arch/arm/boot/dts/rk3288-pinctrl.dtsi

diff --git a/arch/arm/boot/dts/rk3288-pinctrl.dtsi b/arch/arm/boot/dts/rk3288-pinctrl.dtsi

index a35d4d7..4a4ebc8 100755

--- a/arch/arm/boot/dts/rk3288-pinctrl.dtsi

+++ b/arch/arm/boot/dts/rk3288-pinctrl.dtsi

@@ -404,21 +404,21 @@

gpio7_i2c5 {

i2c5_sda:i2c5-sda {

-                               rockchip,pins = ;

+                               rockchip,pins = ;

rockchip,pull = ;

rockchip,drive = ;

//rockchip,tristate = ;

};

i2c5_scl:i2c5-scl {

-                               rockchip,pins = ;

+                               rockchip,pins = ;

rockchip,pull = ;

rockchip,drive = ;

//rockchip,tristate = ;

};

i2c5_gpio: i2c5-gpio {

-                               rockchip,pins = , ;

+                               rockchip,pins = , ;

rockchip,drive = ;

};

};

很奇怪I2C的配置居然也有两种,datasheet也没具体说明这两种i2c复用功能的区别.

0818b9ca8b590ca3270a3433284dd417.png

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值