Bill Richardson f3f837e52b platform/chrome: Expose Chrome OS Lightbar to users
This adds some sysfs entries to provide userspace control of the
four-element LED "lightbar" on the Chromebook Pixel. This only instantiates
the lightbar controls if the device actually exists.

To prevent DoS attacks, this interface is limited to 20 accesses/second,
although that rate can be adjusted by a privileged user.

On Chromebooks without a lightbar, this should have no effect. On the
Chromebook Pixel, you should be able to do things like this:

    $ cd /sys/devices/virtual/chromeos/cros_ec/lightbar
    $ echo 0x80 > brightness
    $ echo 255 > brightness
    $
    $ cat sequence
    S0
    $ echo konami > sequence
    $ cat sequence
    KONAMI
    $
    $ cat sequence
    S0

And

    $ cd /sys/devices/virtual/chromeos/cros_ec/lightbar
    $ echo stop > sequence
    $ echo "4 255 255 255" > led_rgb
    $ echo "0 255 0 0  1 0 255 0  2 0 0 255  3 255 255 0" > led_rgb
    $ echo run  > sequence

Test the DoS prevention with this:

    $ cd /sys/devices/virtual/chromeos/cros_ec/lightbar
    $ echo 500 > interval_msec
    $ time (cat version version version version version version version)

Signed-off-by: Bill Richardson <wfrichar@chromium.org>
Reviewed-by: Olof Johansson <olofj@chromium.org>
Tested-by: Doug Anderson <dianders@chromium.org>
Reviewed-by: Benson Leung <bleung@chromium.org>
Signed-off-by: Javier Martinez Canillas <javier.martinez@collabora.co.uk>
Tested-by: Gwendal Grignou <gwendal@chromium.org>
Reviewed-by: Gwendal Grignou <gwendal@chromium.org>
Signed-off-by: Olof Johansson <olof@lixom.net>
2015-02-26 15:45:16 -08:00
..
2015-02-15 11:11:47 -08:00
2015-02-17 09:27:54 -08:00
2015-02-19 20:58:42 -06:00
2015-02-17 09:27:54 -08:00
2015-02-15 10:48:44 -08:00
2015-02-12 09:16:56 -08:00
2015-02-03 15:48:51 -08:00
2015-02-03 15:58:39 -08:00
2015-02-15 10:48:44 -08:00
2015-02-18 08:01:44 -08:00
2015-02-04 09:15:18 +01:00
2015-02-18 09:43:46 -08:00
2015-02-17 09:38:59 -08:00
2015-02-15 10:24:55 -08:00
2015-02-18 08:40:29 +01:00
2015-02-18 09:05:48 -08:00
2015-02-21 19:16:42 -08:00
2015-02-17 09:38:59 -08:00
2015-02-15 10:24:55 -08:00
2015-02-11 10:28:45 -08:00
2015-02-03 15:58:39 -08:00