DM8127的i2c2 在linux kernel下的初始化
io初始化
sprintf(mux_name, "uart0_dcdn.i2c2_scl_mux0");
omap_mux_init_signal(mux_name, OMAP_PIN_INPUT_PULLUP);
sprintf(mux_name, "uart0_dsrn.i2c2_sda_mux0");
omap_mux_init_signal(mux_name, OMAP_PIN_INPUT_PULLUP);
总线初始化
static void __init ti814x_evm_i2c_init(void)
{
/* There are 4 instances of I2C in TI814X but currently only one
* instance is being used on the TI8148 EVM
*/
omap_register_i2c_bus(1, 100, ti814x_i2c_boardinfo,
ARRAY_SIZE(ti814x_i2c_boardinfo));
omap_register_i2c_bus(2, 100, ti814x_i2c_boardinfo,
ARRAY_SIZE(ti814x_i2c_boardinfo));
omap_register_i2c_bus(3, 100, ti814x_i2c_boardinfo_2,
ARRAY_SIZE(ti814x_i2c_boardinfo_2));
}
在/dev 目录下生成 i2c-1、i2c-2、i2c-3 设备节点
然后i2c-3 设备能够打开但不能读写报错 总线也没有数据输出
omap_i2c omap_i2c.3: controller timed out :omap_i2c_xfer_msg
I2C (0x66): Raw Read ERROR !!! count = 1)
i2c-1却能正常使用