]> rtime.felk.cvut.cz Git - arc.git/commitdiff
Merge with 88ca177adfa9c286cb1f95a85e54ea11a9fec4f4
authormahi <devnull@localhost>
Tue, 11 Sep 2012 19:56:17 +0000 (21:56 +0200)
committermahi <devnull@localhost>
Tue, 11 Sep 2012 19:56:17 +0000 (21:56 +0200)
arch/ppc/mpc55xx/drivers/Adc_560x.c
arch/ppc/mpc55xx/drivers/MPC5604B_0M27V_0102.h
boards/mpc5668_gkit/build_config.mk
drivers/Adc_Internal.c

index 4c3b95de1601d0faac53e667f2417d59f70147db..ddea8a0eae662c195fcc3480285963de9d5cea40 100644 (file)
        #error Adc is configured to use Dma but the module is not enabled.\r
 #endif\r
 \r
-#if defined(CFG_MPC5668)\r
-#define ADC_0                          ADC\r
-#endif\r
 \r
 #if defined(CFG_MPC5668)\r
-#define ADC_EOC_INT    ADC_A_EOC\r
-#define ADC_ER_INT             ADC_A_ERR\r
-#define        ADC_WD_INT              ADC_A_WD\r
+#define ADC0_EOC_INT   ADC_A_EOC\r
+#define ADC0_ER_INT            ADC_A_ERR\r
+#define        ADC0_WD_INT             ADC_A_WD\r
+#define ADC1_EOC_INT   ADC_B_EOC\r
+#define ADC1_ER_INT            ADC_B_ERR\r
+#define        ADC1_WD_INT             ADC_B_WD\r
 #endif\r
 \r
 #define GET_HW_CONTROLLER(_controller)         \\r
