Commit 00e2573d authored by Chanwoo Choi's avatar Chanwoo Choi Committed by Lee Jones

regulator: s2mps11: Add support S2MPU02 regulator device

This patch add S2MPU02 regulator device to existing S2MPS11 device driver
because of little difference between S2MPS1x and S2MPU02. The S2MPU02
regulator device includes LDO[1-28] and BUCK[1-7].
Signed-off-by: default avatarChanwoo Choi <cw00.choi@samsung.com>
[Add missing linear_min_sel of S2MPU02 LDO regulators by Jonghwa Lee]
Signed-off-by: default avatarJonghwa Lee <jonghwa3.lee@samsung.com>
Reviewed-by: default avatarKrzysztof Kozlowski <k.kozlowski@samsung.com>
Acked-by: default avatarMark Brown <broonie@linaro.org>
Acked-by: default avatarLee Jones <lee.jones@linaro.org>
Signed-off-by: default avatarLee Jones <lee.jones@linaro.org>
parent 54e8827d
...@@ -28,6 +28,7 @@ ...@@ -28,6 +28,7 @@
#include <linux/mfd/samsung/s2mpa01.h> #include <linux/mfd/samsung/s2mpa01.h>
#include <linux/mfd/samsung/s2mps11.h> #include <linux/mfd/samsung/s2mps11.h>
#include <linux/mfd/samsung/s2mps14.h> #include <linux/mfd/samsung/s2mps14.h>
#include <linux/mfd/samsung/s2mpu02.h>
#include <linux/mfd/samsung/s5m8763.h> #include <linux/mfd/samsung/s5m8763.h>
#include <linux/mfd/samsung/s5m8767.h> #include <linux/mfd/samsung/s5m8767.h>
#include <linux/regmap.h> #include <linux/regmap.h>
...@@ -144,6 +145,18 @@ static bool s2mps11_volatile(struct device *dev, unsigned int reg) ...@@ -144,6 +145,18 @@ static bool s2mps11_volatile(struct device *dev, unsigned int reg)
} }
} }
static bool s2mpu02_volatile(struct device *dev, unsigned int reg)
{
switch (reg) {
case S2MPU02_REG_INT1M:
case S2MPU02_REG_INT2M:
case S2MPU02_REG_INT3M:
return false;
default:
return true;
}
}
static bool s5m8763_volatile(struct device *dev, unsigned int reg) static bool s5m8763_volatile(struct device *dev, unsigned int reg)
{ {
switch (reg) { switch (reg) {
...@@ -189,6 +202,15 @@ static const struct regmap_config s2mps14_regmap_config = { ...@@ -189,6 +202,15 @@ static const struct regmap_config s2mps14_regmap_config = {
.cache_type = REGCACHE_FLAT, .cache_type = REGCACHE_FLAT,
}; };
static const struct regmap_config s2mpu02_regmap_config = {
.reg_bits = 8,
.val_bits = 8,
.max_register = S2MPU02_REG_DVSDATA,
.volatile_reg = s2mpu02_volatile,
.cache_type = REGCACHE_FLAT,
};
static const struct regmap_config s5m8763_regmap_config = { static const struct regmap_config s5m8763_regmap_config = {
.reg_bits = 8, .reg_bits = 8,
.val_bits = 8, .val_bits = 8,
...@@ -310,6 +332,9 @@ static int sec_pmic_probe(struct i2c_client *i2c, ...@@ -310,6 +332,9 @@ static int sec_pmic_probe(struct i2c_client *i2c,
case S5M8767X: case S5M8767X:
regmap = &s5m8767_regmap_config; regmap = &s5m8767_regmap_config;
break; break;
case S2MPU02:
regmap = &s2mpu02_regmap_config;
break;
default: default:
regmap = &sec_regmap_config; regmap = &sec_regmap_config;
break; break;
......
This diff is collapsed.
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment