blob: fe349b8dad331fd352cb11ada20f4fc65f4a937a [file] [log] [blame]
Jeff Johnson295189b2012-06-20 16:38:30 -07001/*
Gopichand Nakkala9c070ad2013-01-08 21:16:34 -08002 * Copyright (c) 2012-2013, The Linux Foundation. All rights reserved.
3 *
4 * Previously licensed under the ISC license by Qualcomm Atheros, Inc.
5 *
6 *
7 * Permission to use, copy, modify, and/or distribute this software for
8 * any purpose with or without fee is hereby granted, provided that the
9 * above copyright notice and this permission notice appear in all
10 * copies.
11 *
12 * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL
13 * WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED
14 * WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE
15 * AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL
16 * DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR
17 * PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
18 * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
19 * PERFORMANCE OF THIS SOFTWARE.
20 */
21/*
Jeff Johnson32d95a32012-09-10 13:15:23 -070022 * Copyright (c) 2012, The Linux Foundation. All rights reserved.
Jeff Johnson295189b2012-06-20 16:38:30 -070023 *
24 * Previously licensed under the ISC license by Qualcomm Atheros, Inc.
25 *
26 *
27 * Permission to use, copy, modify, and/or distribute this software for
28 * any purpose with or without fee is hereby granted, provided that the
29 * above copyright notice and this permission notice appear in all
30 * copies.
31 *
32 * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL
33 * WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED
34 * WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE
35 * AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL
36 * DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR
37 * PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
38 * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
39 * PERFORMANCE OF THIS SOFTWARE.
40 */
41
42/**
43 *
44 Airgo Networks, Inc proprietary.
45 All Rights Reserved, Copyright 2005
46 This program is the confidential and proprietary product of Airgo Networks Inc.
47 Any Unauthorized use, reproduction or transfer of this program is strictly prohibited.
48
49
50 pttMsgApi.h: Contains messages to PTT Module for physical layer testing
51 Author: Mark Nelson
52 Date: 6/21/05
53
54 History -
55 Date Modified by Modification Information
56 --------------------------------------------------------------------------
57
58 */
59
60#ifndef PTT_MSG_API_H
61#define PTT_MSG_API_H
62
63#include "halCompiler.h"
64#include "wlan_nv.h"
65#include "wlan_phy.h"
66#include "pttFrameGen.h"
67#include "pttModule.h"
68
69#include "halLegacyPalTypes.h"
70
71typedef tANI_U8 tQWPTT_U8;
72typedef tANI_S8 tQWPTT_S8;
73
74typedef tANI_U16 tQWPTT_U16;
75typedef tANI_S16 tQWPTT_S16;
76
77typedef tANI_U32 tQWPTT_U32;
78typedef tANI_S32 tQWPTT_S32;
79
80typedef tANI_U8 tQWPTT_BYTE;
81typedef tANI_S9 tQWPTT_S9;
82
83typedef tANI_U8 tQWPTT_BOOLEAN;
84
85#define PTT_MEM_ACCESS_MAX_SIZE 256
86
87//Messages to/from socket or pttApi.c
88typedef enum {
89 PTT_MSG_TYPES_BEGIN = 0x3000,
90
91 // Init
92 PTT_MSG_INIT = PTT_MSG_TYPES_BEGIN, //extra: internal only
93
94//NV Service
95 PTT_MSG_GET_TPC_CAL_STATE_OBSOLETE = 0x3011,
96 PTT_MSG_RESET_TPC_CAL_STATE_OBSOLETE = 0x3012,
97
98 PTT_MSG_SET_NV_CKSUM_OBSOLETE = 0x3013,
99 PTT_MSG_GET_NV_CKSUM_OBSOLETE = 0x3014,
100 PTT_MSG_GET_NV_TABLE = 0x3016,
101 PTT_MSG_SET_NV_TABLE = 0x3017,
102 PTT_MSG_SET_NV_IMAGE_OBSOLETE = 0x3018,
103 PTT_MSG_BLANK_NV = 0x3019,
104 PTT_MSG_GET_NV_IMAGE_OBSOLETE = 0x301E,
105 PTT_MSG_DEL_NV_TABLE = 0x301F,
106 PTT_MSG_GET_NV_FIELD = 0x3020,
107 PTT_MSG_SET_NV_FIELD = 0x3021,
108 PTT_MSG_STORE_NV_TABLE = 0x3022,
109 PTT_MSG_SET_REG_DOMAIN = 0x3023,
110
Prasanna Kumar55d64bf2013-07-18 16:22:45 -0700111//new NV format Service
112 PTT_MSG_GET_NV_BIN = 0x3030,
113 PTT_MSG_SET_NV_BIN = 0x3031,
114 PTT_MSG_GET_DICTIONARY = 0x3032,
115
Jeff Johnson295189b2012-06-20 16:38:30 -0700116//Device Register Access
117 PTT_MSG_DBG_READ_REGISTER = 0x3040,
118 PTT_MSG_DBG_WRITE_REGISTER = 0x3041,
119 PTT_MSG_API_WRITE_REGISTER_OBSOLETE = 0x3042,
120 PTT_MSG_API_READ_REGISTER_OBSOLETE = 0x3043,
121 PTT_MSG_DBG_READ_MEMORY = 0x3044,
122 PTT_MSG_DBG_WRITE_MEMORY = 0x3045,
123
124//Device MAC Test Setup
125 PTT_MSG_ENABLE_CHAINS = 0x304F,
126 PTT_MSG_SET_CHANNEL = 0x3050,
127
128//Tx Waveform Gen Service
129 PTT_MSG_SET_WAVEFORM = 0x3071,
130 PTT_MSG_SET_TX_WAVEFORM_GAIN = 0x3072,
131 PTT_MSG_GET_WAVEFORM_POWER_ADC = 0x3073,
132 PTT_MSG_START_WAVEFORM = 0x3074,
133 PTT_MSG_STOP_WAVEFORM = 0x3075,
134 PTT_MSG_SET_RX_WAVEFORM_GAIN = 0x3076,
135 PTT_MSG_SET_TX_WAVEFORM_GAIN_PRIMA_V1 = 0x3077,
136
137//Tx Frame Gen Service
138 PTT_MSG_CONFIG_TX_PACKET_GEN = 0x3081,
139 PTT_MSG_START_STOP_TX_PACKET_GEN = 0x3082,
140 PTT_MSG_POLL_TX_PACKET_PROGRESS_OBSOLETE = 0x3083,
141 PTT_MSG_FRAME_GEN_STOP_IND_OBSOLETE = 0x3088,
142 PTT_MSG_QUERY_TX_STATUS = 0x3089,
143
144
145//Tx Frame Power Service
146 PTT_MSG_CLOSE_TPC_LOOP = 0x30A0,
147
148//open loop service
149 PTT_MSG_SET_PACKET_TX_GAIN_TABLE = 0x30A1,
150 PTT_MSG_SET_PACKET_TX_GAIN_INDEX = 0x30A2,
151 PTT_MSG_FORCE_PACKET_TX_GAIN = 0x30A3,
152
153//closed loop(CLPC) service
154 PTT_MSG_SET_PWR_INDEX_SOURCE = 0x30A4,
155 PTT_MSG_SET_TX_POWER = 0x30A5,
156 PTT_MSG_GET_TX_POWER_REPORT = 0x30A7,
157 PTT_MSG_SAVE_TX_PWR_CAL_TABLE_OBSOLETE = 0x30A8,
158 PTT_MSG_SET_POWER_LUT = 0x30A9,
159 PTT_MSG_GET_POWER_LUT = 0x30AA,
160 PTT_MSG_GET_PACKET_TX_GAIN_TABLE = 0x30AB,
161 PTT_MSG_SAVE_TX_PWR_FREQ_TABLE_OBSOLETE = 0x30AC,
162 PTT_MSG_CLPC_TEMP_COMPENSATION_OBSOLETE = 0x30AD,
163
164//Rx Gain Service
165 PTT_MSG_DISABLE_AGC_TABLES = 0x30D0,
166 PTT_MSG_ENABLE_AGC_TABLES = 0x30D1,
167 PTT_MSG_SET_AGC_TABLES_OBSOLETE = 0x30D2,
168 PTT_MSG_GET_RX_RSSI = 0x30D3,
169 PTT_MSG_GET_AGC_TABLE_OBSOLETE = 0x30D5,
170
171//Rx Frame Catcher Service
172 PTT_MSG_SET_RX_DISABLE_MODE = 0x30D4,
173 PTT_MSG_GET_RX_PKT_COUNTS = 0x30E0,
174 PTT_MSG_RESET_RX_PACKET_STATISTICS = 0x30E2,
175 PTT_MSG_GET_UNI_CAST_MAC_PKT_RX_RSSI = 0x30E3,
176 PTT_MSG_GET_UNI_CAST_MAC_PKT_RX_RSSI_CONFIG = 0x30E4,
177
178//Rx Symbol Service
179 PTT_MSG_GRAB_RAM = 0x30F0,
180 PTT_MSG_GRAB_RAM_ONE_CHAIN_OBSOLETE = 0x30F1,
181
182//Phy Calibration Service
183 PTT_MSG_RX_IQ_CAL = 0x3100,
184 PTT_MSG_RX_DCO_CAL = 0x3101,
185 PTT_MSG_TX_CARRIER_SUPPRESS_CAL = 0x3102,
186 PTT_MSG_TX_IQ_CAL = 0x3103,
187 PTT_MSG_EXECUTE_INITIAL_CALS = 0x3104,
188 PTT_MSG_HDET_CAL = 0x3105,
189 PTT_MSG_VCO_LINEARITY_CAL_OBSOLETE = 0x3106,
190
191//Phy Calibration Override Service
192 PTT_MSG_SET_TX_CARRIER_SUPPRESS_CORRECT = 0x3110,
193 PTT_MSG_GET_TX_CARRIER_SUPPRESS_CORRECT = 0x3111,
194 PTT_MSG_SET_TX_IQ_CORRECT = 0x3112,
195 PTT_MSG_GET_TX_IQ_CORRECT = 0x3113,
196 PTT_MSG_SET_RX_IQ_CORRECT = 0x3114,
197 PTT_MSG_GET_RX_IQ_CORRECT = 0x3115,
198 PTT_MSG_SET_RX_DCO_CORRECT = 0x3116,
199 PTT_MSG_GET_RX_DCO_CORRECT = 0x3117,
200 PTT_MSG_SET_TX_IQ_PHASE_NV_TABLE_OBSOLETE = 0x3118,
201 PTT_MSG_GET_HDET_CORRECT_OBSOLETE = 0x3119,
202
203//RF Chip Access
204 PTT_MSG_GET_TEMP_ADC = 0x3202,
205 PTT_MSG_READ_RF_REG = 0x3203,
206 PTT_MSG_WRITE_RF_REG = 0x3204,
207 PTT_MSG_GET_RF_VERSION = 0x3205,
208
209//Deep sleep support
210 PTT_MSG_DEEP_SLEEP = 0x3220,
211 PTT_MSG_READ_SIF_BAR4_REGISTER = 0x3221,
212 PTT_MSG_WRITE_SIF_BAR4_REGISTER = 0x3222,
213 PTT_MSG_ENTER_FULL_POWER = 0x3223,
214
215//Misc
216 PTT_MSG_SYSTEM_RESET = 0x32A0, //is there any meaning for this in Gen6?
217 PTT_MSG_LOG_DUMP = 0x32A1,
218 PTT_MSG_GET_BUILD_RELEASE_NUMBER = 0x32A2,
219
220
221//Messages for Socket App
222 PTT_MSG_ADAPTER_DISABLED_RSP_OBSOLETE = 0x32A3,
223 PTT_MSG_ENABLE_ADAPTER = 0x32A4,
224 PTT_MSG_DISABLE_ADAPTER = 0x32A5,
225 PTT_MSG_PAUSE_RSP_OBSOLETE = 0x32A6,
226 PTT_MSG_CONTINUE_RSP_OBSOLETE = 0x32A7,
227
228 PTT_MSG_HALPHY_INIT = 0x32A8,
229 PTT_MSG_TEST_RXIQ_CAL = 0x32A9,
230 PTT_MSG_START_TONE_GEN = 0x32AA,
231 PTT_MSG_STOP_TONE_GEN = 0x32AB,
232 PTT_MSG_RX_IM2_CAL = 0x32AC,
233 PTT_MSG_SET_RX_IM2_CORRECT = 0x31AD,
234 PTT_MSG_GET_RX_IM2_CORRECT = 0x31AE,
235 PTT_MSG_TEST_DPD_CAL = 0x32AF, // not handle
236 PTT_MSG_SET_CALCONTROL_BITMAP = 0x32B0,
237
238//[RY] specific new messages for PRIMA
239 PTT_MSG_START_WAVEFORM_RF = 0x32B1,
240 PTT_MSG_STOP_WAVEFORM_RF = 0x32B2,
241 PTT_MSG_HKDAC_TX_IQ_CAL = 0x32B3,
242 PTT_MSG_SET_HKADC_TX_IQ_CORRECT = 0x32B4,
243 PTT_MSG_GET_HKADC_TX_IQ_CORRECT = 0x32B5,
244 PTT_MSG_SET_DPD_CORRECT = 0x32B6,
245 PTT_MSG_GET_DPD_CORRECT = 0x32B7,
246 PTT_MSG_SET_WAVEFORM_RF = 0x32B8,
247 PTT_MSG_LNA_BAND_CAL = 0x32B9,
248 PTT_MSG_GET_LNA_BAND_CORRECT = 0x32BA,
249 PTT_MSG_SET_LNA_BAND_CORRECT = 0x32BB,
250 PTT_MSG_DPD_CAL = 0x32BC,
251
252// Suffix'ed Message ID to differential from existing Message name.
253// ===============================================================
254 PTT_MSG_GET_NV_TABLE_PRIMA_V1 = 0x32BD,
255 PTT_MSG_SET_NV_TABLE_PRIMA_V1 = 0x32BE,
256 PTT_MSG_RX_IQ_CAL_PRIMA_V1 = 0x32BF,
257 PTT_MSG_TX_IQ_CAL_PRIMA_V1 = 0x32C0,
258 PTT_MSG_SET_TX_IQ_CORRECT_PRIMA_V1 = 0x32C1,
259 PTT_MSG_GET_TX_IQ_CORRECT_PRIMA_V1 = 0x32C2,
260 PTT_MSG_SET_RX_IQ_CORRECT_PRIMA_V1 = 0x32C3,
261 PTT_MSG_GET_RX_IQ_CORRECT_PRIMA_V1 = 0x32C4,
262 PTT_MSG_START_WAVEFORM_PRIMA_V1 = 0x32C5,
263 PTT_MSG_FORCE_PACKET_TX_GAIN_PRIMA_V1 = 0x32C6,
264 PTT_MSG_CLPC_CAL_SETUP_PRIMA_V1 = 0x32C7,
265 PTT_MSG_CLPC_CAL_RESTORE_PRIMA_V1 = 0x32C8,
266 PTT_MSG_CLOSE_TPC_LOOP_PRIMA_V1 = 0x32C9,
267 PTT_MSG_SW_CLPC_CAL_PRIMA_V1 = 0x32CA,
268 PTT_MSG_CLPC_CAL_EXTRA_MEASUREMENT_PRIMA_V1 = 0x32CB,
269 PTT_MSG_PRIMA_GENERIC_CMD = 0x32CC,
270 PTT_MSG_DIGITAL_PIN_CONNECTIVITY_TEST_RES = 0X32CD,
271
272 PTT_MSG_EXIT = 0x32ff,
273 PTT_MAX_MSG_ID = PTT_MSG_EXIT
274} ePttMsgId;
275
276enum
277{
278 PTT_MSG_PRIMA_GENERIC_CMD_FAST_SET_CHANNEL = 0x0,
279};
280
281#define PTT_MSG_TYPES_BEGIN_30 PTT_MSG_TYPES_BEGIN
282#define PTT_MSG_TYPES_BEGIN_31 PTT_MSG_TYPES_BEGIN + 0x100
283#define PTT_MSG_TYPES_BEGIN_32 PTT_MSG_TYPES_BEGIN + 0x200
284
285// for FTM PER feature
286enum {
287Legacy_FTM = 0,
288FTM_PER_TX = 1,
289FTM_PER_RX = 2,
290};
291
292#ifndef tANI_BOOLEAN
293#define tANI_BOOLEAN tANI_U8
294#endif
295
296
297
298/******************************************************************************************************************
299 PTT MESSAGES
300******************************************************************************************************************/
301//Init
302typedef PACKED_PRE struct PACKED_POST {
303 tPttModuleVariables ptt;
304} tMsgPttMsgInit;
305
306typedef PACKED_PRE struct PACKED_POST {
307 tANI_U32 tableSize;
308 tANI_U32 chunkSize;
309 eNvTable nvTable;
310} tMsgPttGetNvTable;
311
312typedef PACKED_PRE struct PACKED_POST {
313 tANI_U32 tableSize;
314 tANI_U32 chunkSize;
315 eNvTable nvTable;
316} tMsgPttSetNvTable;
317
318typedef PACKED_PRE struct PACKED_POST {
319 eNvTable nvTable;
320} tMsgPttDelNvTable;
321
322typedef PACKED_PRE struct PACKED_POST {
323 tANI_U32 notUsed;
324} tMsgPttBlankNv;
325
326typedef PACKED_PRE struct PACKED_POST {
327 eNvField nvField;
328 uNvFields fieldData;
329} tMsgPttGetNvField;
330
331typedef PACKED_PRE struct PACKED_POST {
332 eNvField nvField;
333 uNvFields fieldData;
334} tMsgPttSetNvField;
335
336typedef PACKED_PRE struct PACKED_POST {
337 eNvTable nvTable;
338} tMsgPttStoreNvTable;
339
340typedef PACKED_PRE struct PACKED_POST {
341 eRegDomainId regDomainId;
342} tMsgPttSetRegDomain;
343
Prasanna Kumar55d64bf2013-07-18 16:22:45 -0700344typedef PACKED_PRE struct PACKED_POST {
345 tANI_U32 tableSize;
346 tANI_U32 chunkSize;
347 eNvTable nvTable;
348 tANI_U8 nvData[MAX_NV_BIN_SIZE];
349} tMsgPttGetNvBin;
350
351typedef PACKED_PRE struct PACKED_POST {
352 tANI_U32 tableSize;
353 tANI_U32 chunkSize;
354 eNvTable nvTable;
355 tANI_U8 nvData[MAX_NV_BIN_SIZE];
356} tMsgPttSetNvBin;
357
Jeff Johnson295189b2012-06-20 16:38:30 -0700358//Device Register Access
359typedef PACKED_PRE struct PACKED_POST {
360 tANI_U32 regAddr;
361 tANI_U32 regValue;
362} tMsgPttDbgReadRegister;
363
364typedef PACKED_PRE struct PACKED_POST {
365 tANI_U32 regAddr;
366 tANI_U32 regValue;
367} tMsgPttDbgWriteRegister;
368
369#define PTT_READ_MEM_MAX 512
370typedef PACKED_PRE struct PACKED_POST {
371 tANI_U32 memAddr;
372 tANI_U32 nBytes;
373 tANI_U32 pMemBuf[PTT_READ_MEM_MAX]; //caller should allocate space
374} tMsgPttDbgReadMemory;
375
376typedef PACKED_PRE struct PACKED_POST {
377 tANI_U32 memAddr;
378 tANI_U32 nBytes;
379 tANI_U32 pMemBuf[PTT_READ_MEM_MAX];
380} tMsgPttDbgWriteMemory;
381
382//Device MAC Test Setup
383typedef PACKED_PRE struct PACKED_POST {
384 tANI_U32 chId;
385 ePhyChanBondState cbState;
386} tMsgPttSetChannel;
387
388typedef PACKED_PRE struct PACKED_POST {
389 ePhyChainSelect chainSelect;
390} tMsgPttEnableChains;
391
392typedef tIQSamples tWaveformSample;
393
394//Tx Waveform Gen Service
395typedef PACKED_PRE struct PACKED_POST {
396 tWaveformSample waveform[MAX_TEST_WAVEFORM_SAMPLES];
397 tANI_U16 numSamples;
398 tANI_BOOLEAN clk80;
399 tANI_U8 reserved[1];
400} tMsgPttSetWaveform;
401
402typedef PACKED_PRE struct PACKED_POST {
403 ePhyTxChains txChain;
404 tANI_U8 gain;
405} tMsgPttSetTxWaveformGain;
406
407typedef PACKED_PRE struct PACKED_POST {
408 ePhyTxChains txChain;
409 tANI_U32 gain;
410} tMsgPttSetTxWaveformGain_PRIMA_V1;
411
412typedef PACKED_PRE struct PACKED_POST {
413 ePhyRxChains rxChain;
414 tANI_U8 gain;
415} tMsgPttSetRxWaveformGain;
416
417typedef PACKED_PRE struct PACKED_POST {
418 sTxChainsPowerAdcReadings txPowerAdc;
419} tMsgPttGetWaveformPowerAdc;
420
421typedef PACKED_PRE struct PACKED_POST {
422 tANI_U32 notUsed;
423} tMsgPttStopWaveform;
424
425typedef PACKED_PRE struct PACKED_POST {
426 tANI_U32 notUsed;
427} tMsgPttClpcCalSetup_PRIMA_V1;
428
429typedef PACKED_PRE struct PACKED_POST {
430 tANI_U16 setup_measure;
431 tANI_U16 setup_txDmdPwrOffset;
432 tANI_U16 measure_totalExtraPt;
433 tANI_U16 measure_currentMeasurePtIdx;
434 tANI_U8 plut[256];
435} tMsgPttClpcCalExtraMeasurement_PRIMA_V1;
436
437typedef PACKED_PRE struct PACKED_POST {
438 tANI_U32 notUsed;
439} tMsgPttClpcCalRestore_PRIMA_V1;
440
441typedef PACKED_PRE struct PACKED_POST {
442 tANI_U32 startIndex;
443 tANI_U32 numSamples;
444} tMsgPttStartWaveform;
445
446typedef PACKED_PRE struct PACKED_POST {
447 tANI_U32 startIndex;
448 tANI_U32 numSamples;
449} tMsgPttStartWaveform_PRIMA_V1;
450
451// Added for PRIMA
452typedef PACKED_PRE struct PACKED_POST {
453 tWaveformSample waveform[MAX_TEST_WAVEFORM_SAMPLES];
454 tANI_U16 numSamples;
455 tANI_BOOLEAN clk80;
456 tANI_U8 reserved[1];
457} tMsgPttSetWaveformRF;
458
459typedef PACKED_PRE struct PACKED_POST {
460 tANI_U32 startIndex;
461 tANI_U32 numSamples;
462} tMsgPttStartWaveformRF;
463
464typedef PACKED_PRE struct PACKED_POST {
465 tANI_U32 notUsed;
466} tMsgPttStopWaveformRF;
467
468//Tx Frame Gen Service
469typedef PACKED_PRE struct PACKED_POST {
470 sPttFrameGenParams frameParams;
471} tMsgPttConfigTxPacketGen;
472
473typedef PACKED_PRE struct PACKED_POST {
474 tANI_BOOLEAN startStop;
475 tANI_U8 reserved[3];
476} tMsgPttStartStopTxPacketGen;
477
478typedef PACKED_PRE struct PACKED_POST {
479 sTxFrameCounters numFrames;
480 tANI_BOOLEAN status;
481 tANI_U8 reserved[3];
482} tMsgPttQueryTxStatus;
483
484//Tx Frame Power Service
485typedef PACKED_PRE struct PACKED_POST {
486 tANI_BOOLEAN tpcClose;
487 tANI_U8 reserved[3];
488} tMsgPttCloseTpcLoop;
489
490typedef PACKED_PRE struct PACKED_POST {
491 tANI_U32 tpcClose;
492} tMsgPttCloseTpcLoop_PRIMA_V1;
493
494
495 //open loop service
496typedef PACKED_PRE struct PACKED_POST {
497
498 ePhyTxChains txChain;
499 tANI_U8 minIndex;
500 tANI_U8 maxIndex;
501 tANI_U8 reserved[2];
502 tANI_U8 gainTable[TPC_MEM_GAIN_LUT_DEPTH];
503} tMsgPttSetPacketTxGainTable;
504
505typedef PACKED_PRE struct PACKED_POST {
506 ePhyTxChains txChain;
507 tANI_U8 gainTable[TPC_MEM_GAIN_LUT_DEPTH];
508} tMsgPttGetPacketTxGainTable;
509
510typedef PACKED_PRE struct PACKED_POST {
511 tANI_U8 index;
512 tANI_U8 reserved[3];
513} tMsgPttSetPacketTxGainIndex;
514
515typedef PACKED_PRE struct PACKED_POST {
516 ePhyTxChains txChain;
517 tANI_U8 gain;
518 tANI_U8 reserved[3];
519} tMsgPttForcePacketTxGain;
520
521typedef PACKED_PRE struct PACKED_POST {
522 ePhyTxChains txChain;
523 tANI_U32 gain;
524} tMsgPttForcePacketTxGain_PRIMA_V1;
525
526
527typedef PACKED_PRE struct PACKED_POST {
528 ePowerTempIndexSource indexSource;
529} tMsgPttSetPwrIndexSource;
530
531typedef PACKED_PRE struct PACKED_POST {
532 t2Decimal dbmPwr;
533 tANI_U8 reserved[2];
534} tMsgPttSetTxPower;
535
536typedef tTxPowerReport tMsgPttGetTxPowerReport;
537
538typedef PACKED_PRE struct PACKED_POST {
539 ePhyTxChains txChain;
540
541 tANI_U8 minIndex;
542 tANI_U8 maxIndex;
543 tANI_U8 reserved[2];
544
545 tANI_U8 powerLut[TPC_MEM_POWER_LUT_DEPTH];
546} tMsgPttSetPowerLut;
547
548typedef PACKED_PRE struct PACKED_POST {
549 ePhyTxChains txChain;
550
551 tANI_U8 powerLut[TPC_MEM_POWER_LUT_DEPTH];
552} tMsgPttGetPowerLut;
553
554
555//Rx Gain Service
556typedef PACKED_PRE struct PACKED_POST {
557 sRxChainsAgcDisable gains;
558} tMsgPttDisableAgcTables;
559
560
561typedef PACKED_PRE struct PACKED_POST {
562 sRxChainsAgcEnable enables;
563} tMsgPttEnableAgcTables;
564
565typedef PACKED_PRE struct PACKED_POST {
566 sRxChainsRssi rssi;
567} tMsgPttGetRxRssi;
568
569typedef PACKED_PRE struct PACKED_POST {
570 sRxChainsRssi rssi;
571}tMsgPttGetUnicastMacPktRxRssi;
572
573typedef PACKED_PRE struct PACKED_POST {
574 tANI_U32 conf;
575}tMsgPttGetUnicastMacPktRxRssiConf_PRIMA_V1;
576
577//Rx Frame Catcher Service
578typedef PACKED_PRE struct PACKED_POST {
579 sRxTypesDisabled disabled;
580} tMsgPttSetRxDisableMode;
581
582typedef PACKED_PRE struct PACKED_POST {
583 sRxFrameCounters counters;
584} tMsgPttGetRxPktCounts;
585
586
587typedef PACKED_PRE struct PACKED_POST {
588 tANI_U32 notUsed;
589} tMsgPttResetRxPacketStatistics;
590
591
592
593
594
595//ADC Sample Service
596typedef PACKED_PRE struct PACKED_POST {
597 tANI_U32 startSample; //index of first requested sample, 0 causes new capture
598 tANI_U32 numSamples; //number of samples to transfer to host
599 eGrabRamSampleType sampleType;
600 tGrabRamSample grabRam[MAX_REQUESTED_GRAB_RAM_SAMPLES];
601} tMsgPttGrabRam;
602
603
604//Phy Calibration Service
605typedef PACKED_PRE struct PACKED_POST {
606 sRxChainsIQCalValues calValues;
607 eGainSteps gain;
608} tMsgPttRxIqCal;
609
610typedef PACKED_PRE struct PACKED_POST {
611 tRxChainsDcoCorrections calValues;
612 tANI_U8 gain;
613} tMsgPttRxDcoCal;
614
615typedef PACKED_PRE struct PACKED_POST {
616 tRxChainsIm2Corrections calValues;
617 eGainSteps gain;
618 tANI_U8 im2CalOnly;
619} tMsgPttRxIm2Cal;
620
621typedef PACKED_PRE struct PACKED_POST {
622 sTxChainsLoCorrections calValues;
623 tANI_U8 reserve[2];
624 eGainSteps gain;
625} tMsgPttTxCarrierSuppressCal;
626
627typedef PACKED_PRE struct PACKED_POST {
628 sTxChainsIQCalValues calValues;
629 tANI_U8 reserve[2];
630 eGainSteps gain;
631} tMsgPttTxIqCal;
632
633typedef PACKED_PRE struct PACKED_POST {
634 sTxChainsHKIQCalValues calValues;
635 eGainSteps gain;
636} tMsgPttHKdacTxIqCal;
637
638typedef PACKED_PRE struct PACKED_POST {
639 tANI_U32 unused;
640} tMsgPttExecuteInitialCals;
641
642typedef PACKED_PRE struct PACKED_POST {
643 sRfHdetCalValues hdetCalValues;
644} tMsgPttHdetCal;
645
646typedef PACKED_PRE struct PACKED_POST {
647 tANI_U16 clpcMode;
648 tANI_U16 txCmdPwr;
649 tANI_U16 pwrMax_pwrMin;
650 tANI_U16 step;
651 tANI_U8 plut[256];
652} tMsgPttClpcSwCal_PRIMA_V1;
653
654
655//Phy Calibration Override Service
656typedef PACKED_PRE struct PACKED_POST {
657 sTxChainsLoCorrections calValues;
658 tANI_U8 reserve[2];
659 eGainSteps gain;
660} tMsgPttSetTxCarrierSuppressCorrect;
661
662typedef PACKED_PRE struct PACKED_POST {
663 sTxChainsLoCorrections calValues;
664 tANI_U8 reserve[2];
665 eGainSteps gain;
666} tMsgPttGetTxCarrierSuppressCorrect;
667
668typedef PACKED_PRE struct PACKED_POST {
669 sTxChainsIQCalValues calValues;
670 tANI_U8 reserve[2];
671 eGainSteps gain;
672} tMsgPttSetTxIqCorrect;
673
674typedef PACKED_PRE struct PACKED_POST {
675 sTxChainsIQCalValues calValues;
676 tANI_U8 reserve[2];
677 eGainSteps gain;
678} tMsgPttGetTxIqCorrect;
679
680typedef PACKED_PRE struct PACKED_POST {
681 sTxChainsHKIQCalValues calValues;
682 eGainSteps gain;
683} tMsgPttHKdacSetTxIqCorrect;
684
685typedef PACKED_PRE struct PACKED_POST {
686 sTxChainsHKIQCalValues calValues;
687 eGainSteps gain;
688} tMsgPttHKdacGetTxIqCorrect;
689
690typedef PACKED_PRE struct PACKED_POST {
691 sRxChainsIQCalValues calValues;
692 eGainSteps gain;
693} tMsgPttSetRxIqCorrect;
694
695typedef PACKED_PRE struct PACKED_POST {
696 sRxChainsIQCalValues calValues;
697 eGainSteps gain;
698} tMsgPttGetRxIqCorrect;
699
700typedef PACKED_PRE struct PACKED_POST {
701 tRxChainsDcoCorrections calValues;
702 tANI_U8 gain;
703} tMsgPttSetRxDcoCorrect;
704
705typedef PACKED_PRE struct PACKED_POST {
706 tRxChainsDcoCorrections calValues;
707 tANI_U8 gain;
708} tMsgPttGetRxDcoCorrect;
709
710typedef PACKED_PRE struct PACKED_POST {
711 tRxChainsIm2Corrections calValues;
712 tANI_U8 dummy;
713} tMsgPttSetRxIm2Correct;
714
715typedef PACKED_PRE struct PACKED_POST {
716 tRxChainsIm2Corrections calValues;
717 tANI_U8 dummy;
718} tMsgPttGetRxIm2Correct;
719
720typedef PACKED_PRE struct PACKED_POST {
721 eRfTempSensor tempSensor;
722 tTempADCVal tempAdc;
723 tANI_U8 reserved[4 - sizeof(tTempADCVal)];
724} tMsgPttGetTempAdc;
725
726typedef PACKED_PRE struct PACKED_POST {
727 tANI_U32 addr;
728 tANI_U32 mask;
729 tANI_U32 shift;
730 tANI_U32 value;
731} tMsgPttReadRfField;
732
733typedef PACKED_PRE struct PACKED_POST {
734 tANI_U32 addr;
735 tANI_U32 mask;
736 tANI_U32 shift;
737 tANI_U32 value;
738} tMsgPttWriteRfField;
739
740//SIF bar4 Register Access
741typedef PACKED_PRE struct PACKED_POST {
742 tANI_U32 sifRegAddr;
743 tANI_U32 sifRegValue;
744} tMsgPttReadSifBar4Register;
745
746typedef PACKED_PRE struct PACKED_POST {
747 tANI_U32 sifRegAddr;
748 tANI_U32 sifRegValue;
749} tMsgPttWriteSifBar4Register;
750
751typedef PACKED_PRE struct PACKED_POST {
752 tANI_U32 notUsed;
753} tMsgPttDeepSleep;
754
755typedef PACKED_PRE struct PACKED_POST {
756 tANI_U32 notUsed;
757} tMsgPttEnterFullPower;
758
759//Misc.
760typedef PACKED_PRE struct PACKED_POST {
761 tANI_U32 notUsed;
762} tMsgPttSystemReset;
763
764typedef PACKED_PRE struct PACKED_POST {
765 tANI_U32 cmd;
766 tANI_U32 arg1;
767 tANI_U32 arg2;
768 tANI_U32 arg3;
769 tANI_U32 arg4;
770} tMsgPttLogDump;
771
772typedef PACKED_PRE struct PACKED_POST {
773 sBuildReleaseParams relParams;
774} tMsgPttGetBuildReleaseNumber;
775
776typedef PACKED_PRE struct PACKED_POST {
777 tANI_U32 revId;
778} tMsgPttGetRFVersion;
779
780typedef PACKED_PRE struct PACKED_POST {
781 tANI_U32 option; //dummy variable
782} tMsgPttCalControlBitmap;
783
784//#ifdef VERIFY_HALPHY_SIMV_MODEL
785
786
787typedef PACKED_PRE struct PACKED_POST {
788 tANI_U32 option; //dummy variable
789} tMsgPttHalPhyInit;
790
791typedef PACKED_PRE struct PACKED_POST {
792 tANI_U32 option; //dummy variable
793} tMsgPttRxIQTest;
794
795typedef PACKED_PRE struct PACKED_POST {
796 sTxChainsDPDCalValues calValues;
797 eGainSteps gain;
798} tMsgPttDpdCal;
799
800typedef PACKED_PRE struct PACKED_POST {
801 tANI_U8 lutIdx;
802 tANI_U8 band;
803} tMsgPttStartToneGen;
804
805typedef PACKED_PRE struct PACKED_POST {
806 tANI_U32 option; //dummy variable
807} tMsgPttStopToneGen;
808
809typedef PACKED_PRE struct PACKED_POST {
810 sTxChainsLnaBandCalValues calValues;
811 eGainSteps gain;
812} tMsgPttLnaBandCal;
813
814typedef PACKED_PRE struct PACKED_POST {
815 sTxChainsLnaBandCalValues calValues;
816 eGainSteps gain;
817} tMsgPttGetLnaBandCalCorrect;
818
819typedef PACKED_PRE struct PACKED_POST {
820 sTxChainsLnaBandCalValues calValues;
821 eGainSteps gain;
822} tMsgPttSetLnaBandCalCorrect;
823
824typedef PACKED_PRE struct PACKED_POST {
825 sTxChainsDPDCalValues calValues;
826 eGainSteps gain;
827}tMsgPttSetDPDCorrect;
828
829typedef PACKED_PRE struct PACKED_POST {
830 sTxChainsDPDCalValues calValues;
831 eGainSteps gain;
832}tMsgPttGetDPDCorrect;
833
834typedef PACKED_PRE struct PACKED_POST {
835 tQWPTT_U32 cmdIdx;
836 tQWPTT_U32 param1;
837 tQWPTT_U32 param2;
838 tQWPTT_U32 param3;
839 tQWPTT_U32 param4;
840} tMsgPttPrimaGenericCmd;
841
842typedef PACKED_PRE struct PACKED_POST {
843 tANI_U16 testID;
844 tANI_U16 result;
845} tMsgPttPinConnTestRes;
846//#endif
847
848/******************************************************************************************************************
849 END OF PTT MESSAGES
850******************************************************************************************************************/
851
852typedef PACKED_PRE union PACKED_POST pttMsgUnion{
853//typedef union pttMsgUnion {
854 tMsgPttMsgInit MsgInit;
855 tMsgPttGetNvTable GetNvTable;
856 tMsgPttSetNvTable SetNvTable;
857 tMsgPttDelNvTable DelNvTable;
858 tMsgPttBlankNv BlankNv;
859 tMsgPttStoreNvTable StoreNvTable;
860 tMsgPttSetRegDomain SetRegDomain;
861 tMsgPttGetNvField GetNvField;
862 tMsgPttSetNvField SetNvField;
Prasanna Kumar55d64bf2013-07-18 16:22:45 -0700863 tMsgPttGetNvBin GetNvBin;
864 tMsgPttSetNvBin SetNvBin;
Jeff Johnson295189b2012-06-20 16:38:30 -0700865 tMsgPttDbgReadRegister DbgReadRegister;
866 tMsgPttDbgWriteRegister DbgWriteRegister;
867 tMsgPttDbgReadMemory DbgReadMemory;
868 tMsgPttDbgWriteMemory DbgWriteMemory;
869 tMsgPttEnableChains EnableChains;
870 tMsgPttSetChannel SetChannel;
871 tMsgPttSetWaveform SetWaveform;
872 tMsgPttSetTxWaveformGain SetTxWaveformGain;
873 tMsgPttSetTxWaveformGain_PRIMA_V1 SetTxWaveformGain_PRIMA_V1;
874 tMsgPttGetWaveformPowerAdc GetWaveformPowerAdc;
875 tMsgPttStartWaveform StartWaveform;
876 tMsgPttStartWaveform_PRIMA_V1 StartWaveform_PRIMA_V1;
877 tMsgPttStopWaveform StopWaveform;
878 tMsgPttSetRxWaveformGain SetRxWaveformGain;
879 tMsgPttConfigTxPacketGen ConfigTxPacketGen;
880 tMsgPttStartStopTxPacketGen StartStopTxPacketGen;
881 tMsgPttQueryTxStatus QueryTxStatus;
882 tMsgPttCloseTpcLoop CloseTpcLoop;
883 tMsgPttCloseTpcLoop_PRIMA_V1 CloseTpcLoop_PRIMA_V1;
884 tMsgPttSetPacketTxGainTable SetPacketTxGainTable;
885 tMsgPttGetPacketTxGainTable GetPacketTxGainTable;
886 tMsgPttSetPacketTxGainIndex SetPacketTxGainIndex;
887 tMsgPttForcePacketTxGain ForcePacketTxGain;
888 tMsgPttForcePacketTxGain_PRIMA_V1 ForcePacketTxGain_PRIMA_V1;
889 tMsgPttSetPwrIndexSource SetPwrIndexSource;
890 tMsgPttSetTxPower SetTxPower;
891 tMsgPttGetTxPowerReport GetTxPowerReport;
892 tMsgPttSetPowerLut SetPowerLut;
893 tMsgPttGetPowerLut GetPowerLut;
894 tMsgPttDisableAgcTables DisableAgcTables;
895 tMsgPttEnableAgcTables EnableAgcTables;
896 tMsgPttGetRxRssi GetRxRssi;
897 tMsgPttGetUnicastMacPktRxRssi GetUnicastMacPktRxRssi;
898 tMsgPttGetUnicastMacPktRxRssiConf_PRIMA_V1 GetUnicastMacPktRxRssiConf_PRIMA_V1;
899 tMsgPttSetRxDisableMode SetRxDisableMode;
900 tMsgPttGetRxPktCounts GetRxPktCounts;
901 tMsgPttResetRxPacketStatistics ResetRxPacketStatistics;
902 tMsgPttGrabRam GrabRam;
903 tMsgPttRxIqCal RxIqCal;
904 tMsgPttRxDcoCal RxDcoCal;
905 tMsgPttRxIm2Cal RxIm2Cal;
906
907 tMsgPttExecuteInitialCals ExecuteInitialCals;
908 tMsgPttTxCarrierSuppressCal TxCarrierSuppressCal;
909 tMsgPttTxIqCal TxIqCal;
910 tMsgPttHKdacTxIqCal HKdacTxIqCal;
911 tMsgPttClpcCalSetup_PRIMA_V1 ClpcCalSetup_PRIMA_V1;
912 tMsgPttClpcCalRestore_PRIMA_V1 ClpcCalRestore_PRIMA_V1;
913 tMsgPttHdetCal HdetCal;
914 tMsgPttClpcSwCal_PRIMA_V1 ClpcSwCal_PRIMA_V1;
915 tMsgPttClpcCalExtraMeasurement_PRIMA_V1 ClpcCalExtraMeasurement_PRIMA_V1;
916 tMsgPttSetTxCarrierSuppressCorrect SetTxCarrierSuppressCorrect;
917 tMsgPttGetTxCarrierSuppressCorrect GetTxCarrierSuppressCorrect;
918 tMsgPttSetTxIqCorrect SetTxIqCorrect;
919 tMsgPttGetTxIqCorrect GetTxIqCorrect;
920 tMsgPttSetRxIqCorrect SetRxIqCorrect;
921 tMsgPttGetRxIqCorrect GetRxIqCorrect;
922 tMsgPttSetRxDcoCorrect SetRxDcoCorrect;
923 tMsgPttGetRxDcoCorrect GetRxDcoCorrect;
924 tMsgPttSetRxIm2Correct SetRxIm2Correct;
925 tMsgPttGetRxIm2Correct GetRxIm2Correct;
926 tMsgPttHKdacSetTxIqCorrect HKdacSetTxIqCorrect;
927 tMsgPttHKdacGetTxIqCorrect HKdacGetTxIqCorrect;
928
929 tMsgPttGetTempAdc GetTempAdc;
930 tMsgPttReadRfField ReadRfField;
931 tMsgPttWriteRfField WriteRfField;
932 tMsgPttCalControlBitmap SetCalControlBitmap;
933
934//#ifdef VERIFY_HALPHY_SIMV_MODEL
935
936 tMsgPttHalPhyInit InitOption;
937 tMsgPttRxIQTest RxIQTest;
938 tMsgPttDpdCal DpdCal;
939 tMsgPttStartToneGen StartToneGen;
940 tMsgPttStopToneGen StopToneGen;
941//#endif
942 tMsgPttDeepSleep DeepSleep;
943 tMsgPttReadSifBar4Register ReadSifBar4Register;
944 tMsgPttWriteSifBar4Register WriteSifBar4Register;
945 tMsgPttEnterFullPower EnterFullPower;
946 tMsgPttSystemReset SystemReset;
947 tMsgPttLogDump LogDump;
948 tMsgPttGetBuildReleaseNumber GetBuildReleaseNumber;
949 tMsgPttGetRFVersion GetRFVersion;
950
951//[RY] added for PRIMA
952 tMsgPttSetWaveformRF SetWaveformRF;
953 tMsgPttStopWaveformRF StopWaveformRF;
954 tMsgPttStartWaveformRF StartWaveformRF;
955 tMsgPttLnaBandCal LnaBandCal;
956 tMsgPttGetLnaBandCalCorrect GetLnaBandCalCorrect;
957 tMsgPttSetLnaBandCalCorrect SetLnaBandCalCorrect;
958 tMsgPttGetDPDCorrect GetDPDCorrect;
959 tMsgPttSetDPDCorrect SetDPDCorrect;
960 tMsgPttDpdCal DPDCal;
961 tMsgPttPrimaGenericCmd PrimaGenericCmd;
962 tMsgPttPinConnTestRes PinConnTestRes;
963} uPttMsgs;
964
965typedef PACKED_PRE struct PACKED_POST {
966 tANI_U16 msgId;
967 tANI_U16 msgBodyLength; //actually, the length of all the fields in this structure
968 eQWPttStatus msgResponse;
969 uPttMsgs msgBody;
970} tPttMsgbuffer, *tpPttMsgbuffer;
971
972
973typedef PACKED_PRE struct PACKED_POST {
974 /*
975 * success or failure
976 */
977 tANI_U32 status;
978 tPttMsgbuffer pttMsgBuffer;
979} tProcessPttRspParams, *tpProcessPttRspParams;
980
981/* End of Ptt Parameters */
982
983#endif