1 /* SPDX-License-Identifier: GPL-2.0 */ 2 #ifndef __INC_ADCSMP_H 3 #define __INC_ADCSMP_H 4 5 #define DYNAMIC_LA_MODE "1.0" /*2016.07.15 Dino */ 6 7 #if (PHYDM_LA_MODE_SUPPORT == 1) 8 9 typedef struct _RT_ADCSMP_STRING { 10 pu4Byte Octet; 11 u4Byte Length; 12 u4Byte buffer_size; 13 u4Byte start_pos; 14 } RT_ADCSMP_STRING, *PRT_ADCSMP_STRING; 15 16 17 typedef enum _RT_ADCSMP_TRIG_SEL { 18 PHYDM_ADC_BB_TRIG = 0, 19 PHYDM_ADC_MAC_TRIG = 1, 20 PHYDM_ADC_RF0_TRIG = 2, 21 PHYDM_ADC_RF1_TRIG = 3, 22 PHYDM_MAC_TRIG = 4 23 } RT_ADCSMP_TRIG_SEL, *PRT_ADCSMP_TRIG_SEL; 24 25 26 typedef enum _RT_ADCSMP_TRIG_SIG_SEL { 27 ADCSMP_TRIG_CRCOK = 0, 28 ADCSMP_TRIG_CRCFAIL = 1, 29 ADCSMP_TRIG_CCA = 2, 30 ADCSMP_TRIG_REG = 3 31 } RT_ADCSMP_TRIG_SIG_SEL, *PRT_ADCSMP_TRIG_SIG_SEL; 32 33 34 typedef enum _RT_ADCSMP_STATE { 35 ADCSMP_STATE_IDLE = 0, 36 ADCSMP_STATE_SET = 1, 37 ADCSMP_STATE_QUERY = 2 38 } RT_ADCSMP_STATE, *PRT_ADCSMP_STATE; 39 40 41 typedef struct _RT_ADCSMP { 42 RT_ADCSMP_STRING ADCSmpBuf; 43 RT_ADCSMP_STATE ADCSmpState; 44 u1Byte la_trig_mode; 45 u4Byte la_TrigSigSel; 46 u1Byte la_dma_type; 47 u4Byte la_TriggerTime; 48 u4Byte la_mac_ref_mask; 49 u4Byte la_dbg_port; 50 u1Byte la_trigger_edge; 51 u1Byte la_smp_rate; 52 u4Byte la_count; 53 u1Byte is_bb_trigger; 54 u1Byte la_work_item_index; 55 56 #if (DM_ODM_SUPPORT_TYPE == ODM_WIN) 57 RT_WORK_ITEM ADCSmpWorkItem; 58 RT_WORK_ITEM ADCSmpWorkItem_1; 59 #endif 60 } RT_ADCSMP, *PRT_ADCSMP; 61 62 #if (DM_ODM_SUPPORT_TYPE & ODM_WIN) 63 VOID 64 ADCSmpWorkItemCallback( 65 IN PVOID pContext 66 ); 67 #endif 68 69 VOID 70 ADCSmp_Set( 71 IN PVOID pDM_VOID, 72 IN u1Byte trig_mode, 73 IN u4Byte TrigSigSel, 74 IN u1Byte DmaDataSigSel, 75 IN u4Byte TriggerTime, 76 IN u2Byte PollingTime 77 ); 78 79 #if (DM_ODM_SUPPORT_TYPE & ODM_WIN) 80 RT_STATUS 81 ADCSmp_Query( 82 IN PVOID pDM_VOID, 83 IN ULONG InformationBufferLength, 84 OUT PVOID InformationBuffer, 85 OUT PULONG BytesWritten 86 ); 87 #endif 88 VOID 89 ADCSmp_Stop( 90 IN PVOID pDM_VOID 91 ); 92 93 VOID 94 ADCSmp_Init( 95 IN PVOID pDM_VOID 96 ); 97 98 #if (DM_ODM_SUPPORT_TYPE & ODM_WIN) 99 VOID 100 ADCSmp_DeInit( 101 IN PVOID pDM_VOID 102 ); 103 #endif 104 105 VOID 106 phydm_la_mode_bb_setting( 107 IN PVOID pDM_VOID 108 ); 109 110 void 111 phydm_la_mode_set_trigger_time( 112 IN PVOID pDM_VOID, 113 IN u4Byte TriggerTime_mu_sec 114 ); 115 116 VOID 117 phydm_lamode_trigger_setting( 118 IN PVOID pDM_VOID, 119 IN char input[][16], 120 IN u4Byte *_used, 121 OUT char *output, 122 IN u4Byte *_out_len, 123 IN u4Byte input_num 124 ); 125 #endif 126 #endif 127 128