[PATCH v2 0/8] regmap: Add managed API, regmap fields, regmap config
Pratyush Yadav
p.yadav at ti.com
Wed Aug 5 10:07:08 CEST 2020
Hi Simon,
On 06/06/20 02:00AM, 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 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@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@ti.com/
I don't see this series in v2020.10-rc1. I was under the impression that
this series was good to go. Has it fell through the cracks somehow?
> 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 (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 | 163 +++++++++++++++++++++++++++++-
> include/regmap.h | 205 +++++++++++++++++++++++++++++++++++---
> test/dm/regmap.c | 198 ++++++++++++++++++++++++++++++++++++
> 4 files changed, 562 insertions(+), 17 deletions(-)
>
> --
> 2.27.0
>
--
Regards,
Pratyush Yadav
Texas Instruments India
More information about the U-Boot
mailing list