phydm_adc_sampling.h 2.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147
  1. #ifndef __INC_ADCSMP_H
  2. #define __INC_ADCSMP_H
  3. #define DYNAMIC_LA_MODE "1.0" /*2016.07.15 Dino */
  4. #if (PHYDM_LA_MODE_SUPPORT == 1)
  5. struct _RT_ADCSMP_STRING {
  6. u32 *octet;
  7. u32 length;
  8. u32 buffer_size;
  9. u32 start_pos;
  10. };
  11. enum rt_adcsmp_trig_sel {
  12. PHYDM_ADC_BB_TRIG = 0,
  13. PHYDM_ADC_MAC_TRIG = 1,
  14. PHYDM_ADC_RF0_TRIG = 2,
  15. PHYDM_ADC_RF1_TRIG = 3,
  16. PHYDM_MAC_TRIG = 4
  17. };
  18. enum rt_adcsmp_trig_sig_sel {
  19. ADCSMP_TRIG_CRCOK = 0,
  20. ADCSMP_TRIG_CRCFAIL = 1,
  21. ADCSMP_TRIG_CCA = 2,
  22. ADCSMP_TRIG_REG = 3
  23. };
  24. enum rt_adcsmp_state {
  25. ADCSMP_STATE_IDLE = 0,
  26. ADCSMP_STATE_SET = 1,
  27. ADCSMP_STATE_QUERY = 2
  28. };
  29. struct _RT_ADCSMP {
  30. struct _RT_ADCSMP_STRING adc_smp_buf;
  31. enum rt_adcsmp_state adc_smp_state;
  32. u8 la_trig_mode;
  33. u32 la_trig_sig_sel;
  34. u8 la_dma_type;
  35. u32 la_trigger_time;
  36. u32 la_mac_ref_mask;
  37. u32 la_dbg_port;
  38. u8 la_trigger_edge;
  39. u8 la_smp_rate;
  40. u32 la_count;
  41. u8 is_bb_trigger;
  42. u8 la_work_item_index;
  43. #if (DM_ODM_SUPPORT_TYPE == ODM_WIN)
  44. RT_WORK_ITEM adc_smp_work_item;
  45. RT_WORK_ITEM adc_smp_work_item_1;
  46. #endif
  47. };
  48. #if (DM_ODM_SUPPORT_TYPE & ODM_WIN)
  49. void
  50. adc_smp_work_item_callback(
  51. void *p_context
  52. );
  53. #endif
  54. void
  55. adc_smp_set(
  56. void *p_dm_void,
  57. u8 trig_mode,
  58. u32 trig_sig_sel,
  59. u8 dma_data_sig_sel,
  60. u32 trigger_time,
  61. u16 polling_time
  62. );
  63. #if (DM_ODM_SUPPORT_TYPE & ODM_WIN)
  64. enum rt_status
  65. adc_smp_query(
  66. void *p_dm_void,
  67. ULONG information_buffer_length,
  68. void *information_buffer,
  69. PULONG bytes_written
  70. );
  71. #elif (DM_ODM_SUPPORT_TYPE & ODM_CE)
  72. void
  73. adc_smp_query(
  74. void *p_dm_void,
  75. void *output,
  76. u32 out_len,
  77. u32 *pused
  78. );
  79. s32
  80. adc_smp_get_sample_counts(
  81. void *p_dm_void
  82. );
  83. s32
  84. adc_smp_query_single_data(
  85. void *p_dm_void,
  86. void *output,
  87. u32 out_len,
  88. u32 index
  89. );
  90. #endif
  91. void
  92. adc_smp_stop(
  93. void *p_dm_void
  94. );
  95. void
  96. adc_smp_init(
  97. void *p_dm_void
  98. );
  99. #if (DM_ODM_SUPPORT_TYPE & (ODM_WIN | ODM_CE))
  100. void
  101. adc_smp_de_init(
  102. void *p_dm_void
  103. );
  104. #endif
  105. void
  106. phydm_la_mode_bb_setting(
  107. void *p_dm_void
  108. );
  109. void
  110. phydm_la_mode_set_trigger_time(
  111. void *p_dm_void,
  112. u32 trigger_time_mu_sec
  113. );
  114. void
  115. phydm_lamode_trigger_setting(
  116. void *p_dm_void,
  117. char input[][16],
  118. u32 *_used,
  119. char *output,
  120. u32 *_out_len,
  121. u32 input_num
  122. );
  123. #endif
  124. #endif