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