Skip to content

Commit 68317ed

Browse files
committed
drivers/iio/adc/ad9361: preserve SDM Bypass or SDM PD bits
Signed-off-by: Michael Hennerich <michael.hennerich@analog.com>
1 parent d302e45 commit 68317ed

1 file changed

Lines changed: 6 additions & 4 deletions

File tree

drivers/iio/adc/ad9361.c

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -5062,8 +5062,8 @@ static unsigned long ad9361_rfpll_recalc_rate(struct clk_hw *hw,
50625062
vco_div = ad9361_spi_readf(clk_priv->spi, REG_RFPLL_DIVIDERS, div_mask);
50635063
}
50645064

5065-
fract = (buf[0] << 16) | (buf[1] << 8) | buf[2];
5066-
integer = buf[3] << 8 | buf[4];
5065+
fract = (SYNTH_FRACT_WORD(buf[0]) << 16) | (buf[1] << 8) | buf[2];
5066+
integer = (SYNTH_INTEGER_WORD(buf[3]) << 8) | buf[4];
50675067

50685068
return ad9361_to_clk(ad9361_calc_rfpll_freq(parent_rate, integer,
50695069
fract, vco_div));
@@ -5123,10 +5123,12 @@ static int ad9361_rfpll_set_rate(struct clk_hw *hw, unsigned long rate,
51235123
ad9361_rfpll_vco_init(phy, div_mask == TX_VCO_DIVIDER(~0),
51245124
vco, parent_rate);
51255125

5126-
buf[0] = fract >> 16;
5126+
buf[0] = SYNTH_FRACT_WORD(fract >> 16);
51275127
buf[1] = fract >> 8;
51285128
buf[2] = fract & 0xFF;
5129-
buf[3] = integer >> 8;
5129+
buf[3] = SYNTH_INTEGER_WORD(integer >> 8) |
5130+
(~SYNTH_INTEGER_WORD(~0) &
5131+
ad9361_spi_read(clk_priv->spi, reg - 3));
51305132
buf[4] = integer & 0xFF;
51315133

51325134
ad9361_spi_writem(clk_priv->spi, reg, buf, 5);

0 commit comments

Comments
 (0)