gpio_keys: add flip cover wake/suspend event (arter97)

AOSP doesn't take care of flip covers.

Let make it aware from the kernel side.

gpio_keys: fix registration order

gpio-keys must be in /sys/class/input/input18,
flip_powerkey must be in /sys/class/input/input19

for device/samsung/hlte/power/power_ext.c to properly suspend GPIO_KEYS_POWER.

Re-order registration(flip_powerkey after gpio-keys).

 gpio_keys: return early when flip_cover == gpio_flip_cover

This prevents ghost turn-off or turn-on
when there really wasn't a flip-cover event changed,
but flip_cover_work() is just called.

To prevent this, compare ddata->flip_cover with gpio_get_value(ddata->gpio_flip_cover)
and proceed only on when those datas are different.

gpio_keys: fix typo during flip_powerkey registration
input_register_device() returns 1 on errors, not 0

gpio_keys: remove filesystem sync, dynamic fsync already handles this (Yank555.lu)

gpio_keys: add a semaphore so powerkey action never happen more than once at the same time (Yank555.lu)

- use shorter delay between press & release
gpio_keys: flip cover wake/suspend event - big code review (arter97/Yank555.lu)

gpio_keys: handle all kinds of hectic flipcover action by nervous users when powersuspend is present (Yank555.lu)

- big code review
- debugging prints added (switchable)

gpio_keys: add a semaphore so powerkey action never happen more than once at the same time (Yank555.lu)

- use shorter delay between press & release

gpio_keys: remove filesystem sync, dynamic fsync already handles this (Yank555.lu)

gpio_keys: fix typo during flip_powerkey registration
input_register_device() returns 1 on errors, not 0

gpio_keys: add flip cover wake/suspend event (arter97)

AOSP doesn't take care of flip covers.

Let make it aware from the kernel side.

gpio_keys: fix registration order

gpio-keys must be in /sys/class/input/input18,
flip_powerkey must be in /sys/class/input/input19

for device/samsung/hlte/power/power_ext.c to properly suspend GPIO_KEYS_POWER.

Re-order registration(flip_powerkey after gpio-keys).

gpio_keys: return early when flip_cover == gpio_flip_cover

This prevents ghost turn-off or turn-on
when there really wasn't a flip-cover event changed,
but flip_cover_work() is just called.

To prevent this, compare ddata->flip_cover with gpio_get_value(ddata->gpio_flip_cover)
and proceed only on when those datas are different.