Path: blob/master/ALFA-W1F1/RTL8814AU/hal/phydm/phydm_adc_sampling.h
1307 views
/******************************************************************************1*2* Copyright(c) 2007 - 2017 Realtek Corporation.3*4* This program is free software; you can redistribute it and/or modify it5* under the terms of version 2 of the GNU General Public License as6* published by the Free Software Foundation.7*8* This program is distributed in the hope that it will be useful, but WITHOUT9* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or10* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for11* more details.12*13* The full GNU General Public License is included in this distribution in the14* file called LICENSE.15*16* Contact Information:17* wlanfae <[email protected]>18* Realtek Corporation, No. 2, Innovation Road II, Hsinchu Science Park,19* Hsinchu 300, Taiwan.20*21* Larry Finger <[email protected]>22*23*****************************************************************************/2425#ifndef __INC_ADCSMP_H26#define __INC_ADCSMP_H2728#if (PHYDM_LA_MODE_SUPPORT)2930/* fix compile time flag*/31#define DYNAMIC_LA_MODE "4.1"3233/* @1 ============================================================34* 1 Definition35* 1 ============================================================36*/3738#if (DM_ODM_SUPPORT_TYPE & ODM_AP)39#if (RTL8197F_SUPPORT || RTL8198F_SUPPORT || RTL8197G_SUPPORT)40#define PHYDM_COMPILE_LA_STORE_IN_IMEM41#endif42#endif4344#define PHYDM_LA_STORE_IN_IMEM_IC (ODM_RTL8197F | ODM_RTL8198F | ODM_RTL8197G)4546#define FULL_BUFF_MODE_SUPPORT (ODM_RTL8821C | ODM_RTL8195B | ODM_RTL8822C |\47ODM_RTL8812F | ODM_RTL8814B)4849/* @ ============================================================50* enumrate51* ============================================================52*/53enum la_dump_mode {54LA_BB_ADC_DUMP = 0,55LA_MAC_DBG_DUMP = 156};5758enum rt_adcsmp_trig_sel {59PHYDM_ADC_BB_TRIG = 0,60PHYDM_ADC_MAC_TRIG = 1,61PHYDM_ADC_RF0_TRIG = 2,62PHYDM_ADC_RF1_TRIG = 3,63PHYDM_MAC_TRIG = 464};6566enum rt_adcsmp_trig_sig_sel {67ADCSMP_TRIG_CRCOK = 0,68ADCSMP_TRIG_CRCFAIL = 1,69ADCSMP_TRIG_CCA = 2,70ADCSMP_TRIG_REG = 371};7273enum rt_adcsmp_state {74ADCSMP_STATE_IDLE = 0,75ADCSMP_STATE_SET = 1,76ADCSMP_STATE_QUERY = 277};7879enum la_buff_mode {80ADCSMP_BUFF_HALF = 0,81ADCSMP_BUFF_ALL = 1 /*Only use in MP Driver*/82};8384/* @ ============================================================85* structure86* ============================================================87*/8889struct rt_adcsmp_string {90u32 *octet;91u32 length;92u32 buffer_size;93u32 start_pos;94u32 end_pos; /*@buf addr*/95};9697#ifdef PHYDM_IC_JGR3_SERIES_SUPPORT98struct la_adv_trig {99boolean la_adv_bbtrigger_en;100boolean la_ori_bb_dis;101u8 la_and1_sel;102u8 la_and1_val;103boolean la_and1_inv;104u8 la_and2_sel;105u8 la_and2_val;106boolean la_and2_inv;107u8 la_and3_sel;108u8 la_and3_val;109boolean la_and3_inv;110u32 la_and4_mask;111u32 la_and4_bitmap;112boolean la_and4_inv;113};114#endif115116struct rt_adcsmp {117struct rt_adcsmp_string adc_smp_buf;118enum rt_adcsmp_state adc_smp_state;119enum la_buff_mode la_buff_mode;120enum la_dump_mode la_dump_mode;121u8 la_trig_mode;122u32 la_trig_sig_sel;123u8 la_dma_type;124u32 la_trigger_time;125/*@1.BB mode: Dbg port header sel, 2.MAC mode: for reference mask*/126u32 la_mac_mask_or_hdr_sel;127u32 la_dbg_port;128u8 la_trigger_edge;129u8 la_smp_rate;130u32 la_count;131u32 smp_number;132u32 smp_number_max;133u32 txff_page;134boolean is_la_print;135boolean en_fake_trig;136#if (RTL8197F_SUPPORT)137u32 backup_dma;138#endif139140#if (DM_ODM_SUPPORT_TYPE == ODM_WIN)141u8 la_work_item_index;142RT_WORK_ITEM adc_smp_work_item;143RT_WORK_ITEM adc_smp_work_item_1;144#endif145146#ifdef PHYDM_IC_JGR3_SERIES_SUPPORT147struct la_adv_trig adv_trig_table;148#endif149};150151/* @ ============================================================152* Function Prototype153* ============================================================154*/155156void phydm_la_set(void *dm_void);157158void phydm_la_cmd(void *dm_void, char input[][16], u32 *_used, char *output,159u32 *_out_len);160161void phydm_la_stop(void *dm_void);162163void phydm_la_init(void *dm_void);164165void adc_smp_de_init(void *dm_void);166167#if (DM_ODM_SUPPORT_TYPE & ODM_WIN)168void adc_smp_work_item_callback(void *context);169#endif170171#if 0172#if (DM_ODM_SUPPORT_TYPE & ODM_WIN)173enum rt_status adc_smp_query(void *dm_void, ULONG info_buf_length,174void *info_buf, PULONG bytes_written);175176#elif (DM_ODM_SUPPORT_TYPE & ODM_CE)177178void adc_smp_query(void *dm_void, void *output, u32 out_len, u32 *pused);179180s32 adc_smp_get_sample_counts(void *dm_void);181182s32 adc_smp_query_single_data(void *dm_void, void *output, u32 out_len,183u32 idx);184#endif185#endif186187#endif188#endif189190191