diff options
| author | Andrew Davis <afd@ti.com> | 2025-04-07 13:35:50 -0500 |
|---|---|---|
| committer | Lee Jones <lee@kernel.org> | 2025-05-14 09:24:51 +0100 |
| commit | 4bab18dcb452e00e28e181eb2d7a3a3a6a5d1413 (patch) | |
| tree | c410f7bb8e01ad6c96f94700b47480b4c68b39ca | |
| parent | bd3d14932923a717ebe475122ca7e17200f87a0c (diff) | |
leds: lp8860: Use regmap_multi_reg_write for EEPROM writes
This helper does the same thing as manual looping, use it instead.
Signed-off-by: Andrew Davis <afd@ti.com>
Link: https://lore.kernel.org/r/20250407183555.409687-1-afd@ti.com
Signed-off-by: Lee Jones <lee@kernel.org>
| -rw-r--r-- | drivers/leds/leds-lp8860.c | 21 |
1 files changed, 6 insertions, 15 deletions
diff --git a/drivers/leds/leds-lp8860.c b/drivers/leds/leds-lp8860.c index 995f2adf8569..2b1c68e60949 100644 --- a/drivers/leds/leds-lp8860.c +++ b/drivers/leds/leds-lp8860.c @@ -103,12 +103,7 @@ struct lp8860_led { struct regulator *regulator; }; -struct lp8860_eeprom_reg { - uint8_t reg; - uint8_t value; -}; - -static struct lp8860_eeprom_reg lp8860_eeprom_disp_regs[] = { +static const struct reg_sequence lp8860_eeprom_disp_regs[] = { { LP8860_EEPROM_REG_0, 0xed }, { LP8860_EEPROM_REG_1, 0xdf }, { LP8860_EEPROM_REG_2, 0xdc }, @@ -238,7 +233,7 @@ out: static int lp8860_init(struct lp8860_led *led) { unsigned int read_buf; - int ret, i, reg_count; + int ret, reg_count; if (led->regulator) { ret = regulator_enable(led->regulator); @@ -266,14 +261,10 @@ static int lp8860_init(struct lp8860_led *led) } reg_count = ARRAY_SIZE(lp8860_eeprom_disp_regs); - for (i = 0; i < reg_count; i++) { - ret = regmap_write(led->eeprom_regmap, - lp8860_eeprom_disp_regs[i].reg, - lp8860_eeprom_disp_regs[i].value); - if (ret) { - dev_err(&led->client->dev, "Failed writing EEPROM\n"); - goto out; - } + ret = regmap_multi_reg_write(led->eeprom_regmap, lp8860_eeprom_disp_regs, reg_count); + if (ret) { + dev_err(&led->client->dev, "Failed writing EEPROM\n"); + goto out; } ret = lp8860_unlock_eeprom(led, LP8860_LOCK_EEPROM); |
