| /linux/drivers/hid/amd-sfh-hid/hid_descriptor/ |
| H A D | amd_sfh_hid_report_desc.h | 3 * HID descriptor stuructures 17 0xA1, 0x00, /* HID Collection (Physical) */ 20 0x85, 1, /* HID Report ID */ 21 0x05, 0x20, /* HID usage page sensor */ 23 0x15, 0, /* HID logical MIN_8(0) */ 24 0x25, 2, /* HID logical MAX_8(2) */ 25 0x75, 8, /* HID report size(8) */ 26 0x95, 1, /* HID report count(1) */ 27 0xA1, 0x02, /* HID collection (logical) */ 31 0xB1, 0x00, /* HID feature (Data_Arr_Abs) */ [all …]
|
| /linux/drivers/hid/intel-ish-hid/ |
| H A D | ishtp-hid.c | 3 * ISHTP-HID glue driver. 8 #include <linux/hid.h> 11 #include "ishtp-hid.h" 14 * ishtp_hid_parse() - hid-core .parse() callback 15 * @hid: hid device instance 21 static int ishtp_hid_parse(struct hid_device *hid) in ishtp_hid_parse() argument 23 struct ishtp_hid_data *hid_data = hid->driver_data; in ishtp_hid_parse() 27 rv = hid_parse_report(hid, client_data->report_descr[hid_data->index], in ishtp_hid_parse() 36 static int ishtp_hid_start(struct hid_device *hid) in ishtp_hid_start() argument 41 static void ishtp_hid_stop(struct hid_device *hid) in ishtp_hid_stop() argument [all …]
|
| /linux/drivers/hid/intel-thc-hid/intel-quicki2c/ |
| H A D | quicki2c-hid.c | 4 #include <linux/hid.h> 9 #include "quicki2c-hid.h" 13 * quicki2c_hid_parse() - HID core parse() callback 15 * @hid: HID device instance 21 static int quicki2c_hid_parse(struct hid_device *hid) in quicki2c_hid_parse() argument 23 struct quicki2c_device *qcdev = hid->driver_data; in quicki2c_hid_parse() 26 return hid_parse_report(hid, qcdev->report_descriptor, in quicki2c_hid_parse() 33 static int quicki2c_hid_start(struct hid_device *hid) in quicki2c_hid_start() argument 38 static void quicki2c_hid_stop(struct hid_device *hid) in quicki2c_hid_stop() argument 42 static int quicki2c_hid_open(struct hid_device *hid) in quicki2c_hid_open() argument [all …]
|
| /linux/Documentation/hid/ |
| H A D | hid-transport.rst | 2 HID I/O Transport Drivers 5 The HID subsystem is independent of the underlying transport driver. Initially, 6 only USB was supported, but other specifications adopted the HID design and 10 1) HID Bus 13 The HID subsystem is designed as a bus. Any I/O subsystem may provide HID 14 devices and register them with the HID bus. HID core then loads generic device 16 transport and device setup/management. HID core is responsible for 36 | HID Core | 50 - Transport: USB-HID, I2C-HID, BT-HIDP 52 Everything below "HID Core" is simplified in this graph as it is only of [all …]
|
| H A D | amd-sfh-hid.rst | 7 The solution is working well on several OEM products. AMD SFH uses HID over PCIe bus. 9 the HID reports are generated as part of the kernel driver. 17 | HID User Space Applications | 22 | HID Core | 26 | AMD HID Transport | 30 | AMD HID Client | 31 | with HID Report Generator| 45 AMD HID Transport Layer 49 sensor data. The layer, which binds each device (AMD SFH HID driver) identifies the device type and 50 registers with the HID core. Transport layer attaches a constant "struct hid_ll_driver" object with [all …]
|
| H A D | hid-bpf.rst | 4 HID-BPF 7 HID is a standard protocol for input devices but some devices may require 10 existing HID interfaces. 17 When (and why) to use HID-BPF 20 There are several use cases when using HID-BPF is better 30 With HID-BPF, we can apply this filtering in the kernel directly so userspace 38 HID-BPF allows the userspace program to load the program itself, ensuring we 44 In the HID tree, half of the drivers only fix one key or one byte 61 channels of communication that our HID and input stack do not support. 70 The kernel has a relatively static mapping of HID items to evdev bits. [all …]
|
| H A D | uhid.rst | 2 UHID - User-space I/O driver support for HID subsystem 5 UHID allows user-space to implement HID transport drivers. Please see 6 hid-transport.rst for an introduction into HID transport drivers. This document 9 With UHID, a user-space transport driver can create kernel hid-devices for each 22 If a new device is detected by your HID I/O Driver and you want to register this 23 device with the HID subsystem, then you need to open /dev/uhid once for each 51 UHID_OPEN event, the internally attached HID Device Driver has no user attached. 54 user closes the HID device, you will receive a UHID_CLOSE event. This may be 57 UHID_OPEN events without a UHID_CLOSE event. The HID subsystem performs 62 If you want to send data on the interrupt channel to the HID subsystem, you send [all …]
|
| /linux/drivers/staging/greybus/ |
| H A D | hid.c | 3 * HID class driver for the Greybus. 10 #include <linux/hid.h> 17 /* Greybus HID device's structure */ 22 struct hid_device *hid; member 146 hid_input_report(ghid->hid, HID_INPUT_REPORT, in gb_hid_request_handler() 158 static void gb_hid_find_max_report(struct hid_device *hid, unsigned int type, in gb_hid_find_max_report() argument 164 list_for_each_entry(report, &hid->report_enum[type].report_list, list) { in gb_hid_find_max_report() 200 * hid->driver_lock is held as we are in probe function, in gb_hid_init_report() 204 hid_report_raw_event(ghid->hid, report->type, ghid->inbuf, ghid->bufsize, size, 1); in gb_hid_init_report() 209 struct hid_device *hid = ghid->hid; in gb_hid_init_reports() local [all …]
|
| /linux/sound/soc/sdca/ |
| H A D | sdca_hid.c | 13 #include <linux/hid.h> 25 static int sdwhid_parse(struct hid_device *hid) in sdwhid_parse() 27 struct sdca_function_data *function = hid->driver_data; in sdwhid_parse() 31 rsize = le16_to_cpu(function->hid.desc.rpt_desc.wDescriptorLength); in sdwhid_parse() 34 dev_err(&hid->dev, "invalid size of report descriptor (%u)\n", rsize); in sdwhid_parse() 38 ret = hid_parse_report(hid, function->hid.report_desc, rsize); in sdwhid_parse() 43 dev_err(&hid->dev, "parsing report descriptor failed\n"); in sdwhid_start() argument 47 static int sdwhid_start(struct hid_device *hid) 52 static void sdwhid_stop(struct hid_device *hid) in sdwhid_raw_request() argument 21 sdwhid_parse(struct hid_device * hid) sdwhid_parse() argument 48 sdwhid_stop(struct hid_device * hid) sdwhid_stop() argument 67 sdwhid_open(struct hid_device * hid) sdwhid_open() argument 72 sdwhid_close(struct hid_device * hid) sdwhid_close() argument 88 struct hid_device *hid; sdca_add_hid_device() local [all...] |
| /linux/drivers/hid/bpf/progs/ |
| H A D | README | 1 # HID-BPF programs 9 They should be loaded in the kernel by `udev-hid-bpf`: 11 https://gitlab.freedesktop.org/libevdev/udev-hid-bpf 14 "upstream" them, but also this way we can test them thanks to the HID 17 Once a .bpf.c file is accepted here, it is duplicated in `udev-hid-bpf` 20 land in distributions when they update `udev-hid-bpf` 30 Just run `sudo udev-hid-bpf install ./my-awesome-fix.bpf.o` 34 - copy the `.bpf.o` you want in `/etc/udev-hid-bpf/` 37 The following should do the trick (assuming udev-hid-bpf is available in 41 $> cp xppen-ArtistPro16Gen2.bpf.o /etc/udev-hid-bpf/ [all …]
|
| /linux/drivers/hid/surface-hid/ |
| H A D | surface_hid_core.c | 3 * Common/core components for the Surface System Aggregator Module (SSAM) HID 4 * transport driver. Provides support for integrated HID devices on Microsoft 11 #include <linux/hid.h> 52 dev_err(shid->dev, "unexpected HID descriptor length: got %u, expected %zu\n", in surface_hid_load_hid_descriptor() 58 dev_err(shid->dev, "unexpected HID descriptor type: got %#04x, expected %#04x\n", in surface_hid_load_hid_descriptor() 102 static int surface_hid_start(struct hid_device *hid) in surface_hid_start() argument 104 struct surface_hid_device *shid = hid->driver_data; in surface_hid_start() 109 static void surface_hid_stop(struct hid_device *hid) in surface_hid_stop() argument 111 struct surface_hid_device *shid = hid->driver_data; in surface_hid_stop() 116 * also includes unregistration of HID events, so we need to check this in surface_hid_stop() [all …]
|
| /linux/drivers/hid/usbhid/ |
| H A D | hiddev.c | 6 * HID char devices, giving access to raw HID device events. 22 #include <linux/hid.h> 56 hiddev_lookup_report(struct hid_device *hid, struct hiddev_report_info *rinfo) in hiddev_lookup_report() argument 68 report_enum = hid->report_enum + in hiddev_lookup_report() 109 hiddev_lookup_usage(struct hid_device *hid, struct hiddev_usage_ref *uref) in hiddev_lookup_usage() argument 120 report_enum = hid->report_enum + in hiddev_lookup_usage() 127 if (field->usage[j].hid == uref->usage_code) { in hiddev_lookup_usage() 140 static void hiddev_send_event(struct hid_device *hid, in hiddev_send_event() argument 143 struct hiddev *hiddev = hid->hiddev; in hiddev_send_event() 163 * This is where hid.c calls into hiddev to pass an event that occurred over [all …]
|
| /linux/drivers/hid/i2c-hid/ |
| H A D | Kconfig | 3 tristate "I2C HID support" 10 tristate "HID over I2C transport layer ACPI driver" 16 other HID based devices which is connected to your computer via I2C. 22 will be called i2c-hid-acpi. It will also build/depend on the 23 module i2c-hid. 26 tristate "HID over I2C transport layer Open Firmware driver" 28 # (board-file) instantiated "hid-over-i2c" type i2c-clients. 33 other HID based devices which is connected to your computer via I2C. 35 well as binding to manually (board-file) instantiated i2c-hid-clients. 40 will be called i2c-hid-of. It will also build/depend on the [all …]
|
| /linux/drivers/hid/ |
| H A D | hid-cmedia.c | 3 * HID driver for CMedia CM6533 audio jack controls 11 #include <linux/hid.h> 13 #include "hid-ids.h" 17 MODULE_DESCRIPTION("CM6533 HID jack controls and HS100B mute button"); 65 *CM6533 audio jack HID raw events: 87 struct hid_device *hid; member 91 static void hp_ev(struct hid_device *hid, struct cmhid *cm, int value) in hp_ev() argument 97 static int cmhid_raw_event(struct hid_device *hid, struct hid_report *report, in cmhid_raw_event() argument 100 struct cmhid *cm = hid_get_drvdata(hid); in cmhid_raw_event() 102 if (len != CM6533_JD_RAWEV_LEN || !(hid->claimed & HID_CLAIMED_INPUT)) in cmhid_raw_event() [all …]
|
| H A D | hid-core.c | 3 * HID support for Linux 31 #include <linux/hid.h> 33 #include <linux/hid-debug.h> 36 #include "hid-ids.h" 42 #define DRIVER_DESC "HID core driver" 353 field->usage[i].hid = parser->local.usage[j]; in hid_add_field() 464 * nibble due to the common misunderstanding of HID in hid_parser_global() 734 * If the HID driver had a rdesc_fixup() callback, dev->rdesc in hid_close_report() 735 * will be allocated by hid-core and needs to be freed. in hid_close_report() 767 struct hid_device *hid = container_of(ref, struct hid_device, ref); in hiddev_free() local [all …]
|
| H A D | hid-appleir.c | 3 * HID driver for the apple ir device 8 * Ported to HID subsystem by Benjamin Tissoires <benjamin.tissoires@gmail.com> 19 #include <linux/hid.h> 21 #include "hid-ids.h" 25 MODULE_DESCRIPTION("HID Apple IR remote controls"); 109 struct hid_device *hid; member 152 static void key_up(struct hid_device *hid, struct appleir *appleir, int key) in key_up() argument 158 static void key_down(struct hid_device *hid, struct appleir *appleir, int key) in key_down() argument 172 struct hid_device *hid = appleir->hid; in key_up_tick() local 177 key_up(hid, appleir, appleir->current_key); in key_up_tick() [all …]
|
| H A D | hid-creative-sb0540.c | 3 * HID driver for the Creative SB0540 receiver 10 #include <linux/hid.h> 12 #include "hid-ids.h" 15 MODULE_DESCRIPTION("HID Creative SB0540 receiver"); 119 struct hid_device *hid; member 149 static int creative_sb0540_raw_event(struct hid_device *hid, in creative_sb0540_raw_event() argument 152 struct creative_sb0540 *creative_sb0540 = hid_get_drvdata(hid); in creative_sb0540_raw_event() 156 if (len != 6 || !(hid->claimed & HID_CLAIMED_INPUT)) in creative_sb0540_raw_event() 172 hid_err(hid, "Could not get a key for main_code %llX\n", in creative_sb0540_raw_event() 185 static int creative_sb0540_input_configured(struct hid_device *hid, in creative_sb0540_input_configured() argument [all …]
|
| H A D | hid-samsung.c | 3 * HID driver for some samsung "special" devices 12 * This driver supports several HID devices: 15 * various hid report fixups for different variants. 27 #include <linux/hid.h> 30 #include "hid-ids.h" 94 if (ifnum != 1 || HID_UP_CONSUMER != (usage->hid & HID_USAGE_PAGE)) in samsung_kbd_mouse_input_mapping() 98 usage->hid & HID_USAGE); in samsung_kbd_mouse_input_mapping() 100 switch (usage->hid & HID_USAGE) { in samsung_kbd_mouse_input_mapping() 146 if (!(HID_UP_CONSUMER == (usage->hid & HID_USAGE_PAGE) || in samsung_kbd_input_mapping() 147 HID_UP_KEYBOARD == (usage->hid & HID_USAGE_PAGE))) in samsung_kbd_input_mapping() [all …]
|
| H A D | hidraw.c | 3 * HID raw devices, giving access to raw HID events. 6 * hid events at all (no parsing, no lookups). This lets applications 7 * to work on raw hid events as they want to, and avoids a need to 26 #include <linux/hid.h> 127 dev = hidraw_table[minor]->hid; in hidraw_send_report() 153 * compatibility with old implementation of USB-HID and I2C-HID: in hidraw_send_report() 155 * on an interrupt endpoint, fallback to SET_REPORT HID command. in hidraw_send_report() 186 * per section 7.2.1 of the HID specification, version 1.1. The first byte 206 dev = hidraw_table[minor]->hid; in hidraw_get_report() 302 err = hid_hw_power(dev->hid, PM_HINT_FULLON); in hidraw_open() [all …]
|
| H A D | hid-tivo.c | 3 * HID driver for TiVo Slide Bluetooth remote 6 * based on the hid-topseed driver, which is in turn, based on hid-cherry... 13 #include <linux/hid.h> 16 #include "hid-ids.h" 26 switch (usage->hid & HID_USAGE_PAGE) { in tivo_input_mapping() 28 switch (usage->hid & HID_USAGE) { in tivo_input_mapping() 42 switch (usage->hid & HID_USAGE) { in tivo_input_mapping() 56 * standard hid mappings in hid-input.c */ in tivo_input_mapping() 67 MODULE_DEVICE_TABLE(hid, tivo_devices); 76 MODULE_DESCRIPTION("HID driver for TiVo Slide Bluetooth remote");
|
| /linux/include/linux/ |
| H A D | hid.h | 21 #include <linux/device-id/hid.h> 28 #include <uapi/linux/hid.h> 54 * HID report item format 67 * HID report descriptor item type (prefix bit 2,3) 76 * HID report descriptor main item tags 88 * HID report descriptor main item contents 102 * HID report descriptor collection item types 111 * HID report descriptor global item tags 128 * HID report descriptor local item tags 143 * HID usage tables [all …]
|
| H A D | hid_bpf.h | 9 #include <uapi/linux/hid.h> 14 * The following is the user facing HID BPF API. 21 * struct hid_bpf_ctx - User accessible data for all HID programs 26 * @hid: the &struct hid_device representing the device itself 30 * by the HID program. 44 * ``hid`` and ``allocated_size`` are read-only, ``size`` and ``retval`` are read-write. 47 struct hid_device *hid; member 56 * Below is HID internal 74 int (*hid_input_report)(struct hid_device *hid, enum hid_report_type type, 84 * struct hid_bpf_ops - A BPF struct_ops of callbacks allowing to attach HID-BPF [all …]
|
| /linux/Documentation/devicetree/bindings/input/ |
| H A D | hid-over-i2c.yaml | 4 $id: http://devicetree.org/schemas/input/hid-over-i2c.yaml# 7 title: HID over I2C Devices 14 HID over I2C provides support for various Human Interface Devices over the 21 If this binding is used, the kernel module i2c-hid will handle the communication 22 with the device and the generic hid core layer will handle the protocol. 33 - const: hid-over-i2c 34 - description: Just "hid-over-i2c" alone is allowed, but not recommended. 35 const: hid-over-i2c 43 hid-descr-addr: 44 description: HID descriptor address [all …]
|
| /linux/drivers/hid/bpf/ |
| H A D | hid_bpf_dispatch.c | 4 * HID-BPF support for Linux 14 #include <linux/hid.h> 33 .hid = hdev, in dispatch_hid_bpf_device_event() 92 .hid = hdev, in dispatch_hid_bpf_raw_requests() 132 .hid = hdev, in dispatch_hid_bpf_output_report() 168 .hid = hdev, in call_hid_bpf_rdesc_fixup() 223 void hid_put_device(struct hid_device *hid) in hid_put_device() argument 225 put_device(&hid->dev); in hid_put_device() 290 * @ctx: The HID-BPF context 312 * hid_bpf_allocate_context - Allocate a context to the given HID device [all …]
|
| /linux/drivers/iio/common/hid-sensors/ |
| H A D | Kconfig | 3 # Hid Sensor common modules 5 menu "Hid Sensor IIO Common" 8 tristate "Common modules for all HID Sensor IIO drivers" 12 Say yes here to build support for HID sensor to use 13 HID sensor common processing for attributes and IIO triggers. 15 HID sensor drivers, this module contains processing for those 19 tristate "Common module (trigger) for all HID Sensor IIO drivers" 24 Say yes here to build trigger support for HID sensors. 28 hid-sensor-trigger.
|