Make sure PWMs are running in sync.

The 3 (red, green, blue) PWMs were sometimes running out of sync,
depending on the notification LED color flow and timing.

Make sure they are running in sync by
- adjusting the PWM atomically (that is, not adjust each one within its
  own worker task, where other tasks could get run inbetween)
- restarting the PWM if it was running before

Change-Id: Iebddc898c467c11dd412f239a8e26dd22f42c28b
drivers/touchscreen: add sweep2wake

Signed-off-by: Dennis Rassmann <showp1984@gmail.com>
sweep2wake: fix last touch not being released

Signed-off-by: Dennis Rassmann <showp1984@gmail.com>
drivers/touchscreen: add pmops and allow i2c to wake the device (even w/o ES/LR)

Signed-off-by: Dennis Rassmann <showp1984@gmail.com>

Conflicts:
	arch/arm/configs/motley-exp_defconfig
drivers/touchscreen: add lge_touch android_touch kobject to fix s2w in one position across devices

Signed-off-by: Dennis Rassmann <showp1984@gmail.com>
sweep2wake: disable as default for now
(until s2w 2.0 removes all existing issues)

Signed-off-by: Dennis Rassmann <showp1984@gmail.com>
HACK: sweep2wake: sleep the data thread for 40ms to allow i2c to wake up
Backport from s2w 2.0.

Signed-off-by: Dennis Rassmann <showp1984@gmail.com>
defconfig: enable Sweep2Wake (thanks show-p1984!)