05 Oct, 2009

1 commit


27 Sep, 2009

1 commit

  • * 'for-linus' of git://git.o-hand.com/linux-rpurdie-leds:
    leds: move leds-clevo-mail's probe function to .devinit.text
    leds: Fix indentation in LEDS_LP3944 Kconfig entry
    leds: Fix LED names
    leds: Fix leds-pca9532 whitespace issues
    leds: fix coding style in worker thread code for ledtrig-gpio.
    leds: gpio-leds: fix typographics fault
    leds: Add WM831x status LED driver

    Linus Torvalds
     

24 Sep, 2009

1 commit

  • * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input:
    Input: add driver for Atmel AT42QT2160 Sensor Chip
    Input: max7359 - use threaded IRQs
    Input: add driver for Maxim MAX7359 key switch controller
    Input: add driver for ADP5588 QWERTY I2C Keypad
    Input: add touchscreen driver for MELFAS MCS-5000 controller
    Input: add driver for OpenCores Keyboard Controller
    Input: dm355evm_keys - remove dm355evm_keys_hardirq
    Input: synaptics_i2c - switch to using __cancel_delayed_work()
    Input: ad7879 - add support for AD7889
    Input: atkbd - rely on input core to restore state on resume
    Input: add generic suspend and resume for input devices
    Input: libps2 - additional locking for i8042 ports

    Linus Torvalds
     

23 Sep, 2009

1 commit

  • This makes it consistent with other buses (platform, i2c, vio, ...). I'm
    not sure why we use the prefixes, but there must be a reason.

    This was easy enough to do it, and I did it.

    Signed-off-by: Anton Vorontsov
    Cc: David Brownell
    Cc: David Woodhouse
    Cc: Grant Likely
    Cc: Jean Delvare
    Cc: Ben Dooks
    Cc: Benjamin Herrenschmidt
    Cc: Dmitry Torokhov
    Cc: Samuel Ortiz
    Cc: "John W. Linville"
    Acked-by: Mike Frysinger
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Anton Vorontsov
     

18 Sep, 2009

1 commit

  • The serio ports on i8042 are not completely isolated; while we provide
    enough locking to ensure proper serialization when accessing control
    and data registers AUX and KBD ports can still have an effect on each
    other on PS/2 protocol level. The most prominent effect is that
    issuing a command for the device connected to one port may cause
    abort of the command currently executing by the device connected to
    another port.

    Since i8042 nor serio subsystem are not aware of the details of the
    PS/2 protocol (length of the commands and their replies and so on) the
    locking should be done on libps2 level by adding special handling when
    we see that we are dealing with serio port on i8042.

    Signed-off-by: Dmitry Torokhov

    Dmitry Torokhov
     

07 Sep, 2009

7 commits


27 Aug, 2009

2 commits

  • If we change the inverted attribute to another value, the LED will not be
    inverted until we change the GPIO state.

    Signed-off-by: Thadeu Lima de Souza Cascardo
    Cc: Samuel R. C. Vale
    Cc: Richard Purdie
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Thadeu Lima de Souza Cascardo
     
  • When setting the same GPIO number, multiple IRQ shared requests will be
    done without freing the previous request. It will also try to free a
    failed request or an already freed IRQ if 0 was written to the gpio file.

    All these oops and leaks were fixed with the following solution: keep the
    previous allocated GPIO (if any) still allocated in case the new request
    fails. The alternative solution would desallocate the previous allocated
    GPIO and set gpio as 0.

    Signed-off-by: Thadeu Lima de Souza Cascardo
    Signed-off-by: Samuel R. C. Vale
    Cc: Richard Purdie
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Thadeu Lima de Souza Cascardo
     

03 Jul, 2009

1 commit


24 Jun, 2009

