summaryrefslogtreecommitdiff
path: root/bsp/bluetrum/libraries/hal_libraries/bmsis/include/ab32vg1.h
blob: 591d2d0728fdaa518e5aaf90dfc3c929f6996db1 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
/*
 * Copyright (c) 2020-2020, BLUETRUM Development Team
 *
 * SPDX-License-Identifier: Apache-2.0
 */

#ifndef AB32VG1_H__
#define AB32VG1_H__

#ifndef __ASSEMBLER__
#include <stdint.h>
#include "system_ab32vgx.h"

/*!< Interrupt Number Definition */
typedef enum
{
    IRQ_SW_VECTOR                   = 2,
    IRQ_TMR0_VECTOR                 = 3,
    IRQ_TMR1_VECTOR                 = 4,
    IRQ_TMR2_4_5_VECTOR             = 5,    /*!< Timer 2, 4 and 5 Interrupt         */
    IRQ_IRRX_VECTOR                 = 6,    /*!< Timer 3 and IR receiver Interrupt  */
    IRQ_USB_VECTOR                  = 7,
    IRQ_SD_VECTOR                   = 8,
    IRQ_AUBUF0_1_VECTOR             = 9,    /*!< Audio buffer 0 and 1 Interrupt     */
    IRQ_SDADC_VECTOR                = 10,
    IRQ_AUDEC_VECTOR                = 11,   /*!< Audio codec, SBC encode and AEC FFT Interrupt */
    IRQ_SRC_VECTOR                  = 12,   /*!< SRC, PLC and CVSD Interrupt        */
    IRQ_FM_SPDIF_VECTOR             = 13,   /*!< FM TX, RX and SPDIF RX Interrupt   */
    IRQ_UART0_2_VECTOR              = 14,   /*!< UART 0 to 2 Interrupt              */
    IRQ_HSUART_VECTOR               = 15,
    IRQ_RTC_VECTOR                  = 16,   /*!< RTC, LVD and WDT Interrupt         */
    IRQ_I2S_VECTOR                  = 17,
    IRQ_GPIO_IRQ                    = 18,
    IRQ_TOTAL_NUM                   = 23,
} irq_type;
#endif // __ASSEMBLER__

#ifndef __ASSEMBLER__
#define SFR_RO *(volatile unsigned long const *)
#define SFR_WO *(volatile unsigned long*)
#define SFR_RW *(volatile unsigned long*)
#define SWINT() asm(".long 0xb0030057")
#define EEBREAKINT() asm(".long 0xb0040057")
#else
#define SFR_RO
#define SFR_WO
#define SFR_RW
#define SWINT      .long 0xb0030057
#define EEBREAKINT .long 0xb0040057
#endif

#define SFR_BASE   0x00000000
#define SFR0_BASE  (0x00000000 + 0x000)
#define SFR1_BASE  (0x00000000 + 0x100)
#define SFR2_BASE  (0x00000000 + 0x200)
#define SFR3_BASE  (0x00000000 + 0x300)
#define SFR4_BASE  (0x00000000 + 0x400)
#define SFR5_BASE  (0x00000000 + 0x500)
#define SFR6_BASE  (0x00000000 + 0x600)
#define SFR7_BASE  (0x00000000 + 0x700)
#define SFR8_BASE  (0x00000000 + 0x800)
#define SFR9_BASE  (0x00000000 + 0x900)
#define SFR10_BASE (0x00000000 + 0xa00)
#define SFR11_BASE (0x00000000 + 0xb00)
#define SFR12_BASE (0x00000000 + 0xc00)
#define SFR13_BASE (0x00000000 + 0xd00)
#define SFR14_BASE (0x00000000 + 0xe00)
#define SFR15_BASE (0x00000000 + 0xf00)

#define RTC_WR          0x200
#define RTC_RD          0x100

