]> git.ipfire.org Git - thirdparty/linux.git/blame - drivers/hid/hid-vivaldi.c
Merge tag 'io_uring-6.9-20240322' of git://git.kernel.dk/linux
[thirdparty/linux.git] / drivers / hid / hid-vivaldi.c
CommitLineData
14c9c014
SB
1// SPDX-License-Identifier: GPL-2.0
2/*
3 * HID support for Vivaldi Keyboard
4 *
5 * Copyright 2020 Google LLC.
6 * Author: Sean O'Brien <seobrien@chromium.org>
7 */
8
e24aeff6 9#include <linux/device.h>
14c9c014 10#include <linux/hid.h>
45ceaf14 11#include <linux/input/vivaldi-fmap.h>
e24aeff6 12#include <linux/kernel.h>
14c9c014
SB
13#include <linux/module.h>
14
33bbe04a 15#include "hid-vivaldi-common.h"
14c9c014
SB
16
17static int vivaldi_probe(struct hid_device *hdev,
18 const struct hid_device_id *id)
19{
20 struct vivaldi_data *drvdata;
21 int ret;
22
23 drvdata = devm_kzalloc(&hdev->dev, sizeof(*drvdata), GFP_KERNEL);
13251ce1
JJ
24 if (!drvdata)
25 return -ENOMEM;
26
14c9c014
SB
27 hid_set_drvdata(hdev, drvdata);
28
29 ret = hid_parse(hdev);
30 if (ret)
31 return ret;
32
33 return hid_hw_start(hdev, HID_CONNECT_DEFAULT);
34}
35
14c9c014 36static const struct hid_device_id vivaldi_table[] = {
33bbe04a 37 { HID_DEVICE(HID_BUS_ANY, HID_GROUP_VIVALDI, HID_ANY_ID, HID_ANY_ID) },
14c9c014
SB
38 { }
39};
40
41MODULE_DEVICE_TABLE(hid, vivaldi_table);
42
43static struct hid_driver hid_vivaldi = {
44 .name = "hid-vivaldi",
45 .id_table = vivaldi_table,
46 .probe = vivaldi_probe,
47 .feature_mapping = vivaldi_feature_mapping,
9f4441fc
GKH
48 .driver = {
49 .dev_groups = vivaldi_attribute_groups,
50 },
14c9c014
SB
51};
52
53module_hid_driver(hid_vivaldi);
54
55MODULE_AUTHOR("Sean O'Brien");
56MODULE_DESCRIPTION("HID vivaldi driver");
57MODULE_LICENSE("GPL");