|
@@ -147,6 +147,12 @@ static const struct regmap_irq_chip max77693_muic_irq_chip = {
|
|
|
.num_irqs = ARRAY_SIZE(max77693_muic_irqs),
|
|
|
};
|
|
|
|
|
|
+static const struct regmap_config max77693_regmap_haptic_config = {
|
|
|
+ .reg_bits = 8,
|
|
|
+ .val_bits = 8,
|
|
|
+ .max_register = MAX77693_HAPTIC_REG_END,
|
|
|
+};
|
|
|
+
|
|
|
static int max77693_i2c_probe(struct i2c_client *i2c,
|
|
|
const struct i2c_device_id *id)
|
|
|
{
|
|
@@ -196,6 +202,15 @@ static int max77693_i2c_probe(struct i2c_client *i2c,
|
|
|
}
|
|
|
i2c_set_clientdata(max77693->haptic, max77693);
|
|
|
|
|
|
+ max77693->regmap_haptic = devm_regmap_init_i2c(max77693->haptic,
|
|
|
+ &max77693_regmap_haptic_config);
|
|
|
+ if (IS_ERR(max77693->regmap_haptic)) {
|
|
|
+ ret = PTR_ERR(max77693->regmap_haptic);
|
|
|
+ dev_err(max77693->dev,
|
|
|
+ "failed to initialize haptic register map: %d\n", ret);
|
|
|
+ goto err_regmap;
|
|
|
+ }
|
|
|
+
|
|
|
/*
|
|
|
* Initialize register map for MUIC device because use regmap-muic
|
|
|
* instance of MUIC device when irq of max77693 is initialized
|
|
@@ -207,7 +222,7 @@ static int max77693_i2c_probe(struct i2c_client *i2c,
|
|
|
ret = PTR_ERR(max77693->regmap_muic);
|
|
|
dev_err(max77693->dev,
|
|
|
"failed to allocate register map: %d\n", ret);
|
|
|
- goto err_regmap_muic;
|
|
|
+ goto err_regmap;
|
|
|
}
|
|
|
|
|
|
ret = regmap_add_irq_chip(max77693->regmap, max77693->irq,
|
|
@@ -217,7 +232,7 @@ static int max77693_i2c_probe(struct i2c_client *i2c,
|
|
|
&max77693->irq_data_led);
|
|
|
if (ret) {
|
|
|
dev_err(max77693->dev, "failed to add irq chip: %d\n", ret);
|
|
|
- goto err_regmap_muic;
|
|
|
+ goto err_regmap;
|
|
|
}
|
|
|
|
|
|
ret = regmap_add_irq_chip(max77693->regmap, max77693->irq,
|
|
@@ -268,7 +283,7 @@ err_irq_charger:
|
|
|
regmap_del_irq_chip(max77693->irq, max77693->irq_data_topsys);
|
|
|
err_irq_topsys:
|
|
|
regmap_del_irq_chip(max77693->irq, max77693->irq_data_led);
|
|
|
-err_regmap_muic:
|
|
|
+err_regmap:
|
|
|
i2c_unregister_device(max77693->haptic);
|
|
|
err_i2c_haptic:
|
|
|
i2c_unregister_device(max77693->muic);
|