diff options
Diffstat (limited to 'drivers/mfd/max77693.c')
| -rw-r--r-- | drivers/mfd/max77693.c | 16 | 
1 files changed, 15 insertions, 1 deletions
diff --git a/drivers/mfd/max77693.c b/drivers/mfd/max77693.c index a1811cb50ec..cc5155e2049 100644 --- a/drivers/mfd/max77693.c +++ b/drivers/mfd/max77693.c @@ -152,6 +152,20 @@ static int max77693_i2c_probe(struct i2c_client *i2c,  	max77693->haptic = i2c_new_dummy(i2c->adapter, I2C_ADDR_HAPTIC);  	i2c_set_clientdata(max77693->haptic, max77693); +	/* +	 * Initialize register map for MUIC device because use regmap-muic +	 * instance of MUIC device when irq of max77693 is initialized +	 * before call max77693-muic probe() function. +	 */ +	max77693->regmap_muic = devm_regmap_init_i2c(max77693->muic, +					 &max77693_regmap_config); +	if (IS_ERR(max77693->regmap_muic)) { +		ret = PTR_ERR(max77693->regmap_muic); +		dev_err(max77693->dev, +			"failed to allocate register map: %d\n", ret); +		goto err_regmap; +	} +  	ret = max77693_irq_init(max77693);  	if (ret < 0)  		goto err_irq; @@ -159,7 +173,7 @@ static int max77693_i2c_probe(struct i2c_client *i2c,  	pm_runtime_set_active(max77693->dev);  	ret = mfd_add_devices(max77693->dev, -1, max77693_devs, -			ARRAY_SIZE(max77693_devs), NULL, 0); +			      ARRAY_SIZE(max77693_devs), NULL, 0, NULL);  	if (ret < 0)  		goto err_mfd;  |