platform/x86: Introduce button support for the Surface 3
authorBenjamin Tissoires <benjamin.tissoires@redhat.com>
Mon, 5 Dec 2016 15:10:33 +0000 (16:10 +0100)
committerAndy Shevchenko <andriy.shevchenko@linux.intel.com>
Fri, 16 Dec 2016 21:30:26 +0000 (23:30 +0200)
commit1a64b719d3ae0e4fb939d9a9e31abb60b4ce4eb1
tree0c3538a780260e78e750ed7bf1f5c16a51aa729c
parent3dda3b3798f96d2974b5f60811142d3e25547807
platform/x86: Introduce button support for the Surface 3

The Surface 3 is not following the ACPI spec for PNP0C40, but nearly.
The device is connected to a I2C device that might have some magic
but we don't know about.
Just create the device after the enumeration and use the declared GPIOs
to provide button support.

This driver is just an adaptation of drivers/input/misc/soc_button_array.c

The Surface Pro 3 is using an ACPI driver and matches against the bid
of the device ("VGBI"). To prevent this incompatible driver to be used
on the Surface Pro, we add a match on the Surface 3 bid "TEV2".

link: https://bugzilla.kernel.org/show_bug.cgi?id=102761
Signed-off-by: Benjamin Tissoires <benjamin.tissoires@redhat.com>
Acked-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>
Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
drivers/platform/x86/Kconfig
drivers/platform/x86/Makefile
drivers/platform/x86/surface3_button.c [new file with mode: 0644]