PDK API Guide for J721E
mcan.h
Go to the documentation of this file.
1 /*
2  * Copyright (c) Texas Instruments Incorporated 2016
3  *
4  * Redistribution and use in source and binary forms, with or without
5  * modification, are permitted provided that the following conditions
6  * are met:
7  *
8  * Redistributions of source code must retain the above copyright
9  * notice, this list of conditions and the following disclaimer.
10  *
11  * Redistributions in binary form must reproduce the above copyright
12  * notice, this list of conditions and the following disclaimer in the
13  * documentation and/or other materials provided with the
14  * distribution.
15  *
16  * Neither the name of Texas Instruments Incorporated nor the names of
17  * its contributors may be used to endorse or promote products derived
18  * from this software without specific prior written permission.
19  *
20  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
21  * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
22  * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
23  * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
24  * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
25  * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
26  * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
27  * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
28  * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
29  * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
30  * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
31  *
32  */
47 #ifndef MCAN_H_
48 #define MCAN_H_
49 
50 /* ========================================================================== */
51 /* Include Files */
52 /* ========================================================================== */
53 #include <ti/csl/soc.h>
54 #include <ti/csl/cslr_mcan.h>
55 
56 #ifdef __cplusplus
57 extern "C" {
58 #endif
59 
60 /* ========================================================================== */
61 /* Macros & Typedefs */
62 /* ========================================================================== */
63 
67 #define MCAN_INTR_MASK_ALL (MCAN_IR_RF0N_MASK | \
68  MCAN_IR_RF0W_MASK | \
69  MCAN_IR_RF0F_MASK | \
70  MCAN_IR_RF0L_MASK | \
71  MCAN_IR_RF1N_MASK | \
72  MCAN_IR_RF1W_MASK | \
73  MCAN_IR_RF1F_MASK | \
74  MCAN_IR_RF1L_MASK | \
75  MCAN_IR_HPM_MASK | \
76  MCAN_IR_TC_MASK | \
77  MCAN_IR_TCF_MASK | \
78  MCAN_IR_TFE_MASK | \
79  MCAN_IR_TEFN_MASK | \
80  MCAN_IR_TEFW_MASK | \
81  MCAN_IR_TEFF_MASK | \
82  MCAN_IR_TEFL_MASK | \
83  MCAN_IR_TSW_MASK | \
84  MCAN_IR_MRAF_MASK | \
85  MCAN_IR_TOO_MASK | \
86  MCAN_IR_DRX_MASK | \
87  MCAN_IR_BEC_MASK | \
88  MCAN_IR_BEU_MASK | \
89  MCAN_IR_ELO_MASK | \
90  MCAN_IR_EP_MASK | \
91  MCAN_IR_EW_MASK | \
92  MCAN_IR_BO_MASK | \
93  MCAN_IR_WDI_MASK | \
94  MCAN_IR_PEA_MASK | \
95  MCAN_IR_PED_MASK | \
96  MCAN_IR_ARA_MASK)
97 
101 #define MCAN_MAX_PAYLOAD_BYTES (64U)
102 
103 /* ========================================================================== */
104 /* Structures and Enums */
105 /* ========================================================================== */
114 typedef uint32_t MCAN_IntrLineNum;
115 
116 #define MCAN_INTR_LINE_NUM_0 (0U)
117 
118 #define MCAN_INTR_LINE_NUM_1 (1U)
119 
120 /* @} */
121 
130 typedef uint32_t MCAN_IdType;
131 
132 #define MCAN_ID_TYPE_11_BIT (0U)
133 
134 #define MCAN_ID_TYPE_29_BIT (1U)
135 
136 /* @} */
137 
146 typedef uint32_t MCAN_OperationMode;
147 
148 #define MCAN_OPERATION_MODE_NORMAL (0U)
149 
150 #define MCAN_OPERATION_MODE_SW_INIT (1U)
151 
152 /* @} */
153 
162 typedef uint32_t MCAN_MemType;
163 
164 #define MCAN_MEM_TYPE_BUF (0U)
165 
166 #define MCAN_MEM_TYPE_FIFO (1U)
167 
168 /* @} */
169 
178 typedef uint32_t MCAN_RxFIFONum;
179 
180 #define MCAN_RX_FIFO_NUM_0 (0U)
181 
182 #define MCAN_RX_FIFO_NUM_1 (1U)
183 
184 /* @} */
185 
194 typedef uint32_t MCAN_PinType;
195 
196 #define MCAN_PIN_TYPE_RX (0U)
197 
198 #define MCAN_PIN_TYPE_TX (1U)
199 
200 /* @} */
201 
210 typedef uint32_t MCAN_ElemSize;
211 
212 #define MCAN_ELEM_SIZE_8BYTES (0U)
213 
214 #define MCAN_ELEM_SIZE_12BYTES (1U)
215 
216 #define MCAN_ELEM_SIZE_16BYTES (2U)
217 
218 #define MCAN_ELEM_SIZE_20BYTES (3U)
219 
220 #define MCAN_ELEM_SIZE_24BYTES (4U)
221 
222 #define MCAN_ELEM_SIZE_32BYTES (5U)
223 
224 #define MCAN_ELEM_SIZE_48BYTES (6U)
225 
226 #define MCAN_ELEM_SIZE_64BYTES (7U)
227 
228 /* @} */
229 
238 typedef uint32_t MCAN_TimeOutSelect;
239 
240 #define MCAN_TIMEOUT_SELECT_CONT (0U)
241 
242 #define MCAN_TIMEOUT_SELECT_TX_EVENT_FIFO (1U)
243 
244 #define MCAN_TIMEOUT_SELECT_RX_FIFO0 (2U)
245 
246 #define MCAN_TIMEOUT_SELECT_RX_FIFO1 (3U)
247 
248 /* @} */
249 
258 typedef uint32_t MCAN_IntrSrc;
259 
260 #define MCAN_INTR_SRC_RX_FIFO0_NEW_MSG (MCAN_IR_RF0N_MASK)
261 
262 #define MCAN_INTR_SRC_RX_FIFO0_WATERMARK (MCAN_IR_RF0W_MASK)
263 
264 #define MCAN_INTR_SRC_RX_FIFO0_FULL (MCAN_IR_RF0F_MASK)
265 
266 #define MCAN_INTR_SRC_RX_FIFO0_MSG_LOST (MCAN_IR_RF0L_MASK)
267 
268 #define MCAN_INTR_SRC_RX_FIFO1_NEW_MSG (MCAN_IR_RF1N_MASK)
269 
270 #define MCAN_INTR_SRC_RX_FIFO1_WATERMARK (MCAN_IR_RF1W_MASK)
271 
272 #define MCAN_INTR_SRC_RX_FIFO1_FULL (MCAN_IR_RF1F_MASK)
273 
274 #define MCAN_INTR_SRC_RX_FIFO1_MSG_LOST (MCAN_IR_RF1L_MASK)
275 
276 #define MCAN_INTR_SRC_HIGH_PRIO_MSG (MCAN_IR_HPM_MASK)
277 
278 #define MCAN_INTR_SRC_TRANS_COMPLETE (MCAN_IR_TC_MASK)
279 
280 #define MCAN_INTR_SRC_TRANS_CANCEL_FINISH (MCAN_IR_TCF_MASK)
281 
282 #define MCAN_INTR_SRC_TX_FIFO_EMPTY (MCAN_IR_TFE_MASK)
283 
284 #define MCAN_INTR_SRC_TX_EVT_FIFO_NEW_ENTRY (MCAN_IR_TEFN_MASK)
285 
286 #define MCAN_INTR_SRC_TX_EVT_FIFO_WATERMARK (MCAN_IR_TEFW_MASK)
287 
288 #define MCAN_INTR_SRC_TX_EVT_FIFO_FULL (MCAN_IR_TEFF_MASK)
289 
290 #define MCAN_INTR_SRC_TX_EVT_FIFO_ELEM_LOST (MCAN_IR_TEFL_MASK)
291 
292 #define MCAN_INTR_SRC_TIMESTAMP_WRAPAROUND (MCAN_IR_TSW_MASK)
293 
294 #define MCAN_INTR_SRC_MSG_RAM_ACCESS_FAILURE (MCAN_IR_MRAF_MASK)
295 
296 #define MCAN_INTR_SRC_TIMEOUT (MCAN_IR_TOO_MASK)
297 
298 #define MCAN_INTR_SRC_DEDICATED_RX_BUFF_MSG (MCAN_IR_DRX_MASK)
299 
300 #define MCAN_INTR_SRC_BIT_ERR_CORRECTED (MCAN_IR_BEC_MASK)
301 
302 #define MCAN_INTR_SRC_BIT_ERR_UNCORRECTED (MCAN_IR_BEU_MASK)
303 
304 #define MCAN_INTR_SRC_ERR_LOG_OVRFLW (MCAN_IR_ELO_MASK)
305 
306 #define MCAN_INTR_SRC_ERR_PASSIVE (MCAN_IR_EP_MASK)
307 
308 #define MCAN_INTR_SRC_WARNING_STATUS (MCAN_IR_EW_MASK)
309 
310 #define MCAN_INTR_SRC_BUS_OFF_STATUS (MCAN_IR_BO_MASK)
311 
312 #define MCAN_INTR_SRC_WATCHDOG (MCAN_IR_WDI_MASK)
313 
314 #define MCAN_INTR_SRC_PROTOCOL_ERR_ARB (MCAN_IR_PEA_MASK)
315 
316 #define MCAN_INTR_SRC_PROTOCOL_ERR_DATA (MCAN_IR_PED_MASK)
317 
318 #define MCAN_INTR_SRC_RES_ADDR_ACCESS (MCAN_IR_ARA_MASK)
319 
320 /* @} */
321 
330 typedef uint32_t MCAN_ECCErrType;
331 
332 #define MCAN_ECC_ERR_TYPE_SEC (0U)
333 
334 #define MCAN_ECC_ERR_TYPE_DED (1U)
335 
336 /* @} */
337 
346 typedef uint32_t MCAN_LpbkMode;
347 
348 #define MCAN_LPBK_MODE_INTERNAL (0U)
349 
353 #define MCAN_LPBK_MODE_EXTERNAL (1U)
354 
359 /* @} */
360 
369 typedef uint32_t MCAN_ComState;
370 
371 #define MCAN_COM_STATE_SYNCHRONIZING (0U)
372 
373 #define MCAN_COM_STATE_IDLE (1U)
374 
375 #define MCAN_COM_STATE_RECEIVER (2U)
376 
377 #define MCAN_COM_STATE_TRANSMITTER (3U)
378 
379 /* @} */
380 
389 typedef uint32_t MCAN_ErrCode;
390 
391 #define MCAN_ERR_CODE_NO_ERROR (0U)
392 
395 #define MCAN_ERR_CODE_STUFF_ERROR (1U)
396 
399 #define MCAN_ERR_CODE_FORM_ERROR (2U)
400 
401 #define MCAN_ERR_CODE_ACK_ERROR (3U)
402 
405 #define MCAN_ERR_CODE_BIT1_ERROR (4U)
406 
411 #define MCAN_ERR_CODE_BIT0_ERROR (5U)
412 
421 #define MCAN_ERR_CODE_CRC_ERROR (6U)
422 
426 #define MCAN_ERR_CODE_NO_CHANGE (7U)
427 
433 /* @} */
434 
440 typedef struct
441 {
446  uint32_t nomTimeSeg1;
450  uint32_t nomTimeSeg2;
462  uint32_t dataTimeSeg1;
466  uint32_t dataTimeSeg2;
475 
479 typedef struct
480 {
481  uint32_t tdcf;
485  uint32_t tdco;
490 
494 typedef struct
495 {
496  uint32_t rrfe;
501  uint32_t rrfs;
506  uint32_t anfe;
512  uint32_t anfs;
519 
523 typedef struct
524 {
525  uint32_t fdMode;
530  uint32_t brsEnable;
536  uint32_t txpEnable;
541  uint32_t efbi;
547  uint32_t pxhddisable;
552  uint32_t darEnable;
558  uint32_t wkupReqEnable;
563  uint32_t autoWkupEnable;
568  uint32_t emulationEnable;
573  uint32_t emulationFAck;
578  uint32_t clkStopFAck;
583  uint32_t wdcPreload;
591  uint32_t tdcEnable;
597 
601 typedef struct
602 {
603  uint32_t monEnable;
608  uint32_t asmEnable;
614  uint32_t tsPrescalar;
618  uint32_t tsSelect;
625  uint32_t timeoutSelect;
629  uint32_t timeoutPreload;
645 
649 typedef struct
650 {
651  uint32_t transErrLogCnt;
653  uint32_t recErrCnt;
655  uint32_t rpStatus;
660  uint32_t canErrLogCnt;
663 
667 typedef struct
668 {
669  uint32_t lastErrCode;
673  uint32_t act;
677  uint32_t errPassive;
682  uint32_t warningStatus;
688  uint32_t busOffStatus;
693  uint32_t dlec;
697  uint32_t resi;
702  uint32_t rbrs;
707  uint32_t rfdf;
713  uint32_t pxe;
718  uint32_t tdcv;
721 
731 typedef struct
732 {
733  uint32_t flssa;
735  uint32_t lss;
741  uint32_t flesa;
743  uint32_t lse;
749  uint32_t txStartAddr;
751  uint32_t txBufNum;
757  uint32_t txFIFOSize;
763  uint32_t txBufMode;
768  uint32_t txBufElemSize;
772  uint32_t txEventFIFOSize;
786  uint32_t rxFIFO0size;
798  uint32_t rxFIFO0OpMode;
805  uint32_t rxFIFO1size;
817  uint32_t rxFIFO1OpMode;
822  uint32_t rxBufStartAddr;
824  uint32_t rxBufElemSize;
826  uint32_t rxFIFO0ElemSize;
828  uint32_t rxFIFO1ElemSize;
831 
835 typedef struct
836 {
837  uint32_t bufIdx;
841  uint32_t msi;
849  uint32_t filterIdx;
851  uint32_t filterList;
857 
861 typedef struct
862 {
863  uint32_t statusLow;
865  uint32_t statusHigh;
868 
872 typedef struct
873 {
874  uint32_t num;
878  uint32_t fillLvl;
880  uint32_t getIdx;
882  uint32_t putIdx;
884  uint32_t fifoFull;
889  uint32_t msgLost;
892 
896 typedef struct
897 {
898  uint32_t freeLvl;
900  uint32_t getIdx;
904  uint32_t putIdx;
906  uint32_t fifoFull;
912 
916 typedef struct
917 {
918  uint32_t fillLvl;
920  uint32_t getIdx;
922  uint32_t putIdx;
924  uint32_t fifoFull;
929  uint32_t eleLost;
936 
940 typedef struct
941 {
942  uint32_t errType;
946  uint32_t rowNum;
948  uint32_t bit1;
952  uint32_t bit2;
954  uint32_t errOnce;
958  uint32_t errForce;
961 
965 typedef struct
966 {
967  uint32_t secErr;
972  uint32_t dedErr;
977  uint32_t row;
981  uint32_t bit1;
984  uint32_t bit2;
989 
994 typedef struct
995 {
996  uint32_t scheme;
998  uint32_t bu;
1000  uint32_t modId;
1002  uint32_t rtlRev;
1004  uint32_t major;
1006  uint32_t custom;
1008  uint32_t minor;
1010  uint32_t day;
1012  uint32_t mon;
1014  uint32_t year;
1016  uint32_t subStep;
1018  uint32_t step;
1020  uint32_t rel;
1023 
1027 typedef struct
1028 {
1029  uint32_t scheme;
1031  uint32_t bu;
1033  uint32_t modId;
1035  uint32_t rtlRev;
1037  uint32_t major;
1039  uint32_t custom;
1041  uint32_t minor;
1044 
1048 typedef struct
1049 {
1050  uint32_t enable;
1055  uint32_t enableChk;
1060  uint32_t enableRdModWr;
1066 
1070 typedef struct
1071 {
1072  uint32_t scheme;
1074  uint32_t bu;
1076  uint32_t modId;
1078  uint32_t rtlRev;
1080  uint32_t major;
1082  uint32_t custom;
1084  uint32_t minor;
1087 
1091 typedef struct
1092 {
1093  uint32_t id;
1095  uint32_t rtr;
1100  uint32_t xtd;
1105  uint32_t esi;
1110  uint32_t dlc;
1116  uint32_t brs;
1121  uint32_t fdf;
1126  uint32_t efc;
1131  uint32_t mm;
1138 
1146 typedef struct
1147 {
1148  uint32_t id;
1150  uint32_t rtr;
1155  uint32_t xtd;
1160  uint32_t esi;
1165  uint32_t dlc;
1171  uint32_t brs;
1176  uint32_t fdf;
1181  uint32_t efc;
1186  uint32_t mm;
1188  uint8_t *data;
1193 
1197 typedef struct
1198 {
1199  uint32_t id;
1201  uint32_t rtr;
1206  uint32_t xtd;
1211  uint32_t esi;
1216  uint32_t rxts;
1218  uint32_t dlc;
1224  uint32_t brs;
1229  uint32_t fdf;
1234  uint32_t fidx;
1236  uint32_t anmf;
1246 
1254 typedef struct
1255 {
1256  uint32_t id;
1258  uint32_t rtr;
1263  uint32_t xtd;
1268  uint32_t esi;
1273  uint32_t rxts;
1275  uint32_t dlc;
1281  uint32_t brs;
1286  uint32_t fdf;
1291  uint32_t fidx;
1293  uint32_t anmf;
1298  uint8_t *data;
1303 
1307 typedef struct
1308 {
1309  uint32_t id;
1311  uint32_t rtr;
1316  uint32_t xtd;
1321  uint32_t esi;
1326  uint32_t txts;
1328  uint32_t dlc;
1334  uint32_t brs;
1339  uint32_t fdf;
1344  uint32_t et;
1352  uint32_t mm;
1355 
1359 typedef struct
1360 {
1361  uint32_t sfid2;
1363  uint32_t sfid1;
1365  uint32_t sfec;
1379  uint32_t sft;
1387 
1391 typedef struct
1392 {
1393  uint32_t efid1;
1395  uint32_t efec;
1409  uint32_t efid2;
1411  uint32_t eft;
1420 
1421 /* ========================================================================== */
1422 /* Global Variables */
1423 /* ========================================================================== */
1424 
1425 /* None */
1426 
1427 /* ========================================================================== */
1428 /* Function Declarations */
1429 /* ========================================================================== */
1430 
1438 void MCAN_reset(uint32_t baseAddr);
1439 
1448 uint32_t MCAN_isInReset(uint32_t baseAddr);
1449 
1459 uint32_t MCAN_isFDOpEnable(uint32_t baseAddr);
1460 
1470 uint32_t MCAN_isMemInitDone(uint32_t baseAddr);
1471 
1481 void MCAN_setOpMode(uint32_t baseAddr, uint32_t mode);
1482 
1491 uint32_t MCAN_getOpMode(uint32_t baseAddr);
1492 
1502 int32_t MCAN_init(uint32_t baseAddr, const MCAN_InitParams *initParams);
1503 
1513 int32_t MCAN_config(uint32_t baseAddr, const MCAN_ConfigParams *configParams);
1514 
1524 void MCAN_eccConfig(uint32_t baseAddr,
1525  const MCAN_ECCConfigParams *configParams);
1526 
1536 int32_t MCAN_setBitTime(uint32_t baseAddr,
1537  const MCAN_BitTimingParams *configParams);
1538 
1549 int32_t MCAN_msgRAMConfig(uint32_t baseAddr,
1550  const MCAN_MsgRAMConfigParams *msgRAMConfigParams);
1551 
1561 int32_t MCAN_setExtIDAndMask(uint32_t baseAddr, uint32_t idMask);
1562 
1576 void MCAN_writeMsgRam(uint32_t baseAddr,
1577  uint32_t memType,
1578  uint32_t bufNum,
1579  const MCAN_TxBufElement *elem);
1580 
1601 void MCAN_writeMsgRamNoCpy(uint32_t baseAddr,
1602  uint32_t memType,
1603  uint32_t bufNum,
1604  const MCAN_TxBufElementNoCpy *elem);
1605 
1614 int32_t MCAN_txBufAddReq(uint32_t baseAddr, uint32_t bufNum);
1615 
1625 void MCAN_getNewDataStatus(uint32_t baseAddr,
1626  MCAN_RxNewDataStatus *newDataStatus);
1627 
1638 void MCAN_clearNewDataStatus(uint32_t baseAddr,
1639  const MCAN_RxNewDataStatus *newDataStatus);
1640 
1657 void MCAN_readMsgRam(uint32_t baseAddr,
1658  uint32_t memType,
1659  uint32_t bufNum,
1660  uint32_t fifoNum,
1661  MCAN_RxBufElement *elem);
1662 
1686 void MCAN_readMsgRamNoCpy(uint32_t baseAddr,
1687  uint32_t memType,
1688  uint32_t bufNum,
1689  uint32_t fifoNum,
1690  MCAN_RxBufElementNoCpy *elem);
1691 
1701 void MCAN_readTxEventFIFO(uint32_t baseAddr,
1702  MCAN_TxEventFIFOElement *txEventElem);
1703 
1714 void MCAN_addStdMsgIDFilter(uint32_t baseAddr,
1715  uint32_t filtNum,
1716  const MCAN_StdMsgIDFilterElement *elem);
1717 
1728 void MCAN_addExtMsgIDFilter(uint32_t baseAddr,
1729  uint32_t filtNum,
1730  const MCAN_ExtMsgIDFilterElement *elem);
1731 
1746 void MCAN_lpbkModeEnable(uint32_t baseAddr,
1747  uint32_t lpbkMode,
1748  uint32_t enable);
1749 
1759 void MCAN_getErrCounters(uint32_t baseAddr,
1760  MCAN_ErrCntStatus *errCounter);
1761 
1771 void MCAN_getProtocolStatus(uint32_t baseAddr,
1772  MCAN_ProtocolStatus *protStatus);
1773 
1785 void MCAN_enableIntr(uint32_t baseAddr, uint32_t intrMask, uint32_t enable);
1786 
1798 void MCAN_selectIntrLine(uint32_t baseAddr,
1799  uint32_t intrMask,
1800  uint32_t lineNum);
1801 
1809 uint32_t MCAN_getIntrLineSelectStatus(uint32_t baseAddr);
1810 
1822 void MCAN_enableIntrLine(uint32_t baseAddr,
1823  uint32_t lineNum,
1824  uint32_t enable);
1825 
1833 uint32_t MCAN_getIntrStatus(uint32_t baseAddr);
1834 
1843 void MCAN_clearIntrStatus(uint32_t baseAddr, uint32_t intrMask);
1844 
1854 void MCAN_getHighPriorityMsgStatus(uint32_t baseAddr,
1856 
1866 void MCAN_getRxFIFOStatus(uint32_t baseAddr,
1867  MCAN_RxFIFOStatus *fifoStatus);
1868 
1879 int32_t MCAN_writeRxFIFOAck(uint32_t baseAddr,
1880  uint32_t fifoNum,
1881  uint32_t idx);
1882 
1892 void MCAN_getTxFIFOQueStatus(uint32_t baseAddr,
1893  MCAN_TxFIFOStatus *fifoStatus);
1894 
1902 uint32_t MCAN_getTxBufReqPend(uint32_t baseAddr);
1903 
1912 int32_t MCAN_txBufCancellationReq(uint32_t baseAddr, uint32_t buffNum);
1913 
1921 uint32_t MCAN_getTxBufTransmissionStatus(uint32_t baseAddr);
1922 
1930 uint32_t MCAN_txBufCancellationStatus(uint32_t baseAddr);
1931 
1942 int32_t MCAN_txBufTransIntrEnable(uint32_t baseAddr,
1943  uint32_t bufNum,
1944  uint32_t enable);
1945 
1957 int32_t MCAN_getTxBufCancellationIntrEnable(uint32_t baseAddr,
1958  uint32_t bufNum,
1959  uint32_t enable);
1960 
1972 void MCAN_addClockStopRequest(uint32_t baseAddr, uint32_t enable);
1973 
1983 void MCAN_getTxEventFIFOStatus(uint32_t baseAddr,
1984  MCAN_TxEventFIFOStatus *fifoStatus);
1985 
1994 int32_t MCAN_writeTxEventFIFOAck(uint32_t baseAddr, uint32_t idx);
1995 
2005 void MCAN_eccForceError(uint32_t baseAddr,
2006  const MCAN_ECCErrForceParams *eccErr);
2007 
2017 void MCAN_eccGetErrorStatus(uint32_t baseAddr,
2018  MCAN_ECCErrStatus *eccErr);
2019 
2029 void MCAN_eccClearErrorStatus(uint32_t baseAddr, uint32_t errType);
2030 
2040 void MCAN_eccWriteEOI(uint32_t baseAddr, uint32_t errType);
2041 
2053 void MCAN_eccEnableIntr(uint32_t baseAddr, uint32_t errType, uint32_t enable);
2054 
2064 uint32_t MCAN_eccGetIntrStatus(uint32_t baseAddr, uint32_t errType);
2065 
2075 void MCAN_eccClearIntrStatus(uint32_t baseAddr, uint32_t errType);
2076 
2087 void MCAN_extTSCounterConfig(uint32_t baseAddr,
2088  uint32_t prescalar);
2089 
2100 void MCAN_extTSCounterEnable(uint32_t baseAddr, uint32_t enable);
2101 
2114 void MCAN_extTSEnableIntr(uint32_t baseAddr, uint32_t enable);
2115 
2124 void MCAN_extTSWriteEOI(uint32_t baseAddr);
2125 
2136 uint32_t MCAN_extTSGetUnservicedIntrCount(uint32_t baseAddr);
2137 
2138 /* ========================================================================== */
2139 /* Advance Functions */
2140 /* ========================================================================== */
2141 
2151 void MCAN_getRevisionId(uint32_t baseAddr, MCAN_RevisionId *revId);
2152 
2163 uint32_t MCAN_getClockStopAck(uint32_t baseAddr);
2164 
2173 void MCAN_extTSSetRawStatus(uint32_t baseAddr);
2174 
2183 void MCAN_extTSClearRawStatus(uint32_t baseAddr);
2184 
2194 uint32_t MCAN_getRxPinState(uint32_t baseAddr);
2195 
2209 void MCAN_setTxPinState(uint32_t baseAddr, uint32_t state);
2210 
2222 uint32_t MCAN_getTxPinState(uint32_t baseAddr);
2223 
2231 uint32_t MCAN_getTSCounterVal(uint32_t baseAddr);
2232 
2243 uint32_t MCAN_getClkStopAck(uint32_t baseAddr);
2244 
2254 void MCAN_getBitTime(uint32_t baseAddr,
2255  MCAN_BitTimingParams *configParams);
2256 
2264 void MCAN_resetTSCounter(uint32_t baseAddr);
2265 
2273 uint32_t MCAN_getTOCounterVal(uint32_t baseAddr);
2274 
2284 void MCAN_eccAggrGetRevisionId(uint32_t baseAddr,
2285  MCAN_ECCAggrRevisionId *revId);
2286 
2296 void MCAN_eccWrapGetRevisionId(uint32_t baseAddr,
2297  MCAN_ECCWrapRevisionId *revId);
2298 
2309 uint32_t MCAN_extTSIsIntrEnable(uint32_t baseAddr);
2310 
2318 uint32_t MCAN_getEndianVal(uint32_t baseAddr);
2319 
2327 uint32_t MCAN_getExtIDANDMassk(uint32_t baseAddr);
2328 
2329 #ifdef __cplusplus
2330 }
2331 
2332 #endif /*extern "C" */
2333 
2334 #endif
2335 
void MCAN_eccWrapGetRevisionId(uint32_t baseAddr, MCAN_ECCWrapRevisionId *revId)
This API is used get the ECC Wrapper revision ID.
uint32_t act
Definition: mcan.h:673
uint32_t id
Definition: mcan.h:1148
void MCAN_eccGetErrorStatus(uint32_t baseAddr, MCAN_ECCErrStatus *eccErr)
This API will return ECC Error status.
uint32_t resi
Definition: mcan.h:697
int32_t MCAN_txBufCancellationReq(uint32_t baseAddr, uint32_t buffNum)
This API will set Tx Buffer Cancellation Request.
uint32_t dataTimeSeg1
Definition: mcan.h:462
void MCAN_writeMsgRam(uint32_t baseAddr, uint32_t memType, uint32_t bufNum, const MCAN_TxBufElement *elem)
This API is used to write Tx message to message RAM.
uint32_t filterIdx
Definition: mcan.h:849
uint32_t rxFIFO0ElemSize
Definition: mcan.h:826
void MCAN_eccEnableIntr(uint32_t baseAddr, uint32_t errType, uint32_t enable)
This API is used to enable ECC interrupt.
Structure for MCAN Transmitter Delay Compensation parameters.
Definition: mcan.h:479
void MCAN_extTSWriteEOI(uint32_t baseAddr)
This API is used to write End of Interrupt for External TimeStamp Counter Overflow Interrupt.
Structure for ECC Error Status.
Definition: mcan.h:965
uint32_t major
Definition: mcan.h:1037
uint32_t nomTimeSeg2
Definition: mcan.h:450
uint32_t dataTimeSeg2
Definition: mcan.h:466
uint32_t xtd
Definition: mcan.h:1206
uint32_t dlc
Definition: mcan.h:1275
uint32_t MCAN_getTOCounterVal(uint32_t baseAddr)
This API will return current time-out counter value.
uint32_t id
Definition: mcan.h:1199
uint32_t timeoutSelect
Definition: mcan.h:625
uint32_t MCAN_getTSCounterVal(uint32_t baseAddr)
This API will return current timestamp counter value.
uint32_t brs
Definition: mcan.h:1116
uint32_t rbrs
Definition: mcan.h:702
uint32_t rxts
Definition: mcan.h:1216
uint32_t wdcPreload
Definition: mcan.h:583
uint32_t txpEnable
Definition: mcan.h:536
uint32_t txEventFIFOStartAddr
Definition: mcan.h:770
uint32_t tsSelect
Definition: mcan.h:618
uint32_t enableChk
Definition: mcan.h:1055
uint32_t esi
Definition: mcan.h:1321
uint32_t MCAN_getTxBufReqPend(uint32_t baseAddr)
This API will return Tx Buffer Request Pending status.
uint32_t num
Definition: mcan.h:874
uint32_t anfe
Definition: mcan.h:506
Structure for MCAN new data flag for Rx buffer.
Definition: mcan.h:861
#define MCAN_MAX_PAYLOAD_BYTES
Maximum payload supported by CAn-FD protocol in bytes.
Definition: mcan.h:101
void MCAN_setOpMode(uint32_t baseAddr, uint32_t mode)
This API will set MCAN module mode of operation.
uint32_t errPassive
Definition: mcan.h:677
uint32_t MCAN_extTSGetUnservicedIntrCount(uint32_t baseAddr)
This API returns Number of unserviced rollover/overflow interrupts for external TimeStamp counter.
uint32_t subStep
Definition: mcan.h:1016
uint32_t MCAN_getOpMode(uint32_t baseAddr)
This API will return MCAN module mode of operation.
uint32_t errForce
Definition: mcan.h:958
uint32_t modId
Definition: mcan.h:1076
uint32_t MCAN_OperationMode
Enum to represent the MCAN mode of operation.
Definition: mcan.h:146
uint32_t rxFIFO0OpMode
Definition: mcan.h:798
uint32_t eleLost
Definition: mcan.h:929
void MCAN_enableIntrLine(uint32_t baseAddr, uint32_t lineNum, uint32_t enable)
This API is used to enable/disable selected interrupt line.
uint32_t rxFIFO1waterMark
Definition: mcan.h:811
uint32_t transErrLogCnt
Definition: mcan.h:651
uint32_t MCAN_ErrCode
Enum to represent MCAN's Error Code.
Definition: mcan.h:389
uint32_t tdcf
Definition: mcan.h:481
uint32_t minor
Definition: mcan.h:1041
uint32_t emulationEnable
Definition: mcan.h:568
uint32_t emulationFAck
Definition: mcan.h:573
uint32_t mon
Definition: mcan.h:1012
uint32_t brsEnable
Definition: mcan.h:530
void MCAN_getRxFIFOStatus(uint32_t baseAddr, MCAN_RxFIFOStatus *fifoStatus)
This API will Rx FIFO status.
Structure for MCAN ECC configuration parameters.
Definition: mcan.h:1048
uint32_t rxFIFO1OpMode
Definition: mcan.h:817
void MCAN_extTSCounterEnable(uint32_t baseAddr, uint32_t enable)
This API will enable/disable fast external time stamp counter for MCAN module.
Structure for MCAN Extended Message ID Filter Element.
Definition: mcan.h:1391
uint32_t errType
Definition: mcan.h:942
uint32_t statusHigh
Definition: mcan.h:865
uint32_t fdMode
Definition: mcan.h:525
uint32_t xtd
Definition: mcan.h:1263
void MCAN_writeMsgRamNoCpy(uint32_t baseAddr, uint32_t memType, uint32_t bufNum, const MCAN_TxBufElementNoCpy *elem)
This API is used to write Tx message to message RAM. This uses the MCAN_TxBufElementNoCpy structure e...
uint32_t bu
Definition: mcan.h:998
uint32_t MCAN_getTxBufTransmissionStatus(uint32_t baseAddr)
This API will return Tx Buffer Transmission Occurred status.
void MCAN_enableIntr(uint32_t baseAddr, uint32_t intrMask, uint32_t enable)
This API is used to enable/disable interrupts.
uint32_t dedErr
Definition: mcan.h:972
Structure for MCAN Rx Buffer element which takes data as a pointer. Using this the MCAL CAN driver ca...
Definition: mcan.h:1254
uint32_t getIdx
Definition: mcan.h:880
void MCAN_extTSCounterConfig(uint32_t baseAddr, uint32_t prescalar)
This API will configure external timestamp counter for MCAN module.
void MCAN_eccConfig(uint32_t baseAddr, const MCAN_ECCConfigParams *configParams)
This API will enable/disable ECC on the Message RAM.
uint32_t mm
Definition: mcan.h:1131
uint32_t MCAN_PinType
Enum to represent the MCAN pin type.
Definition: mcan.h:194
uint32_t fdf
Definition: mcan.h:1339
uint32_t darEnable
Definition: mcan.h:552
uint32_t efbi
Definition: mcan.h:541
void MCAN_readMsgRamNoCpy(uint32_t baseAddr, uint32_t memType, uint32_t bufNum, uint32_t fifoNum, MCAN_RxBufElementNoCpy *elem)
This API is used to read received message from message RAM. This uses the MCAN_RxBufElementNoCpy stru...
Structure for MCAN Rx FIFO Status.
Definition: mcan.h:872
void MCAN_getErrCounters(uint32_t baseAddr, MCAN_ErrCntStatus *errCounter)
This API will return error counter status for MCAN module.
void MCAN_selectIntrLine(uint32_t baseAddr, uint32_t intrMask, uint32_t lineNum)
This API is used to select interrupt line.
uint32_t anmf
Definition: mcan.h:1236
uint32_t canErrLogCnt
Definition: mcan.h:660
uint32_t bu
Definition: mcan.h:1074
uint32_t scheme
Definition: mcan.h:1072
uint32_t fifoFull
Definition: mcan.h:906
void MCAN_extTSClearRawStatus(uint32_t baseAddr)
This API will clear External TimeStamp Counter Overflow Interrupt raw status for MCAN module.
uint32_t minor
Definition: mcan.h:1084
uint32_t fdf
Definition: mcan.h:1121
void MCAN_getRevisionId(uint32_t baseAddr, MCAN_RevisionId *revId)
This API is used get the MCAN revision ID.
uint32_t autoWkupEnable
Definition: mcan.h:563
uint32_t MCAN_MemType
Enum to represent the MCAN Message RAM type.
Definition: mcan.h:162
uint32_t id
Definition: mcan.h:1309
uint32_t MCAN_RxFIFONum
Enum to represent the MCAN Rx FIFO number.
Definition: mcan.h:178
uint32_t dataSynchJumpWidth
Definition: mcan.h:470
uint32_t lss
Definition: mcan.h:735
uint32_t MCAN_getExtIDANDMassk(uint32_t baseAddr)
This API will get the configured Extended ID AND Mask.
uint32_t modId
Definition: mcan.h:1033
uint32_t rowNum
Definition: mcan.h:946
uint32_t sft
Definition: mcan.h:1379
uint32_t anmf
Definition: mcan.h:1293
uint32_t bit1
Definition: mcan.h:948
uint32_t esi
Definition: mcan.h:1105
int32_t MCAN_setBitTime(uint32_t baseAddr, const MCAN_BitTimingParams *configParams)
This API will configure a bit timings for MCAN module.
uint32_t rpStatus
Definition: mcan.h:655
Structure for MCAN Tx FIFO Status.
Definition: mcan.h:896
uint32_t row
Definition: mcan.h:977
uint32_t modId
Definition: mcan.h:1000
uint32_t step
Definition: mcan.h:1018
uint32_t dlec
Definition: mcan.h:693
Structure for MCAN High Priority Message.
Definition: mcan.h:835
void MCAN_addExtMsgIDFilter(uint32_t baseAddr, uint32_t filtNum, const MCAN_ExtMsgIDFilterElement *elem)
This API is used to add Extended Message ID Filter Element.
uint32_t txEventFIFOWaterMark
Definition: mcan.h:778
uint32_t msi
Definition: mcan.h:841
uint32_t dataRatePrescalar
Definition: mcan.h:458
uint32_t bufIdx
Definition: mcan.h:837
uint32_t rxts
Definition: mcan.h:1273
uint32_t eft
Definition: mcan.h:1411
uint32_t lse
Definition: mcan.h:743
uint32_t sfid2
Definition: mcan.h:1361
uint32_t fdf
Definition: mcan.h:1229
void MCAN_eccClearErrorStatus(uint32_t baseAddr, uint32_t errType)
This API is used to clear the ECC Error status.
uint32_t major
Definition: mcan.h:1080
int32_t MCAN_msgRAMConfig(uint32_t baseAddr, const MCAN_MsgRAMConfigParams *msgRAMConfigParams)
This API will configure Different sections of Message RAM.
Structure for MCAN Tx Buffer element which takes data as a pointer. Using this the MCAL CAN driver ca...
Definition: mcan.h:1146
uint32_t monEnable
Definition: mcan.h:603
uint32_t id
Definition: mcan.h:1256
uint32_t tdcEnable
Definition: mcan.h:591
void MCAN_extTSSetRawStatus(uint32_t baseAddr)
This API will set External TimeStamp Counter Overflow Interrupt Raw status for MCAN module.
uint32_t putIdx
Definition: mcan.h:882
uint32_t bit1
Definition: mcan.h:981
Structure for bit timing calculation. Bit timing related to data phase will be valid only in case whe...
Definition: mcan.h:440
Structure for ECC Error forcing.
Definition: mcan.h:940
uint32_t getIdx
Definition: mcan.h:920
uint32_t statusLow
Definition: mcan.h:863
int32_t MCAN_txBufAddReq(uint32_t baseAddr, uint32_t bufNum)
This API will set Tx Buffer Add Request.
uint32_t fidx
Definition: mcan.h:1291
uint32_t MCAN_LpbkMode
Enum to select the MCAN Loopback mode.
Definition: mcan.h:346
uint32_t brs
Definition: mcan.h:1281
MCAN_GlobalFiltConfig filterConfig
Definition: mcan.h:640
Structure for accessing Revision ID and Core Release Info. of MCAN module.
Definition: mcan.h:994
uint32_t fidx
Definition: mcan.h:1234
uint32_t fifoFull
Definition: mcan.h:884
uint32_t rxFIFO1ElemSize
Definition: mcan.h:828
void MCAN_getBitTime(uint32_t baseAddr, MCAN_BitTimingParams *configParams)
This API will get the configured bit timings for MCAN module.
uint32_t MCAN_ECCErrType
Enum to represent the ECC Error Types.
Definition: mcan.h:330
uint32_t MCAN_getIntrLineSelectStatus(uint32_t baseAddr)
This API is used to get interrupt line selected for each interrupt.
uint32_t dlc
Definition: mcan.h:1165
uint32_t rtr
Definition: mcan.h:1150
void MCAN_eccAggrGetRevisionId(uint32_t baseAddr, MCAN_ECCAggrRevisionId *revId)
This API is used get the ECC AGGR revision ID.
uint32_t tdco
Definition: mcan.h:485
int32_t MCAN_config(uint32_t baseAddr, const MCAN_ConfigParams *configParams)
This API will configure MCAN module.
uint32_t MCAN_getClockStopAck(uint32_t baseAddr)
This API get clock stop acknowledgement for MCAN module. It return whether MCAN is power down mode or...
uint32_t sfid1
Definition: mcan.h:1363
uint32_t nomTimeSeg1
Definition: mcan.h:446
uint32_t MCAN_ElemSize
Enum to represent FIFO/Buffer element Size.
Definition: mcan.h:210
uint32_t txBufMode
Definition: mcan.h:763
uint32_t rtlRev
Definition: mcan.h:1078
void MCAN_addStdMsgIDFilter(uint32_t baseAddr, uint32_t filtNum, const MCAN_StdMsgIDFilterElement *elem)
This API is used to add Standard Message ID Filter Element.
uint32_t bit2
Definition: mcan.h:984
uint32_t rxBufElemSize
Definition: mcan.h:824
uint32_t MCAN_eccGetIntrStatus(uint32_t baseAddr, uint32_t errType)
This API is used to get ECC interrupt status.
uint32_t busOffStatus
Definition: mcan.h:688
uint32_t MCAN_IdType
Enum to represent the MCAN Identifier Type.
Definition: mcan.h:130
uint32_t pxe
Definition: mcan.h:713
uint32_t scheme
Definition: mcan.h:996
uint32_t MCAN_getEndianVal(uint32_t baseAddr)
This function return endianness value of MCAN module.
uint32_t rtr
Definition: mcan.h:1201
Structure for accessing Revision ID of ECC wrapper.
Definition: mcan.h:1070
uint32_t MCAN_extTSIsIntrEnable(uint32_t baseAddr)
This API returns External TimeStamp Counter Overflow Interrupt enable status for MCAN module.
Structure for MCAN protocol status.
Definition: mcan.h:667
uint32_t timeoutCntEnable
Definition: mcan.h:635
uint32_t esi
Definition: mcan.h:1268
char mode[32]
Definition: tisci_pm_core.h:130
uint32_t nomSynchJumpWidth
Definition: mcan.h:454
void MCAN_readMsgRam(uint32_t baseAddr, uint32_t memType, uint32_t bufNum, uint32_t fifoNum, MCAN_RxBufElement *elem)
This API is used to read received message form message RAM.
uint32_t efc
Definition: mcan.h:1126
uint32_t warningStatus
Definition: mcan.h:682
Structure for MCAN Tx Event FIFO element.
Definition: mcan.h:1307
void MCAN_getTxFIFOQueStatus(uint32_t baseAddr, MCAN_TxFIFOStatus *fifoStatus)
This API will Tx FIFO status.
uint32_t efec
Definition: mcan.h:1395
uint8_t * data
Definition: mcan.h:1188
uint32_t data[13]
Definition: csl_udmap_tr.h:625
uint32_t efid2
Definition: mcan.h:1409
Structure for MCAN Message RAM Configuration Parameters. Message RAM can contain following sections: ...
Definition: mcan.h:731
uint32_t xtd
Definition: mcan.h:1316
uint32_t mm
Definition: mcan.h:1186
uint32_t flssa
Definition: mcan.h:733
uint32_t fdf
Definition: mcan.h:1286
uint32_t rxFIFO0waterMark
Definition: mcan.h:792
Structure for MCAN Tx Event FIFO Status.
Definition: mcan.h:916
uint32_t pxhddisable
Definition: mcan.h:547
uint32_t recErrCnt
Definition: mcan.h:653
uint32_t txEventFIFOSize
Definition: mcan.h:772
uint32_t rxFIFO1startAddr
Definition: mcan.h:803
Structure for accessing Revision ID of ECC AGGR.
Definition: mcan.h:1027
MCAN_TDCConfig tdcConfig
Definition: mcan.h:587
uint32_t MCAN_isMemInitDone(uint32_t baseAddr)
This function checks if the memory initialization is done for MCAN module.
uint32_t rtr
Definition: mcan.h:1258
uint32_t txts
Definition: mcan.h:1326
uint32_t fdf
Definition: mcan.h:1176
uint32_t rrfe
Definition: mcan.h:496
void MCAN_getTxEventFIFOStatus(uint32_t baseAddr, MCAN_TxEventFIFOStatus *fifoStatus)
This API will Tx Event FIFO status.
uint32_t MCAN_getIntrStatus(uint32_t baseAddr)
This API will return interrupt status.
uint32_t tdcv
Definition: mcan.h:718
uint8_t state
Definition: tisci_pm_clock.h:130
uint32_t rxBufStartAddr
Definition: mcan.h:822
uint32_t custom
Definition: mcan.h:1006
uint32_t custom
Definition: mcan.h:1039
uint32_t esi
Definition: mcan.h:1211
uint32_t MCAN_getTxPinState(uint32_t baseAddr)
This API will return Tx pin state of MCAN module.
uint8_t * data
Definition: mcan.h:1298
void MCAN_clearNewDataStatus(uint32_t baseAddr, const MCAN_RxNewDataStatus *newDataStatus)
This API clear New Data Message Status.
void MCAN_getHighPriorityMsgStatus(uint32_t baseAddr, MCAN_HighPriorityMsgInfo *hpm)
This API will return High Priority Message Status.
uint32_t efid1
Definition: mcan.h:1393
uint32_t sfec
Definition: mcan.h:1365
void MCAN_eccForceError(uint32_t baseAddr, const MCAN_ECCErrForceParams *eccErr)
This API will Force Error on ECC.
uint32_t MCAN_txBufCancellationStatus(uint32_t baseAddr)
This API will return Transmit Buffer Cancellation Finished status.
uint32_t rxFIFO1size
Definition: mcan.h:805
uint32_t year
Definition: mcan.h:1014
void MCAN_getNewDataStatus(uint32_t baseAddr, MCAN_RxNewDataStatus *newDataStatus)
This API will return New Data Message Status.
uint32_t dlc
Definition: mcan.h:1328
uint32_t custom
Definition: mcan.h:1082
uint32_t enable
Definition: mcan.h:1050
int32_t MCAN_writeTxEventFIFOAck(uint32_t baseAddr, uint32_t idx)
This API will write Event FIFO Acknowledge Index.
uint32_t anfs
Definition: mcan.h:512
uint32_t efc
Definition: mcan.h:1181
uint32_t rtlRev
Definition: mcan.h:1035
void MCAN_clearIntrStatus(uint32_t baseAddr, uint32_t intrMask)
This API is used to clear the interrupt status.
int32_t MCAN_getTxBufCancellationIntrEnable(uint32_t baseAddr, uint32_t bufNum, uint32_t enable)
This API is used to enable/disable Tx Buffer Cancellation Finished Interrupt.
void MCAN_eccClearIntrStatus(uint32_t baseAddr, uint32_t errType)
This API is used to clear ECC interrupt status.
uint32_t xtd
Definition: mcan.h:1100
void MCAN_extTSEnableIntr(uint32_t baseAddr, uint32_t enable)
This API will enable/disable External TimeStamp Counter Overflow Interrupt for MCAN module.
void MCAN_resetTSCounter(uint32_t baseAddr)
This API will reset timestamp counter value.
void MCAN_lpbkModeEnable(uint32_t baseAddr, uint32_t lpbkMode, uint32_t enable)
This API will enable/disable Loop Back Test Mode for MCAN module.
uint32_t mm
Definition: mcan.h:1352
uint32_t brs
Definition: mcan.h:1224
int32_t MCAN_setExtIDAndMask(uint32_t baseAddr, uint32_t idMask)
This API will configure Extended ID AND Mask.
uint32_t MCAN_isInReset(uint32_t baseAddr)
This function checks if the MCAN module is in Reset.
uint32_t MCAN_IntrSrc
Enum for MCAN interrupts.
Definition: mcan.h:258
uint32_t errOnce
Definition: mcan.h:954
uint32_t MCAN_getClkStopAck(uint32_t baseAddr)
This API will return clock stop acknowledgement for MCAN module.
uint32_t wkupReqEnable
Definition: mcan.h:558
uint32_t txStartAddr
Definition: mcan.h:749
uint32_t txBufElemSize
Definition: mcan.h:768
int32_t MCAN_init(uint32_t baseAddr, const MCAN_InitParams *initParams)
This API will initialize MCAN module.
uint32_t msgLost
Definition: mcan.h:889
void MCAN_reset(uint32_t baseAddr)
This API is used to initiate reset for MCAN module.
uint32_t fifoFull
Definition: mcan.h:924
Structure for MCAN initialization parameters.
Definition: mcan.h:523
int32_t MCAN_writeRxFIFOAck(uint32_t baseAddr, uint32_t fifoNum, uint32_t idx)
This API will write Rx FIFO Acknowledgement.
uint32_t major
Definition: mcan.h:1004
Structure for MCAN Rx Buffer element.
Definition: mcan.h:1197
uint32_t nomRatePrescalar
Definition: mcan.h:442
void MCAN_readTxEventFIFO(uint32_t baseAddr, MCAN_TxEventFIFOElement *txEventElem)
This API is used to read message form Tx Event FIFO.
uint32_t dlc
Definition: mcan.h:1110
uint32_t fillLvl
Definition: mcan.h:878
uint32_t dlc
Definition: mcan.h:1218
uint32_t xtd
Definition: mcan.h:1155
void MCAN_setTxPinState(uint32_t baseAddr, uint32_t state)
This API will set Tx pin state of MCAN module.
void MCAN_eccWriteEOI(uint32_t baseAddr, uint32_t errType)
This API is used to write End of Interrupt for ECC interrupt.
uint32_t MCAN_getRxPinState(uint32_t baseAddr)
This API will return Rx pin state of MCAN module.
uint32_t rel
Definition: mcan.h:1020
uint32_t rtr
Definition: mcan.h:1095
uint32_t putIdx
Definition: mcan.h:922
uint32_t enableRdModWr
Definition: mcan.h:1060
uint32_t MCAN_ComState
Enum to represent MCAN's communication state.
Definition: mcan.h:369
uint32_t putIdx
Definition: mcan.h:904
uint32_t id
Definition: mcan.h:1093
uint32_t bit2
Definition: mcan.h:952
uint32_t rtr
Definition: mcan.h:1311
uint32_t MCAN_TimeOutSelect
Enum to represent the MCAN time-out counter configuration.
Definition: mcan.h:238
uint32_t flesa
Definition: mcan.h:741
uint32_t fillLvl
Definition: mcan.h:918
uint32_t scheme
Definition: mcan.h:1029
uint32_t freeLvl
Definition: mcan.h:898
uint32_t txBufNum
Definition: mcan.h:751
uint32_t et
Definition: mcan.h:1344
uint32_t MCAN_IntrLineNum
Enum to select the MCAN interrupt lines.
Definition: mcan.h:114
uint32_t timeoutPreload
Definition: mcan.h:629
Structure for MCAN configuration parameters.
Definition: mcan.h:601
void MCAN_getProtocolStatus(uint32_t baseAddr, MCAN_ProtocolStatus *protStatus)
This API will return protocol status for MCAN module.
uint32_t tsPrescalar
Definition: mcan.h:614
uint32_t minor
Definition: mcan.h:1008
uint32_t esi
Definition: mcan.h:1160
uint32_t brs
Definition: mcan.h:1334
uint32_t rrfs
Definition: mcan.h:501
uint32_t getIdx
Definition: mcan.h:900
uint32_t brs
Definition: mcan.h:1171
uint32_t lastErrCode
Definition: mcan.h:669
Structure for MCAN error logging counters status.
Definition: mcan.h:649
uint32_t asmEnable
Definition: mcan.h:608
Structure for MCAN Tx Buffer element.
Definition: mcan.h:1091
Structure for MCAN Standard Message ID Filter Element.
Definition: mcan.h:1359
uint32_t MCAN_isFDOpEnable(uint32_t baseAddr)
This API will return flexible data rate operation status MCAN module.
uint32_t bu
Definition: mcan.h:1031
int32_t MCAN_txBufTransIntrEnable(uint32_t baseAddr, uint32_t bufNum, uint32_t enable)
This API is used to enable/disable Tx Buffer Transmission Interrupt.
uint32_t filterList
Definition: mcan.h:851
uint32_t rxFIFO0startAddr
Definition: mcan.h:784
uint32_t rfdf
Definition: mcan.h:707
Structure for MCAN Global Filter Configuration parameters.
Definition: mcan.h:494
uint32_t secErr
Definition: mcan.h:967
uint32_t day
Definition: mcan.h:1010
uint32_t clkStopFAck
Definition: mcan.h:578
uint32_t rxFIFO0size
Definition: mcan.h:786
uint32_t rtlRev
Definition: mcan.h:1002
void MCAN_addClockStopRequest(uint32_t baseAddr, uint32_t enable)
This API add clock stop request for MCAN module to put it in power down mode.
uint32_t txFIFOSize
Definition: mcan.h:757