Message ID | 20200605203025.15466-1-p.yadav@ti.com |
---|---|
Headers | show |
Series | regmap: Add managed API, regmap fields, regmap config | expand |
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
Hi Pratyush, On Wed, 5 Aug 2020 at 02:07, Pratyush Yadav <p.yadav@ti.com> wrote: > > 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? You can check in patchwork to see whose queue it is in. +Tom Rini Regards, Simon