diff mbox series

iio: admv1013: add mixer_vgate corner cases

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

Commit Message

Antoniu Miclaus Aug. 7, 2023, 2:38 p.m. UTC
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(-)

Comments

Nuno Sá Aug. 8, 2023, 6:32 a.m. UTC | #1
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;
Jonathan Cameron Aug. 28, 2023, 6:07 p.m. UTC | #2
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 mbox series

Patch

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;