blob: 38540dfa268642094327d00debaf52e7833ca7a2 [file] [log] [blame]
rjw6c1fd8f2022-11-30 14:33:01 +08001/*****************************************************************************
2* Copyright Statement:
3* --------------------
4* This software is protected by Copyright and the information contained
5* herein is confidential. The software may not be copied and the information
6* contained herein may not be used or disclosed except with the written
7* permission of MediaTek Inc. (C) 2016
8*
9* BY OPENING THIS FILE, BUYER HEREBY UNEQUIVOCALLY ACKNOWLEDGES AND AGREES
10* THAT THE SOFTWARE/FIRMWARE AND ITS DOCUMENTATIONS ("MEDIATEK SOFTWARE")
11* RECEIVED FROM MEDIATEK AND/OR ITS REPRESENTATIVES ARE PROVIDED TO BUYER ON
12* AN "AS-IS" BASIS ONLY. MEDIATEK EXPRESSLY DISCLAIMS ANY AND ALL WARRANTIES,
13* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED WARRANTIES OF
14* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE OR NONINFRINGEMENT.
15* NEITHER DOES MEDIATEK PROVIDE ANY WARRANTY WHATSOEVER WITH RESPECT TO THE
16* SOFTWARE OF ANY THIRD PARTY WHICH MAY BE USED BY, INCORPORATED IN, OR
17* SUPPLIED WITH THE MEDIATEK SOFTWARE, AND BUYER AGREES TO LOOK ONLY TO SUCH
18* THIRD PARTY FOR ANY WARRANTY CLAIM RELATING THERETO. MEDIATEK SHALL ALSO
19* NOT BE RESPONSIBLE FOR ANY MEDIATEK SOFTWARE RELEASES MADE TO BUYER'S
20* SPECIFICATION OR TO CONFORM TO A PARTICULAR STANDARD OR OPEN FORUM.
21*
22* BUYER'S SOLE AND EXCLUSIVE REMEDY AND MEDIATEK'S ENTIRE AND CUMULATIVE
23* LIABILITY WITH RESPECT TO THE MEDIATEK SOFTWARE RELEASED HEREUNDER WILL BE,
24* AT MEDIATEK'S OPTION, TO REVISE OR REPLACE THE MEDIATEK SOFTWARE AT ISSUE,
25* OR REFUND ANY SOFTWARE LICENSE FEES OR SERVICE CHARGE PAID BY BUYER TO
26* MEDIATEK FOR SUCH MEDIATEK SOFTWARE AT ISSUE.
27*
28* THE TRANSACTION CONTEMPLATED HEREUNDER SHALL BE CONSTRUED IN ACCORDANCE
29* WITH THE LAWS OF THE STATE OF CALIFORNIA, USA, EXCLUDING ITS CONFLICT OF
30* LAWS PRINCIPLES. ANY DISPUTES, CONTROVERSIES OR CLAIMS ARISING THEREOF AND
31* RELATED THERETO SHALL BE SETTLED BY ARBITRATION IN SAN FRANCISCO, CA, UNDER
32* THE RULES OF THE INTERNATIONAL CHAMBER OF COMMERCE (ICC).
33*
34*****************************************************************************/
35
36
37#ifndef _CPH_EVDO_RLCRP_H_
38#define _CPH_EVDO_RLCRP_H_
39
40
41#include "cl1common.h"
42#include "kal_general_types.h"
43#include "cphevdorlcomdef.h"
44
45/*----------------------------------------------------------------------------
46 Global Typedefs
47----------------------------------------------------------------------------*/
48
49typedef struct
50{
51 kal_bool HwDrcDscBoost;
52 kal_bool HwTrig;
53 kal_bool HwHarqCfg;
54 kal_bool SwDrcValueCfg;
55 kal_bool SwDrcChangeCtrl;
56 kal_bool InvIq;
57} CphEvdoRlCrpInitT;
58
59
60typedef struct
61{
62 kal_bool Reset;
63} CphEvdoRlCrpResetT;
64
65
66typedef struct
67{
68 CphEvdoComAccPrtclTypT ProtocolSubtyp;
69 kal_uint16 PrmblPltScale;
70} CphEvdoRlCrpAccPrmblCfgT;
71
72
73typedef struct
74{
75 kal_uint16 PltScale;
76 kal_uint16 PrmblPltScale;
77 kal_uint16 DataScale0;
78 kal_uint16 RriData;
79 kal_uint16 DataScaleKsAck;
80} CphEvdoRlCrpAccCpslCfgT;
81
82typedef struct
83{
84 CphEvdoComTrffcPrtclTypT ProtocolSubtyp;
85 kal_uint16 PltScale;
86 kal_uint16 AuxPltMinPyld;
87 kal_uint16 DrcLen;
88 kal_uint16 DrcGating;
89 kal_uint16 DrcScale;
90 kal_uint16 DrcScaleBoost;
91 kal_uint16 DrcBoostLen;
92 kal_uint16 DscScale;
93 kal_uint16 DscScaleBoost;
94 kal_uint16 DscBoostLen;
95 kal_uint32 AckSupScale;
96 kal_uint32 AckMupScale;
97} CphEvdoRlCrpTrffcParamCfgT;
98
99
100typedef struct
101{
102 kal_uint16 DrcLen;
103 kal_uint16 DrcScale;
104 kal_uint16 AckSupScale;
105 kal_uint16 AckMupScale;
106 kal_uint16 DscScale;
107} CphEvdoRlCrpTrffcSemiStaticCfgT;
108
109
110typedef struct
111{
112 kal_uint16 AuxPltScaleAck;
113 kal_uint16 AuxPltScaleNak;
114 kal_uint16 RriScaleAck;
115 kal_uint16 RriScaleNak;
116 kal_uint16 DataScaleKsAck;
117 kal_uint16 DataScaleKsNak;
118 kal_uint16 DataScale0Ack;
119 kal_uint16 DataScale0Nak;
120 kal_uint16 DataScale1Ack;
121 kal_uint16 DataScale1Nak;
122 kal_uint16 DataScale2Ack;
123 kal_uint16 DataScale2Nak;
124 kal_uint16 DataScale3Ack;
125 kal_uint16 DataScale3Nak;
126 kal_uint16 RriData1;
127 kal_uint16 RriData2Ack;
128 kal_uint16 RriData2Nak;
129 CphEvdoComTrffcSbtyp2PldIdxT PldIdx;
130 CphEvdoComTrffcSbtyp2SbPacketIdxT SbPacketIdx;
131} CphEvdoRlCrpTrffcDataCfgT;
132
133
134typedef struct
135{
136 kal_uint16 SlotOffset;
137 kal_uint32 LongPnMaskH;
138 kal_uint32 LongPnMaskL;
139}CphEvdoRlCrpPnCodeCfgT;
140
141typedef struct
142{
143 kal_uint16 CurSlot;
144 kal_uint16 DrcCover;
145} CphEvdoRlCrpDrcCoverCfgT;
146
147typedef struct
148{
149 kal_uint16 CurSlot;
150 kal_uint16 DscData;
151} CphEvdoRlCrpDscDataCfgT;
152
153
154typedef enum
155{
156 SINGLE_USER,
157 MULITIPLE_USER
158} CphEvdoRlCrpAckUserTypT;
159
160
161typedef struct
162{
163 kal_bool Enable;
164 CphEvdoRlCrpAckUserTypT AckUserType;
165 kal_uint8 Ackbit;
166} CphEvdoRlCrpAckChnlCfgT;
167
168
169
170typedef struct
171{
172 kal_bool Enable;
173} CphEvdoRlCrpEnCfgT;
174
175typedef struct
176{
177 kal_bool Freeze;
178} CphEvdoRlCrpFreezeCfgT;
179
180
181typedef struct
182{
183 kal_bool KsTrig;
184} CphEvdoRlCrpTstKsTrigT;
185
186typedef struct
187{
188 kal_bool TimerTrig;
189} CphEvdoRlCrpTstTimerTrigT;
190
191typedef struct
192{
193 kal_uint16 DrcValue;
194} CphEvdoRlCrpTstDrcValueCfgT;
195
196
197/*----------------------------------------------------------------------------
198 Global Function Prototypes
199----------------------------------------------------------------------------*/
200
201void CphEvdoRlCrpInit(CphEvdoRlCrpInitT *AdsPtr);
202void CphEvdoRlCrpReset(CphEvdoRlCrpResetT *AdsPtr);
203void CphEvdoRlCrpAccPrmblCfg(CphEvdoRlCrpAccPrmblCfgT *AdsPtr);
204void CphEvdoRlCrpAccCpslCfg(CphEvdoRlCrpAccCpslCfgT *AdsPtr);
205void CphEvdoRlCrpTrffcStaticCfg(CphEvdoRlCrpTrffcParamCfgT *AdsPtr);
206void CphEvdoRlCrpTrffcSemiStaticCfg(CphEvdoRlCrpTrffcSemiStaticCfgT *AdsPtr);
207void CphEvdoRlCrpTrffcDataCfg(CphEvdoRlCrpTrffcDataCfgT *AdsPtr);
208void CphEvdoRlCrpPnCodeCfg(CphEvdoRlCrpPnCodeCfgT *AdsPtr);
209void CphEvdoRlCrpDrcCoverCfg(CphEvdoRlCrpDrcCoverCfgT *AdsPtr);
210void CphEvdoRlCrpDscDataCfg(CphEvdoRlCrpDscDataCfgT *AdsPtr);
211void CphEvdoRlCrpFreezeCfg(CphEvdoRlCrpFreezeCfgT *AdsPtr);
212void CphEvdoRlCrpAckChnlCfg(CphEvdoRlCrpAckChnlCfgT *AdsPtr);
213void CphEvdoRlCrpDisAckChnl(void);
214void CphEvdoRlCrpWriteSupAckScale(kal_uint32 SupAckScale);
215void CphEvdoRlCrpWriteMupAckScale(kal_uint32 MupAckScale);
216void CphEvdoRlCrpTstEnableCfg(CphEvdoRlCrpEnCfgT *AdsPtr);
217void CphEvdoRlCrpTstKsTrig(CphEvdoRlCrpTstKsTrigT *AdsPtr);
218void CphEvdoRlCrpTstTimerTrig(CphEvdoRlCrpTstTimerTrigT *AdsPtr);
219void CphEvdoRlCrpTstDrcValueCfg(CphEvdoRlCrpTstDrcValueCfgT *AdsPtr);
220void CphEvdoInitializeChannelScale();
221void CphEvdoDrcRateValueForTest(kal_uint32 DRCValue);
222void CphEvdoRriDataAckSymbolRate(kal_uint32 RriDataAck );
223kal_int16 CphEvdoRlCrpAckValueGet();
224kal_uint32 CphEvdoDrcValueDebug();
225kal_uint32 CphEvdoRlAckDebug();
226kal_uint32 CphEvdoRlKs0Debug();
227kal_uint32 CphEvdoRlKs1Debug();
228kal_uint32 CphEvdoCrpFsmDebug();
229kal_uint32 CphEvdoRlCrpDscDataRead();
230void CphEvdoRlCrpCrcCheckCfg(kal_uint32 CrcLength);
231void CphEvdoRlCrpModeSel();
232//void CphEvdoRlCrpAllRegisterDump(); /* only for Txcrp debug */
233
234
235/*****************************************************************************
236* End of File
237*****************************************************************************/
238#endif