source: trunk/libs/newlib/src/libgloss/bfin/include/defBF51x_base.h @ 615

Last change on this file since 615 was 444, checked in by satin@…, 7 years ago

add newlib,libalmos-mkh, restructure shared_syscalls.h and mini-libc

File size: 117.7 KB
Line 
1/*
2 * The authors hereby grant permission to use, copy, modify, distribute,
3 * and license this software and its documentation for any purpose, provided
4 * that existing copyright notices are retained in all copies and that this
5 * notice is included verbatim in any distributions. No written agreement,
6 * license, or royalty fee is required for any of the authorized uses.
7 * Modifications to this software may be copyrighted by their authors
8 * and need not follow the licensing terms described here, provided that
9 * the new terms are clearly indicated on the first page of each file where
10 * they apply.
11 */
12
13/*
14** defBF51x_base.h
15**
16** Copyright (C) 2007-2009 Analog Devices Inc., All Rights Reserved.
17**
18************************************************************************************
19**
20** This include file contains a list of macro "defines" to enable the programmer
21** to use symbolic names for the registers common to the ADSP-BF51x peripherals.
22**
23************************************************************************************
24** System MMR Register Map
25************************************************************************************/
26
27#ifndef _DEF_BF51X_H
28#define _DEF_BF51X_H
29
30#ifdef _MISRA_RULES
31#pragma diag(push)
32#pragma diag(suppress:misra_rule_19_4)
33#pragma diag(suppress:misra_rule_19_7)
34#include <stdint.h>
35#endif /* _MISRA_RULES */
36
37
38/* ************************************************************************************************************** */
39/*                           SYSTEM & MMR ADDRESS DEFINITIONS COMMON TO ALL ADSP-BF51x                            */
40/* ************************************************************************************************************** */
41
42/* Clock and System Control             (0xFFC00000 - 0xFFC000FF)                                                                       */
43#define PLL_CTL                         0xFFC00000      /* PLL Control Register                                                         */
44#define PLL_DIV                         0xFFC00004      /* PLL Divide Register                                                          */
45#define VR_CTL                          0xFFC00008      /* Voltage Regulator Control Register                                   */
46#define PLL_STAT                                0xFFC0000C      /* PLL Status Register                                                          */
47#define PLL_LOCKCNT                     0xFFC00010      /* PLL Lock Count Register                                                      */
48#define CHIPID                          0xFFC00014  /* Device ID Register */
49
50
51/* System Interrupt Controller  (0xFFC00100 - 0xFFC001FF)                                                                       */
52#define SWRST                           0xFFC00100      /* Software Reset Register                                                      */
53#define SYSCR                           0xFFC00104      /* System Configuration Register                                                */
54
55#define SIC_IMASK0                      0xFFC0010C      /* Interrupt Mask Register                                                      */
56/* legacy register name (below) provided for backwards code compatibility */
57#define SIC_IMASK                               SIC_IMASK0
58#define SIC_IAR0                                0xFFC00110      /* Interrupt Assignment Register 0                                              */
59#define SIC_IAR1                                0xFFC00114      /* Interrupt Assignment Register 1                                              */
60#define SIC_IAR2                                0xFFC00118      /* Interrupt Assignment Register 2                                              */
61#define SIC_IAR3                                0xFFC0011C      /* Interrupt Assignment Register 3                                              */
62#define SIC_ISR0                                0xFFC00120      /* Interrupt Status Register                                                    */
63/* legacy register name (below) provided for backwards code compatibility */
64#define SIC_ISR                         SIC_ISR0
65#define SIC_IWR0                                0xFFC00124      /* Interrupt Wakeup Register                                                    */
66/* legacy register name (below) provided for backwards code compatibility */
67#define SIC_IWR                         SIC_IWR0
68
69/* SIC Additions to ADSP-BF51x  (0xFFC0014C - 0xFFC00162)                                                                       */
70#define SIC_IMASK1                  0xFFC0014C  /* Interrupt Mask register of SIC2                                              */
71#define SIC_IAR4                    0xFFC00150  /* Interrupt Assignment register4                                               */
72#define SIC_IAR5                    0xFFC00154  /* Interrupt Assignment register5                                               */
73#define SIC_IAR6                    0xFFC00158  /* Interrupt Assignment register6                                               */
74#define SIC_IAR7                    0xFFC0015C  /* Interrupt Assignment register7                                               */
75#define SIC_ISR1                    0xFFC00160  /* Interrupt Statur register                                                    */
76#define SIC_IWR1                    0xFFC00164  /* Interrupt Wakeup register                                                    */
77
78
79/* Watchdog Timer                               (0xFFC00200 - 0xFFC002FF)                                                                       */
80#define WDOG_CTL                                0xFFC00200      /* Watchdog Control Register                                                    */
81#define WDOG_CNT                                0xFFC00204      /* Watchdog Count Register                                                      */
82#define WDOG_STAT                               0xFFC00208      /* Watchdog Status Register                                                     */
83
84
85/* Real Time Clock                      (0xFFC00300 - 0xFFC003FF)                                                                       */
86#define RTC_STAT                                0xFFC00300      /* RTC Status Register                                                          */
87#define RTC_ICTL                                0xFFC00304      /* RTC Interrupt Control Register                                               */
88#define RTC_ISTAT                               0xFFC00308      /* RTC Interrupt Status Register                                                */
89#define RTC_SWCNT                               0xFFC0030C      /* RTC Stopwatch Count Register                                         */
90#define RTC_ALARM                               0xFFC00310      /* RTC Alarm Time Register                                                      */
91#define RTC_FAST                                0xFFC00314      /* RTC Prescaler Enable Register                                                */
92#define RTC_PREN                                0xFFC00314      /* RTC Prescaler Enable Alternate Macro                                 */
93
94
95/* UART0 Controller                     (0xFFC00400 - 0xFFC004FF)                                                                       */
96#define UART0_THR                               0xFFC00400      /* Transmit Holding register                                                    */
97#define UART0_RBR                               0xFFC00400      /* Receive Buffer register                                                      */
98#define UART0_DLL                               0xFFC00400      /* Divisor Latch (Low-Byte)                                                     */
99#define UART0_IER                               0xFFC00404      /* Interrupt Enable Register                                                    */
100#define UART0_DLH                               0xFFC00404      /* Divisor Latch (High-Byte)                                                    */
101#define UART0_IIR                               0xFFC00408      /* Interrupt Identification Register                                    */
102#define UART0_LCR                               0xFFC0040C      /* Line Control Register                                                        */
103#define UART0_MCR                               0xFFC00410      /* Modem Control Register                                                       */
104#define UART0_LSR                               0xFFC00414      /* Line Status Register                                                         */
105#define UART0_SCR                               0xFFC0041C      /* SCR Scratch Register                                                         */
106#define UART0_GCTL                      0xFFC00424      /* Global Control Register                                                      */
107
108
109/* SPI Controller                               (0xFFC00500 - 0xFFC005FF)                                                                       */
110#define SPI0_CTL                                0xFFC00500      /* SPI Control Register                                                         */
111/* legacy register name (below) provided for backwards code compatibility */
112#define SPI_CTL                         SPI0_CTL
113#define SPI0_FLG                                0xFFC00504      /* SPI Flag register                                                            */
114/* legacy register name (below) provided for backwards code compatibility */
115#define SPI_FLG                         SPI0_FLG
116#define SPI0_STAT                               0xFFC00508      /* SPI Status register                                                          */
117/* legacy register name (below) provided for backwards code compatibility */
118#define SPI_STAT                                SPI0_STAT
119#define SPI0_TDBR                               0xFFC0050C      /* SPI Transmit Data Buffer Register                                    */
120/* legacy register name (below) provided for backwards code compatibility */
121#define SPI_TDBR                                SPI0_TDBR
122#define SPI0_RDBR                               0xFFC00510      /* SPI Receive Data Buffer Register                                             */
123/* legacy register name (below) provided for backwards code compatibility */
124#define SPI_RDBR                                SPI0_RDBR
125#define SPI0_BAUD                               0xFFC00514      /* SPI Baud rate Register                                                       */
126/* legacy register name (below) provided for backwards code compatibility */
127#define SPI_BAUD                                SPI0_BAUD
128#define SPI0_SHADOW                     0xFFC00518      /* SPI_RDBR Shadow Register                                                     */
129/* legacy register name (below) provided for backwards code compatibility */
130#define SPI_SHADOW                      SPI0_SHADOW
131
132
133/* TIMER0-7 Registers                   (0xFFC00600 - 0xFFC006FF)                                                                       */
134#define TIMER0_CONFIG                   0xFFC00600      /* Timer 0 Configuration Register                                               */
135#define TIMER0_COUNTER                  0xFFC00604      /* Timer 0 Counter Register                                                     */
136#define TIMER0_PERIOD                   0xFFC00608      /* Timer 0 Period Register                                                      */
137#define TIMER0_WIDTH                    0xFFC0060C      /* Timer 0 Width Register                                                       */
138
139#define TIMER1_CONFIG                   0xFFC00610      /* Timer 1 Configuration Register                                               */
140#define TIMER1_COUNTER                  0xFFC00614      /* Timer 1 Counter Register                                                     */
141#define TIMER1_PERIOD                   0xFFC00618      /* Timer 1 Period Register                                                      */
142#define TIMER1_WIDTH                    0xFFC0061C      /* Timer 1 Width Register                                                       */
143
144#define TIMER2_CONFIG                   0xFFC00620      /* Timer 2 Configuration Register                                               */
145#define TIMER2_COUNTER                  0xFFC00624      /* Timer 2 Counter Register                                                     */
146#define TIMER2_PERIOD                   0xFFC00628      /* Timer 2 Period Register                                                      */
147#define TIMER2_WIDTH                    0xFFC0062C      /* Timer 2 Width Register                                                       */
148
149#define TIMER3_CONFIG                   0xFFC00630      /* Timer 3 Configuration Register                                               */
150#define TIMER3_COUNTER                  0xFFC00634      /* Timer 3 Counter Register                                                     */
151#define TIMER3_PERIOD                   0xFFC00638      /* Timer 3 Period Register                                                      */
152#define TIMER3_WIDTH                    0xFFC0063C      /* Timer 3 Width Register                                                       */
153
154#define TIMER4_CONFIG                   0xFFC00640      /* Timer 4 Configuration Register                                               */
155#define TIMER4_COUNTER                  0xFFC00644      /* Timer 4 Counter Register                                                     */
156#define TIMER4_PERIOD                   0xFFC00648      /* Timer 4 Period Register                                                      */
157#define TIMER4_WIDTH                    0xFFC0064C      /* Timer 4 Width Register                                                       */
158
159#define TIMER5_CONFIG                   0xFFC00650      /* Timer 5 Configuration Register                                               */
160#define TIMER5_COUNTER                  0xFFC00654      /* Timer 5 Counter Register                                                     */
161#define TIMER5_PERIOD                   0xFFC00658      /* Timer 5 Period Register                                                      */
162#define TIMER5_WIDTH                    0xFFC0065C      /* Timer 5 Width Register                                                       */
163
164#define TIMER6_CONFIG                   0xFFC00660      /* Timer 6 Configuration Register                                               */
165#define TIMER6_COUNTER                  0xFFC00664      /* Timer 6 Counter Register                                                     */
166#define TIMER6_PERIOD                   0xFFC00668      /* Timer 6 Period Register                                                      */
167#define TIMER6_WIDTH                    0xFFC0066C      /* Timer 6 Width Register                                                       */
168
169#define TIMER7_CONFIG                   0xFFC00670      /* Timer 7 Configuration Register                                               */
170#define TIMER7_COUNTER                  0xFFC00674      /* Timer 7 Counter Register                                                     */
171#define TIMER7_PERIOD                   0xFFC00678      /* Timer 7 Period Register                                                      */
172#define TIMER7_WIDTH                    0xFFC0067C      /* Timer 7 Width Register                                                       */
173
174#define TIMER_ENABLE                    0xFFC00680      /* Timer Enable Register                                                        */
175#define TIMER_DISABLE                   0xFFC00684      /* Timer Disable Register                                                       */
176#define TIMER_STATUS                    0xFFC00688      /* Timer Status Register                                                        */
177
178
179/* General Purpose I/O Port F   (0xFFC00700 - 0xFFC007FF)                                                                       */
180#define PORTFIO                         0xFFC00700      /* Port F I/O Pin State Specify Register                                        */
181#define PORTFIO_CLEAR                   0xFFC00704      /* Port F I/O Peripheral Interrupt Clear Register                       */
182#define PORTFIO_SET                     0xFFC00708      /* Port F I/O Peripheral Interrupt Set Register                         */
183#define PORTFIO_TOGGLE                  0xFFC0070C      /* Port F I/O Pin State Toggle Register                                 */
184#define PORTFIO_MASKA                   0xFFC00710      /* Port F I/O Mask State Specify Interrupt A Register                   */
185#define PORTFIO_MASKA_CLEAR             0xFFC00714      /* Port F I/O Mask Disable Interrupt A Register                         */
186#define PORTFIO_MASKA_SET               0xFFC00718      /* Port F I/O Mask Enable Interrupt A Register                          */
187#define PORTFIO_MASKA_TOGGLE            0xFFC0071C      /* Port F I/O Mask Toggle Enable Interrupt A Register                   */
188#define PORTFIO_MASKB                   0xFFC00720      /* Port F I/O Mask State Specify Interrupt B Register                   */
189#define PORTFIO_MASKB_CLEAR             0xFFC00724      /* Port F I/O Mask Disable Interrupt B Register                         */
190#define PORTFIO_MASKB_SET               0xFFC00728      /* Port F I/O Mask Enable Interrupt B Register                          */
191#define PORTFIO_MASKB_TOGGLE            0xFFC0072C      /* Port F I/O Mask Toggle Enable Interrupt B Register                   */
192#define PORTFIO_DIR                     0xFFC00730      /* Port F I/O Direction Register                                                */
193#define PORTFIO_POLAR                   0xFFC00734      /* Port F I/O Source Polarity Register                                  */
194#define PORTFIO_EDGE                    0xFFC00738      /* Port F I/O Source Sensitivity Register                                       */
195#define PORTFIO_BOTH                    0xFFC0073C      /* Port F I/O Set on BOTH Edges Register                                        */
196#define PORTFIO_INEN                    0xFFC00740      /* Port F I/O Input Enable Register                                     */
197
198
199/* SPORT0 Controller                    (0xFFC00800 - 0xFFC008FF)                                                                       */
200#define SPORT0_TCR1                     0xFFC00800      /* SPORT0 Transmit Configuration 1 Register                             */
201#define SPORT0_TCR2                     0xFFC00804      /* SPORT0 Transmit Configuration 2 Register                             */
202#define SPORT0_TCLKDIV                  0xFFC00808      /* SPORT0 Transmit Clock Divider                                                */
203#define SPORT0_TFSDIV                   0xFFC0080C      /* SPORT0 Transmit Frame Sync Divider                                   */
204#define SPORT0_TX                               0xFFC00810      /* SPORT0 TX Data Register                                                      */
205#define SPORT0_RX                               0xFFC00818      /* SPORT0 RX Data Register                                                      */
206#define SPORT0_RCR1                     0xFFC00820      /* SPORT0 Transmit Configuration 1 Register                             */
207#define SPORT0_RCR2                     0xFFC00824      /* SPORT0 Transmit Configuration 2 Register                             */
208#define SPORT0_RCLKDIV                  0xFFC00828      /* SPORT0 Receive Clock Divider                                         */
209#define SPORT0_RFSDIV                   0xFFC0082C      /* SPORT0 Receive Frame Sync Divider                                    */
210#define SPORT0_STAT                     0xFFC00830      /* SPORT0 Status Register                                                       */
211#define SPORT0_CHNL                     0xFFC00834      /* SPORT0 Current Channel Register                                              */
212#define SPORT0_MCMC1                    0xFFC00838      /* SPORT0 Multi-Channel Configuration Register 1                        */
213#define SPORT0_MCMC2                    0xFFC0083C      /* SPORT0 Multi-Channel Configuration Register 2                        */
214#define SPORT0_MTCS0                    0xFFC00840      /* SPORT0 Multi-Channel Transmit Select Register 0                      */
215#define SPORT0_MTCS1                    0xFFC00844      /* SPORT0 Multi-Channel Transmit Select Register 1                      */
216#define SPORT0_MTCS2                    0xFFC00848      /* SPORT0 Multi-Channel Transmit Select Register 2                      */
217#define SPORT0_MTCS3                    0xFFC0084C      /* SPORT0 Multi-Channel Transmit Select Register 3                      */
218#define SPORT0_MRCS0                    0xFFC00850      /* SPORT0 Multi-Channel Receive Select Register 0                       */
219#define SPORT0_MRCS1                    0xFFC00854      /* SPORT0 Multi-Channel Receive Select Register 1                       */
220#define SPORT0_MRCS2                    0xFFC00858      /* SPORT0 Multi-Channel Receive Select Register 2                       */
221#define SPORT0_MRCS3                    0xFFC0085C      /* SPORT0 Multi-Channel Receive Select Register 3                       */
222
223
224/* SPORT1 Controller                    (0xFFC00900 - 0xFFC009FF)                                                                       */
225#define SPORT1_TCR1                     0xFFC00900      /* SPORT1 Transmit Configuration 1 Register                             */
226#define SPORT1_TCR2                     0xFFC00904      /* SPORT1 Transmit Configuration 2 Register                             */
227#define SPORT1_TCLKDIV                  0xFFC00908      /* SPORT1 Transmit Clock Divider                                                */
228#define SPORT1_TFSDIV                   0xFFC0090C      /* SPORT1 Transmit Frame Sync Divider                                   */
229#define SPORT1_TX                               0xFFC00910      /* SPORT1 TX Data Register                                                      */
230#define SPORT1_RX                               0xFFC00918      /* SPORT1 RX Data Register                                                      */
231#define SPORT1_RCR1                     0xFFC00920      /* SPORT1 Transmit Configuration 1 Register                             */
232#define SPORT1_RCR2                     0xFFC00924      /* SPORT1 Transmit Configuration 2 Register                             */
233#define SPORT1_RCLKDIV                  0xFFC00928      /* SPORT1 Receive Clock Divider                                         */
234#define SPORT1_RFSDIV                   0xFFC0092C      /* SPORT1 Receive Frame Sync Divider                                    */
235#define SPORT1_STAT                     0xFFC00930      /* SPORT1 Status Register                                                       */
236#define SPORT1_CHNL                     0xFFC00934      /* SPORT1 Current Channel Register                                              */
237#define SPORT1_MCMC1                    0xFFC00938      /* SPORT1 Multi-Channel Configuration Register 1                        */
238#define SPORT1_MCMC2                    0xFFC0093C      /* SPORT1 Multi-Channel Configuration Register 2                        */
239#define SPORT1_MTCS0                    0xFFC00940      /* SPORT1 Multi-Channel Transmit Select Register 0                      */
240#define SPORT1_MTCS1                    0xFFC00944      /* SPORT1 Multi-Channel Transmit Select Register 1                      */
241#define SPORT1_MTCS2                    0xFFC00948      /* SPORT1 Multi-Channel Transmit Select Register 2                      */
242#define SPORT1_MTCS3                    0xFFC0094C      /* SPORT1 Multi-Channel Transmit Select Register 3                      */
243#define SPORT1_MRCS0                    0xFFC00950      /* SPORT1 Multi-Channel Receive Select Register 0                       */
244#define SPORT1_MRCS1                    0xFFC00954      /* SPORT1 Multi-Channel Receive Select Register 1                       */
245#define SPORT1_MRCS2                    0xFFC00958      /* SPORT1 Multi-Channel Receive Select Register 2                       */
246#define SPORT1_MRCS3                    0xFFC0095C      /* SPORT1 Multi-Channel Receive Select Register 3                       */
247
248
249/* External Bus Interface Unit  (0xFFC00A00 - 0xFFC00AFF)                                                                       */
250#define EBIU_AMGCTL                     0xFFC00A00      /* Asynchronous Memory Global Control Register                          */
251#define EBIU_AMBCTL0                    0xFFC00A04      /* Asynchronous Memory Bank Control Register 0                          */
252#define EBIU_AMBCTL1                    0xFFC00A08      /* Asynchronous Memory Bank Control Register 1                          */
253#define EBIU_SDGCTL                     0xFFC00A10      /* SDRAM Global Control Register                                                */
254#define EBIU_SDBCTL                     0xFFC00A14      /* SDRAM Bank Control Register                                          */
255#define EBIU_SDRRC                      0xFFC00A18      /* SDRAM Refresh Rate Control Register                                  */
256#define EBIU_SDSTAT                     0xFFC00A1C      /* SDRAM Status Register                                                        */
257
258
259/* DMA Traffic Control Registers        (0xFFC00B00 - 0xFFC00BFF)                                                                       */
260#define DMA_TC_PER                      0xFFC00B0C      /* Traffic Control Periods Register                                             */
261#define DMA_TC_CNT                      0xFFC00B10      /* Traffic Control Current Counts Register                              */
262
263/* Alternate deprecated register names (below) provided for backwards code compatibility                                        */
264#define DMA_TCPER                               0xFFC00B0C      /* Traffic Control Periods Register                                             */
265#define DMA_TCCNT                               0xFFC00B10      /* Traffic Control Current Counts Register                              */
266
267/* DMA Controller                       (0xFFC00C00 - 0xFFC00FFF)                                                                       */
268#define DMA0_NEXT_DESC_PTR              0xFFC00C00      /* DMA Channel 0 Next Descriptor Pointer Register                       */
269#define DMA0_START_ADDR                 0xFFC00C04      /* DMA Channel 0 Start Address Register                                 */
270#define DMA0_CONFIG                     0xFFC00C08      /* DMA Channel 0 Configuration Register                                 */
271#define DMA0_X_COUNT                    0xFFC00C10      /* DMA Channel 0 X Count Register                                               */
272#define DMA0_X_MODIFY                   0xFFC00C14      /* DMA Channel 0 X Modify Register                                              */
273#define DMA0_Y_COUNT                    0xFFC00C18      /* DMA Channel 0 Y Count Register                                               */
274#define DMA0_Y_MODIFY                   0xFFC00C1C      /* DMA Channel 0 Y Modify Register                                              */
275#define DMA0_CURR_DESC_PTR              0xFFC00C20      /* DMA Channel 0 Current Descriptor Pointer Register                    */
276#define DMA0_CURR_ADDR                  0xFFC00C24      /* DMA Channel 0 Current Address Register                                       */
277#define DMA0_IRQ_STATUS                 0xFFC00C28      /* DMA Channel 0 Interrupt/Status Register                              */
278#define DMA0_PERIPHERAL_MAP             0xFFC00C2C      /* DMA Channel 0 Peripheral Map Register                                        */
279#define DMA0_CURR_X_COUNT               0xFFC00C30      /* DMA Channel 0 Current X Count Register                                       */
280#define DMA0_CURR_Y_COUNT               0xFFC00C38      /* DMA Channel 0 Current Y Count Register                                       */
281
282#define DMA1_NEXT_DESC_PTR              0xFFC00C40      /* DMA Channel 1 Next Descriptor Pointer Register                       */
283#define DMA1_START_ADDR                 0xFFC00C44      /* DMA Channel 1 Start Address Register                                 */
284#define DMA1_CONFIG                     0xFFC00C48      /* DMA Channel 1 Configuration Register                                 */
285#define DMA1_X_COUNT                    0xFFC00C50      /* DMA Channel 1 X Count Register                                               */
286#define DMA1_X_MODIFY                   0xFFC00C54      /* DMA Channel 1 X Modify Register                                              */
287#define DMA1_Y_COUNT                    0xFFC00C58      /* DMA Channel 1 Y Count Register                                               */
288#define DMA1_Y_MODIFY                   0xFFC00C5C      /* DMA Channel 1 Y Modify Register                                              */
289#define DMA1_CURR_DESC_PTR              0xFFC00C60      /* DMA Channel 1 Current Descriptor Pointer Register                    */
290#define DMA1_CURR_ADDR                  0xFFC00C64      /* DMA Channel 1 Current Address Register                                       */
291#define DMA1_IRQ_STATUS                 0xFFC00C68      /* DMA Channel 1 Interrupt/Status Register                              */
292#define DMA1_PERIPHERAL_MAP             0xFFC00C6C      /* DMA Channel 1 Peripheral Map Register                                        */
293#define DMA1_CURR_X_COUNT               0xFFC00C70      /* DMA Channel 1 Current X Count Register                                       */
294#define DMA1_CURR_Y_COUNT               0xFFC00C78      /* DMA Channel 1 Current Y Count Register                                       */
295
296#define DMA2_NEXT_DESC_PTR              0xFFC00C80      /* DMA Channel 2 Next Descriptor Pointer Register                       */
297#define DMA2_START_ADDR                 0xFFC00C84      /* DMA Channel 2 Start Address Register                                 */
298#define DMA2_CONFIG                     0xFFC00C88      /* DMA Channel 2 Configuration Register                                 */
299#define DMA2_X_COUNT                    0xFFC00C90      /* DMA Channel 2 X Count Register                                               */
300#define DMA2_X_MODIFY                   0xFFC00C94      /* DMA Channel 2 X Modify Register                                              */
301#define DMA2_Y_COUNT                    0xFFC00C98      /* DMA Channel 2 Y Count Register                                               */
302#define DMA2_Y_MODIFY                   0xFFC00C9C      /* DMA Channel 2 Y Modify Register                                              */
303#define DMA2_CURR_DESC_PTR              0xFFC00CA0      /* DMA Channel 2 Current Descriptor Pointer Register                    */
304#define DMA2_CURR_ADDR                  0xFFC00CA4      /* DMA Channel 2 Current Address Register                                       */
305#define DMA2_IRQ_STATUS                 0xFFC00CA8      /* DMA Channel 2 Interrupt/Status Register                              */
306#define DMA2_PERIPHERAL_MAP             0xFFC00CAC      /* DMA Channel 2 Peripheral Map Register                                        */
307#define DMA2_CURR_X_COUNT               0xFFC00CB0      /* DMA Channel 2 Current X Count Register                                       */
308#define DMA2_CURR_Y_COUNT               0xFFC00CB8      /* DMA Channel 2 Current Y Count Register                                       */
309
310#define DMA3_NEXT_DESC_PTR              0xFFC00CC0      /* DMA Channel 3 Next Descriptor Pointer Register                       */
311#define DMA3_START_ADDR                 0xFFC00CC4      /* DMA Channel 3 Start Address Register                                 */
312#define DMA3_CONFIG                     0xFFC00CC8      /* DMA Channel 3 Configuration Register                                 */
313#define DMA3_X_COUNT                    0xFFC00CD0      /* DMA Channel 3 X Count Register                                               */
314#define DMA3_X_MODIFY                   0xFFC00CD4      /* DMA Channel 3 X Modify Register                                              */
315#define DMA3_Y_COUNT                    0xFFC00CD8      /* DMA Channel 3 Y Count Register                                               */
316#define DMA3_Y_MODIFY                   0xFFC00CDC      /* DMA Channel 3 Y Modify Register                                              */
317#define DMA3_CURR_DESC_PTR              0xFFC00CE0      /* DMA Channel 3 Current Descriptor Pointer Register                    */
318#define DMA3_CURR_ADDR                  0xFFC00CE4      /* DMA Channel 3 Current Address Register                                       */
319#define DMA3_IRQ_STATUS                 0xFFC00CE8      /* DMA Channel 3 Interrupt/Status Register                              */
320#define DMA3_PERIPHERAL_MAP             0xFFC00CEC      /* DMA Channel 3 Peripheral Map Register                                        */
321#define DMA3_CURR_X_COUNT               0xFFC00CF0      /* DMA Channel 3 Current X Count Register                                       */
322#define DMA3_CURR_Y_COUNT               0xFFC00CF8      /* DMA Channel 3 Current Y Count Register                                       */
323
324#define DMA4_NEXT_DESC_PTR              0xFFC00D00      /* DMA Channel 4 Next Descriptor Pointer Register                       */
325#define DMA4_START_ADDR                 0xFFC00D04      /* DMA Channel 4 Start Address Register                                 */
326#define DMA4_CONFIG                     0xFFC00D08      /* DMA Channel 4 Configuration Register                                 */
327#define DMA4_X_COUNT                    0xFFC00D10      /* DMA Channel 4 X Count Register                                               */
328#define DMA4_X_MODIFY                   0xFFC00D14      /* DMA Channel 4 X Modify Register                                              */
329#define DMA4_Y_COUNT                    0xFFC00D18      /* DMA Channel 4 Y Count Register                                               */
330#define DMA4_Y_MODIFY                   0xFFC00D1C      /* DMA Channel 4 Y Modify Register                                              */
331#define DMA4_CURR_DESC_PTR              0xFFC00D20      /* DMA Channel 4 Current Descriptor Pointer Register                    */
332#define DMA4_CURR_ADDR                  0xFFC00D24      /* DMA Channel 4 Current Address Register                                       */
333#define DMA4_IRQ_STATUS                 0xFFC00D28      /* DMA Channel 4 Interrupt/Status Register                              */
334#define DMA4_PERIPHERAL_MAP             0xFFC00D2C      /* DMA Channel 4 Peripheral Map Register                                        */
335#define DMA4_CURR_X_COUNT               0xFFC00D30      /* DMA Channel 4 Current X Count Register                                       */
336#define DMA4_CURR_Y_COUNT               0xFFC00D38      /* DMA Channel 4 Current Y Count Register                                       */
337
338#define DMA5_NEXT_DESC_PTR              0xFFC00D40      /* DMA Channel 5 Next Descriptor Pointer Register                       */
339#define DMA5_START_ADDR                 0xFFC00D44      /* DMA Channel 5 Start Address Register                                 */
340#define DMA5_CONFIG                     0xFFC00D48      /* DMA Channel 5 Configuration Register                                 */
341#define DMA5_X_COUNT                    0xFFC00D50      /* DMA Channel 5 X Count Register                                               */
342#define DMA5_X_MODIFY                   0xFFC00D54      /* DMA Channel 5 X Modify Register                                              */
343#define DMA5_Y_COUNT                    0xFFC00D58      /* DMA Channel 5 Y Count Register                                               */
344#define DMA5_Y_MODIFY                   0xFFC00D5C      /* DMA Channel 5 Y Modify Register                                              */
345#define DMA5_CURR_DESC_PTR              0xFFC00D60      /* DMA Channel 5 Current Descriptor Pointer Register                    */
346#define DMA5_CURR_ADDR                  0xFFC00D64      /* DMA Channel 5 Current Address Register                                       */
347#define DMA5_IRQ_STATUS                 0xFFC00D68      /* DMA Channel 5 Interrupt/Status Register                              */
348#define DMA5_PERIPHERAL_MAP             0xFFC00D6C      /* DMA Channel 5 Peripheral Map Register                                        */
349#define DMA5_CURR_X_COUNT               0xFFC00D70      /* DMA Channel 5 Current X Count Register                                       */
350#define DMA5_CURR_Y_COUNT               0xFFC00D78      /* DMA Channel 5 Current Y Count Register                                       */
351
352#define DMA6_NEXT_DESC_PTR              0xFFC00D80      /* DMA Channel 6 Next Descriptor Pointer Register                       */
353#define DMA6_START_ADDR                 0xFFC00D84      /* DMA Channel 6 Start Address Register                                 */
354#define DMA6_CONFIG                     0xFFC00D88      /* DMA Channel 6 Configuration Register                                 */
355#define DMA6_X_COUNT                    0xFFC00D90      /* DMA Channel 6 X Count Register                                               */
356#define DMA6_X_MODIFY                   0xFFC00D94      /* DMA Channel 6 X Modify Register                                              */
357#define DMA6_Y_COUNT                    0xFFC00D98      /* DMA Channel 6 Y Count Register                                               */
358#define DMA6_Y_MODIFY                   0xFFC00D9C      /* DMA Channel 6 Y Modify Register                                              */
359#define DMA6_CURR_DESC_PTR              0xFFC00DA0      /* DMA Channel 6 Current Descriptor Pointer Register                    */
360#define DMA6_CURR_ADDR                  0xFFC00DA4      /* DMA Channel 6 Current Address Register                                       */
361#define DMA6_IRQ_STATUS                 0xFFC00DA8      /* DMA Channel 6 Interrupt/Status Register                              */
362#define DMA6_PERIPHERAL_MAP             0xFFC00DAC      /* DMA Channel 6 Peripheral Map Register                                        */
363#define DMA6_CURR_X_COUNT               0xFFC00DB0      /* DMA Channel 6 Current X Count Register                                       */
364#define DMA6_CURR_Y_COUNT               0xFFC00DB8      /* DMA Channel 6 Current Y Count Register                                       */
365
366#define DMA7_NEXT_DESC_PTR              0xFFC00DC0      /* DMA Channel 7 Next Descriptor Pointer Register                       */
367#define DMA7_START_ADDR                 0xFFC00DC4      /* DMA Channel 7 Start Address Register                                 */
368#define DMA7_CONFIG                     0xFFC00DC8      /* DMA Channel 7 Configuration Register                                 */
369#define DMA7_X_COUNT                    0xFFC00DD0      /* DMA Channel 7 X Count Register                                               */
370#define DMA7_X_MODIFY                   0xFFC00DD4      /* DMA Channel 7 X Modify Register                                              */
371#define DMA7_Y_COUNT                    0xFFC00DD8      /* DMA Channel 7 Y Count Register                                               */
372#define DMA7_Y_MODIFY                   0xFFC00DDC      /* DMA Channel 7 Y Modify Register                                              */
373#define DMA7_CURR_DESC_PTR              0xFFC00DE0      /* DMA Channel 7 Current Descriptor Pointer Register                    */
374#define DMA7_CURR_ADDR                  0xFFC00DE4      /* DMA Channel 7 Current Address Register                                       */
375#define DMA7_IRQ_STATUS                 0xFFC00DE8      /* DMA Channel 7 Interrupt/Status Register                              */
376#define DMA7_PERIPHERAL_MAP             0xFFC00DEC      /* DMA Channel 7 Peripheral Map Register                                        */
377#define DMA7_CURR_X_COUNT               0xFFC00DF0      /* DMA Channel 7 Current X Count Register                                       */
378#define DMA7_CURR_Y_COUNT               0xFFC00DF8      /* DMA Channel 7 Current Y Count Register                                       */
379
380#define DMA8_NEXT_DESC_PTR              0xFFC00E00      /* DMA Channel 8 Next Descriptor Pointer Register                       */
381#define DMA8_START_ADDR                 0xFFC00E04      /* DMA Channel 8 Start Address Register                                 */
382#define DMA8_CONFIG                     0xFFC00E08      /* DMA Channel 8 Configuration Register                                 */
383#define DMA8_X_COUNT                    0xFFC00E10      /* DMA Channel 8 X Count Register                                               */
384#define DMA8_X_MODIFY                   0xFFC00E14      /* DMA Channel 8 X Modify Register                                              */
385#define DMA8_Y_COUNT                    0xFFC00E18      /* DMA Channel 8 Y Count Register                                               */
386#define DMA8_Y_MODIFY                   0xFFC00E1C      /* DMA Channel 8 Y Modify Register                                              */
387#define DMA8_CURR_DESC_PTR              0xFFC00E20      /* DMA Channel 8 Current Descriptor Pointer Register                    */
388#define DMA8_CURR_ADDR                  0xFFC00E24      /* DMA Channel 8 Current Address Register                                       */
389#define DMA8_IRQ_STATUS                 0xFFC00E28      /* DMA Channel 8 Interrupt/Status Register                              */
390#define DMA8_PERIPHERAL_MAP             0xFFC00E2C      /* DMA Channel 8 Peripheral Map Register                                        */
391#define DMA8_CURR_X_COUNT               0xFFC00E30      /* DMA Channel 8 Current X Count Register                                       */
392#define DMA8_CURR_Y_COUNT               0xFFC00E38      /* DMA Channel 8 Current Y Count Register                                       */
393
394#define DMA9_NEXT_DESC_PTR              0xFFC00E40      /* DMA Channel 9 Next Descriptor Pointer Register                       */
395#define DMA9_START_ADDR                 0xFFC00E44      /* DMA Channel 9 Start Address Register                                 */
396#define DMA9_CONFIG                     0xFFC00E48      /* DMA Channel 9 Configuration Register                                 */
397#define DMA9_X_COUNT                    0xFFC00E50      /* DMA Channel 9 X Count Register                                               */
398#define DMA9_X_MODIFY                   0xFFC00E54      /* DMA Channel 9 X Modify Register                                              */
399#define DMA9_Y_COUNT                    0xFFC00E58      /* DMA Channel 9 Y Count Register                                               */
400#define DMA9_Y_MODIFY                   0xFFC00E5C      /* DMA Channel 9 Y Modify Register                                              */
401#define DMA9_CURR_DESC_PTR              0xFFC00E60      /* DMA Channel 9 Current Descriptor Pointer Register                    */
402#define DMA9_CURR_ADDR                  0xFFC00E64      /* DMA Channel 9 Current Address Register                                       */
403#define DMA9_IRQ_STATUS                 0xFFC00E68      /* DMA Channel 9 Interrupt/Status Register                              */
404#define DMA9_PERIPHERAL_MAP             0xFFC00E6C      /* DMA Channel 9 Peripheral Map Register                                        */
405#define DMA9_CURR_X_COUNT               0xFFC00E70      /* DMA Channel 9 Current X Count Register                                       */
406#define DMA9_CURR_Y_COUNT               0xFFC00E78      /* DMA Channel 9 Current Y Count Register                                       */
407
408#define DMA10_NEXT_DESC_PTR             0xFFC00E80      /* DMA Channel 10 Next Descriptor Pointer Register                      */
409#define DMA10_START_ADDR                0xFFC00E84      /* DMA Channel 10 Start Address Register                                        */
410#define DMA10_CONFIG                    0xFFC00E88      /* DMA Channel 10 Configuration Register                                        */
411#define DMA10_X_COUNT                   0xFFC00E90      /* DMA Channel 10 X Count Register                                              */
412#define DMA10_X_MODIFY                  0xFFC00E94      /* DMA Channel 10 X Modify Register                                             */
413#define DMA10_Y_COUNT                   0xFFC00E98      /* DMA Channel 10 Y Count Register                                              */
414#define DMA10_Y_MODIFY                  0xFFC00E9C      /* DMA Channel 10 Y Modify Register                                             */
415#define DMA10_CURR_DESC_PTR             0xFFC00EA0      /* DMA Channel 10 Current Descriptor Pointer Register                   */
416#define DMA10_CURR_ADDR                 0xFFC00EA4      /* DMA Channel 10 Current Address Register                              */
417#define DMA10_IRQ_STATUS                0xFFC00EA8      /* DMA Channel 10 Interrupt/Status Register                             */
418#define DMA10_PERIPHERAL_MAP            0xFFC00EAC      /* DMA Channel 10 Peripheral Map Register                                       */
419#define DMA10_CURR_X_COUNT              0xFFC00EB0      /* DMA Channel 10 Current X Count Register                              */
420#define DMA10_CURR_Y_COUNT              0xFFC00EB8      /* DMA Channel 10 Current Y Count Register                              */
421
422#define DMA11_NEXT_DESC_PTR             0xFFC00EC0      /* DMA Channel 11 Next Descriptor Pointer Register                      */
423#define DMA11_START_ADDR                0xFFC00EC4      /* DMA Channel 11 Start Address Register                                        */
424#define DMA11_CONFIG                    0xFFC00EC8      /* DMA Channel 11 Configuration Register                                        */
425#define DMA11_X_COUNT                   0xFFC00ED0      /* DMA Channel 11 X Count Register                                              */
426#define DMA11_X_MODIFY                  0xFFC00ED4      /* DMA Channel 11 X Modify Register                                             */
427#define DMA11_Y_COUNT                   0xFFC00ED8      /* DMA Channel 11 Y Count Register                                              */
428#define DMA11_Y_MODIFY                  0xFFC00EDC      /* DMA Channel 11 Y Modify Register                                             */
429#define DMA11_CURR_DESC_PTR             0xFFC00EE0      /* DMA Channel 11 Current Descriptor Pointer Register                   */
430#define DMA11_CURR_ADDR                 0xFFC00EE4      /* DMA Channel 11 Current Address Register                              */
431#define DMA11_IRQ_STATUS                0xFFC00EE8      /* DMA Channel 11 Interrupt/Status Register                             */
432#define DMA11_PERIPHERAL_MAP            0xFFC00EEC      /* DMA Channel 11 Peripheral Map Register                                       */
433#define DMA11_CURR_X_COUNT              0xFFC00EF0      /* DMA Channel 11 Current X Count Register                              */
434#define DMA11_CURR_Y_COUNT              0xFFC00EF8      /* DMA Channel 11 Current Y Count Register                              */
435
436#define MDMA_D0_NEXT_DESC_PTR           0xFFC00F00      /* MemDMA Stream 0 Destination Next Descriptor Pointer Register         */
437#define MDMA_D0_START_ADDR              0xFFC00F04      /* MemDMA Stream 0 Destination Start Address Register                   */
438#define MDMA_D0_CONFIG                  0xFFC00F08      /* MemDMA Stream 0 Destination Configuration Register                   */
439#define MDMA_D0_X_COUNT                 0xFFC00F10      /* MemDMA Stream 0 Destination X Count Register                         */
440#define MDMA_D0_X_MODIFY                0xFFC00F14      /* MemDMA Stream 0 Destination X Modify Register                        */
441#define MDMA_D0_Y_COUNT                 0xFFC00F18      /* MemDMA Stream 0 Destination Y Count Register                         */
442#define MDMA_D0_Y_MODIFY                0xFFC00F1C      /* MemDMA Stream 0 Destination Y Modify Register                        */
443#define MDMA_D0_CURR_DESC_PTR           0xFFC00F20      /* MemDMA Stream 0 Destination Current Descriptor Pointer Register*/
444#define MDMA_D0_CURR_ADDR               0xFFC00F24      /* MemDMA Stream 0 Destination Current Address Register                 */
445#define MDMA_D0_IRQ_STATUS              0xFFC00F28      /* MemDMA Stream 0 Destination Interrupt/Status Register                */
446#define MDMA_D0_PERIPHERAL_MAP  0xFFC00F2C      /* MemDMA Stream 0 Destination Peripheral Map Register                  */
447#define MDMA_D0_CURR_X_COUNT            0xFFC00F30      /* MemDMA Stream 0 Destination Current X Count Register         */
448#define MDMA_D0_CURR_Y_COUNT            0xFFC00F38      /* MemDMA Stream 0 Destination Current Y Count Register         */
449
450#define MDMA_S0_NEXT_DESC_PTR           0xFFC00F40      /* MemDMA Stream 0 Source Next Descriptor Pointer Register              */
451#define MDMA_S0_START_ADDR              0xFFC00F44      /* MemDMA Stream 0 Source Start Address Register                        */
452#define MDMA_S0_CONFIG                  0xFFC00F48      /* MemDMA Stream 0 Source Configuration Register                        */
453#define MDMA_S0_X_COUNT                 0xFFC00F50      /* MemDMA Stream 0 Source X Count Register                              */
454#define MDMA_S0_X_MODIFY                0xFFC00F54      /* MemDMA Stream 0 Source X Modify Register                             */
455#define MDMA_S0_Y_COUNT                 0xFFC00F58      /* MemDMA Stream 0 Source Y Count Register                              */
456#define MDMA_S0_Y_MODIFY                0xFFC00F5C      /* MemDMA Stream 0 Source Y Modify Register                             */
457#define MDMA_S0_CURR_DESC_PTR           0xFFC00F60      /* MemDMA Stream 0 Source Current Descriptor Pointer Register   */
458#define MDMA_S0_CURR_ADDR               0xFFC00F64      /* MemDMA Stream 0 Source Current Address Register                      */
459#define MDMA_S0_IRQ_STATUS              0xFFC00F68      /* MemDMA Stream 0 Source Interrupt/Status Register                     */
460#define MDMA_S0_PERIPHERAL_MAP  0xFFC00F6C      /* MemDMA Stream 0 Source Peripheral Map Register                       */
461#define MDMA_S0_CURR_X_COUNT            0xFFC00F70      /* MemDMA Stream 0 Source Current X Count Register                      */
462#define MDMA_S0_CURR_Y_COUNT            0xFFC00F78      /* MemDMA Stream 0 Source Current Y Count Register                      */
463
464#define MDMA_D1_NEXT_DESC_PTR           0xFFC00F80      /* MemDMA Stream 1 Destination Next Descriptor Pointer Register */
465#define MDMA_D1_START_ADDR              0xFFC00F84      /* MemDMA Stream 1 Destination Start Address Register                   */
466#define MDMA_D1_CONFIG                  0xFFC00F88      /* MemDMA Stream 1 Destination Configuration Register                   */
467#define MDMA_D1_X_COUNT                 0xFFC00F90      /* MemDMA Stream 1 Destination X Count Register                         */
468#define MDMA_D1_X_MODIFY                0xFFC00F94      /* MemDMA Stream 1 Destination X Modify Register                        */
469#define MDMA_D1_Y_COUNT                 0xFFC00F98      /* MemDMA Stream 1 Destination Y Count Register                         */
470#define MDMA_D1_Y_MODIFY                0xFFC00F9C      /* MemDMA Stream 1 Destination Y Modify Register                        */
471#define MDMA_D1_CURR_DESC_PTR           0xFFC00FA0      /* MemDMA Stream 1 Destination Current Descriptor Pointer Register*/
472#define MDMA_D1_CURR_ADDR               0xFFC00FA4      /* MemDMA Stream 1 Destination Current Address Register         */
473#define MDMA_D1_IRQ_STATUS              0xFFC00FA8      /* MemDMA Stream 1 Destination Interrupt/Status Register                */
474#define MDMA_D1_PERIPHERAL_MAP  0xFFC00FAC      /* MemDMA Stream 1 Destination Peripheral Map Register          */
475#define MDMA_D1_CURR_X_COUNT            0xFFC00FB0      /* MemDMA Stream 1 Destination Current X Count Register         */
476#define MDMA_D1_CURR_Y_COUNT            0xFFC00FB8      /* MemDMA Stream 1 Destination Current Y Count Register         */
477
478#define MDMA_S1_NEXT_DESC_PTR           0xFFC00FC0      /* MemDMA Stream 1 Source Next Descriptor Pointer Register              */
479#define MDMA_S1_START_ADDR              0xFFC00FC4      /* MemDMA Stream 1 Source Start Address Register                        */
480#define MDMA_S1_CONFIG                  0xFFC00FC8      /* MemDMA Stream 1 Source Configuration Register                        */
481#define MDMA_S1_X_COUNT                 0xFFC00FD0      /* MemDMA Stream 1 Source X Count Register                              */
482#define MDMA_S1_X_MODIFY                0xFFC00FD4      /* MemDMA Stream 1 Source X Modify Register                             */
483#define MDMA_S1_Y_COUNT                 0xFFC00FD8      /* MemDMA Stream 1 Source Y Count Register                              */
484#define MDMA_S1_Y_MODIFY                0xFFC00FDC      /* MemDMA Stream 1 Source Y Modify Register                             */
485#define MDMA_S1_CURR_DESC_PTR           0xFFC00FE0      /* MemDMA Stream 1 Source Current Descriptor Pointer Register   */
486#define MDMA_S1_CURR_ADDR               0xFFC00FE4      /* MemDMA Stream 1 Source Current Address Register                      */
487#define MDMA_S1_IRQ_STATUS              0xFFC00FE8      /* MemDMA Stream 1 Source Interrupt/Status Register                     */
488#define MDMA_S1_PERIPHERAL_MAP  0xFFC00FEC      /* MemDMA Stream 1 Source Peripheral Map Register                       */
489#define MDMA_S1_CURR_X_COUNT            0xFFC00FF0      /* MemDMA Stream 1 Source Current X Count Register                      */
490#define MDMA_S1_CURR_Y_COUNT            0xFFC00FF8      /* MemDMA Stream 1 Source Current Y Count Register                      */
491
492
493/* Parallel Peripheral Interface        (0xFFC01000 - 0xFFC010FF)                                                                       */
494#define PPI_CONTROL                     0xFFC01000      /* PPI Control Register                                                         */
495#define PPI_STATUS                      0xFFC01004      /* PPI Status Register                                                          */
496#define PPI_COUNT                               0xFFC01008      /* PPI Transfer Count Register                                          */
497#define PPI_DELAY                               0xFFC0100C      /* PPI Delay Count Register                                                     */
498#define PPI_FRAME                               0xFFC01010      /* PPI Frame Length Register                                                    */
499
500
501/* Two-Wire Interface                   (0xFFC01400 - 0xFFC014FF)                                                                       */
502#define TWI_CLKDIV                      0xFFC01400      /* Serial Clock Divider Register                                                */
503#define TWI_CONTROL                     0xFFC01404      /* TWI Control Register                                                         */
504#define TWI_SLAVE_CTL                   0xFFC01408      /* Slave Mode Control Register                                          */
505#define TWI_SLAVE_STAT                  0xFFC0140C      /* Slave Mode Status Register                                                   */
506#define TWI_SLAVE_ADDR                  0xFFC01410      /* Slave Mode Address Register                                          */
507#define TWI_MASTER_CTL                  0xFFC01414      /* Master Mode Control Register                                         */
508#define TWI_MASTER_STAT                 0xFFC01418      /* Master Mode Status Register                                          */
509#define TWI_MASTER_ADDR                 0xFFC0141C      /* Master Mode Address Register                                         */
510#define TWI_INT_STAT                    0xFFC01420      /* TWI Interrupt Status Register                                                */
511#define TWI_INT_MASK                    0xFFC01424      /* TWI Master Interrupt Mask Register                                   */
512#define TWI_FIFO_CTL                    0xFFC01428      /* FIFO Control Register                                                        */
513#define TWI_FIFO_STAT                   0xFFC0142C      /* FIFO Status Register                                                         */
514#define TWI_XMT_DATA8                   0xFFC01480      /* FIFO Transmit Data Single Byte Register                              */
515#define TWI_XMT_DATA16                  0xFFC01484      /* FIFO Transmit Data Double Byte Register                              */
516#define TWI_RCV_DATA8                   0xFFC01488      /* FIFO Receive Data Single Byte Register                                       */
517#define TWI_RCV_DATA16                  0xFFC0148C      /* FIFO Receive Data Double Byte Register                                       */
518
519
520/* General Purpose I/O Port G   (0xFFC01500 - 0xFFC015FF)                                                                       */
521#define PORTGIO                         0xFFC01500      /* Port G I/O Pin State Specify Register                                        */
522#define PORTGIO_CLEAR                   0xFFC01504      /* Port G I/O Peripheral Interrupt Clear Register                       */
523#define PORTGIO_SET                     0xFFC01508      /* Port G I/O Peripheral Interrupt Set Register                         */
524#define PORTGIO_TOGGLE                  0xFFC0150C      /* Port G I/O Pin State Toggle Register                                 */
525#define PORTGIO_MASKA                   0xFFC01510      /* Port G I/O Mask State Specify Interrupt A Register                   */
526#define PORTGIO_MASKA_CLEAR             0xFFC01514      /* Port G I/O Mask Disable Interrupt A Register                         */
527#define PORTGIO_MASKA_SET               0xFFC01518      /* Port G I/O Mask Enable Interrupt A Register                          */
528#define PORTGIO_MASKA_TOGGLE            0xFFC0151C      /* Port G I/O Mask Toggle Enable Interrupt A Register                   */
529#define PORTGIO_MASKB                   0xFFC01520      /* Port G I/O Mask State Specify Interrupt B Register                   */
530#define PORTGIO_MASKB_CLEAR             0xFFC01524      /* Port G I/O Mask Disable Interrupt B Register                         */
531#define PORTGIO_MASKB_SET               0xFFC01528      /* Port G I/O Mask Enable Interrupt B Register                          */
532#define PORTGIO_MASKB_TOGGLE            0xFFC0152C      /* Port G I/O Mask Toggle Enable Interrupt B Register                   */
533#define PORTGIO_DIR                     0xFFC01530      /* Port G I/O Direction Register                                                */
534#define PORTGIO_POLAR                   0xFFC01534      /* Port G I/O Source Polarity Register                                  */
535#define PORTGIO_EDGE                    0xFFC01538      /* Port G I/O Source Sensitivity Register                                       */
536#define PORTGIO_BOTH                    0xFFC0153C      /* Port G I/O Set on BOTH Edges Register                                        */
537#define PORTGIO_INEN                    0xFFC01540      /* Port G I/O Input Enable Register                                             */
538
539
540/* General Purpose I/O Port H   (0xFFC01700 - 0xFFC017FF)                                                                       */
541#define PORTHIO                         0xFFC01700      /* Port H I/O Pin State Specify Register                                        */
542#define PORTHIO_CLEAR                   0xFFC01704      /* Port H I/O Peripheral Interrupt Clear Register                       */
543#define PORTHIO_SET                     0xFFC01708      /* Port H I/O Peripheral Interrupt Set Register                         */
544#define PORTHIO_TOGGLE                  0xFFC0170C      /* Port H I/O Pin State Toggle Register                                 */
545#define PORTHIO_MASKA                   0xFFC01710      /* Port H I/O Mask State Specify Interrupt A Register                   */
546#define PORTHIO_MASKA_CLEAR             0xFFC01714      /* Port H I/O Mask Disable Interrupt A Register                         */
547#define PORTHIO_MASKA_SET               0xFFC01718      /* Port H I/O Mask Enable Interrupt A Register                          */
548#define PORTHIO_MASKA_TOGGLE            0xFFC0171C      /* Port H I/O Mask Toggle Enable Interrupt A Register                   */
549#define PORTHIO_MASKB                   0xFFC01720      /* Port H I/O Mask State Specify Interrupt B Register                   */
550#define PORTHIO_MASKB_CLEAR             0xFFC01724      /* Port H I/O Mask Disable Interrupt B Register                         */
551#define PORTHIO_MASKB_SET               0xFFC01728      /* Port H I/O Mask Enable Interrupt B Register                          */
552#define PORTHIO_MASKB_TOGGLE            0xFFC0172C      /* Port H I/O Mask Toggle Enable Interrupt B Register                   */
553#define PORTHIO_DIR                     0xFFC01730      /* Port H I/O Direction Register                                                */
554#define PORTHIO_POLAR                   0xFFC01734      /* Port H I/O Source Polarity Register                                  */
555#define PORTHIO_EDGE                    0xFFC01738      /* Port H I/O Source Sensitivity Register                                       */
556#define PORTHIO_BOTH                    0xFFC0173C      /* Port H I/O Set on BOTH Edges Register                                        */
557#define PORTHIO_INEN                    0xFFC01740      /* Port H I/O Input Enable Register                                             */
558
559
560/* UART1 Controller                     (0xFFC02000 - 0xFFC020FF)                                                                       */
561#define UART1_THR                               0xFFC02000      /* Transmit Holding register                                                    */
562#define UART1_RBR                               0xFFC02000      /* Receive Buffer register                                                      */
563#define UART1_DLL                               0xFFC02000      /* Divisor Latch (Low-Byte)                                                     */
564#define UART1_IER                               0xFFC02004      /* Interrupt Enable Register                                                    */
565#define UART1_DLH                               0xFFC02004      /* Divisor Latch (High-Byte)                                                    */
566#define UART1_IIR                               0xFFC02008      /* Interrupt Identification Register                                    */
567#define UART1_LCR                               0xFFC0200C      /* Line Control Register                                                        */
568#define UART1_MCR                               0xFFC02010      /* Modem Control Register                                                       */
569#define UART1_LSR                               0xFFC02014      /* Line Status Register                                                         */
570#define UART1_SCR                               0xFFC0201C      /* SCR Scratch Register                                                         */
571#define UART1_GCTL                      0xFFC02024      /* Global Control Register                                                      */
572
573
574/* Pin Control Registers                (0xFFC03200 - 0xFFC032FF)                                                                       */
575#define PORTF_FER                               0xFFC03200      /* Port F Function Enable Register (Alternate/Flag*)                    */
576#define PORTG_FER                               0xFFC03204      /* Port G Function Enable Register (Alternate/Flag*)                    */
577#define PORTH_FER                               0xFFC03208      /* Port H Function Enable Register (Alternate/Flag*)                    */
578
579
580/* GPIO PIN mux                                 (0xFFC03210 - OxFFC03288)                                                                       */
581#define PORTF_MUX                       0xFFC03210  /* Port F mux control                                                               */
582#define PORTG_MUX                       0xFFC03214  /* Port G mux control                                                               */
583#define PORTH_MUX                       0xFFC03218  /* Port H mux control                                                               */
584#define PORTF_DRIVE                     0xFFC03220  /* Port F drive strength control                                            */
585#define PORTG_DRIVE                     0xFFC03224  /* Port G drive strength control                                            */
586#define PORTH_DRIVE                     0xFFC03228  /* Port H drive strength control                                            */
587#define PORTF_HYSTERESIS                0xFFC03240  /* Port F Schmitt trigger control                                           */
588#define PORTG_HYSTERESIS                0xFFC03244  /* Port G Schmitt trigger control                                           */
589#define PORTH_HYSTERESIS                0xFFC03248  /* Port H Schmitt trigger control                                           */
590#define NONGPIO_DRIVE                   0xFFC03280  /* Misc Port drive strength control                                         */
591#define NONGPIO_HYSTERESIS              0xFFC03288  /* Misc Port Schmitt Trigger control                                        */
592
593
594/* Handshake MDMA Registers             (0xFFC03300 - 0xFFC033FF)                                                                       */
595#define HMDMA0_CONTROL                  0xFFC03300      /* Handshake MDMA0 Control Register                                             */
596#define HMDMA0_ECINIT                   0xFFC03304      /* HMDMA0 Initial Edge Count Register                                   */
597#define HMDMA0_BCINIT                   0xFFC03308      /* HMDMA0 Initial Block Count Register                                  */
598#define HMDMA0_ECURGENT                 0xFFC0330C      /* HMDMA0 Urgent Edge Count Threshhold Register                         */
599#define HMDMA0_ECOVERFLOW               0xFFC03310      /* HMDMA0 Edge Count Overflow Interrupt Register                        */
600#define HMDMA0_ECOUNT                   0xFFC03314      /* HMDMA0 Current Edge Count Register                                   */
601#define HMDMA0_BCOUNT                   0xFFC03318      /* HMDMA0 Current Block Count Register                                  */
602
603#define HMDMA1_CONTROL                  0xFFC03340      /* Handshake MDMA1 Control Register                                             */
604#define HMDMA1_ECINIT                   0xFFC03344      /* HMDMA1 Initial Edge Count Register                                   */
605#define HMDMA1_BCINIT                   0xFFC03348      /* HMDMA1 Initial Block Count Register                                  */
606#define HMDMA1_ECURGENT                 0xFFC0334C      /* HMDMA1 Urgent Edge Count Threshhold Register                         */
607#define HMDMA1_ECOVERFLOW               0xFFC03350      /* HMDMA1 Edge Count Overflow Interrupt Register                        */
608#define HMDMA1_ECOUNT                   0xFFC03354      /* HMDMA1 Current Edge Count Register                                   */
609#define HMDMA1_BCOUNT                   0xFFC03358      /* HMDMA1 Current Block Count Register                                  */
610
611
612/* SPI1 Controller                      (0xFFC03400 - 0xFFC034FF)                                                                       */
613#define SPI1_CTL                                0xFFC03400      /* SPI0 Control Register                                                        */
614#define SPI1_FLG                                0xFFC03404      /* SPI0 Flag register                                                           */
615#define SPI1_STAT                               0xFFC03408      /* SPI0 Status register                                                         */
616#define SPI1_TDBR                               0xFFC0340C      /* SPI0 Transmit Data Buffer Register                                   */
617#define SPI1_RDBR                               0xFFC03410      /* SPI0 Receive Data Buffer Register                                    */
618#define SPI1_BAUD                               0xFFC03414      /* SPI0 Baud rate Register                                                      */
619#define SPI1_SHADOW                     0xFFC03418      /* SPI0_RDBR Shadow Register                                                    */
620
621
622/* Counter Registers                    (0xFFC03500 - 0xFFC035FF)                                                                       */
623#define CNT_CONFIG                      0xFFC03500  /* Configuration Register                                                   */
624#define CNT_IMASK                               0xFFC03504  /* Interrupt Mask Register                                                  */
625#define CNT_STATUS                      0xFFC03508  /* Status Register                                                          */
626#define CNT_COMMAND                     0xFFC0350C  /* Command Register                                                                 */
627#define CNT_DEBOUNCE                    0xFFC03510  /* Debounce Register                                                                */
628#define CNT_COUNTER                     0xFFC03514  /* Counter Register                                                                 */
629#define CNT_MAX                         0xFFC03518  /* Boundry Value Register - max count                                       */
630#define CNT_MIN                         0xFFC0351C  /* Boundry Value Register - min count                                       */
631
632
633/* OTP/FUSE Registers                   (0xFFC03600 - 0xFFC036FF)                                                                       */
634#define OTP_CONTROL                     0xFFC03600  /* OTPSEC Fuse Control                                                      */
635#define OTP_BEN                         0xFFC03604  /* OTPSEC Fuse Byte Enable                                                  */
636#define OTP_STATUS                      0xFFC03608  /* OTPSEC Fuse Status                                                               */
637#define OTP_TIMING                      0xFFC0360C  /* OTPSEC Fuse SCLK Divider                                                         */
638
639/* Security Registers                                                                                                                           */
640#define SECURE_SYSSWT                   0xFFC03620  /* OTPSEC Secure System Switches                                            */
641#define SECURE_CONTROL                  0xFFC03624  /* OTPSEC Secure Control                                                    */
642#define SECURE_STATUS                   0xFFC03628  /* OTPSEC Secure Status                                                     */
643
644/* OTP Read/Write Data Buffer Registers                                                                                                         */
645#define OTP_DATA0                               0xFFC03680  /* OTP Read Write buffer                                                    */
646#define OTP_DATA1                       0xFFC03684  /* OTP Read Write buffer                                                    */
647#define OTP_DATA2                       0xFFC03688  /* OTP Read Write buffer                                                    */
648#define OTP_DATA3                       0xFFC0368C  /* OTP Read Write buffer                                                    */
649
650
651/* Motor Control PWM Registers  (0xFFC03700 - 0xFFC037FF)                                                                       */
652#define PWM_CTRL                                0xFFC03700      /* PWM Control Register                                                         */
653#define PWM_STAT                                0xFFC03704      /* PWM Status Register                                                          */
654#define PWM_TM                          0xFFC03708      /* PWM Period Register                                                          */
655#define PWM_DT                          0xFFC0370C      /* PWM Dead Time Register                                                       */
656#define PWM_GATE                                0xFFC03710      /* PWM Chopping Control                                                         */
657#define PWM_CHA                         0xFFC03714      /* PWM Channel A Duty Control                                                   */
658#define PWM_CHB                         0xFFC03718      /* PWM Channel B Duty Control                                                   */
659#define PWM_CHC                         0xFFC0371C      /* PWM Channel C Duty Control                                                   */
660#define PWM_SEG                         0xFFC03720      /* PWM Crossover and Output Enable                                              */
661#define PWM_SYNCWT                      0xFFC03724      /* PWM Sync pulse width control                                         */
662#define PWM_CHAL                                0xFFC03728      /* PWM Channel AL Duty Control (SR mode only)                           */
663#define PWM_CHBL                                0xFFC0372C      /* PWM Channel BL Duty Control (SR mode only)                           */
664#define PWM_CHCL                                0xFFC03730      /* PWM Channel CL Duty Control (SR mode only)                           */
665#define PWM_LSI                         0xFFC03734  /* Low Side Invert (SR mode only)                                           */
666#define PWM_STAT2                               0xFFC03738      /* PWM Status Register                                                          */
667
668
669
670/******************************************************************************************************************
671** System MMR Register Bits And Macros
672**
673** Disclaimer:  All macros are intended to make C and Assembly code more readable.
674**                      Use these macros carefully, as any that do left shifts for field
675**                      depositing will result in the lower order bits being destroyed.  Any
676**                      macro that shifts left to properly position the bit-field should be
677**                      used as part of an OR to initialize a register and NOT as a dynamic
678**                      modifier UNLESS the lower order bits are saved and ORed back in when
679**                      the macro is used.
680*******************************************************************************************************************/
681
682/************************************** PLL AND RESET MASKS *******************************************************/
683
684/* PLL_CTL Masks */
685#define DF                                      0x0001  /* 0: PLL = CLKIN, 1: PLL = CLKIN/2                                             */
686#define PLL_OFF                         0x0002  /* PLL Not Powered                                                              */
687#define STOPCK                          0x0008  /* Core Clock Off                                                                       */
688#define PDWN                            0x0020  /* Enter Deep Sleep Mode                                                        */
689#define IN_DELAY                                0x0040  /* Add 200ps Delay To EBIU Input Latches                                        */
690#define OUT_DELAY                               0x0080  /* Add 200ps Delay To EBIU Output Signals                                       */
691#define BYPASS                          0x0100  /* Bypass the PLL                                                                       */
692#define MSEL                            0x7E00  /* Multiplier Select For CCLK/VCO Factors                                       */
693
694/* PLL_CTL Macros (Only Use With Logic OR While Setting Lower Order Bits) */
695#ifdef _MISRA_RULES
696#define SET_MSEL(x)     (((x)&0x3Fu) << 0x9)    /* Set MSEL = 0-63 --> VCO = CLKIN*MSEL                                 */
697#else
698#define SET_MSEL(x)     (((x)&0x3F) << 0x9)     /* Set MSEL = 0-63 --> VCO = CLKIN*MSEL                                 */
699#endif /* _MISRA_RULES */
700
701/* PLL_DIV Masks */
702#define SSEL                            0x000F  /* System Select                                                                        */
703#define CSEL                            0x0030  /* Core Select                                                                  */
704#define CSEL_DIV1                               0x0000  /* CCLK = VCO / 1                                                                       */
705#define CSEL_DIV2                               0x0010  /* CCLK = VCO / 2                                                                       */
706#define CSEL_DIV4                               0x0020  /* CCLK = VCO / 4                                                                       */
707#define CSEL_DIV8                               0x0030  /* CCLK = VCO / 8                                                                       */
708
709/* PLL_DIV Macros       */
710#ifdef _MISRA_RULES
711#define SET_SSEL(x)                     ((x)&0xFu)      /* Set SSEL = 0-15 --> SCLK = VCO/SSEL                                  */
712#else
713#define SET_SSEL(x)                     ((x)&0xF)       /* Set SSEL = 0-15 --> SCLK = VCO/SSEL                                  */
714#endif /* _MISRA_RULES */
715
716/* VR_CTL Masks */
717#define FREQ                            0x3000  /* Switching Oscillator Frequency For Regulator                         */
718#define HIBERNATE                               0x0000  /* Powerdown/Bypass On-Board Regulation                                 */
719
720#define VLEV                            0x00F0  /* Internal Voltage Level - Only Program Values Within Specifications */
721#define VLEV_085                                0x0040  /* VLEV = 0.85 V (See Datasheet for Regulator Tolerance)                */
722#define VLEV_090                                0x0050  /* VLEV = 0.90 V (See Datasheet for Regulator Tolerance)                */
723#define VLEV_095                                0x0060  /* VLEV = 0.95 V (See Datasheet for Regulator Tolerance)                */
724#define VLEV_100                                0x0070  /* VLEV = 1.00 V (See Datasheet for Regulator Tolerance)                */
725#define VLEV_105                                0x0080  /* VLEV = 1.05 V (See Datasheet for Regulator Tolerance)                */
726#define VLEV_110                                0x0090  /* VLEV = 1.10 V (See Datasheet for Regulator Tolerance)                */
727#define VLEV_115                                0x00A0  /* VLEV = 1.15 V (See Datasheet for Regulator Tolerance)                */
728#define VLEV_120                                0x00B0  /* VLEV = 1.20 V (See Datasheet for Regulator Tolerance)                */
729
730#define WAKE                            0x0100  /* Enable RTC/Reset Wakeup From Hibernate                                       */
731/* no USB WAKE UP */
732#define PHYWE                           0x0400  /* Enable PHY Wakeup From Hibernate                                             */
733#define CLKBUFOE                                0x4000  /* CLKIN Buffer Output Enable                                                   */
734#define PHYCLKOE                                CLKBUFOE        /* Alternative legacy name for the above                                        */
735#define SCKELOW                         0x8000  /* Enable Drive CKE Low During Reset                                    */
736
737/* PLL_STAT Masks       */
738#define ACTIVE_PLLENABLED               0x0001  /* Processor In Active Mode With PLL Enabled                            */
739#define FULL_ON                         0x0002  /* Processor In Full On Mode                                                    */
740#define ACTIVE_PLLDISABLED              0x0004  /* Processor In Active Mode With PLL Disabled                           */
741#define PLL_LOCKED                      0x0020  /* PLL_LOCKCNT Has Been Reached                                         */
742#define VSTAT                           0x0080  /* Voltage Regulator Status: Regulator at programmed voltage */
743
744/* SWRST Masks */
745#define SYSTEM_RESET                    0x0007  /* Initiates A System Software Reset                                    */
746#define DOUBLE_FAULT                    0x0008  /* Core Double Fault Causes Reset                                               */
747#define RESET_DOUBLE                    0x2000  /* SW Reset Generated By Core Double-Fault                              */
748#define RESET_WDOG                      0x4000  /* SW Reset Generated By Watchdog Timer                                 */
749#define RESET_SOFTWARE                  0x8000  /* SW Reset Occurred Since Last Read Of SWRST                           */
750
751/* SYSCR Masks */
752#define BMODE_BYPASS        0x0000  /* No boot mode */
753#define BMODE_FLASH         0x0001  /* Use Boot ROM to load from 8-bit or 16-bit flash */
754#define BMODE_SPI0MEM_INT   0x0002  /* Boot from internal SPI0 memory */
755#define BMODE_SPI0MEM_EXT   0x0003  /* Boot from external SPI0 memory */
756#define BMODE_SPI0HOST      0x0004  /* Boot from SPI0 host (slave mode) */
757#define BMODE_OTPMEM        0x0005  /* Boot from OTP memory */
758#define BMODE_SDRAMMEM      0x0006  /* Boot from SDRAM memory (warm boot) */
759#define BMODE_UART0HOST     0x0007  /* Boot from UART0 host */
760#define BMODE               0x0007  /* Boot Mode. Mirror of BMODE Mode Pins */
761
762#define BCODE                           0x00F0
763#define BCODE_NORMAL                    0x0000  /* normal boot, update PLL/VR, quickboot as by WURESET          */
764#define BCODE_NOBOOT                    0x0010  /* bypass boot, don't update PLL/VR                                     */
765#define BCODE_QUICKBOOT                 0x0020  /* quick boot, overrule WURESET, don't update PLL/VR                    */
766#define BCODE_ALLBOOT                   0x0040  /* no quick boot, overrule WURESET, don't update PLL/VR                 */
767#define BCODE_FULLBOOT                  0x0060  /* no quick boot, overrule WURESET, update PLL/VR                       */
768
769#define WURESET                                 0x1000  /* wakeup event since last hardware reset                                       */
770#define DFRESET                                 0x2000  /* recent reset was due to a double fault event                         */
771#define WDRESET                                 0x4000  /* recent reset was due to a watchdog event                             */
772#define SWRESET                                 0x8000  /* recent reset was issued by software                                  */
773
774/*********************************  SYSTEM INTERRUPT CONTROLLER MASKS *********************************************/
775
776/* Peripheral Masks For SIC_ISR0, SIC_IWR0, SIC_IMASK0 */
777#define IRQ_PLL_WAKEUP                  0x00000001      /* PLL Wakeup Interrupt                                                         */
778#define IRQ_DMA_ERR0                    0x00000002  /* Error Interrupt (DMA error 0 interrupt (generic))                        */
779#define IRQ_DMAR0                       0x00000004  /* DMAR0 Block (DMAR0 block interrupt)                                      */
780#define IRQ_DMAR1                       0x00000008  /* DMAR1 Block  (DMAR1 block interrupt)                                     */
781#define IRQ_DMAR0_ERR                   0x00000010  /* Error Interrupt (DMAR0 overflow error interrupt)                         */
782#define IRQ_DMAR1_ERR                   0x00000020  /* Error Interrupt (DMAR1 overflow error interrupt)                         */
783#define IRQ_PPI_ERR                     0x00000040  /* Error Interrupt (PPI error interrupt)                                    */
784#define IRQ_MAC_ERR                     0x00000080  /* Error Interrupt (MAC status interrupt)                           */
785#define IRQ_SPORT0_ERR                  0x00000100  /* Error Interrupt (SPORT0 status interrupt)                                */
786#define IRQ_SPORT1_ERR                  0x00000200  /* Error Interrupt (SPORT1 status interrupt)                                */
787#define IRQ_PTP_ERR                     0x00000400  /* Error Interrupt (PTP error interrupt)                                    */
788
789#define IRQ_UART0_ERR                   0x00001000  /* Error Interrupt (UART0 status interrupt)                                 */
790#define IRQ_UART1_ERR                   0x00002000  /* Error Interrupt (UART1 status interrupt)                                 */
791#define IRQ_RTC                         0x00004000  /* Real Time Clock Interrupt                                                        */
792#define IRQ_DMA0                                0x00008000  /* DMA channel 0 (PPI/NFC) Interrupt                                        */
793#define IRQ_DMA3                                0x00010000  /* DMA Channel 3 (SPORT0 RX) Interrupt                                      */
794#define IRQ_DMA4                                0x00020000  /* DMA Channel 4 (SPORT0 TX) Interrupt                                      */
795#define IRQ_DMA5                                0x00040000  /* DMA Channel 5 (SPORT1 RX) Interrupt                                      */
796#define IRQ_DMA6                                0x00080000  /* DMA Channel 6 (SPORT1 TX) Interrupt                                      */
797#define IRQ_TWI                         0x00100000  /* TWI Interrupt                                                                    */
798#define IRQ_DMA7                                0x00200000  /* DMA Channel 7 (SPI) Interrupt                                            */
799#define IRQ_DMA8                                0x00400000  /* DMA Channel 8 (UART0 RX) Interrupt                                       */
800#define IRQ_DMA9                                0x00800000  /* DMA Channel 9 (UART0 TX) Interrupt                                       */
801#define IRQ_DMA10                               0x01000000  /* DMA Channel 10 (UART1 RX) Interrupt                                      */
802#define IRQ_DMA11                               0x02000000  /* DMA Channel 11 (UART1 TX) Interrupt                                      */
803#define IRQ_OTP                         0x04000000  /* OTP Interrupt                                                                    */
804#define IRQ_CNT                                 0x08000000  /* GP Counter Interrupt                                                     */
805#define IRQ_DMA1                                0x10000000  /* DMA Channel 1 (EthernetRX/HOSTDP) Interrupt                              */
806#define IRQ_PFA_PORTH                   0x20000000  /* PF Port H Interrupt A                                                    */
807#define IRQ_DMA2                                0x40000000  /* DMA Channel 2 (Ethernet TX/NFC) Interrupt                                */
808#define IRQ_PFB_PORTH                   0x80000000  /* PF Port H  Interrupt B                                                   */
809
810/* Peripheral Masks For SIC_ISR1, SIC_IWR1, SIC_IMASK1 */
811#define IRQ_TIMER0                      0x00000001      /* Timer 0 Interrupt                                                            */
812#define IRQ_TIMER1                      0x00000002      /* Timer 1 Interrupt                                                            */
813#define IRQ_TIMER2                      0x00000004      /* Timer 2 Interrupt                                                            */
814#define IRQ_TIMER3                      0x00000008      /* Timer 3 Interrupt                                                            */
815#define IRQ_TIMER4                      0x00000010      /* Timer 4 Interrupt                                                            */
816#define IRQ_TIMER5                      0x00000020      /* Timer 5 Interrupt                                                            */
817#define IRQ_TIMER6                      0x00000040      /* Timer 6 Interrupt                                                            */
818#define IRQ_TIMER7                      0x00000080      /* Timer 7 Interrupt                                                            */
819#define IRQ_PFA_PORTG                   0x00000100      /* PF Port G Interrupt A                                                        */
820#define IRQ_PFB_PORTG                   0x00000200      /* PF Port G Interrupt B                                                        */
821#define IRQ_DMA12                               0x00000400      /* DMA Channels 12 (MDMA0 Destination) TX Interrupt                     */
822#define IRQ_DMA13                               0x00000400      /* DMA Channels 13 (MDMA0 Source) RX Interrupt                          */
823#define IRQ_DMA14                               0x00000800      /* DMA Channels 14 (MDMA1 Destination) TX Interrupt                     */
824#define IRQ_DMA15                               0x00000800      /* DMA Channels 15 (MDMA1 Source) RX Interrupt                          */
825#define IRQ_WDOG                                0x00001000      /* Software Watchdog Timer Interrupt                                    */
826#define IRQ_PFA_PORTF                   0x00002000      /* PF Port F Interrupt A                                                        */
827#define IRQ_PFB_PORTF                   0x00004000      /* PF Port F Interrupt B                                                        */
828#define IRQ_SPI0_ERR                    0x00008000  /* Error Interrupt (SPI0 status interrupt)                          */
829#define IRQ_SPI1_ERR                    0x00010000      /* Error Interrupt (SPI1 status interrupt)                              */
830
831#define IRQ_RSI_INT0                    0x00080000      /* USB EINT interrupt                                                           */
832#define IRQ_RSI_INT1                    0x00100000      /* USB INT0 interrupt                                                           */
833#define IRQ_PWM_TRIPINT                 0x00200000      /* USB INT1 interrupt                                                           */
834#define IRQ_PWM_SYNCINT                 0x00400000      /* USB INT1 interrupt                                                           */
835#define IRQ_PTP_STATINT                 0x00800000      /* USB DMAINT interrupt                                                         */
836
837
838/* Peripheral Masks For SIC_ISR, SIC_IWR, SIC_IMASK */
839#define IWR_DISABLE_ALL         0x00000000      /* Wakeup Disable all peripherals                                               */
840#define IWR_ENABLE_ALL                  0xFFFFFFFF      /* Wakeup Enable all peripherals                                                */
841/* x = pos 0 to 31, for 32-63 use value-32 */
842#define IWR_ENABLE(x)                   (1 << (x))      /* Wakeup Enable Peripheral #x                                          */
843#define IWR_DISABLE(x)   (0xFFFFFFFF^(1<<(x)))  /* Wakeup Disable Peripheral #x                                                 */
844
845
846#ifdef _MISRA_RULES
847#define _MF15   0xFu
848#define _MF7    7u
849#else
850#define _MF15   0xF
851#define _MF7    7
852#endif /* _MISRA_RULES */
853
854/* SIC_IAR0 Macros */
855#define P0_IVG(x)       (((x)&_MF15)-_MF7)           /* Peripheral #0 assigned IVG #x    */
856#define P1_IVG(x)       ((((x)&_MF15)-_MF7) << 0x4)  /* Peripheral #1 assigned IVG #x    */
857#define P2_IVG(x)       ((((x)&_MF15)-_MF7) << 0x8)  /* Peripheral #2 assigned IVG #x    */
858#define P3_IVG(x)       ((((x)&_MF15)-_MF7) << 0xC)  /* Peripheral #3 assigned IVG #x    */
859#define P4_IVG(x)       ((((x)&_MF15)-_MF7) << 0x10) /* Peripheral #4 assigned IVG #x    */
860#define P5_IVG(x)       ((((x)&_MF15)-_MF7) << 0x14) /* Peripheral #5 assigned IVG #x    */
861#define P6_IVG(x)       ((((x)&_MF15)-_MF7) << 0x18) /* Peripheral #6 assigned IVG #x    */
862#define P7_IVG(x)       ((((x)&_MF15)-_MF7) << 0x1C) /* Peripheral #7 assigned IVG #x    */
863
864/* SIC_IAR1 Macros */
865#define P8_IVG(x)       (((x)&_MF15)-_MF7)           /* Peripheral #8 assigned IVG #x    */
866#define P9_IVG(x)       ((((x)&_MF15)-_MF7) << 0x4)  /* Peripheral #9 assigned IVG #x    */
867#define P10_IVG(x)      ((((x)&_MF15)-_MF7) << 0x8)  /* Peripheral #10 assigned IVG #x   */
868#define P11_IVG(x)                                   /* Reserved                         */
869#define P12_IVG(x)      ((((x)&_MF15)-_MF7) << 0x10) /* Peripheral #12 assigned IVG #x   */
870#define P13_IVG(x)      ((((x)&_MF15)-_MF7) << 0x14) /* Peripheral #13 assigned IVG #x   */
871#define P14_IVG(x)      ((((x)&_MF15)-_MF7) << 0x18) /* Peripheral #14 assigned IVG #x   */
872#define P15_IVG(x)      ((((x)&_MF15)-_MF7) << 0x1C) /* Peripheral #15 assigned IVG #x   */
873
874/* SIC_IAR2 Macros */
875#define P16_IVG(x)      (((x)&_MF15)-_MF7)           /* Peripheral #16 assigned IVG #x   */
876#define P17_IVG(x)      ((((x)&_MF15)-_MF7) << 0x4)  /* Peripheral #17 assigned IVG #x   */
877#define P18_IVG(x)      ((((x)&_MF15)-_MF7) << 0x8)  /* Peripheral #18 assigned IVG #x   */
878#define P19_IVG(x)      ((((x)&_MF15)-_MF7) << 0xC)  /* Peripheral #19 assigned IVG #x   */
879#define P20_IVG(x)      ((((x)&_MF15)-_MF7) << 0x10) /* Peripheral #20 assigned IVG #x   */
880#define P21_IVG(x)      ((((x)&_MF15)-_MF7) << 0x14) /* Peripheral #21 assigned IVG #x   */
881#define P22_IVG(x)      ((((x)&_MF15)-_MF7) << 0x18) /* Peripheral #22 assigned IVG #x   */
882#define P23_IVG(x)      ((((x)&_MF15)-_MF7) << 0x1C) /* Peripheral #23 assigned IVG #x   */
883
884/* SIC_IAR3 Macros */
885#define P24_IVG(x)      (((x)&_MF15)-_MF7)           /* Peripheral #24 assigned IVG #x   */
886#define P25_IVG(x)      ((((x)&_MF15)-_MF7) << 0x4)  /* Peripheral #25 assigned IVG #x   */
887#define P26_IVG(x)      ((((x)&_MF15)-_MF7) << 0x8)  /* Peripheral #26 assigned IVG #x   */
888#define P27_IVG(x)      ((((x)&_MF15)-_MF7) << 0xC)  /* Peripheral #27 assigned IVG #x   */
889#define P28_IVG(x)      ((((x)&_MF15)-_MF7) << 0x10) /* Peripheral #28 assigned IVG #x   */
890#define P29_IVG(x)      ((((x)&_MF15)-_MF7) << 0x14) /* Peripheral #29 assigned IVG #x   */
891#define P30_IVG(x)      ((((x)&_MF15)-_MF7) << 0x18) /* Peripheral #30 assigned IVG #x   */
892#define P31_IVG(x)      ((((x)&_MF15)-_MF7) << 0x1C) /* Peripheral #31 assigned IVG #x   */
893
894/* SIC_IAR4 Macros */
895#define P32_IVG(x)      (((x)&_MF15)-_MF7)           /* Peripheral #32 assigned IVG #x   */
896#define P33_IVG(x)      ((((x)&_MF15)-_MF7) << 0x4)  /* Peripheral #33 assigned IVG #x   */
897#define P34_IVG(x)      ((((x)&_MF15)-_MF7) << 0x8)  /* Peripheral #34 assigned IVG #x   */
898#define P35_IVG(x)      ((((x)&_MF15)-_MF7) << 0xC)  /* Peripheral #35 assigned IVG #x   */
899#define P36_IVG(x)      ((((x)&_MF15)-_MF7) << 0x10) /* Peripheral #36 assigned IVG #x   */
900#define P37_IVG(x)      ((((x)&_MF15)-_MF7) << 0x14) /* Peripheral #37 assigned IVG #x   */
901#define P38_IVG(x)      ((((x)&_MF15)-_MF7) << 0x18) /* Peripheral #38 assigned IVG #x   */
902#define P39_IVG(x)      ((((x)&_MF15)-_MF7) << 0x1C) /* Peripheral #39 assigned IVG #x   */
903
904/* SIC_IAR5 Macros */
905#define P40_IVG(x)      (((x)&_MF15)-_MF7)           /* Peripheral #40 assigned IVG #x   */
906#define P41_IVG(x)      ((((x)&_MF15)-_MF7) << 0x4)  /* Peripheral #41 assigned IVG #x   */
907#define P42_IVG(x)      ((((x)&_MF15)-_MF7) << 0x8)  /* Peripheral #42 assigned IVG #x   */
908#define P43_IVG(x)      ((((x)&_MF15)-_MF7) << 0xC)  /* Peripheral #43 assigned IVG #x   */
909#define P44_IVG(x)      ((((x)&_MF15)-_MF7) << 0x10) /* Peripheral #44 assigned IVG #x   */
910#define P45_IVG(x)      ((((x)&_MF15)-_MF7) << 0x14) /* Peripheral #45 assigned IVG #x   */
911#define P46_IVG(x)      ((((x)&_MF15)-_MF7) << 0x18) /* Peripheral #46 assigned IVG #x   */
912#define P47_IVG(x)      ((((x)&_MF15)-_MF7) << 0x1C) /* Peripheral #47 assigned IVG #x   */
913
914/* SIC_IAR6 Macros */
915#define P48_IVG(x)      (((x)&_MF15)-_MF7)           /* Peripheral #48 assigned IVG #x   */
916#define P49_IVG(x)                                   /* Reserved                         */
917#define P50_IVG(x)                                   /* Reserved                         */
918#define P51_IVG(x)      ((((x)&_MF15)-_MF7) << 0xC)  /* Peripheral #51 assigned IVG #x   */
919#define P52_IVG(x)      ((((x)&_MF15)-_MF7) << 0x10) /* Peripheral #52 assigned IVG #x   */
920#define P53_IVG(x)      ((((x)&_MF15)-_MF7) << 0x14) /* Peripheral #53 assigned IVG #x   */
921#define P54_IVG(x)      ((((x)&_MF15)-_MF7) << 0x18) /* Peripheral #54 assigned IVG #x   */
922#define P55_IVG(x)      ((((x)&_MF15)-_MF7) << 0x1C) /* Peripheral #55 assigned IVG #x   */
923
924/* SIC_IAR7 Macros */
925#define P56_IVG(x)                                   /* Reserved                         */
926#define P57_IVG(x)                                   /* Reserved                         */
927#define P58_IVG(x)                                   /* Reserved                         */
928#define P59_IVG(x)                                   /* Reserved                         */
929#define P60_IVG(x)                                   /* Reserved                         */
930#define P61_IVG(x)                                   /* Reserved                         */
931#define P62_IVG(x)                                   /* Reserved                         */
932#define P63_IVG(x)                                   /* Reserved                         */
933
934
935/* SIC_IMASK0 Masks*/
936#define SIC_UNMASK0_ALL 0x00000000        /* Unmask all peripheral interrupts */
937#define SIC_MASK0_ALL   0xFFFFF3FF        /* Mask all peripheral interrupts   */
938#ifdef _MISRA_RULES
939#define SIC_MASK0(x) ((int32_t)1 << ((x)&0x1Fu))  /* Mask Peripheral #x interrupt  */
940#define SIC_UNMASK0(x)  (0xFFFFFFFFu ^ ((uint32_t)1 << ((x)&0x1Fu)))  /*Unmask Peripheral #x interrupt*/
941#else
942#define SIC_MASK0(x) (1 << ((x)&0x1F))  /* Mask Peripheral #x interrupt  */
943#define SIC_UNMASK0(x)  (0xFFFFFFFF ^ (1 << ((x)&0x1F)))  /* Unmask Peripheral #x interrupt */
944#endif /* _MISRA_RULES */
945
946/* SIC_IMASK1 Masks*/
947#define SIC_UNMASK1_ALL 0x00000000        /* Unmask all peripheral interrupts */
948#define SIC_MASK1_ALL   0xFFFFFF          /* Mask all peripheral interrupts   */
949#ifdef _MISRA_RULES
950#define SIC_MASK1(x) ((int32_t)1 << ((x)&0x1Fu))  /* Mask Peripheral #x interrupt  */
951#define SIC_UNMASK1(x)  (0xFFFFFFFFu ^ ((uint32_t)1 << ((x)&0x1Fu)))  /*Unmask Peripheral #x interrupt*/
952#else
953#define SIC_MASK1(x) (1 << ((x)&0x1F))  /* Mask Peripheral #x interrupt  */
954#define SIC_UNMASK1(x)  (0xFFFFFFFF ^ (1 << ((x)&0x1F)))  /* Unmask Peripheral #x interrupt */
955#endif /* _MISRA_RULES */
956
957
958/* SIC_IWR0 Masks*/
959#define IWR0_DISABLE_ALL 0x00000000       /* Wakeup Disable all peripherals   */
960#define IWR0_ENABLE_ALL  0xFFFFF3FF       /* Wakeup Enable all peripherals    */
961#ifdef _MISRA_RULES
962#define IWR0_ENABLE(x)   ((int32_t)1 << ((x)&0x1Fu))  /* Wakeup Enable Peripheral #x   */
963#define IWR0_DISABLE(x)  (0xFFFFFFFFu ^ ((uint32_t)1 << ((x)&0x1Fu)))  /*Wakeup Disable Peripheral #x */
964#else
965#define IWR0_ENABLE(x)   (1 << ((x)&0x1F))  /* Wakeup Enable Peripheral #x   */
966#define IWR0_DISABLE(x)  (0xFFFFFFFF ^ (1 << ((x)&0x1F)))  /* Wakeup Disable Peripheral #x  */
967#endif /* _MISRA_RULES */
968
969/* SIC_IWR1 Masks*/
970#define IWR1_DISABLE_ALL 0x00000000       /* Wakeup Disable all peripherals   */
971#define IWR1_ENABLE_ALL  0xFFFFFF         /* Wakeup Enable all peripherals    */
972#ifdef _MISRA_RULES
973#define IWR1_ENABLE(x)   ((int32_t)1 << ((x)&0x1Fu))  /* Wakeup Enable Peripheral #x   */
974#define IWR1_DISABLE(x)  (0xFFFFFFFFu ^ ((uint32_t)1 << ((x)&0x1Fu)))  /* Wakeup Disable Peripheral #x*/
975#else
976#define IWR1_ENABLE(x)   (1 << ((x)&0x1F))  /* Wakeup Enable Peripheral #x   */
977#define IWR1_DISABLE(x)  (0xFFFFFFFF ^ (1 << ((x)&0x1F)))/* Wakeup Disable Peripheral #x  */
978#endif /* _MISRA_RULES */
979
980
981/* ************************************** WATCHDOG TIMER MASKS ****************************************************/
982
983/* Watchdog Timer WDOG_CTL Register Masks */
984#ifdef _MISRA_RULES
985#define WDEV(x)      (((x)<<1) & 0x0006u)       /* event generated on roll over                                                 */
986#else
987#define WDEV(x)                 (((x)<<1) & 0x0006)     /* event generated on roll over                                                 */
988#endif /* _MISRA_RULES */
989
990#define WDEV_RESET                      0x0000  /* generate reset event on roll over                                    */
991#define WDEV_NMI                                0x0002  /* generate NMI event on roll over                                              */
992#define WDEV_GPI                                0x0004  /* generate GP IRQ on roll over                                                 */
993#define WDEV_NONE                       0x0006  /* no event on roll over                                                        */
994#define WDEN                            0x0FF0  /* enable watchdog                                                              */
995#define WDDIS                           0x0AD0  /* disable watchdog                                                             */
996#define WDRO                            0x8000  /* watchdog rolled over latch                                           */
997
998/* depreciated WDOG_CTL Register Masks for legacy code */
999#define ICTL                            WDEV
1000#define ENABLE_RESET                    WDEV_RESET
1001#define WDOG_RESET                      WDEV_RESET
1002#define ENABLE_NMI                      WDEV_NMI
1003#define WDOG_NMI                                WDEV_NMI
1004#define ENABLE_GPI                      WDEV_GPI
1005#define WDOG_GPI                                WDEV_GPI
1006#define DISABLE_EVT                     WDEV_NONE
1007#define WDOG_NONE                       WDEV_NONE
1008
1009#define TMR_EN                          WDEN
1010#define TMR_DIS                                 WDDIS
1011#define TRO                             WDRO
1012#define ICTL_P0                                 0x01
1013#define ICTL_P1                                 0x02
1014#define TRO_P                           0x0F
1015
1016
1017/* **************************************  REAL TIME CLOCK MASKS  *************************************************/
1018
1019/* RTC_STAT and RTC_ALARM Masks*/
1020#define RTC_SEC                         0x0000003F      /* Real-Time Clock Seconds                                                      */
1021#define RTC_MIN                         0x00000FC0      /* Real-Time Clock Minutes                                                      */
1022#define RTC_HR                          0x0001F000      /* Real-Time Clock Hours                                                        */
1023#define RTC_DAY                         0xFFFE0000      /* Real-Time Clock Days                                                         */
1024
1025/* RTC_ALARM Macro z=day y=hr x=min w=sec       */
1026#ifdef _MISRA_RULES
1027#define SET_ALARM(z,y,x,w)              ((((z)&0x7FFFu)<<0x11)|(((y)&0x1Fu)<<0xC)|(((x)&0x3Fu)<<0x6)|((w)&0x3Fu))
1028#else
1029#define SET_ALARM(z,y,x,w)              ((((z)&0x7FFF)<<0x11)|(((y)&0x1F)<<0xC)|(((x)&0x3F)<<0x6)|((w)&0x3F))
1030#endif /* _MISRA_RULES */
1031
1032/* RTC_ICTL and RTC_ISTAT Masks*/
1033#define STOPWATCH                               0x0001  /* Stopwatch Interrupt Enable                                                   */
1034#define ALARM                           0x0002  /* Alarm Interrupt Enable                                                       */
1035#define SECOND                          0x0004  /* Seconds (1 Hz) Interrupt Enable                                              */
1036#define MINUTE                          0x0008  /* Minutes Interrupt Enable                                                     */
1037#define HOUR                            0x0010  /* Hours Interrupt Enable                                                       */
1038#define DAY                                     0x0020  /* 24 Hours (Days) Interrupt Enable                                             */
1039#define DAY_ALARM                               0x0040  /* Day Alarm (Day, Hour, Minute, Second) Interrupt Enable               */
1040#define WRITE_PENDING                   0x4000  /* Write Pending Status                                                         */
1041#define WRITE_COMPLETE                  0x8000  /* Write Complete Interrupt Enable                                              */
1042
1043/* RTC_FAST / RTC_PREN Mask */
1044#define PREN                            0x0001  /* Enable Prescaler, RTC Runs @1 Hz                                             */
1045
1046
1047/* ************************************ UART CONTROLLER MASKS *****************************************************/
1048
1049/* UARTx_LCR Masks*/
1050#ifdef _MISRA_RULES
1051#define WLS(x)          (((x)-5u) & 0x03u)      /* Word Length Select                                                           */
1052#else
1053#define WLS(x)            (((x)-5) & 0x03)      /* Word Length Select                                                           */
1054#endif /* _MISRA_RULES */
1055
1056#define STB                                     0x04            /* Stop Bits                                                                    */
1057#define PEN                                     0x08            /* Parity Enable                                                                        */
1058#define EPS                                     0x10            /* Even Parity Select                                                           */
1059#define STP                                     0x20            /* Stick Parity                                                                 */
1060#define SB                                      0x40            /* Set Break                                                                    */
1061#define DLAB                            0x80            /* Divisor Latch Access                                                         */
1062
1063/* UARTx_MCR Mask       */
1064#define LOOP_ENA                                0x10            /* Loopback Mode Enable                                                         */
1065#define LOOP_ENA_P                      0x04
1066
1067/* UARTx_LSR Masks */
1068#define DR                                      0x01            /* Data Ready                                                                   */
1069#define OE                                      0x02            /* Overrun Error                                                                        */
1070#define PE                                      0x04            /* Parity Error                                                                 */
1071#define FE                                      0x08            /* Framing Error                                                                        */
1072#define BI                                      0x10            /* Break Interrupt                                                              */
1073#define THRE                            0x20            /* THR Empty                                                                    */
1074#define TEMT                            0x40            /* TSR and UART_THR Empty                                                       */
1075
1076/* UARTx_IER Masks*/
1077#define ERBFI                           0x01            /* Enable Receive Buffer Full Interrupt                                 */
1078#define ETBEI                           0x02            /* Enable Transmit Buffer Empty Interrupt                                       */
1079#define ELSI                            0x04            /* Enable RX Status Interrupt                                                   */
1080
1081/* UARTx_IIR Masks*/
1082#define NINT                            0x01            /* Pending Interrupt                                                            */
1083#define STATUS                          0x06            /* Highest Priority Pending Interrupt                                   */
1084
1085/* UARTx_GCTL Masks*/
1086#define UCEN                            0x01            /* Enable UARTx Clocks                                                          */
1087#define IREN                            0x02            /* Enable IrDA Mode                                                             */
1088#define TPOLC                           0x04            /* IrDA TX Polarity Change                                                      */
1089#define RPOLC                           0x08            /* IrDA RX Polarity Change                                                      */
1090#define FPE                                     0x10            /* Force Parity Error On Transmit                                               */
1091#define FFE                                     0x20            /* Force Framing Error On Transmit                                              */
1092
1093/* Bit masks for UART Divisor Latch Registers: UARTx_DLL & UARTx_DLH */
1094#define UARTDLL                         0x00FF  /* Divisor Latch Low Byte                                                       */
1095#define UARTDLH                 0xFF00  /* Divisor Latch High Byte                                                      */
1096
1097
1098/********************************  SERIAL PERIPHERAL INTERFACE (SPI) MASKS  ***************************************/
1099
1100/* SPI_CTL Masks*/
1101#define TIMOD                           0x0003  /* Transfer Initiate Mode                                                       */
1102#define RDBR_CORE                               0x0000  /* RDBR Read Initiates, IRQ When RDBR Full                              */
1103#define TDBR_CORE                               0x0001  /* TDBR Write Initiates, IRQ When TDBR Empty                            */
1104#define RDBR_DMA                                0x0002  /* DMA Read, DMA Until FIFO Empty                                               */
1105#define TDBR_DMA                                0x0003  /* DMA Write, DMA Until FIFO Full                                               */
1106#define SZ                                      0x0004  /* Send Zero (When TDBR Empty, Send Zero/Last*)                         */
1107#define GM                                      0x0008  /* Get More (When RDBR Full, Overwrite/Discard*)                        */
1108#define PSSE                            0x0010  /* Slave-Select Input Enable                                                    */
1109#define EMISO                           0x0020  /* Enable MISO As Output                                                        */
1110#define SIZE                            0x0100  /* Size of Words (16/8* Bits)                                                   */
1111#define LSBF                            0x0200  /* LSB First                                                                    */
1112#define CPHA                            0x0400  /* Clock Phase                                                                  */
1113#define CPOL                            0x0800  /* Clock Polarity                                                                       */
1114#define MSTR                            0x1000  /* Master/Slave*                                                                        */
1115#define WOM                                     0x2000  /* Write Open Drain Master                                                      */
1116#define SPE                                     0x4000  /* SPI Enable                                                                   */
1117
1118/* SPI_FLG Masks*/
1119#define FLS1                            0x0002  /* Enables SPI_FLOUT1 as SPI Slave-Select Output                        */
1120#define FLS2                            0x0004  /* Enables SPI_FLOUT2 as SPI Slave-Select Output                        */
1121#define FLS3                            0x0008  /* Enables SPI_FLOUT3 as SPI Slave-Select Output                        */
1122#define FLS4                            0x0010  /* Enables SPI_FLOUT4 as SPI Slave-Select Output                        */
1123#define FLS5                            0x0020  /* Enables SPI_FLOUT5 as SPI Slave-Select Output                        */
1124#define FLS6                            0x0040  /* Enables SPI_FLOUT6 as SPI Slave-Select Output                        */
1125#define FLS7                            0x0080  /* Enables SPI_FLOUT7 as SPI Slave-Select Output                        */
1126#define FLG1                            0xFDFF  /* Activates SPI_FLOUT1                                                         */
1127#define FLG2                            0xFBFF  /* Activates SPI_FLOUT2                                                         */
1128#define FLG3                            0xF7FF  /* Activates SPI_FLOUT3                                                         */
1129#define FLG4                            0xEFFF  /* Activates SPI_FLOUT4                                                         */
1130#define FLG5                            0xDFFF  /* Activates SPI_FLOUT5                                                         */
1131#define FLG6                            0xBFFF  /* Activates SPI_FLOUT6                                                         */
1132#define FLG7                            0x7FFF  /* Activates SPI_FLOUT7                                                         */
1133
1134/* SPI_STAT Masks*/
1135#define SPIF                            0x0001  /* SPI Finished (Single-Word Transfer Complete)                         */
1136#define MODF                            0x0002  /* Mode Fault Error (Another Device Tried To Become Master)             */
1137#define TXE                                     0x0004  /* Transmission Error (Data Sent With No New Data In TDBR)              */
1138#define TXS                                     0x0008  /* SPI_TDBR Data Buffer Status (Full/Empty*)                            */
1139#define RBSY                            0x0010  /* Receive Error (Data Received With RDBR Full)                         */
1140#define RXS                                     0x0020  /* SPI_RDBR Data Buffer Status (Full/Empty*)                            */
1141#define TXCOL                           0x0040  /* Transmit Collision Error (Corrupt Data May Have Been Sent)   */
1142
1143
1144/***********************************  GENERAL PURPOSE TIMER MASKS  ************************************************/
1145/* TIMER_ENABLE Masks*/
1146#define TIMEN0                          0x0001  /* Enable Timer 0                                                                       */
1147#define TIMEN1                          0x0002  /* Enable Timer 1                                                                       */
1148#define TIMEN2                          0x0004  /* Enable Timer 2                                                                       */
1149#define TIMEN3                          0x0008  /* Enable Timer 3                                                                       */
1150#define TIMEN4                          0x0010  /* Enable Timer 4                                                                       */
1151#define TIMEN5                          0x0020  /* Enable Timer 5                                                                       */
1152#define TIMEN6                          0x0040  /* Enable Timer 6                                                                       */
1153#define TIMEN7                          0x0080  /* Enable Timer 7                                                                       */
1154
1155/* TIMER_DISABLE Masks*/
1156#define TIMDIS0                         TIMEN0  /* Disable Timer 0                                                              */
1157#define TIMDIS1                         TIMEN1  /* Disable Timer 1                                                              */
1158#define TIMDIS2                         TIMEN2  /* Disable Timer 2                                                              */
1159#define TIMDIS3                         TIMEN3  /* Disable Timer 3                                                              */
1160#define TIMDIS4                         TIMEN4  /* Disable Timer 4                                                              */
1161#define TIMDIS5                         TIMEN5  /* Disable Timer 5                                                              */
1162#define TIMDIS6                         TIMEN6  /* Disable Timer 6                                                              */
1163#define TIMDIS7                         TIMEN7  /* Disable Timer 7                                                              */
1164
1165/* TIMER_STATUS Masks*/
1166#define TIMIL0                          0x00000001      /* Timer 0 Interrupt                                                            */
1167#define TIMIL1                          0x00000002      /* Timer 1 Interrupt                                                            */
1168#define TIMIL2                          0x00000004      /* Timer 2 Interrupt                                                            */
1169#define TIMIL3                          0x00000008      /* Timer 3 Interrupt                                                            */
1170#define TOVF_ERR0                               0x00000010      /* Timer 0 Counter Overflow                                                     */
1171#define TOVF_ERR1                               0x00000020      /* Timer 1 Counter Overflow                                                     */
1172#define TOVF_ERR2                               0x00000040      /* Timer 2 Counter Overflow                                                     */
1173#define TOVF_ERR3                               0x00000080      /* Timer 3 Counter Overflow                                                     */
1174#define TRUN0                           0x00001000      /* Timer 0 Slave Enable Status                                          */
1175#define TRUN1                           0x00002000      /* Timer 1 Slave Enable Status                                          */
1176#define TRUN2                           0x00004000      /* Timer 2 Slave Enable Status                                          */
1177#define TRUN3                           0x00008000      /* Timer 3 Slave Enable Status                                          */
1178#define TIMIL4                          0x00010000      /* Timer 4 Interrupt                                                            */
1179#define TIMIL5                          0x00020000      /* Timer 5 Interrupt                                                            */
1180#define TIMIL6                          0x00040000      /* Timer 6 Interrupt                                                            */
1181#define TIMIL7                          0x00080000      /* Timer 7 Interrupt                                                            */
1182#define TOVF_ERR4                               0x00100000      /* Timer 4 Counter Overflow                                                     */
1183#define TOVF_ERR5                               0x00200000      /* Timer 5 Counter Overflow                                                     */
1184#define TOVF_ERR6                               0x00400000      /* Timer 6 Counter Overflow                                                     */
1185#define TOVF_ERR7                               0x00800000      /* Timer 7 Counter Overflow                                                     */
1186#define TRUN4                           0x10000000      /* Timer 4 Slave Enable Status                                          */
1187#define TRUN5                           0x20000000      /* Timer 5 Slave Enable Status                                          */
1188#define TRUN6                           0x40000000      /* Timer 6 Slave Enable Status                                          */
1189#define TRUN7                           0x80000000      /* Timer 7 Slave Enable Status                                          */
1190
1191/* Alternate Deprecated Macros Provided For Backwards Code Compatibility */
1192#define TOVL_ERR0                       TOVF_ERR0
1193#define TOVL_ERR1                               TOVF_ERR1
1194#define TOVL_ERR2                       TOVF_ERR2
1195#define TOVL_ERR3                       TOVF_ERR3
1196#define TOVL_ERR4                       TOVF_ERR4
1197#define TOVL_ERR5                       TOVF_ERR5
1198#define TOVL_ERR6                       TOVF_ERR6
1199#define TOVL_ERR7                       TOVF_ERR7
1200
1201/* TIMERx_CONFIG Masks */
1202#define PWM_OUT                         0x0001  /* Pulse-Width Modulation Output Mode                                   */
1203#define WDTH_CAP                                0x0002  /* Width Capture Input Mode                                                     */
1204#define EXT_CLK                         0x0003  /* External Clock Mode                                                          */
1205#define PULSE_HI                                0x0004  /* Action Pulse (Positive/Negative*)                                    */
1206#define PERIOD_CNT                      0x0008  /* Period Count                                                                 */
1207#define IRQ_ENA                         0x0010  /* Interrupt Request Enable                                                     */
1208#define TIN_SEL                         0x0020  /* Timer Input Select                                                           */
1209#define OUT_DIS                         0x0040  /* Output Pad Disable                                                           */
1210#define CLK_SEL                         0x0080  /* Timer Clock Select                                                           */
1211#define TOGGLE_HI                               0x0100  /* PWM_OUT PULSE_HI Toggle Mode                                         */
1212#define EMU_RUN                         0x0200  /* Emulation Behavior Select                                                    */
1213#define ERR_TYP                         0xC000  /* Error Type                                                                   */
1214
1215
1216/* *************************************   GPIO PORTS F, G, H MASKS  **********************************************/
1217
1218/*  General Purpose IO (0xFFC00700 - 0xFFC007FF)  Masks */
1219/* Port F Masks */
1220#define PF0                                     0x0001
1221#define PF1                                     0x0002
1222#define PF2                                     0x0004
1223#define PF3                                     0x0008
1224#define PF4                                     0x0010
1225#define PF5                                     0x0020
1226#define PF6                                     0x0040
1227#define PF7                                     0x0080
1228#define PF8                                     0x0100
1229#define PF9                                     0x0200
1230#define PF10                            0x0400
1231#define PF11                            0x0800
1232#define PF12                            0x1000
1233#define PF13                            0x2000
1234#define PF14                            0x4000
1235#define PF15                            0x8000
1236
1237/* Port G Masks */
1238#define PG0                                     0x0001
1239#define PG1                                     0x0002
1240#define PG2                                     0x0004
1241#define PG3                                     0x0008
1242#define PG4                                     0x0010
1243#define PG5                                     0x0020
1244#define PG6                                     0x0040
1245#define PG7                                     0x0080
1246#define PG8                                     0x0100
1247#define PG9                                     0x0200
1248#define PG10                            0x0400
1249#define PG11                            0x0800
1250#define PG12                            0x1000
1251#define PG13                            0x2000
1252#define PG14                            0x4000
1253#define PG15                            0x8000
1254
1255/* Port H Masks */
1256#define PH0                                     0x0001
1257#define PH1                                     0x0002
1258#define PH2                                     0x0004
1259#define PH3                                     0x0008
1260#define PH4                                     0x0010
1261#define PH5                                     0x0020
1262#define PH6                                     0x0040
1263#define PH7                                     0x0080
1264#define PH8                                     0x0100
1265
1266/* **************************************  SERIAL PORT MASKS  *****************************************************/
1267/* SPORTx_TCR1 Masks */
1268#define TSPEN                           0x0001  /* Transmit Enable                                                              */
1269#define ITCLK                           0x0002  /* Internal Transmit Clock Select                                               */
1270#define DTYPE_NORM                      0x0004  /* Data Format Normal                                                           */
1271#define DTYPE_ULAW                      0x0008  /* Compand Using u-Law                                                          */
1272#define DTYPE_ALAW                      0x000C  /* Compand Using A-Law                                                          */
1273#define TLSBIT                          0x0010  /* Transmit Bit Order                                                           */
1274#define ITFS                            0x0200  /* Internal Transmit Frame Sync Select                                  */
1275#define TFSR                            0x0400  /* Transmit Frame Sync Required Select                                  */
1276#define DITFS                           0x0800  /* Data-Independent Transmit Frame Sync Select                          */
1277#define LTFS                            0x1000  /* Low Transmit Frame Sync Select                                               */
1278#define LATFS                           0x2000  /* Late Transmit Frame Sync Select                                              */
1279#define TCKFE                           0x4000  /* Clock Falling Edge Select                                                    */
1280
1281/* SPORTx_TCR2 Masks and Macro */
1282#ifdef _MISRA_RULES
1283#define SLEN(x)                         ((x)&0x1Fu)     /* SPORT TX Word Length (2 - 31)                                                */
1284#else
1285#define SLEN(x)                         ((x)&0x1F)      /* SPORT TX Word Length (2 - 31)                                                */
1286#endif /* _MISRA_RULES */
1287
1288#define TXSE                            0x0100  /* TX Secondary Enable                                                          */
1289#define TSFSE                           0x0200  /* Transmit Stereo Frame Sync Enable                                    */
1290#define TRFST                           0x0400  /* Left/Right Order (1 = Right Channel 1st)                             */
1291
1292/* SPORTx_RCR1 Masks */
1293#define RSPEN                           0x0001  /* Receive Enable                                                               */
1294#define IRCLK                           0x0002  /* Internal Receive Clock Select                                                */
1295#define DTYPE_NORM                      0x0004  /* Data Format Normal                                                           */
1296#define DTYPE_ULAW                      0x0008  /* Compand Using u-Law                                                          */
1297#define DTYPE_ALAW                      0x000C  /* Compand Using A-Law                                                          */
1298#define RLSBIT                          0x0010  /* Receive Bit Order                                                            */
1299#define IRFS                            0x0200  /* Internal Receive Frame Sync Select                                   */
1300#define RFSR                            0x0400  /* Receive Frame Sync Required Select                                   */
1301#define LRFS                            0x1000  /* Low Receive Frame Sync Select                                                */
1302#define LARFS                           0x2000  /* Late Receive Frame Sync Select                                               */
1303#define RCKFE                           0x4000  /* Clock Falling Edge Select                                                    */
1304
1305/* SPORTx_RCR2 Masks */
1306#ifdef _MISRA_RULES
1307#define SLEN(x)                         ((x)&0x1Fu)     /* SPORT RX Word Length (2 - 31)                                                */
1308#else
1309#define SLEN(x)                         ((x)&0x1F)      /* SPORT RX Word Length (2 - 31)                                                */
1310#endif /* _MISRA_RULES */
1311
1312#define RXSE                            0x0100  /* RX Secondary Enable                                                          */
1313#define RSFSE                           0x0200  /* RX Stereo Frame Sync Enable                                          */
1314#define RRFST                           0x0400  /* Right-First Data Order                                                       */
1315
1316/* SPORTx_STAT Masks */
1317#define RXNE                            0x0001  /* Receive FIFO Not Empty Status                                                */
1318#define RUVF                            0x0002  /* Sticky Receive Underflow Status                                              */
1319#define ROVF                            0x0004  /* Sticky Receive Overflow Status                                               */
1320#define TXF                                     0x0008  /* Transmit FIFO Full Status                                                    */
1321#define TUVF                            0x0010  /* Sticky Transmit Underflow Status                                             */
1322#define TOVF                            0x0020  /* Sticky Transmit Overflow Status                                              */
1323#define TXHRE                           0x0040  /* Transmit Hold Register Empty                                         */
1324
1325/* SPORTx_MCMC1 Macros */
1326#ifdef _MISRA_RULES
1327#define WOFF(x)         ((x) & 0x3FFu)          /* Multichannel Window Offset Field                                             */
1328/* Only use WSIZE Macro With Logic OR While Setting Lower Order Bits*/
1329#define WSIZE(x)                (((((x)>>0x3)-1u)&0xFu) << 0xC) /* Multichannel Window Size = (x/8)-1                           */
1330#else
1331#define WOFF(x)         ((x) & 0x3FF)           /* Multichannel Window Offset Field                                             */
1332/* Only use WSIZE Macro With Logic OR While Setting Lower Order Bits                                                            */
1333#define WSIZE(x)        (((((x)>>0x3)-1)&0xF) << 0xC)   /* Multichannel Window Size = (x/8)-1                                   */
1334#endif /* _MISRA_RULES */
1335
1336/* SPORTx_MCMC2 Masks */
1337#define REC_BYPASS                      0x0000  /* Bypass Mode (No Clock Recovery)                                              */
1338#define REC_2FROM4                      0x0002  /* Recover 2 MHz Clock from 4 MHz Clock                                 */
1339#define REC_8FROM16                     0x0003  /* Recover 8 MHz Clock from 16 MHz Clock                                        */
1340#define MCDTXPE                         0x0004  /* Multichannel DMA Transmit Packing                                    */
1341#define MCDRXPE                         0x0008  /* Multichannel DMA Receive Packing                                             */
1342#define MCMEN                           0x0010  /* Multichannel Frame Mode Enable                                               */
1343#define FSDR                            0x0080  /* Multichannel Frame Sync to Data Relationship                         */
1344#define MFD_0                           0x0000  /* Multichannel Frame Delay = 0                                         */
1345#define MFD_1                           0x1000  /* Multichannel Frame Delay = 1                                         */
1346#define MFD_2                           0x2000  /* Multichannel Frame Delay = 2                                         */
1347#define MFD_3                           0x3000  /* Multichannel Frame Delay = 3                                         */
1348#define MFD_4                           0x4000  /* Multichannel Frame Delay = 4                                         */
1349#define MFD_5                           0x5000  /* Multichannel Frame Delay = 5                                         */
1350#define MFD_6                           0x6000  /* Multichannel Frame Delay = 6                                         */
1351#define MFD_7                           0x7000  /* Multichannel Frame Delay = 7                                         */
1352#define MFD_8                           0x8000  /* Multichannel Frame Delay = 8                                         */
1353#define MFD_9                           0x9000  /* Multichannel Frame Delay = 9                                         */
1354#define MFD_10                          0xA000  /* Multichannel Frame Delay = 10                                                */
1355#define MFD_11                          0xB000  /* Multichannel Frame Delay = 11                                                */
1356#define MFD_12                          0xC000  /* Multichannel Frame Delay = 12                                                */
1357#define MFD_13                          0xD000  /* Multichannel Frame Delay = 13                                                */
1358#define MFD_14                          0xE000  /* Multichannel Frame Delay = 14                                                */
1359#define MFD_15                          0xF000  /* Multichannel Frame Delay = 15                                                */
1360
1361
1362/***********************************  ASYNCHRONOUS MEMORY CONTROLLER MASKS  ***************************************/
1363
1364/* EBIU_AMGCTL Masks */
1365#define AMCKEN                          0x0001  /* Enable CLKOUT                                                                        */
1366#define AMBEN                           0x000e      /* Async bank enable                                                */
1367#define AMBEN_NONE                      0x0000  /* All Banks Disabled                                                           */
1368#define AMBEN_B0                                0x0002  /* Enable Async Memory Bank 0 only                                              */
1369#define AMBEN_B0_B1                     0x0004  /* Enable Async Memory Banks 0 & 1 only                                 */
1370#define AMBEN_B0_B1_B2                  0x0006  /* Enable Async Memory Banks 0, 1, and 2                                        */
1371#define AMBEN_ALL                               0x0008  /* Enable Async Memory Banks (all) 0, 1, 2, and 3                       */
1372#define CDPRIO                          0x0100  /* DMA has priority over core for for external accesses                 */
1373
1374/* EBIU_AMBCTL0 Masks */
1375#define B0RDYEN                         0x00000001  /* Bank 0 (B0) RDY Enable                                                   */
1376#define B0RDYPOL                                0x00000002  /* B0 RDY Active High                                                               */
1377#define B0TT_1                          0x00000004  /* B0 Transition Time (Read to Write) = 1 cycle                             */
1378#define B0TT_2                          0x00000008  /* B0 Transition Time (Read to Write) = 2 cycles                    */
1379#define B0TT_3                          0x0000000C  /* B0 Transition Time (Read to Write) = 3 cycles                    */
1380#define B0TT_4                          0x00000000  /* B0 Transition Time (Read to Write) = 4 cycles                    */
1381#define B0ST_1                          0x00000010  /* B0 Setup Time (AOE to Read/Write) = 1 cycle                              */
1382#define B0ST_2                          0x00000020  /* B0 Setup Time (AOE to Read/Write) = 2 cycles                             */
1383#define B0ST_3                          0x00000030  /* B0 Setup Time (AOE to Read/Write) = 3 cycles                             */
1384#define B0ST_4                          0x00000000  /* B0 Setup Time (AOE to Read/Write) = 4 cycles                             */
1385#define B0HT_1                          0x00000040  /* B0 Hold Time (~Read/Write to ~AOE) = 1 cycle                             */
1386#define B0HT_2                          0x00000080  /* B0 Hold Time (~Read/Write to ~AOE) = 2 cycles                    */
1387#define B0HT_3                          0x000000C0  /* B0 Hold Time (~Read/Write to ~AOE) = 3 cycles                    */
1388#define B0HT_0                          0x00000000  /* B0 Hold Time (~Read/Write to ~AOE) = 0 cycles                    */
1389#define B0RAT_1                         0x00000100  /* B0 Read Access Time = 1 cycle                                            */
1390#define B0RAT_2                         0x00000200  /* B0 Read Access Time = 2 cycles                                           */
1391#define B0RAT_3                         0x00000300  /* B0 Read Access Time = 3 cycles                                           */
1392#define B0RAT_4                         0x00000400  /* B0 Read Access Time = 4 cycles                                           */
1393#define B0RAT_5                         0x00000500  /* B0 Read Access Time = 5 cycles                                           */
1394#define B0RAT_6                         0x00000600  /* B0 Read Access Time = 6 cycles                                           */
1395#define B0RAT_7                         0x00000700  /* B0 Read Access Time = 7 cycles                                           */
1396#define B0RAT_8                         0x00000800  /* B0 Read Access Time = 8 cycles                                           */
1397#define B0RAT_9                         0x00000900  /* B0 Read Access Time = 9 cycles                                           */
1398#define B0RAT_10                                0x00000A00  /* B0 Read Access Time = 10 cycles                                          */
1399#define B0RAT_11                                0x00000B00  /* B0 Read Access Time = 11 cycles                                          */
1400#define B0RAT_12                                0x00000C00  /* B0 Read Access Time = 12 cycles                                          */
1401#define B0RAT_13                                0x00000D00  /* B0 Read Access Time = 13 cycles                                          */
1402#define B0RAT_14                                0x00000E00  /* B0 Read Access Time = 14 cycles                                          */
1403#define B0RAT_15                                0x00000F00  /* B0 Read Access Time = 15 cycles                                          */
1404#define B0WAT_1                         0x00001000  /* B0 Write Access Time = 1 cycle                                           */
1405#define B0WAT_2                         0x00002000  /* B0 Write Access Time = 2 cycles                                          */
1406#define B0WAT_3                         0x00003000  /* B0 Write Access Time = 3 cycles                                          */
1407#define B0WAT_4                         0x00004000  /* B0 Write Access Time = 4 cycles                                          */
1408#define B0WAT_5                         0x00005000  /* B0 Write Access Time = 5 cycles                                          */
1409#define B0WAT_6                         0x00006000  /* B0 Write Access Time = 6 cycles                                          */
1410#define B0WAT_7                         0x00007000  /* B0 Write Access Time = 7 cycles                                          */
1411#define B0WAT_8                         0x00008000  /* B0 Write Access Time = 8 cycles                                          */
1412#define B0WAT_9                         0x00009000  /* B0 Write Access Time = 9 cycles                                          */
1413#define B0WAT_10                                0x0000A000  /* B0 Write Access Time = 10 cycles                                         */
1414#define B0WAT_11                                0x0000B000  /* B0 Write Access Time = 11 cycles                                         */
1415#define B0WAT_12                                0x0000C000  /* B0 Write Access Time = 12 cycles                                         */
1416#define B0WAT_13                                0x0000D000  /* B0 Write Access Time = 13 cycles                                         */
1417#define B0WAT_14                                0x0000E000  /* B0 Write Access Time = 14 cycles                                         */
1418#define B0WAT_15                                0x0000F000  /* B0 Write Access Time = 15 cycles                                         */
1419
1420#define B1RDYEN                         0x00010000  /* Bank 1 (B1) RDY Enable                                           */
1421#define B1RDYPOL                                0x00020000  /* B1 RDY Active High                                               */
1422#define B1TT_1                          0x00040000  /* B1 Transition Time (Read to Write) = 1 cycle                     */
1423#define B1TT_2                          0x00080000  /* B1 Transition Time (Read to Write) = 2 cycles                    */
1424#define B1TT_3                          0x000C0000  /* B1 Transition Time (Read to Write) = 3 cycles                    */
1425#define B1TT_4                          0x00000000  /* B1 Transition Time (Read to Write) = 4 cycles                    */
1426#define B1ST_1                          0x00100000  /* B1 Setup Time (AOE to Read/Write) = 1 cycle                      */
1427#define B1ST_2                          0x00200000  /* B1 Setup Time (AOE to Read/Write) = 2 cycles                     */
1428#define B1ST_3                          0x00300000  /* B1 Setup Time (AOE to Read/Write) = 3 cycles                     */
1429#define B1ST_4                          0x00000000  /* B1 Setup Time (AOE to Read/Write) = 4 cycles                     */
1430#define B1HT_1                          0x00400000  /* B1 Hold Time (~Read/Write to ~AOE) = 1 cycle                     */
1431#define B1HT_2                          0x00800000  /* B1 Hold Time (~Read/Write to ~AOE) = 2 cycles                    */
1432#define B1HT_3                          0x00C00000  /* B1 Hold Time (~Read/Write to ~AOE) = 3 cycles                    */
1433#define B1HT_0                          0x00000000  /* B1 Hold Time (~Read/Write to ~AOE) = 0 cycles                    */
1434#define B1RAT_1                         0x01000000  /* B1 Read Access Time = 1 cycle                                            */
1435#define B1RAT_2                         0x02000000  /* B1 Read Access Time = 2 cycles                                           */
1436#define B1RAT_3                         0x03000000  /* B1 Read Access Time = 3 cycles                                           */
1437#define B1RAT_4                         0x04000000  /* B1 Read Access Time = 4 cycles                                           */
1438#define B1RAT_5                         0x05000000  /* B1 Read Access Time = 5 cycles                                           */
1439#define B1RAT_6                         0x06000000  /* B1 Read Access Time = 6 cycles                                           */
1440#define B1RAT_7                         0x07000000  /* B1 Read Access Time = 7 cycles                                           */
1441#define B1RAT_8                         0x08000000  /* B1 Read Access Time = 8 cycles                                           */
1442#define B1RAT_9                         0x09000000  /* B1 Read Access Time = 9 cycles                                           */
1443#define B1RAT_10                                0x0A000000  /* B1 Read Access Time = 10 cycles                                          */
1444#define B1RAT_11                                0x0B000000  /* B1 Read Access Time = 11 cycles                                          */
1445#define B1RAT_12                                0x0C000000  /* B1 Read Access Time = 12 cycles                                          */
1446#define B1RAT_13                                0x0D000000  /* B1 Read Access Time = 13 cycles                                          */
1447#define B1RAT_14                                0x0E000000  /* B1 Read Access Time = 14 cycles                                          */
1448#define B1RAT_15                                0x0F000000  /* B1 Read Access Time = 15 cycles                                          */
1449#define B1WAT_1                         0x10000000  /* B1 Write Access Time = 1 cycle                                           */
1450#define B1WAT_2                         0x20000000  /* B1 Write Access Time = 2 cycles                                          */
1451#define B1WAT_3                         0x30000000  /* B1 Write Access Time = 3 cycles                                          */
1452#define B1WAT_4                         0x40000000  /* B1 Write Access Time = 4 cycles                                          */
1453#define B1WAT_5                         0x50000000  /* B1 Write Access Time = 5 cycles                                          */
1454#define B1WAT_6                         0x60000000  /* B1 Write Access Time = 6 cycles                                          */
1455#define B1WAT_7                         0x70000000  /* B1 Write Access Time = 7 cycles                                          */
1456#define B1WAT_8                         0x80000000  /* B1 Write Access Time = 8 cycles                                          */
1457#define B1WAT_9                         0x90000000  /* B1 Write Access Time = 9 cycles                                          */
1458#define B1WAT_10                                0xA0000000  /* B1 Write Access Time = 10 cycles                                         */
1459#define B1WAT_11                                0xB0000000  /* B1 Write Access Time = 11 cycles                                         */
1460#define B1WAT_12                                0xC0000000  /* B1 Write Access Time = 12 cycles                                         */
1461#define B1WAT_13                                0xD0000000  /* B1 Write Access Time = 13 cycles                                         */
1462#define B1WAT_14                                0xE0000000  /* B1 Write Access Time = 14 cycles                                         */
1463#define B1WAT_15                                0xF0000000  /* B1 Write Access Time = 15 cycles                                         */
1464
1465/* EBIU_AMBCTL1 Masks */
1466#define B2RDYEN                         0x00000001  /* Bank 2 (B2) RDY Enable                                                   */
1467#define B2RDYPOL                                0x00000002  /* B2 RDY Active High                                                               */
1468#define B2TT_1                          0x00000004  /* B2 Transition Time (Read to Write) = 1 cycle                             */
1469#define B2TT_2                          0x00000008  /* B2 Transition Time (Read to Write) = 2 cycles                    */
1470#define B2TT_3                          0x0000000C  /* B2 Transition Time (Read to Write) = 3 cycles                    */
1471#define B2TT_4                          0x00000000  /* B2 Transition Time (Read to Write) = 4 cycles                    */
1472#define B2ST_1                          0x00000010  /* B2 Setup Time (AOE to Read/Write) = 1 cycle                              */
1473#define B2ST_2                          0x00000020  /* B2 Setup Time (AOE to Read/Write) = 2 cycles                             */
1474#define B2ST_3                          0x00000030  /* B2 Setup Time (AOE to Read/Write) = 3 cycles                             */
1475#define B2ST_4                          0x00000000  /* B2 Setup Time (AOE to Read/Write) = 4 cycles                             */
1476#define B2HT_1                          0x00000040  /* B2 Hold Time (~Read/Write to ~AOE) = 1 cycle                             */
1477#define B2HT_2                          0x00000080  /* B2 Hold Time (~Read/Write to ~AOE) = 2 cycles                    */
1478#define B2HT_3                          0x000000C0  /* B2 Hold Time (~Read/Write to ~AOE) = 3 cycles                    */
1479#define B2HT_0                          0x00000000  /* B2 Hold Time (~Read/Write to ~AOE) = 0 cycles                    */
1480#define B2RAT_1                         0x00000100  /* B2 Read Access Time = 1 cycle                                            */
1481#define B2RAT_2                         0x00000200  /* B2 Read Access Time = 2 cycles                                           */
1482#define B2RAT_3                         0x00000300  /* B2 Read Access Time = 3 cycles                                           */
1483#define B2RAT_4                         0x00000400  /* B2 Read Access Time = 4 cycles                                           */
1484#define B2RAT_5                         0x00000500  /* B2 Read Access Time = 5 cycles                                           */
1485#define B2RAT_6                         0x00000600  /* B2 Read Access Time = 6 cycles                                           */
1486#define B2RAT_7                         0x00000700  /* B2 Read Access Time = 7 cycles                                           */
1487#define B2RAT_8                         0x00000800  /* B2 Read Access Time = 8 cycles                                           */
1488#define B2RAT_9                         0x00000900  /* B2 Read Access Time = 9 cycles                                           */
1489#define B2RAT_10                                0x00000A00  /* B2 Read Access Time = 10 cycles                                          */
1490#define B2RAT_11                                0x00000B00  /* B2 Read Access Time = 11 cycles                                          */
1491#define B2RAT_12                                0x00000C00  /* B2 Read Access Time = 12 cycles                                          */
1492#define B2RAT_13                                0x00000D00  /* B2 Read Access Time = 13 cycles                                          */
1493#define B2RAT_14                                0x00000E00  /* B2 Read Access Time = 14 cycles                                          */
1494#define B2RAT_15                                0x00000F00  /* B2 Read Access Time = 15 cycles                                          */
1495#define B2WAT_1                         0x00001000  /* B2 Write Access Time = 1 cycle                                           */
1496#define B2WAT_2                         0x00002000  /* B2 Write Access Time = 2 cycles                                          */
1497#define B2WAT_3                         0x00003000  /* B2 Write Access Time = 3 cycles                                          */
1498#define B2WAT_4                         0x00004000  /* B2 Write Access Time = 4 cycles                                          */
1499#define B2WAT_5                         0x00005000  /* B2 Write Access Time = 5 cycles                                          */
1500#define B2WAT_6                         0x00006000  /* B2 Write Access Time = 6 cycles                                          */
1501#define B2WAT_7                         0x00007000  /* B2 Write Access Time = 7 cycles                                          */
1502#define B2WAT_8                         0x00008000  /* B2 Write Access Time = 8 cycles                                          */
1503#define B2WAT_9                         0x00009000  /* B2 Write Access Time = 9 cycles                                          */
1504#define B2WAT_10                                0x0000A000  /* B2 Write Access Time = 10 cycles                                         */
1505#define B2WAT_11                                0x0000B000  /* B2 Write Access Time = 11 cycles                                         */
1506#define B2WAT_12                                0x0000C000  /* B2 Write Access Time = 12 cycles                                         */
1507#define B2WAT_13                                0x0000D000  /* B2 Write Access Time = 13 cycles                                         */
1508#define B2WAT_14                                0x0000E000  /* B2 Write Access Time = 14 cycles                                         */
1509#define B2WAT_15                                0x0000F000  /* B2 Write Access Time = 15 cycles                                         */
1510
1511#define B3RDYEN                         0x00010000  /* Bank 3 (B3) RDY Enable                                                   */
1512#define B3RDYPOL                                0x00020000  /* B3 RDY Active High                                                               */
1513#define B3TT_1                          0x00040000  /* B3 Transition Time (Read to Write) = 1 cycle                             */
1514#define B3TT_2                          0x00080000  /* B3 Transition Time (Read to Write) = 2 cycles                    */
1515#define B3TT_3                          0x000C0000  /* B3 Transition Time (Read to Write) = 3 cycles                    */
1516#define B3TT_4                          0x00000000  /* B3 Transition Time (Read to Write) = 4 cycles                    */
1517#define B3ST_1                          0x00100000  /* B3 Setup Time (AOE to Read/Write) = 1 cycle                              */
1518#define B3ST_2                          0x00200000  /* B3 Setup Time (AOE to Read/Write) = 2 cycles                             */
1519#define B3ST_3                          0x00300000  /* B3 Setup Time (AOE to Read/Write) = 3 cycles                             */
1520#define B3ST_4                          0x00000000  /* B3 Setup Time (AOE to Read/Write) = 4 cycles                             */
1521#define B3HT_1                          0x00400000  /* B3 Hold Time (~Read/Write to ~AOE) = 1 cycle                             */
1522#define B3HT_2                          0x00800000  /* B3 Hold Time (~Read/Write to ~AOE) = 2 cycles                    */
1523#define B3HT_3                          0x00C00000  /* B3 Hold Time (~Read/Write to ~AOE) = 3 cycles                    */
1524#define B3HT_0                          0x00000000  /* B3 Hold Time (~Read/Write to ~AOE) = 0 cycles                    */
1525#define B3RAT_1                         0x01000000  /* B3 Read Access Time = 1 cycle                                            */
1526#define B3RAT_2                         0x02000000  /* B3 Read Access Time = 2 cycles                                           */
1527#define B3RAT_3                         0x03000000  /* B3 Read Access Time = 3 cycles                                           */
1528#define B3RAT_4                         0x04000000  /* B3 Read Access Time = 4 cycles                                           */
1529#define B3RAT_5                         0x05000000  /* B3 Read Access Time = 5 cycles                                           */
1530#define B3RAT_6                         0x06000000  /* B3 Read Access Time = 6 cycles                                           */
1531#define B3RAT_7                         0x07000000  /* B3 Read Access Time = 7 cycles                                           */
1532#define B3RAT_8                         0x08000000  /* B3 Read Access Time = 8 cycles                                           */
1533#define B3RAT_9                         0x09000000  /* B3 Read Access Time = 9 cycles                                           */
1534#define B3RAT_10                                0x0A000000  /* B3 Read Access Time = 10 cycles                                          */
1535#define B3RAT_11                                0x0B000000  /* B3 Read Access Time = 11 cycles                                          */
1536#define B3RAT_12                                0x0C000000  /* B3 Read Access Time = 12 cycles                                          */
1537#define B3RAT_13                                0x0D000000  /* B3 Read Access Time = 13 cycles                                          */
1538#define B3RAT_14                                0x0E000000  /* B3 Read Access Time = 14 cycles                                          */
1539#define B3RAT_15                                0x0F000000  /* B3 Read Access Time = 15 cycles                                          */
1540#define B3WAT_1                         0x10000000  /* B3 Write Access Time = 1 cycle                                           */
1541#define B3WAT_2                         0x20000000  /* B3 Write Access Time = 2 cycles                                          */
1542#define B3WAT_3                         0x30000000  /* B3 Write Access Time = 3 cycles                                          */
1543#define B3WAT_4                         0x40000000  /* B3 Write Access Time = 4 cycles                                          */
1544#define B3WAT_5                         0x50000000  /* B3 Write Access Time = 5 cycles                                          */
1545#define B3WAT_6                         0x60000000  /* B3 Write Access Time = 6 cycles                                          */
1546#define B3WAT_7                         0x70000000  /* B3 Write Access Time = 7 cycles                                          */
1547#define B3WAT_8                         0x80000000  /* B3 Write Access Time = 8 cycles                                          */
1548#define B3WAT_9                         0x90000000  /* B3 Write Access Time = 9 cycles                                          */
1549#define B3WAT_10                                0xA0000000  /* B3 Write Access Time = 10 cycles                                         */
1550#define B3WAT_11                                0xB0000000  /* B3 Write Access Time = 11 cycles                                         */
1551#define B3WAT_12                                0xC0000000  /* B3 Write Access Time = 12 cycles                                         */
1552#define B3WAT_13                                0xD0000000  /* B3 Write Access Time = 13 cycles                                         */
1553#define B3WAT_14                                0xE0000000  /* B3 Write Access Time = 14 cycles                                         */
1554#define B3WAT_15                                0xF0000000  /* B3 Write Access Time = 15 cycles                                         */
1555
1556
1557/*****************************************  SDRAM CONTROLLER MASKS  ***********************************************/
1558
1559/* EBIU_SDGCTL Masks */
1560#define CL                                      0x0000000C      /* SDRAM CAS latency                                                            */
1561#define PASR                            0x00000030      /* SDRAM partial array self-refresh                                     */
1562#define TRAS                            0x000003C0      /* SDRAM tRAS in SCLK cycles                                                    */
1563#define TRP                             0x00003800      /* SDRAM tRP in SCLK cycles                                                     */
1564#define TRCD                            0x00030000      /* SDRAM tRCD in SCLK cycles                                                    */
1565#define TWR                             0x00180000      /* SDRAM tWR in SCLK cycles                                                     */
1566
1567#define SCTLE                           0x00000001      /* Enable SDRAM Signals                                                         */
1568#define CL_2                            0x00000008      /* SDRAM CAS Latency = 2 cycles                                         */
1569#define CL_3                            0x0000000C      /* SDRAM CAS Latency = 3 cycles                                         */
1570#define PASR_ALL                                0x00000000      /* All 4 SDRAM Banks Refreshed In Self-Refresh                          */
1571#define PASR_B0_B1                      0x00000010      /* SDRAM Banks 0 and 1 Are Refreshed In Self-Refresh                    */
1572#define PASR_B0                         0x00000020      /* Only SDRAM Bank 0 Is Refreshed In Self-Refresh                       */
1573#define TRAS_1                          0x00000040      /* SDRAM tRAS = 1 cycle                                                         */
1574#define TRAS_2                          0x00000080      /* SDRAM tRAS = 2 cycles                                                        */
1575#define TRAS_3                          0x000000C0      /* SDRAM tRAS = 3 cycles                                                        */
1576#define TRAS_4                          0x00000100      /* SDRAM tRAS = 4 cycles                                                        */
1577#define TRAS_5                          0x00000140      /* SDRAM tRAS = 5 cycles                                                        */
1578#define TRAS_6                          0x00000180      /* SDRAM tRAS = 6 cycles                                                        */
1579#define TRAS_7                          0x000001C0      /* SDRAM tRAS = 7 cycles                                                        */
1580#define TRAS_8                          0x00000200      /* SDRAM tRAS = 8 cycles                                                        */
1581#define TRAS_9                          0x00000240      /* SDRAM tRAS = 9 cycles                                                        */
1582#define TRAS_10                         0x00000280      /* SDRAM tRAS = 10 cycles                                                       */
1583#define TRAS_11                         0x000002C0      /* SDRAM tRAS = 11 cycles                                                       */
1584#define TRAS_12                         0x00000300      /* SDRAM tRAS = 12 cycles                                                       */
1585#define TRAS_13                         0x00000340      /* SDRAM tRAS = 13 cycles                                                       */
1586#define TRAS_14                         0x00000380      /* SDRAM tRAS = 14 cycles                                                       */
1587#define TRAS_15                         0x000003C0      /* SDRAM tRAS = 15 cycles                                                       */
1588#define TRP_1                           0x00000800      /* SDRAM tRP = 1 cycle                                                          */
1589#define TRP_2                           0x00001000      /* SDRAM tRP = 2 cycles                                                         */
1590#define TRP_3                           0x00001800      /* SDRAM tRP = 3 cycles                                                         */
1591#define TRP_4                           0x00002000      /* SDRAM tRP = 4 cycles                                                         */
1592#define TRP_5                           0x00002800      /* SDRAM tRP = 5 cycles                                                         */
1593#define TRP_6                           0x00003000      /* SDRAM tRP = 6 cycles                                                         */
1594#define TRP_7                           0x00003800      /* SDRAM tRP = 7 cycles                                                         */
1595#define TRCD_1                          0x00008000      /* SDRAM tRCD = 1 cycle                                                         */
1596#define TRCD_2                          0x00010000      /* SDRAM tRCD = 2 cycles                                                        */
1597#define TRCD_3                          0x00018000      /* SDRAM tRCD = 3 cycles                                                        */
1598#define TRCD_4                          0x00020000      /* SDRAM tRCD = 4 cycles                                                        */
1599#define TRCD_5                          0x00028000      /* SDRAM tRCD = 5 cycles                                                        */
1600#define TRCD_6                          0x00030000      /* SDRAM tRCD = 6 cycles                                                        */
1601#define TRCD_7                          0x00038000      /* SDRAM tRCD = 7 cycles                                                        */
1602#define TWR_1                           0x00080000      /* SDRAM tWR = 1 cycle                                                          */
1603#define TWR_2                           0x00100000      /* SDRAM tWR = 2 cycles                                                         */
1604#define TWR_3                           0x00180000      /* SDRAM tWR = 3 cycles                                                         */
1605#define PUPSD                           0x00200000      /* Power-Up Start Delay (15 SCLK Cycles Delay)                          */
1606#define PSM                                     0x00400000      /* Power-Up Sequence (Mode Register Before/After* Refresh)              */
1607#define PSS                                     0x00800000      /* Enable Power-Up Sequence on Next SDRAM Access                        */
1608#define SRFS                            0x01000000      /* Enable SDRAM Self-Refresh Mode                                               */
1609#define EBUFE                           0x02000000      /* Enable External Buffering Timing                                             */
1610#define FBBRW                           0x04000000      /* Enable Fast Back-To-Back Read To Write                                       */
1611#define EMREN                           0x10000000      /* Extended Mode Register Enable                                                */
1612#define TCSR                            0x20000000      /* Temp-Compensated Self-Refresh Value (85/45* Deg C)                   */
1613#define CDDBG                           0x40000000      /* Tristate SDRAM Controls During Bus Grant                             */
1614
1615/* EBIU_SDBCTL Masks */
1616#define EBE                                     0x0001  /* Enable SDRAM External Bank                                                   */
1617#define EBSZ_16                         0x0000  /* SDRAM External Bank Size = 16MB                                              */
1618#define EBSZ_32                         0x0002  /* SDRAM External Bank Size = 32MB                                              */
1619#define EBSZ_64                         0x0004  /* SDRAM External Bank Size = 64MB                                              */
1620#define EBSZ_128                                0x0006  /* SDRAM External Bank Size = 128MB                                             */
1621#define EBCAW_8                         0x0000  /* SDRAM External Bank Column Address Width = 8 Bits                    */
1622#define EBCAW_9                         0x0010  /* SDRAM External Bank Column Address Width = 9 Bits                    */
1623#define EBCAW_10                                0x0020  /* SDRAM External Bank Column Address Width = 10 Bits                   */
1624#define EBCAW_11                                0x0030  /* SDRAM External Bank Column Address Width = 11 Bits                   */
1625
1626#define EBSZ                            0x0006  /* SDRAM external bank size                                                     */
1627#define EBCAW                           0x0030  /* SDRAM external bank column address width                             */
1628
1629/* EBIU_SDSTAT Masks */
1630#define SDCI                            0x0001  /* SDRAM Controller Idle                                                        */
1631#define SDSRA                           0x0002  /* SDRAM Self-Refresh Active                                                    */
1632#define SDPUA                           0x0004  /* SDRAM Power-Up Active                                                        */
1633#define SDRS                            0x0008  /* SDRAM Will Power-Up On Next Access                                   */
1634#define SDEASE                          0x0010  /* SDRAM EAB Sticky Error Status                                                */
1635#define BGSTAT                          0x0020  /* Bus Grant Status                                                             */
1636
1637
1638/****************************************  DMA CONTROLLER MASKS  **************************************************/
1639
1640/* DMAx_CONFIG, MDMA_yy_CONFIG Masks */
1641#define DMAEN                           0x0001  /* DMA Channel Enable                                                           */
1642#define WNR                                     0x0002  /* Channel Direction (W/R*)                                                     */
1643#define WDSIZE_8                                0x0000  /* Transfer Word Size = 8                                                       */
1644#define WDSIZE_16                               0x0004  /* Transfer Word Size = 16                                                      */
1645#define WDSIZE_32                               0x0008  /* Transfer Word Size = 32                                                      */
1646#define DMA2D                           0x0010  /* DMA Mode (2D/1D*)                                                            */
1647#define SYNC                            0x0020  /* DMA Buffer Clear                                                             */
1648#define DI_SEL                          0x0040  /* Data Interrupt Timing Select                                         */
1649#define DI_EN                           0x0080  /* Data Interrupt Enable                                                        */
1650#define NDSIZE_0                                0x0000  /* Next Descriptor Size = 0 (Stop/Autobuffer)                           */
1651#define NDSIZE_1                                0x0100  /* Next Descriptor Size = 1                                                     */
1652#define NDSIZE_2                                0x0200  /* Next Descriptor Size = 2                                                     */
1653#define NDSIZE_3                                0x0300  /* Next Descriptor Size = 3                                                     */
1654#define NDSIZE_4                                0x0400  /* Next Descriptor Size = 4                                                     */
1655#define NDSIZE_5                                0x0500  /* Next Descriptor Size = 5                                                     */
1656#define NDSIZE_6                                0x0600  /* Next Descriptor Size = 6                                                     */
1657#define NDSIZE_7                                0x0700  /* Next Descriptor Size = 7                                                     */
1658#define NDSIZE_8                                0x0800  /* Next Descriptor Size = 8                                                     */
1659#define NDSIZE_9                                0x0900  /* Next Descriptor Size = 9                                                     */
1660#define FLOW_STOP                               0x0000  /* Stop Mode                                                                    */
1661#define FLOW_AUTO                               0x1000  /* Autobuffer Mode                                                              */
1662#define FLOW_ARRAY                      0x4000  /* Descriptor Array Mode                                                        */
1663#define FLOW_SMALL                      0x6000  /* Small Model Descriptor List Mode                                             */
1664#define FLOW_LARGE                      0x7000  /* Large Model Descriptor List Mode                                             */
1665
1666/* DMAx_PERIPHERAL_MAP, MDMA_yy_PERIPHERAL_MAP Masks */
1667#define CTYPE                           0x0040  /* DMA Channel Type Indicator (Memory/Peripheral*)                      */
1668#define PMAP                            0xF000  /* Peripheral Mapped To This Channel                                    */
1669#define PMAP_PPI                                0x0000  /* PPI Port DMA                                                                 */
1670#define PMAP_EMACRX                     0x1000  /* Ethernet Receive DMA                                                         */
1671#define PMAP_EMACTX                     0x2000  /* Ethernet Transmit DMA                                                        */
1672#define PMAP_SPORT0RX                   0x3000  /* SPORT0 Receive DMA                                                           */
1673#define PMAP_SPORT0TX                   0x4000  /* SPORT0 Transmit DMA                                                          */
1674#define PMAP_RSI                                0x4000  /* RSI DMA                                                                              */
1675#define PMAP_SPORT1RX                   0x5000  /* SPORT1 Receive DMA                                                           */
1676#define PMAP_SPI1                               0x5000  /* SPI1 Transmit/Receive DMA                                                    */
1677#define PMAP_SPORT1TX                   0x6000  /* SPORT1 Transmit DMA                                                          */
1678#define PMAP_SPI                                0x7000  /* SPI DMA                                                                              */
1679#define PMAP_SPI0                               0x7000  /* SPI0 DMA                                                                             */
1680#define PMAP_UART0RX                    0x8000  /* UART0 Port Receive DMA                                                       */
1681#define PMAP_UART0TX                    0x9000  /* UART0 Port Transmit DMA                                                      */
1682#define PMAP_UART1RX                    0xA000  /* UART1 Port Receive DMA                                                       */
1683#define PMAP_UART1TX                    0xB000  /* UART1 Port Transmit DMA                                                      */
1684
1685/* DMAx_IRQ_STATUS, MDMA_yy_IRQ_STATUS Masks */
1686#define DMA_DONE                                0x0001  /* DMA Completion Interrupt Status                                              */
1687#define DMA_ERR                         0x0002  /* DMA Error Interrupt Status                                                   */
1688#define DFETCH                          0x0004  /* DMA Descriptor Fetch Indicator                                               */
1689#define DMA_RUN                         0x0008  /* DMA Channel Running Indicator                                                */
1690
1691
1692/*********************************  PARALLEL PERIPHERAL INTERFACE (PPI) MASKS *************************************/
1693
1694/*  PPI_CONTROL Masks */
1695#define PORT_EN                         0x0001  /* PPI Port Enable                                                              */
1696#define PORT_DIR                                0x0002  /* PPI Port Direction                                                           */
1697#define XFR_TYPE                                0x000C  /* PPI Transfer Type                                                            */
1698#define PORT_CFG                                0x0030  /* PPI Port Configuration                                                       */
1699#define FLD_SEL                         0x0040  /* PPI Active Field Select                                                      */
1700#define PACK_EN                         0x0080  /* PPI Packing Mode                                                             */ /* previous versions of defBF532.h erroneously included DMA32 (PPI 32-bit DMA Enable) */
1701#define SKIP_EN                         0x0200  /* PPI Skip Element Enable                                                      */
1702#define SKIP_EO                         0x0400  /* PPI Skip Even/Odd Elements                                                   */
1703#define DLEN_8                          0x0000  /* Data Length = 8 Bits                                                         */
1704#define DLEN_10                         0x0800  /* Data Length = 10 Bits                                                        */
1705#define DLEN_11                         0x1000  /* Data Length = 11 Bits                                                        */
1706#define DLEN_12                         0x1800  /* Data Length = 12 Bits                                                        */
1707#define DLEN_13                         0x2000  /* Data Length = 13 Bits                                                        */
1708#define DLEN_14                         0x2800  /* Data Length = 14 Bits                                                        */
1709#define DLEN_15                         0x3000  /* Data Length = 15 Bits                                                        */
1710#define DLEN_16                         0x3800  /* Data Length = 16 Bits                                                        */
1711#define POLC                            0x4000  /* PPI Clock Polarity                                                           */
1712#define POLS                            0x8000  /* PPI Frame Sync Polarity                                                      */
1713
1714/* PPI_STATUS Masks */
1715#define LT_ERR_OVR                      0x0100  /* Line Track Overflow Error                                                    */
1716#define LT_ERR_UNDR                     0x0200  /* Line Track Underflow Error                                                   */
1717#define FLD                                     0x0400  /* Field Indicator                                                              */
1718#define FT_ERR                          0x0800  /* Frame Track Error                                                            */
1719#define OVR                                     0x1000  /* FIFO Overflow Error                                                          */
1720#define UNDR                            0x2000  /* FIFO Underrun Error                                                          */
1721#define ERR_DET                         0x4000  /* Error Detected Indicator                                                     */
1722#define ERR_NCOR                                0x8000  /* Error Not Corrected Indicator                                                */
1723
1724
1725/***************************************  TWO-WIRE INTERFACE (TWI) MASKS  *****************************************/
1726
1727/* TWI_CLKDIV Macros (Use: *pTWI_CLKDIV = CLKLOW(x)|CLKHI(y);  ) */
1728#ifdef _MISRA_RULES
1729#define CLKLOW(x)                               ((x) & 0xFFu)/* Periods Clock Is Held Low                                                       */
1730#define CLKHI(y)                                (((y)&0xFFu)<<0x8)/* Periods Before New Clock Low                                       */
1731#else
1732#define CLKLOW(x)                               ((x) & 0xFF)/* Periods Clock Is Held Low                                                        */
1733#define CLKHI(y)                                (((y)&0xFF)<<0x8)       /* Periods Before New Clock Low                                 */
1734#endif /* _MISRA_RULES */
1735
1736/* TWI_PRESCALE Masks */
1737#define PRESCALE                                0x007F  /* SCLKs Per Internal Time Reference (10MHz)                            */
1738#define TWI_ENA                         0x0080  /* TWI Enable                                                                   */
1739#define SCCB                            0x0200  /* SCCB Compatibility Enable                                                    */
1740
1741/* TWI_SLAVE_CTRL Masks */
1742#define SEN                                     0x0001  /* Slave Enable                                                                 */
1743#define SADD_LEN                                0x0002  /* Slave Address Length                                                         */
1744#define STDVAL                          0x0004  /* Slave Transmit Data Valid                                                    */
1745#define NAK                                     0x0008  /* NAK/ACK* Generated At Conclusion Of Transfer                         */
1746#define GEN                                     0x0010  /* General Call Adrress Matching Enabled                                        */
1747
1748/* TWI_SLAVE_STAT Masks */
1749#define SDIR                            0x0001  /* Slave Transfer Direction (Transmit/Receive*)                         */
1750#define GCALL                           0x0002  /* General Call Indicator                                                       */
1751
1752/* TWI_MASTER_CTRL Masks */
1753#define MEN                                     0x0001  /* Master Mode Enable                                                           */
1754#define MADD_LEN                                0x0002  /* Master Address Length                                                        */
1755#define MDIR                            0x0004  /* Master Transmit Direction (RX/TX*)                                   */
1756#define FAST                            0x0008  /* Use Fast Mode Timing Specs                                                   */
1757#define STOP                            0x0010  /* Issue Stop Condition                                                         */
1758#define RSTART                          0x0020  /* Repeat Start or Stop* At End Of Transfer                             */
1759#define DCNT                            0x3FC0  /* Data Bytes To Transfer                                                       */
1760#define SDAOVR                          0x4000  /* Serial Data Override                                                         */
1761#define SCLOVR                          0x8000  /* Serial Clock Override                                                        */
1762
1763/* TWI_MASTER_STAT Masks */
1764#define MPROG                           0x0001  /* Master Transfer In Progress                                          */
1765#define LOSTARB                         0x0002  /* Lost Arbitration Indicator (Xfer Aborted)                            */
1766#define ANAK                            0x0004  /* Address Not Acknowledged                                                     */
1767#define DNAK                            0x0008  /* Data Not Acknowledged                                                        */
1768#define BUFRDERR                                0x0010  /* Buffer Read Error                                                            */
1769#define BUFWRERR                                0x0020  /* Buffer Write Error                                                           */
1770#define SDASEN                          0x0040  /* Serial Data Sense                                                            */
1771#define SCLSEN                          0x0080  /* Serial Clock Sense                                                           */
1772#define BUSBUSY                         0x0100  /* Bus Busy Indicator                                                           */
1773
1774/* TWI_INT_SRC and TWI_INT_ENABLE Masks */
1775#define SINIT                           0x0001  /* Slave Transfer Initiated                                                     */
1776#define SCOMP                           0x0002  /* Slave Transfer Complete                                                      */
1777#define SERR                            0x0004  /* Slave Transfer Error                                                         */
1778#define SOVF                            0x0008  /* Slave Overflow                                                                       */
1779#define MCOMP                           0x0010  /* Master Transfer Complete                                                     */
1780#define MERR                            0x0020  /* Master Transfer Error                                                        */
1781#define XMTSERV                         0x0040  /* Transmit FIFO Service                                                        */
1782#define RCVSERV                         0x0080  /* Receive FIFO Service                                                         */
1783
1784/* TWI_FIFO_CTRL Masks */
1785#define XMTFLUSH                                0x0001  /* Transmit Buffer Flush                                                        */
1786#define RCVFLUSH                                0x0002  /* Receive Buffer Flush                                                         */
1787#define XMTINTLEN                               0x0004  /* Transmit Buffer Interrupt Length                                             */
1788#define RCVINTLEN                               0x0008  /* Receive Buffer Interrupt Length                                              */
1789
1790/* TWI_FIFO_STAT Masks */
1791#define XMTSTAT                         0x0003  /* Transmit FIFO Status                                                         */
1792#define XMT_EMPTY                               0x0000  /* Transmit FIFO Empty                                                          */
1793#define XMT_HALF                                0x0001  /* Transmit FIFO Has 1 Byte To Write                                    */
1794#define XMT_FULL                                0x0003  /* Transmit FIFO Full (2 Bytes To Write)                                        */
1795
1796#define RCVSTAT                         0x000C  /* Receive FIFO Status                                                          */
1797#define RCV_EMPTY                               0x0000  /* Receive FIFO Empty                                                           */
1798#define RCV_HALF                                0x0004  /* Receive FIFO Has 1 Byte To Read                                              */
1799#define RCV_FULL                                0x000C  /* Receive FIFO Full (2 Bytes To Read)                                  */
1800
1801
1802/*************************************  PIN CONTROL REGISTER MASKS  ***********************************************/
1803
1804/* PORT_MUX deleted in VisualDSP++ 5.0 Update 3 */
1805
1806
1807/***********************************  HANDSHAKE DMA (HMDMA) MASKS  ************************************************/
1808
1809/* HMDMAx_CTL Masks */
1810#define HMDMAEN                         0x0001  /* Enable Handshake DMA 0/1                                                     */
1811#define REP                                     0x0002  /* HMDMA Request Polarity                                                       */
1812#define UTE                                     0x0004  /* Urgency Threshold Enable                                                     */
1813#define OIE                                     0x0010  /* Overflow Interrupt Enable                                                    */
1814#define BDIE                            0x0020  /* Block Done Interrupt Enable                                          */
1815#define MBDI                            0x0040  /* Mask Block Done IRQ If Pending ECNT                                  */
1816#define DRQ                                     0x0300  /* HMDMA Request Type                                                           */
1817#define DRQ_NONE                                0x0000  /* No Request                                                                   */
1818#define DRQ_SINGLE                      0x0100  /* Channels Request Single                                                      */
1819#define DRQ_MULTI                               0x0200  /* Channels Request Multi (Default)                                             */
1820#define DRQ_URGENT                      0x0300  /* Channels Request Multi Urgent                                                */
1821#define RBC                                     0x1000  /* Reload BCNT With IBCNT                                                       */
1822#define PS                                      0x2000  /* HMDMA Pin Status                                                             */
1823#define OI                                      0x4000  /* Overflow Interrupt Generated                                         */
1824#define BDI                                     0x8000  /* Block Done Interrupt Generated                                               */
1825
1826/* entry addresses of the user-callable Boot ROM functions */
1827#define _BOOTROM_RESET                          0xEF000000
1828#define _BOOTROM_FINAL_INIT                     0xEF000002
1829#define _BOOTROM_DO_MEMORY_DMA          0xEF000006
1830#define _BOOTROM_BOOT_DXE_FLASH                 0xEF000008
1831#define _BOOTROM_BOOT_DXE_SPI           0xEF00000A
1832#define _BOOTROM_BOOT_DXE_TWI           0xEF00000C
1833#define _BOOTROM_GET_DXE_ADDRESS_FLASH  0xEF000010
1834#define _BOOTROM_GET_DXE_ADDRESS_SPI    0xEF000012
1835#define _BOOTROM_GET_DXE_ADDRESS_TWI    0xEF000014
1836
1837/* Alternate Deprecated Macros Provided For Backwards Code Compatibility */
1838#define CKELOW                                  SCKELOW
1839
1840
1841/****************************************   COUNTER MASKS    ******************************************************/
1842
1843/* Bit masks for CNT_CONFIG */
1844#define CNTE                            0x1        /* Counter Enable                                                                    */
1845#define nCNTE                           0x0
1846#define DEBE                            0x2        /* Debounce Enable                                                           */
1847#define nDEBE                           0x0
1848#define CDGINV                                  0x10       /* CDG Pin Polarity Invert                                                   */
1849#define nCDGINV                                 0x0
1850#define CUDINV                                  0x20       /* CUD Pin Polarity Invert                                                   */
1851#define nCUDINV                                 0x0
1852#define CZMINV                                  0x40       /* CZM Pin Polarity Invert                                                   */
1853#define nCZMINV                                 0x0
1854#define CNTMODE                                 0x700      /* Counter Operating Mode                                                    */
1855#define ZMZC                            0x800      /* CZM Zeroes Counter Enable                                                         */
1856#define nZMZC                           0x0
1857#define BNDMODE                                 0x3000     /* Boundary register Mode                                                    */
1858#define INPDIS                                  0x8000     /* CUG and CDG Input Disable                                                         */
1859#define nINPDIS                                 0x0
1860
1861/* Bit masks for CNT_IMASK */
1862#define ICIE                            0x1        /* Illegal Gray/Binary Code Interrupt Enable                                 */
1863#define nICIE                           0x0
1864#define UCIE                            0x2        /* Up count Interrupt Enable                                                         */
1865#define nUCIE                           0x0
1866#define DCIE                            0x4        /* Down count Interrupt Enable                                               */
1867#define nDCIE                           0x0
1868#define MINCIE                                  0x8        /* Min Count Interrupt Enable                                                        */
1869#define nMINCIE                                 0x0
1870#define MAXCIE                                  0x10       /* Max Count Interrupt Enable                                                        */
1871#define nMAXCIE                                 0x0
1872#define COV31IE                                 0x20       /* Bit 31 Overflow Interrupt Enable                                          */
1873#define nCOV31IE                        0x0
1874#define COV15IE                                 0x40       /* Bit 15 Overflow Interrupt Enable                                          */
1875#define nCOV15IE                        0x0
1876#define CZEROIE                                 0x80       /* Count to Zero Interrupt Enable                                            */
1877#define nCZEROIE                        0x0
1878#define CZMIE                           0x100      /* CZM Pin Interrupt Enable                                                  */
1879#define nCZMIE                          0x0
1880#define CZMEIE                                  0x200      /* CZM Error Interrupt Enable                                                        */
1881#define nCZMEIE                                 0x0
1882#define CZMZIE                                  0x400      /* CZM Zeroes Counter Interrupt Enable                                       */
1883#define nCZMZIE                                 0x0
1884
1885/* Bit masks for CNT_STATUS */
1886#define ICII                            0x1        /* Illegal Gray/Binary Code Interrupt Identifier                     */
1887#define nICII                           0x0
1888#define UCII                            0x2        /* Up count Interrupt Identifier                                             */
1889#define nUCII                           0x0
1890#define DCII                            0x4        /* Down count Interrupt Identifier                                           */
1891#define nDCII                           0x0
1892#define MINCII                                  0x8        /* Min Count Interrupt Identifier                                            */
1893#define nMINCII                                 0x0
1894#define MAXCII                                  0x10       /* Max Count Interrupt Identifier                                            */
1895#define nMAXCII                                 0x0
1896#define COV31II                                 0x20       /* Bit 31 Overflow Interrupt Identifier                                      */
1897#define nCOV31II                        0x0
1898#define COV15II                                 0x40       /* Bit 15 Overflow Interrupt Identifier                                      */
1899#define nCOV15II                        0x0
1900#define CZEROII                                 0x80       /* Count to Zero Interrupt Identifier                                        */
1901#define nCZEROII                        0x0
1902#define CZMII                           0x100      /* CZM Pin Interrupt Identifier                                              */
1903#define nCZMII                                  0x0
1904#define CZMEII                                  0x200      /* CZM Error Interrupt Identifier                                            */
1905#define nCZMEII                                 0x0
1906#define CZMZII                                  0x400      /* CZM Zeroes Counter Interrupt Identifier                           */
1907#define nCZMZII                                 0x0
1908
1909/* Bit masks for CNT_COMMAND */
1910#define W1LCNT                                  0xf        /* Load Counter Register                                                     */
1911#define W1LMIN                                  0xf0       /* Load Min Register                                                                 */
1912#define W1LMAX                                  0xf00      /* Load Max Register                                                                 */
1913#define W1ZMONCE                        0x1000     /* Enable CZM Clear Counter Once                                             */
1914#define nW1ZMONCE                       0x0
1915
1916/* Bit masks for CNT_DEBOUNCE */
1917#define DPRESCALE                               0xf        /* Load Counter Register                                                     */
1918
1919
1920/*************************************  SECURITY REGISTER MASKs  **************************************************/
1921
1922/* Bit masks for SECURE_SYSSWT */
1923#define EMUDABL                                 0x1        /* Emulation Disable.                                                                */
1924#define nEMUDABL                        0x0
1925#define RSTDABL                                 0x2        /* Reset Disable                                                                     */
1926#define nRSTDABL                        0x0
1927#define L1IDABL                                 0x1c       /* L1 Instruction Memory Disable.                                            */
1928#define L1DADABL                        0xe0       /* L1 Data Bank A Memory Disable.                                            */
1929#define L1DBDABL                        0x700      /* L1 Data Bank B Memory Disable.                                            */
1930#define DMA0OVR                                 0x800      /* DMA0 Memory Access Override                                               */
1931#define nDMA0OVR                                0x0
1932#define DMA1OVR                                 0x1000     /* DMA1 Memory Access Override                                               */
1933#define nDMA1OVR                        0x0
1934#define EMUOVR                                  0x4000     /* Emulation Override                                                                */
1935#define nEMUOVR                                 0x0
1936#define OTPSEN                                  0x8000     /* OTP Secrets Enable.                                                               */
1937#define nOTPSEN                                 0x0
1938
1939/* Bit masks for SECURE_CONTROL */
1940#define SECURE0                                 0x1        /* SECURE 0                                                                          */
1941#define nSECURE0                        0x0
1942#define SECURE1                                 0x2        /* SECURE 1                                                                          */
1943#define nSECURE1                        0x0
1944#define SECURE2                                 0x4        /* SECURE 2                                                                          */
1945#define nSECURE2                        0x0
1946#define SECURE3                                 0x8        /* SECURE 3                                                                          */
1947#define nSECURE3                        0x0
1948
1949/* Bit masks for SECURE_STATUS */
1950#define SECMODE                                 0x3        /* Secured Mode Control State                                                        */
1951#define NMI                             0x4        /* Non Maskable Interrupt                                                    */
1952#define nNMI                            0x0
1953#define AFVALID                                 0x8        /* Authentication Firmware Valid                                             */
1954#define nAFVALID                        0x0
1955#define AFEXIT                                  0x10       /* Authentication Firmware Exit                                              */
1956#define nAFEXIT                                 0x0
1957#define SECSTAT                                 0xe0       /* Secure Status                                                                     */
1958
1959
1960/**********************************************  PWM Masks  *******************************************************/
1961
1962/* Bit masks for PWM_CTRL */
1963#define PWM_EN                          0x1             /* PWM Enable                                                                   */
1964#define PWM_SYNC_EN                     0X2             /* Enable Sync Enable                                                           */
1965#define PWM_DBL                                 0x4             /* Double Update Mode                                                           */
1966#define PWM_EXTSYNC                     0x8             /* External Sync                                                                        */
1967#define PWM_SYNCSEL                     0x10            /* External Sync Select                                                         */
1968#define PWM_POLARITY                    0x20            /* PWM Output Polarity                                                          */
1969#define PWM_SRMODE                      0x40            /* PWM SR MODE                                                                  */
1970#define PWMTRIPINT_EN                   0x80            /* Trip Interrupt Enable                                                        */
1971#define PWMSYNCINT_EN                   0x100           /* Sync Interrupt Enable                                                        */
1972#define PWMTRIP_DSBL                    0x200           /* Trip Input Disable                                                           */
1973
1974/* Bit masks for PWM_STAT */
1975#define PWM_PHASE                               0x1             /* PWM phase                                                                    */
1976#define PWM_POL                                 0x2             /* PWM polarity                                                                         */
1977#define PWM_SR                          0x4             /* PWM SR mode                                                                  */
1978#define PWM_TRIP                                0x8             /* PWM Trip mode                                                                        */
1979#define PWM_TRIPINT                     0x100           /* PWM Trip Interrupt                                                           */
1980#define PWM_SYNCINT                     0x200           /* PWM Sync Interrupt                                                           */
1981
1982/* Bit masks for PWMGATE Register */
1983
1984#define CHOPHI                          0x100           /* Gate Chopping Enable High Side                                               */
1985#define CHOPLO                          0x200           /* Gate Chopping Enable Low Side                                                */
1986
1987/* Bit masks for PWMSEG Register */
1988
1989#define CH_EN                           0x1             /* CH output Enable                                                             */
1990#define CL_EN                           0x2             /* CL output Enable                                                             */
1991#define BH_EN                           0x4             /* BH output Enable                                                             */
1992#define BL_EN                           0x8             /* BL output Enable                                                             */
1993#define AH_EN                           0x10            /* AH output Enable                                                             */
1994#define AL_EN                           0x20            /* AL output Enable                                                             */
1995#define CHCL_XOVR                       0x40            /* Channel C output Crossover                                           */
1996#define BHBL_XOVR                       0x80            /* Channel B output Crossover                                           */
1997#define AHAL_XOVR                       0x100           /* Channel A output Crossover                                           */
1998
1999/* Bit masks for PWMLSI Register */
2000#define PWM_SR_LSI_A                    0x1             /* PWM SR Low Side Invert Channel A                                     */
2001#define PWM_SR_LSI_B                    0x2             /* PWM SR Low Side Invert Channel A                                     */
2002#define PWM_SR_LSI_C                    0x4             /* PWM SR Low Side Invert Channel A                                     */
2003
2004/* Bit masks for PWM_STAT2 Register */
2005#define PWM_AL                          0x1             /* pwm_al output signal for S/W observation                             */
2006#define PWM_AH                          0x2             /* pwm_ah output signal for S/W observation                             */
2007#define PWM_BL                          0x4             /* pwm_bl output signal for S/W observation                             */
2008#define PWM_BH                          0x8             /* pwm_bh output signal for S/W observation                             */
2009#define PWM_CL                          0x10            /* pwm_cl output signal for S/W observation                             */
2010#define PWM_CH                          0x20            /* pwm_ch output signal for S/W observation                             */
2011
2012#ifdef _MISRA_RULES
2013#pragma diag(pop)
2014#endif /* _MISRA_RULES */
2015
2016#endif /* _DEF_BF51x_H */
Note: See TracBrowser for help on using the repository browser.