9 commits

  • There already is a "default-on" trigger but there are problems with it.

    For one, it's a inefficient way to do it and requires led trigger support
    to be compiled in.

    But the real reason is that is produces a glitch on the LED. The GPIO is
    allocate with the LED *off*, then *later* when the trigger runs it is
    turned back on. If the LED was already on via the GPIO's reset default or
    action of the firmware, this produces a glitch where the LED goes from on
    to off to on. While normally this is fast enough that it wouldn't be
    noticeable to a human observer, there are still serious problems.

    One is that there may be something else on the GPIO line, like a hardware
    alarm or watchdog, that is fast enough to notice the glitch.

    Another is that the kernel may panic before the LED is turned back on, thus
    hanging with the LED in the wrong state. This is not just speculation, but
    actually happened to me with an embedded system that has an LED which
    should turn off when the kernel finishes booting, which was left in the
    incorrect state due to a bug in the OF LED binding code.

    We also let GPIO LEDs get their initial value from whatever the current
    state of the GPIO line is. On some systems the LEDs are put into some
    state by the firmware or hardware before Linux boots, and it is desired to
    have them keep this state which is otherwise unknown to Linux.

    This requires that the underlying GPIO driver support reading the value of
    output GPIOs. Some drivers support this and some do not.

    The platform device binding gains a field in the platform data
    "default_state" that controls this. There are three constants defined to
    select from on, off, or keeping the current state. The OpenFirmware
    binding uses a property named "default-state" that can be set to "on",
    "off", or "keep". The default if the property isn't present is off.

    Signed-off-by: Trent Piepho
    Acked-by: Grant Likely
    Acked-by: Wolfram Sang
    Acked-by: Sean MacLennan
    Signed-off-by: Richard Purdie

    Trent Piepho
     
  • LEDs driver for National Semiconductor LP3944 Funlight Chip
    http://www.national.com/pf/LP/LP3944.html

    This helper chip can drive up to 8 leds, with two programmable DIM
    modes; it could even be used as a gpio expander but this driver assumes
    it is used as a led controller.

    The DIM modes are used to set _blink_ patterns for leds, the pattern is
    specified supplying two parameters:
    - period: from 0s to 1.6s
    - duty cycle: percentage of the period the led is on, from 0 to 100

    LP3944 can be found on Motorola A910 smartphone, where it drives the rgb
    leds, the camera flash light and the displays backlights.

    Signed-off-by: Antonio Ospite
    Signed-off-by: Richard Purdie

    Antonio Ospite
     
  • Indent using tabs, not spaces.

    Signed-off-by: Antonio Ospite
    Acked-by: Riku Voipio
    Signed-off-by: Richard Purdie

    Antonio Ospite
     
  • Remove an orphan Kconfig entry (LEDS_LP5521)

    Signed-off-by: Richard Purdie

    Richard Purdie
     
  • Add initialisation of GPIO ports for compatibility with boards with Award
    BIOS (e.g. ALIX.3D3).

    Signed-off-by: Tobias Mueller
    Reviewed-by: Constantin Baranov
    Signed-off-by: Andrew Morton
    Signed-off-by: Richard Purdie

    Tobias Mueller
     
  • WARNING: drivers/leds/leds-gpio.o(.text+0x153): Section mismatch in reference from the function gpio_led_probe() to the function .devinit.text:create_gpio_led()

    The function gpio_led_probe() references the function __devinit
    create_gpio_led(). This is often because gpio_led_probe lacks a __devinit
    annotation or the annotation of create_gpio_led is wrong.

    Signed-off-by: Zhenwen Xu
    Signed-off-by: Andrew Morton
    Signed-off-by: Richard Purdie

    Zhenwen Xu
     
  • Allow the user application to change the wave pattern and led current by
    'wave_pattern' and 'rgb_current' sysfs files.

    Signed-off-by: Kim Kyuwon
    Signed-off-by: Andrew Morton
    Signed-off-by: Richard Purdie

    Kim Kyuwon
     
  • Change the license to 'GPL v2'

    Signed-off-by: Kim Kyuwon
    Signed-off-by: Andrew Morton
    Signed-off-by: Richard Purdie

    Kim Kyuwon
     
  • LED_CORE_SUSPENDRESUME flag is not needed in the bd2802 driver, because
    all works for suspend/resume is done in bd2802_suspend and bd2802_suspend
    functions. And this patch allows bd2802 to be configured again when it
    resumes from suspend.

    Signed-off-by: Kim Kyuwon
    Signed-off-by: Andrew Morton
    Signed-off-by: Richard Purdie

    Kim Kyuwon
     

18 May, 2009

1 commit

  • Move all the gpio functions out of as
    this file is for defining the generic IO base addresses
    for the kernel IO calls.

    Make a new header to take this and
    include it via the chain from which is
    what most of these files should be using (and will be
    changed as soon as possible).

    Note, this does make minor changes to some drivers but
    should not mess up any pending merges.

    CC: Richard Purdie
    Acked-by: Mark Brown
    CC: David Brownell
    Signed-off-by: Ben Dooks

    Ben Dooks
     

08 Apr, 2009

1 commit

  • Fix build problems with leds-gpio:

    CC drivers/leds/leds-gpio.o
    drivers/leds/leds-gpio.c: In function 'create_gpio_led':
    drivers/leds/leds-gpio.c:85: warning: 'return' with no value, in function returning non-void

    Signed-off-by: David Brownell
    Signed-off-by: Richard Purdie

    David Brownell
     

06 Apr, 2009

