Re: [PATCH v2 1/4] iio: dac: ad3530r: Refactor setup to table-driven register bank approach
From: Andy Shevchenko
Date: Mon Jun 15 2026 - 06:08:39 EST
On Mon, Jun 15, 2026 at 02:20:15PM +0800, Kim Seer Paller wrote:
> Replace direct register calls in ad3530r_setup() with per-chip register
> address arrays and bank helpers (ad3530r_set_reg_bank_bits,
> ad3530r_write_reg_banks). Convert sw_ldac_trig_reg from a static
> register address to a function pointer for per-bank LDAC trigger
> register selection. Switch spi_device_id to named initializers.
...
> +static int ad3530r_set_reg_bank_bits(const struct ad3530r_state *st,
> + const unsigned int *regs,
> + unsigned int num_regs,
> + unsigned int mask)
> +{
> + int ret;
> +
> + for (unsigned int i = 0; i < num_regs; i++) {
> + ret = regmap_update_bits(st->regmap, regs[i], mask, mask);
> + if (ret)
> + return ret;
> + }
> +
> + return 0;
> +}
> +
> +static int ad3530r_write_reg_banks(const struct ad3530r_state *st,
> + const unsigned int *regs,
> + unsigned int num_regs,
> + unsigned int val)
> +{
> + int ret;
> +
> + for (unsigned int i = 0; i < num_regs; i++) {
> + ret = regmap_write(st->regmap, regs[i], val);
> + if (ret)
> + return ret;
> + }
> +
> + return 0;
> +}
Can the above helpers use bulk operations or regmap_multi_reg_write()?
--
With Best Regards,
Andy Shevchenko