#define RTCCNT_CMD      0x01
#define RTCALM_CMD      0x02
#define RTCRAM_CMD      0x03
#define RTCCON0_CMD     0x04
#define RTCCON1_CMD     0x05
#define RTCCON2_CMD     0x06
#define RTCCON3_CMD     0x07
#define RTCCON4_CMD     0x08
#define RTCCON5_CMD     0x09
#define RTCCON6_CMD     0x0a
#define RTCCON7_CMD     0x0b
#define RTCCON8_CMD     0x0c
#define RTCCON9_CMD     0x0d
#define RTCCON10_CMD    0x0e

#define FUNCMCON0         SFR_RW (SFR0_BASE + 0x07*4)
#define FUNCMCON1         SFR_RW (SFR0_BASE + 0x08*4)
#define FUNCMCON2         SFR_RW (SFR0_BASE + 0x09*4)

#define UART0CON          SFR_RW (SFR0_BASE + 0x10*4)
#define UART0CPND         SFR_WO (SFR0_BASE + 0x11*4)
#define UART0BAUD         SFR_RW (SFR0_BASE + 0x12*4)
#define UART0DATA         SFR_RW (SFR0_BASE + 0x13*4)
#define TMR0CON           SFR_RW (SFR0_BASE + 0x14*4)
#define TMR0CPND          SFR_RW (SFR0_BASE + 0x15*4)
#define TMR0CNT           SFR_RW (SFR0_BASE + 0x16*4)
#define TMR0PR            SFR_RW (SFR0_BASE + 0x17*4)
#define CLKCON0           SFR_RW (SFR0_BASE + 0x19*4)
#define WDTCON            SFR_RW (SFR0_BASE + 0x1a*4)
#define RTCCON            SFR_RW (SFR0_BASE + 0x1b*4)
#define RTCDAT            SFR_RW (SFR0_BASE + 0x1c*4)
#define CLKCON1           SFR_RW (SFR0_BASE + 0x1d*4)
#define RTCCPND           SFR_WO (SFR0_BASE + 0x1e*4)

#define SD0CON            SFR_RW (SFR0_BASE + 0x20*4)
#define SD0CPND           SFR_WO (SFR0_BASE + 0x21*4)
#define SD0BAUD           SFR_RW (SFR0_BASE + 0x22*4)
#define SD0CMD            SFR_RW (SFR0_BASE + 0x23*4)
#define SD0ARG3           SFR_RW (SFR0_BASE + 0x24*4)
#define SD0ARG2           SFR_RW (SFR0_BASE + 0x25*4)
#define SD0ARG1           SFR_RW (SFR0_BASE + 0x26*4)
#define SD0ARG0           SFR_RW (SFR0_BASE + 0x27*4)
#define SD0DMAADR         SFR_RW (SFR0_BASE + 0x28*4)
#define SD0DMACNT         SFR_RW (SFR0_BASE + 0x29*4)
#define SPI0CON           SFR_RW (SFR0_BASE + 0x2a*4)
#define SPI0BUF           SFR_RW (SFR0_BASE + 0x2b*4)
#define SPI0BAUD          SFR_RW (SFR0_BASE + 0x2c*4)
#define SPI0CPND          SFR_RW (SFR0_BASE + 0x2d*4)
#define SPI0DMACNT        SFR_RW (SFR0_BASE + 0x2e*4)
#define SPI0DMAADR        SFR_RW (SFR0_BASE + 0x2f*4)

#define UART1CON          SFR_RW (SFR0_BASE + 0x30*4)
#define UART1CPND         SFR_WO (SFR0_BASE + 0x31*4)
#define UART1BAUD         SFR_RW (SFR0_BASE + 0x32*4)
#define UART1DATA         SFR_RW (SFR0_BASE + 0x33*4)
#define TMR1CON           SFR_RW (SFR0_BASE + 0x35*4)
#define TMR1CPND          SFR_RW (SFR0_BASE + 0x36*4)
#define TMR1CNT           SFR_RW (SFR0_BASE + 0x37*4)
#define TMR1PR            SFR_RW (SFR0_BASE + 0x38*4)
#define TMR2CON           SFR_RW (SFR0_BASE + 0x3a*4)
#define TMR2CPND          SFR_RW (SFR0_BASE + 0x3b*4)
#define TMR2CNT           SFR_RW (SFR0_BASE + 0x3c*4)
#define TMR2PR            SFR_RW (SFR0_BASE + 0x3d*4)