14 commits

  • LP5521 is a three channel led driver with support
    for hardware accelerated patterns (currently used
    via lp5521-only sysfs interface).

    Currently, it's used on n810 device.

    Signed-off-by: Felipe Balbi
    Signed-off-by: Richard Purdie

    Felipe Balbi
     
  • Sometimes it's awkward to make sure that the array in the
    platform_data handed to the leds-gpio driver has only valid
    data ... some leds may not be always available, and coping
    with that currently requires patching or rebuilding the array.

    This patch fixes that by making it be OK to pass an invalid
    GPIO (such as "-EINVAL") ... such table entries are skipped.

    [rpurdie@linux.intel.com: adjusted to apply against other led tree changes]
    Signed-off-by: David Brownell
    Tested-by: Diego Dompe
    Signed-off-by: Richard Purdie

    David Brownell
     
  • This fixes the expression in the driver to do the correct thing,
    not that I think anyone would send SND_* without EV_SND.

    Thanks to Roel Kluin for noticing.

    Signed-off-by: Riku Voipio
    Signed-off-by: Richard Purdie

    Riku Voipio
     
  • A pointer to h1940leds_probe is passed to the core via
    platform_driver_register and so the function must not disappear when the
    .init sections are discarded. Otherwise (if also having HOTPLUG=y)
    unbinding and binding a device to the driver via sysfs will result in an
    oops as does a device being registered late.

    An alternative to this patch is using platform_driver_probe instead of
    platform_driver_register plus removing the pointer to the probe function
    from the struct platform_driver.

    Signed-off-by: Uwe Kleine-König
    Signed-off-by: Richard Purdie

    Uwe Kleine-König
     
  • This goto is unnecessary.

    Signed-off-by: Zhenwen Xu
    Signed-off-by: Andrew Morton
    Signed-off-by: Richard Purdie

    Zhenwen Xu
     
  • ROHM BD2802GU is a RGB LED controller attached to i2c bus and specifically
    engineered for decoration purposes. This RGB controller incorporates
    lighting patterns and illuminates.

    This driver is designed to minimize power consumption, so when there is no
    emitting LED, it enters to reset state. And because the BD2802GU has lots
    of features that can't be covered by the current LED framework, it
    provides Advanced Configuration Function(ADF) mode, so that user
    applications can set registers of BD2802GU directly.

    Here are basic usage examples :
    ; to turn on LED (not blink)
    $ echo 1 > /sys/class/leds/led1_R/brightness
    ; to blink LED
    $ echo timer > /sys/class/leds/led1_R/trigger
    $ echo 1 > /sys/class/leds/led1_R/delay_on
    $ echo 1 > /sys/class/leds/led1_R/delay_off
    ; to turn off LED
    $ echo 0 > /sys/class/leds/led1_R/brightness

    [akpm@linux-foundation.org: coding-style fixes]
    Signed-off-by: Kim Kyuwon
    Signed-off-by: Andrew Morton
    Signed-off-by: Richard Purdie

    Kim Kyuwon
     
  • The leds-clevo-mail driver is in the mainline kernel since 2.6.25 and works
    without severe problems. Make this driver available for a larger audience.

    Signed-off-by: Márton Németh
    Signed-off-by: Richard Purdie

    Németh Márton
     
  • Signed-off-by: Adam Nielsen
    Signed-off-by: Richard Purdie

    Adam Nielsen
     
  • The gpio led trigger will allow leds to be triggered by
    gpio events.

    When we give the led a gpio number, the trigger will
    request_irq() on that so we don't have to keep polling
    for gpio state.

    It's useful for usecases as n810's keypad leds that could
    be triggered by the gpio event generated when user slides
    up to show the keypad.

    We also provide means for userland to tell us what is the
    desired brightness for that special led when it goes on
    so userland could use information from ambient light sensors
    and not set led brightness too high if it's not necessary.

    Signed-off-by: Felipe Balbi
    Signed-off-by: Richard Purdie

    Felipe Balbi
     
  • Mikrotik built six LEDs into the Routerboard 532, from which one is
    destined for custom use, the so called "User LED". This patch adds a
    driver for it, based on the LEDs class.

    Signed-off-by: Phil Sutter
    Acked-by: Florian Fainelli
    Signed-off-by: Richard Purdie

    Phil Sutter
     
  • Add an option to preserve LED state when suspending/resuming to the LED
    gpio driver. Based on a suggestion from Robert Jarzmik.

    Tested-by: Robert Jarzmik
    Signed-off-by: Richard Purdie

    Richard Purdie
     
  • Add a simple driver for pwm driver LEDs. pwm_id and period can be defined
    in board file. It is developed for pxa, however it is probably generic
    enough to be used on other platforms with pwm.

    Signed-off-by: Luotao Fu
    Signed-off-by: Andrew Morton
    Signed-off-by: Richard Purdie

    Luotao Fu
     
  • You can't have multiple module_init()/module_exit calls so resort to messy
    ifdefs potentially pending some code refactoring.

    Signed-off-by: Richard Purdie

    Richard Purdie
     
  • Add an LED driver using the DAC124S085 DAC from NatSemi

    [randy.dunlap@oracle.com: use header files for interfaces]
    Signed-off-by: Guennadi Liakhovetski
    Signed-off-by: Randy Dunlap
    Signed-off-by: Richard Purdie

    Guennadi Liakhovetski