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