no-OS
All Classes Files Functions Variables Typedefs Enumerations Enumerator Macros Modules Pages
ad9361_api.h
Go to the documentation of this file.
1/***************************************************************************/
33#ifndef AD9361_API_H_
34#define AD9361_API_H_
35
36#include "ad9361_util.h"
37#include "no_os_gpio.h"
38#include "no_os_spi.h"
39
40typedef struct {
41 /* Device selection */
43 /* Reference Clock */
45 /* Base Configuration */
46 uint8_t two_rx_two_tx_mode_enable; /* adi,2rx-2tx-mode-enable */
47 uint8_t one_rx_one_tx_mode_use_rx_num; /* adi,1rx-1tx-mode-use-rx-num */
48 uint8_t one_rx_one_tx_mode_use_tx_num; /* adi,1rx-1tx-mode-use-tx-num */
49 uint8_t frequency_division_duplex_mode_enable; /* adi,frequency-division-duplex-mode-enable */
50 uint8_t frequency_division_duplex_independent_mode_enable; /* adi,frequency-division-duplex-independent-mode-enable */
51 uint8_t tdd_use_dual_synth_mode_enable; /* adi,tdd-use-dual-synth-mode-enable */
52 uint8_t tdd_skip_vco_cal_enable; /* adi,tdd-skip-vco-cal-enable */
53 uint32_t tx_fastlock_delay_ns; /* adi,tx-fastlock-delay-ns */
54 uint32_t rx_fastlock_delay_ns; /* adi,rx-fastlock-delay-ns */
55 uint8_t rx_fastlock_pincontrol_enable; /* adi,rx-fastlock-pincontrol-enable */
56 uint8_t tx_fastlock_pincontrol_enable; /* adi,tx-fastlock-pincontrol-enable */
57 uint8_t external_rx_lo_enable; /* adi,external-rx-lo-enable */
58 uint8_t external_tx_lo_enable; /* adi,external-tx-lo-enable */
59 uint8_t dc_offset_tracking_update_event_mask; /* adi,dc-offset-tracking-update-event-mask */
60 uint8_t dc_offset_attenuation_high_range; /* adi,dc-offset-attenuation-high-range */
61 uint8_t dc_offset_attenuation_low_range; /* adi,dc-offset-attenuation-low-range */
62 uint8_t dc_offset_count_high_range; /* adi,dc-offset-count-high-range */
63 uint8_t dc_offset_count_low_range; /* adi,dc-offset-count-low-range */
64 uint8_t split_gain_table_mode_enable; /* adi,split-gain-table-mode-enable */
65 uint32_t trx_synthesizer_target_fref_overwrite_hz; /* adi,trx-synthesizer-target-fref-overwrite-hz */
66 uint8_t qec_tracking_slow_mode_enable; /* adi,qec-tracking-slow-mode-enable */
67 /* ENSM Control */
68 uint8_t ensm_enable_pin_pulse_mode_enable; /* adi,ensm-enable-pin-pulse-mode-enable */
69 uint8_t ensm_enable_txnrx_control_enable; /* adi,ensm-enable-txnrx-control-enable */
70 /* LO Control */
71 uint64_t rx_synthesizer_frequency_hz; /* adi,rx-synthesizer-frequency-hz */
72 uint64_t tx_synthesizer_frequency_hz; /* adi,tx-synthesizer-frequency-hz */
73 uint8_t tx_lo_powerdown_managed_enable; /* adi,tx-lo-powerdown-managed-enable */
74 /* Rate & BW Control */
75 uint32_t rx_path_clock_frequencies[6]; /* adi,rx-path-clock-frequencies */
76 uint32_t tx_path_clock_frequencies[6]; /* adi,tx-path-clock-frequencies */
77 uint32_t rf_rx_bandwidth_hz; /* adi,rf-rx-bandwidth-hz */
78 uint32_t rf_tx_bandwidth_hz; /* adi,rf-tx-bandwidth-hz */
79 /* RF Port Control */
80 uint32_t rx_rf_port_input_select; /* adi,rx-rf-port-input-select */
81 uint32_t tx_rf_port_input_select; /* adi,tx-rf-port-input-select */
82 /* TX Attenuation Control */
83 int32_t tx_attenuation_mdB; /* adi,tx-attenuation-mdB */
84 uint8_t update_tx_gain_in_alert_enable; /* adi,update-tx-gain-in-alert-enable */
85 /* Reference Clock Control */
86 uint8_t xo_disable_use_ext_refclk_enable; /* adi,xo-disable-use-ext-refclk-enable */
87 uint32_t dcxo_coarse_and_fine_tune[2]; /* adi,dcxo-coarse-and-fine-tune */
88 uint32_t clk_output_mode_select; /* adi,clk-output-mode-select */
89 /* Gain Control */
90 uint8_t gc_rx1_mode; /* adi,gc-rx1-mode */
91 uint8_t gc_rx2_mode; /* adi,gc-rx2-mode */
92 uint8_t gc_adc_large_overload_thresh; /* adi,gc-adc-large-overload-thresh */
93 uint8_t gc_adc_ovr_sample_size; /* adi,gc-adc-ovr-sample-size */
94 uint8_t gc_adc_small_overload_thresh; /* adi,gc-adc-small-overload-thresh */
95 uint16_t gc_dec_pow_measurement_duration; /* adi,gc-dec-pow-measurement-duration */
96 uint8_t gc_dig_gain_enable; /* adi,gc-dig-gain-enable */
97 uint16_t gc_lmt_overload_high_thresh; /* adi,gc-lmt-overload-high-thresh */
98 uint16_t gc_lmt_overload_low_thresh; /* adi,gc-lmt-overload-low-thresh */
99 uint8_t gc_low_power_thresh; /* adi,gc-low-power-thresh */
100 uint8_t gc_max_dig_gain; /* adi,gc-max-dig-gain */
101 uint8_t gc_use_rx_fir_out_for_dec_pwr_meas_enable; /* adi,gc-use-rx-fir-out-for-dec-pwr-meas-enable */
102 /* Gain MGC Control */
103 uint8_t mgc_dec_gain_step; /* adi,mgc-dec-gain-step */
104 uint8_t mgc_inc_gain_step; /* adi,mgc-inc-gain-step */
105 uint8_t mgc_rx1_ctrl_inp_enable; /* adi,mgc-rx1-ctrl-inp-enable */
106 uint8_t mgc_rx2_ctrl_inp_enable; /* adi,mgc-rx2-ctrl-inp-enable */
107 uint8_t mgc_split_table_ctrl_inp_gain_mode; /* adi,mgc-split-table-ctrl-inp-gain-mode */
108 /* Gain AGC Control */
109 uint8_t agc_adc_large_overload_exceed_counter; /* adi,agc-adc-large-overload-exceed-counter */
110 uint8_t agc_adc_large_overload_inc_steps; /* adi,agc-adc-large-overload-inc-steps - Name is misleading should be dec-steps*/
111 uint8_t agc_adc_lmt_small_overload_prevent_gain_inc_enable; /* adi,agc-adc-lmt-small-overload-prevent-gain-inc-enable */
112 uint8_t agc_adc_small_overload_exceed_counter; /* adi,agc-adc-small-overload-exceed-counter */
113 uint8_t agc_dig_gain_step_size; /* adi,agc-dig-gain-step-size */
114 uint8_t agc_dig_saturation_exceed_counter; /* adi,agc-dig-saturation-exceed-counter */
115 uint32_t agc_gain_update_interval_us; /* adi,agc-gain-update-interval-us */
116 uint8_t agc_immed_gain_change_if_large_adc_overload_enable; /* adi,agc-immed-gain-change-if-large-adc-overload-enable */
117 uint8_t agc_immed_gain_change_if_large_lmt_overload_enable; /* adi,agc-immed-gain-change-if-large-lmt-overload-enable */
118 uint8_t agc_inner_thresh_high; /* adi,agc-inner-thresh-high */
119 uint8_t agc_inner_thresh_high_dec_steps; /* adi,agc-inner-thresh-high-dec-steps */
120 uint8_t agc_inner_thresh_low; /* adi,agc-inner-thresh-low */
121 uint8_t agc_inner_thresh_low_inc_steps; /* adi,agc-inner-thresh-low-inc-steps */
122 uint8_t agc_lmt_overload_large_exceed_counter; /* adi,agc-lmt-overload-large-exceed-counter */
123 uint8_t agc_lmt_overload_large_inc_steps; /* adi,agc-lmt-overload-large-inc-steps */
124 uint8_t agc_lmt_overload_small_exceed_counter; /* adi,agc-lmt-overload-small-exceed-counter */
125 uint8_t agc_outer_thresh_high; /* adi,agc-outer-thresh-high */
126 uint8_t agc_outer_thresh_high_dec_steps; /* adi,agc-outer-thresh-high-dec-steps */
127 uint8_t agc_outer_thresh_low; /* adi,agc-outer-thresh-low */
128 uint8_t agc_outer_thresh_low_inc_steps; /* adi,agc-outer-thresh-low-inc-steps */
129 uint32_t agc_attack_delay_extra_margin_us; /* adi,agc-attack-delay-extra-margin-us */
130 uint8_t agc_sync_for_gain_counter_enable; /* adi,agc-sync-for-gain-counter-enable */
131 /* Fast AGC */
132 uint32_t fagc_dec_pow_measuremnt_duration; /* adi,fagc-dec-pow-measurement-duration */
133 uint32_t fagc_state_wait_time_ns; /* adi,fagc-state-wait-time-ns */
134 /* Fast AGC - Low Power */
135 uint8_t fagc_allow_agc_gain_increase; /* adi,fagc-allow-agc-gain-increase-enable */
136 uint32_t fagc_lp_thresh_increment_time; /* adi,fagc-lp-thresh-increment-time */
137 uint32_t fagc_lp_thresh_increment_steps; /* adi,fagc-lp-thresh-increment-steps */
138 /* Fast AGC - Lock Level (Lock Level is set via slow AGC inner high threshold) */
139 uint8_t fagc_lock_level_lmt_gain_increase_en; /* adi,fagc-lock-level-lmt-gain-increase-enable */
140 uint32_t fagc_lock_level_gain_increase_upper_limit; /* adi,fagc-lock-level-gain-increase-upper-limit */
141 /* Fast AGC - Peak Detectors and Final Settling */
142 uint32_t fagc_lpf_final_settling_steps; /* adi,fagc-lpf-final-settling-steps */
143 uint32_t fagc_lmt_final_settling_steps; /* adi,fagc-lmt-final-settling-steps */
144 uint32_t fagc_final_overrange_count; /* adi,fagc-final-overrange-count */
145 /* Fast AGC - Final Power Test */
146 uint8_t fagc_gain_increase_after_gain_lock_en; /* adi,fagc-gain-increase-after-gain-lock-enable */
147 /* Fast AGC - Unlocking the Gain */
148 uint32_t fagc_gain_index_type_after_exit_rx_mode; /* adi,fagc-gain-index-type-after-exit-rx-mode */
149 uint8_t fagc_use_last_lock_level_for_set_gain_en; /* adi,fagc-use-last-lock-level-for-set-gain-enable */
150 uint8_t fagc_rst_gla_stronger_sig_thresh_exceeded_en; /* adi,fagc-rst-gla-stronger-sig-thresh-exceeded-enable */
151 uint32_t fagc_optimized_gain_offset; /* adi,fagc-optimized-gain-offset */
152 uint32_t fagc_rst_gla_stronger_sig_thresh_above_ll; /* adi,fagc-rst-gla-stronger-sig-thresh-above-ll */
153 uint8_t fagc_rst_gla_engergy_lost_sig_thresh_exceeded_en; /* adi,fagc-rst-gla-engergy-lost-sig-thresh-exceeded-enable */
154 uint8_t fagc_rst_gla_engergy_lost_goto_optim_gain_en; /* adi,fagc-rst-gla-engergy-lost-goto-optim-gain-enable */
155 uint32_t fagc_rst_gla_engergy_lost_sig_thresh_below_ll; /* adi,fagc-rst-gla-engergy-lost-sig-thresh-below-ll */
156 uint32_t fagc_energy_lost_stronger_sig_gain_lock_exit_cnt; /* adi,fagc-energy-lost-stronger-sig-gain-lock-exit-cnt */
157 uint8_t fagc_rst_gla_large_adc_overload_en; /* adi,fagc-rst-gla-large-adc-overload-enable */
158 uint8_t fagc_rst_gla_large_lmt_overload_en; /* adi,fagc-rst-gla-large-lmt-overload-enable */
159 uint8_t fagc_rst_gla_en_agc_pulled_high_en; /* adi,fagc-rst-gla-en-agc-pulled-high-enable */
160 uint32_t fagc_rst_gla_if_en_agc_pulled_high_mode; /* adi,fagc-rst-gla-if-en-agc-pulled-high-mode */
161 uint32_t fagc_power_measurement_duration_in_state5; /* adi,fagc-power-measurement-duration-in-state5 */
162 uint32_t fagc_large_overload_inc_steps; /* adi,fagc-adc-large-overload-inc-steps - Name is misleading should be dec-steps */
163 /* RSSI Control */
164 uint32_t rssi_delay; /* adi,rssi-delay */
165 uint32_t rssi_duration; /* adi,rssi-duration */
166 uint8_t rssi_restart_mode; /* adi,rssi-restart-mode */
167 uint8_t rssi_unit_is_rx_samples_enable; /* adi,rssi-unit-is-rx-samples-enable */
168 uint32_t rssi_wait; /* adi,rssi-wait */
169 /* Aux ADC Control */
170 uint32_t aux_adc_decimation; /* adi,aux-adc-decimation */
171 uint32_t aux_adc_rate; /* adi,aux-adc-rate */
172 /* AuxDAC Control */
173 uint8_t aux_dac_manual_mode_enable; /* adi,aux-dac-manual-mode-enable */
174 uint32_t aux_dac1_default_value_mV; /* adi,aux-dac1-default-value-mV */
175 uint8_t aux_dac1_active_in_rx_enable; /* adi,aux-dac1-active-in-rx-enable */
176 uint8_t aux_dac1_active_in_tx_enable; /* adi,aux-dac1-active-in-tx-enable */
177 uint8_t aux_dac1_active_in_alert_enable; /* adi,aux-dac1-active-in-alert-enable */
178 uint32_t aux_dac1_rx_delay_us; /* adi,aux-dac1-rx-delay-us */
179 uint32_t aux_dac1_tx_delay_us; /* adi,aux-dac1-tx-delay-us */
180 uint32_t aux_dac2_default_value_mV; /* adi,aux-dac2-default-value-mV */
181 uint8_t aux_dac2_active_in_rx_enable; /* adi,aux-dac2-active-in-rx-enable */
182 uint8_t aux_dac2_active_in_tx_enable; /* adi,aux-dac2-active-in-tx-enable */
183 uint8_t aux_dac2_active_in_alert_enable; /* adi,aux-dac2-active-in-alert-enable */
184 uint32_t aux_dac2_rx_delay_us; /* adi,aux-dac2-rx-delay-us */
185 uint32_t aux_dac2_tx_delay_us; /* adi,aux-dac2-tx-delay-us */
186 /* Temperature Sensor Control */
187 uint32_t temp_sense_decimation; /* adi,temp-sense-decimation */
188 uint16_t temp_sense_measurement_interval_ms; /* adi,temp-sense-measurement-interval-ms */
189 int8_t temp_sense_offset_signed; /* adi,temp-sense-offset-signed */
190 uint8_t temp_sense_periodic_measurement_enable; /* adi,temp-sense-periodic-measurement-enable */
191 /* Control Out Setup */
192 uint8_t ctrl_outs_enable_mask; /* adi,ctrl-outs-enable-mask */
193 uint8_t ctrl_outs_index; /* adi,ctrl-outs-index */
194 /* External LNA Control */
195 uint32_t elna_settling_delay_ns; /* adi,elna-settling-delay-ns */
196 uint32_t elna_gain_mdB; /* adi,elna-gain-mdB */
197 uint32_t elna_bypass_loss_mdB; /* adi,elna-bypass-loss-mdB */
198 uint8_t elna_rx1_gpo0_control_enable; /* adi,elna-rx1-gpo0-control-enable */
199 uint8_t elna_rx2_gpo1_control_enable; /* adi,elna-rx2-gpo1-control-enable */
200 uint8_t elna_gaintable_all_index_enable; /* adi,elna-gaintable-all-index-enable */
201 /* Digital Interface Control */
202 uint8_t digital_interface_tune_skip_mode; /* adi,digital-interface-tune-skip-mode */
203 uint8_t digital_interface_tune_fir_disable; /* adi,digital-interface-tune-fir-disable */
204 uint8_t pp_tx_swap_enable; /* adi,pp-tx-swap-enable */
205 uint8_t pp_rx_swap_enable; /* adi,pp-rx-swap-enable */
206 uint8_t tx_channel_swap_enable; /* adi,tx-channel-swap-enable */
207 uint8_t rx_channel_swap_enable; /* adi,rx-channel-swap-enable */
208 uint8_t rx_frame_pulse_mode_enable; /* adi,rx-frame-pulse-mode-enable */
209 uint8_t two_t_two_r_timing_enable; /* adi,2t2r-timing-enable */
210 uint8_t invert_data_bus_enable; /* adi,invert-data-bus-enable */
211 uint8_t invert_data_clk_enable; /* adi,invert-data-clk-enable */
212 uint8_t fdd_alt_word_order_enable; /* adi,fdd-alt-word-order-enable */
213 uint8_t invert_rx_frame_enable; /* adi,invert-rx-frame-enable */
214 uint8_t fdd_rx_rate_2tx_enable; /* adi,fdd-rx-rate-2tx-enable */
215 uint8_t swap_ports_enable; /* adi,swap-ports-enable */
216 uint8_t single_data_rate_enable; /* adi,single-data-rate-enable */
217 uint8_t lvds_mode_enable; /* adi,lvds-mode-enable */
218 uint8_t half_duplex_mode_enable; /* adi,half-duplex-mode-enable */
219 uint8_t single_port_mode_enable; /* adi,single-port-mode-enable */
220 uint8_t full_port_enable; /* adi,full-port-enable */
221 uint8_t full_duplex_swap_bits_enable; /* adi,full-duplex-swap-bits-enable */
222 uint32_t delay_rx_data; /* adi,delay-rx-data */
223 uint32_t rx_data_clock_delay; /* adi,rx-data-clock-delay */
224 uint32_t rx_data_delay; /* adi,rx-data-delay */
225 uint32_t tx_fb_clock_delay; /* adi,tx-fb-clock-delay */
226 uint32_t tx_data_delay; /* adi,tx-data-delay */
227 uint32_t lvds_bias_mV; /* adi,lvds-bias-mV */
228 uint8_t lvds_rx_onchip_termination_enable; /* adi,lvds-rx-onchip-termination-enable */
229 uint8_t rx1rx2_phase_inversion_en; /* adi,rx1-rx2-phase-inversion-enable */
230 uint8_t lvds_invert1_control; /* adi,lvds-invert1-control */
231 uint8_t lvds_invert2_control; /* adi,lvds-invert2-control */
232 /* GPO Control */
233 uint8_t gpo_manual_mode_enable; /* adi,gpo-manual-mode-enable */
234 uint32_t gpo_manual_mode_enable_mask; /* adi,gpo-manual-mode-enable-mask */
235 uint8_t gpo0_inactive_state_high_enable; /* adi,gpo0-inactive-state-high-enable */
236 uint8_t gpo1_inactive_state_high_enable; /* adi,gpo1-inactive-state-high-enable */
237 uint8_t gpo2_inactive_state_high_enable; /* adi,gpo2-inactive-state-high-enable */
238 uint8_t gpo3_inactive_state_high_enable; /* adi,gpo3-inactive-state-high-enable */
239 uint8_t gpo0_slave_rx_enable; /* adi,gpo0-slave-rx-enable */
240 uint8_t gpo0_slave_tx_enable; /* adi,gpo0-slave-tx-enable */
241 uint8_t gpo1_slave_rx_enable; /* adi,gpo1-slave-rx-enable */
242 uint8_t gpo1_slave_tx_enable; /* adi,gpo1-slave-tx-enable */
243 uint8_t gpo2_slave_rx_enable; /* adi,gpo2-slave-rx-enable */
244 uint8_t gpo2_slave_tx_enable; /* adi,gpo2-slave-tx-enable */
245 uint8_t gpo3_slave_rx_enable; /* adi,gpo3-slave-rx-enable */
246 uint8_t gpo3_slave_tx_enable; /* adi,gpo3-slave-tx-enable */
247 uint8_t gpo0_rx_delay_us; /* adi,gpo0-rx-delay-us */
248 uint8_t gpo0_tx_delay_us; /* adi,gpo0-tx-delay-us */
249 uint8_t gpo1_rx_delay_us; /* adi,gpo1-rx-delay-us */
250 uint8_t gpo1_tx_delay_us; /* adi,gpo1-tx-delay-us */
251 uint8_t gpo2_rx_delay_us; /* adi,gpo2-rx-delay-us */
252 uint8_t gpo2_tx_delay_us; /* adi,gpo2-tx-delay-us */
253 uint8_t gpo3_rx_delay_us; /* adi,gpo3-rx-delay-us */
254 uint8_t gpo3_tx_delay_us; /* adi,gpo3-tx-delay-us */
255 /* Tx Monitor Control */
256 uint32_t low_high_gain_threshold_mdB; /* adi,txmon-low-high-thresh */
257 uint32_t low_gain_dB; /* adi,txmon-low-gain */
258 uint32_t high_gain_dB; /* adi,txmon-high-gain */
259 uint8_t tx_mon_track_en; /* adi,txmon-dc-tracking-enable */
260 uint8_t one_shot_mode_en; /* adi,txmon-one-shot-mode-enable */
261 uint32_t tx_mon_delay; /* adi,txmon-delay */
262 uint32_t tx_mon_duration; /* adi,txmon-duration */
263 uint32_t tx1_mon_front_end_gain; /* adi,txmon-1-front-end-gain */
264 uint32_t tx2_mon_front_end_gain; /* adi,txmon-2-front-end-gain */
265 uint32_t tx1_mon_lo_cm; /* adi,txmon-1-lo-cm */
266 uint32_t tx2_mon_lo_cm; /* adi,txmon-2-lo-cm */
267 /* GPIO definitions */
268 struct no_os_gpio_init_param gpio_resetb; /* reset-gpios */
269 /* MCS Sync */
270 struct no_os_gpio_init_param gpio_sync; /* sync-gpios */
271 struct no_os_gpio_init_param gpio_cal_sw1; /* cal-sw1-gpios */
272 struct no_os_gpio_init_param gpio_cal_sw2; /* cal-sw2-gpios */
273
275
276 /* External LO clocks */
277 uint32_t (*ad9361_rfpll_ext_recalc_rate)(struct refclk_scale *clk_priv);
278 int32_t (*ad9361_rfpll_ext_round_rate)(struct refclk_scale *clk_priv,
279 uint32_t rate);
280 int32_t (*ad9361_rfpll_ext_set_rate)(struct refclk_scale *clk_priv,
281 uint32_t rate);
282#ifndef AXI_ADC_NOT_PRESENT
285#endif
287
288typedef struct {
289 uint32_t rx; /* 1, 2, 3(both) */
290 int32_t rx_gain; /* -12, -6, 0, 6 */
291 uint32_t rx_dec; /* 1, 2, 4 */
292 int16_t rx_coef[128];
294 uint32_t rx_path_clks[6];
295 uint32_t rx_bandwidth;
297
298typedef struct {
299 uint32_t tx; /* 1, 2, 3(both) */
300 int32_t tx_gain; /* -6, 0 */
301 uint32_t tx_int; /* 1, 2, 4 */
302 int16_t tx_coef[128];
304 uint32_t tx_path_clks[6];
305 uint32_t tx_bandwidth;
307
318
319#define ENABLE 1
320#define DISABLE 0
321
322#define RX1 0
323#define RX2 1
324
325#define TX1 0
326#define TX2 1
327
328#define A_BALANCED 0
329#define B_BALANCED 1
330#define C_BALANCED 2
331#define A_N 3
332#define A_P 4
333#define B_N 5
334#define B_P 6
335#define C_N 7
336#define C_P 8
337#define TX_MON1 9
338#define TX_MON2 10
339#define TX_MON1_2 11
340
341#define TXA 0
342#define TXB 1
343
344#define MODE_1x1 1
345#define MODE_2x2 2
346
347#define HIGHEST_OSR 0
348#define NOMINAL_OSR 1
349
350#define INT_LO 0
351#define EXT_LO 1
352
353#define ON 0
354#define OFF 1
355
356/* Initialize the AD9361 part. */
357int32_t ad9361_init(struct ad9361_rf_phy **ad9361_phy,
359/* Free the allocated resources. */
360int32_t ad9361_remove(struct ad9361_rf_phy *phy);
361/* Set the Enable State Machine (ENSM) mode. */
363 uint32_t mode);
364/* Get the Enable State Machine (ENSM) mode. */
366 uint32_t *mode);
367/* Set the receive RF gain for the selected channel. */
368int32_t ad9361_set_rx_rf_gain(struct ad9361_rf_phy *phy, uint8_t ch,
369 int32_t gain_db);
370/* Get current receive RF gain for the selected channel. */
371int32_t ad9361_get_rx_rf_gain(struct ad9361_rf_phy *phy, uint8_t ch,
372 int32_t *gain_db);
373/* Set the RX RF bandwidth. */
374int32_t ad9361_set_rx_rf_bandwidth(struct ad9361_rf_phy *phy,
375 uint32_t bandwidth_hz);
376/* Get the RX RF bandwidth. */
377int32_t ad9361_get_rx_rf_bandwidth(struct ad9361_rf_phy *phy,
378 uint32_t *bandwidth_hz);
379/* Set the RX sampling frequency. */
381 uint32_t sampling_freq_hz);
382/* Get current RX sampling frequency. */
384 uint32_t *sampling_freq_hz);
385/* Set the RX LO frequency. */
386int32_t ad9361_set_rx_lo_freq(struct ad9361_rf_phy *phy, uint64_t lo_freq_hz);
387/* Get current RX LO frequency. */
388int32_t ad9361_get_rx_lo_freq(struct ad9361_rf_phy *phy, uint64_t *lo_freq_hz);
389/* Switch between internal and external LO. */
390int32_t ad9361_set_rx_lo_int_ext(struct ad9361_rf_phy *phy, uint8_t int_ext);
391/* Get the RSSI for the selected channel. */
392int32_t ad9361_get_rx_rssi(struct ad9361_rf_phy *phy, uint8_t ch,
393 struct rf_rssi *rssi);
394/* Set the gain control mode for the selected channel. */
395int32_t ad9361_set_rx_gain_control_mode(struct ad9361_rf_phy *phy, uint8_t ch,
396 uint8_t gc_mode);
397/* Get the gain control mode for the selected channel. */
398int32_t ad9361_get_rx_gain_control_mode(struct ad9361_rf_phy *phy, uint8_t ch,
399 uint8_t *gc_mode);
400/* Set the RX FIR filter configuration. */
401int32_t ad9361_set_rx_fir_config(struct ad9361_rf_phy *phy,
402 AD9361_RXFIRConfig fir_cfg);
403/* Get the RX FIR filter configuration. */
404int32_t ad9361_get_rx_fir_config(struct ad9361_rf_phy *phy, uint8_t rx_ch,
405 AD9361_RXFIRConfig *fir_cfg);
406/* Enable/disable the RX FIR filter. */
407int32_t ad9361_set_rx_fir_en_dis(struct ad9361_rf_phy *phy, uint8_t en_dis);
408/* Get the status of the RX FIR filter. */
409int32_t ad9361_get_rx_fir_en_dis(struct ad9361_rf_phy *phy, uint8_t *en_dis);
410/* Enable/disable the RX RFDC Tracking. */
412 uint8_t en_dis);
413/* Get the status of the RX RFDC Tracking. */
415 uint8_t *en_dis);
416/* Enable/disable the RX BasebandDC Tracking. */
418 uint8_t en_dis);
419/* Get the status of the RX BasebandDC Tracking. */
421 uint8_t *en_dis);
422/* Enable/disable the RX Quadrature Tracking. */
424 uint8_t en_dis);
425/* Get the status of the RX Quadrature Tracking. */
427 uint8_t *en_dis);
428/* Set the RX RF input port. */
429int32_t ad9361_set_rx_rf_port_input(struct ad9361_rf_phy *phy, uint32_t mode);
430/* Get the selected RX RF input port. */
431int32_t ad9361_get_rx_rf_port_input(struct ad9361_rf_phy *phy, uint32_t *mode);
432/* Store RX fastlock profile. */
433int32_t ad9361_rx_fastlock_store(struct ad9361_rf_phy *phy, uint32_t profile);
434/* Recall RX fastlock profile. */
435int32_t ad9361_rx_fastlock_recall(struct ad9361_rf_phy *phy, uint32_t profile);
436/* Load RX fastlock profile. */
437int32_t ad9361_rx_fastlock_load(struct ad9361_rf_phy *phy, uint32_t profile,
438 uint8_t *values);
439/* Save RX fastlock profile. */
440int32_t ad9361_rx_fastlock_save(struct ad9361_rf_phy *phy, uint32_t profile,
441 uint8_t *values);
442/* Power down the RX Local Oscillator. */
443int32_t ad9361_rx_lo_powerdown(struct ad9361_rf_phy *phy, uint8_t option);
444/* Get the RX Local Oscillator power status. */
445int32_t ad9361_get_rx_lo_power(struct ad9361_rf_phy *phy, uint8_t *option);
446/* Set the transmit attenuation for the selected channel. */
447int32_t ad9361_set_tx_attenuation(struct ad9361_rf_phy *phy, uint8_t ch,
448 uint32_t attenuation_mdb);
449/* Get current transmit attenuation for the selected channel. */
450int32_t ad9361_get_tx_attenuation(struct ad9361_rf_phy *phy, uint8_t ch,
451 uint32_t *attenuation_mdb);
452/* Set the TX RF bandwidth. */
453int32_t ad9361_set_tx_rf_bandwidth(struct ad9361_rf_phy *phy,
454 uint32_t bandwidth_hz);
455/* Get the TX RF bandwidth. */
456int32_t ad9361_get_tx_rf_bandwidth(struct ad9361_rf_phy *phy,
457 uint32_t *bandwidth_hz);
458/* Set the TX sampling frequency. */
460 uint32_t sampling_freq_hz);
461/* Get current TX sampling frequency. */
463 uint32_t *sampling_freq_hz);
464/* Set the TX LO frequency. */
465int32_t ad9361_set_tx_lo_freq(struct ad9361_rf_phy *phy, uint64_t lo_freq_hz);
466/* Get current TX LO frequency. */
467int32_t ad9361_get_tx_lo_freq(struct ad9361_rf_phy *phy, uint64_t *lo_freq_hz);
468/* Switch between internal and external LO. */
469int32_t ad9361_set_tx_lo_int_ext(struct ad9361_rf_phy *phy, uint8_t int_ext);
470/* Set the TX FIR filter configuration. */
471int32_t ad9361_set_tx_fir_config(struct ad9361_rf_phy *phy,
472 AD9361_TXFIRConfig fir_cfg);
473/* Get the TX FIR filter configuration. */
474int32_t ad9361_get_tx_fir_config(struct ad9361_rf_phy *phy, uint8_t tx_ch,
475 AD9361_TXFIRConfig *fir_cfg);
476/* Enable/disable the TX FIR filter. */
477int32_t ad9361_set_tx_fir_en_dis(struct ad9361_rf_phy *phy, uint8_t en_dis);
478/* Get the status of the TX FIR filter. */
479int32_t ad9361_get_tx_fir_en_dis(struct ad9361_rf_phy *phy, uint8_t *en_dis);
480/* Get the TX RSSI for the selected channel. */
481int32_t ad9361_get_tx_rssi(struct ad9361_rf_phy *phy, uint8_t ch,
482 uint32_t *rssi_db_x_1000);
483/* Set the TX RF output port. */
484int32_t ad9361_set_tx_rf_port_output(struct ad9361_rf_phy *phy, uint32_t mode);
485/* Get the selected TX RF output port. */
487 uint32_t *mode);
488/* Enable/disable the auto calibration. */
490 uint8_t en_dis);
491/* Get the status of the auto calibration flag. */
493 uint8_t *en_dis);
494/* Store TX fastlock profile. */
495int32_t ad9361_tx_fastlock_store(struct ad9361_rf_phy *phy, uint32_t profile);
496/* Recall TX fastlock profile. */
497int32_t ad9361_tx_fastlock_recall(struct ad9361_rf_phy *phy, uint32_t profile);
498/* Load TX fastlock profile. */
499int32_t ad9361_tx_fastlock_load(struct ad9361_rf_phy *phy, uint32_t profile,
500 uint8_t *values);
501/* Save TX fastlock profile. */
502int32_t ad9361_tx_fastlock_save(struct ad9361_rf_phy *phy, uint32_t profile,
503 uint8_t *values);
504/* Power down the TX Local Oscillator. */
505int32_t ad9361_tx_lo_powerdown(struct ad9361_rf_phy *phy, uint8_t option);
506/* Get the TX Local Oscillator power status. */
507int32_t ad9361_get_tx_lo_power(struct ad9361_rf_phy *phy, uint8_t *option);
508/* Set the RX and TX path rates. */
509int32_t ad9361_set_trx_path_clks(struct ad9361_rf_phy *phy,
510 uint32_t *rx_path_clks, uint32_t *tx_path_clks);
511/* Get the RX and TX path rates. */
512int32_t ad9361_get_trx_path_clks(struct ad9361_rf_phy *phy,
513 uint32_t *rx_path_clks, uint32_t *tx_path_clks);
514/* Set the number of channels mode. */
515int32_t ad9361_set_no_ch_mode(struct ad9361_rf_phy *phy, uint8_t no_ch_mode);
516/* Do multi chip synchronization. */
517int32_t ad9361_do_mcs(struct ad9361_rf_phy *phy_master,
518 struct ad9361_rf_phy *phy_slave);
519/* Enable/disable the TRX FIR filters. */
520int32_t ad9361_set_trx_fir_en_dis(struct ad9361_rf_phy *phy, uint8_t en_dis);
521/* Set the OSR rate governor. */
522int32_t ad9361_set_trx_rate_gov(struct ad9361_rf_phy *phy, uint32_t rate_gov);
523/* Get the OSR rate governor. */
524int32_t ad9361_get_trx_rate_gov(struct ad9361_rf_phy *phy, uint32_t *rate_gov);
525/* Perform the selected calibration. */
526int32_t ad9361_do_calib(struct ad9361_rf_phy *phy, uint32_t cal, int32_t arg);
527/* Load and enable TRX FIR filters configurations. */
528int32_t ad9361_trx_load_enable_fir(struct ad9361_rf_phy *phy,
529 AD9361_RXFIRConfig rx_fir_cfg,
530 AD9361_TXFIRConfig tx_fir_cfg);
531/* Do DCXO coarse tuning. */
532int32_t ad9361_do_dcxo_tune_coarse(struct ad9361_rf_phy *phy,
533 uint32_t coarse);
534/* Do DCXO fine tuning. */
535int32_t ad9361_do_dcxo_tune_fine(struct ad9361_rf_phy *phy,
536 uint32_t fine);
537/* Get the temperature. */
538int32_t ad9361_get_temperature(struct ad9361_rf_phy *phy,
539 int32_t *temp);
540#endif
struct ad7616_init_param init_param
Definition ad7616_sdz.c:107
struct ad9361_rf_phy * ad9361_phy
Definition main.c:503
dev_id
Definition ad9361.h:3322
int32_t ad9361_rx_fastlock_store(struct ad9361_rf_phy *phy, uint32_t profile)
Definition ad9361_api.c:1280
int32_t ad9361_do_calib(struct ad9361_rf_phy *phy, uint32_t cal, int32_t arg)
Definition ad9361_api.c:2119
int32_t ad9361_set_tx_lo_freq(struct ad9361_rf_phy *phy, uint64_t lo_freq_hz)
Definition ad9361_api.c:1511
int32_t ad9361_get_tx_attenuation(struct ad9361_rf_phy *phy, uint8_t ch, uint32_t *attenuation_mdb)
Definition ad9361_api.c:1401
int32_t ad9361_get_rx_rfdc_track_en_dis(struct ad9361_rf_phy *phy, uint8_t *en_dis)
Definition ad9361_api.c:1139
int32_t ad9361_get_tx_rf_port_output(struct ad9361_rf_phy *phy, uint32_t *mode)
Definition ad9361_api.c:1743
int32_t ad9361_set_rx_bbdc_track_en_dis(struct ad9361_rf_phy *phy, uint8_t en_dis)
Definition ad9361_api.c:1156
int32_t ad9361_get_rx_rf_gain(struct ad9361_rf_phy *phy, uint8_t ch, int32_t *gain_db)
Definition ad9361_api.c:763
int32_t ad9361_get_tx_sampling_freq(struct ad9361_rf_phy *phy, uint32_t *sampling_freq_hz)
Definition ad9361_api.c:1492
int32_t ad9361_remove(struct ad9361_rf_phy *phy)
Definition ad9361_api.c:590
int32_t ad9361_set_trx_rate_gov(struct ad9361_rf_phy *phy, uint32_t rate_gov)
Definition ad9361_api.c:2084
int32_t ad9361_rx_fastlock_load(struct ad9361_rf_phy *phy, uint32_t profile, uint8_t *values)
Definition ad9361_api.c:1312
int32_t ad9361_set_no_ch_mode(struct ad9361_rf_phy *phy, uint8_t no_ch_mode)
Definition ad9361_api.c:1926
int32_t ad9361_get_tx_rf_bandwidth(struct ad9361_rf_phy *phy, uint32_t *bandwidth_hz)
Definition ad9361_api.c:1449
int32_t ad9361_set_rx_rf_port_input(struct ad9361_rf_phy *phy, uint32_t mode)
Definition ad9361_api.c:1242
int32_t ad9361_get_tx_auto_cal_en_dis(struct ad9361_rf_phy *phy, uint8_t *en_dis)
Definition ad9361_api.c:1777
int32_t ad9361_set_tx_rf_bandwidth(struct ad9361_rf_phy *phy, uint32_t bandwidth_hz)
Definition ad9361_api.c:1427
int32_t ad9361_set_tx_sampling_freq(struct ad9361_rf_phy *phy, uint32_t sampling_freq_hz)
Definition ad9361_api.c:1467
int32_t ad9361_set_tx_fir_en_dis(struct ad9361_rf_phy *phy, uint8_t en_dis)
Definition ad9361_api.c:1640
int32_t ad9361_get_rx_quad_track_en_dis(struct ad9361_rf_phy *phy, uint8_t *en_dis)
Definition ad9361_api.c:1215
int32_t ad9361_set_tx_auto_cal_en_dis(struct ad9361_rf_phy *phy, uint8_t en_dis)
Definition ad9361_api.c:1760
int32_t ad9361_rx_fastlock_recall(struct ad9361_rf_phy *phy, uint32_t profile)
Definition ad9361_api.c:1295
int32_t ad9361_get_tx_lo_power(struct ad9361_rf_phy *phy, uint8_t *option)
Definition ad9361_api.c:1869
int32_t ad9361_get_rx_rf_bandwidth(struct ad9361_rf_phy *phy, uint32_t *bandwidth_hz)
Definition ad9361_api.c:809
int32_t ad9361_get_trx_rate_gov(struct ad9361_rf_phy *phy, uint32_t *rate_gov)
Definition ad9361_api.c:2100
int32_t ad9361_set_tx_fir_config(struct ad9361_rf_phy *phy, AD9361_TXFIRConfig fir_cfg)
Definition ad9361_api.c:1566
int32_t ad9361_set_rx_lo_int_ext(struct ad9361_rf_phy *phy, uint8_t int_ext)
Definition ad9361_api.c:906
int32_t ad9361_get_rx_gain_control_mode(struct ad9361_rf_phy *phy, uint8_t ch, uint8_t *gc_mode)
Definition ad9361_api.c:983
int32_t ad9361_get_tx_fir_en_dis(struct ad9361_rf_phy *phy, uint8_t *en_dis)
Definition ad9361_api.c:1663
int32_t ad9361_tx_lo_powerdown(struct ad9361_rf_phy *phy, uint8_t option)
Definition ad9361_api.c:1858
int32_t ad9361_get_trx_path_clks(struct ad9361_rf_phy *phy, uint32_t *rx_path_clks, uint32_t *tx_path_clks)
Definition ad9361_api.c:1908
int32_t ad9361_rx_lo_powerdown(struct ad9361_rf_phy *phy, uint8_t option)
Definition ad9361_api.c:1343
int32_t ad9361_do_dcxo_tune_coarse(struct ad9361_rf_phy *phy, uint32_t coarse)
Definition ad9361_api.c:2187
int32_t ad9361_do_mcs(struct ad9361_rf_phy *phy_master, struct ad9361_rf_phy *phy_slave)
Definition ad9361_api.c:2009
int32_t ad9361_do_dcxo_tune_fine(struct ad9361_rf_phy *phy, uint32_t fine)
Definition ad9361_api.c:2202
int32_t ad9361_get_rx_lo_freq(struct ad9361_rf_phy *phy, uint64_t *lo_freq_hz)
Definition ad9361_api.c:888
int32_t ad9361_tx_fastlock_load(struct ad9361_rf_phy *phy, uint32_t profile, uint8_t *values)
Definition ad9361_api.c:1827
int32_t ad9361_get_tx_fir_config(struct ad9361_rf_phy *phy, uint8_t tx_ch, AD9361_TXFIRConfig *fir_cfg)
Definition ad9361_api.c:1588
int32_t ad9361_tx_fastlock_store(struct ad9361_rf_phy *phy, uint32_t profile)
Definition ad9361_api.c:1795
int32_t ad9361_get_temperature(struct ad9361_rf_phy *phy, int32_t *temp)
Definition ad9361_api.c:2217
int32_t ad9361_set_rx_gain_control_mode(struct ad9361_rf_phy *phy, uint8_t ch, uint8_t gc_mode)
Definition ad9361_api.c:960
int32_t ad9361_tx_fastlock_save(struct ad9361_rf_phy *phy, uint32_t profile, uint8_t *values)
Definition ad9361_api.c:1843
int32_t ad9361_set_rx_rf_gain(struct ad9361_rf_phy *phy, uint8_t ch, int32_t gain_db)
Definition ad9361_api.c:737
int32_t ad9361_set_en_state_machine_mode(struct ad9361_rf_phy *phy, uint32_t mode)
Definition ad9361_api.c:626
int32_t ad9361_get_rx_lo_power(struct ad9361_rf_phy *phy, uint8_t *option)
Definition ad9361_api.c:1354
int32_t ad9361_rx_fastlock_save(struct ad9361_rf_phy *phy, uint32_t profile, uint8_t *values)
Definition ad9361_api.c:1328
int32_t ad9361_get_rx_rf_port_input(struct ad9361_rf_phy *phy, uint32_t *mode)
Definition ad9361_api.c:1262
int32_t ad9361_set_rx_fir_en_dis(struct ad9361_rf_phy *phy, uint8_t en_dis)
Definition ad9361_api.c:1078
int32_t ad9361_init(struct ad9361_rf_phy **ad9361_phy, AD9361_InitParam *init_param)
Definition ad9361_api.c:70
int32_t ad9361_set_rx_rfdc_track_en_dis(struct ad9361_rf_phy *phy, uint8_t en_dis)
Definition ad9361_api.c:1118
int32_t ad9361_set_rx_fir_config(struct ad9361_rf_phy *phy, AD9361_RXFIRConfig fir_cfg)
Definition ad9361_api.c:999
int32_t ad9361_get_rx_rssi(struct ad9361_rf_phy *phy, uint8_t ch, struct rf_rssi *rssi)
Definition ad9361_api.c:930
int32_t ad9361_get_tx_lo_freq(struct ad9361_rf_phy *phy, uint64_t *lo_freq_hz)
Definition ad9361_api.c:1528
int32_t ad9361_trx_load_enable_fir(struct ad9361_rf_phy *phy, AD9361_RXFIRConfig rx_fir_cfg, AD9361_TXFIRConfig tx_fir_cfg)
Definition ad9361_api.c:2133
int32_t ad9361_set_tx_lo_int_ext(struct ad9361_rf_phy *phy, uint8_t int_ext)
Definition ad9361_api.c:1546
int32_t ad9361_set_trx_path_clks(struct ad9361_rf_phy *phy, uint32_t *rx_path_clks, uint32_t *tx_path_clks)
Definition ad9361_api.c:1885
int32_t ad9361_get_rx_fir_config(struct ad9361_rf_phy *phy, uint8_t rx_ch, AD9361_RXFIRConfig *fir_cfg)
Definition ad9361_api.c:1021
int32_t ad9361_set_trx_fir_en_dis(struct ad9361_rf_phy *phy, uint8_t en_dis)
Definition ad9361_api.c:2055
int32_t ad9361_get_rx_fir_en_dis(struct ad9361_rf_phy *phy, uint8_t *en_dis)
Definition ad9361_api.c:1101
int32_t ad9361_get_tx_rssi(struct ad9361_rf_phy *phy, uint8_t ch, uint32_t *rssi_db_x_1000)
Definition ad9361_api.c:1681
int32_t ad9361_get_rx_sampling_freq(struct ad9361_rf_phy *phy, uint32_t *sampling_freq_hz)
Definition ad9361_api.c:852
int32_t ad9361_set_tx_rf_port_output(struct ad9361_rf_phy *phy, uint32_t mode)
Definition ad9361_api.c:1723
int32_t ad9361_get_rx_bbdc_track_en_dis(struct ad9361_rf_phy *phy, uint8_t *en_dis)
Definition ad9361_api.c:1177
int32_t ad9361_get_en_state_machine_mode(struct ad9361_rf_phy *phy, uint32_t *mode)
Definition ad9361_api.c:678
int32_t ad9361_set_tx_attenuation(struct ad9361_rf_phy *phy, uint8_t ch, uint32_t attenuation_mdb)
Definition ad9361_api.c:1375
int32_t ad9361_set_rx_quad_track_en_dis(struct ad9361_rf_phy *phy, uint8_t en_dis)
Definition ad9361_api.c:1194
int32_t ad9361_tx_fastlock_recall(struct ad9361_rf_phy *phy, uint32_t profile)
Definition ad9361_api.c:1810
int32_t ad9361_set_rx_sampling_freq(struct ad9361_rf_phy *phy, uint32_t sampling_freq_hz)
Definition ad9361_api.c:827
int32_t ad9361_set_rx_lo_freq(struct ad9361_rf_phy *phy, uint64_t lo_freq_hz)
Definition ad9361_api.c:871
ad9361_ensm_mode
Definition ad9361_api.h:308
@ ENSM_MODE_PINCTRL
Definition ad9361_api.h:315
@ ENSM_MODE_ALERT
Definition ad9361_api.h:311
@ ENSM_MODE_FDD
Definition ad9361_api.h:312
@ ENSM_MODE_RX
Definition ad9361_api.h:310
@ ENSM_MODE_PINCTRL_FDD_INDEP
Definition ad9361_api.h:316
@ ENSM_MODE_WAIT
Definition ad9361_api.h:313
@ ENSM_MODE_TX
Definition ad9361_api.h:309
@ ENSM_MODE_SLEEP
Definition ad9361_api.h:314
int32_t ad9361_set_rx_rf_bandwidth(struct ad9361_rf_phy *phy, uint32_t bandwidth_hz)
Definition ad9361_api.c:787
AD9361 Header file of Util driver.
CUSTOM_FILE profile
Definition no_os_platform.c:29
Header file of GPIO Interface.
Header file of SPI Interface.
Definition ad9361_api.h:40
uint8_t ensm_enable_txnrx_control_enable
Definition ad9361_api.h:69
uint8_t half_duplex_mode_enable
Definition ad9361_api.h:218
uint8_t gpo1_slave_rx_enable
Definition ad9361_api.h:241
uint32_t delay_rx_data
Definition ad9361_api.h:222
uint32_t fagc_dec_pow_measuremnt_duration
Definition ad9361_api.h:132
uint8_t ensm_enable_pin_pulse_mode_enable
Definition ad9361_api.h:68
uint32_t rf_tx_bandwidth_hz
Definition ad9361_api.h:78
struct axi_dac_init * tx_dac_init
Definition ad9361_api.h:284
uint8_t qec_tracking_slow_mode_enable
Definition ad9361_api.h:66
uint8_t agc_adc_large_overload_exceed_counter
Definition ad9361_api.h:109
uint8_t agc_adc_lmt_small_overload_prevent_gain_inc_enable
Definition ad9361_api.h:111
uint32_t(* ad9361_rfpll_ext_recalc_rate)(struct refclk_scale *clk_priv)
Definition ad9361_api.h:277
uint8_t digital_interface_tune_fir_disable
Definition ad9361_api.h:203
uint32_t rssi_delay
Definition ad9361_api.h:164
uint8_t lvds_mode_enable
Definition ad9361_api.h:217
struct no_os_spi_init_param spi_param
Definition ad9361_api.h:274
uint8_t fagc_lock_level_lmt_gain_increase_en
Definition ad9361_api.h:139
uint8_t fagc_rst_gla_engergy_lost_sig_thresh_exceeded_en
Definition ad9361_api.h:153
uint32_t fagc_rst_gla_if_en_agc_pulled_high_mode
Definition ad9361_api.h:160
uint32_t temp_sense_decimation
Definition ad9361_api.h:187
uint8_t lvds_rx_onchip_termination_enable
Definition ad9361_api.h:228
struct no_os_gpio_init_param gpio_cal_sw2
Definition ad9361_api.h:272
uint8_t fagc_allow_agc_gain_increase
Definition ad9361_api.h:135
uint8_t external_rx_lo_enable
Definition ad9361_api.h:57
uint32_t fagc_energy_lost_stronger_sig_gain_lock_exit_cnt
Definition ad9361_api.h:156
uint8_t agc_dig_gain_step_size
Definition ad9361_api.h:113
uint32_t fagc_rst_gla_stronger_sig_thresh_above_ll
Definition ad9361_api.h:152
uint8_t tx_mon_track_en
Definition ad9361_api.h:259
uint8_t gc_dig_gain_enable
Definition ad9361_api.h:96
uint8_t mgc_split_table_ctrl_inp_gain_mode
Definition ad9361_api.h:107
uint8_t xo_disable_use_ext_refclk_enable
Definition ad9361_api.h:86
uint8_t fagc_rst_gla_large_adc_overload_en
Definition ad9361_api.h:157
uint8_t gpo_manual_mode_enable
Definition ad9361_api.h:233
uint8_t elna_gaintable_all_index_enable
Definition ad9361_api.h:200
uint8_t two_t_two_r_timing_enable
Definition ad9361_api.h:209
uint8_t rssi_restart_mode
Definition ad9361_api.h:166
uint64_t tx_synthesizer_frequency_hz
Definition ad9361_api.h:72
uint8_t invert_data_clk_enable
Definition ad9361_api.h:211
uint8_t gpo3_slave_tx_enable
Definition ad9361_api.h:246
uint8_t agc_immed_gain_change_if_large_lmt_overload_enable
Definition ad9361_api.h:117
uint8_t gc_max_dig_gain
Definition ad9361_api.h:100
uint32_t agc_attack_delay_extra_margin_us
Definition ad9361_api.h:129
uint8_t split_gain_table_mode_enable
Definition ad9361_api.h:64
uint8_t gpo3_tx_delay_us
Definition ad9361_api.h:254
uint8_t fdd_rx_rate_2tx_enable
Definition ad9361_api.h:214
uint8_t gpo1_slave_tx_enable
Definition ad9361_api.h:242
uint8_t dc_offset_attenuation_high_range
Definition ad9361_api.h:60
uint8_t agc_outer_thresh_high
Definition ad9361_api.h:125
uint8_t gpo1_inactive_state_high_enable
Definition ad9361_api.h:236
uint8_t frequency_division_duplex_mode_enable
Definition ad9361_api.h:49
uint8_t mgc_inc_gain_step
Definition ad9361_api.h:104
uint8_t pp_rx_swap_enable
Definition ad9361_api.h:205
uint32_t low_gain_dB
Definition ad9361_api.h:257
uint8_t gc_use_rx_fir_out_for_dec_pwr_meas_enable
Definition ad9361_api.h:101
uint8_t gc_adc_large_overload_thresh
Definition ad9361_api.h:92
uint32_t dcxo_coarse_and_fine_tune[2]
Definition ad9361_api.h:87
uint8_t fagc_gain_increase_after_gain_lock_en
Definition ad9361_api.h:146
struct axi_adc_init * rx_adc_init
Definition ad9361_api.h:283
uint8_t agc_inner_thresh_high_dec_steps
Definition ad9361_api.h:119
uint32_t tx_mon_duration
Definition ad9361_api.h:262
uint8_t tx_fastlock_pincontrol_enable
Definition ad9361_api.h:56
uint8_t tx_lo_powerdown_managed_enable
Definition ad9361_api.h:73
uint8_t aux_dac2_active_in_alert_enable
Definition ad9361_api.h:183
uint32_t fagc_lock_level_gain_increase_upper_limit
Definition ad9361_api.h:140
uint8_t gpo2_inactive_state_high_enable
Definition ad9361_api.h:237
uint32_t aux_dac2_default_value_mV
Definition ad9361_api.h:180
uint8_t dc_offset_count_high_range
Definition ad9361_api.h:62
uint8_t agc_adc_small_overload_exceed_counter
Definition ad9361_api.h:112
uint32_t rx_path_clock_frequencies[6]
Definition ad9361_api.h:75
uint8_t gpo2_slave_tx_enable
Definition ad9361_api.h:244
uint8_t fagc_rst_gla_en_agc_pulled_high_en
Definition ad9361_api.h:159
uint32_t rx_rf_port_input_select
Definition ad9361_api.h:80
uint32_t aux_dac1_rx_delay_us
Definition ad9361_api.h:178
uint32_t fagc_lmt_final_settling_steps
Definition ad9361_api.h:143
uint8_t one_rx_one_tx_mode_use_rx_num
Definition ad9361_api.h:47
uint32_t rx_data_delay
Definition ad9361_api.h:224
uint8_t invert_data_bus_enable
Definition ad9361_api.h:210
uint8_t rx1rx2_phase_inversion_en
Definition ad9361_api.h:229
uint8_t agc_sync_for_gain_counter_enable
Definition ad9361_api.h:130
uint32_t fagc_power_measurement_duration_in_state5
Definition ad9361_api.h:161
enum dev_id dev_sel
Definition ad9361_api.h:42
uint8_t gc_adc_ovr_sample_size
Definition ad9361_api.h:93
uint32_t fagc_lpf_final_settling_steps
Definition ad9361_api.h:142
uint8_t gpo1_rx_delay_us
Definition ad9361_api.h:249
struct no_os_gpio_init_param gpio_sync
Definition ad9361_api.h:270
uint8_t mgc_dec_gain_step
Definition ad9361_api.h:103
uint32_t trx_synthesizer_target_fref_overwrite_hz
Definition ad9361_api.h:65
uint32_t rssi_wait
Definition ad9361_api.h:168
uint8_t lvds_invert2_control
Definition ad9361_api.h:231
uint8_t fagc_use_last_lock_level_for_set_gain_en
Definition ad9361_api.h:149
uint32_t fagc_rst_gla_engergy_lost_sig_thresh_below_ll
Definition ad9361_api.h:155
uint8_t rx_frame_pulse_mode_enable
Definition ad9361_api.h:208
uint8_t agc_inner_thresh_high
Definition ad9361_api.h:118
uint8_t agc_inner_thresh_low
Definition ad9361_api.h:120
uint8_t aux_dac1_active_in_alert_enable
Definition ad9361_api.h:177
uint8_t fagc_rst_gla_stronger_sig_thresh_exceeded_en
Definition ad9361_api.h:150
uint8_t tx_channel_swap_enable
Definition ad9361_api.h:206
uint32_t elna_bypass_loss_mdB
Definition ad9361_api.h:197
uint8_t gc_rx2_mode
Definition ad9361_api.h:91
uint8_t single_port_mode_enable
Definition ad9361_api.h:219
uint8_t ctrl_outs_index
Definition ad9361_api.h:193
uint8_t rx_fastlock_pincontrol_enable
Definition ad9361_api.h:55
uint8_t gpo1_tx_delay_us
Definition ad9361_api.h:250
uint8_t fdd_alt_word_order_enable
Definition ad9361_api.h:212
uint8_t gpo0_slave_tx_enable
Definition ad9361_api.h:240
uint8_t aux_dac1_active_in_rx_enable
Definition ad9361_api.h:175
uint8_t swap_ports_enable
Definition ad9361_api.h:215
uint32_t tx2_mon_front_end_gain
Definition ad9361_api.h:264
uint8_t elna_rx1_gpo0_control_enable
Definition ad9361_api.h:198
uint8_t rx_channel_swap_enable
Definition ad9361_api.h:207
uint8_t invert_rx_frame_enable
Definition ad9361_api.h:213
uint8_t fagc_rst_gla_engergy_lost_goto_optim_gain_en
Definition ad9361_api.h:154
uint8_t temp_sense_periodic_measurement_enable
Definition ad9361_api.h:190
uint32_t tx_fb_clock_delay
Definition ad9361_api.h:225
uint8_t agc_outer_thresh_low_inc_steps
Definition ad9361_api.h:128
uint32_t tx_rf_port_input_select
Definition ad9361_api.h:81
uint32_t aux_adc_rate
Definition ad9361_api.h:171
uint32_t tx1_mon_lo_cm
Definition ad9361_api.h:265
uint8_t pp_tx_swap_enable
Definition ad9361_api.h:204
uint8_t mgc_rx2_ctrl_inp_enable
Definition ad9361_api.h:106
uint32_t fagc_large_overload_inc_steps
Definition ad9361_api.h:162
uint8_t elna_rx2_gpo1_control_enable
Definition ad9361_api.h:199
uint32_t elna_gain_mdB
Definition ad9361_api.h:196
uint8_t gc_rx1_mode
Definition ad9361_api.h:90
uint8_t digital_interface_tune_skip_mode
Definition ad9361_api.h:202
uint8_t agc_dig_saturation_exceed_counter
Definition ad9361_api.h:114
uint8_t agc_immed_gain_change_if_large_adc_overload_enable
Definition ad9361_api.h:116
int32_t(* ad9361_rfpll_ext_set_rate)(struct refclk_scale *clk_priv, uint32_t rate)
Definition ad9361_api.h:280
uint32_t rx_fastlock_delay_ns
Definition ad9361_api.h:54
uint32_t aux_dac2_tx_delay_us
Definition ad9361_api.h:185
uint8_t agc_outer_thresh_low
Definition ad9361_api.h:127
uint32_t low_high_gain_threshold_mdB
Definition ad9361_api.h:256
uint8_t one_shot_mode_en
Definition ad9361_api.h:260
uint8_t dc_offset_count_low_range
Definition ad9361_api.h:63
uint8_t gpo3_slave_rx_enable
Definition ad9361_api.h:245
uint32_t rf_rx_bandwidth_hz
Definition ad9361_api.h:77
uint8_t gpo3_rx_delay_us
Definition ad9361_api.h:253
uint8_t dc_offset_tracking_update_event_mask
Definition ad9361_api.h:59
uint32_t fagc_gain_index_type_after_exit_rx_mode
Definition ad9361_api.h:148
uint8_t one_rx_one_tx_mode_use_tx_num
Definition ad9361_api.h:48
uint32_t fagc_optimized_gain_offset
Definition ad9361_api.h:151
uint16_t gc_lmt_overload_high_thresh
Definition ad9361_api.h:97
uint32_t tx_mon_delay
Definition ad9361_api.h:261
uint32_t tx2_mon_lo_cm
Definition ad9361_api.h:266
uint32_t fagc_state_wait_time_ns
Definition ad9361_api.h:133
uint32_t rssi_duration
Definition ad9361_api.h:165
uint32_t fagc_lp_thresh_increment_time
Definition ad9361_api.h:136
uint32_t clk_output_mode_select
Definition ad9361_api.h:88
uint32_t aux_dac2_rx_delay_us
Definition ad9361_api.h:184
uint32_t rx_data_clock_delay
Definition ad9361_api.h:223
uint32_t tx_data_delay
Definition ad9361_api.h:226
uint8_t aux_dac_manual_mode_enable
Definition ad9361_api.h:173
uint32_t tx_fastlock_delay_ns
Definition ad9361_api.h:53
uint32_t aux_adc_decimation
Definition ad9361_api.h:170
uint8_t gpo0_tx_delay_us
Definition ad9361_api.h:248
uint32_t reference_clk_rate
Definition ad9361_api.h:44
uint32_t aux_dac1_tx_delay_us
Definition ad9361_api.h:179
uint8_t rssi_unit_is_rx_samples_enable
Definition ad9361_api.h:167
uint8_t aux_dac2_active_in_rx_enable
Definition ad9361_api.h:181
int32_t(* ad9361_rfpll_ext_round_rate)(struct refclk_scale *clk_priv, uint32_t rate)
Definition ad9361_api.h:278
uint16_t temp_sense_measurement_interval_ms
Definition ad9361_api.h:188
uint32_t agc_gain_update_interval_us
Definition ad9361_api.h:115
int32_t tx_attenuation_mdB
Definition ad9361_api.h:83
uint8_t full_port_enable
Definition ad9361_api.h:220
uint8_t agc_inner_thresh_low_inc_steps
Definition ad9361_api.h:121
uint32_t lvds_bias_mV
Definition ad9361_api.h:227
uint64_t rx_synthesizer_frequency_hz
Definition ad9361_api.h:71
uint8_t fagc_rst_gla_large_lmt_overload_en
Definition ad9361_api.h:158
uint8_t gpo0_rx_delay_us
Definition ad9361_api.h:247
uint32_t high_gain_dB
Definition ad9361_api.h:258
uint8_t gc_adc_small_overload_thresh
Definition ad9361_api.h:94
uint16_t gc_dec_pow_measurement_duration
Definition ad9361_api.h:95
int8_t temp_sense_offset_signed
Definition ad9361_api.h:189
uint32_t aux_dac1_default_value_mV
Definition ad9361_api.h:174
uint8_t gpo2_tx_delay_us
Definition ad9361_api.h:252
uint32_t fagc_final_overrange_count
Definition ad9361_api.h:144
uint8_t gpo0_inactive_state_high_enable
Definition ad9361_api.h:235
uint8_t mgc_rx1_ctrl_inp_enable
Definition ad9361_api.h:105
uint8_t gpo2_rx_delay_us
Definition ad9361_api.h:251
uint8_t two_rx_two_tx_mode_enable
Definition ad9361_api.h:46
uint8_t lvds_invert1_control
Definition ad9361_api.h:230
uint8_t agc_outer_thresh_high_dec_steps
Definition ad9361_api.h:126
uint8_t agc_lmt_overload_large_exceed_counter
Definition ad9361_api.h:122
uint32_t tx1_mon_front_end_gain
Definition ad9361_api.h:263
uint32_t gpo_manual_mode_enable_mask
Definition ad9361_api.h:234
struct no_os_gpio_init_param gpio_cal_sw1
Definition ad9361_api.h:271
uint8_t agc_lmt_overload_large_inc_steps
Definition ad9361_api.h:123
uint8_t full_duplex_swap_bits_enable
Definition ad9361_api.h:221
uint8_t dc_offset_attenuation_low_range
Definition ad9361_api.h:61
uint8_t ctrl_outs_enable_mask
Definition ad9361_api.h:192
uint8_t external_tx_lo_enable
Definition ad9361_api.h:58
uint8_t tdd_use_dual_synth_mode_enable
Definition ad9361_api.h:51
uint8_t gpo2_slave_rx_enable
Definition ad9361_api.h:243
uint32_t tx_path_clock_frequencies[6]
Definition ad9361_api.h:76
uint8_t aux_dac1_active_in_tx_enable
Definition ad9361_api.h:176
uint8_t single_data_rate_enable
Definition ad9361_api.h:216
uint8_t update_tx_gain_in_alert_enable
Definition ad9361_api.h:84
uint16_t gc_lmt_overload_low_thresh
Definition ad9361_api.h:98
uint8_t aux_dac2_active_in_tx_enable
Definition ad9361_api.h:182
struct no_os_gpio_init_param gpio_resetb
Definition ad9361_api.h:268
uint32_t elna_settling_delay_ns
Definition ad9361_api.h:195
uint8_t agc_lmt_overload_small_exceed_counter
Definition ad9361_api.h:124
uint8_t gc_low_power_thresh
Definition ad9361_api.h:99
uint8_t agc_adc_large_overload_inc_steps
Definition ad9361_api.h:110
uint8_t tdd_skip_vco_cal_enable
Definition ad9361_api.h:52
uint8_t gpo3_inactive_state_high_enable
Definition ad9361_api.h:238
uint8_t frequency_division_duplex_independent_mode_enable
Definition ad9361_api.h:50
uint8_t gpo0_slave_rx_enable
Definition ad9361_api.h:239
uint32_t fagc_lp_thresh_increment_steps
Definition ad9361_api.h:137
Definition ad9361_api.h:288
uint8_t rx_coef_size
Definition ad9361_api.h:293
uint32_t rx_bandwidth
Definition ad9361_api.h:295
uint32_t rx_path_clks[6]
Definition ad9361_api.h:294
uint32_t rx_dec
Definition ad9361_api.h:291
int32_t rx_gain
Definition ad9361_api.h:290
int16_t rx_coef[128]
Definition ad9361_api.h:292
uint32_t rx
Definition ad9361_api.h:289
Definition ad9361_api.h:298
uint8_t tx_coef_size
Definition ad9361_api.h:303
int32_t tx_gain
Definition ad9361_api.h:300
int16_t tx_coef[128]
Definition ad9361_api.h:302
uint32_t tx_bandwidth
Definition ad9361_api.h:305
uint32_t tx_int
Definition ad9361_api.h:301
uint32_t tx
Definition ad9361_api.h:299
uint32_t tx_path_clks[6]
Definition ad9361_api.h:304
Definition ad9361.h:3328
AXI ADC Initialization Parameters structure.
Definition axi_adc_core.h:144
Definition axi_dac_core.h:68
Structure holding the parameters for GPIO initialization.
Definition no_os_gpio.h:67
Structure holding the parameters for SPI initialization.
Definition no_os_spi.h:128
Definition ad9361.h:3408
Definition ad9361.h:3223