//------------------------- SFR Group1 ---------------------------------------//
#define AUBUFDATA       SFR_RW (SFR1_BASE + 0x01*4)
#define AUBUFCON        SFR_RW (SFR1_BASE + 0x02*4)
#define AUBUFSTARTADDR  SFR_RW (SFR1_BASE + 0x03*4)
#define AUBUFSIZE       SFR_RW (SFR1_BASE + 0x04*4)
#define AUBUFFIFOCNT    SFR_RW (SFR1_BASE + 0x05*4)
#define AUBUF1DATA      SFR_RW (SFR1_BASE + 0x06*4)
#define AUBUF1CON       SFR_RW (SFR1_BASE + 0x07*4)
#define AUBUF1STARTADDR SFR_RW (SFR1_BASE + 0x08*4)
#define AUBUF1SIZE      SFR_RW (SFR1_BASE + 0x09*4)
#define AUBUF1FIFOCNT   SFR_RW (SFR1_BASE + 0x0a*4)

#define DACDIGCON0      SFR_RW (SFR1_BASE + 0x10*4)
#define DACVOLCON       SFR_RW (SFR1_BASE + 0x11*4)
#define AU0LMIXCOEF     SFR_RW (SFR1_BASE + 0x12*4)
#define AU0RMIXCOEF     SFR_RW (SFR1_BASE + 0x13*4)
#define AU1LMIXCOEF     SFR_RW (SFR1_BASE + 0x14*4)
#define AU1RMIXCOEF     SFR_RW (SFR1_BASE + 0x15*4)

#define AUANGCON0       SFR_RW (SFR1_BASE + 0x3c*4)
#define AUANGCON1       SFR_RW (SFR1_BASE + 0x3d*4)
#define AUANGCON2       SFR_RW (SFR1_BASE + 0x3e*4)
#define AUANGCON3       SFR_RW (SFR1_BASE + 0x3f*4)

#define USBCON0         SFR_RW (SFR3_BASE + 0x00*4)
#define USBCON1         SFR_RW (SFR3_BASE + 0x01*4)
#define USBCON2         SFR_RW (SFR3_BASE + 0x02*4)

#define PWRCON0         SFR_RW (SFR3_BASE + 0x1d*4)
#define LVDCON          SFR_RW (SFR3_BASE + 0x1e*4)
#define CHAGCON         SFR_RW (SFR3_BASE + 0x1f*4)

#define PLL0DIV         SFR_RW (SFR3_BASE + 0x23*4)
#define PLL1DIV         SFR_RW (SFR3_BASE + 0x24*4)
#define PLL0CON         SFR_RW (SFR3_BASE + 0x26*4)
#define PLL1CON         SFR_RW (SFR3_BASE + 0x27*4)
#define PLL2CON         SFR_RW (SFR3_BASE + 0x28*4)
#define XO26MCON        SFR_RW (SFR3_BASE + 0x29*4)
#define CLKCON2         SFR_RW (SFR3_BASE + 0x2a*4)
#define CLKGAT0         SFR_RW (SFR3_BASE + 0x2c*4)
#define LPMCON          SFR_RW (SFR3_BASE + 0x2d*4)
#define MEMCON          SFR_RW (SFR3_BASE + 0x2e*4)
#define CLKCON3         SFR_RW (SFR3_BASE + 0x2f*4)
#define CLKGAT1         SFR_RW (SFR3_BASE + 0x3f*4)

#define PWMCON          SFR_RW (SFR4_BASE + 0x20*4)
#define PWMPRCON        SFR_RW (SFR4_BASE + 0x21*4)
#define PWM01DUTY       SFR_RW (SFR4_BASE + 0x22*4)
#define PWM23DUTY       SFR_RW (SFR4_BASE + 0x23*4)
#define PWMCYCNUM       SFR_RW (SFR4_BASE + 0x24*4)
#define PWMSTEP         SFR_RW (SFR4_BASE + 0x25*4)

