35#ifndef __MC9328MXL_H__
36#define __MC9328MXL_H__
40#define bit(_x_) (1 << (_x_))
43#define MC9328MXL_NUM_INTS 64
46#define MC9328MXL_AIPI1_BASE 0x00200000
47#define MC9328MXL_AIPI2_BASE 0x00210000
48#define MC9328MXL_WDOG_BASE 0x00201000
49#define MC9328MXL_TMR1_BASE 0x00202000
50#define MC9328MXL_TMR2_BASE 0x00203000
51#define MC9328MXL_RTC_BASE 0x00204000
52#define MC9328MXL_LCDC_BASE 0x00205000
53#define MC9328MXL_UART1_BASE 0x00206000
54#define MC9328MXL_UART2_BASE 0x00207000
55#define MC9328MXL_PWM_BASE 0x00208000
56#define MC9328MXL_DMAC_BASE 0x00209000
57#define MC9328MXL_USBD_BASE 0x00212000
58#define MC9328MXL_SPI1_BASE 0x00213000
59#define MC9328MXL_SPI2_BASE 0x00219000
60#define MC9328MXL_MMC_BASE 0x00214000
61#define MC9328MXL_I2C_BASE 0x00217000
62#define MC9328MXL_SSI_BASE 0x00218000
63#define MC9328MXL_MSHC_BASE 0x0021a000
64#define MC9328MXL_PLL_BASE 0x0021b000
65#define MC9328MXL_RESET_BASE 0x0021b800
66#define MC9328MXL_SYSCTRL_BASE 0x0021b804
67#define MC9328MXL_GPIOA_BASE 0x0021c000
68#define MC9328MXL_GPIOB_BASE 0x0021c100
69#define MC9328MXL_GPIOC_BASE 0x0021c200
70#define MC9328MXL_GPIOD_BASE 0x0021c300
71#define MC9328MXL_EIM_BASE 0x00220000
72#define MC9328MXL_SDRAM_BASE 0x00221000
73#define MC9328MXL_MMA_BASE 0x00222000
74#define MC9328MXL_AITC_BASE 0x00223000
75#define MC9328MXL_CSI_BASE 0x00224000
78#define MC9328MXL_TMR1_TCTL (*((volatile uint32_t *)((MC9328MXL_TMR1_BASE) + 0x00)))
79#define MC9328MXL_TMR1_TPRER (*((volatile uint32_t *)((MC9328MXL_TMR1_BASE) + 0x04)))
80#define MC9328MXL_TMR1_TCMP (*((volatile uint32_t *)((MC9328MXL_TMR1_BASE) + 0x08)))
81#define MC9328MXL_TMR1_TCR (*((volatile uint32_t *)((MC9328MXL_TMR1_BASE) + 0x0c)))
82#define MC9328MXL_TMR1_TCN (*((volatile uint32_t *)((MC9328MXL_TMR1_BASE) + 0x10)))
83#define MC9328MXL_TMR1_TSTAT (*((volatile uint32_t *)((MC9328MXL_TMR1_BASE) + 0x14)))
85#define MC9328MXL_TMR2_TCTL (*((volatile uint32_t *)((MC9328MXL_TMR2_BASE) + 0x00)))
86#define MC9328MXL_TMR2_TPRER (*((volatile uint32_t *)((MC9328MXL_TMR2_BASE) + 0x04)))
87#define MC9328MXL_TMR2_TCMP (*((volatile uint32_t *)((MC9328MXL_TMR2_BASE) + 0x08)))
88#define MC9328MXL_TMR2_TCR (*((volatile uint32_t *)((MC9328MXL_TMR2_BASE) + 0x0c)))
89#define MC9328MXL_TMR2_TCN (*((volatile uint32_t *)((MC9328MXL_TMR2_BASE) + 0x10)))
90#define MC9328MXL_TMR2_TSTAT (*((volatile uint32_t *)((MC9328MXL_TMR2_BASE) + 0x14)))
92#define MC9328MXL_TMR_TCTL_SWR (bit(15))
93#define MC9328MXL_TMR_TCTL_FRR (bit(8))
94#define MC9328MXL_TMR_TCTL_CAP_DIS (0 << 6)
95#define MC9328MXL_TMR_TCTL_CAP_RISE (1 << 6)
96#define MC9328MXL_TMR_TCTL_CAP_FALL (2 << 6)
97#define MC9328MXL_TMR_TCTL_CAP_ANY (3 << 6)
98#define MC9328MXL_TMR_TCTL_OM (bit(5))
99#define MC9328MXL_TMR_TCTL_IRQEN (bit(4))
100#define MC9328MXL_TMR_TCTL_CLKSRC_STOP (0 << 1)
101#define MC9328MXL_TMR_TCTL_CLKSRC_PCLK1 (1 << 1)
102#define MC9328MXL_TMR_TCTL_CLKSRC_PCLK_DIV16 (2 << 1)
103#define MC9328MXL_TMR_TCTL_CLKSRC_TIN (3 << 1)
104#define MC9328MXL_TMR_TCTL_CLKSRC_32KHX (4 << 1)
105#define MC9328MXL_TMR_TCTL_TEN (bit(0))
107#define MC9328MXL_UART1_RXD (*((volatile uint32_t *)((MC9328MXL_UART1_BASE) + 0x00)))
108#define MC9328MXL_UART1_TXD (*((volatile uint32_t *)((MC9328MXL_UART1_BASE) + 0x40)))
109#define MC9328MXL_UART1_CR1 (*((volatile uint32_t *)((MC9328MXL_UART1_BASE) + 0x80)))
110#define MC9328MXL_UART1_CR2 (*((volatile uint32_t *)((MC9328MXL_UART1_BASE) + 0x84)))
111#define MC9328MXL_UART1_CR3 (*((volatile uint32_t *)((MC9328MXL_UART1_BASE) + 0x88)))
112#define MC9328MXL_UART1_CR4 (*((volatile uint32_t *)((MC9328MXL_UART1_BASE) + 0x8c)))
113#define MC9328MXL_UART1_FCR (*((volatile uint32_t *)((MC9328MXL_UART1_BASE) + 0x90)))
114#define MC9328MXL_UART1_SR1 (*((volatile uint32_t *)((MC9328MXL_UART1_BASE) + 0x94)))
115#define MC9328MXL_UART1_SR2 (*((volatile uint32_t *)((MC9328MXL_UART1_BASE) + 0x98)))
116#define MC9328MXL_UART1_ESC (*((volatile uint32_t *)((MC9328MXL_UART1_BASE) + 0x9c)))
117#define MC9328MXL_UART1_TIM (*((volatile uint32_t *)((MC9328MXL_UART1_BASE) + 0xa0)))
118#define MC9328MXL_UART1_BIR (*((volatile uint32_t *)((MC9328MXL_UART1_BASE) + 0xa4)))
119#define MC9328MXL_UART1_BMR (*((volatile uint32_t *)((MC9328MXL_UART1_BASE) + 0xa8)))
120#define MC9328MXL_UART1_BRC (*((volatile uint32_t *)((MC9328MXL_UART1_BASE) + 0xac)))
121#define MC9328MXL_UART1_IPR1 (*((volatile uint32_t *)((MC9328MXL_UART1_BASE) + 0xb0)))
122#define MC9328MXL_UART1_IPR2 (*((volatile uint32_t *)((MC9328MXL_UART1_BASE) + 0xb4)))
123#define MC9328MXL_UART1_IPR3 (*((volatile uint32_t *)((MC9328MXL_UART1_BASE) + 0xb8)))
124#define MC9328MXL_UART1_IPR4 (*((volatile uint32_t *)((MC9328MXL_UART1_BASE) + 0xbc)))
125#define MC9328MXL_UART1_MPR1 (*((volatile uint32_t *)((MC9328MXL_UART1_BASE) + 0xc0)))
126#define MC9328MXL_UART1_MPR2 (*((volatile uint32_t *)((MC9328MXL_UART1_BASE) + 0xc4)))
127#define MC9328MXL_UART1_MPR3 (*((volatile uint32_t *)((MC9328MXL_UART1_BASE) + 0xc8)))
128#define MC9328MXL_UART1_MPR4 (*((volatile uint32_t *)((MC9328MXL_UART1_BASE) + 0xcc)))
129#define MC9328MXL_UART1_TS (*((volatile uint32_t *)((MC9328MXL_UART1_BASE) + 0xd0)))
131#define MC9328MXL_UART2_RXD (*((volatile uint32_t *)((MC9328MXL_UART2_BASE) + 0x00)))
132#define MC9328MXL_UART2_TXD (*((volatile uint32_t *)((MC9328MXL_UART2_BASE) + 0x40)))
133#define MC9328MXL_UART2_CR1 (*((volatile uint32_t *)((MC9328MXL_UART2_BASE) + 0x80)))
134#define MC9328MXL_UART2_CR2 (*((volatile uint32_t *)((MC9328MXL_UART2_BASE) + 0x84)))
135#define MC9328MXL_UART2_CR3 (*((volatile uint32_t *)((MC9328MXL_UART2_BASE) + 0x88)))
136#define MC9328MXL_UART2_CR4 (*((volatile uint32_t *)((MC9328MXL_UART2_BASE) + 0x8c)))
137#define MC9328MXL_UART2_FCR (*((volatile uint32_t *)((MC9328MXL_UART2_BASE) + 0x90)))
138#define MC9328MXL_UART2_SR1 (*((volatile uint32_t *)((MC9328MXL_UART2_BASE) + 0x94)))
139#define MC9328MXL_UART2_SR2 (*((volatile uint32_t *)((MC9328MXL_UART2_BASE) + 0x98)))
140#define MC9328MXL_UART2_ESC (*((volatile uint32_t *)((MC9328MXL_UART2_BASE) + 0x9c)))
141#define MC9328MXL_UART2_TIM (*((volatile uint32_t *)((MC9328MXL_UART2_BASE) + 0xa0)))
142#define MC9328MXL_UART2_BIR (*((volatile uint32_t *)((MC9328MXL_UART2_BASE) + 0xa4)))
143#define MC9328MXL_UART2_BMR (*((volatile uint32_t *)((MC9328MXL_UART2_BASE) + 0xa8)))
144#define MC9328MXL_UART2_BRC (*((volatile uint32_t *)((MC9328MXL_UART2_BASE) + 0xac)))
145#define MC9328MXL_UART2_IPR1 (*((volatile uint32_t *)((MC9328MXL_UART2_BASE) + 0xb0)))
146#define MC9328MXL_UART2_IPR2 (*((volatile uint32_t *)((MC9328MXL_UART2_BASE) + 0xb4)))
147#define MC9328MXL_UART2_IPR3 (*((volatile uint32_t *)((MC9328MXL_UART2_BASE) + 0xb8)))
148#define MC9328MXL_UART2_IPR4 (*((volatile uint32_t *)((MC9328MXL_UART2_BASE) + 0xbc)))
149#define MC9328MXL_UART2_MPR1 (*((volatile uint32_t *)((MC9328MXL_UART2_BASE) + 0xc0)))
150#define MC9328MXL_UART2_MPR2 (*((volatile uint32_t *)((MC9328MXL_UART2_BASE) + 0xc4)))
151#define MC9328MXL_UART2_MPR3 (*((volatile uint32_t *)((MC9328MXL_UART2_BASE) + 0xc8)))
152#define MC9328MXL_UART2_MPR4 (*((volatile uint32_t *)((MC9328MXL_UART2_BASE) + 0xcc)))
153#define MC9328MXL_UART2_TS (*((volatile uint32_t *)((MC9328MXL_UART2_BASE) + 0xd0)))
156 volatile uint32_t rxd;
157 volatile uint32_t _res0[15];
158 volatile uint32_t txd;
159 volatile uint32_t _res1[15];
160 volatile uint32_t cr1;
161 volatile uint32_t cr2;
162 volatile uint32_t cr3;
163 volatile uint32_t cr4;
164 volatile uint32_t fcr;
165 volatile uint32_t sr1;
166 volatile uint32_t sr2;
167 volatile uint32_t esc;
168 volatile uint32_t tim;
169 volatile uint32_t bir;
170 volatile uint32_t bmr;
171 volatile uint32_t brc;
172 volatile uint32_t ipr1;
173 volatile uint32_t ipr2;
174 volatile uint32_t ipr3;
175 volatile uint32_t ipr4;
176 volatile uint32_t mpr1;
177 volatile uint32_t mpr2;
178 volatile uint32_t mpr3;
179 volatile uint32_t mpr4;
180 volatile uint32_t ts;
183#define MC9328MXL_UART_RXD_CHARRDY (bit(15))
184#define MC9328MXL_UART_RXD_ERR (bit(14))
185#define MC9328MXL_UART_RXD_OVRRUN (bit(13))
186#define MC9328MXL_UART_RXD_FRMERR (bit(12))
187#define MC9328MXL_UART_RXD_BRK (bit(11))
188#define MC9328MXL_UART_RXD_PRERR (bit(10))
189#define MC9328MXL_UART_RXD_CHARMASK (0xff)
191#define MC9328MXL_UART_CR1_ADEN (bit(15))
192#define MC9328MXL_UART_CR1_ADBR (bit(14))
193#define MC9328MXL_UART_CR1_TRDYEN (bit(13))
194#define MC9328MXL_UART_CR1_IDEN (bit(12))
195#define MC9328MXL_UART_CR1_ICD4 (0x0 << 10)
196#define MC9328MXL_UART_CR1_ICD8 (0x1 << 10)
197#define MC9328MXL_UART_CR1_ICD16 (0x2 << 10)
198#define MC9328MXL_UART_CR1_ICD32 (0x3 << 10)
199#define MC9328MXL_UART_CR1_RRDYEN (bit(9))
200#define MC9328MXL_UART_CR1_RDMAEN (bit(8))
201#define MC9328MXL_UART_CR1_IREN (bit(7))
202#define MC9328MXL_UART_CR1_TXMPTYEN (bit(6))
203#define MC9328MXL_UART_CR1_RTSDEN (bit(5))
204#define MC9328MXL_UART_CR1_SNDBRK (bit(4))
205#define MC9328MXL_UART_CR1_TDMAEN (bit(3))
206#define MC9328MXL_UART_CR1_UARTCLKEN (bit(2))
207#define MC9328MXL_UART_CR1_DOZE (bit(1))
208#define MC9328MXL_UART_CR1_UARTEN (bit(0))
211#define MC9328MXL_UART_CR2_ESCI (bit(15))
212#define MC9328MXL_UART_CR2_IRTS (bit(14))
213#define MC9328MXL_UART_CR2_CTSC (bit(13))
214#define MC9328MXL_UART_CR2_CTS (bit(12))
215#define MC9328MXL_UART_CR2_ESCEN (bit(11))
216#define MC9328MXL_UART_CR2_RTEC_RE (0 << 9)
217#define MC9328MXL_UART_CR2_RTEC_FE (1 << 9)
218#define MC9328MXL_UART_CR2_RTEC_ANY (2 << 9)
219#define MC9328MXL_UART_CR2_PREN (bit(8))
220#define MC9328MXL_UART_CR2_PROE (bit(7))
221#define MC9328MXL_UART_CR2_STPB (bit(6))
222#define MC9328MXL_UART_CR2_WS (bit(5))
223#define MC9328MXL_UART_CR2_RTSEN (bit(4))
224#define MC9328MXL_UART_CR2_TXEN (bit(2))
225#define MC9328MXL_UART_CR2_RXEN (bit(1))
226#define MC9328MXL_UART_CR2_SRST (bit(0))
228#define MC9328MXL_UART_CR3_DPEC_RE (0 << 14)
229#define MC9328MXL_UART_CR3_DPEC_FE (1 << 14)
230#define MC9328MXL_UART_CR3_DPEC_ANY (2 << 14)
231#define MC9328MXL_UART_CR3_DTREN (bit(13))
232#define MC9328MXL_UART_CR3_PARERREN (bit(12))
233#define MC9328MXL_UART_CR3_FRAERREN (bit(11))
234#define MC9328MXL_UART_CR3_DSR (bit(10))
235#define MC9328MXL_UART_CR3_DCD (bit(9))
236#define MC9328MXL_UART_CR3_RI (bit(8))
237#define MC9328MXL_UART_CR3_RXDSEN (bit(6))
238#define MC9328MXL_UART_CR3_AIRINTEN (bit(5))
239#define MC9328MXL_UART_CR3_AWAKEN (bit(4))
240#define MC9328MXL_UART_CR3_REF25 (bit(3))
241#define MC9328MXL_UART_CR3_REF30 (bit(2))
242#define MC9328MXL_UART_CR3_INVT (bit(1))
243#define MC9328MXL_UART_CR3_BPEN (bit(0))
245#define MC9328MXL_UART_CR4_CTSTL(_x_) (((_x_) & 0x3f) << 10)
246#define MC9328MXL_UART_CR4_INVR (bit(9))
247#define MC9328MXL_UART_CR4_ENIRI (bit(8))
248#define MC9328MXL_UART_CR4_WKEN (bit(7))
249#define MC9328MXL_UART_CR4_REF16 (bit(6))
250#define MC9328MXL_UART_CR4_IRSC (bit(5))
251#define MC9328MXL_UART_CR4_TCEN (bit(3))
252#define MC9328MXL_UART_CR4_BKEN (bit(2))
253#define MC9328MXL_UART_CR4_OREN (bit(1))
254#define MC9328MXL_UART_CR4_DREN (bit(0))
256#define MC9328MXL_UART_FCR_TXTL(x) (((x) & 0x3f) << 10)
257#define MC9328MXL_UART_FCR_RFDIV_1 (5 << 7)
258#define MC9328MXL_UART_FCR_RFDIV_2 (4 << 7)
259#define MC9328MXL_UART_FCR_RFDIV_3 (3 << 7)
260#define MC9328MXL_UART_FCR_RFDIV_4 (2 << 7)
261#define MC9328MXL_UART_FCR_RFDIV_5 (1 << 7)
262#define MC9328MXL_UART_FCR_RFDIV_6 (0 << 7)
263#define MC9328MXL_UART_FCR_RFDIV_7 (6 << 7)
264#define MC9328MXL_UART_FCR_RFDIV_MASK (7 << 7)
265#define MC9328MXL_UART_FCR_RXTL(x) (((x) & 0x3f) << 0)
267#define MC9328MXL_UART_SR1_PARERR (bit(15))
268#define MC9328MXL_UART_SR1_RTSS (bit(14))
269#define MC9328MXL_UART_SR1_TRDY (bit(13))
270#define MC9328MXL_UART_SR1_RTSD (bit(12))
271#define MC9328MXL_UART_SR1_ESCF (bit(11))
272#define MC9328MXL_UART_SR1_FRMERR (bit(10))
273#define MC9328MXL_UART_SR1_RRDY (bit(9))
274#define MC9328MXL_UART_SR1_RXDS (bit(6))
275#define MC9328MXL_UART_SR1_AIRINT (bit(5))
276#define MC9328MXL_UART_SR1_AWAKE (bit(4))
278#define MC9328MXL_UART_SR2_ADET (bit(15))
279#define MC9328MXL_UART_SR2_TXFE (bit(14))
280#define MC9328MXL_UART_SR2_DTRF (bit(13))
281#define MC9328MXL_UART_SR2_IDLE (bit(12))
282#define MC9328MXL_UART_SR2_IRINT (bit(8))
283#define MC9328MXL_UART_SR2_WAKE (bit(7))
284#define MC9328MXL_UART_SR2_RTSF (bit(4))
285#define MC9328MXL_UART_SR2_TXDC (bit(3))
286#define MC9328MXL_UART_SR2_BRCD (bit(2))
287#define MC9328MXL_UART_SR2_ORE (bit(1))
288#define MC9328MXL_UART_SR2_RDR (bit(0))
291#define MC9328MXL_PLL_CSCR (*((volatile uint32_t *)((MC9328MXL_PLL_BASE) + 0x00)))
292#define MC9328MXL_PLL_MPCTL0 (*((volatile uint32_t *)((MC9328MXL_PLL_BASE) + 0x04)))
293#define MC9328MXL_PLL_MPCTL1 (*((volatile uint32_t *)((MC9328MXL_PLL_BASE) + 0x08)))
294#define MC9328MXL_PLL_SPCTL0 (*((volatile uint32_t *)((MC9328MXL_PLL_BASE) + 0x0c)))
295#define MC9328MXL_PLL_SPCTL1 (*((volatile uint32_t *)((MC9328MXL_PLL_BASE) + 0x10)))
296#define MC9328MXL_PLL_PCDR (*((volatile uint32_t *)((MC9328MXL_PLL_BASE) + 0x20)))
298#define MC9328MXL_PLL_CSCR_CLKOSEL_PERCLK1 (0 << 29)
299#define MC9328MXL_PLL_CSCR_CLKOSEL_HCLK (1 << 29)
300#define MC9328MXL_PLL_CSCR_CLKOSEL_CLK48M (2 << 29)
301#define MC9328MXL_PLL_CSCR_CLKOSEL_CLK16M (3 << 29)
302#define MC9328MXL_PLL_CSCR_CLKOSEL_PREMCLK (4 << 29)
303#define MC9328MXL_PLL_CSCR_CLKOSEL_FCLK (5 << 29)
305#define MC9328MXL_PLL_CSCR_USBDIV(_x_) (((_x_) & 0x7) << 26)
306#define MC9328MXL_PLL_CSCR_SDCNT_1 (0 << 24)
307#define MC9328MXL_PLL_CSCR_SDCNT_2 (1 << 24)
308#define MC9328MXL_PLL_CSCR_SDCNT_3 (2 << 24)
309#define MC9328MXL_PLL_CSCR_SDCNT_4 (3 << 24)
311#define MC9328MXL_PLL_CSCR_SPLLRSTRT (bit(22))
312#define MC9328MXL_PLL_CSCR_MPLLRSTRT (bit(21))
313#define MC9328MXL_PLL_CSCR_CLK16SEL (bit(18))
314#define MC9328MXL_PLL_CSCR_OSCEN (bit(17))
315#define MC9328MXL_PLL_CSCR_SYSSEL (bit(16))
316#define MC9328MXL_PLL_CSCR_PRESC (bit(15))
317#define MC9328MXL_PLL_CSCR_BLKDIV(_x_) (((_x_) & 0xf) << 10)
318#define MC9328MXL_PLL_CSCR_SPEN (bit(1))
319#define MC9328MXL_PLL_CSCR_MPEN (bit(0))
321#define MC9328MXL_PLL_PCDR_PCLK1_MASK (0x0000000f)
322#define MC9328MXL_PLL_PCDR_PCLK1_SHIFT (0)
323#define MC9328MXL_PLL_PCDR_PCLK2_MASK (0x000000f0)
324#define MC9328MXL_PLL_PCDR_PCLK2_SHIFT (4)
325#define MC9328MXL_PLL_PCDR_PCLK3_MASK (0x007f0000)
326#define MC9328MXL_PLL_PCDR_PCLK3_SHIFT (16)
329#define MC9328MXL_PLL_SPCTL_PD_MASK (0x3c000000)
330#define MC9328MXL_PLL_SPCTL_PD_SHIFT (26)
331#define MC9328MXL_PLL_SPCTL_MFD_MASK (0x03ff0000)
332#define MC9328MXL_PLL_SPCTL_MFD_SHIFT (16)
333#define MC9328MXL_PLL_SPCTL_MFI_MASK (0x00003c00)
334#define MC9328MXL_PLL_SPCTL_MFI_SHIFT (10)
335#define MC9328MXL_PLL_SPCTL_MFN_MASK (0x000003ff)
336#define MC9328MXL_PLL_SPCTL_MFN_SHIFT (0)
339#define MC9328MXL_GPIOA_DDIR (*((volatile uint32_t *)((MC9328MXL_GPIOA_BASE) + 0x00)))
340#define MC9328MXL_GPIOA_OCR1 (*((volatile uint32_t *)((MC9328MXL_GPIOA_BASE) + 0x04)))
341#define MC9328MXL_GPIOA_OCR2 (*((volatile uint32_t *)((MC9328MXL_GPIOA_BASE) + 0x08)))
342#define MC9328MXL_GPIOA_ICONFA1 (*((volatile uint32_t *)((MC9328MXL_GPIOA_BASE) + 0x0c)))
343#define MC9328MXL_GPIOA_ICONFA2 (*((volatile uint32_t *)((MC9328MXL_GPIOA_BASE) + 0x10)))
344#define MC9328MXL_GPIOA_ICONFB1 (*((volatile uint32_t *)((MC9328MXL_GPIOA_BASE) + 0x14)))
345#define MC9328MXL_GPIOA_ICONFB2 (*((volatile uint32_t *)((MC9328MXL_GPIOA_BASE) + 0x18)))
346#define MC9328MXL_GPIOA_DR (*((volatile uint32_t *)((MC9328MXL_GPIOA_BASE) + 0x1c)))
347#define MC9328MXL_GPIOA_GIUS (*((volatile uint32_t *)((MC9328MXL_GPIOA_BASE) + 0x20)))
348#define MC9328MXL_GPIOA_SSR (*((volatile uint32_t *)((MC9328MXL_GPIOA_BASE) + 0x24)))
349#define MC9328MXL_GPIOA_ICR1 (*((volatile uint32_t *)((MC9328MXL_GPIOA_BASE) + 0x28)))
350#define MC9328MXL_GPIOA_ICR2 (*((volatile uint32_t *)((MC9328MXL_GPIOA_BASE) + 0x2c)))
351#define MC9328MXL_GPIOA_IMR (*((volatile uint32_t *)((MC9328MXL_GPIOA_BASE) + 0x30)))
352#define MC9328MXL_GPIOA_ISR (*((volatile uint32_t *)((MC9328MXL_GPIOA_BASE) + 0x34)))
353#define MC9328MXL_GPIOA_GPR (*((volatile uint32_t *)((MC9328MXL_GPIOA_BASE) + 0x38)))
354#define MC9328MXL_GPIOA_SWR (*((volatile uint32_t *)((MC9328MXL_GPIOA_BASE) + 0x3c)))
355#define MC9328MXL_GPIOA_PUEN (*((volatile uint32_t *)((MC9328MXL_GPIOA_BASE) + 0x40)))
357#define MC9328MXL_GPIOB_DDIR (*((volatile uint32_t *)((MC9328MXL_GPIOB_BASE) + 0x00)))
358#define MC9328MXL_GPIOB_OCR1 (*((volatile uint32_t *)((MC9328MXL_GPIOB_BASE) + 0x04)))
359#define MC9328MXL_GPIOB_OCR2 (*((volatile uint32_t *)((MC9328MXL_GPIOB_BASE) + 0x08)))
360#define MC9328MXL_GPIOB_ICONFA1 (*((volatile uint32_t *)((MC9328MXL_GPIOB_BASE) + 0x0c)))
361#define MC9328MXL_GPIOB_ICONFA2 (*((volatile uint32_t *)((MC9328MXL_GPIOB_BASE) + 0x10)))
362#define MC9328MXL_GPIOB_ICONFB1 (*((volatile uint32_t *)((MC9328MXL_GPIOB_BASE) + 0x14)))
363#define MC9328MXL_GPIOB_ICONFB2 (*((volatile uint32_t *)((MC9328MXL_GPIOB_BASE) + 0x18)))
364#define MC9328MXL_GPIOB_DR (*((volatile uint32_t *)((MC9328MXL_GPIOB_BASE) + 0x1c)))
365#define MC9328MXL_GPIOB_GIUS (*((volatile uint32_t *)((MC9328MXL_GPIOB_BASE) + 0x20)))
366#define MC9328MXL_GPIOB_SSR (*((volatile uint32_t *)((MC9328MXL_GPIOB_BASE) + 0x24)))
367#define MC9328MXL_GPIOB_ICR1 (*((volatile uint32_t *)((MC9328MXL_GPIOB_BASE) + 0x28)))
368#define MC9328MXL_GPIOB_ICR2 (*((volatile uint32_t *)((MC9328MXL_GPIOB_BASE) + 0x2c)))
369#define MC9328MXL_GPIOB_IMR (*((volatile uint32_t *)((MC9328MXL_GPIOB_BASE) + 0x30)))
370#define MC9328MXL_GPIOB_ISR (*((volatile uint32_t *)((MC9328MXL_GPIOB_BASE) + 0x34)))
371#define MC9328MXL_GPIOB_GPR (*((volatile uint32_t *)((MC9328MXL_GPIOB_BASE) + 0x38)))
372#define MC9328MXL_GPIOB_SWR (*((volatile uint32_t *)((MC9328MXL_GPIOB_BASE) + 0x3c)))
373#define MC9328MXL_GPIOB_PUEN (*((volatile uint32_t *)((MC9328MXL_GPIOB_BASE) + 0x40)))
375#define MC9328MXL_GPIOC_DDIR (*((volatile uint32_t *)((MC9328MXL_GPIOC_BASE) + 0x00)))
376#define MC9328MXL_GPIOC_OCR1 (*((volatile uint32_t *)((MC9328MXL_GPIOC_BASE) + 0x04)))
377#define MC9328MXL_GPIOC_OCR2 (*((volatile uint32_t *)((MC9328MXL_GPIOC_BASE) + 0x08)))
378#define MC9328MXL_GPIOC_ICONFA1 (*((volatile uint32_t *)((MC9328MXL_GPIOC_BASE) + 0x0c)))
379#define MC9328MXL_GPIOC_ICONFA2 (*((volatile uint32_t *)((MC9328MXL_GPIOC_BASE) + 0x10)))
380#define MC9328MXL_GPIOC_ICONFB1 (*((volatile uint32_t *)((MC9328MXL_GPIOC_BASE) + 0x14)))
381#define MC9328MXL_GPIOC_ICONFB2 (*((volatile uint32_t *)((MC9328MXL_GPIOC_BASE) + 0x18)))
382#define MC9328MXL_GPIOC_DR (*((volatile uint32_t *)((MC9328MXL_GPIOC_BASE) + 0x1c)))
383#define MC9328MXL_GPIOC_GIUS (*((volatile uint32_t *)((MC9328MXL_GPIOC_BASE) + 0x20)))
384#define MC9328MXL_GPIOC_SSR (*((volatile uint32_t *)((MC9328MXL_GPIOC_BASE) + 0x24)))
385#define MC9328MXL_GPIOC_ICR1 (*((volatile uint32_t *)((MC9328MXL_GPIOC_BASE) + 0x28)))
386#define MC9328MXL_GPIOC_ICR2 (*((volatile uint32_t *)((MC9328MXL_GPIOC_BASE) + 0x2c)))
387#define MC9328MXL_GPIOC_IMR (*((volatile uint32_t *)((MC9328MXL_GPIOC_BASE) + 0x30)))
388#define MC9328MXL_GPIOC_ISR (*((volatile uint32_t *)((MC9328MXL_GPIOC_BASE) + 0x34)))
389#define MC9328MXL_GPIOC_GPR (*((volatile uint32_t *)((MC9328MXL_GPIOC_BASE) + 0x38)))
390#define MC9328MXL_GPIOC_SWR (*((volatile uint32_t *)((MC9328MXL_GPIOC_BASE) + 0x3c)))
391#define MC9328MXL_GPIOC_PUEN (*((volatile uint32_t *)((MC9328MXL_GPIOC_BASE) + 0x40)))
393#define MC9328MXL_GPIOD_DDIR (*((volatile uint32_t *)((MC9328MXL_GPIOD_BASE) + 0x00)))
394#define MC9328MXL_GPIOD_OCR1 (*((volatile uint32_t *)((MC9328MXL_GPIOD_BASE) + 0x04)))
395#define MC9328MXL_GPIOD_OCR2 (*((volatile uint32_t *)((MC9328MXL_GPIOD_BASE) + 0x08)))
396#define MC9328MXL_GPIOD_ICONFA1 (*((volatile uint32_t *)((MC9328MXL_GPIOD_BASE) + 0x0c)))
397#define MC9328MXL_GPIOD_ICONFA2 (*((volatile uint32_t *)((MC9328MXL_GPIOD_BASE) + 0x10)))
398#define MC9328MXL_GPIOD_ICONFB1 (*((volatile uint32_t *)((MC9328MXL_GPIOD_BASE) + 0x14)))
399#define MC9328MXL_GPIOD_ICONFB2 (*((volatile uint32_t *)((MC9328MXL_GPIOD_BASE) + 0x18)))
400#define MC9328MXL_GPIOD_DR (*((volatile uint32_t *)((MC9328MXL_GPIOD_BASE) + 0x1c)))
401#define MC9328MXL_GPIOD_GIUS (*((volatile uint32_t *)((MC9328MXL_GPIOD_BASE) + 0x20)))
402#define MC9328MXL_GPIOD_SSR (*((volatile uint32_t *)((MC9328MXL_GPIOD_BASE) + 0x24)))
403#define MC9328MXL_GPIOD_ICR1 (*((volatile uint32_t *)((MC9328MXL_GPIOD_BASE) + 0x28)))
404#define MC9328MXL_GPIOD_ICR2 (*((volatile uint32_t *)((MC9328MXL_GPIOD_BASE) + 0x2c)))
405#define MC9328MXL_GPIOD_IMR (*((volatile uint32_t *)((MC9328MXL_GPIOD_BASE) + 0x30)))
406#define MC9328MXL_GPIOD_ISR (*((volatile uint32_t *)((MC9328MXL_GPIOD_BASE) + 0x34)))
407#define MC9328MXL_GPIOD_GPR (*((volatile uint32_t *)((MC9328MXL_GPIOD_BASE) + 0x38)))
408#define MC9328MXL_GPIOD_SWR (*((volatile uint32_t *)((MC9328MXL_GPIOD_BASE) + 0x3c)))
409#define MC9328MXL_GPIOD_PUEN (*((volatile uint32_t *)((MC9328MXL_GPIOD_BASE) + 0x40)))
411#define MC9328MXL_AITC_INTCNTL (*((volatile uint32_t *)((MC9328MXL_AITC_BASE) + 0x00)))
412#define MC9328MXL_AITC_NIMASK (*((volatile uint32_t *)((MC9328MXL_AITC_BASE) + 0x04)))
413#define MC9328MXL_AITC_INTENNUM (*((volatile uint32_t *)((MC9328MXL_AITC_BASE)+ 0x08)))
414#define MC9328MXL_AITC_INTDISNUM (*((volatile uint32_t *)((MC9328MXL_AITC_BASE)+ 0x0c)))
415#define MC9328MXL_AITC_INTENABLEH (*((volatile uint32_t *)((MC9328MXL_AITC_BASE)+ 0x10)))
416#define MC9328MXL_AITC_INTENABLEL (*((volatile uint32_t *)((MC9328MXL_AITC_BASE)+ 0x14)))
417#define MC9328MXL_AITC_INTTYPEH (*((volatile uint32_t *)((MC9328MXL_AITC_BASE)+ 0x18)))
418#define MC9328MXL_AITC_INTTYPEL (*((volatile uint32_t *)((MC9328MXL_AITC_BASE)+ 0x1c)))
419#define MC9328MXL_AITC_NIPIR7 (*((volatile uint32_t *)((MC9328MXL_AITC_BASE)+ 0x20)))
420#define MC9328MXL_AITC_NIPRI6 (*((volatile uint32_t *)((MC9328MXL_AITC_BASE)+ 0x24)))
421#define MC9328MXL_AITC_NIPRI5 (*((volatile uint32_t *)((MC9328MXL_AITC_BASE)+ 0x28)))
422#define MC9328MXL_AITC_NIPRI4 (*((volatile uint32_t *)((MC9328MXL_AITC_BASE)+ 0x2c)))
423#define MC9328MXL_AITC_NIPRI3 (*((volatile uint32_t *)((MC9328MXL_AITC_BASE)+ 0x30)))
424#define MC9328MXL_AITC_NIPRI2 (*((volatile uint32_t *)((MC9328MXL_AITC_BASE)+ 0x34)))
425#define MC9328MXL_AITC_NIPRI1 (*((volatile uint32_t *)((MC9328MXL_AITC_BASE)+ 0x38)))
426#define MC9328MXL_AITC_NIPRI0 (*((volatile uint32_t *)((MC9328MXL_AITC_BASE)+ 0x3c)))
427#define MC9328MXL_AITC_NIVECSR (*((volatile uint32_t *)((MC9328MXL_AITC_BASE)+ 0x40)))
428#define MC9328MXL_AITC_FIVECSR (*((volatile uint32_t *)((MC9328MXL_AITC_BASE)+ 0x44)))
429#define MC9328MXL_AITC_INTSRCH (*((volatile uint32_t *)((MC9328MXL_AITC_BASE)+ 0x48)))
430#define MC9328MXL_AITC_INTSRCL (*((volatile uint32_t *)((MC9328MXL_AITC_BASE)+ 0x4c)))
431#define MC9328MXL_AITC_INTFRCH (*((volatile uint32_t *)((MC9328MXL_AITC_BASE)+ 0x50)))
432#define MC9328MXL_AITC_INTFRCL (*((volatile uint32_t *)((MC9328MXL_AITC_BASE)+ 0x54)))
433#define MC9328MXL_AITC_NIPNDH (*((volatile uint32_t *)((MC9328MXL_AITC_BASE)+ 0x58)))
434#define MC9328MXL_AITC_NIPNDL (*((volatile uint32_t *)((MC9328MXL_AITC_BASE)+ 0x5c)))
435#define MC9328MXL_AITC_FIPNDH (*((volatile uint32_t *)((MC9328MXL_AITC_BASE)+ 0x60)))
436#define MC9328MXL_AITC_FIPNDL (*((volatile uint32_t *)((MC9328MXL_AITC_BASE)+ 0x64)))
438#define MC9328MXL_INT_UART3_PFERR (0)
439#define MC9328MXL_INT_UART3_RTS (1)
440#define MC9328MXL_INT_UART3_DTR (2)
441#define MC9328MXL_INT_UART3_UARTC (3)
442#define MC9328MXL_INT_UART3_TX (4)
443#define MC9328MXL_INT_PEN_UP (5)
444#define MC9328MXL_INT_CSI (6)
445#define MC9328MXL_INT_MMA_MAC (7)
446#define MC9328MXL_INT_MMA (8)
447#define MC9328MXL_INT_COMP (9)
448#define MC9328MXL_INT_MSIRQ (10)
449#define MC9328MXL_INT_GPIO_PORTA (11)
450#define MC9328MXL_INT_GPIO_PORTB (12)
451#define MC9328MXL_INT_GPIO_PORTC (13)
452#define MC9328MXL_INT_LCDC (14)
453#define MC9328MXL_INT_SIM_IRQ (15)
454#define MC9328MXL_INT_SIM_DATA (16)
455#define MC9328MXL_INT_RTC (17)
456#define MC9328MXL_INT_RTC_SAM (18)
457#define MC9328MXL_INT_UART2_PFERR (19)
458#define MC9328MXL_INT_UART2_RTS (20)
459#define MC9328MXL_INT_UART2_DTR (21)
460#define MC9328MXL_INT_UART2_UARTC (22)
461#define MC9328MXL_INT_UART2_TX (23)
462#define MC9328MXL_INT_UART2_RX (24)
463#define MC9328MXL_INT_UART1_PFERR (25)
464#define MC9328MXL_INT_UART1_RTS (26)
465#define MC9328MXL_INT_UART1_DTR (27)
466#define MC9328MXL_INT_UART1_UARTC (28)
467#define MC9328MXL_INT_UART1_TX (29)
468#define MC9328MXL_INT_UART1_RX (30)
469#define MC9328MXL_INT_PEN_DATA (33)
470#define MC9328MXL_INT_PWM (34)
471#define MC9328MXL_INT_MMC_IRQ (35)
472#define MC9328MXL_INT_SSI2_TX (36)
473#define MC9328MXL_INT_SSI2_RX (37)
474#define MC9328MXL_INT_SSI2_ERR (38)
475#define MC9328MXL_INT_I2C (39)
476#define MC9328MXL_INT_SPI2 (40)
477#define MC9328MXL_INT_SPI1 (41)
478#define MC9328MXL_INT_SSI_TX (42)
479#define MC9328MXL_INT_SSI_TX_ERR (43)
480#define MC9328MXL_INT_SSI_RX (44)
481#define MC9328MXL_INT_SSI_RX_ERR (45)
482#define MC9328MXL_INT_TOUCH (46)
483#define MC9328MXL_INT_USBD0 (47)
484#define MC9328MXL_INT_USBD1 (48)
485#define MC9328MXL_INT_USBD2 (49)
486#define MC9328MXL_INT_USBD3 (50)
487#define MC9328MXL_INT_USBD4 (51)
488#define MC9328MXL_INT_USBD5 (52)
489#define MC9328MXL_INT_USBD6 (53)
490#define MC9328MXL_INT_UART3_RX (54)
491#define MC9328MXL_INT_BTSYS (55)
492#define MC9328MXL_INT_BTTIM (56)
493#define MC9328MXL_INT_BTWUI (57)
494#define MC9328MXL_INT_TIMER2 (58)
495#define MC9328MXL_INT_TIMER1 (59)
496#define MC9328MXL_INT_DMA_ERR (60)
497#define MC9328MXL_INT_DMA (61)
498#define MC9328MXL_INT_GPIO_PORTD (62)
499#define MC9328MXL_INT_WDT (63)
501#define MC9328MXL_AITC_INTCTL_NIAD BIT(20)
502#define MC9328MXL_AITC_INTCTL_FIAD BIT(19)
503#define MC9328MXL_AITC_NIMASK_MASK (0X1F)
504#define MC9328MXL_AITC_INTENNUM_MASK (0X3F)
505#define MC9328MXL_AITC_INTDISNUM_MASK (0X3F)
506#define MC9328MXL_AITC_NIPRIORITY(_int_, _pri_) \
507 (((_pri_) & 0xf) << ((_int_) & 0x7) * 4)
Definition: mc9328mxl.h:155