小菜鸟请教一个I2C设备驱动的问题
四极管 2012-05-15 09:04:44 使用设备驱动模型,
static struct i2c_gpio_platform_data i2c_xxx_platdata = {
.sda_pin = GPIO_xxx_SDA, // gpio number
.scl_pin = GPIO_xxx_SCL,
.udelay = 5,
.sda_is_open_drain = 0,
.scl_is_open_drain = 0,
.scl_is_output_only = 0
};
static struct i2c_board_info i2c_devs5[] __initdata = {
{
I2C_BOARD_INFO("xxx", 0x10),
},
};
static struct platform_device linux_device_i2c5 = {
.name = "i2c-gpio",
.id = 5, // adepter number
.dev.platform_data = &i2c_xxx_platdata,
}
static struct platform_device *smdkc110_devices[] __initdata = {
中包含:
&linux_device_i2c5,
模拟的定义都设定好了,
I2C设备驱动程序
xxx_ts_probe也进入了。。但是在我读写的时候总是提示i2c_transfer这个函数出错。。
错误信息为:
msg xxx_i2c_rxdata i2c read error:-6
开始怀疑硬件是否出错。但是我使用I2CGET和I2CSET工具是可以读出数据的。。是我的设备还没有挂载上?
但是程序确实是执行了初始化xxx_ts_probe,在读数据和写数据的时候出错的。。。小菜鸟一个,希望大牛们能指点一二。感激不尽