[PATCH RFC 0/2] regmap: support firmware-described non-sequential register reads

Richard Leitner <[email protected]> Wed, 22 Jul 2026 10:42:45 +0200
Newsgroups dev.linux.lists.driver-core,org.kernel.feeds.b4-sent,org.kernel.vger.linux-devicetree,org.kernel.vger.linux-kernel
Message-ID <[email protected]>
Hi all,

this series adds support for firmware/device-tree described constraints
on sequential register reads.

The motivating use case are camera modules from Vision Components.
These modules may integrate image sensors that normally support
incrementing multi-register reads, while the MCU (which sits basically
"between" the I2C host and the camera sensors) breaks them. In such
cases, single-register reads work, but sequential/bulk register reads do
not.

This limitation is therefore not a property of the sensor silicon
itself, but of the hardware module/integration in which the device is
used. As a result, it cannot be identified from the deivce driver and
handling it in each affected device driver does not scale well.

To address this, the series introduces a common firmware property
(no-sequential-read) describing hardware integrations where reading
multiple consecutive registers in a single operation is not reliable.
regmap then consumes that property and maps it to its existing
use_single_read configuration. This keeps the hardware constraint
described in firmware/device-tree while applying it in the layer that
already owns the register read transfer policy.

The initial discussion that motivated this approach can be found here:
https://lore.kernel.org/lkml/[email protected]/

Feedback is especially welcome on the property naming, the placement of
the common binding schema, and if regmap is the best place to implment this.

Thanks,
Richard

Link: https://lore.kernel.org/lkml/[email protected]/
Signed-off-by: Richard Leitner <[email protected]>
---
Richard Leitner (2):
      dt-bindings: regmap: add common schema for no-sequential-read
      regmap: implement no-sequential-read firmware property

 .../devicetree/bindings/regmap/common.yaml         | 26 ++++++++++++++++++++++
 drivers/base/regmap/regmap.c                       | 14 +++++++++++-
 2 files changed, 39 insertions(+), 1 deletion(-)
---
base-commit: 248951ddc14de84de3910f9b13f51491a8cd91df
change-id: 20260722-regmap-single-read-a2e95070cd66

Best regards,
--  
Richard Leitner <[email protected]>