All of lore.kernel.org
 help / color / mirror / Atom feed
From: "andriy.shevchenko@intel.com" <andriy.shevchenko@intel.com>
To: Kanak Shilledar <Kanak.Shilledar@axis.com>
Cc: "andy@kernel.org" <andy@kernel.org>,
	"robh@kernel.org" <robh@kernel.org>, Kernel <Kernel@axis.com>,
	"macromorgan@hotmail.com" <macromorgan@hotmail.com>,
	"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
	"conor+dt@kernel.org" <conor+dt@kernel.org>,
	"joshua.crofts1@gmail.com" <joshua.crofts1@gmail.com>,
	"devicetree@vger.kernel.org" <devicetree@vger.kernel.org>,
	"jean-baptiste.maneyrol@tdk.com" <jean-baptiste.maneyrol@tdk.com>,
	"dlechner@baylibre.com" <dlechner@baylibre.com>,
	"nuno.sa@analog.com" <nuno.sa@analog.com>,
	"krzk+dt@kernel.org" <krzk+dt@kernel.org>,
	"jic23@kernel.org" <jic23@kernel.org>,
	"marcelo.schmitt1@gmail.com" <marcelo.schmitt1@gmail.com>,
	Henrik Grimler <Henrik.Grimler@axis.com>,
	"linux-iio@vger.kernel.org" <linux-iio@vger.kernel.org>
Subject: Re: [PATCH v5 5/6] iio: imu: inv_icm42607: Implement MREGx register access
Date: Sat, 3 Oct 2026 18:02:12 +0300	[thread overview]
Message-ID: <asEY9DHDisqVcQ5D@ashevche-desk.local> (raw)
In-Reply-To: <afde7beb4019d8090d3df30bb4e0a1b7ca00ad4a.camel@axis.com>

On Fri, Oct 02, 2026 at 02:25:48PM +0000, Kanak Shilledar wrote:

> On Fri, 2026-10-02 at 16:12 +0300, Andy Shevchenko wrote:
> > On Fri, Oct 02, 2026 at 01:54:29PM +0200, Kanak Shilledar wrote:

...

> > > +static int inv_icm42607_mreg_read(struct regmap *map, unsigned int
> > > reg,
> > > +				  u8 *data, size_t count)
> > > +{
> > > +	unsigned int val;
> > > +	bool idle_set;
> > > +	u8 blk_sel;
> > > +	int ret;
> > > +
> > > +	/* MREG access is one byte per transaction, no burst
> > > support. */
> > > +	if (count != 1)
> > > +		return -EINVAL;
> > > +
> > > +	ret = inv_icm42607_blk_sel(reg, &blk_sel);
> > > +	if (ret)
> > > +		return ret;
> > > +
> > > +	ret = inv_icm42607_mclk_get(map, &idle_set);
> > > +	if (ret)
> > > +		return ret;
> > 
> > > +	ret = regmap_write(map, INV_ICM42607_REG_BLK_SEL_R,
> > > blk_sel);
> > > +	if (ret)
> > > +		goto out;
> > 
> > So, can we use regmap ranges instead?
> 
> We can't use regmap ranges because the register accesses for different
> banks guarded by a specific routine of writing the bank selector, the
> address pointer and then finally accessing the value along with
> checking for timings and clocks. There is also a limitation that,
> accessing the registers in banks other than USER BANK 0 can only be
> done serially. It doesn't support bulk reads. This is documented in
> section 13 of the datasheet [1].

Sorry if I missed it, but this is an important part of the driver design,
if not yet, please add a respective note to the commit message on it.

> > > +	ret = regmap_write(map, INV_ICM42607_REG_MADDR_R,
> > > +			   FIELD_GET(INV_ICM42607_REG_ADDR_MASK,
> > > reg));
> > > +	if (ret)
> > > +		goto out;
> > > +
> > > +	fsleep(INV_ICM42607_MREG_ACCESS_DELAY_US);
> > > +
> > > +	ret = regmap_read(map, INV_ICM42607_REG_M_R, &val);
> > > +	if (ret)
> > > +		goto out;
> > > +
> > > +	fsleep(INV_ICM42607_MREG_ACCESS_DELAY_US);
> > > +
> > > +	*data = val;
> > > +out:
> > > +	/* Restore direct access. */
> > > +	ret = regmap_write(map, INV_ICM42607_REG_BLK_SEL_R, 0);
> > > +	inv_icm42607_mclk_put(map, idle_set);
> > > +
> > > +	return ret;
> > >  }

