lkml.org 
[lkml]   [2020]   [May]   [26]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH v25 13/16] leds: lp5521: Add multicolor framework multicolor brightness support
    Date
    Add the multicolor brightness call back to support the multicolor
    framework. This function allows setting the brightness across
    grouped LED channels in a single call.

    Acked-by: Pavel Machek <pavel@ucw.cz>
    Acked-by: Jacek Anaszewski <jacek.anaszewski@gmail.com>
    Signed-off-by: Dan Murphy <dmurphy@ti.com>
    ---
    drivers/leds/Kconfig | 1 +
    drivers/leds/leds-lp5521.c | 20 ++++++++++++++++++++
    2 files changed, 21 insertions(+)

    diff --git a/drivers/leds/Kconfig b/drivers/leds/Kconfig
    index 8b28f73c810c..bdf8fc2652fb 100644
    --- a/drivers/leds/Kconfig
    +++ b/drivers/leds/Kconfig
    @@ -398,6 +398,7 @@ config LEDS_LP55XX_COMMON
    config LEDS_LP5521
    tristate "LED Support for N.S. LP5521 LED driver chip"
    depends on LEDS_CLASS && I2C
    + depends on LEDS_CLASS_MULTI_COLOR || !LEDS_CLASS_MULTI_COLOR
    select LEDS_LP55XX_COMMON
    help
    If you say yes here you get support for the National Semiconductor
    diff --git a/drivers/leds/leds-lp5521.c b/drivers/leds/leds-lp5521.c
    index 6ff81d6be789..ef8c3bfa8f3c 100644
    --- a/drivers/leds/leds-lp5521.c
    +++ b/drivers/leds/leds-lp5521.c
    @@ -349,6 +349,25 @@ static int lp5521_run_selftest(struct lp55xx_chip *chip, char *buf)
    return 0;
    }

    +static int lp5521_multicolor_brightness(struct lp55xx_led *led)
    +{
    + struct lp55xx_chip *chip = led->chip;
    + int ret;
    + int i;
    +
    + mutex_lock(&chip->lock);
    + for (i = 0; i < led->mc_cdev.num_colors; i++) {
    + ret = lp55xx_write(chip,
    + LP5521_REG_LED_PWM_BASE +
    + led->mc_cdev.subled_info[i].channel,
    + led->mc_cdev.subled_info[i].brightness);
    + if (ret)
    + break;
    + }
    + mutex_unlock(&chip->lock);
    + return ret;
    +}
    +
    static int lp5521_led_brightness(struct lp55xx_led *led)
    {
    struct lp55xx_chip *chip = led->chip;
    @@ -490,6 +509,7 @@ static struct lp55xx_device_config lp5521_cfg = {
    .max_channel = LP5521_MAX_LEDS,
    .post_init_device = lp5521_post_init_device,
    .brightness_fn = lp5521_led_brightness,
    + .multicolor_brightness_fn = lp5521_multicolor_brightness,
    .set_led_current = lp5521_set_led_current,
    .firmware_cb = lp5521_firmware_loaded,
    .run_engine = lp5521_run_engine,
    --
    2.25.1
    \
     
     \ /
      Last update: 2020-05-26 18:48    [W:2.602 / U:0.144 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site