| /* SPDX-License-Identifier: GPL-2.0 */ |
| #ifndef __INC_ADCSMP_H |
| #define __INC_ADCSMP_H |
| |
| #define DYNAMIC_LA_MODE "1.0" /*2016.07.15 Dino */ |
| |
| #if (PHYDM_LA_MODE_SUPPORT == 1) |
| |
| struct _RT_ADCSMP_STRING { |
| u32 *octet; |
| u32 length; |
| u32 buffer_size; |
| u32 start_pos; |
| }; |
| |
| |
| enum rt_adcsmp_trig_sel { |
| PHYDM_ADC_BB_TRIG = 0, |
| PHYDM_ADC_MAC_TRIG = 1, |
| PHYDM_ADC_RF0_TRIG = 2, |
| PHYDM_ADC_RF1_TRIG = 3, |
| PHYDM_MAC_TRIG = 4 |
| }; |
| |
| |
| enum rt_adcsmp_trig_sig_sel { |
| ADCSMP_TRIG_CRCOK = 0, |
| ADCSMP_TRIG_CRCFAIL = 1, |
| ADCSMP_TRIG_CCA = 2, |
| ADCSMP_TRIG_REG = 3 |
| }; |
| |
| |
| enum rt_adcsmp_state { |
| ADCSMP_STATE_IDLE = 0, |
| ADCSMP_STATE_SET = 1, |
| ADCSMP_STATE_QUERY = 2 |
| }; |
| |
| |
| struct _RT_ADCSMP { |
| struct _RT_ADCSMP_STRING adc_smp_buf; |
| enum rt_adcsmp_state adc_smp_state; |
| u8 la_trig_mode; |
| u32 la_trig_sig_sel; |
| u8 la_dma_type; |
| u32 la_trigger_time; |
| u32 la_mac_ref_mask; |
| u32 la_dbg_port; |
| u8 la_trigger_edge; |
| u8 la_smp_rate; |
| u32 la_count; |
| u8 is_bb_trigger; |
| u8 la_work_item_index; |
| |
| #if (DM_ODM_SUPPORT_TYPE == ODM_WIN) |
| RT_WORK_ITEM adc_smp_work_item; |
| RT_WORK_ITEM adc_smp_work_item_1; |
| #endif |
| }; |
| |
| #if (DM_ODM_SUPPORT_TYPE & ODM_WIN) |
| void |
| adc_smp_work_item_callback( |
| void *p_context |
| ); |
| #endif |
| |
| void |
| adc_smp_set( |
| void *p_dm_void, |
| u8 trig_mode, |
| u32 trig_sig_sel, |
| u8 dma_data_sig_sel, |
| u32 trigger_time, |
| u16 polling_time |
| ); |
| |
| #if (DM_ODM_SUPPORT_TYPE & ODM_WIN) |
| enum rt_status |
| adc_smp_query( |
| void *p_dm_void, |
| ULONG information_buffer_length, |
| void *information_buffer, |
| PULONG bytes_written |
| ); |
| #elif (DM_ODM_SUPPORT_TYPE & ODM_CE) |
| void |
| adc_smp_query( |
| void *p_dm_void, |
| void *output, |
| u32 out_len, |
| u32 *pused |
| ); |
| |
| s32 |
| adc_smp_get_sample_counts( |
| void *p_dm_void |
| ); |
| |
| s32 |
| adc_smp_query_single_data( |
| void *p_dm_void, |
| void *output, |
| u32 out_len, |
| u32 index |
| ); |
| |
| #endif |
| void |
| adc_smp_stop( |
| void *p_dm_void |
| ); |
| |
| void |
| adc_smp_init( |
| void *p_dm_void |
| ); |
| |
| #if (DM_ODM_SUPPORT_TYPE & (ODM_WIN | ODM_CE)) |
| void |
| adc_smp_de_init( |
| void *p_dm_void |
| ); |
| #endif |
| |
| void |
| phydm_la_mode_bb_setting( |
| void *p_dm_void |
| ); |
| |
| void |
| phydm_la_mode_set_trigger_time( |
| void *p_dm_void, |
| u32 trigger_time_mu_sec |
| ); |
| |
| void |
| phydm_lamode_trigger_setting( |
| void *p_dm_void, |
| char input[][16], |
| u32 *_used, |
| char *output, |
| u32 *_out_len, |
| u32 input_num |
| ); |
| #endif |
| #endif |