...

> > > +static const struct regmap_config inv_icm42607_regmap_config = {
> > > +	.reg_bits = 8,
> > > +	.val_bits = 8,
> > 
> > No cache? Why?
> As the virtual regmap config has some caching for USER BANK 0 registers
> only. The indirect banks doesn't support caching [1].

This is strange. You mean they are volatile by definition (HW)?
Otherwise if it's just a software issue, it can still be done,
for regcache there is no difference if the offset is real or paged.

> > > +};

> [1] Datasheet: https://www.lcsc.com/product-detail/C5129967.html

-- 
With Best Regards,
Andy Shevchenko



  reply	other threads:[~2026-10-03 15:02 UTC|newest]

Thread overview: 24+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-10-02 11:54 [PATCH v5 0/6] Add support for InvenSense ICM-42370-P accelerometer Kanak Shilledar
2026-10-02 11:54 ` [PATCH v5 1/6] dt-bindings: iio: imu: icm42600: Add ICM-42670-P Kanak Shilledar
2026-10-02 12:01   ` sashiko-bot
2026-10-02 17:11   ` Conor Dooley
2026-10-02 17:11     ` Conor Dooley
2026-10-02 11:54 ` [PATCH v5 2/6] iio: imu: inv_icm42607: Simplify IIO channel macros Kanak Shilledar
2026-10-05  0:25   ` Marcelo Schmitt
2026-10-02 11:54 ` [PATCH v5 3/6] iio: imu: inv_icm42607: Initialize gyro based on chip_info Kanak Shilledar
2026-10-02 13:03   ` Andy Shevchenko
2026-10-05  0:39   ` Marcelo Schmitt
2026-10-02 11:54 ` [PATCH v5 4/6] iio: imu: inv_icm42607: Add support for ICM-42370-P Kanak Shilledar
2026-10-02 13:04   ` Andy Shevchenko
2026-10-05  0:43   ` Marcelo Schmitt
2026-10-02 11:54 ` [PATCH v5 5/6] iio: imu: inv_icm42607: Implement MREGx register access Kanak Shilledar
2026-10-02 12:03   ` sashiko-bot
2026-10-02 13:12   ` Andy Shevchenko
2026-10-02 14:25     ` Kanak Shilledar
2026-10-03 15:02       ` andriy.shevchenko [this message]
2026-10-05 15:02         ` Kanak Shilledar
2026-10-02 11:54 ` [PATCH v5 6/6] iio: imu: inv_icm42607: Add accelerometer calibbias support Kanak Shilledar
2026-10-02 13:18   ` Andy Shevchenko
2026-10-02 14:03     ` Kanak Shilledar
2026-10-03 14:57       ` andriy.shevchenko
2026-10-05  0:51   ` Marcelo Schmitt

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=asEY9DHDisqVcQ5D@ashevche-desk.local \
    --to=andriy.shevchenko@intel.com \
    --cc=Henrik.Grimler@axis.com \
    --cc=Kanak.Shilledar@axis.com \
    --cc=Kernel@axis.com \
    --cc=andy@kernel.org \
    --cc=conor+dt@kernel.org \
    --cc=devicetree@vger.kernel.org \
    --cc=dlechner@baylibre.com \
    --cc=jean-baptiste.maneyrol@tdk.com \
    --cc=jic23@kernel.org \
    --cc=joshua.crofts1@gmail.com \
    --cc=krzk+dt@kernel.org \
    --cc=linux-iio@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=macromorgan@hotmail.com \
    --cc=marcelo.schmitt1@gmail.com \
    --cc=nuno.sa@analog.com \
    --cc=robh@kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.