lmx2594.h 1.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253
  1. #ifndef LMX2594_H
  2. #define LMX2594_H
  3. #include "pci.h"
  4. #include "tmsgheaders.h"
  5. #include "lmx2594regs.h"
  6. #define LMX_COUNT 113
  7. #define LMX_BASE_ADDR 0x04
  8. #define LMX_LD_STATUS_ADDR 0x18
  9. struct vco_params {
  10. int vco_core;
  11. double f_coremin;
  12. double f_coremax;
  13. int c_core_min;
  14. int c_core_max;
  15. int a_core_min;
  16. int a_core_max;
  17. uint16_t vco_cap_ctrl_strt;
  18. uint16_t vco_daciset_strt;
  19. uint16_t acal_cmp_dly;
  20. uint16_t cal_clk_div;
  21. uint16_t pfd_dly_sel;
  22. uint16_t fcal_hpfd_adj;
  23. // LMX parameters
  24. double N_div;
  25. uint32_t N;
  26. int chan_div;
  27. uint8_t ch_div_reg;
  28. double f_vco;
  29. };
  30. extern uint32_t lmx_change_freq_regs[12];
  31. void set_vco_params(struct vco_params *params);
  32. void send_vco_params(reg_addr_pci* pci_bar_1, struct vco_params *params);
  33. struct vco_params calculate_vco_params(double lmx_freq, double f_pd);
  34. void lmx2594_init(reg_addr_pci* pci_bar_1);
  35. void auto_cal(reg_addr_pci* pci_bar_1);
  36. int lmx_freq_set_main_band(reg_addr_pci* pci_bar_1, double freq, double f_pd);
  37. int lmx_freq_set_main_band_int_mode(double freq, double f_pd);
  38. int lmx_freq_set_out_of_band(reg_addr_pci* pci_bar_1, double freq, double f_pd);
  39. int lmx_freq_set_out_of_band_int_mode(double freq, double f_pd);
  40. double lmx_lower_bond_set (double freq, double f_pd);
  41. double lmx_get_freq(double freq);
  42. int lmx_freq_set(reg_addr_pci* pci_bar_1, double freq,double f_pd);
  43. uint32_t lmx_ld_status(reg_addr_pci* pci_bar_1);
  44. #endif //LMX2594_H