[Feature]Upload Modem source code
Change-Id: Id4294f30faced84d3e6fd6d5e61e1111bf287a37
diff --git a/mcu/interface/l1/cl1/common/cphevdorlcrp.h b/mcu/interface/l1/cl1/common/cphevdorlcrp.h
new file mode 100644
index 0000000..38540df
--- /dev/null
+++ b/mcu/interface/l1/cl1/common/cphevdorlcrp.h
@@ -0,0 +1,238 @@
+/*****************************************************************************
+* Copyright Statement:
+* --------------------
+* This software is protected by Copyright and the information contained
+* herein is confidential. The software may not be copied and the information
+* contained herein may not be used or disclosed except with the written
+* permission of MediaTek Inc. (C) 2016
+*
+* BY OPENING THIS FILE, BUYER HEREBY UNEQUIVOCALLY ACKNOWLEDGES AND AGREES
+* THAT THE SOFTWARE/FIRMWARE AND ITS DOCUMENTATIONS ("MEDIATEK SOFTWARE")
+* RECEIVED FROM MEDIATEK AND/OR ITS REPRESENTATIVES ARE PROVIDED TO BUYER ON
+* AN "AS-IS" BASIS ONLY. MEDIATEK EXPRESSLY DISCLAIMS ANY AND ALL WARRANTIES,
+* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED WARRANTIES OF
+* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE OR NONINFRINGEMENT.
+* NEITHER DOES MEDIATEK PROVIDE ANY WARRANTY WHATSOEVER WITH RESPECT TO THE
+* SOFTWARE OF ANY THIRD PARTY WHICH MAY BE USED BY, INCORPORATED IN, OR
+* SUPPLIED WITH THE MEDIATEK SOFTWARE, AND BUYER AGREES TO LOOK ONLY TO SUCH
+* THIRD PARTY FOR ANY WARRANTY CLAIM RELATING THERETO. MEDIATEK SHALL ALSO
+* NOT BE RESPONSIBLE FOR ANY MEDIATEK SOFTWARE RELEASES MADE TO BUYER'S
+* SPECIFICATION OR TO CONFORM TO A PARTICULAR STANDARD OR OPEN FORUM.
+*
+* BUYER'S SOLE AND EXCLUSIVE REMEDY AND MEDIATEK'S ENTIRE AND CUMULATIVE
+* LIABILITY WITH RESPECT TO THE MEDIATEK SOFTWARE RELEASED HEREUNDER WILL BE,
+* AT MEDIATEK'S OPTION, TO REVISE OR REPLACE THE MEDIATEK SOFTWARE AT ISSUE,
+* OR REFUND ANY SOFTWARE LICENSE FEES OR SERVICE CHARGE PAID BY BUYER TO
+* MEDIATEK FOR SUCH MEDIATEK SOFTWARE AT ISSUE.
+*
+* THE TRANSACTION CONTEMPLATED HEREUNDER SHALL BE CONSTRUED IN ACCORDANCE
+* WITH THE LAWS OF THE STATE OF CALIFORNIA, USA, EXCLUDING ITS CONFLICT OF
+* LAWS PRINCIPLES. ANY DISPUTES, CONTROVERSIES OR CLAIMS ARISING THEREOF AND
+* RELATED THERETO SHALL BE SETTLED BY ARBITRATION IN SAN FRANCISCO, CA, UNDER
+* THE RULES OF THE INTERNATIONAL CHAMBER OF COMMERCE (ICC).
+*
+*****************************************************************************/
+
+
+#ifndef _CPH_EVDO_RLCRP_H_
+#define _CPH_EVDO_RLCRP_H_
+
+
+#include "cl1common.h"
+#include "kal_general_types.h"
+#include "cphevdorlcomdef.h"
+
+/*----------------------------------------------------------------------------
+ Global Typedefs
+----------------------------------------------------------------------------*/
+
+typedef struct
+{
+ kal_bool HwDrcDscBoost;
+ kal_bool HwTrig;
+ kal_bool HwHarqCfg;
+ kal_bool SwDrcValueCfg;
+ kal_bool SwDrcChangeCtrl;
+ kal_bool InvIq;
+} CphEvdoRlCrpInitT;
+
+
+typedef struct
+{
+ kal_bool Reset;
+} CphEvdoRlCrpResetT;
+
+
+typedef struct
+{
+ CphEvdoComAccPrtclTypT ProtocolSubtyp;
+ kal_uint16 PrmblPltScale;
+} CphEvdoRlCrpAccPrmblCfgT;
+
+
+typedef struct
+{
+ kal_uint16 PltScale;
+ kal_uint16 PrmblPltScale;
+ kal_uint16 DataScale0;
+ kal_uint16 RriData;
+ kal_uint16 DataScaleKsAck;
+} CphEvdoRlCrpAccCpslCfgT;
+
+typedef struct
+{
+ CphEvdoComTrffcPrtclTypT ProtocolSubtyp;
+ kal_uint16 PltScale;
+ kal_uint16 AuxPltMinPyld;
+ kal_uint16 DrcLen;
+ kal_uint16 DrcGating;
+ kal_uint16 DrcScale;
+ kal_uint16 DrcScaleBoost;
+ kal_uint16 DrcBoostLen;
+ kal_uint16 DscScale;
+ kal_uint16 DscScaleBoost;
+ kal_uint16 DscBoostLen;
+ kal_uint32 AckSupScale;
+ kal_uint32 AckMupScale;
+} CphEvdoRlCrpTrffcParamCfgT;
+
+
+typedef struct
+{
+ kal_uint16 DrcLen;
+ kal_uint16 DrcScale;
+ kal_uint16 AckSupScale;
+ kal_uint16 AckMupScale;
+ kal_uint16 DscScale;
+} CphEvdoRlCrpTrffcSemiStaticCfgT;
+
+
+typedef struct
+{
+ kal_uint16 AuxPltScaleAck;
+ kal_uint16 AuxPltScaleNak;
+ kal_uint16 RriScaleAck;
+ kal_uint16 RriScaleNak;
+ kal_uint16 DataScaleKsAck;
+ kal_uint16 DataScaleKsNak;
+ kal_uint16 DataScale0Ack;
+ kal_uint16 DataScale0Nak;
+ kal_uint16 DataScale1Ack;
+ kal_uint16 DataScale1Nak;
+ kal_uint16 DataScale2Ack;
+ kal_uint16 DataScale2Nak;
+ kal_uint16 DataScale3Ack;
+ kal_uint16 DataScale3Nak;
+ kal_uint16 RriData1;
+ kal_uint16 RriData2Ack;
+ kal_uint16 RriData2Nak;
+ CphEvdoComTrffcSbtyp2PldIdxT PldIdx;
+ CphEvdoComTrffcSbtyp2SbPacketIdxT SbPacketIdx;
+} CphEvdoRlCrpTrffcDataCfgT;
+
+
+typedef struct
+{
+ kal_uint16 SlotOffset;
+ kal_uint32 LongPnMaskH;
+ kal_uint32 LongPnMaskL;
+}CphEvdoRlCrpPnCodeCfgT;
+
+typedef struct
+{
+ kal_uint16 CurSlot;
+ kal_uint16 DrcCover;
+} CphEvdoRlCrpDrcCoverCfgT;
+
+typedef struct
+{
+ kal_uint16 CurSlot;
+ kal_uint16 DscData;
+} CphEvdoRlCrpDscDataCfgT;
+
+
+typedef enum
+{
+ SINGLE_USER,
+ MULITIPLE_USER
+} CphEvdoRlCrpAckUserTypT;
+
+
+typedef struct
+{
+ kal_bool Enable;
+ CphEvdoRlCrpAckUserTypT AckUserType;
+ kal_uint8 Ackbit;
+} CphEvdoRlCrpAckChnlCfgT;
+
+
+
+typedef struct
+{
+ kal_bool Enable;
+} CphEvdoRlCrpEnCfgT;
+
+typedef struct
+{
+ kal_bool Freeze;
+} CphEvdoRlCrpFreezeCfgT;
+
+
+typedef struct
+{
+ kal_bool KsTrig;
+} CphEvdoRlCrpTstKsTrigT;
+
+typedef struct
+{
+ kal_bool TimerTrig;
+} CphEvdoRlCrpTstTimerTrigT;
+
+typedef struct
+{
+ kal_uint16 DrcValue;
+} CphEvdoRlCrpTstDrcValueCfgT;
+
+
+/*----------------------------------------------------------------------------
+ Global Function Prototypes
+----------------------------------------------------------------------------*/
+
+void CphEvdoRlCrpInit(CphEvdoRlCrpInitT *AdsPtr);
+void CphEvdoRlCrpReset(CphEvdoRlCrpResetT *AdsPtr);
+void CphEvdoRlCrpAccPrmblCfg(CphEvdoRlCrpAccPrmblCfgT *AdsPtr);
+void CphEvdoRlCrpAccCpslCfg(CphEvdoRlCrpAccCpslCfgT *AdsPtr);
+void CphEvdoRlCrpTrffcStaticCfg(CphEvdoRlCrpTrffcParamCfgT *AdsPtr);
+void CphEvdoRlCrpTrffcSemiStaticCfg(CphEvdoRlCrpTrffcSemiStaticCfgT *AdsPtr);
+void CphEvdoRlCrpTrffcDataCfg(CphEvdoRlCrpTrffcDataCfgT *AdsPtr);
+void CphEvdoRlCrpPnCodeCfg(CphEvdoRlCrpPnCodeCfgT *AdsPtr);
+void CphEvdoRlCrpDrcCoverCfg(CphEvdoRlCrpDrcCoverCfgT *AdsPtr);
+void CphEvdoRlCrpDscDataCfg(CphEvdoRlCrpDscDataCfgT *AdsPtr);
+void CphEvdoRlCrpFreezeCfg(CphEvdoRlCrpFreezeCfgT *AdsPtr);
+void CphEvdoRlCrpAckChnlCfg(CphEvdoRlCrpAckChnlCfgT *AdsPtr);
+void CphEvdoRlCrpDisAckChnl(void);
+void CphEvdoRlCrpWriteSupAckScale(kal_uint32 SupAckScale);
+void CphEvdoRlCrpWriteMupAckScale(kal_uint32 MupAckScale);
+void CphEvdoRlCrpTstEnableCfg(CphEvdoRlCrpEnCfgT *AdsPtr);
+void CphEvdoRlCrpTstKsTrig(CphEvdoRlCrpTstKsTrigT *AdsPtr);
+void CphEvdoRlCrpTstTimerTrig(CphEvdoRlCrpTstTimerTrigT *AdsPtr);
+void CphEvdoRlCrpTstDrcValueCfg(CphEvdoRlCrpTstDrcValueCfgT *AdsPtr);
+void CphEvdoInitializeChannelScale();
+void CphEvdoDrcRateValueForTest(kal_uint32 DRCValue);
+void CphEvdoRriDataAckSymbolRate(kal_uint32 RriDataAck );
+kal_int16 CphEvdoRlCrpAckValueGet();
+kal_uint32 CphEvdoDrcValueDebug();
+kal_uint32 CphEvdoRlAckDebug();
+kal_uint32 CphEvdoRlKs0Debug();
+kal_uint32 CphEvdoRlKs1Debug();
+kal_uint32 CphEvdoCrpFsmDebug();
+kal_uint32 CphEvdoRlCrpDscDataRead();
+void CphEvdoRlCrpCrcCheckCfg(kal_uint32 CrcLength);
+void CphEvdoRlCrpModeSel();
+//void CphEvdoRlCrpAllRegisterDump(); /* only for Txcrp debug */
+
+
+/*****************************************************************************
+* End of File
+*****************************************************************************/
+#endif