brintos

brintos / linux-shallow public Read only

0
0
Text · 1.2 KiB · cda5938 Raw
58 lines · c
1// SPDX-License-Identifier: GPL-2.02/*3 * HID support for Vivaldi Keyboard4 *5 * Copyright 2020 Google LLC.6 * Author: Sean O'Brien <seobrien@chromium.org>7 */8 9#include <linux/device.h>10#include <linux/hid.h>11#include <linux/input/vivaldi-fmap.h>12#include <linux/kernel.h>13#include <linux/module.h>14 15#include "hid-vivaldi-common.h"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);24	if (!drvdata)25		return -ENOMEM;26 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 36static const struct hid_device_id vivaldi_table[] = {37	{ HID_DEVICE(HID_BUS_ANY, HID_GROUP_VIVALDI, HID_ANY_ID, HID_ANY_ID) },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,48	.driver = {49		.dev_groups = vivaldi_attribute_groups,50	},51};52 53module_hid_driver(hid_vivaldi);54 55MODULE_AUTHOR("Sean O'Brien");56MODULE_DESCRIPTION("HID vivaldi driver");57MODULE_LICENSE("GPL");58