[PATCH v3 0/9] regmap: Add managed API, regmap fields, regmap config
Pratyush Yadav
p.yadav at ti.com
Wed Sep 30 15:58:42 CEST 2020
On 24/09/20 10:04AM, Pratyush Yadav wrote:
> 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 Travis CI run can be found at [3].
>
> [0] https://patchwork.ozlabs.org/project/uboot/cover/20191105114700.24989-1-jjhiblot@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://travis-ci.org/github/prati0100/uboot/builds/729588518
Ping.
Tom, do you have any comments? If not can you please pick this series
up?
>
> Changes in v3 (also mentioned in individual patches):
> - Allow multi-digit index in in_tree(). Fixes test failures in
> test/bind.py
>
> - s/DM_TESTF/UT_TESTF/g
>
> - Fix merge conflicts in test.dts
>
> - Rebase on latest master.
>
> Changes in v2:
> - Add comments explaining the need for regmap_field.
>
> - Set regmap->width to a default of REGMAP_SIZE_32 in regmap_alloc() to
> avoid the checks in regmap_{read,write}().
>
> - Use calloc() instead of using malloc() and memset() to initialize a
> regmap to zero.
>
> - Update comments on regmap_{read,write}() and
> regmap_raw_{read,write}().
>
> - Drop comments explaining two non-existent fields in struct reg_field.
>
> - Add a comment with example explaining REG_FIELD().
>
> - Add Simon's Reviewed-by trailers.
>
> 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 (6):
> 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
> test/py: allow multi-digit index in in_tree()
>
> arch/sandbox/dts/test.dts | 13 +++
> drivers/core/regmap.c | 163 ++++++++++++++++++++++++++++-
> include/regmap.h | 205 ++++++++++++++++++++++++++++++++++---
> test/dm/regmap.c | 198 +++++++++++++++++++++++++++++++++++
> test/py/tests/test_bind.py | 2 +-
> 5 files changed, 563 insertions(+), 18 deletions(-)
>
> --
> 2.28.0
>
--
Regards,
Pratyush Yadav
Texas Instruments India
More information about the U-Boot
mailing list