//0x00~0x1f reserve for CPU
#define PICCONCLR       SFR_WO (SFR5_BASE + 0x0c*4)
#define PICCONSET       SFR_WO (SFR5_BASE + 0x0d*4)
#define PICENCLR        SFR_WO (SFR5_BASE + 0x0e*4)
#define PICENSET        SFR_WO (SFR5_BASE + 0x0f*4)

#define PICCON          SFR_RW (SFR5_BASE + 0x10*4)
#define PICEN           SFR_RW (SFR5_BASE + 0x11*4)
#define PICPR           SFR_RW (SFR5_BASE + 0x12*4)
#define PICADR          SFR_RW (SFR5_BASE + 0x13*4)
#define PICPND          SFR_RW (SFR5_BASE + 0x14*4)
#define EPICCON         SFR_RW (SFR5_BASE + 0x1e*4)
#define EPC             SFR_RW (SFR5_BASE + 0x1f*4)

#define SADCDAT0        SFR_RO (SFR5_BASE + 0x20*4)
#define SADCDAT1        SFR_RO (SFR5_BASE + 0x21*4)
#define SADCDAT2        SFR_RO (SFR5_BASE + 0x22*4)
#define SADCDAT3        SFR_RO (SFR5_BASE + 0x23*4)
#define SADCDAT4        SFR_RO (SFR5_BASE + 0x24*4)
#define SADCDAT5        SFR_RO (SFR5_BASE + 0x25*4)
#define SADCDAT6        SFR_RO (SFR5_BASE + 0x26*4)
#define SADCDAT7        SFR_RO (SFR5_BASE + 0x27*4)
#define SADCDAT8        SFR_RO (SFR5_BASE + 0x28*4)
#define SADCDAT9        SFR_RO (SFR5_BASE + 0x29*4)
#define SADCDAT10       SFR_RO (SFR5_BASE + 0x2a*4)
#define SADCDAT11       SFR_RO (SFR5_BASE + 0x2b*4)
#define SADCDAT12       SFR_RO (SFR5_BASE + 0x2c*4)
#define SADCDAT13       SFR_RO (SFR5_BASE + 0x2d*4)
#define SADCDAT14       SFR_RO (SFR5_BASE + 0x2e*4)
#define SADCDAT15       SFR_RO (SFR5_BASE + 0x2f*4)

#define AUANGCON1       SFR_RW (SFR1_BASE + 0x3d*4)

#define WKUPCON         SFR_WO (SFR5_BASE + 0x39*4)
#define WKUPEDG         SFR_WO (SFR5_BASE + 0x3a*4)
#define WKUPCPND        SFR_WO (SFR5_BASE + 0x3b*4)

//------------------------- SFR Group6 ---------------------------------------//
#define GPIOASET        SFR_RW (SFR6_BASE + 0x00*4)
#define GPIOACLR        SFR_RW (SFR6_BASE + 0x01*4)
#define GPIOA           SFR_RW (SFR6_BASE + 0x02*4)
#define GPIOADIR        SFR_RW (SFR6_BASE + 0x03*4)
#define GPIOADE         SFR_RW (SFR6_BASE + 0x04*4)
#define GPIOAFEN        SFR_RW (SFR6_BASE + 0x05*4)
#define GPIOADRV        SFR_RW (SFR6_BASE + 0x06*4)
#define GPIOAPU         SFR_RW (SFR6_BASE + 0x07*4)
#define GPIOAPD         SFR_RW (SFR6_BASE + 0x08*4)
#define GPIOAPU200K     SFR_RW (SFR6_BASE + 0x09*4)
#define GPIOAPD200K     SFR_RW (SFR6_BASE + 0x0a*4)
#define GPIOAPU300      SFR_RW (SFR6_BASE + 0x0b*4)
#define GPIOAPD300      SFR_RW (SFR6_BASE + 0x0c*4)

