]> rtime.felk.cvut.cz Git - arc.git/commitdiff
Added Dma_DeInit()
authormahi <devnull@localhost>
Tue, 18 Sep 2012 08:02:44 +0000 (10:02 +0200)
committermahi <devnull@localhost>
Tue, 18 Sep 2012 08:02:44 +0000 (10:02 +0200)
arch/ppc/mpc55xx/drivers/Dma.c
arch/ppc/mpc55xx/drivers/Dma.h
arch/ppc/mpc55xx/drivers/Mcu.c

index 3787a6f2113cda358849c7bb501eb4f66fcede8b..9153fd0440239fe92f0314c0e70fd213e4d111ed 100644 (file)
@@ -48,6 +48,15 @@ void Dma_Init (const Dma_ConfigType *ConfigPtr)
   EDMA.CR.B.ERCA = ConfigPtr->dmaChannelArbitration;\r
 }\r
 \r
+void Dma_DeInit( void ) {\r
+       Dma_ChannelType channel;\r
+       for (channel = (Dma_ChannelType)0; channel < DMA_NUMBER_OF_CHANNELS; channel++)\r
+       {\r
+               Dma_StopChannel(channel);\r
+       }\r
+}\r
+\r
+\r
 void Dma_ConfigureChannel (Dma_TcdType *tcd, Dma_ChannelType channel)\r
 {\r
   /* Copy transfer configuration to correct channel. */\r
index da43a2d007f43fe469d2938273c82835151ad627..dcea7a3b8292e68d42e7dc817daf7559683a8d5d 100644 (file)
@@ -346,6 +346,7 @@ extern const Dma_ConfigType DmaConfig [];
 \r
 \r
 void Dma_Init (const Dma_ConfigType *ConfigPtr);\r
+void Dma_DeInit (void );\r
 void Dma_ConfigureChannel (Dma_TcdType *tcd, Dma_ChannelType channel);\r
 void Dma_ConfigureChannelTranferSize (uint32_t nbrOfIterations, Dma_ChannelType channel);\r
 void Dma_ConfigureChannelSourceCorr (uint32_t sourceCorrection, Dma_ChannelType channel);\r
index 1a8a4fbbb81b5c27787551b1e97cff2feb35346c..ab43113e1c1d87962e9c87e7b8997d556f03e6da 100644 (file)
@@ -105,7 +105,7 @@ typedef void (*vfunc_t)();
 #if defined(CFG_MPC5516)\r
 static uint32 Mcu_SavedHaltFlags;\r
 #else\r
-#error Implement halt flags\r
+static uint32 Mcu_SavedHaltFlags[2];\r
 #endif\r
 \r
 \r
@@ -775,10 +775,8 @@ static void enterLowPower (Mcu_ModeType mcuMode )
        /* Set Recover Vector */\r
 #if defined(CFG_MPC5516)\r
 \r
-\r
-\r
        WRITE32(CRP_Z1VEC, ((uint32)&McuE_LowPowerRecoverFlash) | VLE_VAL );\r
-       READWRITE32(CRP_RECPTR,RECPTR_FASTREC,0 );\r
+       READWRITE32( CRP_RECPTR, RECPTR_FASTREC, 0 );\r
 \r
        Mcu_SavedHaltFlags = SIU.HLT.R;\r
        /* Halt everything */\r
@@ -792,6 +790,9 @@ static void enterLowPower (Mcu_ModeType mcuMode )
 \r
        WRITE32(CRP_Z6VEC, ((uint32)&McuE_LowPowerRecoverFlash) | VLE_VAL );\r
        READWRITE32(CRP_RECPTR,RECPTR_FASTREC,0 );\r
+\r
+       Mcu_SavedHaltFlags[0] = SIU.HLT0.R;\r
+       Mcu_SavedHaltFlags[1] = SIU.HLT1.R;\r
        /* Halt everything */\r
     SIU.HLT0.R = 0x037FFF3D;\r
     SIU.HLT1.R = 0x18000F3C;\r
@@ -830,9 +831,14 @@ void Mcu_SetMode( Mcu_ModeType mcuMode)
 \r
 #if defined(CFG_MPC5516) || defined(CFG_MPC5668)\r
        if( MCU_MODE_RUN == mcuMode ) {\r
-               /* Get Most back to "normal" halt flags */\r
-               SIU.HLT.R = Mcu_SavedHaltFlags;\r
 \r
+               /* Get back to "normal" halt flags */\r
+#if defined(CFG_MPC5516)\r
+               SIU.HLT.R = Mcu_SavedHaltFlags;\r
+#elif defined(CFG_MPC5668)\r
+               SIU.HLT0.R = Mcu_SavedHaltFlags[0];\r
+               SIU.HLT1.R = Mcu_SavedHaltFlags[1];\r
+#endif\r
 \r
        } else if( MCU_MODE_SLEEP == mcuMode ) {\r
                /*\r
@@ -840,7 +846,7 @@ void Mcu_SetMode( Mcu_ModeType mcuMode)
                 *\r
                 */\r
 #if defined(USE_DMA)\r
-               Dma_StopAll();\r
+               Dma_DeInit();\r
 #endif\r
 \r
 \r