linux I2C驱动 i2c_set_clientdata函数和i2c_get_clientdata函数
2018-01-19 11:24
3015 查看
最近在研究I2C驱动,碰到了一对函数不知道什么意思,也看了网上的好多帖子,结合自己的分析来说一说它们的作用吧。
这两个函数的作用起始就是方便我们通过client来找到设备。比如我们自定义了一个结构体用来保存数据
struct my_I2C_data {
struct i2c_client *client;
struct input_dev *input_dev;
struct work_struct pen_event_work;
struct workqueue_struct *ts_workqueue;
};
当我们行进到probe函数时,可以这样做
struct my_I2C_data* save_data;
............................
i2c_set_clientdata(client, save_data);
这样就可以将此结构体保存在client中,当我们需要使用到结构体内数据时,可以这样
struct my_I2C_data* resave_data;
resave_data = (struct my_I2C_data)*i2c_get_clientdata(client);
所以我们只需要知道client,便可以找到我们保存的数据。
这两个函数的作用起始就是方便我们通过client来找到设备。比如我们自定义了一个结构体用来保存数据
struct my_I2C_data {
struct i2c_client *client;
struct input_dev *input_dev;
struct work_struct pen_event_work;
struct workqueue_struct *ts_workqueue;
};
当我们行进到probe函数时,可以这样做
struct my_I2C_data* save_data;
............................
i2c_set_clientdata(client, save_data);
这样就可以将此结构体保存在client中,当我们需要使用到结构体内数据时,可以这样
struct my_I2C_data* resave_data;
resave_data = (struct my_I2C_data)*i2c_get_clientdata(client);
所以我们只需要知道client,便可以找到我们保存的数据。
相关文章推荐
- linux驱动platform_set_drvdata 和 platform_get_drvdata这两个函数
- linux I2C 驱动之----i2c_client 的注册
- linux I2C 驱动之----i2c_client 的注册
- Linux下I2C驱动client注册的方法
- Linux下面写i2c设备的驱动-如何枚举产生i2c_client
- linux I2C 驱动之----i2c_client 的注册
- i2c_set_clientdata函数【转】
- linux I2C 驱动之----i2c_client 的注册
- 关于Linux下I2C驱动的Probe方式没有自动生成i2c_client且没有自动调用i2c_driver的.probe指向的函数的问题解决
- linux I2C 驱动之----i2c_client 的注册
- i2c_set_clientdata函数
- Linux内核里写i2c client 驱动的两种方式
- linux I2C 驱动之----i2c_client 的注册
- Linux下面写i2c设备的驱动-如何枚举产生i2c_client
- 手把手教你写linux I2C设备驱动
- Linux I2C驱动分析(三)----i2c_dev驱动和应用层分析
- Linux I2C驱动完全分析(一)
- Linux Kernel 设备驱动之I2C之client描述
- 【驱动】linux下I2C驱动架构全面分析
- Linux I2C子系统分析-I2C设备驱动 2