应用程序可以访问at24c08呢?
先来看一个最简单的i2c设备驱动:
static struct i2c_board_info at24cxx_info = { //所支持的i2c设备的列表
I2C_BOARD_INFO("at24c08", 0x50), //一项代表一个支持的设备,它的名字叫做“at24c08”,器件地址是0x50
}
static struct i2c_client *at24cxx_client
static int at24cxx_dev_init(void)
{
struct i2c_adapter *i2c_adap //分配一个适配器的指针
i2c_adap = i2c_get_adapter(0) //调用core层的函数,获得一个i2c总线。这里我们已经知道新增的器件挂接在编号为0的i2c总线上
at24cxx_client = i2c_new_device(i2c_adap, &at24cxx_info) // 把i2c适配器和新增的I2C器件关联起来,这个用了i2c总线0,地址是0x50。这就组成了一个客户端
at24cxx_client i2c_put_adapter(i2c_adap)
return 0
}
static void at24cxx_dev_exit(void)
{
i2c_unregister_device(at24cxx_client)
}
module_init(at24cxx_dev_init)
module_exit(at24cxx_dev_exit)
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)