]> rtime.felk.cvut.cz Git - arc.git/commitdiff
Added support for LIN on MPC5567. Also make it possible to build a standalone LIN...
authorjoek <devnull@localhost>
Sun, 24 Jun 2012 19:10:23 +0000 (21:10 +0200)
committerjoek <devnull@localhost>
Sun, 24 Jun 2012 19:10:23 +0000 (21:10 +0200)
arch/ppc/mpc55xx/drivers/Lin.c
boards/board_common.mk
boards/mpc5567qrtech/build_config.mk
communication/ComM/ComM.c
communication/Nm/Nm.c

index 2f4661fe3471f9458e12113de5078fdf1040879d..90530383c04a0851d0955013300d8d8588663daf 100644 (file)
@@ -37,7 +37,11 @@ static uint32          LinChannelBitTimeInTicks[ LIN_CONTROLLER_CNT ];
 \r
 #define LIN_MAX_MSG_LENGTH 8\r
 \r
+#ifdef CFG_MPC5567\r
+#define ESCI(exp) (volatile struct ESCI_tag *)(0xFFFB0000 + (0x4000 * exp))\r
+#else\r
 #define ESCI(exp) (volatile struct ESCI_tag *)(0xFFFA0000 + (0x4000 * exp))\r
+#endif\r
 \r
 /* LIN145: Reset -> LIN_UNINIT: After reset, the Lin module shall set its state to LIN_UNINIT. */\r
 static Lin_DriverStatusType LinDriverStatus = LIN_UNINIT;\r
@@ -302,6 +306,7 @@ static void LinInterruptB()
 {\r
        LinInterrupt(LIN_CTRL_B);\r
 }\r
