1. 31 3月, 2015 1 次提交
  2. 27 1月, 2015 1 次提交
    • J
      leds: Add LED Flash class extension to the LED subsystem · 7aea8389
      Jacek Anaszewski 提交于
      Some LED devices support two operation modes - torch and flash.
      This patch provides support for flash LED devices in the LED subsystem
      by introducing new sysfs attributes and kernel internal interface.
      The attributes being introduced are: flash_brightness, flash_strobe,
      flash_timeout, max_flash_timeout, max_flash_brightness, flash_fault,
      flash_sync_strobe and available_sync_leds. All the flash related
      features are placed in a separate module.
      
      The modifications aim to be compatible with V4L2 framework requirements
      related to the flash devices management. The design assumes that V4L2
      sub-device can take of the LED class device control and communicate
      with it through the kernel internal interface. When V4L2 Flash sub-device
      file is opened, the LED class device sysfs interface is made
      unavailable.
      Signed-off-by: NJacek Anaszewski <j.anaszewski@samsung.com>
      Acked-by: NKyungmin Park <kyungmin.park@samsung.com>
      Cc: Richard Purdie <rpurdie@rpsys.net>
      Acked-by: NPavel Machek <pavel@ucw.cz>
      Signed-off-by: NBryan Wu <cooloney@gmail.com>
      7aea8389
  3. 02 12月, 2014 1 次提交
  4. 20 11月, 2014 1 次提交
  5. 26 9月, 2014 1 次提交
  6. 24 9月, 2014 1 次提交
  7. 09 9月, 2014 1 次提交
  8. 24 7月, 2014 1 次提交
  9. 09 7月, 2014 1 次提交
  10. 11 5月, 2014 1 次提交
  11. 08 5月, 2014 1 次提交
  12. 15 4月, 2014 1 次提交
    • V
      HID: thingm: refactor blink(1) support · f70ed8a6
      Vivien Didelot 提交于
      This patch refactors the way the thingm driver registers a blink(1) LED.
      In order to make the driver simpler and more standard, drop the "rgb"
      sysfs attribute and create one instance of LED class per RGB channel.
      
      Actually, the name of the LED class instance registered for a blink(1)
      device is "blink1::ABCD", where ABCD is the last 4 chars of the serial
      number. The driver now registers 3 instances per RGB chip, named
      "thingmX:{red,green,blue}:ledY" where X is the hidraw minor number and Y
      is the RGB chip number (as seen by the firmware).
      
      This patch also uses work queues to defer calls with the device, which
      now allows triggers to work as expected with this LED device.
      
      Also remove the brightness structure field and the brightness_get
      backend, as it is already handled by the LED class, and changes the
      prefix of functions and structures to thingm_ to match the driver name.
      Signed-off-by: NVivien Didelot <vivien.didelot@savoirfairelinux.com>
      Signed-off-by: NJiri Kosina <jkosina@suse.cz>
      f70ed8a6
  13. 28 3月, 2014 1 次提交
  14. 12 3月, 2014 1 次提交
  15. 28 2月, 2014 1 次提交
  16. 25 2月, 2014 1 次提交
  17. 23 10月, 2013 1 次提交
  18. 27 8月, 2013 5 次提交
  19. 22 7月, 2013 1 次提交
  20. 21 6月, 2013 1 次提交
  21. 16 4月, 2013 1 次提交
  22. 02 4月, 2013 2 次提交
    • K
      leds: move LED trigger drivers into new subdirectory · f07fb521
      Kim, Milo 提交于
      For better driver management, new subdirectory, 'trigger' is created.
      All LED trigger drivers are moved into this directory.
      
      Internal header, 'leds.h' is included in each LED trigger drivers.
      Fix the location of header file, "leds.h" -> "../leds.h" in driver files.
      One exception is here, 'ledtrig-timer.c'.
      There is no need to include 'leds.h'. so '#include "leds.h"' line was removed.
      Signed-off-by: NMilo(Woogyom) Kim <milo.kim@ti.com>
      Signed-off-by: NBryan Wu <cooloney@gmail.com>
      f07fb521
    • K
      leds: add new LP5562 LED driver · ff45262a
      Kim, Milo 提交于
      LP5562 can drive up to 4 channels, RGB and White.
      LEDs can be controlled directly via the led class control interface.
      
       LP55xx common driver
        LP5562 is one of LP55xx family device, so LP55xx common code are used.
        On the other hand, chip specific configuration is defined in the structure
        'lp55xx_device_config'
      
       LED pattern data
        LP5562 has also internal program memory which is used for running various LED
        patterns. LP5562 driver supports the firmware interface and the predefined
        pattern data as well.
      
       LP5562 device attributes: 'led_pattern' and 'engine_mux'
        A 'led_pattern' is an index code which runs the predefined pattern data.
        And 'engine_mux' is updated with the firmware interface is activated.
        Detailed description has been updated in the documentation files,
        'leds-lp55xx.txt' and 'leds-lp5562.txt'.
      
       Changes on the header file
        LP5562 configurable definitions are added.
        Pattern RGB data is fixed as constant value.
        (No side effect on other devices, LP5521 or LP5523.)
      
      (cooloney@gmail.com: remove redundant mutex_unlock(). Reported by Dan
      Carpenter <dan.carpenter@oracle.com>)
      Signed-off-by: NMilo(Woogyom) Kim <milo.kim@ti.com>
      Signed-off-by: NBryan Wu <cooloney@gmail.com>
      ff45262a
  23. 07 2月, 2013 3 次提交
    • P
      leds: leds-pwm: make it depend on PWM and not HAVE_PWM · ad0ba85f
      Peter Ujfalusi 提交于
      The correct dependency for the leds-pwm is PWM and not HAVE_PWM
      since PWM drivers now have their own subsystem.
      Signed-off-by: NPeter Ujfalusi <peter.ujfalusi@ti.com>
      Signed-off-by: NBryan Wu <cooloney@gmail.com>
      ad0ba85f
    • M
      leds-lp55xx: support firmware interface · 10c06d17
      Milo(Woogyom) Kim 提交于
       This patch provides additional device attributes which enable
       loading the firmware. ('select_engine' and 'run_engine')
       To run a LED pattern, two parts of driver should be enabled.
      
       Common features : lp55xx-common
       ===============================
       Firmware interface for loading LED patterns
      
       Chip specific features : leds-lp5521, leds-lp5523
       =================================================
       Register addresses for loading firmware data
       Register addresses for running selected engine
      
       Pattern programming sequence
       ============================
       LP55xx chips have three program engines.
       To load and run a LED pattern, the programming sequence is as follows.
       (1) Select an engine number (1/2/3)
       (2) Set engine mode to load
       (3) Write pattern data into selected area
       (4) Set engine mode to run
      
       This sequence is almost same as the firmware interface.
       (1) Select an engine number               : 'select_engine' dev attribute
       (2) Mode change to load                   : 'loading' of firmware class
       (3) Write pattern data into selected area : 'data' of firmware class
       (4) Mode change to run                    : 'run_engine' dev attribute
      
       (1) and (4) are device specific features which provide callback functions
       (2) and (3) are common features.
      
       For example,
       echo 1 or 2 or 3 > /sys/bus/i2c/devices/xxxx/select_engine
       echo 1 > /sys/class/firmware/lp5521/loading
       echo "4000600040FF6000" > /sys/class/firmware/lp5521/data
       echo 0 > /sys/class/firmware/lp5521/loading
       echo 1 > /sys/bus/i2c/devices/xxxx/run_engine
      
       As soon as 'loading' is set to 0, registered callback is called.
       Inside the callback, the selected engine is loaded and memory is updated.
       To run programmed pattern, 'run_engine' attribute should be enabled.
      
       Device specific data structure
       ==============================
       o Firmware callback
         load selected engine and update program memory
       o Run engine
         change the engine mode
       o 'engine_idx' and firmware data, 'fw'
         Those are used in the driver internally with callback functions
      Signed-off-by: NMilo(Woogyom) Kim <milo.kim@ti.com>
      Signed-off-by: NBryan Wu <cooloney@gmail.com>
      10c06d17
    • M
      leds-lp55xx: add new common driver for lp5521/5523 · c93d08fa
      Milo(Woogyom) Kim 提交于
       This patch supports basic common driver code for LP5521, LP5523/55231 devices.
      
       ( Driver Structure Data )
      
       lp55xx_led and lp55xx_chip
       In lp55xx common driver, two different data structure is used.
       o lp55xx_led
         control multi output LED channels such as led current, channel index.
       o lp55xx_chip
         general chip control such like the I2C and platform data.
      
       For example, LP5521 has maximum 3 LED channels.
       LP5523/55231 has 9 output channels.
      
       lp55xx_chip for LP5521 ... lp55xx_led #1
                                  lp55xx_led #2
                                  lp55xx_led #3
      
       lp55xx_chip for LP5523 ... lp55xx_led #1
                                  lp55xx_led #2
                                  .
                                  .
                                  lp55xx_led #9
      
       ( Platform Data )
      
       LP5521 and LP5523/55231 have own specific platform data.
       However, this data can be handled with just one platform data structure.
       The lp55xx platform data is declared in the header.
       This structure is derived from leds-lp5521.h and leds-lp5523.h
      Signed-off-by: NMilo(Woogyom) Kim <milo.kim@ti.com>
      Signed-off-by: NBryan Wu <cooloney@gmail.com>
      c93d08fa
  24. 22 1月, 2013 1 次提交
  25. 22 11月, 2012 2 次提交
  26. 13 9月, 2012 1 次提交
  27. 11 9月, 2012 2 次提交
  28. 31 7月, 2012 1 次提交
  29. 26 7月, 2012 1 次提交
    • K
      leds: add new lp8788 led driver · eb80411b
      Kim, Milo 提交于
      TI LP8788 PMU has the current sink as the keyboard led driver.
      The brightness is controlled by the i2c commands.
      Configurable parameters can be defined in the platform side.
      
      Patch v2.
      (a) use workqueue on changing the brightness
      
      (b) use mutex_lock/unlock when the brightness is set
          and the led block of lp8788 device is enabled
      
      (c) remove err_dev on _probe()
          : just return as returned value if any errors
      
      (d) replace module_init/exit() with module_platform_driver()
      
      (e) add led configuration structure and loading them by default
          if platform data is null
      Signed-off-by: NMilo(Woogyom) Kim <milo.kim@ti.com>
      Acked-by: NMark Brown <broonie@opensource.wolfsonmicro.com>
      Signed-off-by: NBryan Wu <bryan.wu@canonical.com>
      eb80411b
  30. 24 7月, 2012 2 次提交