linux I2C驱动 i2c_set_clientdata函数和i2c_get_clientdata函数

最近在研究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,便可以找到我们保存的数据。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值