On 06/06/2018 08:39 AM, Lee Jones wrote: > 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. Ha, OK > Once changed, please add my: > > For my own reference: > Acked-for-MFD-by: Lee Jones <lee.jones@xxxxxxxxxx> > -- Best regards, Marek Vasut