Re: [PATCH v2 06/12] mfd: sec: add support for S2MU005 PMIC

From: Sander Vanheule

Date: Fri Feb 20 2026 - 11:56:53 EST


Hi,

On Thu, 2026-02-05 at 21:02 +0530, Kaustabh Chakraborty wrote:
> On 2026-02-04 15:23 +00:00, André Draszik wrote:
> > On Mon, 2026-01-26 at 00:37 +0530, Kaustabh Chakraborty wrote:
> > > +static const struct regmap_config s2mu005_regmap_config = {
> > > + .reg_bits = 8,
> > > + .val_bits = 8,
> > > +};
> >
> > No cache? And what is the .max_register value?
> >
>
> This was in the previous revision, but I ended up removing it because
> (at least I thought at that time) interfered with interrupts firing in
> some way. The actual issue was unrelated, so I will add it back.
>
> However, there is also another thing I see in logs:
>
> sec-pmic-i2c 2-003d: using zero-initialized flat cache, this may cause
> unexpected behavior
>
> This is due to REGCACHE_FLAT, I am not sure if I should just ignore
> this.

Sorry to be late to the party, but I'm somewhat responsible for that warning, so
allow me to chime in :-)

What you are might have been seeing is REGCACHE_FLAT giving you "cached" values
of 0x0, while the hardware actually has something else. This can cause omitted
writes, existing (bootloader) config to overwritten, etc.

As André suggested, using .num_reg_defaults_raw is a possibility, but then you
have to remember that the register defaults are taken to be what the hardware
state is at that moment, including pre-probe changes. These defaults are used to
seed the cache (so far, so good), but this may break the contract of
regmap_sync() if you ever want to use that after actually resetting the PMIC.

If you want to use the flat cache, I would suggest you use REGCACHE_FLAT_S,
which will track what has already been read from/written to hardware. You will
also need to specifiy .max_register.

I see the other regmap_config-s in this driver also use REGCACHE_FLAT, so you
may want to consider switching those over as well if these are also showing the
new warning.


Best,
Sander