]> rtime.felk.cvut.cz Git - arc.git/commitdiff
New init sequence for CAN
authorjcar <devnull@localhost>
Mon, 27 Feb 2012 06:51:27 +0000 (07:51 +0100)
committerjcar <devnull@localhost>
Mon, 27 Feb 2012 06:51:27 +0000 (07:51 +0100)
arch/ppc/mpc55xx/drivers/Can.c
arch/ppc/mpc55xx/drivers/Mcu.c

index 34a394227618119174da7c640041bfd4b8b5ca00..b049fb230c7cd7a518eff951a520768e6de6a3c6 100644 (file)
@@ -752,10 +752,6 @@ void Can_Init(const Can_ConfigType *config)
 \r
         Can_BuildMaps(unitPtr);\r
 \r
-        /* REMOVE2: Can_InitController() should probably not be called from Can_Init() at all\r
-         * This is done by CanIf */\r
-        Can_InitController(cfgCtrlPtr->CanControllerId,unitPtr->cfgCtrlPtr);\r
-\r
         switch (cfgCtrlPtr->CanControllerId) {\r
 #if defined(CFG_MPC560X)\r
         case CAN_CTRL_A:\r
@@ -867,9 +863,10 @@ void Can_DeInit()
         ctlrId = cfgCtrlPtr->CanControllerId;\r
 \r
         canUnit = CTRL_TO_UNIT_PTR(ctlrId);\r
-        canUnit->state = CANIF_CS_UNINIT;\r
 \r
         Can_DisableControllerInterrupts(ctlrId);\r
\r
+        canUnit->state = CANIF_CS_UNINIT;\r
 \r
         canUnit->lock_cnt = 0;\r
 \r
@@ -1029,14 +1026,6 @@ void Can_InitController(uint8 controller,
     /* @req 3.1.5/CAN260 */\r
     canUnit->state = CANIF_CS_STOPPED;\r
 \r
-    // Release FREEZE to be able to write to mem mapped registers ( see 25.4.8.1 )\r
-\r
-    /* REMOVE1: Remove this cause CAN260 says it should not be able to communicate */\r
-    canHw->MCR.B.FRZ = 0;\r
-    canHw->MCR.B.HALT = 0;\r
-\r
-    Can_EnableControllerInterrupts(cId);\r
-\r
     return;\r
 }\r
 \r
@@ -1064,7 +1053,6 @@ Can_ReturnType Can_SetControllerMode(uint8 controller,
 \r
     switch (transition) {\r
     case CAN_T_START:\r
-        //canHw->MCR.B.FRZ = 0;\r
         canHw->MCR.B.HALT = 0;\r
         canUnit->state = CANIF_CS_STARTED;\r
         Irq_Save(state);\r
@@ -1081,7 +1069,6 @@ Can_ReturnType Can_SetControllerMode(uint8 controller,
         VALIDATE(canUnit->state == CANIF_CS_STOPPED, 0x3, CAN_E_TRANSITION);\r
     case CAN_T_STOP:\r
         // Stop\r
-        //canHw->MCR.B.FRZ = 1;\r
         canHw->MCR.B.HALT = 1;\r
         canUnit->state = CANIF_CS_STOPPED;\r
         Can_AbortTx(canHw, canUnit); // CANIF282\r
index fbf25adb50fd06e689b3a82ba0e9c95f6ee0e32f..b512dced3ce130cdff0c59bbf98a577942cc03ca 100644 (file)
@@ -465,6 +465,9 @@ Std_ReturnType Mcu_InitClock(const Mcu_ClockType ClockSetting)
     CGM.SC_DC[0].R = 0x80; /* MPC56xxB/S: Enable peri set 1 sysclk divided by 1 */\r
     CGM.SC_DC[1].R = 0x80; /* MPC56xxB/S: Enable peri set 1 sysclk divided by 1 */\r
     CGM.SC_DC[2].R = 0x80; /* MPC56xxB/S: Enable peri set 1 sysclk divided by 1 */\r
+\r
+    SIU.PSMI[0].R = 0x01;\r
+\r
 #elif defined(CFG_MPC5606S)\r
     // Write pll parameters.\r
     CGM.FMPLL[0].CR.B.IDF = clockSettingsPtr->Pll1;\r