]> Gitweb @ Texas Instruments - Open Source Git Repositories - git.TI.com/gitweb - keystone-rtos/aif2-lld.git/commitdiff
adding APIs to implement Azcom Wcdma Phy requirements
authorSebastien Tomas <s-tomas@ti.com>
Wed, 8 Oct 2014 08:18:00 +0000 (10:18 +0200)
committerSebastien Tomas <s-tomas@ti.com>
Wed, 8 Oct 2014 08:18:00 +0000 (10:18 +0200)
AIF_init.h
src/AIF_init.c
test/utils/mnavUtils.c

index 915d6769804b83763c5bf8cef65138cd77586afb..aec8aaa55b9c834a64f5d94ad51e75376c972435 100644 (file)
@@ -320,6 +320,233 @@ AIF_disableAtEvent(
        CSL_Aif2AtEventIndex event\r
 );\r
 \r
+\r
+/**\r
+ *   @n@b AIF_configureEgrDioEvent\r
+ *\r
+ *   @b Description\r
+ *   @n This function is used prior to AIF_startHw to override the default parameter of a DIO engine egress event.\r
+ *\r
+ *   @b Arguments\r
+ *   @verbatim\r
+       hAtEvent        Pointer to a CSL_Aif2AtEvent instance.\r
+       dioNum          Egress DIO engine number.\r
+     @endverbatim\r
+ *\r
+ *   <b> Return Value </b>  None\r
+ *\r
+ *   <b> Pre Condition </b>\r
+ *   @n  Call to AIF_initHw(). AIF2 not started yet.\r
+ *\r
+ *   <b> Post Condition </b>\r
+ *   @n\r
+ *\r
+ *   @b Modifies\r
+ *   @n  AIF2 configuration structure\r
+ *\r
+ *   @b Example\r
+ *   @verbatim\r
+            CSL_Aif2AtEvent* hAtEvent\r
+            Uint32           dioNum\r
+            AIF_configureEgrDioEvent(hAtEvent, dioNum);\r
+     @endverbatim\r
+ *\r
+ */\r
+#ifndef __AIF_INIT_C\r
+extern\r
+#endif\r
+void\r
+AIF_configureEgrDioEvent(\r
+               CSL_Aif2AtEvent* hAtEvent,\r
+               Uint32           dioNum\r
+);\r
+\r
+\r
+/**\r
+ *   @n@b AIF_enableEgrDioEvent\r
+ *\r
+ *   @b Description\r
+ *   @n This function is used to enable a DIO egress engine event.\r
+ *\r
+ *   @b Arguments\r
+ *   @verbatim\r
+       dioNum        Egress DIO engine number.\r
+     @endverbatim\r
+ *\r
+ *   <b> Return Value </b>  None\r
+ *\r
+ *   <b> Pre Condition </b>\r
+ *   @n  Call to AIF_initHw().\r
+ *\r
+ *   <b> Post Condition </b>\r
+ *   @n\r
+ *\r
+ *   @b Modifies\r
+ *   @n  AIF2 configuration structure\r
+ *\r
+ *   @b Example\r
+ *   @verbatim\r
+            Uint32           dioNum\r
+            AIF_enableEgrDioEvent(dioNum);\r
+     @endverbatim\r
+ *\r
+ */\r
+#ifndef __AIF_INIT_C\r
+extern\r
+#endif\r
+void AIF_enableEgrDioEvent(\r
+               Uint32           dioNum\r
+);\r
+\r
+/**\r
+ *   @n@b AIF_disableEgrDioEvent\r
+ *\r
+ *   @b Description\r
+ *   @n This function is used to disable a DIO egress engine event.\r
+ *\r
+ *   @b Arguments\r
+ *   @verbatim\r
+       dioNum        Egress DIO engine number.\r
+     @endverbatim\r
+ *\r
+ *   <b> Return Value </b>  None\r
+ *\r
+ *   <b> Pre Condition </b>\r
+ *   @n  Call to AIF_initHw().\r
+ *\r
+ *   <b> Post Condition </b>\r
+ *   @n\r
+ *\r
+ *   @b Modifies\r
+ *   @n  AIF2 configuration structure\r
+ *\r
+ *   @b Example\r
+ *   @verbatim\r
+            Uint32           dioNum\r
+            AIF_disableEgrDioEvent(dioNum);\r
+     @endverbatim\r
+ *\r
+ */\r
+#ifndef __AIF_INIT_C\r
+extern\r
+#endif\r
+void AIF_disableEgrDioEvent(\r
+               Uint32           dioNum\r
+);\r
+\r
+/**\r
+ *   @n@b AIF_configureIngrDioEvent\r
+ *\r
+ *   @b Description\r
+ *   @n This function is used prior to AIF_startHw to override the default parameter of a DIO engine ingress event.\r
+ *\r
+ *   @b Arguments\r
+ *   @verbatim\r
+       hAtEvent        Pointer to a CSL_Aif2AtEvent instance.\r
+       dioNum          Ingress DIO engine number.\r
+     @endverbatim\r
+ *\r
+ *   <b> Return Value </b>  None\r
+ *\r
+ *   <b> Pre Condition </b>\r
+ *   @n  Call to AIF_initHw(). AIF2 not started yet.\r
+ *\r
+ *   <b> Post Condition </b>\r
+ *   @n\r
+ *\r
+ *   @b Modifies\r
+ *   @n  AIF2 configuration structure\r
+ *\r
+ *   @b Example\r
+ *   @verbatim\r
+            CSL_Aif2AtEvent* hAtEvent\r
+            Uint32           dioNum\r
+            AIF_configureIngrDioEvent(hAtEvent, dioNum);\r
+     @endverbatim\r
+ *\r
+ */\r
+#ifndef __AIF_INIT_C\r
+extern\r
+#endif\r
+void\r
+AIF_configureIngrDioEvent(\r
+               CSL_Aif2AtEvent* hAtEvent,\r
+               Uint32           dioNum\r
+);\r
+\r
+\r
+/**\r
+ *   @n@b AIF_enableIngrDioEvent\r
+ *\r
+ *   @b Description\r
+ *   @n This function is used to enable a DIO ingress engine event.\r
+ *\r
+ *   @b Arguments\r
+ *   @verbatim\r
+       dioNum        Ingress DIO engine number.\r
+     @endverbatim\r
+ *\r
+ *   <b> Return Value </b>  None\r
+ *\r
+ *   <b> Pre Condition </b>\r
+ *   @n  Call to AIF_initHw().\r
+ *\r
+ *   <b> Post Condition </b>\r
+ *   @n\r
+ *\r
+ *   @b Modifies\r
+ *   @n  AIF2 configuration structure\r
+ *\r
+ *   @b Example\r
+ *   @verbatim\r
+            Uint32           dioNum\r
+            AIF_enableIngrDioEvent(dioNum);\r
+     @endverbatim\r
+ *\r
+ */\r
+#ifndef __AIF_INIT_C\r
+extern\r
+#endif\r
+void AIF_enableIngrDioEvent(\r
+               Uint32           dioNum\r
+);\r
+\r
+/**\r
+ *   @n@b AIF_disableIngrDioEvent\r
+ *\r
+ *   @b Description\r
+ *   @n This function is used to disable a DIO ingress engine event.\r
+ *\r
+ *   @b Arguments\r
+ *   @verbatim\r
+       dioNum        Ingress DIO engine number.\r
+     @endverbatim\r
+ *\r
+ *   <b> Return Value </b>  None\r
+ *\r
+ *   <b> Pre Condition </b>\r
+ *   @n  Call to AIF_initHw().\r
+ *\r
+ *   <b> Post Condition </b>\r
+ *   @n\r
+ *\r
+ *   @b Modifies\r
+ *   @n  AIF2 configuration structure\r
+ *\r
+ *   @b Example\r
+ *   @verbatim\r
+            Uint32           dioNum\r
+            AIF_disableIngrDioEvent(dioNum);\r
+     @endverbatim\r
+ *\r
+ */\r
+#ifndef __AIF_INIT_C\r
+extern\r
+#endif\r
+void AIF_disableIngrDioEvent(\r
+               Uint32           dioNum\r
+);\r
+\r
 /**\r
  *   @n@b AIF_setRadTimerTc\r
  *\r
index 96630b916d0cc46995b7d3718b1045d1fd893b1f..e4c8d6e89e4b07cde14a49125d6b28f7e3400839 100644 (file)
 #pragma CODE_SECTION(AIF_startHw, ".text:aifInit");\r
 #pragma CODE_SECTION(AIF_initDio, ".text:aifInit");\r
 #pragma CODE_SECTION(AIF_initPktDma, ".text:aifInit");\r
-#pragma CODE_SECTION(AIF_getEgressGroupId, ".text:aifInit");\r
-#pragma CODE_SECTION(AIF_configureAtEvent, ".text:aifInit");\r
-#pragma CODE_SECTION(AIF_enableAtEvent, ".text:aifInit");\r
-#pragma CODE_SECTION(AIF_disableAtEvent, ".text:aifInit");\r
-#pragma CODE_SECTION(AIF_setRadTimerTc, ".text:aifInit");\r
-#pragma CODE_SECTION(AIF_setPhyTimerInit, ".text:aifInit");\r
-#pragma CODE_SECTION(AIF_setUlRadTimerInit, ".text:aifInit");\r
-#pragma CODE_SECTION(AIF_setDlRadTimerInit, ".text:aifInit");\r
-#pragma CODE_SECTION(AIF_setRmLinkSetupParams, ".text:aifInit");\r
-#pragma CODE_SECTION(AIF_setPeFrameTC, ".text:aifInit");\r
-#pragma CODE_SECTION(AIF_setPeFrameMsgTc, ".text:aifInit");\r
-#pragma CODE_SECTION(AIF2_getVersion, ".text:aifInit");\r
-#ifdef K2\r
-#pragma CODE_SECTION(AIF_serdesRestoreDefault, ".text:aifInit");\r
-#pragma CODE_SECTION(AIF_serdesConfig, ".text:aifInit");\r
-#endif\r
 \r
-#pragma CODE_SECTION(initIngrGroupInfo, ".text:aifInit");\r
-#pragma CODE_SECTION(addAxCtoEgrGroupTable, ".text:aifInit");\r
-#pragma CODE_SECTION(addAxCtoIngrGroupTable, ".text:aifInit");\r
-#pragma CODE_SECTION(getEgrGroupId, ".text:aifInit");\r
 \r
 static CSL_Aif2Setup               aif2Setup;//Aif2 HW setup\r
 static CSL_Aif2Param                      aif2Param;//AIF2 module specific parameters\r
@@ -1186,7 +1166,6 @@ void AIF_initHw(
                                        if (hAif->linkConfig[i].sampleRate  == AIF_SRATE_15P36MHZ) dbmxPd               = _bitc32(hAif->linkConfig[i].maskPattern[0]) * (hAif->linkConfig[i].linkRate*4*256*15/15360);\r
                                        if (hAif->linkConfig[i].sampleRate  == AIF_SRATE_23P04MHZ) dbmxPd               = _bitc32(hAif->linkConfig[i].maskPattern[0]) * (hAif->linkConfig[i].linkRate*4*256*15/30720); // same as LTE15\r
                                        if (hAif->linkConfig[i].sampleRate  == AIF_SRATE_30P72MHZ) dbmxPd               = _bitc32(hAif->linkConfig[i].maskPattern[0]) * (hAif->linkConfig[i].linkRate*4*256*15/30720);\r
-                                       if (hAif->linkConfig[i].sampleRate  == AIF_SRATE_61P44MHZ) dbmxPd               = _bitc32(hAif->linkConfig[i].maskPattern[0]) * (hAif->linkConfig[i].linkRate*4*256*15/61440);\r
                                } else {\r
                                        dbmxPd      = hAif->linkConfig[i].numPdAxC;\r
                                }\r
@@ -1202,7 +1181,6 @@ void AIF_initHw(
                                                if (hAif->linkConfig[i].sampleRate  == AIF_SRATE_15P36MHZ) dbmxPd               = _bitc32(hAif->linkConfig[i].maskPattern[0]) * (hAif->linkConfig[i].linkRate*4*256*15/15360);\r
                                                if (hAif->linkConfig[i].sampleRate  == AIF_SRATE_23P04MHZ) dbmxPd               = _bitc32(hAif->linkConfig[i].maskPattern[0]) * (hAif->linkConfig[i].linkRate*4*256*15/30720); // same as LTE15\r
                                                if (hAif->linkConfig[i].sampleRate  == AIF_SRATE_30P72MHZ) dbmxPd               = _bitc32(hAif->linkConfig[i].maskPattern[0]) * (hAif->linkConfig[i].linkRate*4*256*15/30720);\r
-                                               if (hAif->linkConfig[i].sampleRate  == AIF_SRATE_61P44MHZ) dbmxPd               = _bitc32(hAif->linkConfig[i].maskPattern[0]) * (hAif->linkConfig[i].linkRate*4*256*15/61440);\r
                                        }\r
                                        else\r
                                                dbmxPd      = hAif->linkConfig[i].numPdAxC;\r
@@ -1411,7 +1389,6 @@ void AIF_initHw(
                                                if (hAif->linkConfig[i].sampleRate  == AIF_SRATE_15P36MHZ) dbmxPe[i]            = _bitc32(hAif->linkConfig[i].maskPattern[0]) * (hAif->linkConfig[i].linkRate*4*256*15/15360);\r
                                                if (hAif->linkConfig[i].sampleRate  == AIF_SRATE_23P04MHZ) dbmxPe[i]            = _bitc32(hAif->linkConfig[i].maskPattern[0]) * (hAif->linkConfig[i].linkRate*4*256*15/30720); // same as LTE20\r
                                                if (hAif->linkConfig[i].sampleRate  == AIF_SRATE_30P72MHZ) dbmxPe[i]            = _bitc32(hAif->linkConfig[i].maskPattern[0]) * (hAif->linkConfig[i].linkRate*4*256*15/30720);\r
-                                               if (hAif->linkConfig[i].sampleRate  == AIF_SRATE_61P44MHZ) dbmxPe[i]            = _bitc32(hAif->linkConfig[i].maskPattern[0]) * (hAif->linkConfig[i].linkRate*4*256*15/61440);\r
                                }\r
 \r
                                if (hAif->mode == AIF_LTE_WCDMA_MODE)\r
@@ -1423,7 +1400,6 @@ void AIF_initHw(
                                                if (hAif->linkConfig[i].sampleRate  == AIF_SRATE_15P36MHZ) dbmxPe[i]            = _bitc32(hAif->linkConfig[i].maskPattern[0]) * (hAif->linkConfig[i].linkRate*4*256*15/15360);\r
                                                if (hAif->linkConfig[i].sampleRate  == AIF_SRATE_23P04MHZ) dbmxPe[i]            = _bitc32(hAif->linkConfig[i].maskPattern[0]) * (hAif->linkConfig[i].linkRate*4*256*15/30720); // same as LTE20\r
                                                if (hAif->linkConfig[i].sampleRate  == AIF_SRATE_30P72MHZ) dbmxPe[i]            = _bitc32(hAif->linkConfig[i].maskPattern[0]) * (hAif->linkConfig[i].linkRate*4*256*15/30720);\r
-                                               if (hAif->linkConfig[i].sampleRate  == AIF_SRATE_61P44MHZ) dbmxPe[i]            = _bitc32(hAif->linkConfig[i].maskPattern[0]) * (hAif->linkConfig[i].linkRate*4*256*15/61440);\r
                                        } else {\r
                                                if ((CSL_AIF2_DATA_WIDTH_16_BIT==hAif->linkConfig[i].outboundDataWidth)||\r
                                                        (CSL_AIF2_DATA_WIDTH_8_BIT==hAif->linkConfig[i].outboundDataWidth))\r
@@ -1697,12 +1673,6 @@ void AIF_initHw(
                                        FrameMsg2       = AIF2_LTE20_FFT_SIZE + AIF2_LTE20_CYPREEXTENDED_SIZE;\r
                                        totalAxC    = linkRate*4*256*15/30720;\r
                                }\r
-                               if (sampleRate == AIF_SRATE_61P44MHZ) {\r
-                                       FrameMsg1       = AIF2_LTE40_FFT_SIZE + AIF2_LTE40_CYPRENORMAL1_SIZE;\r
-                                       FrameMsg        = AIF2_LTE40_FFT_SIZE + AIF2_LTE40_CYPRENORMAL_SIZE;\r
-                                       FrameMsg2       = AIF2_LTE40_FFT_SIZE + AIF2_LTE40_CYPREEXTENDED_SIZE;\r
-                                       totalAxC    = linkRate*4*256*15/61440;\r
-                               }\r
 \r
                                if (superPacket == 0){\r
                                        if (lte1_4 == 1)\r
@@ -2004,11 +1974,6 @@ void AIF_initHw(
                                        FrameMsg        = AIF2_LTE20_FFT_SIZE + AIF2_LTE20_CYPRENORMAL_SIZE;\r
                                        FrameMsg2       = AIF2_LTE20_FFT_SIZE + AIF2_LTE20_CYPREEXTENDED_SIZE;\r
                                }\r
-                               if (sampleRate == AIF_SRATE_61P44MHZ) {\r
-                                       FrameMsg1       = AIF2_LTE40_FFT_SIZE + AIF2_LTE40_CYPRENORMAL1_SIZE;\r
-                                       FrameMsg        = AIF2_LTE40_FFT_SIZE + AIF2_LTE40_CYPRENORMAL_SIZE;\r
-                                       FrameMsg2       = AIF2_LTE40_FFT_SIZE + AIF2_LTE40_CYPREEXTENDED_SIZE;\r
-                               }\r
 \r
                                if (CSL_AIF2_LINK_PROTOCOL_CPRI==hAif->protocol){\r
                                        if (sampleRate == AIF_SRATE_1P92MHZ)\r
@@ -3149,10 +3114,6 @@ void AIF_initHw(
                                AtEventSetup.AtIngrDioEvent[i].DioFrameEventOffset = DioFrameEventOffset;\r
                                AtEventSetup.AtIngrDioEvent[i].DioFrameStrobeSel = CSL_AIF2_RADT_FRAME; //frame event strobe selection\r
                                if (hAif->dioConfig[i].numPdDBCH) AtEventSetup.bEnableIngrDioEvent[i] = TRUE;//Enable In DIO Event 1 L2/RSA\r
-//#ifdef K2\r
-//                             AtEventSetup.AtIngrDioEvent[i].EvtStrobeSel = CSL_AIF2_RADT_SYMBOL;\r
-//                             AtEventSetup.AtIngrDioEvent[i].DioFrameEventOffset = 1016;\r
-//#endif\r
                        }\r
 \r
                        if (CSL_AIF2_LINK_PROTOCOL_OBSAI==hAif->protocol){\r
@@ -3185,7 +3146,6 @@ void AIF_initHw(
 \r
                        if ((hAif->dioConfig[i].numLink != 0) && (hAif->linkConfig[i].RtEnabled==0))\r
                        {\r
-                               //AT Event setup (E DIO 4chip Event)for link0\r
                                AtEventSetup.AtEgrDioEvent[i].EventSelect = (CSL_Aif2AtEventIndex) (CSL_AIF2_E_DIO_EVENT_0+i); //Select E DIO Event 1\r
                                AtEventSetup.AtEgrDioEvent[i].EventOffset = 0;//300;//delay for TAC operation time\r
                                AtEventSetup.AtEgrDioEvent[i].EvtStrobeSel = CSL_AIF2_RADT_FRAME;\r
@@ -3361,6 +3321,64 @@ void AIF_disableAtEvent(
     AtEventSetup.bEnableRadEvent[(Uint32)event] = FALSE;\r
 }\r
 \r
+void\r
+AIF_configureEgrDioEvent(\r
+               CSL_Aif2AtEvent* hAtEvent,\r
+               Uint32           dioNum\r
+\r
+)\r
+{\r
+       AtEventSetup.AtEgrDioEvent[dioNum].EventSelect         = hAtEvent->EventSelect;     //Select E DIO Event (for instance CSL_AIF2_E_DIO_EVENT_0)\r
+       AtEventSetup.AtEgrDioEvent[dioNum].EventOffset         = hAtEvent->EventOffset;\r
+       AtEventSetup.AtEgrDioEvent[dioNum].EvtStrobeSel        = hAtEvent->EvtStrobeSel;\r
+       AtEventSetup.AtEgrDioEvent[dioNum].EventModulo         = hAtEvent->EventModulo;\r
+       AtEventSetup.AtEgrDioEvent[dioNum].DioFrameEventOffset = hAtEvent->DioFrameEventOffset;\r
+       AtEventSetup.AtEgrDioEvent[dioNum].DioFrameStrobeSel   = hAtEvent->DioFrameStrobeSel;\r
+}\r
+\r
+void AIF_enableEgrDioEvent(\r
+               Uint32           dioNum\r
+)\r
+{\r
+       AtEventSetup.bEnableEgrDioEvent[dioNum] = TRUE;\r
+}\r
+\r
+void AIF_disableEgrDioEvent(\r
+               Uint32           dioNum\r
+)\r
+{\r
+       AtEventSetup.bEnableEgrDioEvent[dioNum] = FALSE;\r
+}\r
+\r
+void\r
+AIF_configureIngrDioEvent(\r
+               CSL_Aif2AtEvent* hAtEvent,\r
+               Uint32           dioNum\r
+\r
+)\r
+{\r
+       AtEventSetup.AtIngrDioEvent[dioNum].EventSelect         = hAtEvent->EventSelect;     //Select E DIO Event (for instance CSL_AIF2_E_DIO_EVENT_0)\r
+       AtEventSetup.AtIngrDioEvent[dioNum].EventOffset         = hAtEvent->EventOffset;\r
+       AtEventSetup.AtIngrDioEvent[dioNum].EvtStrobeSel        = hAtEvent->EvtStrobeSel;\r
+       AtEventSetup.AtIngrDioEvent[dioNum].EventModulo         = hAtEvent->EventModulo;\r
+       AtEventSetup.AtIngrDioEvent[dioNum].DioFrameEventOffset = hAtEvent->DioFrameEventOffset;\r
+       AtEventSetup.AtIngrDioEvent[dioNum].DioFrameStrobeSel   = hAtEvent->DioFrameStrobeSel;\r
+}\r
+\r
+void AIF_enableIngrDioEvent(\r
+               Uint32           dioNum\r
+)\r
+{\r
+       AtEventSetup.bEnableIngrDioEvent[dioNum] = TRUE;\r
+}\r
+\r
+void AIF_disableIngrDioEvent(\r
+               Uint32           dioNum\r
+)\r
+{\r
+       AtEventSetup.bEnableIngrDioEvent[dioNum] = FALSE;\r
+}\r
+\r
 void\r
 AIF_setRadTimerTc(\r
                Uint32 clockNum,\r
index 35fe0998f1ba21466719faf80544fb75b04f0d94..f4ae93314ad0460f621c7235fb179ccd0f2dcd61 100644 (file)
@@ -66,7 +66,7 @@
 #include <ti/csl/csl_cache.h>
 #include <ti/csl/csl_cacheAux.h>
 #include <ti/csl/csl_aif2.h>
-#include <ti/csl/csl_aif2hwControlAux.h>
+#include <ti/csl/csl_aif2HwControlAux.h>
 #include <ti/csl/csl_psc.h>
 #include <ti/csl/csl_pscAux.h>
 #include <ti/csl/csl_pllc.h>