mfd: sec: Provide max_register to regmap
Enable debugfs register dumps and greater error checking within the regmap API providing the maximum register to the regmap API. Signed-off-by: Mark Brown <broonie@linaro.org> Signed-off-by: Samuel Ortiz <sameo@linux.intel.com>
This commit is contained in:
Родитель
da002d8924
Коммит
25f311fa58
|
@ -25,6 +25,9 @@
|
||||||
#include <linux/mfd/samsung/core.h>
|
#include <linux/mfd/samsung/core.h>
|
||||||
#include <linux/mfd/samsung/irq.h>
|
#include <linux/mfd/samsung/irq.h>
|
||||||
#include <linux/mfd/samsung/rtc.h>
|
#include <linux/mfd/samsung/rtc.h>
|
||||||
|
#include <linux/mfd/samsung/s2mps11.h>
|
||||||
|
#include <linux/mfd/samsung/s5m8763.h>
|
||||||
|
#include <linux/mfd/samsung/s5m8767.h>
|
||||||
#include <linux/regmap.h>
|
#include <linux/regmap.h>
|
||||||
|
|
||||||
static struct mfd_cell s5m8751_devs[] = {
|
static struct mfd_cell s5m8751_devs[] = {
|
||||||
|
@ -105,6 +108,26 @@ static struct regmap_config sec_regmap_config = {
|
||||||
.val_bits = 8,
|
.val_bits = 8,
|
||||||
};
|
};
|
||||||
|
|
||||||
|
static struct regmap_config s2mps11_regmap_config = {
|
||||||
|
.reg_bits = 8,
|
||||||
|
.val_bits = 8,
|
||||||
|
|
||||||
|
.max_register = S2MPS11_REG_L38CTRL,
|
||||||
|
};
|
||||||
|
|
||||||
|
static struct regmap_config s5m8763_regmap_config = {
|
||||||
|
.reg_bits = 8,
|
||||||
|
.val_bits = 8,
|
||||||
|
|
||||||
|
.max_register = S5M8763_REG_LBCNFG2,
|
||||||
|
};
|
||||||
|
|
||||||
|
static struct regmap_config s5m8767_regmap_config = {
|
||||||
|
.reg_bits = 8,
|
||||||
|
.val_bits = 8,
|
||||||
|
|
||||||
|
.max_register = S5M8767_REG_LDO28CTRL,
|
||||||
|
};
|
||||||
|
|
||||||
#ifdef CONFIG_OF
|
#ifdef CONFIG_OF
|
||||||
/*
|
/*
|
||||||
|
@ -160,6 +183,7 @@ static int sec_pmic_probe(struct i2c_client *i2c,
|
||||||
const struct i2c_device_id *id)
|
const struct i2c_device_id *id)
|
||||||
{
|
{
|
||||||
struct sec_platform_data *pdata = i2c->dev.platform_data;
|
struct sec_platform_data *pdata = i2c->dev.platform_data;
|
||||||
|
const struct regmap_config *regmap;
|
||||||
struct sec_pmic_dev *sec_pmic;
|
struct sec_pmic_dev *sec_pmic;
|
||||||
int ret;
|
int ret;
|
||||||
|
|
||||||
|
@ -190,7 +214,22 @@ static int sec_pmic_probe(struct i2c_client *i2c,
|
||||||
sec_pmic->pdata = pdata;
|
sec_pmic->pdata = pdata;
|
||||||
}
|
}
|
||||||
|
|
||||||
sec_pmic->regmap = devm_regmap_init_i2c(i2c, &sec_regmap_config);
|
switch (sec_pmic->device_type) {
|
||||||
|
case S2MPS11X:
|
||||||
|
regmap = &s2mps11_regmap_config;
|
||||||
|
break;
|
||||||
|
case S5M8763X:
|
||||||
|
regmap = &s5m8763_regmap_config;
|
||||||
|
break;
|
||||||
|
case S5M8767X:
|
||||||
|
regmap = &s5m8767_regmap_config;
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
regmap = &sec_regmap_config;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
sec_pmic->regmap = devm_regmap_init_i2c(i2c, regmap);
|
||||||
if (IS_ERR(sec_pmic->regmap)) {
|
if (IS_ERR(sec_pmic->regmap)) {
|
||||||
ret = PTR_ERR(sec_pmic->regmap);
|
ret = PTR_ERR(sec_pmic->regmap);
|
||||||
dev_err(&i2c->dev, "Failed to allocate register map: %d\n",
|
dev_err(&i2c->dev, "Failed to allocate register map: %d\n",
|
||||||
|
|
Загрузка…
Ссылка в новой задаче