Input: wacom - add LED support for Cintiq 24HD
authorJason Gerecke <killertofu@gmail.com>
Mon, 12 Dec 2011 08:12:04 +0000 (00:12 -0800)
committerDmitry Torokhov <dmitry.torokhov@gmail.com>
Mon, 12 Dec 2011 08:14:21 +0000 (00:14 -0800)
The Cintiq 24HD has three LEDs on the left side of the tablet and
three LEDs on the right side of the tablet. Switching to LED 0,
1, or 2 will enable the top, middle, or bottom LED for the respective
side. Switching to LED 3 turns off the LEDs on the respective side.

Signed-off-by: Jason Gerecke <killertofu@gmail.com>
Reviewed-by: Ping Cheng <pingc@wacom.com>
Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
Documentation/ABI/testing/sysfs-driver-wacom
drivers/input/tablet/wacom_sys.c

index 82d4df136444fb4e8d1d273fe08cb12fb2d2c18b..0130d6683c14eecf01c3a9b6226aec0549487a81 100644 (file)
@@ -15,9 +15,9 @@ Contact:      linux-input@vger.kernel.org
 Description:
                Attribute group for control of the status LEDs and the OLEDs.
                This attribute group is only available for Intuos 4 M, L,
-               and XL (with LEDs and OLEDs) and Cintiq 21UX2 (LEDs only).
-               Therefore its presence implicitly signifies the presence of
-               said LEDs and OLEDs on the tablet device.
+               and XL (with LEDs and OLEDs) and Cintiq 21UX2 and Cintiq 24HD
+               (LEDs only). Therefore its presence implicitly signifies the
+               presence of said LEDs and OLEDs on the tablet device.
 
 What:          /sys/bus/usb/devices/<busnum>-<devnum>:<cfg>.<intf>/wacom_led/status0_luminance
 Date:          August 2011
@@ -41,16 +41,17 @@ Date:               August 2011
 Contact:       linux-input@vger.kernel.org
 Description:
                Writing to this file sets which one of the four (for Intuos 4)
-               or of the right four (for Cintiq 21UX2) status LEDs is active (0..3).
-               The other three LEDs on the same side are always inactive.
+               or of the right four (for Cintiq 21UX2 and Cintiq 24HD) status
+               LEDs is active (0..3). The other three LEDs on the same side are
+               always inactive.
 
 What:          /sys/bus/usb/devices/<busnum>-<devnum>:<cfg>.<intf>/wacom_led/status_led1_select
 Date:          September 2011
 Contact:       linux-input@vger.kernel.org
 Description:
-               Writing to this file sets which one of the left four (for Cintiq 21UX2)
-               status LEDs is active (0..3). The other three LEDs on the left are always
-               inactive.
+               Writing to this file sets which one of the left four (for Cintiq 21UX2
+               and Cintiq 24HD) status LEDs is active (0..3). The other three LEDs on
+               the left are always inactive.
 
 What:          /sys/bus/usb/devices/<busnum>-<devnum>:<cfg>.<intf>/wacom_led/buttons_luminance
 Date:          August 2011
index 2fe21d1a18b7af9ed5b409e484b004af321e5e27..7e63183a6c686c1dbd81da234aac04cdf469ff9c 100644 (file)
@@ -563,7 +563,8 @@ static int wacom_led_control(struct wacom *wacom)
        if (!buf)
                return -ENOMEM;
 
-       if (wacom->wacom_wac.features.type == WACOM_21UX2)
+       if (wacom->wacom_wac.features.type == WACOM_21UX2 ||
+           wacom->wacom_wac.features.type == WACOM_24HD)
                led = (wacom->led.select[1] << 4) | 0x40;
 
        led |=  wacom->led.select[0] | 0x4;
@@ -782,6 +783,7 @@ static int wacom_initialize_leds(struct wacom *wacom)
                                           &intuos4_led_attr_group);
                break;
 
+       case WACOM_24HD:
        case WACOM_21UX2:
                wacom->led.select[0] = 0;
                wacom->led.select[1] = 0;
@@ -816,6 +818,7 @@ static void wacom_destroy_leds(struct wacom *wacom)
                                   &intuos4_led_attr_group);
                break;
 
+       case WACOM_24HD:
        case WACOM_21UX2:
                sysfs_remove_group(&wacom->intf->dev.kobj,
                                   &cintiq_led_attr_group);