[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