驱动名称: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_EDITint EN_VDD_gpio;int id0_gpio;int id1_gpio;int id2_gpio;struct input_dev*input_dev;int screen_state; //状态 : 1: on 0:offint sensor_version;//传感器的版本号:0x01:fpc1245 0x02:fpc1263#endif#if defined(CONFIG_FB)struct notifier_block fb_notif;#endifstruct 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);
匹配的设备树信息如下: