Implementation of adf5611 Driver. More...
Go to the source code of this file.
Classes | |
struct | adf5611_init_param |
ADF5611 Inintialization Parameters Structure. More... | |
struct | adf5611_dev |
ADF5611 Device Descriptor. More... | |
struct | reg_sequence |
ADF4382 register format structure for default values. More... | |
Enumerations | |
enum | adf5611_device_id { ID_ADF5611 , ID_ADF5612 } |
Supported device ids. More... | |
Functions | |
int | adf5611_spi_write (struct adf5611_dev *dev, uint16_t reg_addr, uint8_t data) |
Writes data to ADF5611 over SPI. | |
int | adf5611_spi_read (struct adf5611_dev *dev, uint16_t reg_addr, uint8_t *data) |
Reads data from ADF5611 over SPI. | |
int | adf5611_spi_update_bits (struct adf5611_dev *dev, uint16_t reg_addr, uint8_t mask, uint8_t data) |
Updates the values of the ADF5611 register. | |
int | adf5611_set_ref_clk (struct adf5611_dev *dev, uint64_t val) |
Set the desired reference frequency and reset everything over to maximum supported value of 300MHz to the max. value and everything under the minimum supported value of 50MHz to the min. value. | |
int | adf5611_get_ref_clk (struct adf5611_dev *dev, uint64_t *val) |
Gets the user proposed reference frequency. | |
int | adf5611_set_ref_div (struct adf5611_dev *dev, int32_t div) |
Set the reference divider value and reset everything over to maximum supported value of 60 to the max value. | |
int | adf5611_get_ref_div (struct adf5611_dev *dev, int32_t *div) |
Gets the value the reference divider. | |
int | adf5611_set_cp_i (struct adf5611_dev *dev, int32_t reg_val) |
Set the charge pump value which will be written to the register. The value will be between 0 and 15 on 8 bits. For more information please consult the Datasheet. | |
int | adf5611_get_cp_i (struct adf5611_dev *dev, int32_t *reg_val) |
Gets the charge pump value from the register. The value will be between 0 and 15 on 8 bits. For more information please consult the Datasheet. | |
int | adf5611_set_output_power (struct adf5611_dev *dev, int8_t pwr) |
Set the rfoutput power register value and reset everything over to maximum supported value of 3 to the max. value. | |
int | adf5611_get_output_power (struct adf5611_dev *dev, int8_t *pwr) |
Gets the rfoutput power register value. | |
int | adf5611_set_rfoutdiv_power (struct adf5611_dev *dev, int32_t pwr) |
Set the rfoutdiv power register value and reset everything over to maximum supported value of 3 to the max. value. | |
int | adf5611_get_rfoutdiv_power (struct adf5611_dev *dev, int32_t *pwr) |
Gets the rfoutdiv power register value. | |
int | adf5611_set_rfoutdiv_divider (struct adf5611_dev *dev, uint8_t div_val) |
Set the rfoutdiv frequency divider register value and reset everything over to maximum supported value of 128 to the max. value. | |
int | adf5611_get_rfoutdiv_divider (struct adf5611_dev *dev, int8_t *div) |
Gets the rfoutdiv divider register value. | |
int | adf5611_set_en_rfoutdiv (struct adf5611_dev *dev, bool en) |
Sets the rfoutdiv output block to enable or disable. 1 means the block is powered down else block is powered up. | |
int | adf5611_get_en_rfoutdiv (struct adf5611_dev *dev, bool *en) |
Gets the value of rfoutdiv output block if enable or disable. | |
int | adf5611_set_rfout (struct adf5611_dev *dev, uint64_t val) |
Set the desired output frequency and reset everything over to maximum supported value of 14.6GHz to the max. value and everything under the minimum supported value of 7.3GHz to the min. value. | |
int | adf5611_get_rfout (struct adf5611_dev *dev, uint64_t *val) |
Gets the user proposed output frequency. | |
int | adf5611_set_freq (struct adf5611_dev *dev) |
Set the output frequency. | |
int | adf5611_init (struct adf5611_dev **device, struct adf5611_init_param *init_param) |
Initialize the ADF5611. | |
int | adf5611_remove (struct adf5611_dev *dev) |
Free resources allocated for ADF5611. | |
Implementation of adf5611 Driver.
Copyright 2024(c) Analog Devices, Inc.
Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:
THIS SOFTWARE IS PROVIDED BY ANALOG DEVICES, INC. “AS IS” AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL ANALOG DEVICES, INC. BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
#define ADF5611_0_VCO_DB_MSK NO_OS_BIT(7) |
#define ADF5611_ABPW_WD_MSK NO_OS_BIT(1) |
#define ADF5611_ADC_BUSY_MSK NO_OS_BIT(2) |
#define ADF5611_ADC_C_CONV_MSK NO_OS_BIT(2) |
#define ADF5611_ADC_CLK_DIV_MSK NO_OS_GENMASK(7, 0) |
#define ADF5611_ADC_CLK_TEST_SEL_MSK NO_OS_BIT(0) |
#define ADF5611_ADC_F_CONV_MSK NO_OS_BIT(3) |
#define ADF5611_ADC_MUX_SEL_MSK NO_OS_BIT(4) |
#define ADF5611_ADC_ST_CNV_MSK NO_OS_BIT(0) |
#define ADF5611_ADC_VTEST_SEL_MSK NO_OS_BIT(5) |
#define ADF5611_ADDRESS_ASC_AUTO_DECR 0x0 |
#define ADF5611_ADDRESS_ASC_AUTO_INCR 0x1 |
#define ADF5611_ADDRESS_ASC_MSK NO_OS_BIT(2) |
#define ADF5611_ADDRESS_ASC_R_MSK NO_OS_BIT(5) |
#define ADF5611_BLEED_CURRENT 3125 |
#define ADF5611_BLEED_CURRENT_DIS 0x0 |
#define ADF5611_BLEED_CURRENT_EN 0x1 |
#define ADF5611_BLEED_I_MSK NO_OS_GENMASK(7, 0) |
#define ADF5611_BLEED_POL_MSK NO_OS_BIT(0) |
#define ADF5611_BLEED_TIME_CONST 4 |
#define ADF5611_BUFF_SIZE_BYTES 3 |
#define ADF5611_CAL_COUNT_TO_MSK NO_OS_GENMASK(7, 0) |
#define ADF5611_CAL_CT_SEL_MSK NO_OS_BIT(1) |
#define ADF5611_CAL_VCO_TO_LSB_MSK NO_OS_GENMASK(7, 0) |
#define ADF5611_CAL_VCO_TO_MSB_MSK NO_OS_GENMASK(6, 0) |
#define ADF5611_CAL_VTUNE_TO_LSB_MSK NO_OS_GENMASK(7, 0) |
#define ADF5611_CAL_VTUNE_TO_MSB_MSK NO_OS_GENMASK(6, 0) |
#define ADF5611_CHANNEL_SPACING_MAX 78125U |
#define ADF5611_CHIP_TYPE 0x06 |
#define ADF5611_CLKODIV_DB_MSK NO_OS_BIT(7) |
#define ADF5611_CMOS_OV | ( | x | ) |
#define ADF5611_CMOS_OV_MSK NO_OS_BIT(5) |
#define ADF5611_CNTR_DIV_WORD_LSB_MSK NO_OS_GENMASK(7, 0) |
#define ADF5611_CNTR_DIV_WORD_MSB_MSK NO_OS_GENMASK(3, 0) |
#define ADF5611_CORE0_BIAS_TABLE_0_MSK NO_OS_GENMASK(2, 0) |
#define ADF5611_CORE0_BIAS_TABLE_1_MSK NO_OS_GENMASK(5, 3) |
#define ADF5611_CORE0_BIAS_TABLE_2_MSK NO_OS_GENMASK(2, 0) |
#define ADF5611_CORE0_BIAS_TABLE_3_MSK NO_OS_GENMASK(5, 3) |
#define ADF5611_CORE0_BIAS_TABLE_4_MSK NO_OS_GENMASK(2, 0) |
#define ADF5611_CORE0_BIAS_TABLE_5_MSK NO_OS_GENMASK(5, 3) |
#define ADF5611_CORE0_BIAS_TABLE_6_MSK NO_OS_GENMASK(2, 0) |
#define ADF5611_CORE0_BIAS_TABLE_7_MSK NO_OS_GENMASK(5, 3) |
#define ADF5611_CORE1_BIAS_TABLE_0_MSK NO_OS_GENMASK(2, 0) |
#define ADF5611_CORE1_BIAS_TABLE_1_MSK NO_OS_GENMASK(5, 3) |
#define ADF5611_CORE1_BIAS_TABLE_2_MSK NO_OS_GENMASK(2, 0) |
#define ADF5611_CORE1_BIAS_TABLE_3_MSK NO_OS_GENMASK(5, 3) |
#define ADF5611_CORE1_BIAS_TABLE_4_MSK NO_OS_GENMASK(2, 0) |
#define ADF5611_CORE1_BIAS_TABLE_5_MSK NO_OS_GENMASK(5, 3) |
#define ADF5611_CORE1_BIAS_TABLE_6_MSK NO_OS_GENMASK(2, 0) |
#define ADF5611_CORE1_BIAS_TABLE_7_MSK NO_OS_GENMASK(5, 3) |
#define ADF5611_CP_DOWN_MSK NO_OS_BIT(1) |
#define ADF5611_CP_I_MSK NO_OS_GENMASK(3, 0) |
#define ADF5611_CP_UP_MSK NO_OS_BIT(0) |
#define ADF5611_CPI_VAL_MAX 15 |
#define ADF5611_CURRENT_SINK 0x0 |
#define ADF5611_CURRENT_SOURCE 0x1 |
#define ADF5611_DCLK_DIV_DB_MSK NO_OS_BIT(6) |
#define ADF5611_DEL_CTRL_DB_MSK NO_OS_BIT(7) |
#define ADF5611_DITHER1_SCALE_MSK NO_OS_GENMASK(4, 2) |
#define ADF5611_DIV_NCLK_OFF 0x0 |
#define ADF5611_DIV_NCLK_ON 0x1 |
#define ADF5611_DIV_PWR_MSK NO_OS_GENMASK(1, 0) |
#define ADF5611_DNCLK_DIV1_MSK NO_OS_GENMASK(3, 2) |
#define ADF5611_EN_ADC_CLK_MSK NO_OS_BIT(3) |
#define ADF5611_EN_ADC_CNV_MSK NO_OS_BIT(7) |
#define ADF5611_EN_ADC_MSK NO_OS_BIT(1) |
#define ADF5611_EN_ADC_VTEST_MSK NO_OS_BIT(6) |
#define ADF5611_EN_AUTOCAL_MSK NO_OS_BIT(7) |
#define ADF5611_EN_BLEED_MSK NO_OS_BIT(6) |
#define ADF5611_EN_CP_IBX_MSK NO_OS_GENMASK(7, 6) |
#define ADF5611_EN_CPTEST_MSK NO_OS_BIT(2) |
#define ADF5611_EN_DCLK_MODE_MSK NO_OS_BIT(5) |
#define ADF5611_EN_DITHER1_MSK NO_OS_BIT(0) |
#define ADF5611_EN_DITHER2_MSK NO_OS_BIT(1) |
#define ADF5611_EN_DNCLK_MSK NO_OS_BIT(4) |
#define ADF5611_EN_LDWIN_MSK NO_OS_BIT(4) |
#define ADF5611_EN_LOL_MSK NO_OS_BIT(5) |
#define ADF5611_EN_MUXOUT_MSK NO_OS_BIT(3) |
#define ADF5611_EN_NOTCH_MSK NO_OS_BIT(0) |
#define ADF5611_EN_RCNTR_MSK NO_OS_BIT(4) |
#define ADF5611_EN_VCAL_MSK NO_OS_BIT(2) |
#define ADF5611_FRAC1WORD_LSB_MSK NO_OS_GENMASK(7, 4) |
#define ADF5611_FRAC1WORD_MID_MSB_MSK NO_OS_GENMASK(7, 0) |
#define ADF5611_FRAC1WORD_MID_MSK NO_OS_GENMASK(7, 0) |
#define ADF5611_FRAC1WORD_MSB_MSK NO_OS_GENMASK(4, 0) |
#define ADF5611_FRAC2WORD_LSB_MSK NO_OS_GENMASK(7, 0) |
#define ADF5611_FRAC2WORD_MID_MSK NO_OS_GENMASK(7, 0) |
#define ADF5611_FRAC2WORD_MSB_MSK NO_OS_GENMASK(7, 0) |
#define ADF5611_FRAC_MODE 0x0 |
#define ADF5611_FREQUENCY_REDUCTION_DIS 0x0 |
#define ADF5611_FREQUENCY_REDUCTION_EN 0x1 |
#define ADF5611_FSM_BUSY_MSK NO_OS_BIT(1) |
#define ADF5611_INTEGER_MODE 0x1 |
#define ADF5611_INTMODE_EN_MSK NO_OS_BIT(6) |
#define ADF5611_LD_COUNT_MSK NO_OS_GENMASK(4, 0) |
#define ADF5611_LDWIN_PW_MSK NO_OS_GENMASK(7, 5) |
#define ADF5611_LKD_DELAY_US 500 |
#define ADF5611_LOCKED_MSK NO_OS_BIT(0) |
#define ADF5611_LSB_FIRST_LSB 0x1 |
#define ADF5611_LSB_FIRST_MSB 0x0 |
#define ADF5611_LSB_FIRST_MSK NO_OS_BIT(1) |
#define ADF5611_LSB_FIRST_R_MSK NO_OS_BIT(6) |
#define ADF5611_LSB_P1_MSK NO_OS_BIT(6) |
#define ADF5611_M_VCO_BAND_MSK NO_OS_GENMASK(7, 1) |
#define ADF5611_M_VCO_BIAS_MSK NO_OS_GENMASK(7, 5) |
#define ADF5611_M_VCO_CORE_MSK NO_OS_BIT(0) |
#define ADF5611_MARGIN_MSK NO_OS_GENMASK(1, 0) |
#define ADF5611_MASTER_READBACK_CTRL_MSK NO_OS_BIT(5) |
#define ADF5611_MOD1WORD 0x2000000U |
#define ADF5611_MOD2WORD_LSB_MSK NO_OS_GENMASK(7, 0) |
#define ADF5611_MOD2WORD_MAX 0xFFFFFFU |
#define ADF5611_MOD2WORD_MID_MSK NO_OS_GENMASK(7, 0) |
#define ADF5611_MOD2WORD_MSB_MSK NO_OS_GENMASK(7, 0) |
#define ADF5611_MUXOUT_MSK NO_OS_GENMASK(7, 4) |
#define ADF5611_N_INT_LSB_MSK NO_OS_GENMASK(7, 0) |
#define ADF5611_N_INT_MID_MSK NO_OS_GENMASK(7, 0) |
#define ADF5611_N_INT_MSB_MSK NO_OS_GENMASK(3, 0) |
#define ADF5611_NVMADDR_MSK NO_OS_GENMASK(6, 3) |
#define ADF5611_NVMDIN_MSK NO_OS_GENMASK(7, 0) |
#define ADF5611_NVMDOUT_MSK NO_OS_GENMASK(7, 0) |
#define ADF5611_NVMNO_OS_BIT_SEL_MSK NO_OS_GENMASK(2, 0) |
#define ADF5611_NVMON_MSK NO_OS_BIT(2) |
#define ADF5611_NVMPROG_MSK NO_OS_BIT(5) |
#define ADF5611_NVMRD_MSK NO_OS_BIT(4) |
#define ADF5611_NVMSTART_MSK NO_OS_BIT(3) |
#define ADF5611_NVMTEST_MSK NO_OS_BIT(6) |
#define ADF5611_O_VCO_BAND_MSK NO_OS_BIT(1) |
#define ADF5611_O_VCO_BIAS_MSK NO_OS_BIT(2) |
#define ADF5611_O_VCO_CORE_MSK NO_OS_BIT(0) |
#define ADF5611_OUTPUT_DOUBLER 0x2U |
#define ADF5611_PD_ADC_MSK NO_OS_BIT(1) |
#define ADF5611_PD_ALL_MSK NO_OS_BIT(7) |
#define ADF5611_PD_CALGEN_MSK NO_OS_BIT(0) |
#define ADF5611_PD_LD_MSK NO_OS_BIT(3) |
#define ADF5611_PD_NDIV_MSK NO_OS_BIT(5) |
#define ADF5611_PD_ODIV_MSK NO_OS_BIT(0) |
#define ADF5611_PD_PFDCP_MSK NO_OS_BIT(2) |
#define ADF5611_PD_PFDNCLK_MSK NO_OS_BIT(1) |
#define ADF5611_PD_RDIV_MSK NO_OS_BIT(6) |
#define ADF5611_PD_VCO_MSK NO_OS_BIT(4) |
#define ADF5611_PFD_FREQ_MAX 100000000U |
#define ADF5611_PFD_POL_MSK NO_OS_BIT(1) |
#define ADF5611_PHASE_WORD_LSB_MSK NO_OS_GENMASK(7, 0) |
#define ADF5611_PHASE_WORD_MID_MSK NO_OS_GENMASK(7, 0) |
#define ADF5611_PHASE_WORD_MSB_MSK NO_OS_GENMASK(7, 0) |
#define ADF5611_POR_DELAY_US 200 |
#define ADF5611_PRODUCT_ID_LSB 0x0005 |
#define ADF5611_PRODUCT_ID_MSB 0x0005 |
#define ADF5611_R_DIV_LSB_MSK NO_OS_GENMASK(7, 0) |
#define ADF5611_R_DIV_MSB_MSK NO_OS_GENMASK(5, 0) |
#define ADF5611_RB_MASTER_REG 0x1 |
#define ADF5611_RB_SLAVE_REG 0x0 |
#define ADF5611_READ_MODE_MSK NO_OS_BIT(4) |
#define ADF5611_REF_CLK_MAX 300000000000U |
#define ADF5611_REF_CLK_MIN 50000000U |
#define ADF5611_REF_DIV_MAX 16383 |
#define ADF5611_RESET_CMD 0x81 |
#define ADF5611_RFOUT_DIV_MSK NO_OS_GENMASK(7, 5) |
#define ADF5611_RFOUT_MAX 14600000000U |
#define ADF5611_RFOUT_MIN 7300000000U |
#define ADF5611_RFOUT_PWR_MAX 3 |
#define ADF5611_RFOUT_PWR_MSK NO_OS_GENMASK(4, 3) |
#define ADF5611_RFOUTDIV_DIV_MAX 7U |
#define ADF5611_RFOUTDIV_PWR_MAX ADF5611_RFOUT_PWR_MAX |
#define ADF5611_RST_CNTR_MSK NO_OS_BIT(0) |
#define ADF5611_RST_LD_MSK NO_OS_BIT(2) |
#define ADF5611_RST_RDIV_MSK NO_OS_BIT(5) |
#define ADF5611_RST_SYS_MSK NO_OS_BIT(4) |
#define ADF5611_SCAN_MODE_CODE_MSK NO_OS_GENMASK(7, 0) |
#define ADF5611_SCRATCHPAD_MSK NO_OS_GENMASK(7, 0) |
#define ADF5611_SDO_ACTIVE_MSK NO_OS_BIT(3) |
#define ADF5611_SDO_ACTIVE_R_MSK NO_OS_BIT(4) |
#define ADF5611_SDO_ACTIVE_SPI_3WIRE 0x0 |
#define ADF5611_SDO_ACTIVE_SPI_4WIRE 0x1 |
#define ADF5611_SINGLE_INSTR_MSK NO_OS_BIT(7) |
#define ADF5611_SOFT_RESET_EN 0x1 |
#define ADF5611_SOFT_RESET_MSK NO_OS_BIT(0) |
#define ADF5611_SOFT_RESET_NORMAL_OP 0x0 |
#define ADF5611_SOFT_REST_R_MSK NO_OS_BIT(7) |
#define ADF5611_SPARE_2A_MSK NO_OS_BIT(3) |
#define ADF5611_SPARE_2C_MSK NO_OS_BIT(5) |
#define ADF5611_SPARE_2D_MSK NO_OS_GENMASK(4, 3) |
#define ADF5611_SPARE_35_MSK NO_OS_GENMASK(7, 6) |
#define ADF5611_SPARE_38_MSK NO_OS_BIT(7) |
#define ADF5611_SPARE_39_MSK NO_OS_BIT(7) |
#define ADF5611_SPARE_3B_MSK NO_OS_BIT(7) |
#define ADF5611_SPARE_40_MSK NO_OS_GENMASK(7, 6) |
#define ADF5611_SPI_4W_CFG | ( | x | ) |
#define ADF5611_SPI_DUMMY_DATA 0x00 |
#define ADF5611_SPI_READ_CMD 0x8000 |
#define ADF5611_SPI_SCRATCHPAD_TEST 0x2A |
#define ADF5611_SPI_STREAM_DIS 0x1 |
#define ADF5611_SPI_STREAM_EN 0x0 |
#define ADF5611_SPI_WRITE_CMD 0x0 |
#define ADF5611_TEMP_OFFSET_MSK NO_OS_GENMASK(7, 0) |
#define ADF5611_TEMP_SLOPE_MSK NO_OS_GENMASK(5, 0) |
#define ADF5611_TRIM_LATCH_MSK NO_OS_BIT(7) |
#define ADF5611_VAR_MOD_EN_MSK NO_OS_BIT(5) |
#define ADF5611_VCO_0_HIGHEST_FREQUENCY 0x0 |
#define ADF5611_VCO_1_LOWEST_FREQUENCY 0x1 |
#define ADF5611_VCO_CALIBRATION_DIS 0x0 |
#define ADF5611_VCO_CALIBRATION_EN 0x1 |
#define ADF5611_VCO_FREQ_MAX 7300000000U |
#define ADF5611_VCO_FREQ_MIN 3650000000U |
#define ADF5611_VCO_FSM_TEST_MUX_MSK NO_OS_GENMASK(7, 5) |
#define ADF5611_VCTAT_CALGEN_MSK NO_OS_GENMASK(6, 0) |
#define ADF5611_VENDOR_ID_LSB 0x56 |
#define ADF5611_VENDOR_ID_MSB 0x04 |
#define ADF5611_VPTAT_CALGEN_MSK NO_OS_GENMASK(6, 0) |
#define ADF5612_RFOUT_MAX 8500000000U |
#define ADF5612_RFOUT_MIN 7300000000U |
#define ADF5612_VCO_FREQ_MAX 7300000000U |
#define KHZ 1000 |
#define ns_TO_ps 1000 |
#define s_TO_ns 1000000000U |
#define uA_TO_A 1000000 |
enum adf5611_device_id |
int adf5611_get_cp_i | ( | struct adf5611_dev * | dev, |
int32_t * | reg_val ) |
Gets the charge pump value from the register. The value will be between 0 and 15 on 8 bits. For more information please consult the Datasheet.
ADF5611 Get the charge pump current attribute
dev | - The device structure. |
reg_val | - The charge pump register value. |
int adf5611_get_en_rfoutdiv | ( | struct adf5611_dev * | dev, |
bool * | en ) |
Gets the value of rfoutdiv output block if enable or disable.
ADF5611 Get the enable/disable rfoutdiv
dev | - The device structure. |
en | - The status of rfoutdiv output block. |
int adf5611_get_output_power | ( | struct adf5611_dev * | dev, |
int8_t * | pwr ) |
Gets the rfoutput power register value.
ADF5611 Get the output power attribute
dev | - The device structure. |
pwr | - The output power register value. |
int adf5611_get_ref_clk | ( | struct adf5611_dev * | dev, |
uint64_t * | val ) |
Gets the user proposed reference frequency.
ADF5611 Get reference frequency attribute
dev | - The device structure. |
val | - The reference frequency in Hz. |
int adf5611_get_ref_div | ( | struct adf5611_dev * | dev, |
int32_t * | div ) |
Gets the value the reference divider.
ADF5611 Get reference divider attribute
dev | - The device structure. |
div | - The reference divider value. |
int adf5611_get_rfout | ( | struct adf5611_dev * | dev, |
uint64_t * | val ) |
Gets the user proposed output frequency.
ADF5611 Get output frequency attribute
dev | - The device structure. |
val | - The output frequency in Hz. |
int adf5611_get_rfoutdiv_divider | ( | struct adf5611_dev * | dev, |
int8_t * | div ) |
Gets the rfoutdiv divider register value.
ADF5611 Get the rfoutdiv divider attribute
dev | - The device structure. |
div | - The rfoutdiv divider register value. |
int adf5611_get_rfoutdiv_power | ( | struct adf5611_dev * | dev, |
int32_t * | pwr ) |
Gets the rfoutdiv power register value.
ADF5611 Get the rfoutdiv power attribute
dev | - The device structure. |
pwr | - The rfoutdiv power register value. |
int adf5611_init | ( | struct adf5611_dev ** | dev, |
struct adf5611_init_param * | init_param ) |
Initialize the ADF5611.
ADF5611 Initialization
dev | - The device structure. |
init_param | - The structure containing the device initial parameters. |
int adf5611_remove | ( | struct adf5611_dev * | dev | ) |
Free resources allocated for ADF5611.
ADF5611 Remove
dev | - The device structure. |
int adf5611_set_cp_i | ( | struct adf5611_dev * | dev, |
int32_t | reg_val ) |
Set the charge pump value which will be written to the register. The value will be between 0 and 15 on 8 bits. For more information please consult the Datasheet.
ADF5611 Set the charge pump current attribute
dev | - The device structure. |
reg_val | - The desired charge pump register value. |
int adf5611_set_en_rfoutdiv | ( | struct adf5611_dev * | dev, |
bool | en ) |
Sets the rfoutdiv output block to enable or disable. 1 means the block is powered down else block is powered up.
ADF5611 Set the enable/disable rfoutdiv
dev | - The device structure. |
en | - Enable/Disable rfoutdiv output. |
int adf5611_set_freq | ( | struct adf5611_dev * | dev | ) |
Set the output frequency.
ADF5611 Sets frequency
dev | - The device structure. |
int adf5611_set_output_power | ( | struct adf5611_dev * | dev, |
int8_t | pwr ) |
Set the rfoutput power register value and reset everything over to maximum supported value of 3 to the max. value.
ADF5611 Set the output power attribute
dev | - The device structure. |
pwr | - The output power register value. |
int adf5611_set_ref_clk | ( | struct adf5611_dev * | dev, |
uint64_t | val ) |
Set the desired reference frequency and reset everything over to maximum supported value of 300MHz to the max. value and everything under the minimum supported value of 50MHz to the min. value.
ADF5611 Set reference frequency attribute
dev | - The device structure. |
val | - The desired reference frequency in Hz. |
int adf5611_set_ref_div | ( | struct adf5611_dev * | dev, |
int32_t | div ) |
Set the reference divider value and reset everything over to maximum supported value of 60 to the max value.
ADF5611 Set reference divider attribute
dev | - The device structure. |
div | - The reference divider value. |
int adf5611_set_rfout | ( | struct adf5611_dev * | dev, |
uint64_t | val ) |
Set the desired output frequency and reset everything over to maximum supported value of 14.6GHz to the max. value and everything under the minimum supported value of 7.3GHz to the min. value.
ADF5611 Set output frequency attribute
dev | - The device structure. |
val | - The desired output frequency in Hz. |
int adf5611_set_rfoutdiv_divider | ( | struct adf5611_dev * | dev, |
uint8_t | div_val ) |
Set the rfoutdiv frequency divider register value and reset everything over to maximum supported value of 128 to the max. value.
ADF5611 Set the rfoutdiv divider attribute
dev | - The device structure. |
div_val | - The rfoutdiv divider register value. |
int adf5611_set_rfoutdiv_power | ( | struct adf5611_dev * | dev, |
int32_t | pwr ) |
Set the rfoutdiv power register value and reset everything over to maximum supported value of 3 to the max. value.
ADF5611 Set the rfoutdiv power attribute
dev | - The device structure. |
pwr | - The rfoutdiv power register value. |
int adf5611_spi_read | ( | struct adf5611_dev * | dev, |
uint16_t | reg_addr, | ||
uint8_t * | data ) |
Reads data from ADF5611 over SPI.
ADF5611 SPI Read
dev | - The device structure. |
reg_addr | - The register address. |
data | - Data read from the device. |
int adf5611_spi_update_bits | ( | struct adf5611_dev * | dev, |
uint16_t | reg_addr, | ||
uint8_t | mask, | ||
uint8_t | data ) |
Updates the values of the ADF5611 register.
ADF5611 updates a bit in the register space over SPI
dev | - The device structure. |
reg_addr | - The register address. |
mask | - Bits to be updated. |
data | - Update value for the mask. |
int adf5611_spi_write | ( | struct adf5611_dev * | dev, |
uint16_t | reg_addr, | ||
uint8_t | data ) |
Writes data to ADF5611 over SPI.
ADF5611 SPI write
dev | - The device structure. |
reg_addr | - The register address. |
data | - Data value to write. |