1. i2c_add_driver();
2. .probe()
2.1 get Platform_data
2.2 i2c_set_clientdata()
2.3 input device init and register
2.4 input_set_drvdata()
2.5 INIT_WORK(xx,work_func)-----------1.xx_work_func_proximity 2.xx_work_func_light
2.6 hrtimer_init()-------1.xx_pxy_timer_func 2.xx_light_timer_func
通过对应的timer对work做排程,有一定的周期。
queue_work();
hrtimer_forward_now();
2.7 light: input_report_abs(xx->light_input_dev, ABS_MISC, value);
proximity:input_report_abs(xx->proximity_input_dev, ABS_DISTANCE, value);