+#ifndef CFG_MPC5567\r
 static void LinInterruptC()\r
 {\r
        LinInterrupt(LIN_CTRL_C);\r
@@ -326,6 +331,7 @@ static void LinInterruptH()
 {\r
        LinInterrupt(LIN_CTRL_H);\r
 }\r
+#endif\r
 \r
 #ifdef MPC551X_ERRATA_REV_A\r
 void LinTimeOutInterrupt( uint8 channel )\r
@@ -440,28 +446,48 @@ void Lin_InitChannel(  uint8 Channel,   const Lin_ChannelConfigType* Config )
        /* Install the interrupt */\r
        switch(Channel){\r
        case 0:\r
+#ifdef CFG_MPC5567\r
+               ISR_INSTALL_ISR2("LinIsr", LinInterruptA, (IrqType)(ESCI_A_COMB0),LIN_PRIO, 0);\r
+#else\r
                ISR_INSTALL_ISR2("LinIsr", LinInterruptA, (IrqType)(SCI_A_COMB),LIN_PRIO, 0);\r
+#endif\r
                break;\r
        case 1:\r
+#ifdef CFG_MPC5567\r
+               ISR_INSTALL_ISR2("LinIsr", LinInterruptB, (IrqType)(ESCI_A_COMB1),LIN_PRIO, 0);\r
+#else\r
                ISR_INSTALL_ISR2("LinIsr", LinInterruptB, (IrqType)(SCI_B_COMB),LIN_PRIO, 0);\r
+#endif\r
                break;\r
        case 2:\r
+#ifndef CFG_MPC5567\r
                ISR_INSTALL_ISR2("LinIsr", LinInterruptC, (IrqType)(SCI_C_COMB),LIN_PRIO, 0);\r
+#endif\r
                break;\r
        case 3:\r
+#ifndef CFG_MPC5567\r
                ISR_INSTALL_ISR2("LinIsr", LinInterruptD, (IrqType)(SCI_D_COMB),LIN_PRIO, 0);\r
+#endif\r
                break;\r
        case 4:\r
+#ifndef CFG_MPC5567\r
                ISR_INSTALL_ISR2("LinIsr", LinInterruptE, (IrqType)(SCI_E_COMB),LIN_PRIO, 0);\r
+#endif\r
                break;\r
        case 5:\r
+#ifndef CFG_MPC5567\r
                ISR_INSTALL_ISR2("LinIsr", LinInterruptF, (IrqType)(SCI_F_COMB),LIN_PRIO, 0);\r
+#endif\r
                break;\r
        case 6:\r
+#ifndef CFG_MPC5567\r
                ISR_INSTALL_ISR2("LinIsr", LinInterruptG, (IrqType)(SCI_G_COMB+2),LIN_PRIO, 0);\r
+#endif\r
                break;\r
        case 7:\r
+#ifndef CFG_MPC5567\r
                ISR_INSTALL_ISR2("LinIsr", LinInterruptH, (IrqType)(SCI_H_COMB+3),LIN_PRIO, 0);\r
+#endif\r
                break;\r
        default:\r
                break;\r
index ae8a6aee7b2eab6483ab050b5ba09b2fde491910..2b6653a1e5fb7203809f28a05eb2f48024357ab7 100644 (file)
@@ -179,6 +179,7 @@ obj-$(USE_LIN) += Lin_PBcfg.o
 obj-$(USE_LIN) += Lin_Lcfg.o\r
 obj-$(USE_LIN)-$(CFG_MPC560X) += LinFlex.o\r
 obj-$(USE_LIN)-$(CFG_MPC5516) += Lin.o\r
+obj-$(USE_LIN)-$(CFG_MPC5567) += Lin.o\r
 \r
 # LinIf\r
 obj-$(USE_LINIF) += LinIf_Lcfg.o\r
index 8eeb773c8c9751b4d055541d6029ff757924560d..0f9a9e1d439e2cfb7ce96495f20426c42951a898 100644 (file)
@@ -14,6 +14,7 @@ CFG=PPC BOOKE E200Z6 MPC55XX MPC5567 BRD_MPC5567QRTECH SPE
 MOD_AVAIL+=ADC DIO DMA CAN GPT LIN MCU PORT PWM WDG NVM MEMIF FEE FLS  \r
 # System + Communication + Diagnostic\r
 MOD_AVAIL+=CANIF CANTP J1939TP COM DCM DEM DET ECUM IOHWAB KERNEL PDUR WDGM RTE\r
+MOD_AVAIL+=LINIF LINSM LIN\r
 # Network management\r
 MOD_AVAIL+=COMM NM CANNM CANSM\r
 # Additional\r
index 0d7c97ff150d1d2dfad2169a5d78ddc2906d5457..91e415535559fb031d47e335a6b63051cab7236a 100644 (file)
 #include "ComM_Internal.h"\r
 \r
 /** @req COMM506  @req COMM353 */\r
+#if defined(USE_CANSM)\r
 #include "CanSM.h"\r
+#endif\r
+\r
+#if defined(USE_LINSM)\r
+#include "LinSM.h"\r
+#endif\r
 \r
 /** @req COMM347 */\r
 #if defined(USE_NM) || defined(COMM_TESTS)\r
@@ -470,9 +476,16 @@ static Std_ReturnType ComM_Internal_PropagateGetCurrentComMode( ComM_UserHandleT
                Std_ReturnType status = E_OK;\r
                ComM_ModeType mode = COMM_FULL_COMMUNICATION;\r
                switch (Channel->BusType) {\r
+#if defined(USE_CANSM) || defined(COMM_TESTS)\r
                        case COMM_BUS_TYPE_CAN:\r
                                status = CanSM_GetCurrentComMode(Channel->BusSMNetworkHandle, &mode);\r
                                break;\r
+#endif\r
+#if defined(USE_LINSM)\r
+               case COMM_BUS_TYPE_LIN:\r
+                       status = LinSM_GetCurrentComMode(Channel->BusSMNetworkHandle, &mode);\r
+                       break;\r
+#endif\r
                        default:\r
                                status = E_NOT_OK;\r
                                break;\r
index a98ed6a12e2342900173df3b5e7c2825b7a88e58..34f59ad4b23cf86c4c0af6c2b0495e82348942db 100644 (file)
  * for more details.\r
  * -------------------------------- Arctic Core ------------------------------*/\r
 \r
+\r
+#if defined(USE_CANNM)\r
 #include "CanNm.h"\r
+#endif\r
 #include "Nm.h"\r
 #include "Nm_Internal.h"\r
 \r