BACKPORT: FROMGIT: Input: cros-ec-keyb - allow skipping keyboard registration

If the device is a detachable (and therefore lacks full keyboard), we may
still want to load this driver because the device might have some other
buttons or switches (e.g. volume and power buttons or a tablet mode
switch). In such case we do not want to register the "main" keyboard device
to allow userspace detect when the detachable keyboard is disconnected and
adjust the system behavior for the tablet mode.

Originally it was suggested to simply skip keyboard registration if row and
columns properties didn't exist, but that approach did not convey the
intent strongly enough and also had a slight problem for migrating existing
DTBs without updating the kernel first, so it was decided to introduce new
google,cros-ec-keyb-switches to explicitly mark devices that only have
axillary buttons and switches.

Reviewed-by: Douglas Anderson <dianders@chromium.org>
Signed-off-by: Stephen Boyd <swboyd@chromium.org>
Link: https://lore.kernel.org/r/20220516183452.942008-3-swboyd@chromium.org
Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>

(cherry picked from commit ca1eadbfcd36bec73f2a2111c28e8c7e9e8ae6c0
 git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input.git ib/5.17-cros-ec-keyb)

Conflicts:
   drivers/input/keyboard/cros_ec_keyb.c

BUG=b:229004203
TEST=emerge-strongbad chromeos-kernel-5_4; Boot on wormdingler;
     evtest shows no more cros_ec device

Cq-Depend: chromium:3625918
Change-Id: I1efb0e8126545620b68170c7c1eca5babb28c668
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/third_party/kernel/+/3625917
Commit-Queue: Douglas Anderson <dianders@chromium.org>
Reviewed-by: Douglas Anderson <dianders@chromium.org>
Tested-by: Stephen Boyd <swboyd@chromium.org>
Reviewed-by: Dmitry Torokhov <dtor@chromium.org>
1 file changed