]> rtime.felk.cvut.cz Git - arc.git/blobdiff - arch/ppc/mpc55xx/drivers/Mcu.c
Added Dma_DeInit()
[arc.git] / arch / ppc / mpc55xx / drivers / Mcu.c
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