no-OS
All Classes Files Functions Variables Typedefs Enumerations Enumerator Macros Modules Pages
hmc7044.h
Go to the documentation of this file.
1/***************************************************************************/
33#ifndef HMC7044_H_
34#define HMC7044_H_
35
36#include <stdbool.h>
37#include <stdint.h>
38#include "no_os_delay.h"
39#include "no_os_spi.h"
40
57
95
129
133extern const struct no_os_clk_platform_ops hmc7044_clk_ops;
134
135/*
136 * adi,pulse-generator-mode
137 */
138#define HMC7044_PULSE_GEN_LEVEL_SENSITIVE 0
139#define HMC7044_PULSE_GEN_1_PULSE 1
140#define HMC7044_PULSE_GEN_2_PULSE 2
141#define HMC7044_PULSE_GEN_4_PULSE 3
142#define HMC7044_PULSE_GEN_8_PULSE 4
143#define HMC7044_PULSE_GEN_16_PULSE 5
144#define HMC7044_PULSE_GEN_CONT_PULSE 7
145
146/*
147 * adi,sync-pin-mode
148 */
149
150#define HMC7044_SYNC_PIN_DISABLED 0
151#define HMC7044_SYNC_PIN_SYNC 1
152#define HMC7044_SYNC_PIN_PULSE_GEN_REQ 2
153#define HMC7044_SYNC_PIN_SYNC_THEN_PULSE_GEN 3
154
155/* Initialize the device. */
156int32_t hmc7044_init(struct hmc7044_dev **device,
157 const struct hmc7044_init_param *init_param);
158/* Remove the device. */
159int32_t hmc7044_remove(struct hmc7044_dev *device);
160int32_t hmc7044_read(struct hmc7044_dev *dev, uint16_t reg, uint8_t *val);
161int32_t hmc7044_clk_recalc_rate(struct hmc7044_dev *dev, uint32_t chan_num,
162 uint64_t *rate);
163int32_t hmc7044_clk_round_rate(struct hmc7044_dev *dev, uint32_t rate,
164 uint64_t *rounded_rate);
165int32_t hmc7044_clk_set_rate(struct hmc7044_dev *dev, uint32_t chan_num,
166 uint64_t rate);
167
168#endif // HMC7044_H_
struct ad7616_init_param init_param
Definition ad7616_sdz.c:107
const struct no_os_clk_platform_ops hmc7044_clk_ops
hmc7044 clock ops
Definition hmc7044.c:1681
int32_t hmc7044_clk_round_rate(struct hmc7044_dev *dev, uint32_t rate, uint64_t *rounded_rate)
Definition hmc7044.c:425
int32_t hmc7044_clk_recalc_rate(struct hmc7044_dev *dev, uint32_t chan_num, uint64_t *rate)
Definition hmc7044.c:397
int32_t hmc7044_init(struct hmc7044_dev **device, const struct hmc7044_init_param *init_param)
Definition hmc7044.c:1456
int32_t hmc7044_clk_set_rate(struct hmc7044_dev *dev, uint32_t chan_num, uint64_t rate)
Definition hmc7044.c:442
int32_t hmc7044_remove(struct hmc7044_dev *device)
Definition hmc7044.c:1622
int32_t hmc7044_read(struct hmc7044_dev *dev, uint16_t reg, uint8_t *val)
Definition hmc7044.c:300
Header file of Delay functions.
Header file of SPI Interface.
Definition ad9361_util.h:63
Definition hmc7044.h:41
bool is_sysref
Definition hmc7044.h:49
unsigned int driver_mode
Definition hmc7044.h:51
bool high_performance_mode_dis
Definition hmc7044.h:44
unsigned int fine_delay
Definition hmc7044.h:54
unsigned int coarse_delay
Definition hmc7044.h:53
unsigned int divider
Definition hmc7044.h:50
unsigned int driver_impedance
Definition hmc7044.h:52
bool disable
Definition hmc7044.h:43
unsigned int num
Definition hmc7044.h:42
bool start_up_mode_dynamic_enable
Definition hmc7044.h:45
bool force_mute_enable
Definition hmc7044.h:48
unsigned int out_mux_mode
Definition hmc7044.h:55
bool dynamic_driver_enable
Definition hmc7044.h:46
bool output_control0_rb4_enable
Definition hmc7044.h:47
Definition hmc7044.h:58
uint32_t clkin_freq_ccf[4]
Definition hmc7044.h:64
uint32_t pll1_pfd
Definition hmc7044.h:66
struct no_os_clk_desc ** clk_desc
Definition hmc7044.h:61
uint32_t jdev_lmfc_lemc_gcd
Definition hmc7044.h:87
bool read_write_confirmed
Definition hmc7044.h:93
uint32_t sysref_timer_div
Definition hmc7044.h:71
uint32_t jdev_max_sysref_freq
Definition hmc7044.h:88
uint32_t in_buf_mode[5]
Definition hmc7044.h:80
uint32_t num_channels
Definition hmc7044.h:83
bool is_sysref_provider
Definition hmc7044.h:91
uint32_t gpi_ctrl[4]
Definition hmc7044.h:81
uint32_t gpo_ctrl[4]
Definition hmc7044.h:82
uint32_t pulse_gen_mode
Definition hmc7044.h:79
uint32_t jdev_desired_sysref_freq
Definition hmc7044.h:89
bool clkin1_vcoin_en
Definition hmc7044.h:75
bool high_performance_mode_clock_dist_en
Definition hmc7044.h:76
uint32_t vcxo_freq
Definition hmc7044.h:65
uint32_t clkin_freq[4]
Definition hmc7044.h:63
bool is_hmc7043
Definition hmc7044.h:62
bool rf_reseeder_en
Definition hmc7044.h:77
uint32_t jdev_lmfc_lemc_rate
Definition hmc7044.h:86
struct hmc7044_chan_spec * channels
Definition hmc7044.h:84
struct no_os_spi_desc * spi_desc
Definition hmc7044.h:59
bool pll1_ref_autorevert_en
Definition hmc7044.h:73
uint32_t pll1_cp_current
Definition hmc7044.h:68
bool clkin0_rfsync_en
Definition hmc7044.h:74
struct jesd204_dev * jdev
Definition hmc7044.h:85
bool jdev_skip_sysref_freq_calc
Definition hmc7044.h:90
uint32_t pfd1_limit
Definition hmc7044.h:67
bool hmc_two_level_tree_sync_en
Definition hmc7044.h:92
unsigned int pll1_ref_prio_ctrl
Definition hmc7044.h:72
unsigned int sync_pin_mode
Definition hmc7044.h:78
uint32_t pll1_loop_bw
Definition hmc7044.h:70
uint32_t pll2_freq
Definition hmc7044.h:69
Definition hmc7044.h:96
uint32_t gpi_ctrl[4]
Definition hmc7044.h:124
bool jdev_skip_sysref_freq_calc
Definition hmc7044.h:120
uint32_t clkin_freq_ccf[4]
Definition hmc7044.h:102
uint32_t pulse_gen_mode
Definition hmc7044.h:122
uint32_t pll2_freq
Definition hmc7044.h:107
bool jesd204_sysref_provider
Definition hmc7044.h:117
uint32_t num_channels
Definition hmc7044.h:126
uint32_t sysref_timer_div
Definition hmc7044.h:109
uint32_t pll1_loop_bw
Definition hmc7044.h:108
bool high_performance_mode_clock_dist_en
Definition hmc7044.h:114
struct hmc7044_chan_spec * channels
Definition hmc7044.h:127
struct no_os_spi_init_param * spi_init
Definition hmc7044.h:97
bool rf_reseeder_disable
Definition hmc7044.h:115
unsigned int pll1_ref_prio_ctrl
Definition hmc7044.h:110
uint32_t pfd1_limit
Definition hmc7044.h:105
uint32_t in_buf_mode[5]
Definition hmc7044.h:123
bool clkin1_vcoin_en
Definition hmc7044.h:113
uint32_t vcxo_freq
Definition hmc7044.h:103
uint32_t jesd204_desired_sysref_frequency_hz
Definition hmc7044.h:119
uint32_t pll1_pfd
Definition hmc7044.h:104
uint32_t jesd204_max_sysref_frequency_hz
Definition hmc7044.h:118
bool pll1_ref_autorevert_en
Definition hmc7044.h:111
uint32_t pll1_cp_current
Definition hmc7044.h:106
uint32_t clkin_freq[4]
Definition hmc7044.h:101
unsigned int sync_pin_mode
Definition hmc7044.h:121
bool hmc_two_level_tree_sync_en
Definition hmc7044.h:116
bool clkin0_rfsync_en
Definition hmc7044.h:112
bool export_no_os_clk
Definition hmc7044.h:99
bool is_hmc7043
Definition hmc7044.h:100
uint32_t gpo_ctrl[4]
Definition hmc7044.h:125
Structure holding CLK descriptor.
Definition no_os_clk.h:69
Structure holding CLK function pointers that point to the platform specific function.
Definition no_os_clk.h:85
Structure holding SPI descriptor.
Definition no_os_spi.h:180
Structure holding the parameters for SPI initialization.
Definition no_os_spi.h:128