mirror of https://gitee.com/openkylin/linux.git
regmap: Make regmap_check_range_table() a public API
Allow drivers to use an access table as part of their implementation. Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
This commit is contained in:
parent
697e85bc6a
commit
154881e59b
|
@ -65,9 +65,8 @@ bool regmap_reg_in_ranges(unsigned int reg,
|
|||
}
|
||||
EXPORT_SYMBOL_GPL(regmap_reg_in_ranges);
|
||||
|
||||
static bool _regmap_check_range_table(struct regmap *map,
|
||||
unsigned int reg,
|
||||
const struct regmap_access_table *table)
|
||||
bool regmap_check_range_table(struct regmap *map, unsigned int reg,
|
||||
const struct regmap_access_table *table)
|
||||
{
|
||||
/* Check "no ranges" first */
|
||||
if (regmap_reg_in_ranges(reg, table->no_ranges, table->n_no_ranges))
|
||||
|
@ -80,6 +79,7 @@ static bool _regmap_check_range_table(struct regmap *map,
|
|||
return regmap_reg_in_ranges(reg, table->yes_ranges,
|
||||
table->n_yes_ranges);
|
||||
}
|
||||
EXPORT_SYMBOL_GPL(regmap_check_range_table);
|
||||
|
||||
bool regmap_writeable(struct regmap *map, unsigned int reg)
|
||||
{
|
||||
|
@ -90,7 +90,7 @@ bool regmap_writeable(struct regmap *map, unsigned int reg)
|
|||
return map->writeable_reg(map->dev, reg);
|
||||
|
||||
if (map->wr_table)
|
||||
return _regmap_check_range_table(map, reg, map->wr_table);
|
||||
return regmap_check_range_table(map, reg, map->wr_table);
|
||||
|
||||
return true;
|
||||
}
|
||||
|
@ -107,7 +107,7 @@ bool regmap_readable(struct regmap *map, unsigned int reg)
|
|||
return map->readable_reg(map->dev, reg);
|
||||
|
||||
if (map->rd_table)
|
||||
return _regmap_check_range_table(map, reg, map->rd_table);
|
||||
return regmap_check_range_table(map, reg, map->rd_table);
|
||||
|
||||
return true;
|
||||
}
|
||||
|
@ -121,7 +121,7 @@ bool regmap_volatile(struct regmap *map, unsigned int reg)
|
|||
return map->volatile_reg(map->dev, reg);
|
||||
|
||||
if (map->volatile_table)
|
||||
return _regmap_check_range_table(map, reg, map->volatile_table);
|
||||
return regmap_check_range_table(map, reg, map->volatile_table);
|
||||
|
||||
return true;
|
||||
}
|
||||
|
@ -135,7 +135,7 @@ bool regmap_precious(struct regmap *map, unsigned int reg)
|
|||
return map->precious_reg(map->dev, reg);
|
||||
|
||||
if (map->precious_table)
|
||||
return _regmap_check_range_table(map, reg, map->precious_table);
|
||||
return regmap_check_range_table(map, reg, map->precious_table);
|
||||
|
||||
return false;
|
||||
}
|
||||
|
|
|
@ -400,6 +400,9 @@ void regcache_cache_only(struct regmap *map, bool enable);
|
|||
void regcache_cache_bypass(struct regmap *map, bool enable);
|
||||
void regcache_mark_dirty(struct regmap *map);
|
||||
|
||||
bool regmap_check_range_table(struct regmap *map, unsigned int reg,
|
||||
const struct regmap_access_table *table);
|
||||
|
||||
int regmap_register_patch(struct regmap *map, const struct reg_default *regs,
|
||||
int num_regs);
|
||||
|
||||
|
|
Loading…
Reference in New Issue