Re: [PATCH v3 1/1] mfd: Add I2C based System Configuaration (SYSCON) access

From: Arnd Bergmann
Date: Thu Jun 18 2020 - 05:29:38 EST


On Thu, Jun 18, 2020 at 10:03 AM Lee Jones <lee.jones@xxxxxxxxxx> wrote:
>
> The existing SYSCON implementation only supports MMIO (memory mapped)
> accesses, facilitated by Regmap. This extends support for registers
> held behind I2C busses.
>
> Signed-off-by: Lee Jones <lee.jones@xxxxxxxxxx>

The implementation looks fine to me, but can you explain how this is going to
be used, and what the advantage is over open-coding the devm_regmap_init_i2c()
in each driver that would use this?

Is this about using proper locking through the regmap framework for
shared i2c clients, or to reduce memory consumption when lots of drivers
access the same regmap?

My impression of the existing syscon code is that the main value-add over
other ways of doing the same is the syscon_regmap_lookup_by_phandle()
interface that gives other drivers a much simpler way of getting the
regmap just based on the DT node. Are you planning to add something
like that here as well? An ideal driver interface might allow
syscon_regmap_lookup_by_phandle() to work for both mmio and i2c
based syscons, or additional ones as well, but implementing this would
be rather tricky when the i2c core is a loadable module.

Arnd