Re: [PATCH 3/4] REGULATOR: TWL6025: add support to twl-regulator

From: Mark Brown
Date: Wed Apr 27 2011 - 07:08:56 EST


On Wed, Apr 27, 2011 at 10:39:50AM +0100, Graeme Gregory wrote:

> + switch (info->flags) {
> + case 0:
> + if (index == 0)
> + voltage = 0;
> + else if (index < 58)
> + voltage = (600000 + (12500 * (index - 1)));
> + else if (index == 58)
> + voltage = 1350 * 1000;
> + else if (index == 59)
> + voltage = 1500 * 1000;
> + else if (index == 60)
> + voltage = 1800 * 1000;
> + else if (index == 61)
> + voltage = 1900 * 1000;
> + else if (index == 62)
> + voltage = 2100 * 1000;

This reads like a switch statement with a default: case to me.

> +static int twl6030dcdc_get_voltage(struct regulator_dev *rdev)
> +{
> + struct twlreg_info *info = rdev_get_drvdata(rdev);
> + int vsel = twlreg_read(info, TWL_MODULE_PM_RECEIVER,
> + VREG_VOLTAGE_DCDC);
> + int voltage = 0;
> +
> + if (vsel < 0)
> + return vsel;
> + switch (info->flags) {

This should just call list_voltage() to do the mapping into a voltage or
better yet should be converted into a get_voltage_sel() which will mean
that the core can call list_voltage() for you. Either way you save
duplicating the code to map from selector to voltage.
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/