mirror of
https://github.com/AuxXxilium/linux_dsm_epyc7002.git
synced 2025-01-18 12:06:22 +07:00
leds: lm3532: Fixes for the driver for stability
Fixed misspelled words, added error check during probe
on the init of the registers, and fixed ALS/I2C control
mode.
Fixes: bc1b8492c7
("leds: lm3532: Introduce the lm3532 LED driver")
Reported-by: Pavel Machek <pavel@ucw.cz>
Signed-off-by: Dan Murphy <dmurphy@ti.com>
Acked-by: Pavel Machek <pavel@ucw.cz>
Signed-off-by: Jacek Anaszewski <jacek.anaszewski@gmail.com>
This commit is contained in:
parent
4c9054506c
commit
6559ac3299
@ -43,7 +43,7 @@
|
||||
#define LM3532_REG_ZONE_TRGT_C 0x7a
|
||||
#define LM3532_REG_MAX 0x7e
|
||||
|
||||
/* Contorl Enable */
|
||||
/* Control Enable */
|
||||
#define LM3532_CTRL_A_ENABLE BIT(0)
|
||||
#define LM3532_CTRL_B_ENABLE BIT(1)
|
||||
#define LM3532_CTRL_C_ENABLE BIT(2)
|
||||
@ -307,7 +307,7 @@ static int lm3532_led_disable(struct lm3532_led *led_data)
|
||||
int ret;
|
||||
|
||||
ret = regmap_update_bits(led_data->priv->regmap, LM3532_REG_ENABLE,
|
||||
ctrl_en_val, ~ctrl_en_val);
|
||||
ctrl_en_val, 0);
|
||||
if (ret) {
|
||||
dev_err(led_data->priv->dev, "Failed to set ctrl:%d\n", ret);
|
||||
return ret;
|
||||
@ -326,7 +326,7 @@ static int lm3532_brightness_set(struct led_classdev *led_cdev,
|
||||
|
||||
mutex_lock(&led->priv->lock);
|
||||
|
||||
if (led->mode == LM3532_BL_MODE_ALS) {
|
||||
if (led->mode == LM3532_ALS_CTRL) {
|
||||
if (brt_val > LED_OFF)
|
||||
ret = lm3532_led_enable(led);
|
||||
else
|
||||
@ -561,11 +561,14 @@ static int lm3532_parse_node(struct lm3532_data *priv)
|
||||
}
|
||||
|
||||
if (led->mode == LM3532_BL_MODE_ALS) {
|
||||
led->mode = LM3532_ALS_CTRL;
|
||||
ret = lm3532_parse_als(priv);
|
||||
if (ret)
|
||||
dev_err(&priv->client->dev, "Failed to parse als\n");
|
||||
else
|
||||
lm3532_als_configure(priv, led);
|
||||
} else {
|
||||
led->mode = LM3532_I2C_CTRL;
|
||||
}
|
||||
|
||||
led->num_leds = fwnode_property_count_u32(child, "led-sources");
|
||||
@ -606,7 +609,13 @@ static int lm3532_parse_node(struct lm3532_data *priv)
|
||||
goto child_out;
|
||||
}
|
||||
|
||||
lm3532_init_registers(led);
|
||||
ret = lm3532_init_registers(led);
|
||||
if (ret) {
|
||||
dev_err(&priv->client->dev, "register init err: %d\n",
|
||||
ret);
|
||||
fwnode_handle_put(child);
|
||||
goto child_out;
|
||||
}
|
||||
|
||||
i++;
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user