regmap: mmio: Add regmap_mmio_regbits_check.

Fix the support for 1/2/8 bytes wide register address checking.

Signed-off-by: Xiubo Li <Li.Xiubo@freescale.com>
Signed-off-by: Mark Brown <broonie@linaro.org>
This commit is contained in:
Xiubo Li 2014-03-28 13:12:56 +08:00 коммит произвёл Mark Brown
Родитель 932580409a
Коммит 451485ba6b
1 изменённых файлов: 18 добавлений и 2 удалений

Просмотреть файл

@ -47,6 +47,21 @@ static inline void regmap_mmio_regsize_check(size_t reg_size)
} }
} }
static int regmap_mmio_regbits_check(size_t reg_bits)
{
switch (reg_bits) {
case 8:
case 16:
case 32:
#ifdef CONFIG_64BIT
case 64:
#endif
return 0;
default:
return -EINVAL;
}
}
static inline void regmap_mmio_count_check(size_t count) static inline void regmap_mmio_count_check(size_t count)
{ {
BUG_ON(count % 2 != 0); BUG_ON(count % 2 != 0);
@ -191,8 +206,9 @@ static struct regmap_mmio_context *regmap_mmio_gen_context(struct device *dev,
int min_stride; int min_stride;
int ret; int ret;
if (config->reg_bits != 32) ret = regmap_mmio_regbits_check(config->reg_bits);
return ERR_PTR(-EINVAL); if (ret)
return ERR_PTR(ret);
if (config->pad_bits) if (config->pad_bits)
return ERR_PTR(-EINVAL); return ERR_PTR(-EINVAL);