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

Commit 30ba2fbd authored by Vivien Didelot's avatar Vivien Didelot Committed by Jiri Kosina
Browse files

HID: add ThingM blink(1) USB RGB LED support

The ThingM blink(1) is an open source hardware USB RGB LED. It contains
an internal EEPROM, allowing to configure up to 12 light patterns. A
light pattern is a RGB color plus a fade time. This driver registers a
LED class instance with additional sysfs attributes to support basic
functions such as setting RGB colors, fade and playing. Other functions
are still accessible through the hidraw interface.

At this time, the only documentation for the device is the firmware
source code from ThingM, plus a few schematics. They are available at:

https://github.com/todbot/blink1



This patch is version 3. It updates the name of the source file, the
driver and the led sysfs entry, according to comments from Jiri Kosina
and Simon Wood.

Signed-off-by: default avatarVivien Didelot <vivien.didelot@savoirfairelinux.com>
Signed-off-by: default avatarJiri Kosina <jkosina@suse.cz>
parent 89bdd0c6
Loading
Loading
Loading
Loading
+23 −0
Original line number Diff line number Diff line
What:		/sys/class/leds/blink1::<serial>/rgb
Date:		January 2013
Contact:	Vivien Didelot <vivien.didelot@savoirfairelinux.com>
Description:	The ThingM blink1 is an USB RGB LED. The color notation is
		3-byte hexadecimal. Read this attribute to get the last set
		color. Write the 24-bit hexadecimal color to change the current
		LED color. The default color is full white (0xFFFFFF).
		For instance, set the color to green with: echo 00FF00 > rgb

What:		/sys/class/leds/blink1::<serial>/fade
Date:		January 2013
Contact:	Vivien Didelot <vivien.didelot@savoirfairelinux.com>
Description:	This attribute allows to set a fade time in milliseconds for
		the next color change. Read the attribute to know the current
		fade time. The default value is set to 0 (no fade time). For
		instance, set a fade time of 2 seconds with: echo 2000 > fade

What:		/sys/class/leds/blink1::<serial>/play
Date:		January 2013
Contact:	Vivien Didelot <vivien.didelot@savoirfairelinux.com>
Description:	This attribute is used to play/pause the light patterns. Write 1
		to start playing, 0 to stop. Reading this attribute returns the
		current playing status.
+5 −0
Original line number Diff line number Diff line
@@ -7306,6 +7306,11 @@ S: Supported
F:      drivers/thermal/
F:      include/linux/thermal.h

THINGM BLINK(1) USB RGB LED DRIVER
M:	Vivien Didelot <vivien.didelot@savoirfairelinux.com>
S:	Maintained
F:	drivers/hid/hid-thingm.c

THINKPAD ACPI EXTRAS DRIVER
M:	Henrique de Moraes Holschuh <ibm-acpi@hmh.eng.br>
L:	ibm-acpi-devel@lists.sourceforge.net
+10 −0
Original line number Diff line number Diff line
@@ -655,6 +655,16 @@ config HID_TOPSEED
	Say Y if you have a TopSeed Cyberlink or BTC Emprex or Conceptronic
	CLLRCMCE remote control.

config HID_THINGM
	tristate "ThingM blink(1) USB RGB LED"
	depends on USB_HID
	depends on LEDS_CLASS
	---help---
	Support for the ThingM blink(1) USB RGB LED. This driver registers a
	Linux LED class instance, plus additional sysfs attributes to control
	RGB colors, fade time and playing. The device is exposed through hidraw
	to access other functions.

config HID_THRUSTMASTER
	tristate "ThrustMaster devices support"
	depends on USB_HID
+1 −0
Original line number Diff line number Diff line
@@ -103,6 +103,7 @@ obj-$(CONFIG_HID_SONY) += hid-sony.o
obj-$(CONFIG_HID_SPEEDLINK)	+= hid-speedlink.o
obj-$(CONFIG_HID_SUNPLUS)	+= hid-sunplus.o
obj-$(CONFIG_HID_GREENASIA)	+= hid-gaff.o
obj-$(CONFIG_HID_THINGM)	+= hid-thingm.o
obj-$(CONFIG_HID_THRUSTMASTER)	+= hid-tmff.o
obj-$(CONFIG_HID_TIVO)		+= hid-tivo.o
obj-$(CONFIG_HID_TOPSEED)	+= hid-topseed.o
+1 −0
Original line number Diff line number Diff line
@@ -1699,6 +1699,7 @@ static const struct hid_device_id hid_have_special_driver[] = {
	{ HID_BLUETOOTH_DEVICE(USB_VENDOR_ID_SONY, USB_DEVICE_ID_SONY_PS3_CONTROLLER) },
	{ HID_USB_DEVICE(USB_VENDOR_ID_SONY, USB_DEVICE_ID_SONY_VAIO_VGX_MOUSE) },
	{ HID_USB_DEVICE(USB_VENDOR_ID_SUNPLUS, USB_DEVICE_ID_SUNPLUS_WDESKTOP) },
	{ HID_USB_DEVICE(USB_VENDOR_ID_THINGM, USB_DEVICE_ID_BLINK1) },
	{ HID_USB_DEVICE(USB_VENDOR_ID_THRUSTMASTER, 0xb300) },
	{ HID_USB_DEVICE(USB_VENDOR_ID_THRUSTMASTER, 0xb304) },
	{ HID_USB_DEVICE(USB_VENDOR_ID_THRUSTMASTER, 0xb323) },
Loading