]> Gentwo Git Trees - linux/.git/commitdiff
leds: rgb: leds-qcom-lpg: Allow LED_COLOR_ID_MULTI
authorKonrad Dybcio <konrad.dybcio@oss.qualcomm.com>
Mon, 17 Nov 2025 13:45:59 +0000 (14:45 +0100)
committerLee Jones <lee@kernel.org>
Thu, 20 Nov 2025 14:25:37 +0000 (14:25 +0000)
There's nothing special about RGB multi-led instances. Allow any color
combinations by simply extending the "if _RGB" checks.

Signed-off-by: Konrad Dybcio <konrad.dybcio@oss.qualcomm.com>
Reviewed-by: Bjorn Andersson <andersson@kernel.org>
Reviewed-by: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>
Reviewed-by: David Heidelberg <david@ixit.cz>
Link: https://patch.msgid.link/20251117-topic-lpg_multi-v1-1-05604374a2dd@oss.qualcomm.com
Signed-off-by: Lee Jones <lee@kernel.org>
drivers/leds/rgb/leds-qcom-lpg.c

index 4f2a178e3d265a2cc88e651d3e2ca6ae3dfac2e2..c8afc68e442f32359d471fdba518df6334c3b122 100644 (file)
@@ -1382,7 +1382,7 @@ static int lpg_add_led(struct lpg *lpg, struct device_node *np)
                return dev_err_probe(lpg->dev, ret,
                              "failed to parse \"color\" of %pOF\n", np);
 
-       if (color == LED_COLOR_ID_RGB)
+       if (color == LED_COLOR_ID_RGB || color == LED_COLOR_ID_MULTI)
                num_channels = of_get_available_child_count(np);
        else
                num_channels = 1;
@@ -1394,7 +1394,7 @@ static int lpg_add_led(struct lpg *lpg, struct device_node *np)
        led->lpg = lpg;
        led->num_channels = num_channels;
 
-       if (color == LED_COLOR_ID_RGB) {
+       if (color == LED_COLOR_ID_RGB || color == LED_COLOR_ID_MULTI) {
                info = devm_kcalloc(lpg->dev, num_channels, sizeof(*info), GFP_KERNEL);
                if (!info)
                        return -ENOMEM;
@@ -1454,7 +1454,7 @@ static int lpg_add_led(struct lpg *lpg, struct device_node *np)
 
        init_data.fwnode = of_fwnode_handle(np);
 
-       if (color == LED_COLOR_ID_RGB)
+       if (color == LED_COLOR_ID_RGB || color == LED_COLOR_ID_MULTI)
                ret = devm_led_classdev_multicolor_register_ext(lpg->dev, &led->mcdev, &init_data);
        else
                ret = devm_led_classdev_register_ext(lpg->dev, &led->cdev, &init_data);