2015-05-26 18:54:39

by Andreas Werner

[permalink] [raw]
Subject: regmap different register size

Hi,
i have a question regarding regmap usage.

I have a i2c multifunction device which does have a register and value width of 8bits except
the revision register. The revision can only be read by a i2c block transfer.

Does it makes sense to read the Revision once by the i2c API and let the rest of the device read/write
by regmap?

Regmap should reduce code but in this case i had to check the i2c block functionality first then read the
revisoin and then init the regmap stuff.

May be in this case it would be better to use the i2c only instead of mixing i2c API and regmap.

Regards
Andy


2015-05-26 19:02:43

by Felipe Balbi

[permalink] [raw]
Subject: Re: regmap different register size

Hi,

On Tue, May 26, 2015 at 08:54:25PM +0200, Andreas Werner wrote:
> i have a question regarding regmap usage.
>
> I have a i2c multifunction device which does have a register and value
> width of 8bits except the revision register. The revision can only be
> read by a i2c block transfer.

read revision during probe using i2c block transfer, cache the value in
your own driver structure and all subsequent reads just return the
cached value. Everything else should be ok via regmap. This is first
thing that came to mind, maybe there's a better way.

--
balbi


Attachments:
(No filename) (566.00 B)
signature.asc (819.00 B)
Digital signature
Download all attachments

2015-05-26 19:27:38

by Andreas Werner

[permalink] [raw]
Subject: Re: regmap different register size

On Tue, May 26, 2015 at 02:00:39PM -0500, Felipe Balbi wrote:
> Hi,
>
> On Tue, May 26, 2015 at 08:54:25PM +0200, Andreas Werner wrote:
> > i have a question regarding regmap usage.
> >
> > I have a i2c multifunction device which does have a register and value
> > width of 8bits except the revision register. The revision can only be
> > read by a i2c block transfer.
>
> read revision during probe using i2c block transfer, cache the value in
> your own driver structure and all subsequent reads just return the
> cached value. Everything else should be ok via regmap. This is first
> thing that came to mind, maybe there's a better way.
>
> --
> balbi

This is what I want to do yes and i think this would be the only way to do it
because there is no mechanism to handle different register sizes with regmap.

Regards
Andy