leds: lm3532: Fix optional led-max-microamp prop error handling

Fix the error handling for the led-max-microamp property.
Need to check if the property is present and then if it is
retrieve the setting and its max boundary

Reported-by: Pavel Machek <pavel@ucw.cz>
Signed-off-by: Dan Murphy <dmurphy@ti.com>
Signed-off-by: Jacek Anaszewski <jacek.anaszewski@gmail.com>
This commit is contained in:
Dan Murphy 2019-09-11 13:27:30 -05:00 committed by Jacek Anaszewski
parent 4016ba8588
commit 6d4faf3b6b
1 changed files with 8 additions and 5 deletions

View File

@ -601,11 +601,14 @@ static int lm3532_parse_node(struct lm3532_data *priv)
goto child_out;
}
ret = fwnode_property_read_u32(child, "led-max-microamp",
&led->full_scale_current);
if (led->full_scale_current > LM3532_FS_CURR_MAX)
led->full_scale_current = LM3532_FS_CURR_MAX;
if (fwnode_property_present(child, "led-max-microamp") &&
fwnode_property_read_u32(child, "led-max-microamp",
&led->full_scale_current))
dev_err(&priv->client->dev,
"Failed getting led-max-microamp\n");
else
led->full_scale_current = min(led->full_scale_current,
LM3532_FS_CURR_MAX);
if (led->mode == LM3532_BL_MODE_ALS) {
led->mode = LM3532_ALS_CTRL;