iio: ad9523-1: Improve reported VCO frequency accuracy
To improve the accuracy of the reported VCO frequency perform all multiplications before divisions. This reduces rounding errors and makes sure the reported rates are accurate down to the last digit. Signed-off-by: Lars-Peter Clausen <lars@metafoo.de> Signed-off-by: Alexandru Ardelean <alexandru.ardelean@analog.com> Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
This commit is contained in:
parent
a2d2010d95
commit
0d698a538f
|
@ -862,9 +862,11 @@ static int ad9523_setup(struct iio_dev *indio_dev)
|
|||
if (ret < 0)
|
||||
return ret;
|
||||
|
||||
st->vco_freq = (pdata->vcxo_freq * (pdata->pll2_freq_doubler_en ? 2 : 1)
|
||||
/ pdata->pll2_r2_div) * AD9523_PLL2_FB_NDIV(pdata->
|
||||
pll2_ndiv_a_cnt, pdata->pll2_ndiv_b_cnt);
|
||||
st->vco_freq = div_u64((unsigned long long)pdata->vcxo_freq *
|
||||
(pdata->pll2_freq_doubler_en ? 2 : 1) *
|
||||
AD9523_PLL2_FB_NDIV(pdata->pll2_ndiv_a_cnt,
|
||||
pdata->pll2_ndiv_b_cnt),
|
||||
pdata->pll2_r2_div);
|
||||
|
||||
ret = ad9523_write(indio_dev, AD9523_PLL2_VCO_CTRL,
|
||||
AD9523_PLL2_VCO_CALIBRATE);
|
||||
|
|
Loading…
Reference in New Issue