驱动名称:fpc1020.c
平台:msm8998
描述指纹传感器设备的结构:
-
struct fpc1020_data {
-
struct device *dev;
-
struct wake_lock ttw_wl;
-
int irq_gpio;
-
int rst_gpio; //复位gpio号
-
int irq_num; //中断号
-
struct mutex lock;
-
bool prepared;
-
struct pinctrl *ts_pinctrl;
-
struct pinctrl_state *gpio_state_active;
-
struct pinctrl_state *gpio_state_suspend;
-
#ifdef ONEPLUS_EDIT
-
int EN_VDD_gpio;
-
int id0_gpio;
-
int id1_gpio;
-
int id2_gpio;
-
struct input_dev *input_dev;
-
int screen_state; //状态 : 1: on 0:off
-
int sensor_version; //传感器的版本号:0x01:fpc1245 0x02:fpc1263
-
#endif
-
#if defined(CONFIG_FB)
-
struct notifier_block fb_notif;
-
#endif
-
struct work_struct pm_work;
-
int proximity_state; /* 0:far 1:near */
-
bool irq_enabled;
-
spinlock_t irq_lock;
-
struct completion irq_sent;
-
};
fpc1020驱动使用platform总线匹配硬件设备,驱动如下:
-
static struct of_device_id fpc1020_of_match[] = {
-
{ .compatible = "fpc,fpc1020", }, //设备树匹配的属性
-
{}
-
};
-
MODULE_DEVICE_TABLE(of, fpc1020_of_match);
-
static struct platform_driver fpc1020_driver = {
-
.driver = {
-
.name = "fpc1020",
-
.owner = THIS_MODULE,
-
.of_match_table = fpc1020_of_match, //设备树match函数
-
},
-
.probe = fpc1020_probe, //匹配函数
-
};
-
module_platform_driver(fpc1020_driver);
匹配的设备树信息如下: