mirror of
https://github.com/torvalds/linux.git
synced 2024-11-23 20:51:44 +00:00
HID: google: Add support for vivaldi to hid-hammer
Add support to the hammer driver to parse vivaldi keyboard layouts and expose them to userspace. This allows hammer devices to use vivaldi function row keys while also supporting the other features this driver supports, like the CBAS (chrome base attached switch) and a keyboard backlight. Signed-off-by: Stephen Boyd <swboyd@chromium.org> Tested-by: Stephen Boyd <swboyd@chromium.org> # coachz, wormdingler Link: https://lore.kernel.org/r/20220228075446.466016-5-dmitry.torokhov@gmail.com Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>
This commit is contained in:
parent
33bbe04a15
commit
a9d672998a
@ -412,6 +412,8 @@ config HID_VIVALDI_COMMON
|
||||
|
||||
config HID_GOOGLE_HAMMER
|
||||
tristate "Google Hammer Keyboard"
|
||||
select HID_VIVALDI_COMMON
|
||||
select INPUT_VIVALDIFMAP
|
||||
depends on USB_HID && LEDS_CLASS && CROS_EC
|
||||
help
|
||||
Say Y here if you have a Google Hammer device.
|
||||
|
@ -15,6 +15,7 @@
|
||||
|
||||
#include <linux/acpi.h>
|
||||
#include <linux/hid.h>
|
||||
#include <linux/input/vivaldi-fmap.h>
|
||||
#include <linux/leds.h>
|
||||
#include <linux/module.h>
|
||||
#include <linux/of.h>
|
||||
@ -25,6 +26,7 @@
|
||||
#include <asm/unaligned.h>
|
||||
|
||||
#include "hid-ids.h"
|
||||
#include "hid-vivaldi-common.h"
|
||||
|
||||
/*
|
||||
* C(hrome)B(ase)A(ttached)S(witch) - switch exported by Chrome EC and reporting
|
||||
@ -501,8 +503,15 @@ static void hammer_stop(void *hdev)
|
||||
static int hammer_probe(struct hid_device *hdev,
|
||||
const struct hid_device_id *id)
|
||||
{
|
||||
struct vivaldi_data *vdata;
|
||||
int error;
|
||||
|
||||
vdata = devm_kzalloc(&hdev->dev, sizeof(*vdata), GFP_KERNEL);
|
||||
if (!vdata)
|
||||
return -ENOMEM;
|
||||
|
||||
hid_set_drvdata(hdev, vdata);
|
||||
|
||||
error = hid_parse(hdev);
|
||||
if (error)
|
||||
return error;
|
||||
@ -598,6 +607,8 @@ static struct hid_driver hammer_driver = {
|
||||
.id_table = hammer_devices,
|
||||
.probe = hammer_probe,
|
||||
.remove = hammer_remove,
|
||||
.feature_mapping = vivaldi_feature_mapping,
|
||||
.input_configured = vivaldi_input_configured,
|
||||
.input_mapping = hammer_input_mapping,
|
||||
.event = hammer_event,
|
||||
};
|
||||
|
Loading…
Reference in New Issue
Block a user