@@ -84,10 +84,12 @@ static const Adc_ConfigType * Adc_GetControllerConfigPtrFromHwUnitId(int unit)
 {\r
        const Adc_ConfigType *AdcConfigPtr = NULL;\r
 \r
-       for (int configId = 0; configId < ADC_ARC_CTRL_CONFIG_CNT; configId++) {\r
-               if(unit == AdcGlobalConfigPtr[configId].hwConfigPtr->hwUnitId){\r
-                       AdcConfigPtr = &AdcGlobalConfigPtr[configId];\r
-      break;\r
+       if(adcState == ADC_INIT){\r
+               for (int configId = 0; configId < ADC_ARC_CTRL_CONFIG_CNT; configId++) {\r
+                       if(unit == AdcGlobalConfigPtr[configId].hwConfigPtr->hwUnitId){\r
+                               AdcConfigPtr = &AdcGlobalConfigPtr[configId];\r
+                               break;\r
+                       }\r
                }\r
        }\r
 \r
@@ -107,11 +109,11 @@ void Adc_DeInit ()
   boolean okToClear = TRUE;\r
 \r
   for (int configId = 0; configId < ADC_ARC_CTRL_CONFIG_CNT; configId++) {\r
-         hwPtr = GET_HW_CONTROLLER(AdcGlobalConfigPtr[configId].hwConfigPtr->hwUnitId);\r
          const Adc_ConfigType *AdcConfigPtr = &AdcGlobalConfigPtr[configId];\r
 \r
          if (E_OK == Adc_CheckDeInit(adcState, AdcConfigPtr))\r
          {\r
+               hwPtr = GET_HW_CONTROLLER(AdcGlobalConfigPtr[configId].hwConfigPtr->hwUnitId);\r
                for(Adc_GroupType group = (Adc_GroupType)0; group < AdcConfigPtr->nbrOfGroups; group++)\r
                {\r
                  /* Set group status to idle. */\r
@@ -186,49 +188,56 @@ Std_ReturnType Adc_SetupResultBuffer (Adc_GroupType group, Adc_ValueGroupType *b
 Adc_StreamNumSampleType Adc_GetStreamLastPointer(Adc_GroupType group, Adc_ValueGroupType** PtrToSamplePtr)\r
 {\r
        const Adc_ConfigType *AdcConfigPtr = Adc_GetControllerConfigPtrFromGroupId(group);\r
-\r
        Adc_StreamNumSampleType nofSample = 0;\r
-       Adc_GroupDefType *groupPtr = (Adc_GroupDefType *)&AdcConfigPtr->groupConfigPtr[group%NOF_GROUP_PER_CONTROLLER];\r
        \r
        /** @req ADC216 */\r
        /* Check for development errors. */\r
-       if ( (E_OK == Adc_CheckGetStreamLastPointer (adcState, AdcConfigPtr, group)) &&\r
-                (groupPtr->status->groupStatus != ADC_BUSY) )\r
+       if (E_OK == Adc_CheckGetStreamLastPointer (adcState, AdcConfigPtr, group))\r
        {\r
-           /* Set resultPtr to application buffer. */\r
-               if(groupPtr->status->currSampleCount > 0){\r
-                       *PtrToSamplePtr = &groupPtr->status->resultBufferPtr[groupPtr->status->currSampleCount-1];\r
-               }\r
+               Adc_GroupDefType *groupPtr = (Adc_GroupDefType *)&AdcConfigPtr->groupConfigPtr[group%NOF_GROUP_PER_CONTROLLER];\r
 \r
-           if ((ADC_CONV_MODE_ONESHOT == groupPtr->conversionMode) &&\r
-               (ADC_STREAM_COMPLETED  == groupPtr->status->groupStatus))\r
+               if (groupPtr->status->groupStatus != ADC_BUSY)\r
            {\r
-                       /** @req ADC327. */\r
-                       groupPtr->status->groupStatus = ADC_IDLE;\r
-           }\r
-           else if ((ADC_CONV_MODE_CONTINOUS == groupPtr->conversionMode) &&\r
-                    (ADC_ACCESS_MODE_STREAMING == groupPtr->accessMode) &&\r
-                    (ADC_STREAM_BUFFER_LINEAR == groupPtr->streamBufferMode) &&\r
-                    (ADC_STREAM_COMPLETED    == groupPtr->status->groupStatus))\r
-           {\r
-                       /** @req ADC327. */\r
-                       groupPtr->status->groupStatus = ADC_IDLE;\r
-           }\r
-           else if ( (ADC_CONV_MODE_CONTINOUS == groupPtr->conversionMode) &&\r
-                     ((ADC_STREAM_COMPLETED    == groupPtr->status->groupStatus) ||\r
-                      (ADC_COMPLETED           == groupPtr->status->groupStatus)) )\r
-           {\r
-               /* Restart continous mode, and reset result buffer */\r
-               if ((ADC_CONV_MODE_CONTINOUS == groupPtr->conversionMode) &&\r
-                   (ADC_STREAM_COMPLETED    == groupPtr->status->groupStatus))\r
-               {\r
-                         /* Start continous conversion again */\r
-                       Adc_StartGroupConversion(group);\r
-               }\r
-                       /** @req ADC326 */\r
-                       /** @req ADC328 */\r
+                       /* Set resultPtr to application buffer. */\r
+                       if(groupPtr->status->currSampleCount > 0){\r
+                               *PtrToSamplePtr = &groupPtr->status->resultBufferPtr[groupPtr->status->currSampleCount-1];\r
+                       }\r
+\r
+                       if ((ADC_CONV_MODE_ONESHOT == groupPtr->conversionMode) &&\r
+                               (ADC_STREAM_COMPLETED  == groupPtr->status->groupStatus))\r
+                       {\r
+                               /** @req ADC327. */\r
+                               groupPtr->status->groupStatus = ADC_IDLE;\r
+                       }\r
+                       else if ((ADC_CONV_MODE_CONTINOUS == groupPtr->conversionMode) &&\r
+                                        (ADC_ACCESS_MODE_STREAMING == groupPtr->accessMode) &&\r
+                                        (ADC_STREAM_BUFFER_LINEAR == groupPtr->streamBufferMode) &&\r
+                                        (ADC_STREAM_COMPLETED    == groupPtr->status->groupStatus))\r
+                       {\r
+                               /** @req ADC327. */\r
+                               groupPtr->status->groupStatus = ADC_IDLE;\r
+                       }\r
+                       else if ( (ADC_CONV_MODE_CONTINOUS == groupPtr->conversionMode) &&\r
+                                         ((ADC_STREAM_COMPLETED    == groupPtr->status->groupStatus) ||\r
+                                          (ADC_COMPLETED           == groupPtr->status->groupStatus)) )\r
+                       {\r
+                               /* Restart continous mode, and reset result buffer */\r
+                               if ((ADC_CONV_MODE_CONTINOUS == groupPtr->conversionMode) &&\r
+                                       (ADC_STREAM_COMPLETED    == groupPtr->status->groupStatus))\r
+                               {\r
+                                 /* Start continous conversion again */\r
+                                       Adc_StartGroupConversion(group);\r
+                               }\r
+                               /** @req ADC326 */\r
+                               /** @req ADC328 */\r
+                       }\r
+                       else{/* Keep status. */}\r
            }\r
-           else{/* Keep status. */}\r
+               else\r
+               {\r
+                       /* Some condition not met */\r
+                       *PtrToSamplePtr = NULL;\r
+               }\r
        }\r
        else\r
        {\r
@@ -246,10 +255,11 @@ Std_ReturnType Adc_ReadGroup (Adc_GroupType group, Adc_ValueGroupType *dataBuffe
   Std_ReturnType returnValue = E_OK;\r
   uint8_t channel;\r
   const Adc_ConfigType *AdcConfigPtr = Adc_GetControllerConfigPtrFromGroupId(group);\r
-  Adc_GroupDefType *groupPtr = (Adc_GroupDefType *)&AdcConfigPtr->groupConfigPtr[group%NOF_GROUP_PER_CONTROLLER];\r
 \r
   if (E_OK == Adc_CheckReadGroup (adcState, AdcConfigPtr, group))\r
   {\r
+       Adc_GroupDefType *groupPtr = (Adc_GroupDefType *)&AdcConfigPtr->groupConfigPtr[group%NOF_GROUP_PER_CONTROLLER];\r
+\r
     /* Copy the result to application buffer. */\r
     for (channel = 0; channel < groupPtr->numberOfChannels; channel++)\r
        {\r
@@ -481,13 +491,14 @@ void Adc_ConfigureADCInterrupts (const Adc_ConfigType *AdcConfigPtr)
 void Adc_StartGroupConversion (Adc_GroupType group)\r
 {\r
        const Adc_ConfigType *AdcConfigPtr = Adc_GetControllerConfigPtrFromGroupId(group);\r
-       volatile struct ADC_tag *hwPtr = GET_HW_CONTROLLER(AdcConfigPtr->hwConfigPtr->hwUnitId);\r
-\r
-       Adc_GroupDefType *groupPtr = (Adc_GroupDefType *)&AdcConfigPtr->groupConfigPtr[group%NOF_GROUP_PER_CONTROLLER];\r
 \r
        /* Run development error check. */\r
        if (E_OK == Adc_CheckStartGroupConversion (adcState, AdcConfigPtr, group))\r
        {\r
+               volatile struct ADC_tag *hwPtr = GET_HW_CONTROLLER(AdcConfigPtr->hwConfigPtr->hwUnitId);\r
+\r
+               Adc_GroupDefType *groupPtr = (Adc_GroupDefType *)&AdcConfigPtr->groupConfigPtr[group%NOF_GROUP_PER_CONTROLLER];\r
+\r
                /* Disable trigger normal conversions for ADC0 */\r
                hwPtr->MCR.B.NSTART = 0;\r
 \r
@@ -597,10 +608,11 @@ void Adc_StartGroupConversion (Adc_GroupType group)
 void Adc_StopGroupConversion (Adc_GroupType group)\r
 {\r
   const Adc_ConfigType *AdcConfigPtr = Adc_GetControllerConfigPtrFromGroupId(group);\r
-  volatile struct ADC_tag *hwPtr = GET_HW_CONTROLLER(AdcConfigPtr->hwConfigPtr->hwUnitId);\r
 \r
   if (E_OK == Adc_CheckStopGroupConversion (adcState, AdcConfigPtr, group))\r
   {\r
+       volatile struct ADC_tag *hwPtr = GET_HW_CONTROLLER(AdcConfigPtr->hwConfigPtr->hwUnitId);\r
+\r
        /* Disable trigger normal conversions for ADC0 */\r
        hwPtr->MCR.B.NSTART = 0;\r
 \r
index a31aab6cb897493092141e06ec0931284d67f3cf..cccf38c7deb7566923a3b89d7e743441e966c35e 100644 (file)
@@ -2909,7 +2909,7 @@ extern "C" {
         union {\r
             vuint16_t R;\r
             struct {\r
-                vuint16_t SRAM_SIZE:5;\r
+                vuint16_t SRAM_SISE:5;\r
                 vuint16_t PRSZ:5;\r
                 vuint16_t PVLB:1;\r
                 vuint16_t DTSZ:4;\r
index 3f896e29abc1046514203d9a45e7c1dd41371a7e..f6ef40b1cb8d2364f8de95dc11c219295dfba61c 100644 (file)
@@ -2,24 +2,22 @@
 # ARCH defines\r
 ARCH=mpc55xx\r
 ARCH_FAM=ppc\r
-ARCH_MCU=mpc5567\r
+ARCH_MCU=mpc5568\r
 \r
 # CFG (y/n) macros\r
-CFG=PPC BOOKE E200Z6 MPC55XX MPC5567 BRD_MPC5567QRTECH SPE\r
-\r
-#CFG+=BOOT\r
+CFG=PPC BOOKE E200Z1 MPC55XX MPC5668 MPC5668G BRD_MPC5668_GKIT SPE\r
 \r
 # What buildable modules does this board have, \r
 # default or private\r
 \r
 # Memory + Peripherals\r
-MOD_AVAIL+=ADC DIO DMA CAN GPT LIN MCU PORT PWM WDG NVM MEMIF FEE FLS  \r
+MOD_AVAIL+=ADC DIO DMA CAN GPT LIN MCU PORT PWM WDG NVM MEMIF FEE FLS SPI EEP \r
 # System + Communication + Diagnostic\r
-MOD_AVAIL+=CANIF CANTP J1939TP COM DCM DEM DET ECUM IOHWAB KERNEL PDUR WDGM RTE\r
+MOD_AVAIL+=CANIF CANTP COM DCM DEM DET ECUM IOHWAB KERNEL PDUR WDGM RTE\r
 # Network management\r
-MOD_AVAIL+=COMM NM CANNM CANSM\r
+MOD_AVAIL+=COMM NM CANNM CANSM EA  \r
 # Additional\r
-MOD_AVAIL+=RAMLOG \r
+MOD_AVAIL+= RAMLOG TTY_T32\r
 # CRC\r
 MOD_AVAIL+=CRC32 CRC16\r
 # Required modules\r
@@ -28,5 +26,5 @@ MOD_USE += MCU KERNEL ECUM DET
 # Default cross compiler\r
 DEFAULT_CROSS_COMPILE = /opt/powerpc-eabispe/bin/powerpc-eabispe-\r
 \r
-# Defines\r
-def-y += SRAM_SIZE=0x94000\r
+# Defines (can be 0x94000 if MMU is setup for more that 256K)\r
+def-y += SRAM_SIZE=0x40000\r
index 28fe3d58c2d5ee929b85eb638387455c1d9d0a8b..345f98c7f805cf900fbca4f4561716774f404f12 100644 (file)
 #include "arc.h"\r
 #include "Adc_Internal.h"\r
 \r
+#ifndef CFG_MPC560X\r
+#define NOF_GROUP_PER_CONTROLLER 100\r
+#endif\r
+\r
 /* Validate functions used for development error check */\r
 #if ( ADC_DEV_ERROR_DETECT == STD_ON )\r
 Std_ReturnType ValidateInit(Adc_StateType adcState, Adc_APIServiceIDType api)\r