|
@@ -81,31 +81,31 @@ static struct of_device_id sec_dt_match[] = {
|
|
|
|
|
|
int sec_reg_read(struct sec_pmic_dev *sec_pmic, u8 reg, void *dest)
|
|
|
{
|
|
|
- return regmap_read(sec_pmic->regmap, reg, dest);
|
|
|
+ return regmap_read(sec_pmic->regmap_pmic, reg, dest);
|
|
|
}
|
|
|
EXPORT_SYMBOL_GPL(sec_reg_read);
|
|
|
|
|
|
int sec_bulk_read(struct sec_pmic_dev *sec_pmic, u8 reg, int count, u8 *buf)
|
|
|
{
|
|
|
- return regmap_bulk_read(sec_pmic->regmap, reg, buf, count);
|
|
|
+ return regmap_bulk_read(sec_pmic->regmap_pmic, reg, buf, count);
|
|
|
}
|
|
|
EXPORT_SYMBOL_GPL(sec_bulk_read);
|
|
|
|
|
|
int sec_reg_write(struct sec_pmic_dev *sec_pmic, u8 reg, u8 value)
|
|
|
{
|
|
|
- return regmap_write(sec_pmic->regmap, reg, value);
|
|
|
+ return regmap_write(sec_pmic->regmap_pmic, reg, value);
|
|
|
}
|
|
|
EXPORT_SYMBOL_GPL(sec_reg_write);
|
|
|
|
|
|
int sec_bulk_write(struct sec_pmic_dev *sec_pmic, u8 reg, int count, u8 *buf)
|
|
|
{
|
|
|
- return regmap_raw_write(sec_pmic->regmap, reg, buf, count);
|
|
|
+ return regmap_raw_write(sec_pmic->regmap_pmic, reg, buf, count);
|
|
|
}
|
|
|
EXPORT_SYMBOL_GPL(sec_bulk_write);
|
|
|
|
|
|
int sec_reg_update(struct sec_pmic_dev *sec_pmic, u8 reg, u8 val, u8 mask)
|
|
|
{
|
|
|
- return regmap_update_bits(sec_pmic->regmap, reg, mask, val);
|
|
|
+ return regmap_update_bits(sec_pmic->regmap_pmic, reg, mask, val);
|
|
|
}
|
|
|
EXPORT_SYMBOL_GPL(sec_reg_update);
|
|
|
|
|
@@ -166,6 +166,11 @@ static struct regmap_config s5m8767_regmap_config = {
|
|
|
.cache_type = REGCACHE_FLAT,
|
|
|
};
|
|
|
|
|
|
+static const struct regmap_config sec_rtc_regmap_config = {
|
|
|
+ .reg_bits = 8,
|
|
|
+ .val_bits = 8,
|
|
|
+};
|
|
|
+
|
|
|
#ifdef CONFIG_OF
|
|
|
/*
|
|
|
* Only the common platform data elements for s5m8767 are parsed here from the
|
|
@@ -266,9 +271,9 @@ static int sec_pmic_probe(struct i2c_client *i2c,
|
|
|
break;
|
|
|
}
|
|
|
|
|
|
- sec_pmic->regmap = devm_regmap_init_i2c(i2c, regmap);
|
|
|
- if (IS_ERR(sec_pmic->regmap)) {
|
|
|
- ret = PTR_ERR(sec_pmic->regmap);
|
|
|
+ sec_pmic->regmap_pmic = devm_regmap_init_i2c(i2c, regmap);
|
|
|
+ if (IS_ERR(sec_pmic->regmap_pmic)) {
|
|
|
+ ret = PTR_ERR(sec_pmic->regmap_pmic);
|
|
|
dev_err(&i2c->dev, "Failed to allocate register map: %d\n",
|
|
|
ret);
|
|
|
return ret;
|
|
@@ -277,6 +282,15 @@ static int sec_pmic_probe(struct i2c_client *i2c,
|
|
|
sec_pmic->rtc = i2c_new_dummy(i2c->adapter, RTC_I2C_ADDR);
|
|
|
i2c_set_clientdata(sec_pmic->rtc, sec_pmic);
|
|
|
|
|
|
+ sec_pmic->regmap_rtc = devm_regmap_init_i2c(sec_pmic->rtc,
|
|
|
+ &sec_rtc_regmap_config);
|
|
|
+ if (IS_ERR(sec_pmic->regmap_rtc)) {
|
|
|
+ ret = PTR_ERR(sec_pmic->regmap_rtc);
|
|
|
+ dev_err(&i2c->dev, "Failed to allocate RTC register map: %d\n",
|
|
|
+ ret);
|
|
|
+ return ret;
|
|
|
+ }
|
|
|
+
|
|
|
if (pdata && pdata->cfg_pmic_irq)
|
|
|
pdata->cfg_pmic_irq();
|
|
|
|