|
@@ -29,6 +29,7 @@
|
|
#include <linux/mfd/samsung/s2mps11.h>
|
|
#include <linux/mfd/samsung/s2mps11.h>
|
|
#include <linux/mfd/samsung/s2mps13.h>
|
|
#include <linux/mfd/samsung/s2mps13.h>
|
|
#include <linux/mfd/samsung/s2mps14.h>
|
|
#include <linux/mfd/samsung/s2mps14.h>
|
|
|
|
+#include <linux/mfd/samsung/s2mps15.h>
|
|
#include <linux/mfd/samsung/s2mpu02.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>
|
|
@@ -96,6 +97,17 @@ static const struct mfd_cell s2mps14_devs[] = {
|
|
}
|
|
}
|
|
};
|
|
};
|
|
|
|
|
|
|
|
+static const struct mfd_cell s2mps15_devs[] = {
|
|
|
|
+ {
|
|
|
|
+ .name = "s2mps15-regulator",
|
|
|
|
+ }, {
|
|
|
|
+ .name = "s2mps15-rtc",
|
|
|
|
+ }, {
|
|
|
|
+ .name = "s2mps13-clk",
|
|
|
|
+ .of_compatible = "samsung,s2mps13-clk",
|
|
|
|
+ },
|
|
|
|
+};
|
|
|
|
+
|
|
static const struct mfd_cell s2mpa01_devs[] = {
|
|
static const struct mfd_cell s2mpa01_devs[] = {
|
|
{
|
|
{
|
|
.name = "s2mpa01-pmic",
|
|
.name = "s2mpa01-pmic",
|
|
@@ -121,6 +133,9 @@ static const struct of_device_id sec_dt_match[] = {
|
|
}, {
|
|
}, {
|
|
.compatible = "samsung,s2mps14-pmic",
|
|
.compatible = "samsung,s2mps14-pmic",
|
|
.data = (void *)S2MPS14X,
|
|
.data = (void *)S2MPS14X,
|
|
|
|
+ }, {
|
|
|
|
+ .compatible = "samsung,s2mps15-pmic",
|
|
|
|
+ .data = (void *)S2MPS15X,
|
|
}, {
|
|
}, {
|
|
.compatible = "samsung,s2mpa01-pmic",
|
|
.compatible = "samsung,s2mpa01-pmic",
|
|
.data = (void *)S2MPA01,
|
|
.data = (void *)S2MPA01,
|
|
@@ -223,6 +238,15 @@ static const struct regmap_config s2mps14_regmap_config = {
|
|
.cache_type = REGCACHE_FLAT,
|
|
.cache_type = REGCACHE_FLAT,
|
|
};
|
|
};
|
|
|
|
|
|
|
|
+static const struct regmap_config s2mps15_regmap_config = {
|
|
|
|
+ .reg_bits = 8,
|
|
|
|
+ .val_bits = 8,
|
|
|
|
+
|
|
|
|
+ .max_register = S2MPS15_REG_LDODSCH4,
|
|
|
|
+ .volatile_reg = s2mps11_volatile,
|
|
|
|
+ .cache_type = REGCACHE_FLAT,
|
|
|
|
+};
|
|
|
|
+
|
|
static const struct regmap_config s2mpu02_regmap_config = {
|
|
static const struct regmap_config s2mpu02_regmap_config = {
|
|
.reg_bits = 8,
|
|
.reg_bits = 8,
|
|
.val_bits = 8,
|
|
.val_bits = 8,
|
|
@@ -384,6 +408,9 @@ static int sec_pmic_probe(struct i2c_client *i2c,
|
|
case S2MPS14X:
|
|
case S2MPS14X:
|
|
regmap = &s2mps14_regmap_config;
|
|
regmap = &s2mps14_regmap_config;
|
|
break;
|
|
break;
|
|
|
|
+ case S2MPS15X:
|
|
|
|
+ regmap = &s2mps15_regmap_config;
|
|
|
|
+ break;
|
|
case S5M8763X:
|
|
case S5M8763X:
|
|
regmap = &s5m8763_regmap_config;
|
|
regmap = &s5m8763_regmap_config;
|
|
break;
|
|
break;
|
|
@@ -442,6 +469,10 @@ static int sec_pmic_probe(struct i2c_client *i2c,
|
|
sec_devs = s2mps14_devs;
|
|
sec_devs = s2mps14_devs;
|
|
num_sec_devs = ARRAY_SIZE(s2mps14_devs);
|
|
num_sec_devs = ARRAY_SIZE(s2mps14_devs);
|
|
break;
|
|
break;
|
|
|
|
+ case S2MPS15X:
|
|
|
|
+ sec_devs = s2mps15_devs;
|
|
|
|
+ num_sec_devs = ARRAY_SIZE(s2mps15_devs);
|
|
|
|
+ break;
|
|
case S2MPU02:
|
|
case S2MPU02:
|
|
sec_devs = s2mpu02_devs;
|
|
sec_devs = s2mpu02_devs;
|
|
num_sec_devs = ARRAY_SIZE(s2mpu02_devs);
|
|
num_sec_devs = ARRAY_SIZE(s2mpu02_devs);
|