Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 813dc1b0 authored by Mark Brown's avatar Mark Brown
Browse files

Merge remote-tracking branch 'regulator/topic/tps65023' into v3.9-rc8

parents 22a712b9 46bcb006
Loading
Loading
Loading
Loading
+9 −22
Original line number Diff line number Diff line
@@ -149,20 +149,15 @@ struct tps_driver_data {
static int tps65023_dcdc_get_voltage_sel(struct regulator_dev *dev)
{
	struct tps_pmic *tps = rdev_get_drvdata(dev);
	int ret;
	int data, dcdc = rdev_get_id(dev);
	int dcdc = rdev_get_id(dev);

	if (dcdc < TPS65023_DCDC_1 || dcdc > TPS65023_DCDC_3)
		return -EINVAL;

	if (dcdc == tps->core_regulator) {
		ret = regmap_read(tps->regmap, TPS65023_REG_DEF_CORE, &data);
		if (ret != 0)
			return ret;
		data &= (tps->info[dcdc]->table_len - 1);
		return data;
	} else
	if (dcdc != tps->core_regulator)
		return 0;

	return regulator_get_voltage_sel_regmap(dev);
}

static int tps65023_dcdc_set_voltage_sel(struct regulator_dev *dev,
@@ -170,23 +165,11 @@ static int tps65023_dcdc_set_voltage_sel(struct regulator_dev *dev,
{
	struct tps_pmic *tps = rdev_get_drvdata(dev);
	int dcdc = rdev_get_id(dev);
	int ret;

	if (dcdc != tps->core_regulator)
		return -EINVAL;

	ret = regmap_write(tps->regmap, TPS65023_REG_DEF_CORE, selector);
	if (ret)
		goto out;

	/* Tell the chip that we have changed the value in DEFCORE
	 * and its time to update the core voltage
	 */
	ret = regmap_update_bits(tps->regmap, TPS65023_REG_CON_CTRL2,
				 TPS65023_REG_CTRL2_GO, TPS65023_REG_CTRL2_GO);

out:
	return ret;
	return regulator_set_voltage_sel_regmap(dev, selector);
}

/* Operations permitted on VDCDCx */
@@ -282,6 +265,10 @@ static int tps_65023_probe(struct i2c_client *client,
		default: /* DCDCx */
			tps->desc[i].enable_mask =
					1 << (TPS65023_NUM_REGULATOR - i);
			tps->desc[i].vsel_reg = TPS65023_REG_DEF_CORE;
			tps->desc[i].vsel_mask = info->table_len - 1;
			tps->desc[i].apply_reg = TPS65023_REG_CON_CTRL2;
			tps->desc[i].apply_bit = TPS65023_REG_CTRL2_GO;
		}

		config.dev = &client->dev;