#define GPIOBSET        SFR_RW (SFR6_BASE + 0x10*4)
#define GPIOBCLR        SFR_RW (SFR6_BASE + 0x11*4)
#define GPIOB           SFR_RW (SFR6_BASE + 0x12*4)
#define GPIOBDIR        SFR_RW (SFR6_BASE + 0x13*4)
#define GPIOBDE         SFR_RW (SFR6_BASE + 0x14*4)
#define GPIOBFEN        SFR_RW (SFR6_BASE + 0x15*4)
#define GPIOBDRV        SFR_RW (SFR6_BASE + 0x16*4)
#define GPIOBPU         SFR_RW (SFR6_BASE + 0x17*4)
#define GPIOBPD         SFR_RW (SFR6_BASE + 0x18*4)
#define GPIOBPU200K     SFR_RW (SFR6_BASE + 0x19*4)
#define GPIOBPD200K     SFR_RW (SFR6_BASE + 0x1a*4)
#define GPIOBPU300      SFR_RW (SFR6_BASE + 0x1b*4)
#define GPIOBPD300      SFR_RW (SFR6_BASE + 0x1c*4)

#define GPIOESET        SFR_RW (SFR6_BASE + 0x20*4)
#define GPIOECLR        SFR_RW (SFR6_BASE + 0x21*4)
#define GPIOE           SFR_RW (SFR6_BASE + 0x22*4)
#define GPIOEDIR        SFR_RW (SFR6_BASE + 0x23*4)
#define GPIOEDE         SFR_RW (SFR6_BASE + 0x24*4)
#define GPIOEFEN        SFR_RW (SFR6_BASE + 0x25*4)
#define GPIOEDRV        SFR_RW (SFR6_BASE + 0x26*4)
#define GPIOEPU         SFR_RW (SFR6_BASE + 0x27*4)
#define GPIOEPD         SFR_RW (SFR6_BASE + 0x28*4)
#define GPIOEPU200K     SFR_RW (SFR6_BASE + 0x29*4)
#define GPIOEPD200K     SFR_RW (SFR6_BASE + 0x2a*4)
#define GPIOEPU300      SFR_RW (SFR6_BASE + 0x2b*4)
#define GPIOEPD300      SFR_RW (SFR6_BASE + 0x2c*4)

#define GPIOFSET        SFR_RW (SFR6_BASE + 0x30*4)
#define GPIOFCLR        SFR_RW (SFR6_BASE + 0x31*4)
#define GPIOF           SFR_RW (SFR6_BASE + 0x32*4)
#define GPIOFDIR        SFR_RW (SFR6_BASE + 0x33*4)
#define GPIOFDE         SFR_RW (SFR6_BASE + 0x34*4)
#define GPIOFFEN        SFR_RW (SFR6_BASE + 0x35*4)
#define GPIOFDRV        SFR_RW (SFR6_BASE + 0x36*4)
#define GPIOFPU         SFR_RW (SFR6_BASE + 0x37*4)
#define GPIOFPD         SFR_RW (SFR6_BASE + 0x38*4)
#define GPIOFPU200K     SFR_RW (SFR6_BASE + 0x39*4)
#define GPIOFPD200K     SFR_RW (SFR6_BASE + 0x3a*4)
#define GPIOFPU300      SFR_RW (SFR6_BASE + 0x3b*4)
#define GPIOFPD300      SFR_RW (SFR6_BASE + 0x3c*4)

#define GPIOGSET        SFR_RW (SFR7_BASE + 0x00*4)
#define GPIOGCLR        SFR_RW (SFR7_BASE + 0x01*4)
#define GPIOG           SFR_RW (SFR7_BASE + 0x02*4)
#define GPIOGDIR        SFR_RW (SFR7_BASE + 0x03*4)
#define GPIOGDE         SFR_RW (SFR7_BASE + 0x04*4)
#define GPIOGFEN        SFR_RW (SFR7_BASE + 0x05*4)
#define GPIOGDRV        SFR_RW (SFR7_BASE + 0x06*4)
#define GPIOGPU         SFR_RW (SFR7_BASE + 0x07*4)
#define GPIOGPD         SFR_RW (SFR7_BASE + 0x08*4)
#define GPIOGPU200K     SFR_RW (SFR7_BASE + 0x09*4)
#define GPIOGPD200K     SFR_RW (SFR7_BASE + 0x0a*4)
#define GPIOGPU300      SFR_RW (SFR7_BASE + 0x0b*4)
#define GPIOGPD300      SFR_RW (SFR7_BASE + 0x0c*4)

