Commit 4bab18dc authored by Andrew Davis's avatar Andrew Davis Committed by Lee Jones
Browse files

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: default avatarAndrew Davis <afd@ti.com>
Link: https://lore.kernel.org/r/20250407183555.409687-1-afd@ti.com


Signed-off-by: default avatarLee Jones <lee@kernel.org>
parent bd3d1493
Loading
Loading
Loading
Loading
+6 −15
Original line number Diff line number Diff line
@@ -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 @@ static int lp8860_brightness_set(struct led_classdev *led_cdev,
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,15 +261,11 @@ 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);
	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);
	if (ret)