Message ID | 20230807143806.6954-1-antoniu.miclaus@analog.com (mailing list archive) |
---|---|
State | Accepted |
Headers | show |
Series | iio: admv1013: add mixer_vgate corner cases | expand |
On Mon, 2023-08-07 at 17:38 +0300, Antoniu Miclaus wrote: > Include the corner cases in the computation of the MIXER_VGATE register > value. > > According to the datasheet: The MIXER_VGATE values follows the VCM such > as, that for a 0V to 1.8V VCM, MIXER_VGATE = 23.89 VCM + 81, and for a > > 1.8V to 2.6V VCM, MIXER_VGATE = 23.75 VCM + 1.25. > > Fixes: da35a7b526d9 ("iio: frequency: admv1013: add support for ADMV1013") > Signed-off-by: Antoniu Miclaus <antoniu.miclaus@analog.com> > --- Reviewed-by: Nuno Sa <nuno.sa@analog.com> > drivers/iio/frequency/admv1013.c | 4 ++-- > 1 file changed, 2 insertions(+), 2 deletions(-) > > diff --git a/drivers/iio/frequency/admv1013.c > b/drivers/iio/frequency/admv1013.c > index 9bf8337806fc..df29f1216b9a 100644 > --- a/drivers/iio/frequency/admv1013.c > +++ b/drivers/iio/frequency/admv1013.c > @@ -348,9 +348,9 @@ static int admv1013_update_mixer_vgate(struct > admv1013_state *st) > > vcm = regulator_get_voltage(st->reg); > > - if (vcm < 1800000) > + if (vcm <= 1800000) > mixer_vgate = (2389 * vcm / 1000000 + 8100) / 100; > - else if (vcm > 1800000 && vcm < 2600000) > + else if (vcm > 1800000 && vcm <= 2600000) > mixer_vgate = (2375 * vcm / 1000000 + 125) / 100; > else > return -EINVAL;
On Tue, 08 Aug 2023 08:32:51 +0200 Nuno Sá <noname.nuno@gmail.com> wrote: > On Mon, 2023-08-07 at 17:38 +0300, Antoniu Miclaus wrote: > > Include the corner cases in the computation of the MIXER_VGATE register > > value. > > > > According to the datasheet: The MIXER_VGATE values follows the VCM such > > as, that for a 0V to 1.8V VCM, MIXER_VGATE = 23.89 VCM + 81, and for a > > > 1.8V to 2.6V VCM, MIXER_VGATE = 23.75 VCM + 1.25. > > > > Fixes: da35a7b526d9 ("iio: frequency: admv1013: add support for ADMV1013") > > Signed-off-by: Antoniu Miclaus <antoniu.miclaus@analog.com> > > --- > > Reviewed-by: Nuno Sa <nuno.sa@analog.com> Applied to the fixes-togreg branch of iio.git and marked for stable. Was a but of fuzz due to other fixes but I would be surprised if that was a problem. Thanks, Jonathan > > > drivers/iio/frequency/admv1013.c | 4 ++-- > > 1 file changed, 2 insertions(+), 2 deletions(-) > > > > diff --git a/drivers/iio/frequency/admv1013.c > > b/drivers/iio/frequency/admv1013.c > > index 9bf8337806fc..df29f1216b9a 100644 > > --- a/drivers/iio/frequency/admv1013.c > > +++ b/drivers/iio/frequency/admv1013.c > > @@ -348,9 +348,9 @@ static int admv1013_update_mixer_vgate(struct > > admv1013_state *st) > > > > vcm = regulator_get_voltage(st->reg); > > > > - if (vcm < 1800000) > > + if (vcm <= 1800000) > > mixer_vgate = (2389 * vcm / 1000000 + 8100) / 100; > > - else if (vcm > 1800000 && vcm < 2600000) > > + else if (vcm > 1800000 && vcm <= 2600000) > > mixer_vgate = (2375 * vcm / 1000000 + 125) / 100; > > else > > return -EINVAL; >
diff --git a/drivers/iio/frequency/admv1013.c b/drivers/iio/frequency/admv1013.c index 9bf8337806fc..df29f1216b9a 100644 --- a/drivers/iio/frequency/admv1013.c +++ b/drivers/iio/frequency/admv1013.c @@ -348,9 +348,9 @@ static int admv1013_update_mixer_vgate(struct admv1013_state *st) vcm = regulator_get_voltage(st->reg); - if (vcm < 1800000) + if (vcm <= 1800000) mixer_vgate = (2389 * vcm / 1000000 + 8100) / 100; - else if (vcm > 1800000 && vcm < 2600000) + else if (vcm > 1800000 && vcm <= 2600000) mixer_vgate = (2375 * vcm / 1000000 + 125) / 100; else return -EINVAL;
Include the corner cases in the computation of the MIXER_VGATE register value. According to the datasheet: The MIXER_VGATE values follows the VCM such as, that for a 0V to 1.8V VCM, MIXER_VGATE = 23.89 VCM + 81, and for a > 1.8V to 2.6V VCM, MIXER_VGATE = 23.75 VCM + 1.25. Fixes: da35a7b526d9 ("iio: frequency: admv1013: add support for ADMV1013") Signed-off-by: Antoniu Miclaus <antoniu.miclaus@analog.com> --- drivers/iio/frequency/admv1013.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-)