#define IRRXCON         SFR_RW (SFR8_BASE + 0x1b*4)
#define IRRXDAT         SFR_RW (SFR8_BASE + 0x1c*4)
#define IRRXCPND        SFR_WO (SFR8_BASE + 0x1d*4)
#define IRRXERR0        SFR_WO (SFR8_BASE + 0x1e*4)
#define IRRXERR1        SFR_WO (SFR8_BASE + 0x1f*4)

#define USERKEY         SFR_RW (SFR8_BASE + 0x20*4)
#define PROTCON1        SFR_RW (SFR8_BASE + 0x21*4)
#define FMAMFDTCON      SFR_WO (SFR8_BASE + 0x29*4)

#define TMR3CON         SFR_RW (SFR9_BASE + 0x00*4)
#define TMR3CPND        SFR_WO (SFR9_BASE + 0x01*4)
#define TMR3CNT         SFR_RW (SFR9_BASE + 0x02*4)
#define TMR3PR          SFR_RW (SFR9_BASE + 0x03*4)
#define TMR3CPT         SFR_RO (SFR9_BASE + 0x04*4)
#define TMR3DUTY0       SFR_WO (SFR9_BASE + 0x05*4)
#define TMR3DUTY1       SFR_WO (SFR9_BASE + 0x06*4)
#define TMR3DUTY2       SFR_WO (SFR9_BASE + 0x07*4)
#define TMR4CON         SFR_RW (SFR9_BASE + 0x08*4)
#define TMR4CPND        SFR_WO (SFR9_BASE + 0x09*4)
#define TMR4CNT         SFR_RW (SFR9_BASE + 0x0a*4)
#define TMR4PR          SFR_RW (SFR9_BASE + 0x0b*4)
#define TMR4CPT         SFR_RO (SFR9_BASE + 0x0c*4)
#define TMR4DUTY0       SFR_WO (SFR9_BASE + 0x0d*4)
#define TMR4DUTY1       SFR_WO (SFR9_BASE + 0x0e*4)
#define TMR4DUTY2       SFR_WO (SFR9_BASE + 0x0f*4)

#define TMR5CON         SFR_RW (SFR9_BASE + 0x10*4)
#define TMR5CPND        SFR_WO (SFR9_BASE + 0x11*4)
#define TMR5CNT         SFR_RW (SFR9_BASE + 0x12*4)
#define TMR5PR          SFR_RW (SFR9_BASE + 0x13*4)
#define TMR5CPT         SFR_RO (SFR9_BASE + 0x14*4)
#define TMR5DUTY0       SFR_WO (SFR9_BASE + 0x15*4)
#define TMR5DUTY1       SFR_WO (SFR9_BASE + 0x16*4)
#define TMR5DUTY2       SFR_WO (SFR9_BASE + 0x17*4)
#define UART2CON        SFR_RW (SFR9_BASE + 0x18*4)
#define UART2CPND       SFR_WO (SFR9_BASE + 0x19*4)
#define UART2BAUD       SFR_RW (SFR9_BASE + 0x1a*4)
#define UART2DATA       SFR_RW (SFR9_BASE + 0x1b*4)
#define PORTINTEDG      SFR_RW (SFR9_BASE + 0x1e*4)
#define PORTINTEN       SFR_RW (SFR9_BASE + 0x1f*4)

#define SPI1CON         SFR_RW (SFR9_BASE + 0x20*4)
#define SPI1BUF         SFR_RW (SFR9_BASE + 0x21*4)
#define SPI1BAUD        SFR_RW (SFR9_BASE + 0x22*4)
#define SPI1CPND        SFR_RW (SFR9_BASE + 0x23*4)
#define SPI1DMACNT      SFR_RW (SFR9_BASE + 0x24*4)
#define SPI1DMAADR      SFR_RW (SFR9_BASE + 0x25*4)

#endif