diff options
Diffstat (limited to 'drivers/mfd/palmas.c')
| -rw-r--r-- | drivers/mfd/palmas.c | 10 | 
1 files changed, 9 insertions, 1 deletions
| diff --git a/drivers/mfd/palmas.c b/drivers/mfd/palmas.c index 3922a93f9f92..663a2398b6b1 100644 --- a/drivers/mfd/palmas.c +++ b/drivers/mfd/palmas.c @@ -430,6 +430,7 @@ static void palmas_power_off(void)  {  	unsigned int addr;  	int ret, slave; +	u8 powerhold_mask;  	struct device_node *np = palmas_dev->dev->of_node;  	if (of_property_read_bool(np, "ti,palmas-override-powerhold")) { @@ -437,8 +438,15 @@ static void palmas_power_off(void)  					  PALMAS_PRIMARY_SECONDARY_PAD2);  		slave = PALMAS_BASE_TO_SLAVE(PALMAS_PU_PD_OD_BASE); +		if (of_device_is_compatible(np, "ti,tps65917")) +			powerhold_mask = +				TPS65917_PRIMARY_SECONDARY_PAD2_GPIO_5_MASK; +		else +			powerhold_mask = +				PALMAS_PRIMARY_SECONDARY_PAD2_GPIO_7_MASK; +  		ret = regmap_update_bits(palmas_dev->regmap[slave], addr, -				PALMAS_PRIMARY_SECONDARY_PAD2_GPIO_7_MASK, 0); +					 powerhold_mask, 0);  		if (ret)  			dev_err(palmas_dev->dev,  				"Unable to write PRIMARY_SECONDARY_PAD2 %d\n", |