no-OS
ad9361_api.h
Go to the documentation of this file.
1 /***************************************************************************/
33 #ifndef AD9361_API_H_
34 #define AD9361_API_H_
35 
36 /******************************************************************************/
37 /***************************** Include Files **********************************/
38 /******************************************************************************/
39 #include "ad9361_util.h"
40 #include "no_os_gpio.h"
41 #include "no_os_spi.h"
42 
43 /******************************************************************************/
44 /*************************** Types Declarations *******************************/
45 /******************************************************************************/
46 typedef struct {
47  /* Device selection */
48  enum dev_id dev_sel;
49  /* Reference Clock */
51  /* Base Configuration */
52  uint8_t two_rx_two_tx_mode_enable; /* adi,2rx-2tx-mode-enable */
53  uint8_t one_rx_one_tx_mode_use_rx_num; /* adi,1rx-1tx-mode-use-rx-num */
54  uint8_t one_rx_one_tx_mode_use_tx_num; /* adi,1rx-1tx-mode-use-tx-num */
55  uint8_t frequency_division_duplex_mode_enable; /* adi,frequency-division-duplex-mode-enable */
56  uint8_t frequency_division_duplex_independent_mode_enable; /* adi,frequency-division-duplex-independent-mode-enable */
57  uint8_t tdd_use_dual_synth_mode_enable; /* adi,tdd-use-dual-synth-mode-enable */
58  uint8_t tdd_skip_vco_cal_enable; /* adi,tdd-skip-vco-cal-enable */
59  uint32_t tx_fastlock_delay_ns; /* adi,tx-fastlock-delay-ns */
60  uint32_t rx_fastlock_delay_ns; /* adi,rx-fastlock-delay-ns */
61  uint8_t rx_fastlock_pincontrol_enable; /* adi,rx-fastlock-pincontrol-enable */
62  uint8_t tx_fastlock_pincontrol_enable; /* adi,tx-fastlock-pincontrol-enable */
63  uint8_t external_rx_lo_enable; /* adi,external-rx-lo-enable */
64  uint8_t external_tx_lo_enable; /* adi,external-tx-lo-enable */
65  uint8_t dc_offset_tracking_update_event_mask; /* adi,dc-offset-tracking-update-event-mask */
66  uint8_t dc_offset_attenuation_high_range; /* adi,dc-offset-attenuation-high-range */
67  uint8_t dc_offset_attenuation_low_range; /* adi,dc-offset-attenuation-low-range */
68  uint8_t dc_offset_count_high_range; /* adi,dc-offset-count-high-range */
69  uint8_t dc_offset_count_low_range; /* adi,dc-offset-count-low-range */
70  uint8_t split_gain_table_mode_enable; /* adi,split-gain-table-mode-enable */
71  uint32_t trx_synthesizer_target_fref_overwrite_hz; /* adi,trx-synthesizer-target-fref-overwrite-hz */
72  uint8_t qec_tracking_slow_mode_enable; /* adi,qec-tracking-slow-mode-enable */
73  /* ENSM Control */
74  uint8_t ensm_enable_pin_pulse_mode_enable; /* adi,ensm-enable-pin-pulse-mode-enable */
75  uint8_t ensm_enable_txnrx_control_enable; /* adi,ensm-enable-txnrx-control-enable */
76  /* LO Control */
77  uint64_t rx_synthesizer_frequency_hz; /* adi,rx-synthesizer-frequency-hz */
78  uint64_t tx_synthesizer_frequency_hz; /* adi,tx-synthesizer-frequency-hz */
79  uint8_t tx_lo_powerdown_managed_enable; /* adi,tx-lo-powerdown-managed-enable */
80  /* Rate & BW Control */
81  uint32_t rx_path_clock_frequencies[6]; /* adi,rx-path-clock-frequencies */
82  uint32_t tx_path_clock_frequencies[6]; /* adi,tx-path-clock-frequencies */
83  uint32_t rf_rx_bandwidth_hz; /* adi,rf-rx-bandwidth-hz */
84  uint32_t rf_tx_bandwidth_hz; /* adi,rf-tx-bandwidth-hz */
85  /* RF Port Control */
86  uint32_t rx_rf_port_input_select; /* adi,rx-rf-port-input-select */
87  uint32_t tx_rf_port_input_select; /* adi,tx-rf-port-input-select */
88  /* TX Attenuation Control */
89  int32_t tx_attenuation_mdB; /* adi,tx-attenuation-mdB */
90  uint8_t update_tx_gain_in_alert_enable; /* adi,update-tx-gain-in-alert-enable */
91  /* Reference Clock Control */
92  uint8_t xo_disable_use_ext_refclk_enable; /* adi,xo-disable-use-ext-refclk-enable */
93  uint32_t dcxo_coarse_and_fine_tune[2]; /* adi,dcxo-coarse-and-fine-tune */
94  uint32_t clk_output_mode_select; /* adi,clk-output-mode-select */
95  /* Gain Control */
96  uint8_t gc_rx1_mode; /* adi,gc-rx1-mode */
97  uint8_t gc_rx2_mode; /* adi,gc-rx2-mode */
98  uint8_t gc_adc_large_overload_thresh; /* adi,gc-adc-large-overload-thresh */
99  uint8_t gc_adc_ovr_sample_size; /* adi,gc-adc-ovr-sample-size */
100  uint8_t gc_adc_small_overload_thresh; /* adi,gc-adc-small-overload-thresh */
101  uint16_t gc_dec_pow_measurement_duration; /* adi,gc-dec-pow-measurement-duration */
102  uint8_t gc_dig_gain_enable; /* adi,gc-dig-gain-enable */
103  uint16_t gc_lmt_overload_high_thresh; /* adi,gc-lmt-overload-high-thresh */
104  uint16_t gc_lmt_overload_low_thresh; /* adi,gc-lmt-overload-low-thresh */
105  uint8_t gc_low_power_thresh; /* adi,gc-low-power-thresh */
106  uint8_t gc_max_dig_gain; /* adi,gc-max-dig-gain */
107  uint8_t gc_use_rx_fir_out_for_dec_pwr_meas_enable; /* adi,gc-use-rx-fir-out-for-dec-pwr-meas-enable */
108  /* Gain MGC Control */
109  uint8_t mgc_dec_gain_step; /* adi,mgc-dec-gain-step */
110  uint8_t mgc_inc_gain_step; /* adi,mgc-inc-gain-step */
111  uint8_t mgc_rx1_ctrl_inp_enable; /* adi,mgc-rx1-ctrl-inp-enable */
112  uint8_t mgc_rx2_ctrl_inp_enable; /* adi,mgc-rx2-ctrl-inp-enable */
113  uint8_t mgc_split_table_ctrl_inp_gain_mode; /* adi,mgc-split-table-ctrl-inp-gain-mode */
114  /* Gain AGC Control */
115  uint8_t agc_adc_large_overload_exceed_counter; /* adi,agc-adc-large-overload-exceed-counter */
116  uint8_t agc_adc_large_overload_inc_steps; /* adi,agc-adc-large-overload-inc-steps - Name is misleading should be dec-steps*/
117  uint8_t agc_adc_lmt_small_overload_prevent_gain_inc_enable; /* adi,agc-adc-lmt-small-overload-prevent-gain-inc-enable */
118  uint8_t agc_adc_small_overload_exceed_counter; /* adi,agc-adc-small-overload-exceed-counter */
119  uint8_t agc_dig_gain_step_size; /* adi,agc-dig-gain-step-size */
120  uint8_t agc_dig_saturation_exceed_counter; /* adi,agc-dig-saturation-exceed-counter */
121  uint32_t agc_gain_update_interval_us; /* adi,agc-gain-update-interval-us */
122  uint8_t agc_immed_gain_change_if_large_adc_overload_enable; /* adi,agc-immed-gain-change-if-large-adc-overload-enable */
123  uint8_t agc_immed_gain_change_if_large_lmt_overload_enable; /* adi,agc-immed-gain-change-if-large-lmt-overload-enable */
124  uint8_t agc_inner_thresh_high; /* adi,agc-inner-thresh-high */
125  uint8_t agc_inner_thresh_high_dec_steps; /* adi,agc-inner-thresh-high-dec-steps */
126  uint8_t agc_inner_thresh_low; /* adi,agc-inner-thresh-low */
127  uint8_t agc_inner_thresh_low_inc_steps; /* adi,agc-inner-thresh-low-inc-steps */
128  uint8_t agc_lmt_overload_large_exceed_counter; /* adi,agc-lmt-overload-large-exceed-counter */
129  uint8_t agc_lmt_overload_large_inc_steps; /* adi,agc-lmt-overload-large-inc-steps */
130  uint8_t agc_lmt_overload_small_exceed_counter; /* adi,agc-lmt-overload-small-exceed-counter */
131  uint8_t agc_outer_thresh_high; /* adi,agc-outer-thresh-high */
132  uint8_t agc_outer_thresh_high_dec_steps; /* adi,agc-outer-thresh-high-dec-steps */
133  uint8_t agc_outer_thresh_low; /* adi,agc-outer-thresh-low */
134  uint8_t agc_outer_thresh_low_inc_steps; /* adi,agc-outer-thresh-low-inc-steps */
135  uint32_t agc_attack_delay_extra_margin_us; /* adi,agc-attack-delay-extra-margin-us */
136  uint8_t agc_sync_for_gain_counter_enable; /* adi,agc-sync-for-gain-counter-enable */
137  /* Fast AGC */
138  uint32_t fagc_dec_pow_measuremnt_duration; /* adi,fagc-dec-pow-measurement-duration */
139  uint32_t fagc_state_wait_time_ns; /* adi,fagc-state-wait-time-ns */
140  /* Fast AGC - Low Power */
141  uint8_t fagc_allow_agc_gain_increase; /* adi,fagc-allow-agc-gain-increase-enable */
142  uint32_t fagc_lp_thresh_increment_time; /* adi,fagc-lp-thresh-increment-time */
143  uint32_t fagc_lp_thresh_increment_steps; /* adi,fagc-lp-thresh-increment-steps */
144  /* Fast AGC - Lock Level (Lock Level is set via slow AGC inner high threshold) */
145  uint8_t fagc_lock_level_lmt_gain_increase_en; /* adi,fagc-lock-level-lmt-gain-increase-enable */
146  uint32_t fagc_lock_level_gain_increase_upper_limit; /* adi,fagc-lock-level-gain-increase-upper-limit */
147  /* Fast AGC - Peak Detectors and Final Settling */
148  uint32_t fagc_lpf_final_settling_steps; /* adi,fagc-lpf-final-settling-steps */
149  uint32_t fagc_lmt_final_settling_steps; /* adi,fagc-lmt-final-settling-steps */
150  uint32_t fagc_final_overrange_count; /* adi,fagc-final-overrange-count */
151  /* Fast AGC - Final Power Test */
152  uint8_t fagc_gain_increase_after_gain_lock_en; /* adi,fagc-gain-increase-after-gain-lock-enable */
153  /* Fast AGC - Unlocking the Gain */
154  uint32_t fagc_gain_index_type_after_exit_rx_mode; /* adi,fagc-gain-index-type-after-exit-rx-mode */
155  uint8_t fagc_use_last_lock_level_for_set_gain_en; /* adi,fagc-use-last-lock-level-for-set-gain-enable */
156  uint8_t fagc_rst_gla_stronger_sig_thresh_exceeded_en; /* adi,fagc-rst-gla-stronger-sig-thresh-exceeded-enable */
157  uint32_t fagc_optimized_gain_offset; /* adi,fagc-optimized-gain-offset */
158  uint32_t fagc_rst_gla_stronger_sig_thresh_above_ll; /* adi,fagc-rst-gla-stronger-sig-thresh-above-ll */
159  uint8_t fagc_rst_gla_engergy_lost_sig_thresh_exceeded_en; /* adi,fagc-rst-gla-engergy-lost-sig-thresh-exceeded-enable */
160  uint8_t fagc_rst_gla_engergy_lost_goto_optim_gain_en; /* adi,fagc-rst-gla-engergy-lost-goto-optim-gain-enable */
161  uint32_t fagc_rst_gla_engergy_lost_sig_thresh_below_ll; /* adi,fagc-rst-gla-engergy-lost-sig-thresh-below-ll */
162  uint32_t fagc_energy_lost_stronger_sig_gain_lock_exit_cnt; /* adi,fagc-energy-lost-stronger-sig-gain-lock-exit-cnt */
163  uint8_t fagc_rst_gla_large_adc_overload_en; /* adi,fagc-rst-gla-large-adc-overload-enable */
164  uint8_t fagc_rst_gla_large_lmt_overload_en; /* adi,fagc-rst-gla-large-lmt-overload-enable */
165  uint8_t fagc_rst_gla_en_agc_pulled_high_en; /* adi,fagc-rst-gla-en-agc-pulled-high-enable */
166  uint32_t fagc_rst_gla_if_en_agc_pulled_high_mode; /* adi,fagc-rst-gla-if-en-agc-pulled-high-mode */
167  uint32_t fagc_power_measurement_duration_in_state5; /* adi,fagc-power-measurement-duration-in-state5 */
168  uint32_t fagc_large_overload_inc_steps; /* adi,fagc-adc-large-overload-inc-steps - Name is misleading should be dec-steps */
169  /* RSSI Control */
170  uint32_t rssi_delay; /* adi,rssi-delay */
171  uint32_t rssi_duration; /* adi,rssi-duration */
172  uint8_t rssi_restart_mode; /* adi,rssi-restart-mode */
173  uint8_t rssi_unit_is_rx_samples_enable; /* adi,rssi-unit-is-rx-samples-enable */
174  uint32_t rssi_wait; /* adi,rssi-wait */
175  /* Aux ADC Control */
176  uint32_t aux_adc_decimation; /* adi,aux-adc-decimation */
177  uint32_t aux_adc_rate; /* adi,aux-adc-rate */
178  /* AuxDAC Control */
179  uint8_t aux_dac_manual_mode_enable; /* adi,aux-dac-manual-mode-enable */
180  uint32_t aux_dac1_default_value_mV; /* adi,aux-dac1-default-value-mV */
181  uint8_t aux_dac1_active_in_rx_enable; /* adi,aux-dac1-active-in-rx-enable */
182  uint8_t aux_dac1_active_in_tx_enable; /* adi,aux-dac1-active-in-tx-enable */
183  uint8_t aux_dac1_active_in_alert_enable; /* adi,aux-dac1-active-in-alert-enable */
184  uint32_t aux_dac1_rx_delay_us; /* adi,aux-dac1-rx-delay-us */
185  uint32_t aux_dac1_tx_delay_us; /* adi,aux-dac1-tx-delay-us */
186  uint32_t aux_dac2_default_value_mV; /* adi,aux-dac2-default-value-mV */
187  uint8_t aux_dac2_active_in_rx_enable; /* adi,aux-dac2-active-in-rx-enable */
188  uint8_t aux_dac2_active_in_tx_enable; /* adi,aux-dac2-active-in-tx-enable */
189  uint8_t aux_dac2_active_in_alert_enable; /* adi,aux-dac2-active-in-alert-enable */
190  uint32_t aux_dac2_rx_delay_us; /* adi,aux-dac2-rx-delay-us */
191  uint32_t aux_dac2_tx_delay_us; /* adi,aux-dac2-tx-delay-us */
192  /* Temperature Sensor Control */
193  uint32_t temp_sense_decimation; /* adi,temp-sense-decimation */
194  uint16_t temp_sense_measurement_interval_ms; /* adi,temp-sense-measurement-interval-ms */
195  int8_t temp_sense_offset_signed; /* adi,temp-sense-offset-signed */
196  uint8_t temp_sense_periodic_measurement_enable; /* adi,temp-sense-periodic-measurement-enable */
197  /* Control Out Setup */
198  uint8_t ctrl_outs_enable_mask; /* adi,ctrl-outs-enable-mask */
199  uint8_t ctrl_outs_index; /* adi,ctrl-outs-index */
200  /* External LNA Control */
201  uint32_t elna_settling_delay_ns; /* adi,elna-settling-delay-ns */
202  uint32_t elna_gain_mdB; /* adi,elna-gain-mdB */
203  uint32_t elna_bypass_loss_mdB; /* adi,elna-bypass-loss-mdB */
204  uint8_t elna_rx1_gpo0_control_enable; /* adi,elna-rx1-gpo0-control-enable */
205  uint8_t elna_rx2_gpo1_control_enable; /* adi,elna-rx2-gpo1-control-enable */
206  uint8_t elna_gaintable_all_index_enable; /* adi,elna-gaintable-all-index-enable */
207  /* Digital Interface Control */
208  uint8_t digital_interface_tune_skip_mode; /* adi,digital-interface-tune-skip-mode */
209  uint8_t digital_interface_tune_fir_disable; /* adi,digital-interface-tune-fir-disable */
210  uint8_t pp_tx_swap_enable; /* adi,pp-tx-swap-enable */
211  uint8_t pp_rx_swap_enable; /* adi,pp-rx-swap-enable */
212  uint8_t tx_channel_swap_enable; /* adi,tx-channel-swap-enable */
213  uint8_t rx_channel_swap_enable; /* adi,rx-channel-swap-enable */
214  uint8_t rx_frame_pulse_mode_enable; /* adi,rx-frame-pulse-mode-enable */
215  uint8_t two_t_two_r_timing_enable; /* adi,2t2r-timing-enable */
216  uint8_t invert_data_bus_enable; /* adi,invert-data-bus-enable */
217  uint8_t invert_data_clk_enable; /* adi,invert-data-clk-enable */
218  uint8_t fdd_alt_word_order_enable; /* adi,fdd-alt-word-order-enable */
219  uint8_t invert_rx_frame_enable; /* adi,invert-rx-frame-enable */
220  uint8_t fdd_rx_rate_2tx_enable; /* adi,fdd-rx-rate-2tx-enable */
221  uint8_t swap_ports_enable; /* adi,swap-ports-enable */
222  uint8_t single_data_rate_enable; /* adi,single-data-rate-enable */
223  uint8_t lvds_mode_enable; /* adi,lvds-mode-enable */
224  uint8_t half_duplex_mode_enable; /* adi,half-duplex-mode-enable */
225  uint8_t single_port_mode_enable; /* adi,single-port-mode-enable */
226  uint8_t full_port_enable; /* adi,full-port-enable */
227  uint8_t full_duplex_swap_bits_enable; /* adi,full-duplex-swap-bits-enable */
228  uint32_t delay_rx_data; /* adi,delay-rx-data */
229  uint32_t rx_data_clock_delay; /* adi,rx-data-clock-delay */
230  uint32_t rx_data_delay; /* adi,rx-data-delay */
231  uint32_t tx_fb_clock_delay; /* adi,tx-fb-clock-delay */
232  uint32_t tx_data_delay; /* adi,tx-data-delay */
233  uint32_t lvds_bias_mV; /* adi,lvds-bias-mV */
234  uint8_t lvds_rx_onchip_termination_enable; /* adi,lvds-rx-onchip-termination-enable */
235  uint8_t rx1rx2_phase_inversion_en; /* adi,rx1-rx2-phase-inversion-enable */
236  uint8_t lvds_invert1_control; /* adi,lvds-invert1-control */
237  uint8_t lvds_invert2_control; /* adi,lvds-invert2-control */
238  /* GPO Control */
239  uint8_t gpo_manual_mode_enable; /* adi,gpo-manual-mode-enable */
240  uint32_t gpo_manual_mode_enable_mask; /* adi,gpo-manual-mode-enable-mask */
241  uint8_t gpo0_inactive_state_high_enable; /* adi,gpo0-inactive-state-high-enable */
242  uint8_t gpo1_inactive_state_high_enable; /* adi,gpo1-inactive-state-high-enable */
243  uint8_t gpo2_inactive_state_high_enable; /* adi,gpo2-inactive-state-high-enable */
244  uint8_t gpo3_inactive_state_high_enable; /* adi,gpo3-inactive-state-high-enable */
245  uint8_t gpo0_slave_rx_enable; /* adi,gpo0-slave-rx-enable */
246  uint8_t gpo0_slave_tx_enable; /* adi,gpo0-slave-tx-enable */
247  uint8_t gpo1_slave_rx_enable; /* adi,gpo1-slave-rx-enable */
248  uint8_t gpo1_slave_tx_enable; /* adi,gpo1-slave-tx-enable */
249  uint8_t gpo2_slave_rx_enable; /* adi,gpo2-slave-rx-enable */
250  uint8_t gpo2_slave_tx_enable; /* adi,gpo2-slave-tx-enable */
251  uint8_t gpo3_slave_rx_enable; /* adi,gpo3-slave-rx-enable */
252  uint8_t gpo3_slave_tx_enable; /* adi,gpo3-slave-tx-enable */
253  uint8_t gpo0_rx_delay_us; /* adi,gpo0-rx-delay-us */
254  uint8_t gpo0_tx_delay_us; /* adi,gpo0-tx-delay-us */
255  uint8_t gpo1_rx_delay_us; /* adi,gpo1-rx-delay-us */
256  uint8_t gpo1_tx_delay_us; /* adi,gpo1-tx-delay-us */
257  uint8_t gpo2_rx_delay_us; /* adi,gpo2-rx-delay-us */
258  uint8_t gpo2_tx_delay_us; /* adi,gpo2-tx-delay-us */
259  uint8_t gpo3_rx_delay_us; /* adi,gpo3-rx-delay-us */
260  uint8_t gpo3_tx_delay_us; /* adi,gpo3-tx-delay-us */
261  /* Tx Monitor Control */
262  uint32_t low_high_gain_threshold_mdB; /* adi,txmon-low-high-thresh */
263  uint32_t low_gain_dB; /* adi,txmon-low-gain */
264  uint32_t high_gain_dB; /* adi,txmon-high-gain */
265  uint8_t tx_mon_track_en; /* adi,txmon-dc-tracking-enable */
266  uint8_t one_shot_mode_en; /* adi,txmon-one-shot-mode-enable */
267  uint32_t tx_mon_delay; /* adi,txmon-delay */
268  uint32_t tx_mon_duration; /* adi,txmon-duration */
269  uint32_t tx1_mon_front_end_gain; /* adi,txmon-1-front-end-gain */
270  uint32_t tx2_mon_front_end_gain; /* adi,txmon-2-front-end-gain */
271  uint32_t tx1_mon_lo_cm; /* adi,txmon-1-lo-cm */
272  uint32_t tx2_mon_lo_cm; /* adi,txmon-2-lo-cm */
273  /* GPIO definitions */
274  struct no_os_gpio_init_param gpio_resetb; /* reset-gpios */
275  /* MCS Sync */
276  struct no_os_gpio_init_param gpio_sync; /* sync-gpios */
277  struct no_os_gpio_init_param gpio_cal_sw1; /* cal-sw1-gpios */
278  struct no_os_gpio_init_param gpio_cal_sw2; /* cal-sw2-gpios */
279 
280  struct no_os_spi_init_param spi_param;
281 
282  /* External LO clocks */
283  uint32_t (*ad9361_rfpll_ext_recalc_rate)(struct refclk_scale *clk_priv);
284  int32_t (*ad9361_rfpll_ext_round_rate)(struct refclk_scale *clk_priv,
285  uint32_t rate);
286  int32_t (*ad9361_rfpll_ext_set_rate)(struct refclk_scale *clk_priv,
287  uint32_t rate);
288 #ifndef AXI_ADC_NOT_PRESENT
291 #endif
293 
294 typedef struct {
295  uint32_t rx; /* 1, 2, 3(both) */
296  int32_t rx_gain; /* -12, -6, 0, 6 */
297  uint32_t rx_dec; /* 1, 2, 4 */
298  int16_t rx_coef[128];
299  uint8_t rx_coef_size;
300  uint32_t rx_path_clks[6];
301  uint32_t rx_bandwidth;
303 
304 typedef struct {
305  uint32_t tx; /* 1, 2, 3(both) */
306  int32_t tx_gain; /* -6, 0 */
307  uint32_t tx_int; /* 1, 2, 4 */
308  int16_t tx_coef[128];
309  uint8_t tx_coef_size;
310  uint32_t tx_path_clks[6];
311  uint32_t tx_bandwidth;
313 
323 };
324 
325 #define ENABLE 1
326 #define DISABLE 0
327 
328 #define RX1 0
329 #define RX2 1
330 
331 #define TX1 0
332 #define TX2 1
333 
334 #define A_BALANCED 0
335 #define B_BALANCED 1
336 #define C_BALANCED 2
337 #define A_N 3
338 #define A_P 4
339 #define B_N 5
340 #define B_P 6
341 #define C_N 7
342 #define C_P 8
343 #define TX_MON1 9
344 #define TX_MON2 10
345 #define TX_MON1_2 11
346 
347 #define TXA 0
348 #define TXB 1
349 
350 #define MODE_1x1 1
351 #define MODE_2x2 2
352 
353 #define HIGHEST_OSR 0
354 #define NOMINAL_OSR 1
355 
356 #define INT_LO 0
357 #define EXT_LO 1
358 
359 #define ON 0
360 #define OFF 1
361 
362 /******************************************************************************/
363 /************************ Functions Declarations ******************************/
364 /******************************************************************************/
365 /* Initialize the AD9361 part. */
366 int32_t ad9361_init (struct ad9361_rf_phy **ad9361_phy,
368 /* Free the allocated resources. */
369 int32_t ad9361_remove(struct ad9361_rf_phy *phy);
370 /* Set the Enable State Machine (ENSM) mode. */
372  uint32_t mode);
373 /* Get the Enable State Machine (ENSM) mode. */
375  uint32_t *mode);
376 /* Set the receive RF gain for the selected channel. */
377 int32_t ad9361_set_rx_rf_gain (struct ad9361_rf_phy *phy, uint8_t ch,
378  int32_t gain_db);
379 /* Get current receive RF gain for the selected channel. */
380 int32_t ad9361_get_rx_rf_gain (struct ad9361_rf_phy *phy, uint8_t ch,
381  int32_t *gain_db);
382 /* Set the RX RF bandwidth. */
383 int32_t ad9361_set_rx_rf_bandwidth (struct ad9361_rf_phy *phy,
384  uint32_t bandwidth_hz);
385 /* Get the RX RF bandwidth. */
386 int32_t ad9361_get_rx_rf_bandwidth (struct ad9361_rf_phy *phy,
387  uint32_t *bandwidth_hz);
388 /* Set the RX sampling frequency. */
389 int32_t ad9361_set_rx_sampling_freq (struct ad9361_rf_phy *phy,
390  uint32_t sampling_freq_hz);
391 /* Get current RX sampling frequency. */
392 int32_t ad9361_get_rx_sampling_freq (struct ad9361_rf_phy *phy,
393  uint32_t *sampling_freq_hz);
394 /* Set the RX LO frequency. */
395 int32_t ad9361_set_rx_lo_freq (struct ad9361_rf_phy *phy, uint64_t lo_freq_hz);
396 /* Get current RX LO frequency. */
397 int32_t ad9361_get_rx_lo_freq (struct ad9361_rf_phy *phy, uint64_t *lo_freq_hz);
398 /* Switch between internal and external LO. */
399 int32_t ad9361_set_rx_lo_int_ext(struct ad9361_rf_phy *phy, uint8_t int_ext);
400 /* Get the RSSI for the selected channel. */
401 int32_t ad9361_get_rx_rssi (struct ad9361_rf_phy *phy, uint8_t ch,
402  struct rf_rssi *rssi);
403 /* Set the gain control mode for the selected channel. */
404 int32_t ad9361_set_rx_gain_control_mode (struct ad9361_rf_phy *phy, uint8_t ch,
405  uint8_t gc_mode);
406 /* Get the gain control mode for the selected channel. */
407 int32_t ad9361_get_rx_gain_control_mode (struct ad9361_rf_phy *phy, uint8_t ch,
408  uint8_t *gc_mode);
409 /* Set the RX FIR filter configuration. */
410 int32_t ad9361_set_rx_fir_config (struct ad9361_rf_phy *phy,
411  AD9361_RXFIRConfig fir_cfg);
412 /* Get the RX FIR filter configuration. */
413 int32_t ad9361_get_rx_fir_config(struct ad9361_rf_phy *phy, uint8_t rx_ch,
414  AD9361_RXFIRConfig *fir_cfg);
415 /* Enable/disable the RX FIR filter. */
416 int32_t ad9361_set_rx_fir_en_dis (struct ad9361_rf_phy *phy, uint8_t en_dis);
417 /* Get the status of the RX FIR filter. */
418 int32_t ad9361_get_rx_fir_en_dis (struct ad9361_rf_phy *phy, uint8_t *en_dis);
419 /* Enable/disable the RX RFDC Tracking. */
421  uint8_t en_dis);
422 /* Get the status of the RX RFDC Tracking. */
424  uint8_t *en_dis);
425 /* Enable/disable the RX BasebandDC Tracking. */
427  uint8_t en_dis);
428 /* Get the status of the RX BasebandDC Tracking. */
430  uint8_t *en_dis);
431 /* Enable/disable the RX Quadrature Tracking. */
433  uint8_t en_dis);
434 /* Get the status of the RX Quadrature Tracking. */
436  uint8_t *en_dis);
437 /* Set the RX RF input port. */
438 int32_t ad9361_set_rx_rf_port_input (struct ad9361_rf_phy *phy, uint32_t mode);
439 /* Get the selected RX RF input port. */
440 int32_t ad9361_get_rx_rf_port_input (struct ad9361_rf_phy *phy, uint32_t *mode);
441 /* Store RX fastlock profile. */
442 int32_t ad9361_rx_fastlock_store(struct ad9361_rf_phy *phy, uint32_t profile);
443 /* Recall RX fastlock profile. */
444 int32_t ad9361_rx_fastlock_recall(struct ad9361_rf_phy *phy, uint32_t profile);
445 /* Load RX fastlock profile. */
446 int32_t ad9361_rx_fastlock_load(struct ad9361_rf_phy *phy, uint32_t profile,
447  uint8_t *values);
448 /* Save RX fastlock profile. */
449 int32_t ad9361_rx_fastlock_save(struct ad9361_rf_phy *phy, uint32_t profile,
450  uint8_t *values);
451 /* Power down the RX Local Oscillator. */
452 int32_t ad9361_rx_lo_powerdown(struct ad9361_rf_phy *phy, uint8_t option);
453 /* Get the RX Local Oscillator power status. */
454 int32_t ad9361_get_rx_lo_power(struct ad9361_rf_phy *phy, uint8_t *option);
455 /* Set the transmit attenuation for the selected channel. */
456 int32_t ad9361_set_tx_attenuation (struct ad9361_rf_phy *phy, uint8_t ch,
457  uint32_t attenuation_mdb);
458 /* Get current transmit attenuation for the selected channel. */
459 int32_t ad9361_get_tx_attenuation (struct ad9361_rf_phy *phy, uint8_t ch,
460  uint32_t *attenuation_mdb);
461 /* Set the TX RF bandwidth. */
462 int32_t ad9361_set_tx_rf_bandwidth (struct ad9361_rf_phy *phy,
463  uint32_t bandwidth_hz);
464 /* Get the TX RF bandwidth. */
465 int32_t ad9361_get_tx_rf_bandwidth (struct ad9361_rf_phy *phy,
466  uint32_t *bandwidth_hz);
467 /* Set the TX sampling frequency. */
468 int32_t ad9361_set_tx_sampling_freq (struct ad9361_rf_phy *phy,
469  uint32_t sampling_freq_hz);
470 /* Get current TX sampling frequency. */
471 int32_t ad9361_get_tx_sampling_freq (struct ad9361_rf_phy *phy,
472  uint32_t *sampling_freq_hz);
473 /* Set the TX LO frequency. */
474 int32_t ad9361_set_tx_lo_freq (struct ad9361_rf_phy *phy, uint64_t lo_freq_hz);
475 /* Get current TX LO frequency. */
476 int32_t ad9361_get_tx_lo_freq (struct ad9361_rf_phy *phy, uint64_t *lo_freq_hz);
477 /* Switch between internal and external LO. */
478 int32_t ad9361_set_tx_lo_int_ext(struct ad9361_rf_phy *phy, uint8_t int_ext);
479 /* Set the TX FIR filter configuration. */
480 int32_t ad9361_set_tx_fir_config (struct ad9361_rf_phy *phy,
481  AD9361_TXFIRConfig fir_cfg);
482 /* Get the TX FIR filter configuration. */
483 int32_t ad9361_get_tx_fir_config(struct ad9361_rf_phy *phy, uint8_t tx_ch,
484  AD9361_TXFIRConfig *fir_cfg);
485 /* Enable/disable the TX FIR filter. */
486 int32_t ad9361_set_tx_fir_en_dis (struct ad9361_rf_phy *phy, uint8_t en_dis);
487 /* Get the status of the TX FIR filter. */
488 int32_t ad9361_get_tx_fir_en_dis (struct ad9361_rf_phy *phy, uint8_t *en_dis);
489 /* Get the TX RSSI for the selected channel. */
490 int32_t ad9361_get_tx_rssi (struct ad9361_rf_phy *phy, uint8_t ch,
491  uint32_t *rssi_db_x_1000);
492 /* Set the TX RF output port. */
493 int32_t ad9361_set_tx_rf_port_output (struct ad9361_rf_phy *phy, uint32_t mode);
494 /* Get the selected TX RF output port. */
495 int32_t ad9361_get_tx_rf_port_output (struct ad9361_rf_phy *phy,
496  uint32_t *mode);
497 /* Enable/disable the auto calibration. */
498 int32_t ad9361_set_tx_auto_cal_en_dis (struct ad9361_rf_phy *phy,
499  uint8_t en_dis);
500 /* Get the status of the auto calibration flag. */
501 int32_t ad9361_get_tx_auto_cal_en_dis (struct ad9361_rf_phy *phy,
502  uint8_t *en_dis);
503 /* Store TX fastlock profile. */
504 int32_t ad9361_tx_fastlock_store(struct ad9361_rf_phy *phy, uint32_t profile);
505 /* Recall TX fastlock profile. */
506 int32_t ad9361_tx_fastlock_recall(struct ad9361_rf_phy *phy, uint32_t profile);
507 /* Load TX fastlock profile. */
508 int32_t ad9361_tx_fastlock_load(struct ad9361_rf_phy *phy, uint32_t profile,
509  uint8_t *values);
510 /* Save TX fastlock profile. */
511 int32_t ad9361_tx_fastlock_save(struct ad9361_rf_phy *phy, uint32_t profile,
512  uint8_t *values);
513 /* Power down the TX Local Oscillator. */
514 int32_t ad9361_tx_lo_powerdown(struct ad9361_rf_phy *phy, uint8_t option);
515 /* Get the TX Local Oscillator power status. */
516 int32_t ad9361_get_tx_lo_power(struct ad9361_rf_phy *phy, uint8_t *option);
517 /* Set the RX and TX path rates. */
518 int32_t ad9361_set_trx_path_clks(struct ad9361_rf_phy *phy,
519  uint32_t *rx_path_clks, uint32_t *tx_path_clks);
520 /* Get the RX and TX path rates. */
521 int32_t ad9361_get_trx_path_clks(struct ad9361_rf_phy *phy,
522  uint32_t *rx_path_clks, uint32_t *tx_path_clks);
523 /* Set the number of channels mode. */
524 int32_t ad9361_set_no_ch_mode(struct ad9361_rf_phy *phy, uint8_t no_ch_mode);
525 /* Do multi chip synchronization. */
526 int32_t ad9361_do_mcs(struct ad9361_rf_phy *phy_master,
527  struct ad9361_rf_phy *phy_slave);
528 /* Enable/disable the TRX FIR filters. */
529 int32_t ad9361_set_trx_fir_en_dis (struct ad9361_rf_phy *phy, uint8_t en_dis);
530 /* Set the OSR rate governor. */
531 int32_t ad9361_set_trx_rate_gov (struct ad9361_rf_phy *phy, uint32_t rate_gov);
532 /* Get the OSR rate governor. */
533 int32_t ad9361_get_trx_rate_gov (struct ad9361_rf_phy *phy, uint32_t *rate_gov);
534 /* Perform the selected calibration. */
535 int32_t ad9361_do_calib(struct ad9361_rf_phy *phy, uint32_t cal, int32_t arg);
536 /* Load and enable TRX FIR filters configurations. */
537 int32_t ad9361_trx_load_enable_fir(struct ad9361_rf_phy *phy,
538  AD9361_RXFIRConfig rx_fir_cfg,
539  AD9361_TXFIRConfig tx_fir_cfg);
540 /* Do DCXO coarse tuning. */
541 int32_t ad9361_do_dcxo_tune_coarse(struct ad9361_rf_phy *phy,
542  uint32_t coarse);
543 /* Do DCXO fine tuning. */
544 int32_t ad9361_do_dcxo_tune_fine(struct ad9361_rf_phy *phy,
545  uint32_t fine);
546 /* Get the temperature. */
547 int32_t ad9361_get_temperature(struct ad9361_rf_phy *phy,
548  int32_t *temp);
549 #endif
axiadc_state::pcore_version
uint32_t pcore_version
Definition: ad9361_util.h:79
ad9361_spi_read
int32_t ad9361_spi_read(struct no_os_spi_desc *spi, uint32_t reg)
Definition: ad9361.c:735
AD9361_InitParam::mgc_rx2_ctrl_inp_enable
uint8_t mgc_rx2_ctrl_inp_enable
Definition: ad9361_api.h:112
gain_control::agc_inner_thresh_low
uint8_t agc_inner_thresh_low
Definition: ad9361.h:2948
ad9361_tx_lo_powerdown
int32_t ad9361_tx_lo_powerdown(struct ad9361_rf_phy *phy, uint8_t option)
Definition: ad9361_api.c:1864
axi_adc_core.h
Driver for the Analog Devices AXI-ADC-CORE module.
RSSI_MULTIPLIER
#define RSSI_MULTIPLIER
Definition: ad9361.h:2808
AD9361_InitParam::agc_outer_thresh_low
uint8_t agc_outer_thresh_low
Definition: ad9361_api.h:133
port_control::lvds_bias_ctrl
uint8_t lvds_bias_ctrl
Definition: ad9361.h:3065
gpo_control::gpo3_slave_rx_en
bool gpo3_slave_rx_en
Definition: ad9361.h:3105
REG_TX_FILTER_COEF_READ_DATA_1
#define REG_TX_FILTER_COEF_READ_DATA_1
Definition: ad9361.h:133
ad9361_set_rx_bbdc_track_en_dis
int32_t ad9361_set_rx_bbdc_track_en_dis(struct ad9361_rf_phy *phy, uint8_t en_dis)
Definition: ad9361_api.c:1162
gain_control::lmt_overload_large_inc_steps
uint8_t lmt_overload_large_inc_steps
Definition: ad9361.h:2961
ENSM_STATE_SLEEP
#define ENSM_STATE_SLEEP
Definition: ad9361.h:764
ad9361_set_trx_fir_en_dis
int32_t ad9361_set_trx_fir_en_dis(struct ad9361_rf_phy *phy, uint8_t en_dis)
Definition: ad9361_api.c:2061
gain_control::f_agc_rst_gla_large_lmt_overload_en
bool f_agc_rst_gla_large_lmt_overload_en
Definition: ad9361.h:3004
ad9361_phy_platform_data::port_ctrl
struct port_control port_ctrl
Definition: ad9361.h:3207
port_control::pp_conf
uint8_t pp_conf[3]
Definition: ad9361.h:3061
ad9361_get_trx_path_clks
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:1914
ad9361_phy_platform_data::fdd_independent_mode
bool fdd_independent_mode
Definition: ad9361.h:3164
ad9361_rf_phy::bbdc_track_en
bool bbdc_track_en
Definition: ad9361.h:3394
AD9361_InitParam::gc_adc_large_overload_thresh
uint8_t gc_adc_large_overload_thresh
Definition: ad9361_api.h:98
AD9361_InitParam::gpo2_slave_tx_enable
uint8_t gpo2_slave_tx_enable
Definition: ad9361_api.h:250
ad9361_phy_platform_data::dc_offset_attenuation_high
uint8_t dc_offset_attenuation_high
Definition: ad9361.h:3177
BB_REFCLK
@ BB_REFCLK
Definition: ad9361.h:3261
AD9361_InitParam::gpo0_inactive_state_high_enable
uint8_t gpo0_inactive_state_high_enable
Definition: ad9361_api.h:241
no_os_alloc.h
no_os_gpio_init_param
Structure holding the parameters for GPIO initialization.
Definition: no_os_gpio.h:79
ENABLE_ENSM_PIN_CTRL
#define ENABLE_ENSM_PIN_CTRL
Definition: ad9361.h:719
AD9361_RXFIRConfig::rx_path_clks
uint32_t rx_path_clks[6]
Definition: ad9361_api.h:300
axiadc_converter
Definition: ad9361_util.h:87
AD9361_InitParam::mgc_dec_gain_step
uint8_t mgc_dec_gain_step
Definition: ad9361_api.h:109
TX_RSSI_2
#define TX_RSSI_2
Definition: ad9361.h:1045
AD9361_InitParam::agc_dig_gain_step_size
uint8_t agc_dig_gain_step_size
Definition: ad9361_api.h:119
AD9361_InitParam::agc_inner_thresh_high_dec_steps
uint8_t agc_inner_thresh_high_dec_steps
Definition: ad9361_api.h:125
AD9361_InitParam::agc_lmt_overload_large_exceed_counter
uint8_t agc_lmt_overload_large_exceed_counter
Definition: ad9361_api.h:128
AD9361_InitParam::gc_adc_ovr_sample_size
uint8_t gc_adc_ovr_sample_size
Definition: ad9361_api.h:99
elna_control::elna_2_control_en
bool elna_2_control_en
Definition: ad9361.h:3079
ad9361_phy_platform_data::qec_tracking_slow_mode_en
bool qec_tracking_slow_mode_en
Definition: ad9361.h:3175
ad9361_phy_platform_data::split_gt
bool split_gt
Definition: ad9361.h:3165
AD9361_InitParam::gpo2_rx_delay_us
uint8_t gpo2_rx_delay_us
Definition: ad9361_api.h:257
AD9361_InitParam::two_t_two_r_timing_enable
uint8_t two_t_two_r_timing_enable
Definition: ad9361_api.h:215
ad9361_get_rx_bbdc_track_en_dis
int32_t ad9361_get_rx_bbdc_track_en_dis(struct ad9361_rf_phy *phy, uint8_t *en_dis)
Definition: ad9361_api.c:1183
ad9361_set_rx_fir_en_dis
int32_t ad9361_set_rx_fir_en_dis(struct ad9361_rf_phy *phy, uint8_t en_dis)
Definition: ad9361_api.c:1084
ad9361_fastlock_recall
int32_t ad9361_fastlock_recall(struct ad9361_rf_phy *phy, bool tx, uint32_t profile)
Definition: ad9361.c:5173
gain_control::immed_gain_change_if_large_lmt_overload
bool immed_gain_change_if_large_lmt_overload
Definition: ad9361.h:2969
ad9361_get_tx_lo_freq
int32_t ad9361_get_tx_lo_freq(struct ad9361_rf_phy *phy, uint64_t *lo_freq_hz)
Definition: ad9361_api.c:1534
gain_control::agc_inner_thresh_low_inc_steps
uint8_t agc_inner_thresh_low_inc_steps
Definition: ad9361.h:2949
ad9361_set_tx_fir_config
int32_t ad9361_set_tx_fir_config(struct ad9361_rf_phy *phy, AD9361_TXFIRConfig fir_cfg)
Definition: ad9361_api.c:1572
AD9361_InitParam::rx_frame_pulse_mode_enable
uint8_t rx_frame_pulse_mode_enable
Definition: ad9361_api.h:214
ad9361_rf_phy::gpio_desc_cal_sw2
struct no_os_gpio_desc * gpio_desc_cal_sw2
Definition: ad9361.h:3340
ad9361_tx_fastlock_store
int32_t ad9361_tx_fastlock_store(struct ad9361_rf_phy *phy, uint32_t profile)
Definition: ad9361_api.c:1801
ad9361_set_rx_rfdc_track_en_dis
int32_t ad9361_set_rx_rfdc_track_en_dis(struct ad9361_rf_phy *phy, uint8_t en_dis)
Definition: ad9361_api.c:1124
ad9361_set_rx_bbdc_track_en_dis
int32_t ad9361_set_rx_bbdc_track_en_dis(struct ad9361_rf_phy *phy, uint8_t en_dis)
Definition: ad9361_api.c:1162
AD9361_RXFIRConfig::rx_gain
int32_t rx_gain
Definition: ad9361_api.h:296
AD9361_InitParam::half_duplex_mode_enable
uint8_t half_duplex_mode_enable
Definition: ad9361_api.h:224
LO_DONTCARE
@ LO_DONTCARE
Definition: ad9361.h:3323
gain_control::adc_large_overload_inc_steps
uint8_t adc_large_overload_inc_steps
Definition: ad9361.h:2955
gpo_control::gpo0_inactive_state_high_en
bool gpo0_inactive_state_high_en
Definition: ad9361.h:3095
AD9361_InitParam::gc_rx1_mode
uint8_t gc_rx1_mode
Definition: ad9361_api.h:96
ad9361_rf_phy::clks
struct no_os_clk * clks[NUM_AD9361_CLKS]
Definition: ad9361.h:3346
AD9361_InitParam::gpo_manual_mode_enable
uint8_t gpo_manual_mode_enable
Definition: ad9361_api.h:239
ad9361_fastlock_save
int32_t ad9361_fastlock_save(struct ad9361_rf_phy *phy, bool tx, uint32_t profile, uint8_t *values)
Definition: ad9361.c:5229
AD9361_InitParam::fagc_lpf_final_settling_steps
uint32_t fagc_lpf_final_settling_steps
Definition: ad9361_api.h:148
ad9361_phy_platform_data::tx_synth_freq
uint64_t tx_synth_freq
Definition: ad9361.h:3194
rf_rx_gain
Definition: ad9361.h:3216
gpo_control::gpo3_inactive_state_high_en
bool gpo3_inactive_state_high_en
Definition: ad9361.h:3098
rssi_control::rssi_unit_is_rx_samples
bool rssi_unit_is_rx_samples
Definition: ad9361.h:3045
auxdac_control::dac1_rx_delay_us
uint8_t dac1_rx_delay_us
Definition: ad9361.h:3028
gain_control::adc_lmt_small_overload_prevent_gain_inc
bool adc_lmt_small_overload_prevent_gain_inc
Definition: ad9361.h:2957
FIR_START_CLK
#define FIR_START_CLK
Definition: ad9361.h:1020
ENSM_MODE_RX
@ ENSM_MODE_RX
Definition: ad9361_api.h:316
ad9361_get_tx_rssi
int32_t ad9361_get_tx_rssi(struct ad9361_rf_phy *phy, uint8_t ch, uint32_t *rssi_db_x_1000)
Definition: ad9361_api.c:1687
ad9361_rf_phy::adc_state
struct axiadc_state * adc_state
Definition: ad9361.h:3403
ad9361_get_temperature
int32_t ad9361_get_temperature(struct ad9361_rf_phy *phy, int32_t *temp)
Definition: ad9361_api.c:2223
AD9361_InitParam::aux_dac2_rx_delay_us
uint32_t aux_dac2_rx_delay_us
Definition: ad9361_api.h:190
AD9361_InitParam::digital_interface_tune_fir_disable
uint8_t digital_interface_tune_fir_disable
Definition: ad9361_api.h:209
REV_MASK
#define REV_MASK
Definition: ad9361.h:856
AD9361_InitParam::agc_inner_thresh_high
uint8_t agc_inner_thresh_high
Definition: ad9361_api.h:124
ad9361_phy_platform_data::lo_powerdown_managed_en
uint8_t lo_powerdown_managed_en
Definition: ad9361.h:3183
AD9361_InitParam::tx_fastlock_pincontrol_enable
uint8_t tx_fastlock_pincontrol_enable
Definition: ad9361_api.h:62
AD9361_InitParam::agc_gain_update_interval_us
uint32_t agc_gain_update_interval_us
Definition: ad9361_api.h:121
ad9361_tx_fastlock_recall
int32_t ad9361_tx_fastlock_recall(struct ad9361_rf_phy *phy, uint32_t profile)
Definition: ad9361_api.c:1816
AD9361_InitParam::tx_mon_duration
uint32_t tx_mon_duration
Definition: ad9361_api.h:268
ad9361_reset
int32_t ad9361_reset(struct ad9361_rf_phy *phy)
Definition: ad9361.c:1042
no_os_spi.h
Header file of SPI Interface.
ad9361_register_clocks
int32_t ad9361_register_clocks(struct ad9361_rf_phy *phy)
Definition: ad9361.c:7288
AD9361_InitParam::low_gain_dB
uint32_t low_gain_dB
Definition: ad9361_api.h:263
AD9361_InitParam::agc_lmt_overload_small_exceed_counter
uint8_t agc_lmt_overload_small_exceed_counter
Definition: ad9361_api.h:130
ctrl_outs_control::index
uint8_t index
Definition: ad9361.h:3070
fir_dest
fir_dest
Definition: ad9361.h:2886
auxdac_control::dac2_in_rx_en
bool dac2_in_rx_en
Definition: ad9361.h:3024
AD9361_InitParam::mgc_split_table_ctrl_inp_gain_mode
uint8_t mgc_split_table_ctrl_inp_gain_mode
Definition: ad9361_api.h:113
AD9361_InitParam::gpo3_inactive_state_high_enable
uint8_t gpo3_inactive_state_high_enable
Definition: ad9361_api.h:244
gain_control::f_agc_rst_gla_engergy_lost_sig_thresh_below_ll
uint8_t f_agc_rst_gla_engergy_lost_sig_thresh_below_ll
Definition: ad9361.h:3001
AD9361_InitParam::tx_synthesizer_frequency_hz
uint64_t tx_synthesizer_frequency_hz
Definition: ad9361_api.h:78
ad9361_set_tx_rf_bandwidth
int32_t ad9361_set_tx_rf_bandwidth(struct ad9361_rf_phy *phy, uint32_t bandwidth_hz)
Definition: ad9361_api.c:1433
gain_control::lmt_overload_small_exceed_counter
uint8_t lmt_overload_small_exceed_counter
Definition: ad9361.h:2960
AD9361_InitParam::gpo0_tx_delay_us
uint8_t gpo0_tx_delay_us
Definition: ad9361_api.h:254
AD9361_InitParam::gc_dec_pow_measurement_duration
uint16_t gc_dec_pow_measurement_duration
Definition: ad9361_api.h:101
elna_control::elna_in_gaintable_all_index_en
bool elna_in_gaintable_all_index_en
Definition: ad9361.h:3080
ad9361_trx_load_enable_fir
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:2139
gain_control::adc_ovr_sample_size
uint8_t adc_ovr_sample_size
Definition: ad9361.h:2920
ad9361_do_calib
int32_t ad9361_do_calib(struct ad9361_rf_phy *phy, uint32_t cal, int32_t arg)
Definition: ad9361_api.c:2125
AD9361_InitParam::dc_offset_tracking_update_event_mask
uint8_t dc_offset_tracking_update_event_mask
Definition: ad9361_api.h:65
AD9361_InitParam::fdd_alt_word_order_enable
uint8_t fdd_alt_word_order_enable
Definition: ad9361_api.h:218
axi_adc_init
AXI ADC Initialization Parameters structure.
Definition: axi_adc_core.h:143
ad9361_set_no_ch_mode
int32_t ad9361_set_no_ch_mode(struct ad9361_rf_phy *phy, uint8_t no_ch_mode)
Definition: ad9361_api.c:1932
T1_CLK
@ T1_CLK
Definition: ad9361.h:3272
ad9361_set_rx_gain_control_mode
int32_t ad9361_set_rx_gain_control_mode(struct ad9361_rf_phy *phy, uint8_t ch, uint8_t gc_mode)
Definition: ad9361_api.c:966
AD9361_InitParam::ensm_enable_txnrx_control_enable
uint8_t ensm_enable_txnrx_control_enable
Definition: ad9361_api.h:75
AD9361_InitParam
Definition: ad9361_api.h:46
gpo_control::gpo_manual_mode_en
bool gpo_manual_mode_en
Definition: ad9361.h:3094
AD9361_InitParam::high_gain_dB
uint32_t high_gain_dB
Definition: ad9361_api.h:264
ad9361_rf_phy::rfdc_track_en
bool rfdc_track_en
Definition: ad9361.h:3393
ad9361_get_en_state_machine_mode
int32_t ad9361_get_en_state_machine_mode(struct ad9361_rf_phy *phy, uint32_t *mode)
Definition: ad9361_api.c:684
ad9361_spi_readm
int32_t ad9361_spi_readm(struct no_os_spi_desc *spi, uint32_t reg, uint8_t *rbuf, uint32_t num)
Definition: ad9361.c:694
ad9361_get_tx_lo_power
int32_t ad9361_get_tx_lo_power(struct ad9361_rf_phy *phy, uint8_t *option)
Definition: ad9361_api.c:1875
elna_control::elna_1_control_en
bool elna_1_control_en
Definition: ad9361.h:3078
AD9361_InitParam::fdd_rx_rate_2tx_enable
uint8_t fdd_rx_rate_2tx_enable
Definition: ad9361_api.h:220
AD9361_InitParam::tx_channel_swap_enable
uint8_t tx_channel_swap_enable
Definition: ad9361_api.h:212
AD9361_InitParam::full_port_enable
uint8_t full_port_enable
Definition: ad9361_api.h:226
ad9361_get_rx_fir_config
int32_t ad9361_get_rx_fir_config(struct ad9361_rf_phy *phy, uint8_t rx_ch, AD9361_RXFIRConfig *fir_cfg)
Definition: ad9361_api.c:1027
AD9361_InitParam::tx1_mon_lo_cm
uint32_t tx1_mon_lo_cm
Definition: ad9361_api.h:271
ad9361_get_tx_attenuation
int32_t ad9361_get_tx_attenuation(struct ad9361_rf_phy *phy, uint8_t ch, uint32_t *attenuation_mdb)
Definition: ad9361_api.c:1407
gain_control::f_agc_rst_gla_engergy_lost_goto_optim_gain_en
bool f_agc_rst_gla_engergy_lost_goto_optim_gain_en
Definition: ad9361.h:3000
ad9361_set_rx_sampling_freq
int32_t ad9361_set_rx_sampling_freq(struct ad9361_rf_phy *phy, uint32_t sampling_freq_hz)
Definition: ad9361_api.c:833
ad9361_fastlock_load
int32_t ad9361_fastlock_load(struct ad9361_rf_phy *phy, bool tx, uint32_t profile, uint8_t *values)
Definition: ad9361.c:4998
gpo_control::gpo3_tx_delay_us
uint8_t gpo3_tx_delay_us
Definition: ad9361.h:3114
AD9361_InitParam::fagc_optimized_gain_offset
uint32_t fagc_optimized_gain_offset
Definition: ad9361_api.h:157
AD9361_InitParam::fagc_power_measurement_duration_in_state5
uint32_t fagc_power_measurement_duration_in_state5
Definition: ad9361_api.h:167
AD9361_InitParam::fagc_lp_thresh_increment_time
uint32_t fagc_lp_thresh_increment_time
Definition: ad9361_api.h:142
AD9361_InitParam::one_rx_one_tx_mode_use_rx_num
uint8_t one_rx_one_tx_mode_use_rx_num
Definition: ad9361_api.h:53
ad9361_get_tx_rf_bandwidth
int32_t ad9361_get_tx_rf_bandwidth(struct ad9361_rf_phy *phy, uint32_t *bandwidth_hz)
Definition: ad9361_api.c:1455
AD9361_InitParam::invert_data_bus_enable
uint8_t invert_data_bus_enable
Definition: ad9361_api.h:216
ad9361_get_temp
int32_t ad9361_get_temp(struct ad9361_rf_phy *phy)
Definition: ad9361.c:4214
auxadc_control::offset
int8_t offset
Definition: ad9361.h:3084
RX_LO_POWER_DOWN
#define RX_LO_POWER_DOWN
Definition: ad9361.h:938
AD9361_InitParam::invert_rx_frame_enable
uint8_t invert_rx_frame_enable
Definition: ad9361_api.h:219
ad9361_rx_fastlock_store
int32_t ad9361_rx_fastlock_store(struct ad9361_rf_phy *phy, uint32_t profile)
Definition: ad9361_api.c:1286
ID_AD9364
@ ID_AD9364
Definition: ad9361.h:3330
AD9361_InitParam::one_shot_mode_en
uint8_t one_shot_mode_en
Definition: ad9361_api.h:266
refclk_scale
Definition: ad9361.h:3414
AD9361_InitParam::gpo3_tx_delay_us
uint8_t gpo3_tx_delay_us
Definition: ad9361_api.h:260
auxdac_control::dac2_default_value
uint16_t dac2_default_value
Definition: ad9361.h:3016
ad9361_phy_platform_data::rf_dc_offset_count_low
uint8_t rf_dc_offset_count_low
Definition: ad9361.h:3180
no_os_delay.h
Header file of Delay functions.
rf_rssi::duration
uint8_t duration
Definition: ad9361.h:3234
ad9361_phy_platform_data::dig_interface_tune_skipmode
uint8_t dig_interface_tune_skipmode
Definition: ad9361.h:3181
TX_SAMPL_FREQ
@ TX_SAMPL_FREQ
Definition: ad9361.h:3147
AD9361_InitParam::rf_rx_bandwidth_hz
uint32_t rf_rx_bandwidth_hz
Definition: ad9361_api.h:83
AD9361_RXFIRConfig::rx_coef_size
uint8_t rx_coef_size
Definition: ad9361_api.h:299
PRODUCT_ID_9361
#define PRODUCT_ID_9361
Definition: ad9361.h:855
AD9361_InitParam::tx_data_delay
uint32_t tx_data_delay
Definition: ad9361_api.h:232
AD9361_InitParam::temp_sense_measurement_interval_ms
uint16_t temp_sense_measurement_interval_ms
Definition: ad9361_api.h:194
REG_TX_CLOCK_DATA_DELAY
#define REG_TX_CLOCK_DATA_DELAY
Definition: ad9361.h:52
AD9361_InitParam::update_tx_gain_in_alert_enable
uint8_t update_tx_gain_in_alert_enable
Definition: ad9361_api.h:90
ad9361_set_rx_lo_int_ext
int32_t ad9361_set_rx_lo_int_ext(struct ad9361_rf_phy *phy, uint8_t int_ext)
Definition: ad9361_api.c:912
ad9361_get_rx_sampling_freq
int32_t ad9361_get_rx_sampling_freq(struct ad9361_rf_phy *phy, uint32_t *sampling_freq_hz)
Definition: ad9361_api.c:858
ad9361_get_rx_rf_gain
int32_t ad9361_get_rx_rf_gain(struct ad9361_rf_phy *phy, uint8_t ch, int32_t *gain_db)
Definition: ad9361_api.c:769
ad9361_phy_platform_data::dig_interface_tune_fir_disable
uint8_t dig_interface_tune_fir_disable
Definition: ad9361.h:3182
ad9361_rf_phy::agc_mode
uint8_t agc_mode[2]
Definition: ad9361.h:3392
gpo_control::gpo0_tx_delay_us
uint8_t gpo0_tx_delay_us
Definition: ad9361.h:3108
AD9361_InitParam::fagc_rst_gla_if_en_agc_pulled_high_mode
uint32_t fagc_rst_gla_if_en_agc_pulled_high_mode
Definition: ad9361_api.h:166
no_os_clk
Definition: no_os_clk.h:64
AD9361_InitParam::gc_lmt_overload_high_thresh
uint16_t gc_lmt_overload_high_thresh
Definition: ad9361_api.h:103
ad9361_do_mcs
int32_t ad9361_do_mcs(struct ad9361_rf_phy *phy_master, struct ad9361_rf_phy *phy_slave)
Definition: ad9361_api.c:2015
gpo_control::gpo3_slave_tx_en
bool gpo3_slave_tx_en
Definition: ad9361.h:3106
ad9361_remove
int32_t ad9361_remove(struct ad9361_rf_phy *phy)
Definition: ad9361_api.c:596
gpo_control::gpo_manual_mode_enable_mask
uint32_t gpo_manual_mode_enable_mask
Definition: ad9361.h:3093
TX_DATA_DELAY
#define TX_DATA_DELAY(x)
Definition: ad9361.h:639
ad9361_rf_phy::spi
struct no_os_spi_desc * spi
Definition: ad9361.h:3336
AD9361_InitParam::fagc_use_last_lock_level_for_set_gain_en
uint8_t fagc_use_last_lock_level_for_set_gain_en
Definition: ad9361_api.h:155
ad9361_get_rx_rf_bandwidth
int32_t ad9361_get_rx_rf_bandwidth(struct ad9361_rf_phy *phy, uint32_t *bandwidth_hz)
Definition: ad9361_api.c:815
ad9361_set_tx_lo_int_ext
int32_t ad9361_set_tx_lo_int_ext(struct ad9361_rf_phy *phy, uint8_t int_ext)
Definition: ad9361_api.c:1552
ENSM_STATE_SLEEP_WAIT
#define ENSM_STATE_SLEEP_WAIT
Definition: ad9361.h:755
gain_control::f_agc_optimized_gain_offset
uint8_t f_agc_optimized_gain_offset
Definition: ad9361.h:2996
ad9361_phy_platform_data::tx_fastlock_delay_ns
uint32_t tx_fastlock_delay_ns
Definition: ad9361.h:3200
AD9361_InitParam::gpo3_slave_rx_enable
uint8_t gpo3_slave_rx_enable
Definition: ad9361_api.h:251
ad9361_do_dcxo_tune_fine
int32_t ad9361_do_dcxo_tune_fine(struct ad9361_rf_phy *phy, uint32_t fine)
Definition: ad9361_api.c:2208
ad9361_rf_port_setup
int32_t ad9361_rf_port_setup(struct ad9361_rf_phy *phy, bool is_out, uint32_t rx_inputs, uint32_t txb)
Definition: ad9361.c:3637
AD9361_InitParam::rx_channel_swap_enable
uint8_t rx_channel_swap_enable
Definition: ad9361_api.h:213
port_control::rx_clk_data_delay
uint8_t rx_clk_data_delay
Definition: ad9361.h:3062
AD9361_InitParam::gpo1_slave_tx_enable
uint8_t gpo1_slave_tx_enable
Definition: ad9361_api.h:248
gpo_control::gpo2_rx_delay_us
uint8_t gpo2_rx_delay_us
Definition: ad9361.h:3111
AD9361_InitParam::elna_rx2_gpo1_control_enable
uint8_t elna_rx2_gpo1_control_enable
Definition: ad9361_api.h:205
_SOFT_RESET
#define _SOFT_RESET
Definition: ad9361.h:579
ad9361_tx_fastlock_load
int32_t ad9361_tx_fastlock_load(struct ad9361_rf_phy *phy, uint32_t profile, uint8_t *values)
Definition: ad9361_api.c:1833
ad9361_util.h
AD9361 Header file of Util driver.
ad9361_set_dcxo_tune
int32_t ad9361_set_dcxo_tune(struct ad9361_rf_phy *phy, uint32_t coarse, uint32_t fine)
Definition: ad9361.c:3523
tx_monitor_control::tx1_mon_lo_cm
uint8_t tx1_mon_lo_cm
Definition: ad9361.h:3127
ad9361_clk_mux_set_parent
int32_t ad9361_clk_mux_set_parent(struct refclk_scale *clk_priv, uint8_t index)
Definition: ad9361.c:7151
axi_dac_core.h
Driver for the Analog Devices AXI-DAC-CORE module.
RX_RFPLL_DUMMY
@ RX_RFPLL_DUMMY
Definition: ad9361.h:3277
ad9361_rf_phy::clk_refin
struct no_os_clk * clk_refin
Definition: ad9361.h:3345
gain_control::mgc_inc_gain_step
uint8_t mgc_inc_gain_step
Definition: ad9361.h:2937
ad9361_1rx1tx_channel_map
int32_t ad9361_1rx1tx_channel_map(struct ad9361_rf_phy *phy, bool tx, int32_t channel)
Definition: ad9361.c:1018
no_os_calloc
void * no_os_calloc(size_t nitems, size_t size)
Allocate memory and return a pointer to it, set memory to 0.
Definition: chibios_alloc.c:54
NO_OS_ARRAY_SIZE
#define NO_OS_ARRAY_SIZE(x)
Definition: no_os_util.h:49
ad9361_adi_gt_info
struct gain_table_info ad9361_adi_gt_info[]
Definition: ad9361.c:599
ad9361_rx_lo_powerdown
int32_t ad9361_rx_lo_powerdown(struct ad9361_rf_phy *phy, uint8_t option)
Definition: ad9361_api.c:1349
AD9361_InitParam::fagc_gain_increase_after_gain_lock_en
uint8_t fagc_gain_increase_after_gain_lock_en
Definition: ad9361_api.h:152
ad9361_rf_phy::filt_tx_path_clks
uint32_t filt_tx_path_clks[NUM_TX_CLOCKS]
Definition: ad9361.h:3385
ad9361_rfpll_recalc_rate
uint32_t ad9361_rfpll_recalc_rate(struct refclk_scale *clk_priv)
Definition: ad9361.c:7010
AD9361_InitParam::invert_data_clk_enable
uint8_t invert_data_clk_enable
Definition: ad9361_api.h:217
ad9361_set_rx_rf_gain
int32_t ad9361_set_rx_rf_gain(struct ad9361_rf_phy *phy, uint8_t ch, int32_t gain_db)
Definition: ad9361_api.c:743
AD9361_InitParam::fagc_rst_gla_stronger_sig_thresh_above_ll
uint32_t fagc_rst_gla_stronger_sig_thresh_above_ll
Definition: ad9361_api.h:158
ENSM_STATE_TX
#define ENSM_STATE_TX
Definition: ad9361.h:757
ad9361_get_rx_fir_en_dis
int32_t ad9361_get_rx_fir_en_dis(struct ad9361_rf_phy *phy, uint8_t *en_dis)
Definition: ad9361_api.c:1107
AD9361_InitParam::full_duplex_swap_bits_enable
uint8_t full_duplex_swap_bits_enable
Definition: ad9361_api.h:227
gain_control::f_agc_allow_agc_gain_increase
bool f_agc_allow_agc_gain_increase
Definition: ad9361.h:2977
AD9361_InitParam::external_rx_lo_enable
uint8_t external_rx_lo_enable
Definition: ad9361_api.h:63
AD9361_InitParam::ctrl_outs_enable_mask
uint8_t ctrl_outs_enable_mask
Definition: ad9361_api.h:198
RSSI_RESOLUTION
#define RSSI_RESOLUTION
Definition: ad9361.h:2809
AD9361_InitParam::tdd_use_dual_synth_mode_enable
uint8_t tdd_use_dual_synth_mode_enable
Definition: ad9361_api.h:57
ad9361_rx_fastlock_store
int32_t ad9361_rx_fastlock_store(struct ad9361_rf_phy *phy, uint32_t profile)
Definition: ad9361_api.c:1286
gain_control::adc_large_overload_exceed_counter
uint8_t adc_large_overload_exceed_counter
Definition: ad9361.h:2954
BIST_DISABLE
@ BIST_DISABLE
Definition: ad9361.h:3317
AD9361_InitParam::aux_dac1_active_in_alert_enable
uint8_t aux_dac1_active_in_alert_enable
Definition: ad9361_api.h:183
ad9361_get_tx_auto_cal_en_dis
int32_t ad9361_get_tx_auto_cal_en_dis(struct ad9361_rf_phy *phy, uint8_t *en_dis)
Definition: ad9361_api.c:1783
ad9361_set_trx_clock_chain
int32_t ad9361_set_trx_clock_chain(struct ad9361_rf_phy *phy, uint32_t *rx_path_clks, uint32_t *tx_path_clks)
Definition: ad9361.c:4640
port_control::tx_clk_data_delay
uint8_t tx_clk_data_delay
Definition: ad9361.h:3063
ad9361_rx_fastlock_load
int32_t ad9361_rx_fastlock_load(struct ad9361_rf_phy *phy, uint32_t profile, uint8_t *values)
Definition: ad9361_api.c:1318
tx_monitor_control::tx_mon_delay
uint16_t tx_mon_delay
Definition: ad9361.h:3123
AD9361_InitParam::aux_dac2_default_value_mV
uint32_t aux_dac2_default_value_mV
Definition: ad9361_api.h:186
AD9361_InitParam::aux_dac1_default_value_mV
uint32_t aux_dac1_default_value_mV
Definition: ad9361_api.h:180
AD9361_InitParam::agc_adc_small_overload_exceed_counter
uint8_t agc_adc_small_overload_exceed_counter
Definition: ad9361_api.h:118
AD9361_InitParam::gpo2_inactive_state_high_enable
uint8_t gpo2_inactive_state_high_enable
Definition: ad9361_api.h:243
gain_control::adc_large_overload_thresh
uint8_t adc_large_overload_thresh
Definition: ad9361.h:2922
AD9361_InitParam::agc_outer_thresh_low_inc_steps
uint8_t agc_outer_thresh_low_inc_steps
Definition: ad9361_api.h:134
AD9361_InitParam::gc_dig_gain_enable
uint8_t gc_dig_gain_enable
Definition: ad9361_api.h:102
AD9361_InitParam::agc_inner_thresh_low
uint8_t agc_inner_thresh_low
Definition: ad9361_api.h:126
AD9361_InitParam::rssi_wait
uint32_t rssi_wait
Definition: ad9361_api.h:174
AD9361_InitParam::clk_output_mode_select
uint32_t clk_output_mode_select
Definition: ad9361_api.h:94
AD9361_InitParam::frequency_division_duplex_mode_enable
uint8_t frequency_division_duplex_mode_enable
Definition: ad9361_api.h:55
ad9361_set_en_state_machine_mode
int32_t ad9361_set_en_state_machine_mode(struct ad9361_rf_phy *phy, uint32_t mode)
Definition: ad9361_api.c:632
REG_STATE
#define REG_STATE
Definition: ad9361.h:67
ad9361_set_tx_fir_en_dis
int32_t ad9361_set_tx_fir_en_dis(struct ad9361_rf_phy *phy, uint8_t en_dis)
Definition: ad9361_api.c:1646
AD9361_InitParam::tx_attenuation_mdB
int32_t tx_attenuation_mdB
Definition: ad9361_api.h:89
ENSM_STATE_FDD
#define ENSM_STATE_FDD
Definition: ad9361.h:761
RX_SAMPL_CLK
@ RX_SAMPL_CLK
Definition: ad9361.h:3269
ad9361_set_rx_gain
int32_t ad9361_set_rx_gain(struct ad9361_rf_phy *phy, uint32_t rx_id, struct rf_rx_gain *rx_gain)
Definition: ad9361.c:2225
AD9361_InitParam::tx2_mon_lo_cm
uint32_t tx2_mon_lo_cm
Definition: ad9361_api.h:272
AD9361_InitParam::rx_fastlock_pincontrol_enable
uint8_t rx_fastlock_pincontrol_enable
Definition: ad9361_api.h:61
ad9361_rf_phy::bist_prbs_mode
enum ad9361_bist_mode bist_prbs_mode
Definition: ad9361.h:3406
gain_control::agc_outer_thresh_high
uint8_t agc_outer_thresh_high
Definition: ad9361.h:2944
gain_control::f_agc_lmt_final_settling_steps
uint8_t f_agc_lmt_final_settling_steps
Definition: ad9361.h:2987
gain_control::mgc_rx1_ctrl_inp_en
bool mgc_rx1_ctrl_inp_en
Definition: ad9361.h:2934
AD9361_InitParam::reference_clk_rate
uint32_t reference_clk_rate
Definition: ad9361_api.h:50
ad9361_spi_write
int32_t ad9361_spi_write(struct no_os_spi_desc *spi, uint32_t reg, uint32_t val)
Definition: ad9361.c:811
ad9361_get_trx_rate_gov
int32_t ad9361_get_trx_rate_gov(struct ad9361_rf_phy *phy, uint32_t *rate_gov)
Definition: ad9361_api.c:2106
ad9361_phy_platform_data::tx_path_clks
uint32_t tx_path_clks[NUM_TX_CLOCKS]
Definition: ad9361.h:3191
AD9361_InitParam::single_port_mode_enable
uint8_t single_port_mode_enable
Definition: ad9361_api.h:225
gain_control::f_agc_gain_index_type_after_exit_rx_mode
enum f_agc_target_gain_index_type f_agc_gain_index_type_after_exit_rx_mode
Definition: ad9361.h:2993
gain_control::f_agc_rst_gla_stronger_sig_thresh_exceeded_en
bool f_agc_rst_gla_stronger_sig_thresh_exceeded_en
Definition: ad9361.h:2997
TX_RFPLL
@ TX_RFPLL
Definition: ad9361.h:3280
ad9361_do_dcxo_tune_coarse
int32_t ad9361_do_dcxo_tune_coarse(struct ad9361_rf_phy *phy, uint32_t coarse)
Definition: ad9361_api.c:2193
gain_control::f_agc_rst_gla_engergy_lost_sig_thresh_exceeded_en
bool f_agc_rst_gla_engergy_lost_sig_thresh_exceeded_en
Definition: ad9361.h:2999
ad9361_phy_platform_data::tdd_skip_vco_cal
bool tdd_skip_vco_cal
Definition: ad9361.h:3171
gain_control::dig_gain_en
bool dig_gain_en
Definition: ad9361.h:2930
no_os_mdelay
void no_os_mdelay(uint32_t msecs)
Wait until msecs milliseconds passed.
Definition: aducm3029_delay.c:126
ad9361_phy_platform_data::dcxo_coarse
uint32_t dcxo_coarse
Definition: ad9361.h:3184
ad9361_phy_platform_data::auxdac_ctrl
struct auxdac_control auxdac_ctrl
Definition: ad9361.h:3211
AD9361_InitParam::digital_interface_tune_skip_mode
uint8_t digital_interface_tune_skip_mode
Definition: ad9361_api.h:208
ad9361_init
int32_t ad9361_init(struct ad9361_rf_phy **ad9361_phy, AD9361_InitParam *init_param)
Definition: ad9361_api.c:76
gpo_control::gpo0_slave_tx_en
bool gpo0_slave_tx_en
Definition: ad9361.h:3100
ad9361_set_tx_attenuation
int32_t ad9361_set_tx_attenuation(struct ad9361_rf_phy *phy, uint8_t ch, uint32_t attenuation_mdb)
Definition: ad9361_api.c:1381
ad9361_post_setup
int32_t ad9361_post_setup(struct ad9361_rf_phy *phy)
Definition: ad9361_conv.c:599
ad9361_get_tx_fir_config
int32_t ad9361_get_tx_fir_config(struct ad9361_rf_phy *phy, uint8_t tx_ch, AD9361_TXFIRConfig *fir_cfg)
Definition: ad9361_api.c:1594
AD9361_InitParam::fagc_large_overload_inc_steps
uint32_t fagc_large_overload_inc_steps
Definition: ad9361_api.h:168
AD9361_InitParam::lvds_mode_enable
uint8_t lvds_mode_enable
Definition: ad9361_api.h:223
AD9361_InitParam::external_tx_lo_enable
uint8_t external_tx_lo_enable
Definition: ad9361_api.h:64
ad9361_tx_fastlock_recall
int32_t ad9361_tx_fastlock_recall(struct ad9361_rf_phy *phy, uint32_t profile)
Definition: ad9361_api.c:1816
auxdac_control::dac1_default_value
uint16_t dac1_default_value
Definition: ad9361.h:3015
AD9361_InitParam::mgc_rx1_ctrl_inp_enable
uint8_t mgc_rx1_ctrl_inp_enable
Definition: ad9361_api.h:111
ad9361_get_rx_lo_freq
int32_t ad9361_get_rx_lo_freq(struct ad9361_rf_phy *phy, uint64_t *lo_freq_hz)
Definition: ad9361_api.c:894
ad9361_phy_platform_data::update_tx_gain_via_alert
bool update_tx_gain_via_alert
Definition: ad9361.h:3198
ENSM_MODE_PINCTRL_FDD_INDEP
@ ENSM_MODE_PINCTRL_FDD_INDEP
Definition: ad9361_api.h:322
AD9361_InitParam::gpo2_tx_delay_us
uint8_t gpo2_tx_delay_us
Definition: ad9361_api.h:258
ad9361.h
Header file of AD9361 Driver.
ad9361_get_tx_fir_config
int32_t ad9361_get_tx_fir_config(struct ad9361_rf_phy *phy, uint8_t tx_ch, AD9361_TXFIRConfig *fir_cfg)
Definition: ad9361_api.c:1594
ID_AD9363A
@ ID_AD9363A
Definition: ad9361.h:3331
FB_CLK_DELAY
#define FB_CLK_DELAY(x)
Definition: ad9361.h:638
REG_TX_FILTER_COEF_ADDR
#define REG_TX_FILTER_COEF_ADDR
Definition: ad9361.h:130
RX_REFCLK
@ RX_REFCLK
Definition: ad9361.h:3262
SOFT_RESET
@ SOFT_RESET
Definition: ad738x.h:136
AD9361_InitParam::aux_dac2_tx_delay_us
uint32_t aux_dac2_tx_delay_us
Definition: ad9361_api.h:191
axiadc_chip_info
Definition: ad9361_util.h:82
ad9361_ensm_mode
ad9361_ensm_mode
Definition: ad9361_api.h:314
AD9361_InitParam::agc_immed_gain_change_if_large_lmt_overload_enable
uint8_t agc_immed_gain_change_if_large_lmt_overload_enable
Definition: ad9361_api.h:123
ad9361_get_tx_fir_en_dis
int32_t ad9361_get_tx_fir_en_dis(struct ad9361_rf_phy *phy, uint8_t *en_dis)
Definition: ad9361_api.c:1669
REG_RX_FILTER_COEF_ADDR
#define REG_RX_FILTER_COEF_ADDR
Definition: ad9361.h:213
ad9361_phy_platform_data::rf_tx_output_sel
uint32_t rf_tx_output_sel
Definition: ad9361.h:3187
ad9361_rf_phy::filt_rx_path_clks
uint32_t filt_rx_path_clks[NUM_RX_CLOCKS]
Definition: ad9361.h:3384
rf_gain_ctrl_mode
rf_gain_ctrl_mode
Definition: ad9361.h:2901
ENSM_MODE_SLEEP
@ ENSM_MODE_SLEEP
Definition: ad9361_api.h:320
axiadc_state
Definition: ad9361_util.h:77
ad9361_get_tx_rf_port_output
int32_t ad9361_get_tx_rf_port_output(struct ad9361_rf_phy *phy, uint32_t *mode)
Definition: ad9361_api.c:1749
gpo_control::gpo1_slave_rx_en
bool gpo1_slave_rx_en
Definition: ad9361.h:3101
AD9361_InitParam::gc_rx2_mode
uint8_t gc_rx2_mode
Definition: ad9361_api.h:97
AD9361_InitParam::dc_offset_count_high_range
uint8_t dc_offset_count_high_range
Definition: ad9361_api.h:68
ad9361_set_trx_fir_en_dis
int32_t ad9361_set_trx_fir_en_dis(struct ad9361_rf_phy *phy, uint8_t en_dis)
Definition: ad9361_api.c:2061
AD9361_RXFIRConfig
Definition: ad9361_api.h:294
AD9361_InitParam::tx_mon_track_en
uint8_t tx_mon_track_en
Definition: ad9361_api.h:265
ad9361_phy_platform_data::rf_tx_bandwidth_Hz
uint32_t rf_tx_bandwidth_Hz
Definition: ad9361.h:3196
ad9361_tx_fastlock_store
int32_t ad9361_tx_fastlock_store(struct ad9361_rf_phy *phy, uint32_t profile)
Definition: ad9361_api.c:1801
AD9361_InitParam::tdd_skip_vco_cal_enable
uint8_t tdd_skip_vco_cal_enable
Definition: ad9361_api.h:58
REG_TX_FILTER_COEF_READ_DATA_2
#define REG_TX_FILTER_COEF_READ_DATA_2
Definition: ad9361.h:134
ad9361_phy_platform_data::ad9361_clkout_mode
enum ad9361_clkout ad9361_clkout_mode
Definition: ad9361.h:3203
ad9361_do_dcxo_tune_coarse
int32_t ad9361_do_dcxo_tune_coarse(struct ad9361_rf_phy *phy, uint32_t coarse)
Definition: ad9361_api.c:2193
AD9361_InitParam::aux_dac1_tx_delay_us
uint32_t aux_dac1_tx_delay_us
Definition: ad9361_api.h:185
AD9361_InitParam::aux_dac1_active_in_tx_enable
uint8_t aux_dac1_active_in_tx_enable
Definition: ad9361_api.h:182
ad9361_rf_phy::gpio_desc_cal_sw1
struct no_os_gpio_desc * gpio_desc_cal_sw1
Definition: ad9361.h:3339
TX_REFCLK
@ TX_REFCLK
Definition: ad9361.h:3263
ad9361_get_tx_rssi
int32_t ad9361_get_tx_rssi(struct ad9361_rf_phy *phy, uint8_t ch, uint32_t *rssi_db_x_1000)
Definition: ad9361_api.c:1687
ad9361_set_ensm_mode
int32_t ad9361_set_ensm_mode(struct ad9361_rf_phy *phy, bool fdd, bool pinctrl)
Definition: ad9361.c:4908
gain_control::f_agc_state_wait_time_ns
uint32_t f_agc_state_wait_time_ns
Definition: ad9361.h:2975
ad9361_rf_phy::bypass_rx_fir
bool bypass_rx_fir
Definition: ad9361.h:3380
ad9361_set_tx_lo_freq
int32_t ad9361_set_tx_lo_freq(struct ad9361_rf_phy *phy, uint64_t lo_freq_hz)
Definition: ad9361_api.c:1517
AD9361_InitParam::elna_rx1_gpo0_control_enable
uint8_t elna_rx1_gpo0_control_enable
Definition: ad9361_api.h:204
axi_adc_read
int32_t axi_adc_read(struct axi_adc *adc, uint32_t reg_addr, uint32_t *reg_data)
AXI ADC Data read.
Definition: axi_adc_core.c:55
ad9361_phy_platform_data::rx1tx1_mode_use_rx_num
uint32_t rx1tx1_mode_use_rx_num
Definition: ad9361.h:3188
gain_control::f_agc_lock_level_lmt_gain_increase_en
bool f_agc_lock_level_lmt_gain_increase_en
Definition: ad9361.h:2983
ENSM_STATE_RX
#define ENSM_STATE_RX
Definition: ad9361.h:759
AD9361_InitParam::frequency_division_duplex_independent_mode_enable
uint8_t frequency_division_duplex_independent_mode_enable
Definition: ad9361_api.h:56
ad9361_synth_lo_powerdown
int ad9361_synth_lo_powerdown(struct ad9361_rf_phy *phy, enum synth_pd_ctrl rx, enum synth_pd_ctrl tx)
Definition: ad9361.c:3468
AD9361_InitParam::fagc_lock_level_gain_increase_upper_limit
uint32_t fagc_lock_level_gain_increase_upper_limit
Definition: ad9361_api.h:146
gain_control::dig_saturation_exceed_counter
uint8_t dig_saturation_exceed_counter
Definition: ad9361.h:2963
ad9361_set_rx_quad_track_en_dis
int32_t ad9361_set_rx_quad_track_en_dis(struct ad9361_rf_phy *phy, uint8_t en_dis)
Definition: ad9361_api.c:1200
ad9361_rf_phy::bist_tone_level_dB
uint32_t bist_tone_level_dB
Definition: ad9361.h:3409
ad9361_clk_factor_recalc_rate
uint32_t ad9361_clk_factor_recalc_rate(struct refclk_scale *clk_priv, uint32_t parent_rate)
Definition: ad9361.c:6489
AD9361_TXFIRConfig::tx_gain
int32_t tx_gain
Definition: ad9361_api.h:306
ad9361_get_rx_lo_freq
int32_t ad9361_get_rx_lo_freq(struct ad9361_rf_phy *phy, uint64_t *lo_freq_hz)
Definition: ad9361_api.c:894
gain_control::agc_outer_thresh_low
uint8_t agc_outer_thresh_low
Definition: ad9361.h:2950
ad9361_set_no_ch_mode
int32_t ad9361_set_no_ch_mode(struct ad9361_rf_phy *phy, uint8_t no_ch_mode)
Definition: ad9361_api.c:1932
ad9361_phy_platform_data::rf_rx_bandwidth_Hz
uint32_t rf_rx_bandwidth_Hz
Definition: ad9361.h:3195
ad9361_setup
int32_t ad9361_setup(struct ad9361_rf_phy *phy)
Definition: ad9361.c:5363
gain_control::lmt_overload_low_thresh
uint16_t lmt_overload_low_thresh
Definition: ad9361.h:2925
TX_LO_POWER_DOWN
#define TX_LO_POWER_DOWN
Definition: ad9361.h:947
ad9361_get_en_state_machine_mode
int32_t ad9361_get_en_state_machine_mode(struct ad9361_rf_phy *phy, uint32_t *mode)
Definition: ad9361_api.c:684
ad9361_phy_platform_data::rx1rx2_phase_inversion_en
bool rx1rx2_phase_inversion_en
Definition: ad9361.h:3174
ad9361_get_rx_rf_gain
int32_t ad9361_get_rx_rf_gain(struct ad9361_rf_phy *phy, uint8_t ch, int32_t *gain_db)
Definition: ad9361_api.c:769
ad9361_rf_phy::rx_fir_dec
uint8_t rx_fir_dec
Definition: ad9361.h:3390
ad9361_rx_fastlock_save
int32_t ad9361_rx_fastlock_save(struct ad9361_rf_phy *phy, uint32_t profile, uint8_t *values)
Definition: ad9361_api.c:1334
ad9361_phy_platform_data::gpo_ctrl
struct gpo_control gpo_ctrl
Definition: ad9361.h:3212
ad9361_rfpll_int_recalc_rate
uint32_t ad9361_rfpll_int_recalc_rate(struct refclk_scale *clk_priv, uint32_t parent_rate)
Definition: ad9361.c:6778
ad9361_phy_platform_data::auxadc_ctrl
struct auxadc_control auxadc_ctrl
Definition: ad9361.h:3210
AD9361_InitParam::agc_sync_for_gain_counter_enable
uint8_t agc_sync_for_gain_counter_enable
Definition: ad9361_api.h:136
ad9361_set_en_state_machine_mode
int32_t ad9361_set_en_state_machine_mode(struct ad9361_rf_phy *phy, uint32_t mode)
Definition: ad9361_api.c:632
ad9361_get_tx_lo_freq
int32_t ad9361_get_tx_lo_freq(struct ad9361_rf_phy *phy, uint64_t *lo_freq_hz)
Definition: ad9361_api.c:1534
ON
#define ON
Definition: ad9361_api.h:359
ad9361_rf_phy::gpio_desc_resetb
struct no_os_gpio_desc * gpio_desc_resetb
Definition: ad9361.h:3337
AD9361_InitParam::rx_fastlock_delay_ns
uint32_t rx_fastlock_delay_ns
Definition: ad9361_api.h:60
AD9361_InitParam::aux_dac2_active_in_rx_enable
uint8_t aux_dac2_active_in_rx_enable
Definition: ad9361_api.h:187
ad9361_set_rx_lo_freq
int32_t ad9361_set_rx_lo_freq(struct ad9361_rf_phy *phy, uint64_t lo_freq_hz)
Definition: ad9361_api.c:877
ad9361_rf_phy::auto_cal_en
bool auto_cal_en
Definition: ad9361.h:3364
ad9361_clkout
ad9361_clkout
Definition: ad9361.h:3151
AD9361_InitParam::gc_low_power_thresh
uint8_t gc_low_power_thresh
Definition: ad9361_api.h:105
T2_CLK
@ T2_CLK
Definition: ad9361.h:3271
ad9361_load_fir_filter_coef
int32_t ad9361_load_fir_filter_coef(struct ad9361_rf_phy *phy, enum fir_dest dest, int32_t gain_dB, uint32_t ntaps, int16_t *coef)
Definition: ad9361.c:5829
tx_monitor_control::tx_mon_duration
uint16_t tx_mon_duration
Definition: ad9361.h:3124
ENSM_STATE_ALERT
#define ENSM_STATE_ALERT
Definition: ad9361.h:756
gain_control::agc_attack_delay_extra_margin_us
uint8_t agc_attack_delay_extra_margin_us
Definition: ad9361.h:2942
gain_control::mgc_split_table_ctrl_inp_gain_mode
uint8_t mgc_split_table_ctrl_inp_gain_mode
Definition: ad9361.h:2939
no_os_clk_set_rate
int32_t no_os_clk_set_rate(struct no_os_clk_desc *desc, uint64_t rate)
ad9361_set_tx_fir_config
int32_t ad9361_set_tx_fir_config(struct ad9361_rf_phy *phy, AD9361_TXFIRConfig fir_cfg)
Definition: ad9361_api.c:1572
AD9361_InitParam::single_data_rate_enable
uint8_t single_data_rate_enable
Definition: ad9361_api.h:222
AD9361_InitParam::gpo0_slave_rx_enable
uint8_t gpo0_slave_rx_enable
Definition: ad9361_api.h:245
ad9361_phy_platform_data::tx_atten
int32_t tx_atten
Definition: ad9361.h:3197
ad9361_rf_phy::rx_adc
struct axi_adc * rx_adc
Definition: ad9361.h:3342
tx_monitor_control::tx_mon_track_en
bool tx_mon_track_en
Definition: ad9361.h:3118
AD9361_InitParam::gc_lmt_overload_low_thresh
uint16_t gc_lmt_overload_low_thresh
Definition: ad9361_api.h:104
ad9361_set_gain_ctrl_mode
int32_t ad9361_set_gain_ctrl_mode(struct ad9361_rf_phy *phy, struct rf_gain_ctrl *gain_ctrl)
Definition: ad9361.c:2378
PRODUCT_ID_MASK
#define PRODUCT_ID_MASK
Definition: ad9361.h:854
clk_get_rate
uint32_t clk_get_rate(struct ad9361_rf_phy *phy, struct refclk_scale *clk_priv)
clk_get_rate
Definition: ad9361_util.c:61
AD9361_TXFIRConfig::tx
uint32_t tx
Definition: ad9361_api.h:305
ad9361_rf_phy::dev_sel
enum dev_id dev_sel
Definition: ad9361.h:3335
AD9361_InitParam::gpo3_slave_tx_enable
uint8_t gpo3_slave_tx_enable
Definition: ad9361_api.h:252
AD9361_InitParam::gpo0_rx_delay_us
uint8_t gpo0_rx_delay_us
Definition: ad9361_api.h:253
ad9361_get_rx_gain_control_mode
int32_t ad9361_get_rx_gain_control_mode(struct ad9361_rf_phy *phy, uint8_t ch, uint8_t *gc_mode)
Definition: ad9361_api.c:989
REG_RX_FILTER_CONFIG
#define REG_RX_FILTER_CONFIG
Definition: ad9361.h:218
AD9361_RXFIRConfig::rx_coef
int16_t rx_coef[128]
Definition: ad9361_api.h:298
ad9361_phy_platform_data::ensm_pin_pulse_mode
bool ensm_pin_pulse_mode
Definition: ad9361.h:3167
AD9361_InitParam::fagc_lp_thresh_increment_steps
uint32_t fagc_lp_thresh_increment_steps
Definition: ad9361_api.h:143
ad9361_tx_fastlock_save
int32_t ad9361_tx_fastlock_save(struct ad9361_rf_phy *phy, uint32_t profile, uint8_t *values)
Definition: ad9361_api.c:1849
gain_control::f_agc_lpf_final_settling_steps
uint8_t f_agc_lpf_final_settling_steps
Definition: ad9361.h:2986
AD9361_InitParam::agc_adc_lmt_small_overload_prevent_gain_inc_enable
uint8_t agc_adc_lmt_small_overload_prevent_gain_inc_enable
Definition: ad9361_api.h:117
ad9361_rf_phy::filt_rx_bw_Hz
uint32_t filt_rx_bw_Hz
Definition: ad9361.h:3386
gain_control::agc_inner_thresh_high
uint8_t agc_inner_thresh_high
Definition: ad9361.h:2946
AD9361_InitParam::rssi_duration
uint32_t rssi_duration
Definition: ad9361_api.h:171
AD9361_InitParam::tx_fastlock_delay_ns
uint32_t tx_fastlock_delay_ns
Definition: ad9361_api.h:59
ad9361_get_rx_fir_en_dis
int32_t ad9361_get_rx_fir_en_dis(struct ad9361_rf_phy *phy, uint8_t *en_dis)
Definition: ad9361_api.c:1107
ad9361_ensm_set_state
int32_t ad9361_ensm_set_state(struct ad9361_rf_phy *phy, uint8_t ensm_state, bool pinctrl)
Definition: ad9361.c:4434
ad9361_rf_phy::bist_tone_mode
enum ad9361_bist_mode bist_tone_mode
Definition: ad9361.h:3407
FILTER_GAIN
#define FILTER_GAIN(x)
Definition: ad9361.h:1335
LO_OFF
@ LO_OFF
Definition: ad9361.h:3324
AD9361_InitParam::agc_lmt_overload_large_inc_steps
uint8_t agc_lmt_overload_large_inc_steps
Definition: ad9361_api.h:129
ad9361_set_tx_attenuation
int32_t ad9361_set_tx_attenuation(struct ad9361_rf_phy *phy, uint8_t ch, uint32_t attenuation_mdb)
Definition: ad9361_api.c:1381
R2_CLK
@ R2_CLK
Definition: ad9361.h:3266
axi_dac_init
Definition: axi_dac_core.h:68
gain_control::agc_inner_thresh_high_dec_steps
uint8_t agc_inner_thresh_high_dec_steps
Definition: ad9361.h:2947
ad9361_phy_platform_data::use_ext_rx_lo
bool use_ext_rx_lo
Definition: ad9361.h:3172
AD9361_InitParam::rssi_restart_mode
uint8_t rssi_restart_mode
Definition: ad9361_api.h:172
rf_rx_gain::gain_db
int32_t gain_db
Definition: ad9361.h:3218
ad9361_set_rx_fir_config
int32_t ad9361_set_rx_fir_config(struct ad9361_rf_phy *phy, AD9361_RXFIRConfig fir_cfg)
Definition: ad9361_api.c:1005
LO_ON
@ LO_ON
Definition: ad9361.h:3325
no_os_gpio_remove
int32_t no_os_gpio_remove(struct no_os_gpio_desc *desc)
Free the resources allocated by no_os_gpio_get().
Definition: no_os_gpio.c:104
ad9361_get_tx_auto_cal_en_dis
int32_t ad9361_get_tx_auto_cal_en_dis(struct ad9361_rf_phy *phy, uint8_t *en_dis)
Definition: ad9361_api.c:1783
AD9361_InitParam::elna_gain_mdB
uint32_t elna_gain_mdB
Definition: ad9361_api.h:202
ad9361_phy_platform_data::rx2tx2
bool rx2tx2
Definition: ad9361.h:3162
ad9361_rx_fastlock_load
int32_t ad9361_rx_fastlock_load(struct ad9361_rf_phy *phy, uint32_t profile, uint8_t *values)
Definition: ad9361_api.c:1318
auxdac_control::dac2_rx_delay_us
uint8_t dac2_rx_delay_us
Definition: ad9361.h:3030
rssi_restart_mode
rssi_restart_mode
Definition: ad9361.h:3034
AD9361_InitParam::qec_tracking_slow_mode_enable
uint8_t qec_tracking_slow_mode_enable
Definition: ad9361_api.h:72
AD9361_InitParam::rx_rf_port_input_select
uint32_t rx_rf_port_input_select
Definition: ad9361_api.h:86
gain_control::lmt_overload_high_thresh
uint16_t lmt_overload_high_thresh
Definition: ad9361.h:2924
ad9361_set_tx_sampling_freq
int32_t ad9361_set_tx_sampling_freq(struct ad9361_rf_phy *phy, uint32_t sampling_freq_hz)
Definition: ad9361_api.c:1473
ad9361_rf_phy::ad9361_rfpll_ext_round_rate
int32_t(* ad9361_rfpll_ext_round_rate)(struct refclk_scale *clk_priv, uint32_t rate)
Definition: ad9361.h:3349
ad9361_clear_state
void ad9361_clear_state(struct ad9361_rf_phy *phy)
Definition: ad9361.c:5304
gain_control::f_agc_lock_level_gain_increase_upper_limit
uint8_t f_agc_lock_level_gain_increase_upper_limit
Definition: ad9361.h:2984
auxadc_control::temp_sensor_decimation
uint32_t temp_sensor_decimation
Definition: ad9361.h:3086
auxdac_control::dac1_in_alert_en
bool dac1_in_alert_en
Definition: ad9361.h:3022
ad9361_get_rx_rf_bandwidth
int32_t ad9361_get_rx_rf_bandwidth(struct ad9361_rf_phy *phy, uint32_t *bandwidth_hz)
Definition: ad9361_api.c:815
ad9361_phy_platform_data::trx_fastlock_pinctrl_en
bool trx_fastlock_pinctrl_en[2]
Definition: ad9361.h:3201
gain_control::f_agc_rst_gla_large_adc_overload_en
bool f_agc_rst_gla_large_adc_overload_en
Definition: ad9361.h:3003
ad9361_rf_phy
Definition: ad9361.h:3334
gain_control::f_agc_lp_thresh_increment_time
uint8_t f_agc_lp_thresh_increment_time
Definition: ad9361.h:2978
FIR_IS_RX
@ FIR_IS_RX
Definition: ad9361.h:2893
gpo_control::gpo2_slave_tx_en
bool gpo2_slave_tx_en
Definition: ad9361.h:3104
auxdac_control::dac2_in_alert_en
bool dac2_in_alert_en
Definition: ad9361.h:3026
rssi_control::rssi_wait
uint32_t rssi_wait
Definition: ad9361.h:3047
rf_gain_ctrl
Definition: ad9361.h:2896
AD9361_InitParam::two_rx_two_tx_mode_enable
uint8_t two_rx_two_tx_mode_enable
Definition: ad9361_api.h:52
gain_control::f_agc_energy_lost_stronger_sig_gain_lock_exit_cnt
uint8_t f_agc_energy_lost_stronger_sig_gain_lock_exit_cnt
Definition: ad9361.h:3002
AD9361_InitParam::ensm_enable_pin_pulse_mode_enable
uint8_t ensm_enable_pin_pulse_mode_enable
Definition: ad9361_api.h:74
gain_control::f_agc_power_measurement_duration_in_state5
uint8_t f_agc_power_measurement_duration_in_state5
Definition: ad9361.h:3010
ad9361_set_rx_rf_port_input
int32_t ad9361_set_rx_rf_port_input(struct ad9361_rf_phy *phy, uint32_t mode)
Definition: ad9361_api.c:1248
AD9361_InitParam::mgc_inc_gain_step
uint8_t mgc_inc_gain_step
Definition: ad9361_api.h:110
ad9361_phy_platform_data::fdd
bool fdd
Definition: ad9361.h:3163
AD9361_InitParam::fagc_rst_gla_engergy_lost_sig_thresh_below_ll
uint32_t fagc_rst_gla_engergy_lost_sig_thresh_below_ll
Definition: ad9361_api.h:161
ad9361_rx_fastlock_recall
int32_t ad9361_rx_fastlock_recall(struct ad9361_rf_phy *phy, uint32_t profile)
Definition: ad9361_api.c:1301
AD9361_InitParam::fagc_rst_gla_large_adc_overload_en
uint8_t fagc_rst_gla_large_adc_overload_en
Definition: ad9361_api.h:163
AD9361_InitParam::rssi_unit_is_rx_samples_enable
uint8_t rssi_unit_is_rx_samples_enable
Definition: ad9361_api.h:173
AD9361_InitParam::trx_synthesizer_target_fref_overwrite_hz
uint32_t trx_synthesizer_target_fref_overwrite_hz
Definition: ad9361_api.h:71
ad9361_rf_phy::cached_synth_pd
uint8_t cached_synth_pd[2]
Definition: ad9361.h:3358
AD9361_TXFIRConfig::tx_path_clks
uint32_t tx_path_clks[6]
Definition: ad9361_api.h:310
ad9361_get_tx_fir_en_dis
int32_t ad9361_get_tx_fir_en_dis(struct ad9361_rf_phy *phy, uint8_t *en_dis)
Definition: ad9361_api.c:1669
ad9361_rf_phy::ad9361_rfpll_ext_recalc_rate
uint32_t(* ad9361_rfpll_ext_recalc_rate)(struct refclk_scale *clk_priv)
Definition: ad9361.h:3348
ad9361_set_tx_rf_port_output
int32_t ad9361_set_tx_rf_port_output(struct ad9361_rf_phy *phy, uint32_t mode)
Definition: ad9361_api.c:1729
AD9361_InitParam::fagc_energy_lost_stronger_sig_gain_lock_exit_cnt
uint32_t fagc_energy_lost_stronger_sig_gain_lock_exit_cnt
Definition: ad9361_api.h:162
ad9361_set_tx_auto_cal_en_dis
int32_t ad9361_set_tx_auto_cal_en_dis(struct ad9361_rf_phy *phy, uint8_t en_dis)
Definition: ad9361_api.c:1766
ad9361_get_rx_sampling_freq
int32_t ad9361_get_rx_sampling_freq(struct ad9361_rf_phy *phy, uint32_t *sampling_freq_hz)
Definition: ad9361_api.c:858
ad9361_rf_phy::current_rx_bw_Hz
uint32_t current_rx_bw_Hz
Definition: ad9361.h:3376
ad9361_set_trx_path_clks
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:1891
ad9361_validate_enable_fir
int32_t ad9361_validate_enable_fir(struct ad9361_rf_phy *phy)
Definition: ad9361.c:6085
ad9361_set_rx_lo_int_ext
int32_t ad9361_set_rx_lo_int_ext(struct ad9361_rf_phy *phy, uint8_t int_ext)
Definition: ad9361_api.c:912
AD9361_InitParam::dc_offset_count_low_range
uint8_t dc_offset_count_low_range
Definition: ad9361_api.h:69
AD9361_InitParam::fagc_lmt_final_settling_steps
uint32_t fagc_lmt_final_settling_steps
Definition: ad9361_api.h:149
elna_control::gain_mdB
uint16_t gain_mdB
Definition: ad9361.h:3075
ad9361_init
int32_t ad9361_init(struct ad9361_rf_phy **ad9361_phy, AD9361_InitParam *init_param)
Definition: ad9361_api.c:76
AD9361_InitParam::temp_sense_offset_signed
int8_t temp_sense_offset_signed
Definition: ad9361_api.h:195
AD9361_InitParam::temp_sense_periodic_measurement_enable
uint8_t temp_sense_periodic_measurement_enable
Definition: ad9361_api.h:196
AD9361_RXFIRConfig::rx
uint32_t rx
Definition: ad9361_api.h:295
AD9361_InitParam::agc_adc_large_overload_exceed_counter
uint8_t agc_adc_large_overload_exceed_counter
Definition: ad9361_api.h:115
ad9361_phy_platform_data::tdd_use_dual_synth
bool tdd_use_dual_synth
Definition: ad9361.h:3170
AD9361_InitParam::gpo2_slave_rx_enable
uint8_t gpo2_slave_rx_enable
Definition: ad9361_api.h:249
auxadc_control::auxadc_clock_rate
uint32_t auxadc_clock_rate
Definition: ad9361.h:3088
ad9361_rf_phy::quad_track_en
bool quad_track_en
Definition: ad9361.h:3395
AD9361_InitParam::fagc_state_wait_time_ns
uint32_t fagc_state_wait_time_ns
Definition: ad9361_api.h:139
ad9361_rf_phy::tx_fir_int
uint8_t tx_fir_int
Definition: ad9361.h:3388
ad9361_set_tx_rf_bandwidth
int32_t ad9361_set_tx_rf_bandwidth(struct ad9361_rf_phy *phy, uint32_t bandwidth_hz)
Definition: ad9361_api.c:1433
gain_table_info
Definition: ad9361.h:2877
AD9361_InitParam::gpo_manual_mode_enable_mask
uint32_t gpo_manual_mode_enable_mask
Definition: ad9361_api.h:240
auxadc_control::temp_time_inteval_ms
uint32_t temp_time_inteval_ms
Definition: ad9361.h:3085
ad9361_phy_platform_data::dc_offset_attenuation_low
uint8_t dc_offset_attenuation_low
Definition: ad9361.h:3178
REG_PRODUCT_ID
#define REG_PRODUCT_ID
Definition: ad9361.h:98
ad9361_phy_platform_data::elna_ctrl
struct elna_control elna_ctrl
Definition: ad9361.h:3209
gain_control::mgc_dec_gain_step
uint8_t mgc_dec_gain_step
Definition: ad9361.h:2938
ad9361_phy_platform_data::debug_mode
bool debug_mode
Definition: ad9361.h:3169
ad9361_get_tx_lo_power
int32_t ad9361_get_tx_lo_power(struct ad9361_rf_phy *phy, uint8_t *option)
Definition: ad9361_api.c:1875
CLKTF_CLK
@ CLKTF_CLK
Definition: ad9361.h:3273
ad9361_get_tx_rf_port_output
int32_t ad9361_get_tx_rf_port_output(struct ad9361_rf_phy *phy, uint32_t *mode)
Definition: ad9361_api.c:1749
tx_monitor_control::low_high_gain_threshold_mdB
uint32_t low_high_gain_threshold_mdB
Definition: ad9361.h:3120
ad9361_get_rx_rfdc_track_en_dis
int32_t ad9361_get_rx_rfdc_track_en_dis(struct ad9361_rf_phy *phy, uint8_t *en_dis)
Definition: ad9361_api.c:1145
ad9361_set_rx_rf_port_input
int32_t ad9361_set_rx_rf_port_input(struct ad9361_rf_phy *phy, uint32_t mode)
Definition: ad9361_api.c:1248
ad9361_phy_platform_data::rx_synth_freq
uint64_t rx_synth_freq
Definition: ad9361.h:3193
REG_RX_FILTER_COEF_READ_DATA_2
#define REG_RX_FILTER_COEF_READ_DATA_2
Definition: ad9361.h:217
ad9361_get_rx_quad_track_en_dis
int32_t ad9361_get_rx_quad_track_en_dis(struct ad9361_rf_phy *phy, uint8_t *en_dis)
Definition: ad9361_api.c:1221
ad9361_rf_phy::ref_clk_scale
struct refclk_scale * ref_clk_scale[NUM_AD9361_CLKS]
Definition: ad9361.h:3347
ad9361_to_clk
uint32_t ad9361_to_clk(uint64_t freq)
Definition: ad9361.c:1392
AD9361_InitParam::rx_synthesizer_frequency_hz
uint64_t rx_synthesizer_frequency_hz
Definition: ad9361_api.h:77
AD9361_InitParam::gc_max_dig_gain
uint8_t gc_max_dig_gain
Definition: ad9361_api.h:106
no_os_gpio_get
int32_t no_os_gpio_get(struct no_os_gpio_desc **desc, const struct no_os_gpio_init_param *param)
Obtain the GPIO decriptor.
Definition: no_os_gpio.c:49
ad9361_set_tx_atten
int32_t ad9361_set_tx_atten(struct ad9361_rf_phy *phy, uint32_t atten_mdb, bool tx1, bool tx2, bool immed)
Definition: ad9361.c:1642
AD9361_InitParam::agc_immed_gain_change_if_large_adc_overload_enable
uint8_t agc_immed_gain_change_if_large_adc_overload_enable
Definition: ad9361_api.h:122
RX_RFPLL
@ RX_RFPLL
Definition: ad9361.h:3279
AD9361_InitParam::lvds_rx_onchip_termination_enable
uint8_t lvds_rx_onchip_termination_enable
Definition: ad9361_api.h:234
AD9361_InitParam::aux_dac_manual_mode_enable
uint8_t aux_dac_manual_mode_enable
Definition: ad9361_api.h:179
AD9361_TXFIRConfig::tx_coef
int16_t tx_coef[128]
Definition: ad9361_api.h:308
ad9361_tx_fastlock_load
int32_t ad9361_tx_fastlock_load(struct ad9361_rf_phy *phy, uint32_t profile, uint8_t *values)
Definition: ad9361_api.c:1833
ad9361_do_calib
int32_t ad9361_do_calib(struct ad9361_rf_phy *phy, uint32_t cal, int32_t arg)
Definition: ad9361_api.c:2125
AD9361_InitParam::lvds_invert1_control
uint8_t lvds_invert1_control
Definition: ad9361_api.h:236
ad9361_get_rx_rssi
int32_t ad9361_get_rx_rssi(struct ad9361_rf_phy *phy, uint8_t ch, struct rf_rssi *rssi)
Definition: ad9361_api.c:936
AD9361_InitParam::tx1_mon_front_end_gain
uint32_t tx1_mon_front_end_gain
Definition: ad9361_api.h:269
DAC_CLK
@ DAC_CLK
Definition: ad9361.h:3270
AD9361_InitParam::fagc_rst_gla_stronger_sig_thresh_exceeded_en
uint8_t fagc_rst_gla_stronger_sig_thresh_exceeded_en
Definition: ad9361_api.h:156
gain_control::max_dig_gain
uint8_t max_dig_gain
Definition: ad9361.h:2931
REG_TX_RSSI_LSB
#define REG_TX_RSSI_LSB
Definition: ad9361.h:142
gain_control::f_agc_rst_gla_en_agc_pulled_high_en
bool f_agc_rst_gla_en_agc_pulled_high_en
Definition: ad9361.h:3005
tx_monitor_control::tx2_mon_lo_cm
uint8_t tx2_mon_lo_cm
Definition: ad9361.h:3128
AD9364_DEVICE
#define AD9364_DEVICE
Definition: app_config.h:40
rssi_control::restart_mode
enum rssi_restart_mode restart_mode
Definition: ad9361.h:3044
AD9361_InitParam::elna_bypass_loss_mdB
uint32_t elna_bypass_loss_mdB
Definition: ad9361_api.h:203
ad9361_get_rx_gain_control_mode
int32_t ad9361_get_rx_gain_control_mode(struct ad9361_rf_phy *phy, uint8_t ch, uint8_t *gc_mode)
Definition: ad9361_api.c:989
ad9361_get_rx_lo_power
int32_t ad9361_get_rx_lo_power(struct ad9361_rf_phy *phy, uint8_t *option)
Definition: ad9361_api.c:1360
ad9361_set_tx_rf_port_output
int32_t ad9361_set_tx_rf_port_output(struct ad9361_rf_phy *phy, uint32_t mode)
Definition: ad9361_api.c:1729
ad9361_phy_platform_data::gain_ctrl
struct gain_control gain_ctrl
Definition: ad9361.h:3205
ctrl_outs_control::en_mask
uint8_t en_mask
Definition: ad9361.h:3071
AD9361_TXFIRConfig
Definition: ad9361_api.h:304
rf_gain_ctrl::mode
uint8_t mode
Definition: ad9361.h:2898
auxdac_control::auxdac_manual_mode_en
bool auxdac_manual_mode_en
Definition: ad9361.h:3018
auxdac_control::dac2_in_tx_en
bool dac2_in_tx_en
Definition: ad9361.h:3025
ad9361_get_temperature
int32_t ad9361_get_temperature(struct ad9361_rf_phy *phy, int32_t *temp)
Definition: ad9361_api.c:2223
auxdac_control::dac1_in_rx_en
bool dac1_in_rx_en
Definition: ad9361.h:3020
AD9361_InitParam::aux_dac1_rx_delay_us
uint32_t aux_dac1_rx_delay_us
Definition: ad9361_api.h:184
gpo_control::gpo1_rx_delay_us
uint8_t gpo1_rx_delay_us
Definition: ad9361.h:3109
TX_RFPLL_INT
@ TX_RFPLL_INT
Definition: ad9361.h:3276
ad9361_rf_phy::bist_tone_mask
uint32_t bist_tone_mask
Definition: ad9361.h:3410
EXT_LO
#define EXT_LO
Definition: ad9361_api.h:357
AD9361_InitParam::split_gain_table_mode_enable
uint8_t split_gain_table_mode_enable
Definition: ad9361_api.h:70
ad9361_phy_platform_data::ensm_pin_ctrl
bool ensm_pin_ctrl
Definition: ad9361.h:3168
ad9361_rf_phy::rx_eq_2tx
bool rx_eq_2tx
Definition: ad9361.h:3382
AD9361_InitParam::aux_dac2_active_in_tx_enable
uint8_t aux_dac2_active_in_tx_enable
Definition: ad9361_api.h:188
ad9361_set_rx_fir_config
int32_t ad9361_set_rx_fir_config(struct ad9361_rf_phy *phy, AD9361_RXFIRConfig fir_cfg)
Definition: ad9361_api.c:1005
FIR_NUM_TAPS
#define FIR_NUM_TAPS(x)
Definition: ad9361.h:1023
ad9361_get_tx_sampling_freq
int32_t ad9361_get_tx_sampling_freq(struct ad9361_rf_phy *phy, uint32_t *sampling_freq_hz)
Definition: ad9361_api.c:1498
AD9361_InitParam::pp_tx_swap_enable
uint8_t pp_tx_swap_enable
Definition: ad9361_api.h:210
FIR_SELECT
#define FIR_SELECT(x)
Definition: ad9361.h:1022
ad9361_get_rx_fir_config
int32_t ad9361_get_rx_fir_config(struct ad9361_rf_phy *phy, uint8_t rx_ch, AD9361_RXFIRConfig *fir_cfg)
Definition: ad9361_api.c:1027
RX_SAMPL_FREQ
@ RX_SAMPL_FREQ
Definition: ad9361.h:3137
no_os_free
void no_os_free(void *ptr)
Deallocate memory previously allocated by a call to no_os_calloc or no_os_malloc.
Definition: chibios_alloc.c:69
ad9361_get_rx_rssi
int32_t ad9361_get_rx_rssi(struct ad9361_rf_phy *phy, uint8_t ch, struct rf_rssi *rssi)
Definition: ad9361_api.c:936
AD9361_InitParam::ctrl_outs_index
uint8_t ctrl_outs_index
Definition: ad9361_api.h:199
REG_RX_FILTER_COEF_READ_DATA_1
#define REG_RX_FILTER_COEF_READ_DATA_1
Definition: ad9361.h:216
ad9361_get_trx_path_clks
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:1914
AD9361_InitParam::elna_settling_delay_ns
uint32_t elna_settling_delay_ns
Definition: ad9361_api.h:201
ad9361_rf_phy::rate_governor
uint32_t rate_governor
Definition: ad9361.h:3379
AD9361_InitParam::gpo1_inactive_state_high_enable
uint8_t gpo1_inactive_state_high_enable
Definition: ad9361_api.h:242
AD9361_InitParam::fagc_rst_gla_engergy_lost_goto_optim_gain_en
uint8_t fagc_rst_gla_engergy_lost_goto_optim_gain_en
Definition: ad9361_api.h:160
AD9361_InitParam::fagc_final_overrange_count
uint32_t fagc_final_overrange_count
Definition: ad9361_api.h:150
ad9361_set_rx_fir_en_dis
int32_t ad9361_set_rx_fir_en_dis(struct ad9361_rf_phy *phy, uint8_t en_dis)
Definition: ad9361_api.c:1084
AD9361_InitParam::aux_dac2_active_in_alert_enable
uint8_t aux_dac2_active_in_alert_enable
Definition: ad9361_api.h:189
ad9361_mcs
int32_t ad9361_mcs(struct ad9361_rf_phy *phy, int32_t step)
Definition: ad9361.c:5249
gpo_control::gpo3_rx_delay_us
uint8_t gpo3_rx_delay_us
Definition: ad9361.h:3113
AD9361_TXFIRConfig::tx_int
uint32_t tx_int
Definition: ad9361_api.h:307
gpo_control::gpo1_slave_tx_en
bool gpo1_slave_tx_en
Definition: ad9361.h:3102
gpo_control::gpo1_inactive_state_high_en
bool gpo1_inactive_state_high_en
Definition: ad9361.h:3096
ENSM_MODE_WAIT
@ ENSM_MODE_WAIT
Definition: ad9361_api.h:319
axi_adc_init
int32_t axi_adc_init(struct axi_adc **adc_core, const struct axi_adc_init *init)
AXI ADC Main Initialization.
Definition: axi_adc_core.c:641
AD9361_TXFIRConfig::tx_coef_size
uint8_t tx_coef_size
Definition: ad9361_api.h:309
AD9361_InitParam::low_high_gain_threshold_mdB
uint32_t low_high_gain_threshold_mdB
Definition: ad9361_api.h:262
AD9361_InitParam::rx1rx2_phase_inversion_en
uint8_t rx1rx2_phase_inversion_en
Definition: ad9361_api.h:235
TX_FIR_GAIN_6DB
#define TX_FIR_GAIN_6DB
Definition: ad9361.h:1019
TX_RFPLL_DUMMY
@ TX_RFPLL_DUMMY
Definition: ad9361.h:3278
ad9361_from_clk
uint64_t ad9361_from_clk(uint32_t freq)
Definition: ad9361.c:1403
port_control::lvds_invert
uint8_t lvds_invert[2]
Definition: ad9361.h:3066
AD9361_InitParam::xo_disable_use_ext_refclk_enable
uint8_t xo_disable_use_ext_refclk_enable
Definition: ad9361_api.h:92
gpo_control::gpo2_slave_rx_en
bool gpo2_slave_rx_en
Definition: ad9361.h:3103
gain_control::f_agc_large_overload_inc_steps
uint8_t f_agc_large_overload_inc_steps
Definition: ad9361.h:3011
ad9361_phy_platform_data
Definition: ad9361.h:3161
rssi_control::rssi_delay
uint32_t rssi_delay
Definition: ad9361.h:3046
ad9361_set_rx_rfdc_track_en_dis
int32_t ad9361_set_rx_rfdc_track_en_dis(struct ad9361_rf_phy *phy, uint8_t en_dis)
Definition: ad9361_api.c:1124
AD9361_InitParam::agc_attack_delay_extra_margin_us
uint32_t agc_attack_delay_extra_margin_us
Definition: ad9361_api.h:135
AD9361_RXFIRConfig::rx_dec
uint32_t rx_dec
Definition: ad9361_api.h:297
ad9361_do_dcxo_tune_fine
int32_t ad9361_do_dcxo_tune_fine(struct ad9361_rf_phy *phy, uint32_t fine)
Definition: ad9361_api.c:2208
gpo_control::gpo2_inactive_state_high_en
bool gpo2_inactive_state_high_en
Definition: ad9361.h:3097
REG_SPI_CONF
#define REG_SPI_CONF
Definition: ad9361.h:45
ad9361_rf_phy::ad9361_rfpll_ext_set_rate
int32_t(* ad9361_rfpll_ext_set_rate)(struct refclk_scale *clk_priv, uint32_t rate)
Definition: ad9361.h:3351
REG_RX_FILTER_GAIN
#define REG_RX_FILTER_GAIN
Definition: ad9361.h:219
ad9361_phy_platform_data::dc_offset_update_events
uint8_t dc_offset_update_events
Definition: ad9361.h:3176
ad9361_get_rx_rfdc_track_en_dis
int32_t ad9361_get_rx_rfdc_track_en_dis(struct ad9361_rf_phy *phy, uint8_t *en_dis)
Definition: ad9361_api.c:1145
AD9361_InitParam::aux_adc_decimation
uint32_t aux_adc_decimation
Definition: ad9361_api.h:176
auxadc_control::auxadc_decimation
uint32_t auxadc_decimation
Definition: ad9361.h:3089
gain_control::f_agc_rst_gla_stronger_sig_thresh_above_ll
uint8_t f_agc_rst_gla_stronger_sig_thresh_above_ll
Definition: ad9361.h:2998
ad9361_phy_platform_data::ctrl_outs_ctrl
struct ctrl_outs_control ctrl_outs_ctrl
Definition: ad9361.h:3208
auxdac_control::dac2_tx_delay_us
uint8_t dac2_tx_delay_us
Definition: ad9361.h:3031
gain_control::mgc_rx2_ctrl_inp_en
bool mgc_rx2_ctrl_inp_en
Definition: ad9361.h:2935
ad9361_get_rx_rf_port_input
int32_t ad9361_get_rx_rf_port_input(struct ad9361_rf_phy *phy, uint32_t *mode)
Definition: ad9361_api.c:1268
init_param
struct ad7616_init_param init_param
Definition: ad7616_sdz.c:113
AD9361_InitParam::fagc_dec_pow_measuremnt_duration
uint32_t fagc_dec_pow_measuremnt_duration
Definition: ad9361_api.h:138
ad9361_read_rssi
int32_t ad9361_read_rssi(struct ad9361_rf_phy *phy, struct rf_rssi *rssi)
Definition: ad9361.c:2453
tx_monitor_control::low_gain_dB
uint8_t low_gain_dB
Definition: ad9361.h:3121
ad9361_phy
struct ad9361_rf_phy * ad9361_phy
Definition: main.c:510
R1_CLK
@ R1_CLK
Definition: ad9361.h:3267
port_control::digital_io_ctrl
uint8_t digital_io_ctrl
Definition: ad9361.h:3064
gain_control::adc_small_overload_thresh
uint8_t adc_small_overload_thresh
Definition: ad9361.h:2921
ad9361_do_calib_run
int32_t ad9361_do_calib_run(struct ad9361_rf_phy *phy, uint32_t cal, int32_t arg)
Definition: ad9361.c:5677
gain_control::agc_outer_thresh_low_inc_steps
uint8_t agc_outer_thresh_low_inc_steps
Definition: ad9361.h:2951
rf_gain_ctrl::ant
uint32_t ant
Definition: ad9361.h:2897
AD9361_InitParam::aux_dac1_active_in_rx_enable
uint8_t aux_dac1_active_in_rx_enable
Definition: ad9361_api.h:181
ad9361_rf_phy::filt_tx_bw_Hz
uint32_t filt_tx_bw_Hz
Definition: ad9361.h:3387
AD9361_InitParam::swap_ports_enable
uint8_t swap_ports_enable
Definition: ad9361_api.h:221
AD9361_InitParam::rx_adc_init
struct axi_adc_init * rx_adc_init
Definition: ad9361_api.h:289
ad9361_set_rx_lo_freq
int32_t ad9361_set_rx_lo_freq(struct ad9361_rf_phy *phy, uint64_t lo_freq_hz)
Definition: ad9361_api.c:877
ad9361_rf_phy::current_table
uint32_t current_table
Definition: ad9361.h:3360
ad9361_remove
int32_t ad9361_remove(struct ad9361_rf_phy *phy)
Definition: ad9361_api.c:596
AD9361_InitParam::fagc_rst_gla_large_lmt_overload_en
uint8_t fagc_rst_gla_large_lmt_overload_en
Definition: ad9361_api.h:164
gain_control::f_agc_lp_thresh_increment_steps
uint8_t f_agc_lp_thresh_increment_steps
Definition: ad9361.h:2979
ad9361_rx_fastlock_recall
int32_t ad9361_rx_fastlock_recall(struct ad9361_rf_phy *phy, uint32_t profile)
Definition: ad9361_api.c:1301
AD9361_InitParam::gpo0_slave_tx_enable
uint8_t gpo0_slave_tx_enable
Definition: ad9361_api.h:246
ad9361_rx_fastlock_save
int32_t ad9361_rx_fastlock_save(struct ad9361_rf_phy *phy, uint32_t profile, uint8_t *values)
Definition: ad9361_api.c:1334
ADI_REG_VERSION
#define ADI_REG_VERSION
Definition: ad9361_api.c:63
elna_control::settling_delay_ns
uint32_t settling_delay_ns
Definition: ad9361.h:3077
gain_control::f_agc_dec_pow_measuremnt_duration
uint32_t f_agc_dec_pow_measuremnt_duration
Definition: ad9361.h:2974
AD9361_InitParam::rf_tx_bandwidth_hz
uint32_t rf_tx_bandwidth_hz
Definition: ad9361_api.h:84
ad9361_set_tx_sampling_freq
int32_t ad9361_set_tx_sampling_freq(struct ad9361_rf_phy *phy, uint32_t sampling_freq_hz)
Definition: ad9361_api.c:1473
AD9361_InitParam::gpo1_slave_rx_enable
uint8_t gpo1_slave_rx_enable
Definition: ad9361_api.h:247
AD9361_InitParam::tx_rf_port_input_select
uint32_t tx_rf_port_input_select
Definition: ad9361_api.h:87
REG_ENSM_CONFIG_1
#define REG_ENSM_CONFIG_1
Definition: ad9361.h:64
ad9361_get_rx_lo_power
int32_t ad9361_get_rx_lo_power(struct ad9361_rf_phy *phy, uint8_t *option)
Definition: ad9361_api.c:1360
gain_control::f_agc_use_last_lock_level_for_set_gain_en
bool f_agc_use_last_lock_level_for_set_gain_en
Definition: ad9361.h:2995
ad9361_get_rx_rf_port_input
int32_t ad9361_get_rx_rf_port_input(struct ad9361_rf_phy *phy, uint32_t *mode)
Definition: ad9361_api.c:1268
ad9361_rf_phy::current_tx_bw_Hz
uint32_t current_tx_bw_Hz
Definition: ad9361.h:3377
AD9361_InitParam::agc_dig_saturation_exceed_counter
uint8_t agc_dig_saturation_exceed_counter
Definition: ad9361_api.h:120
ad9361_do_mcs
int32_t ad9361_do_mcs(struct ad9361_rf_phy *phy_master, struct ad9361_rf_phy *phy_slave)
Definition: ad9361_api.c:2015
gpo_control::gpo1_tx_delay_us
uint8_t gpo1_tx_delay_us
Definition: ad9361.h:3110
ad9361_set_rx_rf_bandwidth
int32_t ad9361_set_rx_rf_bandwidth(struct ad9361_rf_phy *phy, uint32_t bandwidth_hz)
Definition: ad9361_api.c:793
ADC_CLK
@ ADC_CLK
Definition: ad9361.h:3265
ad9361_set_rx_sampling_freq
int32_t ad9361_set_rx_sampling_freq(struct ad9361_rf_phy *phy, uint32_t sampling_freq_hz)
Definition: ad9361_api.c:833
no_os_spi_remove
int32_t no_os_spi_remove(struct no_os_spi_desc *desc)
Free the resources allocated by no_os_spi_init().
Definition: no_os_spi.c:116
RX_RFPLL_INT
@ RX_RFPLL_INT
Definition: ad9361.h:3275
REG_RX_CLOCK_DATA_DELAY
#define REG_RX_CLOCK_DATA_DELAY
Definition: ad9361.h:51
ad9361_unregister_clocks
int32_t ad9361_unregister_clocks(struct ad9361_rf_phy *phy)
Definition: ad9361.c:7403
gain_control::f_agc_final_overrange_count
uint8_t f_agc_final_overrange_count
Definition: ad9361.h:2988
ENSM_STATE
#define ENSM_STATE(x)
Definition: ad9361.h:754
ad9361_phy_platform_data::rf_dc_offset_count_high
uint8_t rf_dc_offset_count_high
Definition: ad9361.h:3179
ad9361_get_rx_gain
int32_t ad9361_get_rx_gain(struct ad9361_rf_phy *phy, uint32_t rx_id, struct rf_rx_gain *rx_gain)
Definition: ad9361.c:1910
gpo_control::gpo0_rx_delay_us
uint8_t gpo0_rx_delay_us
Definition: ad9361.h:3107
rssi_control::rssi_duration
uint32_t rssi_duration
Definition: ad9361.h:3048
AD9361_InitParam::lvds_bias_mV
uint32_t lvds_bias_mV
Definition: ad9361_api.h:233
AD9361_InitParam::fagc_allow_agc_gain_increase
uint8_t fagc_allow_agc_gain_increase
Definition: ad9361_api.h:141
AD9361_InitParam::agc_outer_thresh_high
uint8_t agc_outer_thresh_high
Definition: ad9361_api.h:131
gain_control::lmt_overload_large_exceed_counter
uint8_t lmt_overload_large_exceed_counter
Definition: ad9361.h:2959
ad9361_get_trx_rate_gov
int32_t ad9361_get_trx_rate_gov(struct ad9361_rf_phy *phy, uint32_t *rate_gov)
Definition: ad9361_api.c:2106
AD9361_InitParam::gc_adc_small_overload_thresh
uint8_t gc_adc_small_overload_thresh
Definition: ad9361_api.h:100
ad9361_get_tx_sampling_freq
int32_t ad9361_get_tx_sampling_freq(struct ad9361_rf_phy *phy, uint32_t *sampling_freq_hz)
Definition: ad9361_api.c:1498
ad9361_set_tx_lo_freq
int32_t ad9361_set_tx_lo_freq(struct ad9361_rf_phy *phy, uint64_t lo_freq_hz)
Definition: ad9361_api.c:1517
no_os_gpio.h
Header file of GPIO Interface.
ad9361_bbpll_recalc_rate
uint32_t ad9361_bbpll_recalc_rate(struct refclk_scale *clk_priv, uint32_t parent_rate)
Definition: ad9361.c:6572
ENSM_MODE_TX
@ ENSM_MODE_TX
Definition: ad9361_api.h:315
ad9361_rf_phy::gpio_desc_sync
struct no_os_gpio_desc * gpio_desc_sync
Definition: ad9361.h:3338
gain_control::f_agc_gain_increase_after_gain_lock_en
bool f_agc_gain_increase_after_gain_lock_en
Definition: ad9361.h:2990
ad9361_tx_fastlock_save
int32_t ad9361_tx_fastlock_save(struct ad9361_rf_phy *phy, uint32_t profile, uint8_t *values)
Definition: ad9361_api.c:1849
ad9361_set_rx_quad_track_en_dis
int32_t ad9361_set_rx_quad_track_en_dis(struct ad9361_rf_phy *phy, uint8_t en_dis)
Definition: ad9361_api.c:1200
ad9361_rf_phy::bist_config
int32_t bist_config
Definition: ad9361.h:3405
AD9361_InitParam::gc_use_rx_fir_out_for_dec_pwr_meas_enable
uint8_t gc_use_rx_fir_out_for_dec_pwr_meas_enable
Definition: ad9361_api.h:107
AD9361_InitParam::tx_mon_delay
uint32_t tx_mon_delay
Definition: ad9361_api.h:267
ad9361_get_rx_quad_track_en_dis
int32_t ad9361_get_rx_quad_track_en_dis(struct ad9361_rf_phy *phy, uint8_t *en_dis)
Definition: ad9361_api.c:1221
ad9361_validate_rf_bw
uint32_t ad9361_validate_rf_bw(struct ad9361_rf_phy *phy, uint32_t bw)
Definition: ad9361.c:940
ENSM_MODE_FDD
@ ENSM_MODE_FDD
Definition: ad9361_api.h:318
ad9361_update_rf_bandwidth
int32_t ad9361_update_rf_bandwidth(struct ad9361_rf_phy *phy, uint32_t rf_rx_bw, uint32_t rf_tx_bw)
Definition: ad9361.c:5718
gain_control::f_agc_rst_gla_if_en_agc_pulled_high_mode
enum f_agc_target_gain_index_type f_agc_rst_gla_if_en_agc_pulled_high_mode
Definition: ad9361.h:3008
ENSM_MODE_PINCTRL
@ ENSM_MODE_PINCTRL
Definition: ad9361_api.h:321
AD9361_InitParam::fagc_rst_gla_engergy_lost_sig_thresh_exceeded_en
uint8_t fagc_rst_gla_engergy_lost_sig_thresh_exceeded_en
Definition: ad9361_api.h:159
tx_monitor_control::tx2_mon_front_end_gain
uint8_t tx2_mon_front_end_gain
Definition: ad9361.h:3126
ad9361_phy_platform_data::rssi_ctrl
struct rssi_control rssi_ctrl
Definition: ad9361.h:3206
gain_control::use_rx_fir_out_for_dec_pwr_meas
bool use_rx_fir_out_for_dec_pwr_meas
Definition: ad9361.h:2928
AD9361_InitParam::tx_fb_clock_delay
uint32_t tx_fb_clock_delay
Definition: ad9361_api.h:231
rf_rssi
Definition: ad9361.h:3229
AD9361_InitParam::temp_sense_decimation
uint32_t temp_sense_decimation
Definition: ad9361_api.h:193
AD9361_InitParam::fagc_rst_gla_en_agc_pulled_high_en
uint8_t fagc_rst_gla_en_agc_pulled_high_en
Definition: ad9361_api.h:165
BBPLL_CLK
@ BBPLL_CLK
Definition: ad9361.h:3264
ad9361_rx_lo_powerdown
int32_t ad9361_rx_lo_powerdown(struct ad9361_rf_phy *phy, uint8_t option)
Definition: ad9361_api.c:1349
ad9361_rf_phy::gt_info
struct gain_table_info * gt_info
Definition: ad9361.h:3361
no_os_spi_init
int32_t no_os_spi_init(struct no_os_spi_desc **desc, const struct no_os_spi_init_param *param)
Initialize the SPI communication peripheral.
Definition: no_os_spi.c:52
AD9361_TXFIRConfig::tx_bandwidth
uint32_t tx_bandwidth
Definition: ad9361_api.h:311
AD9361_InitParam::gpo1_rx_delay_us
uint8_t gpo1_rx_delay_us
Definition: ad9361_api.h:255
ad9361_rf_phy::filt_valid
bool filt_valid
Definition: ad9361.h:3383
TX_RSSI_1
#define TX_RSSI_1
Definition: ad9361.h:1046
REG_TX_FILTER_CONF
#define REG_TX_FILTER_CONF
Definition: ad9361.h:135
tx_monitor_control::tx1_mon_front_end_gain
uint8_t tx1_mon_front_end_gain
Definition: ad9361.h:3125
ad9361_get_tx_rf_bandwidth
int32_t ad9361_get_tx_rf_bandwidth(struct ad9361_rf_phy *phy, uint32_t *bandwidth_hz)
Definition: ad9361_api.c:1455
ad9361_phy_platform_data::rx_path_clks
uint32_t rx_path_clks[NUM_RX_CLOCKS]
Definition: ad9361.h:3190
gain_control::dig_gain_step_size
uint8_t dig_gain_step_size
Definition: ad9361.h:2964
no_os_util.h
Header file of utility functions.
AD9361_InitParam::delay_rx_data
uint32_t delay_rx_data
Definition: ad9361_api.h:228
ad9361_tx_lo_powerdown
int32_t ad9361_tx_lo_powerdown(struct ad9361_rf_phy *phy, uint8_t option)
Definition: ad9361_api.c:1864
DATA_CLK_DELAY
#define DATA_CLK_DELAY(x)
Definition: ad9361.h:632
AD9361_InitParam::aux_adc_rate
uint32_t aux_adc_rate
Definition: ad9361_api.h:177
AD9361_InitParam::tx_dac_init
struct axi_dac_init * tx_dac_init
Definition: ad9361_api.h:290
ad9361_get_trx_clock_chain
int32_t ad9361_get_trx_clock_chain(struct ad9361_rf_phy *phy, uint32_t *rx_path_clks, uint32_t *tx_path_clks)
Definition: ad9361.c:4728
AD9361_InitParam::fagc_lock_level_lmt_gain_increase_en
uint8_t fagc_lock_level_lmt_gain_increase_en
Definition: ad9361_api.h:145
ad9361_rf_phy::pdata
struct ad9361_phy_platform_data * pdata
Definition: ad9361.h:3353
profile
CUSTOM_FILE profile
Definition: no_os_platform.c:29
AD9361_InitParam::gpo1_tx_delay_us
uint8_t gpo1_tx_delay_us
Definition: ad9361_api.h:256
elna_control::bypass_loss_mdB
uint16_t bypass_loss_mdB
Definition: ad9361.h:3076
CLKRF_CLK
@ CLKRF_CLK
Definition: ad9361.h:3268
ad9361_rfpll_dummy_recalc_rate
uint32_t ad9361_rfpll_dummy_recalc_rate(struct refclk_scale *clk_priv)
Definition: ad9361.c:6982
ad9361_get_rx_bbdc_track_en_dis
int32_t ad9361_get_rx_bbdc_track_en_dis(struct ad9361_rf_phy *phy, uint8_t *en_dis)
Definition: ad9361_api.c:1183
auxdac_control::dac1_tx_delay_us
uint8_t dac1_tx_delay_us
Definition: ad9361.h:3029
ad9361_phy_platform_data::rx1tx1_mode_use_tx_num
uint32_t rx1tx1_mode_use_tx_num
Definition: ad9361.h:3189
AD9361_InitParam::rssi_delay
uint32_t rssi_delay
Definition: ad9361_api.h:170
ad9361_phy_platform_data::use_extclk
bool use_extclk
Definition: ad9361.h:3166
gain_control::immed_gain_change_if_large_adc_overload
bool immed_gain_change_if_large_adc_overload
Definition: ad9361.h:2968
ad9361_rf_phy::bist_loopback_mode
int32_t bist_loopback_mode
Definition: ad9361.h:3404
gain_control::rx1_mode
enum rf_gain_ctrl_mode rx1_mode
Definition: ad9361.h:2916
tx_monitor_control::high_gain_dB
uint8_t high_gain_dB
Definition: ad9361.h:3122
ad9361_set_trx_rate_gov
int32_t ad9361_set_trx_rate_gov(struct ad9361_rf_phy *phy, uint32_t rate_gov)
Definition: ad9361_api.c:2090
ad9361_trx_load_enable_fir
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:2139
ad9361_get_tx_attenuation
int32_t ad9361_get_tx_attenuation(struct ad9361_rf_phy *phy, uint8_t ch, uint32_t *attenuation_mdb)
Definition: ad9361_api.c:1407
gpo_control::gpo2_tx_delay_us
uint8_t gpo2_tx_delay_us
Definition: ad9361.h:3112
gain_control::agc_outer_thresh_high_dec_steps
uint8_t agc_outer_thresh_high_dec_steps
Definition: ad9361.h:2945
ad9361_set_trx_path_clks
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:1891
ad9361_phy_platform_data::dcxo_fine
uint32_t dcxo_fine
Definition: ad9361.h:3185
no_os_gpio_direction_output
int32_t no_os_gpio_direction_output(struct no_os_gpio_desc *desc, uint8_t value)
Enable the output direction of the specified GPIO.
Definition: no_os_gpio.c:147
dev_id
dev_id
Definition: ad9361.h:3328
gain_control::dec_pow_measuremnt_duration
uint16_t dec_pow_measuremnt_duration
Definition: ad9361.h:2926
OFF
#define OFF
Definition: ad9361_api.h:360
no_os_clk::rate
uint32_t rate
Definition: common.h:53
AD9361_InitParam::agc_inner_thresh_low_inc_steps
uint8_t agc_inner_thresh_low_inc_steps
Definition: ad9361_api.h:127
ad9361_phy_platform_data::use_ext_tx_lo
bool use_ext_tx_lo
Definition: ad9361.h:3173
gpo_control::gpo0_slave_rx_en
bool gpo0_slave_rx_en
Definition: ad9361.h:3099
ad9361_set_rx_rf_bandwidth
int32_t ad9361_set_rx_rf_bandwidth(struct ad9361_rf_phy *phy, uint32_t bandwidth_hz)
Definition: ad9361_api.c:793
rf_rssi::ant
uint32_t ant
Definition: ad9361.h:3230
ad9361_rf_phy::bist_tone_freq_Hz
uint32_t bist_tone_freq_Hz
Definition: ad9361.h:3408
ad9361_set_trx_rate_gov
int32_t ad9361_set_trx_rate_gov(struct ad9361_rf_phy *phy, uint32_t rate_gov)
Definition: ad9361_api.c:2090
axiadc_state::phy
struct ad9361_rf_phy * phy
Definition: ad9361_util.h:78
ad9361_phy_platform_data::rf_rx_input_sel
uint32_t rf_rx_input_sel
Definition: ad9361.h:3186
ad9361_set_rx_gain_control_mode
int32_t ad9361_set_rx_gain_control_mode(struct ad9361_rf_phy *phy, uint8_t ch, uint8_t gc_mode)
Definition: ad9361_api.c:966
ad9361_fastlock_store
int32_t ad9361_fastlock_store(struct ad9361_rf_phy *phy, bool tx, uint32_t profile)
Definition: ad9361.c:5041
AD9361_InitParam::rx_data_delay
uint32_t rx_data_delay
Definition: ad9361_api.h:230
AD9361_InitParam::fagc_gain_index_type_after_exit_rx_mode
uint32_t fagc_gain_index_type_after_exit_rx_mode
Definition: ad9361_api.h:154
ad9361_set_tx_auto_cal_en_dis
int32_t ad9361_set_tx_auto_cal_en_dis(struct ad9361_rf_phy *phy, uint8_t en_dis)
Definition: ad9361_api.c:1766
AD9361_InitParam::agc_adc_large_overload_inc_steps
uint8_t agc_adc_large_overload_inc_steps
Definition: ad9361_api.h:116
ad9361_get_tx_atten
int32_t ad9361_get_tx_atten(struct ad9361_rf_phy *phy, uint32_t tx_num)
Definition: ad9361.c:1681
ad9361_api.h
Header file of AD9361 API Driver.
ad7616_init_param::spi_param
struct no_os_spi_init_param * spi_param
Definition: ad7616.h:204
AD9361_InitParam::dc_offset_attenuation_low_range
uint8_t dc_offset_attenuation_low_range
Definition: ad9361_api.h:67
ad9361_phy_platform_data::rx_fastlock_delay_ns
uint32_t rx_fastlock_delay_ns
Definition: ad9361.h:3199
AD9361_InitParam::pp_rx_swap_enable
uint8_t pp_rx_swap_enable
Definition: ad9361_api.h:211
gain_control::rx2_mode
enum rf_gain_ctrl_mode rx2_mode
Definition: ad9361.h:2917
gain_control::adc_small_overload_exceed_counter
uint8_t adc_small_overload_exceed_counter
Definition: ad9361.h:2953
RX_DATA_DELAY
#define RX_DATA_DELAY(x)
Definition: ad9361.h:633
ad9361_phy_platform_data::trx_synth_max_fref
uint32_t trx_synth_max_fref
Definition: ad9361.h:3192
AD9361_InitParam::agc_outer_thresh_high_dec_steps
uint8_t agc_outer_thresh_high_dec_steps
Definition: ad9361_api.h:132
AD9361_InitParam::elna_gaintable_all_index_enable
uint8_t elna_gaintable_all_index_enable
Definition: ad9361_api.h:206
AD9361_InitParam::dc_offset_attenuation_high_range
uint8_t dc_offset_attenuation_high_range
Definition: ad9361_api.h:66
f_agc_target_gain_index_type
f_agc_target_gain_index_type
Definition: ad9361.h:2908
ad9361_tracking_control
int32_t ad9361_tracking_control(struct ad9361_rf_phy *phy, bool bbdc_track, bool rfdc_track, bool rxquad_track)
Definition: ad9361.c:3317
auxdac_control::dac1_in_tx_en
bool dac1_in_tx_en
Definition: ad9361.h:3021
AD9361_InitParam::tx_lo_powerdown_managed_enable
uint8_t tx_lo_powerdown_managed_enable
Definition: ad9361_api.h:79
ad9361_set_tx_fir_en_dis
int32_t ad9361_set_tx_fir_en_dis(struct ad9361_rf_phy *phy, uint8_t en_dis)
Definition: ad9361_api.c:1646
gain_control::gain_update_interval_us
uint32_t gain_update_interval_us
Definition: ad9361.h:2967
AD9361_InitParam::one_rx_one_tx_mode_use_tx_num
uint8_t one_rx_one_tx_mode_use_tx_num
Definition: ad9361_api.h:54
ID_AD9361
@ ID_AD9361
Definition: ad9361.h:3329
ENSM_MODE_ALERT
@ ENSM_MODE_ALERT
Definition: ad9361_api.h:317
AD9361_InitParam::gpo3_rx_delay_us
uint8_t gpo3_rx_delay_us
Definition: ad9361_api.h:259
tx_monitor_control::one_shot_mode_en
bool one_shot_mode_en
Definition: ad9361.h:3119
gain_control::sync_for_gain_counter_en
bool sync_for_gain_counter_en
Definition: ad9361.h:2965
AD9361_InitParam::rx_data_clock_delay
uint32_t rx_data_clock_delay
Definition: ad9361_api.h:229
ad9361_rf_phy::adc_conv
struct axiadc_converter * adc_conv
Definition: ad9361.h:3402
AD9361_InitParam::tx2_mon_front_end_gain
uint32_t tx2_mon_front_end_gain
Definition: ad9361_api.h:270
no_os_spi_init_param
Structure holding the parameters for SPI initialization.
Definition: no_os_spi.h:140
auxadc_control::periodic_temp_measuremnt
bool periodic_temp_measuremnt
Definition: ad9361.h:3087
ad9361_calculate_rf_clock_chain
int32_t ad9361_calculate_rf_clock_chain(struct ad9361_rf_phy *phy, uint32_t tx_sample_rate, uint32_t rate_gov, uint32_t *rx_path_clks, uint32_t *tx_path_clks)
Definition: ad9361.c:4766
ad9361_rf_phy::bypass_tx_fir
bool bypass_tx_fir
Definition: ad9361.h:3381
axiadc_converter::chip_info
struct axiadc_chip_info * chip_info
Definition: ad9361_util.h:88
gain_control::low_power_thresh
uint8_t low_power_thresh
Definition: ad9361.h:2927
ad9361_set_rx_rf_gain
int32_t ad9361_set_rx_rf_gain(struct ad9361_rf_phy *phy, uint8_t ch, int32_t gain_db)
Definition: ad9361_api.c:743
AD9361_RXFIRConfig::rx_bandwidth
uint32_t rx_bandwidth
Definition: ad9361_api.h:301
ad9361_set_tx_lo_int_ext
int32_t ad9361_set_tx_lo_int_ext(struct ad9361_rf_phy *phy, uint8_t int_ext)
Definition: ad9361_api.c:1552
ad9361_phy_platform_data::txmon_ctrl
struct tx_monitor_control txmon_ctrl
Definition: ad9361.h:3213
AD9361_InitParam::lvds_invert2_control
uint8_t lvds_invert2_control
Definition: ad9361_api.h:237
TX_SAMPL_CLK
@ TX_SAMPL_CLK
Definition: ad9361.h:3274
no_os_gpio_get_optional
int32_t no_os_gpio_get_optional(struct no_os_gpio_desc **desc, const struct no_os_gpio_init_param *param)
Get the value of an optional GPIO.
Definition: no_os_gpio.c:75