mirror of
https://github.com/armbian/linux.git
synced 2026-01-06 10:13:00 -08:00
HID: corsair: Add Corsair Vengeance K90 driver
This patch implements a HID driver for the Corsair Vengeance K90 keyboard. It fixes the behaviour of the keys using incorrect HID usage codes and exposes the macro playback mode and current profile to the user space through sysfs attributes. It also adds two LED class devices controlling the "record" LED and the backlight. Signed-off-by: Clément Vuchener <clement.vuchener@gmail.com> Signed-off-by: Jiri Kosina <jkosina@suse.cz>
This commit is contained in:
committed by
Jiri Kosina
parent
851328feb8
commit
6f78193ee9
15
Documentation/ABI/testing/sysfs-driver-hid-corsair
Normal file
15
Documentation/ABI/testing/sysfs-driver-hid-corsair
Normal file
@@ -0,0 +1,15 @@
|
||||
What: /sys/bus/drivers/corsair/<dev>/macro_mode
|
||||
Date: August 2015
|
||||
KernelVersion: 4.2
|
||||
Contact: Clement Vuchener <clement.vuchener@gmail.com>
|
||||
Description: Get/set the current playback mode. "SW" for software mode
|
||||
where G-keys triggers their regular key codes. "HW" for
|
||||
hardware playback mode where the G-keys play their macro
|
||||
from the on-board memory.
|
||||
|
||||
|
||||
What: /sys/bus/drivers/corsair/<dev>/current_profile
|
||||
Date: August 2015
|
||||
KernelVersion: 4.2
|
||||
Contact: Clement Vuchener <clement.vuchener@gmail.com>
|
||||
Description: Get/set the current selected profile. Values are from 1 to 3.
|
||||
@@ -171,6 +171,16 @@ config HID_CHICONY
|
||||
---help---
|
||||
Support for Chicony Tactical pad.
|
||||
|
||||
config HID_CORSAIR
|
||||
tristate "Corsair devices"
|
||||
depends on HID && USB && LEDS_CLASS
|
||||
---help---
|
||||
Support for Corsair devices that are not fully compliant with the
|
||||
HID standard.
|
||||
|
||||
Supported devices:
|
||||
- Vengeance K90
|
||||
|
||||
config HID_PRODIKEYS
|
||||
tristate "Prodikeys PC-MIDI Keyboard support"
|
||||
depends on HID && SND
|
||||
|
||||
@@ -29,6 +29,7 @@ obj-$(CONFIG_HID_BELKIN) += hid-belkin.o
|
||||
obj-$(CONFIG_HID_BETOP_FF) += hid-betopff.o
|
||||
obj-$(CONFIG_HID_CHERRY) += hid-cherry.o
|
||||
obj-$(CONFIG_HID_CHICONY) += hid-chicony.o
|
||||
obj-$(CONFIG_HID_CORSAIR) += hid-corsair.o
|
||||
obj-$(CONFIG_HID_CP2112) += hid-cp2112.o
|
||||
obj-$(CONFIG_HID_CYPRESS) += hid-cypress.o
|
||||
obj-$(CONFIG_HID_DRAGONRISE) += hid-dr.o
|
||||
|
||||
@@ -1828,6 +1828,7 @@ static const struct hid_device_id hid_have_special_driver[] = {
|
||||
{ HID_USB_DEVICE(USB_VENDOR_ID_CHICONY, USB_DEVICE_ID_CHICONY_WIRELESS2) },
|
||||
{ HID_USB_DEVICE(USB_VENDOR_ID_CHICONY, USB_DEVICE_ID_CHICONY_AK1D) },
|
||||
{ HID_USB_DEVICE(USB_VENDOR_ID_CHICONY, USB_DEVICE_ID_CHICONY_ACER_SWITCH12) },
|
||||
{ HID_USB_DEVICE(USB_VENDOR_ID_CORSAIR, USB_DEVICE_ID_CORSAIR_K90) },
|
||||
{ HID_USB_DEVICE(USB_VENDOR_ID_CREATIVELABS, USB_DEVICE_ID_PRODIKEYS_PCMIDI) },
|
||||
{ HID_USB_DEVICE(USB_VENDOR_ID_CYGNAL, USB_DEVICE_ID_CYGNAL_CP2112) },
|
||||
{ HID_USB_DEVICE(USB_VENDOR_ID_CYPRESS, USB_DEVICE_ID_CYPRESS_BARCODE_1) },
|
||||
|
||||
673
drivers/hid/hid-corsair.c
Normal file
673
drivers/hid/hid-corsair.c
Normal file
File diff suppressed because it is too large
Load Diff
@@ -251,6 +251,9 @@
|
||||
#define USB_DEVICE_ID_CODEMERCS_IOW_FIRST 0x1500
|
||||
#define USB_DEVICE_ID_CODEMERCS_IOW_LAST 0x15ff
|
||||
|
||||
#define USB_VENDOR_ID_CORSAIR 0x1b1c
|
||||
#define USB_DEVICE_ID_CORSAIR_K90 0x1b02
|
||||
|
||||
#define USB_VENDOR_ID_CREATIVELABS 0x041e
|
||||
#define USB_DEVICE_ID_PRODIKEYS_PCMIDI 0x2801
|
||||
|
||||
|
||||
Reference in New Issue
Block a user