]> git.sur5r.net Git - freertos/blob - FreeRTOS/Demo/ColdFire_MCF52259_CodeWarrior/Freescale_Headers/MCF52259_FlexCAN.h
commit 9f316c246baafa15c542a5aea81a94f26e3d6507
[freertos] / FreeRTOS / Demo / ColdFire_MCF52259_CodeWarrior / Freescale_Headers / MCF52259_FlexCAN.h
1 /* Coldfire C Header File\r
2  * Copyright Freescale Semiconductor Inc\r
3  * All rights reserved.\r
4  *\r
5  * 2008/04/17 Revision: 0.2\r
6  *\r
7  * (c) Copyright UNIS, spol. s r.o. 1997-2008\r
8  * UNIS, spol. s r.o.\r
9  * Jundrovska 33\r
10  * 624 00 Brno\r
11  * Czech Republic\r
12  * http      : www.processorexpert.com\r
13  * mail      : info@processorexpert.com\r
14  */\r
15 \r
16 #ifndef __MCF52259_FlexCAN_H__\r
17 #define __MCF52259_FlexCAN_H__\r
18 \r
19 \r
20 /*********************************************************************\r
21 *\r
22 * Flex Controller Area Network (FlexCAN)\r
23 *\r
24 *********************************************************************/\r
25 \r
26 /* Register read/write macros */\r
27 #define MCF_FlexCAN_CANMCR                   (*(vuint32*)(0x40170000))\r
28 #define MCF_FlexCAN_CANCTRL                  (*(vuint32*)(0x40170004))\r
29 #define MCF_FlexCAN_TIMER                    (*(vuint32*)(0x40170008))\r
30 #define MCF_FlexCAN_RXGMASK                  (*(vuint32*)(0x40170010))\r
31 #define MCF_FlexCAN_RX14MASK                 (*(vuint32*)(0x40170014))\r
32 #define MCF_FlexCAN_RX15MASK                 (*(vuint32*)(0x40170018))\r
33 #define MCF_FlexCAN_ERRCNT                   (*(vuint32*)(0x4017001C))\r
34 #define MCF_FlexCAN_ERRSTAT                  (*(vuint32*)(0x40170020))\r
35 #define MCF_FlexCAN_IMASK                    (*(vuint32*)(0x40170028))\r
36 #define MCF_FlexCAN_IFLAG                    (*(vuint32*)(0x40170030))\r
37 \r
38 \r
39 \r
40 /* Bit definitions and macros for MCF_FlexCAN_CANMCR */\r
41 #define MCF_FlexCAN_CANMCR_MAXMB(x)          (((x)&0xF)<<0)\r
42 #define MCF_FlexCAN_CANMCR_LPMACK            (0x100000)\r
43 #define MCF_FlexCAN_CANMCR_SUPV              (0x800000)\r
44 #define MCF_FlexCAN_CANMCR_FRZACK            (0x1000000)\r
45 #define MCF_FlexCAN_CANMCR_SOFTRST           (0x2000000)\r
46 #define MCF_FlexCAN_CANMCR_NOTRDY            (0x8000000)\r
47 #define MCF_FlexCAN_CANMCR_HALT              (0x10000000)\r
48 #define MCF_FlexCAN_CANMCR_FRZ               (0x40000000)\r
49 #define MCF_FlexCAN_CANMCR_MDIS              (0x80000000)\r
50 \r
51 /* Bit definitions and macros for MCF_FlexCAN_CANCTRL */\r
52 #define MCF_FlexCAN_CANCTRL_PROPSEG(x)       (((x)&0x7)<<0)\r
53 #define MCF_FlexCAN_CANCTRL_LOM              (0x8)\r
54 #define MCF_FlexCAN_CANCTRL_LBUF             (0x10)\r
55 #define MCF_FlexCAN_CANCTRL_TSYNC            (0x20)\r
56 #define MCF_FlexCAN_CANCTRL_BOFFREC          (0x40)\r
57 #define MCF_FlexCAN_CANCTRL_SAMP             (0x80)\r
58 #define MCF_FlexCAN_CANCTRL_LPB              (0x1000)\r
59 #define MCF_FlexCAN_CANCTRL_CLK_SRC          (0x2000)\r
60 #define MCF_FlexCAN_CANCTRL_ERRMSK           (0x4000)\r
61 #define MCF_FlexCAN_CANCTRL_BOFFMSK          (0x8000)\r
62 #define MCF_FlexCAN_CANCTRL_PSEG2(x)         (((x)&0x7)<<0x10)\r
63 #define MCF_FlexCAN_CANCTRL_PSEG1(x)         (((x)&0x7)<<0x13)\r
64 #define MCF_FlexCAN_CANCTRL_RJW(x)           (((x)&0x3)<<0x16)\r
65 #define MCF_FlexCAN_CANCTRL_PRESDIV(x)       (((x)&0xFF)<<0x18)\r
66 \r
67 /* Bit definitions and macros for MCF_FlexCAN_TIMER */\r
68 #define MCF_FlexCAN_TIMER_TIMER(x)           (((x)&0xFFFF)<<0)\r
69 \r
70 /* Bit definitions and macros for MCF_FlexCAN_RXGMASK */\r
71 #define MCF_FlexCAN_RXGMASK_MI(x)            (((x)&0x1FFFFFFF)<<0)\r
72 \r
73 /* Bit definitions and macros for MCF_FlexCAN_RX14MASK */\r
74 #define MCF_FlexCAN_RX14MASK_MI(x)           (((x)&0x1FFFFFFF)<<0)\r
75 \r
76 /* Bit definitions and macros for MCF_FlexCAN_RX15MASK */\r
77 #define MCF_FlexCAN_RX15MASK_MI(x)           (((x)&0x1FFFFFFF)<<0)\r
78 \r
79 /* Bit definitions and macros for MCF_FlexCAN_ERRCNT */\r
80 #define MCF_FlexCAN_ERRCNT_TXECTR(x)         (((x)&0xFF)<<0)\r
81 #define MCF_FlexCAN_ERRCNT_RXECTR(x)         (((x)&0xFF)<<0x8)\r
82 \r
83 /* Bit definitions and macros for MCF_FlexCAN_ERRSTAT */\r
84 #define MCF_FlexCAN_ERRSTAT_ERRINT           (0x2)\r
85 #define MCF_FlexCAN_ERRSTAT_BOFFINT          (0x4)\r
86 #define MCF_FlexCAN_ERRSTAT_FLTCONF(x)       (((x)&0x3)<<0x4)\r
87 #define MCF_FlexCAN_ERRSTAT_FLTCONF_ACTIVE   (0)\r
88 #define MCF_FlexCAN_ERRSTAT_FLTCONF_PASSIVE  (0x10)\r
89 #define MCF_FlexCAN_ERRSTAT_FLTCONF_BUSOFF   (0x20)\r
90 #define MCF_FlexCAN_ERRSTAT_TXRX             (0x40)\r
91 #define MCF_FlexCAN_ERRSTAT_IDLE             (0x80)\r
92 #define MCF_FlexCAN_ERRSTAT_RXWRN            (0x100)\r
93 #define MCF_FlexCAN_ERRSTAT_TXWRN            (0x200)\r
94 #define MCF_FlexCAN_ERRSTAT_STFERR           (0x400)\r
95 #define MCF_FlexCAN_ERRSTAT_FRMERR           (0x800)\r
96 #define MCF_FlexCAN_ERRSTAT_CRCERR           (0x1000)\r
97 #define MCF_FlexCAN_ERRSTAT_ACKERR           (0x2000)\r
98 #define MCF_FlexCAN_ERRSTAT_BIT0ERR          (0x4000)\r
99 #define MCF_FlexCAN_ERRSTAT_BIT1ERR          (0x8000)\r
100 \r
101 /* Bit definitions and macros for MCF_FlexCAN_IMASK */\r
102 #define MCF_FlexCAN_IMASK_BUF0M              (0x1)\r
103 #define MCF_FlexCAN_IMASK_BUF1M              (0x2)\r
104 #define MCF_FlexCAN_IMASK_BUF2M              (0x4)\r
105 #define MCF_FlexCAN_IMASK_BUF3M              (0x8)\r
106 #define MCF_FlexCAN_IMASK_BUF4M              (0x10)\r
107 #define MCF_FlexCAN_IMASK_BUF5M              (0x20)\r
108 #define MCF_FlexCAN_IMASK_BUF6M              (0x40)\r
109 #define MCF_FlexCAN_IMASK_BUF7M              (0x80)\r
110 #define MCF_FlexCAN_IMASK_BUF8M              (0x100)\r
111 #define MCF_FlexCAN_IMASK_BUF9M              (0x200)\r
112 #define MCF_FlexCAN_IMASK_BUF10M             (0x400)\r
113 #define MCF_FlexCAN_IMASK_BUF11M             (0x800)\r
114 #define MCF_FlexCAN_IMASK_BUF12M             (0x1000)\r
115 #define MCF_FlexCAN_IMASK_BUF13M             (0x2000)\r
116 #define MCF_FlexCAN_IMASK_BUF14M             (0x4000)\r
117 #define MCF_FlexCAN_IMASK_BUF15M             (0x8000)\r
118 #define MCF_FlexCAN_IMASK_BUF(x)             (0x1<<(x))\r
119 \r
120 /* Bit definitions and macros for MCF_FlexCAN_IFLAG */\r
121 #define MCF_FlexCAN_IFLAG_BUF0I              (0x1)\r
122 #define MCF_FlexCAN_IFLAG_BUF1I              (0x2)\r
123 #define MCF_FlexCAN_IFLAG_BUF2I              (0x4)\r
124 #define MCF_FlexCAN_IFLAG_BUF3I              (0x8)\r
125 #define MCF_FlexCAN_IFLAG_BUF4I              (0x10)\r
126 #define MCF_FlexCAN_IFLAG_BUF5I              (0x20)\r
127 #define MCF_FlexCAN_IFLAG_BUF6I              (0x40)\r
128 #define MCF_FlexCAN_IFLAG_BUF7I              (0x80)\r
129 #define MCF_FlexCAN_IFLAG_BUF8I              (0x100)\r
130 #define MCF_FlexCAN_IFLAG_BUF9I              (0x200)\r
131 #define MCF_FlexCAN_IFLAG_BUF10I             (0x400)\r
132 #define MCF_FlexCAN_IFLAG_BUF11I             (0x800)\r
133 #define MCF_FlexCAN_IFLAG_BUF12I             (0x1000)\r
134 #define MCF_FlexCAN_IFLAG_BUF13I             (0x2000)\r
135 #define MCF_FlexCAN_IFLAG_BUF14I             (0x4000)\r
136 #define MCF_FlexCAN_IFLAG_BUF15I             (0x8000)\r
137 #define MCF_FlexCAN_IFLAG_BUF(x)             (0x1<<(x))\r
138 \r
139 \r
140 #endif /* __MCF52259_FlexCAN_H__ */\r