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

Platform: Rockchip
OS: Android 6.0
Kernel: 3.10.92

使用rk3288的i2c5读写时,会出现以下error log:
[email protected]:/ # 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

解决方法:
[[email protected]:~/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 = <EDPHDMII2C_SDA>;
+                               rockchip,pins = <I2C5HDMI_SDA>;
                                rockchip,pull = <VALUE_PULL_NORMAL>;
                                rockchip,drive = <VALUE_DRV_DEFAULT>;
                                //rockchip,tristate = <VALUE_TRI_DEFAULT>;
                        };
 
                        i2c5_scl:i2c5-scl {
-                               rockchip,pins = <EDPHDMII2C_SCL>;
+                               rockchip,pins = <I2C5HDMI_SCL>;
                                rockchip,pull = <VALUE_PULL_NORMAL>;
                                rockchip,drive = <VALUE_DRV_DEFAULT>;
                                //rockchip,tristate = <VALUE_TRI_DEFAULT>;
                        };
 
                        i2c5_gpio: i2c5-gpio {
-                               rockchip,pins = <FUNC_TO_GPIO(EDPHDMII2C_SDA)>, <FUNC_TO_GPIO(EDPHDMII2C_SCL)>;
+                               rockchip,pins = <FUNC_TO_GPIO(I2C5HDMI_SDA)>, <FUNC_TO_GPIO(I2C5HDMI_SCL)>;
                                rockchip,drive = <VALUE_DRV_DEFAULT>;
                        };
                };

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

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