]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
leds: lp8860: Use regmap_multi_reg_write for EEPROM writes
authorAndrew Davis <afd@ti.com>
Mon, 7 Apr 2025 18:35:50 +0000 (13:35 -0500)
committerLee Jones <lee@kernel.org>
Wed, 14 May 2025 08:24:51 +0000 (09:24 +0100)
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>
drivers/leds/leds-lp8860.c

index 995f2adf856960df996e41eae556a2773a7ec07b..2b1c68e60949575557f7fb65be6a655462b524be 100644 (file)
@@ -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);