Message ID | 20210204143803.28140-1-schuchmann@schleissheimer.de |
---|---|
State | New |
Headers | show |
Series | [v2,1/4] leds: lp50xx: add setting of default intensity from DT | expand |
Hello Pavel, > > > Signed-off-by: Sven Schuchmann <schuchmann@schleissheimer.de> > > Check your email headers, empty To: is strange. > > > diff --git a/drivers/leds/leds-lp50xx.c b/drivers/leds/leds-lp50xx.c > > index 79bc071c31fb..e8aa36c7e963 100644 > > --- a/drivers/leds/leds-lp50xx.c > > +++ b/drivers/leds/leds-lp50xx.c > > @@ -504,6 +504,24 @@ static int lp50xx_probe_dt(struct lp50xx *priv) > > num_colors++; > > } > > > > + if (fwnode_property_count_u32(child, "default-intensity") > > + == num_colors) { > > + > > + int j, def_int[LP50XX_LEDS_PER_MODULE]; > > No need for empty line? Using "git send-email", maybe I am doing something wrong here, will check. > > + ret = fwnode_property_read_u32_array(child, > > + "default-intensity", def_int, num_colors); > > + if (ret) { > > + dev_err(&priv->client->dev, > > + "Cannot read default-intensity: %d\n", > > + ret); > > + goto child_out; > > + } > > Just ignore such error? Yes, I will ignore in the next version Best Regards, Sven
diff --git a/drivers/leds/leds-lp50xx.c b/drivers/leds/leds-lp50xx.c index 79bc071c31fb..e8aa36c7e963 100644 --- a/drivers/leds/leds-lp50xx.c +++ b/drivers/leds/leds-lp50xx.c @@ -504,6 +504,24 @@ static int lp50xx_probe_dt(struct lp50xx *priv) num_colors++; } + if (fwnode_property_count_u32(child, "default-intensity") + == num_colors) { + + int j, def_int[LP50XX_LEDS_PER_MODULE]; + + ret = fwnode_property_read_u32_array(child, + "default-intensity", def_int, num_colors); + if (ret) { + dev_err(&priv->client->dev, + "Cannot read default-intensity: %d\n", + ret); + goto child_out; + } + + for (j = 0; j < num_colors; j++) + mc_led_info[j].intensity = def_int[j]; + } + led->priv = priv; led->mc_cdev.num_colors = num_colors; led->mc_cdev.subled_info = mc_led_info;
In order to use a multicolor-led together with a trigger the led needs to have an intensity set to see something. The trigger changes the brightness of the led but if there is no intensity we actually see nothing. This patch adds the ability to set the default intensity of each multi-led node so that it is turned on from DT. If no intensity is given the led will be initialized with full intensity. Part 1 updates the documentation. Part 2 removes an unused variable. Part 3 sets the initial intensity to full. Part 4 reads the default intensity from DT changes in v1 - fix dt_binding_check errors changes in v2 - sets default intensity to full - adds the property to the multi-led node Signed-off-by: Sven Schuchmann <schuchmann@schleissheimer.de> --- drivers/leds/leds-lp50xx.c | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+)