From 4bab18dcb452e00e28e181eb2d7a3a3a6a5d1413 Mon Sep 17 00:00:00 2001 From: Andrew Davis Date: Mon, 7 Apr 2025 13:35:50 -0500 Subject: [PATCH] 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 Link: https://lore.kernel.org/r/20250407183555.409687-1-afd@ti.com Signed-off-by: Lee Jones --- drivers/leds/leds-lp8860.c | 21 ++++++--------------- 1 file 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); -- 2.25.1