drivers: misc: Initial support for touchwake

Signed-off-by: Stratos Karafotis <stratosk@semaphore.gr>
input: lge_touch_core: show accuracy and jitter in sysfs

Signed-off-by: Stratos Karafotis <stratosk@semaphore.gr>
input: lge_touch_core: Possible fix touchwake reboot issue

Call touch_press in work_func instead of input_report

Signed-off-by: Stratos Karafotis <stratosk@semaphore.gr>
touchwake: Handle touch suspend/resume only if touchwake is enabled

Refactor suspend/resume to handle touch earlysuspend only if
touchwake is enabled.
(for compatibility with TouchControl app)

Thanks @bponury for hints

Signed-off-by: Stratos Karafotis <stratosk@semaphore.gr>
input: lge_touch_core: Send input to touchwake only if it's enabled

Thanks to Bponury.

Signed-off-by: Stratos Karafotis <stratosk@semaphore.gr>
input: lge_touch_core: Implement Double tap to wake functionality

If enabled, touchscreen is always powered and user may resume
the device with a double tap on the center of the screen.

Signed-off-by: Stratos Karafotis <stratosk@semaphore.gr>
input: lge_touch_core: Rework double touch to wake functionality

- Refactor the code
- Reduce the delay of i2c retry to 10ms
- Use a wake lock when there is a touch to prevent kernel to suspend
- Implement the pm runtime interface

Signed-off-by: Stratos Karafotis <stratosk@semaphore.gr>
input: lge_touch_core: Properly destroy wake lock on touch remove

Signed-off-by: Stratos Karafotis <stratosk@semaphore.gr>
input: lge_touch_core: Release all touch events when power on

Signed-off-by: Stratos Karafotis <stratosk@semaphore.gr>
input: lge_touch_core: Reset touch screen on power on

When power on the device reset touch screen to avoid
unresponsive touch screen issues.

Signed-off-by: Stratos Karafotis <stratosk@semaphore.gr>