Browse Source

Merge remote-tracking branch 'regulator/fix/palmas' into regulator-palmas

Conflicts:
	drivers/regulator/palmas-regulator.c
Mark Brown 11 years ago
parent
commit
4c0c9cabcb
1 changed files with 12 additions and 0 deletions
  1. 12 0
      drivers/regulator/palmas-regulator.c

+ 12 - 0
drivers/regulator/palmas-regulator.c

@@ -466,6 +466,10 @@ static int palmas_set_mode_smps(struct regulator_dev *dev, unsigned int mode)
 	if (rail_enable)
 		palmas_smps_write(pmic->palmas,
 				  ddata->palmas_regs_info[id].ctrl_addr, reg);
+
+	/* Switch the enable value to ensure this is used for enable */
+	pmic->desc[id].enable_val = pmic->current_reg_mode[id];
+
 	return 0;
 }
 
@@ -1216,6 +1220,14 @@ static int palmas_smps_registration(struct palmas_pmic *pmic,
 				return ret;
 			pmic->current_reg_mode[id] = reg &
 					PALMAS_SMPS12_CTRL_MODE_ACTIVE_MASK;
+
+			pmic->desc[id].enable_reg =
+					PALMAS_BASE_TO_REG(PALMAS_SMPS_BASE,
+						palmas_regs_info[id].ctrl_addr);
+			pmic->desc[id].enable_mask =
+					PALMAS_SMPS12_CTRL_MODE_ACTIVE_MASK;
+			/* set_mode overrides this value */
+			pmic->desc[id].enable_val = SMPS_CTRL_MODE_ON;
 		}
 
 		pmic->desc[id].type = REGULATOR_VOLTAGE;