【学习分享】Focaltech touch panel代码阅读笔记

focaltech touch panel代码阅读笔记


年少时未认真看代码,现在认真看一下,有时间再慢慢补充。

1.编程思路

在这里插入图片描述

2.部分函数作用

1.i2c_set_clientdata()函数的作用是将私有数据与12C设备客户端结构体关联起来。它允许在I2C设备驱动程序中保存和访问特定于设备的私有数据。在Linux内核中,I2C设备客户端结构体 struct i2c client 用于表示一个I2C设备。该结构体包含了与I2C设备相关的信息,如设备地址、I2C适配器、设备驱动程序等。然而,有时候驱动程序可能需要保存一些特定于设备的数据,例如设备的状态、配置参数等。这时就可以使用I2c_set clientdata()函数来关联这些私有数据。

2.regulator_count_voltages()函数的作用是获取一个电压调节器 (regulator)支持的电压通道数。在嵌入式系统中,电压调节器 (regulator) 用于提供电源电压给各个设备或模块,以满足其工作的电压需求。电压调节器可以是硬件电路或软件实现,用于稳定和调整电源电压。

3.regulator_put()函数的作用是释放对电压调节器 (regulator) 的引用在嵌入式系统中,电压调节器用于提供电源电压给各个设备或模块,以满足其工作的电压需求。当设备或模块不再需要使用电压调节器时,应该释放对电压调节器的引用,以便其他设备或模块可以继续使用该电压调节器regulator_put()函数是Linux内核中用于电压调节器驱动程序中的函数。通过调用该函数,驱动程序可以释放对电压调节器的引用。

4.input_set_drvdata()函数的作用是将私有数据与input dev 结构体关联起来。它允许在输入设备驱动程序中保存和访问特定于设备的私有数据。在Linux内核中,input dev 结构体用于表示各种输入设备,如键盘、鼠标、触摸屏等。它包含了输入设备的各种属性和操作接口,如设备名称、设备类型、事件处理函数等。

有时候,驱动程序可能需要保存一些特定于设备的数据,例如设备的状态、配置参数等。为了实现这一目的,可以使用input_set_drvdata()函数将私有数据与input_dev结构体关联起来。

5.pinctrl select state()函数的作用是选择和切换引脚控制器 (pinctrl) 的状态。在嵌入式系统中,引脚控制器用于管理和控制芯片上的引脚功能和配置。每个引脚控制器可以有多个状态,每个状态定义了不同的引脚功能和配置。例如,一个引脚控制器的状态可以配置引脚为输入模式,而另一个状态可以配置引脚为输出模式。

6.init_waitqueue_head函数功能描述:函数init_waitqueue_head( )实现初始化等待队列头指针,使参数q的task_list字段的next与prev都指向头指针自身。

7.使用cancel_work_sync()取消一个工作队列

8.queue_work(fts_data->ts_workqueue, &fts_data->resume_work)异步另起唤醒线程。

9.INIT_WORK(_work, _func, _data)
初始化指定工作,目的是把用户指定的函数_func及_func需要的参数_data赋给work_struct的func及data变量.

3.总结

Focaltech的代码还是很经典的,可以细细品读一下,对于以后编写代码有很多值得借鉴的地方。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Jason Yan

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值