static int pcf50633_regulator_voltage_value(enum pcf50633_regulator_id id,
						u8 bits)
{
	int millivolts;

	switch (id) {
	case PCF50633_REGULATOR_AUTO:
		millivolts = auto_voltage_value(bits);
		break;
	case PCF50633_REGULATOR_DOWN1:
		millivolts = down_voltage_value(bits);
		break;
	case PCF50633_REGULATOR_DOWN2:
		millivolts = down_voltage_value(bits);
		break;
	case PCF50633_REGULATOR_LDO1:
	case PCF50633_REGULATOR_LDO2:
	case PCF50633_REGULATOR_LDO3:
	case PCF50633_REGULATOR_LDO4:
	case PCF50633_REGULATOR_LDO5:
	case PCF50633_REGULATOR_LDO6:
	case PCF50633_REGULATOR_HCLDO:
		millivolts = ldo_voltage_value(bits);
		break;
	default:
		return -EINVAL;
	}

	return millivolts * 1000;
}
static int pcf50633_regulator_get_voltage(struct regulator_dev *rdev)
{
	struct pcf50633 *pcf;
	int regulator_id, millivolts, volt_bits;
	u8 regnr;

	pcf = rdev_get_drvdata(rdev);;

	regulator_id = rdev_get_id(rdev);
	if (regulator_id >= PCF50633_NUM_REGULATORS)
		return -EINVAL;

	regnr = pcf50633_regulator_registers[regulator_id];

	volt_bits = pcf50633_reg_read(pcf, regnr);
	if (volt_bits < 0)
		return -1;

	switch (regulator_id) {
	case PCF50633_REGULATOR_AUTO:
		millivolts = auto_voltage_value(volt_bits);
		break;
	case PCF50633_REGULATOR_DOWN1:
		millivolts = down_voltage_value(volt_bits);
		break;
	case PCF50633_REGULATOR_DOWN2:
		millivolts = down_voltage_value(volt_bits);
		break;
	case PCF50633_REGULATOR_LDO1:
	case PCF50633_REGULATOR_LDO2:
	case PCF50633_REGULATOR_LDO3:
	case PCF50633_REGULATOR_LDO4:
	case PCF50633_REGULATOR_LDO5:
	case PCF50633_REGULATOR_LDO6:
	case PCF50633_REGULATOR_HCLDO:
		millivolts = ldo_voltage_value(volt_bits);
		break;
	default:
		return -EINVAL;
	}

	return millivolts * 1000;
}