This patch set is made based on kernel 3.15.0-rc8. It's aimed to re-architecture the cyapa driver to support old gen3 trackpad device and new gen5 trackpad device in one cyapa driver for easily productions support based on customers' requirements, and add sysfs functions and interfaces supported that required by users and customers. Because the earlier gen3 and the latest gen5 trackpad devies using two different chipsets, and have different protocol and interfaces. If supported these two trackpad devices in two different drivers, then it will be difficult to manage productions and later firmware updates. it will cause customer don't know which one to use and update because these two trackpad devices have been used and integrated in same one productions at a time, so must to support these two trackpad devices in same on driver. The new architecture is made of: cyapa.c - the core of the architecture, supply interfaces and functions to system and read trackpad devices. cyapa_gen3.c - functions supported for gen3 trackpad devices, cyapa_gen5.c - functions supported for gen5 trackpad devices. Beside this introduction patch, it has 14 patches listed as below. For these patches each one is patched based on previous one. patch 1/14: re-architecture cyapa driver with core functions, and applying the device detecting function in async thread to speed up system boot time. patch 2/14: add cyapa driver power management interfaces supported. patch 3/14: add cyapa driver runtime power management interfaces supported. patch 4/14: add cyapa key function interfaces in sysfs system. Including read firmware version, get production ID, read baseline, re-calibrate trackpad baselines and do trackpad firmware update. patch 5/14: add read firmware image and read raw trackpad device' sensors' raw data interface in debugfs system. patch 6/14: add gen3 trackpad device basic functions supported. patch 7/14: add gen3 trackpad device firmware update function supported. patch 8/14: add gen3 trackpad device report baseline and do force re-calibrate functions supported. patch 9/14: add gen3 trackpad device read firmware image function supported. patch 10/14: add gen5 trackpad device basic functions supported. patch 11/14: add gen5 trackpad device firmware update function supported. patch 12/14: add gen5 trackpad device report baseline and do force re-calibrate functions supported. patch 13/14: add gen5 trackpad device read firmware image and report sensors' raw data values functions supported. patch 14/14: add function to monitor LID close event to off trackpad device.