Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 3a370ca1 authored by Don Prince's avatar Don Prince Committed by Jiri Kosina
Browse files

HID: Prodikeys PC-MIDI HID Driver



A specialised HID driver for the Creative Prodikeys PC-MIDI USB Keyboard.

The Prodikeys PC-MIDI is a multifunction keyboard comprising a qwerty keyboard,
multimedia keys and a touch sensitive musical keyboard.

The specialised HID driver adds full support for the musical keyboard and extra
multimedia keys which are not currently handled by the default HID driver.

The specialised HID driver interfaces with ALSA, and presents the midi keyboard
as a rawmidi device. Sustain duration, octave shifting and the midi output
channel can be read/written form userspace via sysfs.

Signed-off-by: default avatarDon Prince <dhprince-devel@yahoo.co.uk>
ALSA parts:
Acked-by: default avatarClemens Ladisch <clemens@ladisch.de>
Signed-off-by: default avatarJiri Kosina <jkosina@suse.cz>
parent 94b849aa
Loading
Loading
Loading
Loading
+29 −0
Original line number Diff line number Diff line
What:		/sys/bus/hid/drivers/prodikeys/.../channel
Date:		April 2010
KernelVersion:	2.6.34
Contact:	Don Prince <dhprince.devel@yahoo.co.uk>
Description:
		Allows control (via software) the midi channel to which
		that the pc-midi keyboard will output.midi data.
		Range: 0..15
		Type:  Read/write
What:		/sys/bus/hid/drivers/prodikeys/.../sustain
Date:		April 2010
KernelVersion:	2.6.34
Contact:	Don Prince <dhprince.devel@yahoo.co.uk>
Description:
		Allows control (via software) the sustain duration of a
		note held by the pc-midi driver.
		0 means sustain mode is disabled.
		Range: 0..5000 (milliseconds)
		Type:  Read/write
What:		/sys/bus/hid/drivers/prodikeys/.../octave
Date:		April 2010
KernelVersion:	2.6.34
Contact:	Don Prince <dhprince.devel@yahoo.co.uk>
Description:
		Controls the octave shift modifier in the pc-midi driver.
		The octave can be shifted via software up/down 2 octaves.
		0 means the no ocatve shift.
		Range: -2..2 (minus 2 to plus 2)
		Type: Read/Write
+16 −0
Original line number Diff line number Diff line
@@ -100,6 +100,22 @@ config HID_CHICONY
	---help---
	Support for Chicony Tactical pad.

config HID_PRODIKEYS
	tristate "Prodikeys PC-MIDI Keyboard support" if EMBEDDED
	depends on USB_HID && SND
	select SND_RAWMIDI
	default !EMBEDDED
	---help---
	Support for Prodikeys PC-MIDI Keyboard device support.
	Say Y here to enable support for this device.
	- Prodikeys PC-MIDI keyboard.
	  The Prodikeys PC-MIDI acts as a USB Audio device, with one MIDI
	  input and one MIDI output. These MIDI jacks appear as
	  a sound "card" in the ALSA sound system.
	  Note: if you say N here, this device will still function as a basic
	  multimedia keyboard, but will lack support for the musical keyboard
	  and some additional multimedia keys.

config HID_CYPRESS
	tristate "Cypress" if EMBEDDED
	depends on USB_HID
+1 −0
Original line number Diff line number Diff line
@@ -41,6 +41,7 @@ obj-$(CONFIG_HID_MONTEREY) += hid-monterey.o
obj-$(CONFIG_HID_MOSART)	+= hid-mosart.o
obj-$(CONFIG_HID_NTRIG)		+= hid-ntrig.o
obj-$(CONFIG_HID_ORTEK)		+= hid-ortek.o
obj-$(CONFIG_HID_PRODIKEYS)	+= hid-prodikeys.o
obj-$(CONFIG_HID_QUANTA)	+= hid-quanta.o
obj-$(CONFIG_HID_PANTHERLORD)	+= hid-pl.o
obj-$(CONFIG_HID_PETALYNX)	+= hid-petalynx.o
+1 −0
Original line number Diff line number Diff line
@@ -1293,6 +1293,7 @@ static const struct hid_device_id hid_blacklist[] = {
	{ HID_USB_DEVICE(USB_VENDOR_ID_CHERRY, USB_DEVICE_ID_CHERRY_CYMOTION) },
	{ HID_USB_DEVICE(USB_VENDOR_ID_CHERRY, USB_DEVICE_ID_CHERRY_CYMOTION_SOLAR) },
	{ HID_USB_DEVICE(USB_VENDOR_ID_CHICONY, USB_DEVICE_ID_CHICONY_TACTICAL_PAD) },
	{ HID_USB_DEVICE(USB_VENDOR_ID_CREATIVELABS, USB_DEVICE_ID_PRODIKEYS_PCMIDI) },
	{ HID_USB_DEVICE(USB_VENDOR_ID_CYPRESS, USB_DEVICE_ID_CYPRESS_BARCODE_1) },
	{ HID_USB_DEVICE(USB_VENDOR_ID_CYPRESS, USB_DEVICE_ID_CYPRESS_BARCODE_2) },
	{ HID_USB_DEVICE(USB_VENDOR_ID_CYPRESS, USB_DEVICE_ID_CYPRESS_BARCODE_3) },
+3 −0
Original line number Diff line number Diff line
@@ -148,6 +148,9 @@
#define USB_DEVICE_ID_CODEMERCS_IOW_FIRST	0x1500
#define USB_DEVICE_ID_CODEMERCS_IOW_LAST	0x15ff

#define USB_VENDOR_ID_CREATIVELABS	0x041e
#define USB_DEVICE_ID_PRODIKEYS_PCMIDI	0x2801

#define USB_VENDOR_ID_CYGNAL		0x10c4
#define USB_DEVICE_ID_CYGNAL_RADIO_SI470X	0x818a

Loading