1 /* SPDX-License-Identifier: GPL-2.0 */ 2 /****************************************************************************** 3 * 4 * Copyright(c) 2007 - 2016 Realtek Corporation. 5 * 6 * Contact Information: 7 * wlanfae <wlanfae@realtek.com> 8 * Realtek Corporation, No. 2, Innovation Road II, Hsinchu Science Park, 9 * Hsinchu 300, Taiwan. 10 * 11 * Larry Finger <Larry.Finger@lwfinger.net> 12 * 13 *****************************************************************************/ 14 #ifndef __INC_ADCSMP_H 15 #define __INC_ADCSMP_H 16 17 #define DYNAMIC_LA_MODE "1.0" /*2016.07.15 Dino */ 18 19 struct rt_adcsmp_string { 20 u32 *octet; 21 u32 length; 22 u32 buffer_size; 23 u32 start_pos; 24 }; 25 26 enum rt_adcsmp_trig_sel { 27 PHYDM_ADC_BB_TRIG = 0, 28 PHYDM_ADC_MAC_TRIG = 1, 29 PHYDM_ADC_RF0_TRIG = 2, 30 PHYDM_ADC_RF1_TRIG = 3, 31 PHYDM_MAC_TRIG = 4 32 }; 33 34 enum rt_adcsmp_trig_sig_sel { 35 ADCSMP_TRIG_CRCOK = 0, 36 ADCSMP_TRIG_CRCFAIL = 1, 37 ADCSMP_TRIG_CCA = 2, 38 ADCSMP_TRIG_REG = 3 39 }; 40 41 enum rt_adcsmp_state { 42 ADCSMP_STATE_IDLE = 0, 43 ADCSMP_STATE_SET = 1, 44 ADCSMP_STATE_QUERY = 2 45 }; 46 47 struct rt_adcsmp { 48 struct rt_adcsmp_string adc_smp_buf; 49 enum rt_adcsmp_state adc_smp_state; 50 u8 la_trig_mode; 51 u32 la_trig_sig_sel; 52 u8 la_dma_type; 53 u32 la_trigger_time; 54 u32 la_mac_ref_mask; 55 u32 la_dbg_port; 56 u8 la_trigger_edge; 57 u8 la_smp_rate; 58 u32 la_count; 59 u8 is_bb_trigger; 60 u8 la_work_item_index; 61 }; 62 63 void adc_smp_set(void *dm_void, u8 trig_mode, u32 trig_sig_sel, 64 u8 dma_data_sig_sel, u32 trigger_time, u16 polling_time); 65 66 void adc_smp_query(void *dm_void, void *output, u32 out_len, u32 *pused); 67 68 s32 adc_smp_get_sample_counts(void *dm_void); 69 70 s32 adc_smp_query_single_data(void *dm_void, void *output, u32 out_len, 71 u32 index); 72 73 void adc_smp_stop(void *dm_void); 74 75 void adc_smp_init(void *dm_void); 76 77 void adc_smp_de_init(void *dm_void); 78 79 void phydm_la_mode_bb_setting(void *dm_void); 80 81 void phydm_la_mode_set_trigger_time(void *dm_void, u32 trigger_time_mu_sec); 82 83 void phydm_lamode_trigger_setting(void *dm_void, char input[][16], u32 *_used, 84 char *output, u32 *_out_len, u32 input_num); 85 #endif 86