On Wed, 06 Jun 2018, Marek Vasut wrote: > The DA9063L does not have an RTC. Add custom regmap for DA9063L to > prevent access into that register block. > > Signed-off-by: Marek Vasut <marek.vasut+renesas@xxxxxxxxx> > Cc: Geert Uytterhoeven <geert+renesas@xxxxxxxxx> > Cc: Lee Jones <lee.jones@xxxxxxxxxx> > Cc: Mark Brown <broonie@xxxxxxxxxx> > Cc: Steve Twiss <stwiss.opensource@xxxxxxxxxxx> > Cc: Wolfram Sang <wsa+renesas@xxxxxxxxxxxxxxxxxxxx> > Cc: linux-renesas-soc@xxxxxxxxxxxxxxx > --- > V3: New patch > V4: Drop mention of buggy datasheet in the commit message > --- > drivers/mfd/da9063-i2c.c | 91 ++++++++++++++++++++++++++++++++++++++++++++++++ > 1 file changed, 91 insertions(+) > > diff --git a/drivers/mfd/da9063-i2c.c b/drivers/mfd/da9063-i2c.c > index 048ce55ebc5b..f0d92a37df6b 100644 > --- a/drivers/mfd/da9063-i2c.c > +++ b/drivers/mfd/da9063-i2c.c > @@ -208,6 +208,93 @@ static const struct regmap_access_table da9063_bb_volatile_table = { > .n_yes_ranges = ARRAY_SIZE(da9063_bb_volatile_ranges), > }; > > +static const struct regmap_range da9063l_bb_readable_ranges[] = { > + { > + .range_min = DA9063_REG_PAGE_CON, > + .range_max = DA9063_REG_MON_A10_RES, > + }, { > + .range_min = DA9063_REG_SEQ, > + .range_max = DA9063_REG_ID_32_31, > + }, { > + .range_min = DA9063_REG_SEQ_A, > + .range_max = DA9063_REG_AUTO3_LOW, > + }, { > + .range_min = DA9063_REG_T_OFFSET, > + .range_max = DA9063_BB_REG_GP_ID_19, > + }, { > + .range_min = DA9063_REG_CHIP_ID, > + .range_max = DA9063_REG_CHIP_VARIANT, > + }, > +}; > + > +static const struct regmap_range da9063l_bb_writeable_ranges[] = { > + { > + .range_min = DA9063_REG_PAGE_CON, > + .range_max = DA9063_REG_PAGE_CON, > + }, { > + .range_min = DA9063_REG_FAULT_LOG, > + .range_max = DA9063_REG_VSYS_MON, > + }, { > + .range_min = DA9063_REG_SEQ, > + .range_max = DA9063_REG_ID_32_31, > + }, { > + .range_min = DA9063_REG_SEQ_A, > + .range_max = DA9063_REG_AUTO3_LOW, > + }, { > + .range_min = DA9063_REG_CONFIG_I, > + .range_max = DA9063_BB_REG_MON_REG_4, > + }, { > + .range_min = DA9063_BB_REG_GP_ID_0, > + .range_max = DA9063_BB_REG_GP_ID_19, > + }, > +}; > + > +static const struct regmap_range da9063l_bb_volatile_ranges[] = { > + { > + .range_min = DA9063_REG_PAGE_CON, > + .range_max = DA9063_REG_EVENT_D, > + }, { > + .range_min = DA9063_REG_CONTROL_A, > + .range_max = DA9063_REG_CONTROL_B, > + }, { > + .range_min = DA9063_REG_CONTROL_E, > + .range_max = DA9063_REG_CONTROL_F, > + }, { > + .range_min = DA9063_REG_BCORE2_CONT, > + .range_max = DA9063_REG_LDO11_CONT, > + }, { > + .range_min = DA9063_REG_DVC_1, > + .range_max = DA9063_REG_ADC_MAN, > + }, { > + .range_min = DA9063_REG_ADC_RES_L, > + .range_max = DA9063_REG_MON_A10_RES, > + }, { > + .range_min = DA9063_REG_SEQ, > + .range_max = DA9063_REG_SEQ, > + }, { > + .range_min = DA9063_REG_EN_32K, > + .range_max = DA9063_REG_EN_32K, > + }, { > + .range_min = DA9063_BB_REG_MON_REG_5, > + .range_max = DA9063_BB_REG_MON_REG_6, > + }, > +}; Not sure why the regmap_reg_range() MACRO is lower case, but still, please make use of it to save a few lines. Once changed, please add my: For my own reference: Acked-for-MFD-by: Lee Jones <lee.jones@xxxxxxxxxx> -- Lee Jones [李琼斯] Linaro Services Technical Lead Linaro.org │ Open source software for ARM SoCs Follow Linaro: Facebook | Twitter | Blog