From patchwork Wed May 27 12:52:00 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Pratyush Yadav X-Patchwork-Id: 246683 List-Id: U-Boot discussion From: p.yadav at ti.com (Pratyush Yadav) Date: Wed, 27 May 2020 18:22:00 +0530 Subject: [PATCH 0/8] regmap: Add managed API, regmap fields, regmap config Message-ID: <20200527125208.24881-1-p.yadav@ti.com> Hi, This series is a re-spin of Jean-Jacques' earlier effort [0], the goal of which was to facilitate porting drivers from the Linux kernel. It adds the managed API, using the same API as Linux. It also adds support for regmap fields. Jean-Jacques' series added support for custom regmap read/write callbacks. The design was argued against by Simon [1]. He argued that using the driver model was a better idea instead of the custom functions. That would mean slightly more memory usage and a more involved change. The main aim of adding the custom functions is to support the Cadence Sierra PHY driver from Linux [2]. The driver's custom functions aren't very complicated, so they can be replaced by some simple formatting options. So, add the struct regmap_config which contains fields to alter the behaviour of the regmap. This includes specifying the size of the read/write operations via 'width', specifying the start and size of range from code instead of device tree via 'r_start' and 'r_size', and specifying a left shift of the register offset before access via 'reg_offset_shift'. The driver can't be ported verbatim now, but this allows the changes to be very isolated and minimal. These config options allow us to avoid converting to driver model until we really need it. The patches are based on [3] which fixes a segmentation fault in sandbox which didn't allow the tests to complete. [0] https://patchwork.ozlabs.org/project/uboot/cover/20191105114700.24989-1-jjhiblot at ti.com/ [1] https://patchwork.ozlabs.org/comment/2426186/ [2] https://elixir.bootlin.com/linux/latest/source/drivers/phy/cadence/phy-cadence-sierra.c [3] https://patchwork.ozlabs.org/project/uboot/patch/20200526120557.26240-1-p.yadav at ti.com/ Jean-Jacques Hiblot (3): regmap: Add devm_regmap_init() regmap: Add support for regmap fields test: dm: Add tests for regmap managed API and regmap fields Pratyush Yadav (5): regmap: zero out the regmap on allocation regmap: Allow specifying read/write width regmap: Allow left shifting register offset before access regmap: Add regmap_init_mem_range() regmap: Allow devices to specify regmap range start and size in config arch/sandbox/dts/test.dts | 13 +++ drivers/core/regmap.c | 156 +++++++++++++++++++++++++++++- include/regmap.h | 181 ++++++++++++++++++++++++++++++++-- test/dm/regmap.c | 198 ++++++++++++++++++++++++++++++++++++++ 4 files changed, 537 insertions(+), 11 deletions(-) --- 2.26.2