summaryrefslogtreecommitdiff
path: root/bsp/asm9260t/platform/asm9260t.h
blob: 440375ce9ae1014f219f1e0b265298618a3bcce0 (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
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
#ifndef __ASM9260T_REGS_H__
#define __ASM9260T_REGS_H__
////////////////////////////////////////////////////////////////////////////////

typedef volatile unsigned char *VP8;
typedef volatile unsigned short *VP16;
typedef volatile unsigned long *VP32;

#define __I  volatile const   /*!< Defines 'read only' permissions    */
#define __O  volatile         /*!< Defines 'write only' permissions   */
#define __IO volatile         /*!< Defines 'read / write' permissions */

#define outb(v, r)      do{*((VP8)(r))=(v);}while(0)
#define outw(v, r)      do{*((VP16)(r))=(v);}while(0)
#define outl(v, r)      do{*((VP32)(r))=(v);}while(0)

#define inb(r)          (*((VP8)(r)))
#define inw(r)          (*((VP16)(r)))
#define inl(r)          (*((VP32)(r)))

#define REG_VAL(r)      (((unsigned long)(r))+0x00)
#define REG_SET(r)      (((unsigned long)(r))+0x04)
#define REG_CLR(r)      (((unsigned long)(r))+0x08)
#define REG_TOG(r)      (((unsigned long)(r))+0x0C)

////////////////////////////////////////////////////////////////////////////////
// SYSTEM CONFIG
#define HW_PRESETCTRL0        0x80040000
#define HW_PRESETCTRL1        0x80040010
#define HW_AHBCLKCTRL0        0x80040020
#define HW_AHBCLKCTRL1        0x80040030
#define HW_SYSTCKCAL          0x80040040
#define HW_SYSPLLCTRL         0x80040100
#define HW_SYSPLLSTAT         0x80040104
#define HW_SYSRSTSTAT         0x80040110
#define HW_MAINCLKSEL         0x80040120
#define HW_MAINCLKUEN         0x80040124
#define HW_UARTCLKSEL         0x80040128
#define HW_UARTCLKUEN         0x8004012C
#define HW_I2S0CLKSEL         0x80040130
#define HW_I2S0CLKUEN         0x80040134
#define HW_I2S1CLKSEL         0x80040138
#define HW_I2S1CLKUEN         0x8004013C
#define HW_USBCLKSEL          0x80040140
#define HW_USBCLKUEN          0x80040144
#define HW_WDTCLKSEL          0x80040160
#define HW_WDTCLKUEN          0x80040164
#define HW_OUTCLKSEL          0x80040170
#define HW_OUTCLKUEN          0x80040174
#define HW_CPUCLKDIV          0x8004017C
#define HW_SYSAHBCLKDIV       0x80040180
#define HW_I2S1_MCLKDIV       0x80040188
#define HW_I2S1_SCLKDIV       0x8004018C
#define HW_I2S0_MCLKDIV       0x80040190
#define HW_I2S0_SCLKDIV       0x80040194
#define HW_UART0CLKDIV        0x80040198
#define HW_UART1CLKDIV        0x8004019C
#define HW_UART2CLKDIV        0x800401A0
#define HW_UART3CLKDIV        0x800401A4
#define HW_UART4CLKDIV        0x800401A8
#define HW_UART5CLKDIV        0x800401AC
#define HW_UART6CLKDIV        0x800401B0
#define HW_UART7CLKDIV        0x800401B4
#define HW_UART8CLKDIV        0x800401B8
#define HW_UART9CLKDIV        0x800401BC
#define HW_SPI0CLKDIV         0x800401C0
#define HW_SPI1CLKDIV         0x800401C4
#define HW_QUADSPI0CLKDIV     0x800401C8
#define HW_SSP0CLKDIV         0x800401D0
#define HW_NANDCLKDIV         0x800401D4
#define HW_TRACECLKDIV        0x800401E0
#define HW_CAMMCLKDIV         0x800401E8
#define HW_WDTCLKDIV          0x800401EC
#define HW_USBCLKDIV          0x800401F0
#define HW_OUTCLKDIV          0x800401F4
#define HW_MACCLKDIV          0x800401F8
#define HW_LCDCLKDIV          0x800401FC
#define HW_ADCCLKDIV          0x80040200
#define HW_PDRUNCFG           0x80040238
#define HW_MATRIXPRI0         0x80040300
#define HW_MATRIXPRI1         0x80040304
#define HW_MATRIXPRI2         0x80040308
#define HW_MATRIXPRI3         0x8004030C
#define HW_MATRIXPRI4         0x80040310
#define HW_MATRIXPRI5         0x80040314
#define HW_MATRIXPRI6         0x80040318
#define HW_MATRIXPRI7         0x8004031C
#define HW_MATRIXPRI8         0x80040320
#define HW_MATRIXPRI9         0x80040324
#define HW_MATRIXPRI10        0x80040328
#define HW_MATRIXPRI11        0x8004032C
#define HW_MATRIXPRI12        0x80040330
#define HW_MATRIXPRI13        0x80040334
#define HW_MATRIXPRI14        0x80040338
#define HW_MATRIXPRI15        0x8004033C
#define HW_EMI_CTRL           0x8004034C
#define HW_RISC_CTRL          0x80040350
#define HW_DMA_CTRL           0x80040354
#define HW_MACPHY_SEL         0x80040360
#define HW_USB_CTRL           0x80040368
#define HW_ANA_CTRL           0x80040370
#define HW_USB0_TEST          0x80040380
#define HW_USB1_TEST          0x80040390
#define HW_USB0_RSTPARA       0x800403A0
#define HW_USB1_RSTPARA       0x800403B0
#define HW_DEVICEID           0x80040400
#define HW_PCON_ADDR          0x80040500

////////////////////////////////////////////////////////////////////////////////
// EMI
#define HW_EMI_SCONR          0x80700000    
#define HW_EMI_STMG0R         0x80700004
#define HW_EMI_STMG1R         0x80700008
#define HW_EMI_SCTLR          0x8070000C
#define HW_EMI_SREFR          0x80700010
#define HW_EMI_SCSLR0_LOW     0x80700014
#define HW_EMI_SCSLR1_LOW     0x80700018
#define HW_EMI_SCSLR2_LOW     0x8070001c
#define HW_EMI_SCSLR3_LOW     0x80700020
#define HW_EMI_SCSLR4_LOW     0x80700024
#define HW_EMI_SCSLR5_LOW     0x80700028
#define HW_EMI_SCSLR6_LOW     0x8070002c
#define HW_EMI_SCSLR7_LOW     0x80700030

#define HW_EMI_SMSKR0         0x80700054
#define HW_EMI_SMSKR1         0x80700058
#define HW_EMI_SMSKR2         0x8070005c
#define HW_EMI_SMSKR3         0x80700060
#define HW_EMI_SMSKR4         0x80700064
#define HW_EMI_SMSKR5         0x80700068
#define HW_EMI_SMSKR6         0x8070006c
#define HW_EMI_SMSKR7         0x80700070

#define HW_EMI_CSALIAS0_LOW   0x80700074
#define HW_EMI_CSALIAS1_LOW   0x80700078

#define HW_EMI_CSREMAP0_LOW   0x80700084
#define HW_EMI_CSREMAP1_LOW   0x80700088

#define HW_EMI_SMTMGR_SET0    0x80700094
#define HW_EMI_SMTMGR_SET1    0x80700098
#define HW_EMI_SMTMGR_SET2    0x8070009c

#define HW_EMI_FLASH_TRPDR    0x807000a0
#define HW_EMI_SMCTLR         0x807000a4
#define HW_EMI_EXN_MODE_REG   0x807000ac

////////////////////////////////////////////////////////////////////////////////
// IOCON
#define HW_IOCON_PIO_BASE     0x80044000
#define HW_IOCON_SCKLOC       0x800442c0
#define HW_IOCON(port,pin)    (HW_IOCON_PIO_BASE|(((port)<<5)|((pin)<<2)))

////////////////////////////////////////////////////////////////////////////////
// GPIO
#define HW_GPIO_DATA_BASE     0x50000000

#define HW_GPIO_DMA_CTRL      0x50000010
#define HW_GPIO_DMA_DATA      0x50000020
#define HW_GPIO_DMA_PADCTRL0  0x50000030
#define HW_GPIO_DMA_PADCTRL1  0x50000040
#define HW_GPIO_DMA_PADCTRL2  0x50000050
#define HW_GPIO_DMA_PADCTRL3  0x50000060
#define HW_GPIO_DMA_CTRL1     0x50000070
#define HW_GPIO_DMA_CTRL2     0x50000080
#define HW_GPIO_DMA_CTRL3     0x50000090
#define HW_GPIO_DMA_CTRL4     0x500000a0

#define HW_GPIO_DATA0         0x50000000
#define HW_GPIO_DATA1         0x50010000
#define HW_GPIO_DATA2         0x50020000
#define HW_GPIO_DATA3         0x50030000
#define HW_GPIO_DATA4         0x50040000

#define HW_GPIO_DIR0          0x50008000
#define HW_GPIO_DIR1          0x50018000
#define HW_GPIO_DIR2          0x50028000
#define HW_GPIO_DIR3          0x50038000
#define HW_GPIO_DIR4          0x50048000

#define HW_GPIO_IS0           0x50008010
#define HW_GPIO_IS1           0x50018010
#define HW_GPIO_IS2           0x50028010
#define HW_GPIO_IS3           0x50038010
#define HW_GPIO_IS4           0x50048010

#define HW_GPIO_IBE0          0x50008020
#define HW_GPIO_IBE1          0x50018020
#define HW_GPIO_IBE2          0x50028020
#define HW_GPIO_IBE3          0x50038020
#define HW_GPIO_IBE4          0x50048020

#define HW_GPIO_IEV0          0x50008030
#define HW_GPIO_IEV1          0x50018030
#define HW_GPIO_IEV2          0x50028030
#define HW_GPIO_IEV3          0x50038030
#define HW_GPIO_IEV4          0x50048030

#define HW_GPIO_IE0           0x50008040
#define HW_GPIO_IE1           0x50018040
#define HW_GPIO_IE2           0x50028040
#define HW_GPIO_IE3           0x50038040
#define HW_GPIO_IE4           0x50048040

#define HW_GPIO_RIS0          0x50008050
#define HW_GPIO_RIS1          0x50018050
#define HW_GPIO_RIS2          0x50028050
#define HW_GPIO_RIS3          0x50038050
#define HW_GPIO_RIS4          0x50048050

#define HW_GPIO_MIS0          0x50008060
#define HW_GPIO_MIS1          0x50018060
#define HW_GPIO_MIS2          0x50028060
#define HW_GPIO_MIS3          0x50038060
#define HW_GPIO_MIS4          0x50048060

#define HW_GPIO_IC0           0x50008070
#define HW_GPIO_IC1           0x50018070
#define HW_GPIO_IC2           0x50028070
#define HW_GPIO_IC3           0x50038070
#define HW_GPIO_IC4           0x50048070 

#define HW_GPIO_DATAMASK0     0x50008080
#define HW_GPIO_DATAMASK1     0x50018080
#define HW_GPIO_DATAMASK2     0x50028080
#define HW_GPIO_DATAMASK3     0x50038080
#define HW_GPIO_DATAMASK4     0x50048080 

////////////////////////////////////////////////////////////////////////////////
// Quad-SPI0
#define QSPI0_BASE_ADDRESS    0x80068000
#define HW_QSPI0_CTRL0        0x80068000
#define HW_QSPI0_CTRL1        0x80068010
#define HW_QSPI0_CMD          0x80068020
#define HW_QSPI0_TIMING       0x80068030
#define HW_QSPI0_DATA         0x80068040
#define HW_QSPI0_STATUS       0x80068050
#define HW_QSPI0_DEBUG0       0x80068060
#define HW_QSPI0_XFER         0x80068070

/////////////////////////////////////////////////////////
//DMA0
#define HW_DMA0_SAR0           0x80100000
#define HW_DMA0_DAR0           0x80100008
#define HW_DMA0_LLP0           0x80100010
#define HW_DMA0_CTL0           0x80100018
#define HW_DMA0_SSTAT0         0x80100020
#define HW_DMA0_DSTAT0         0x80100028
#define HW_DMA0_SSTATAR0       0x80100030      
#define HW_DMA0_DSTATAR0       0x80100038 
#define HW_DMA0_CFG0           0x80100040
#define HW_DMA0_SGR0           0x80100048
#define HW_DMA0_DSR0           0x80100050

#define HW_DMA0_SAR1           0x80100058
#define HW_DMA0_DAR1           0x80100060
#define HW_DMA0_LLP1           0x80100068
#define HW_DMA0_CTL1           0x80100070
#define HW_DMA0_SSTAT1         0x80100078
#define HW_DMA0_DSTAT1         0x80100080
#define HW_DMA0_SSTATAR1       0x80100088      
#define HW_DMA0_DSTATAR1       0x80100090 
#define HW_DMA0_CFG1           0x80100098
#define HW_DMA0_SGR1           0x801000a0
#define HW_DMA0_DSR1           0x801000a8

#define HW_DMA0_SAR2           0x801000b0
#define HW_DMA0_DAR2           0x801000b8
#define HW_DMA0_LLP2           0x801000c0
#define HW_DMA0_CTL2           0x801000c8
#define HW_DMA0_SSTAT2         0x801000d0
#define HW_DMA0_DSTAT2         0x801000d8
#define HW_DMA0_SSTATAR2       0x801000e0      
#define HW_DMA0_DSTATAR2       0x801000e8 
#define HW_DMA0_CFG2           0x801000f0
#define HW_DMA0_SGR2           0x801000f8
#define HW_DMA0_DSR2           0x80100100

#define HW_DMA0_SAR3           0x80100108
#define HW_DMA0_DAR3           0x80100110
#define HW_DMA0_LLP3           0x80100118
#define HW_DMA0_CTL3           0x80100120
#define HW_DMA0_SSTAT3         0x80100128
#define HW_DMA0_DSTAT3         0x80100130
#define HW_DMA0_SSTATAR3       0x80100138      
#define HW_DMA0_DSTATAR3       0x80100140 
#define HW_DMA0_CFG3           0x80100148
#define HW_DMA0_SGR3           0x80100150
#define HW_DMA0_DSR3           0x80100158

#define HW_DMA0_SAR4           0x80100160
#define HW_DMA0_DAR4           0x80100168
#define HW_DMA0_LLP4           0x80100170
#define HW_DMA0_CTL4           0x80100178
#define HW_DMA0_SSTAT4         0x80100180
#define HW_DMA0_DSTAT4         0x80100188
#define HW_DMA0_SSTATAR4       0x80100190      
#define HW_DMA0_DSTATAR4       0x80100198 
#define HW_DMA0_CFG4           0x801001a0
#define HW_DMA0_SGR4           0x801001a8
#define HW_DMA0_DSR4           0x801001b0

#define HW_DMA0_SAR5           0x801001b8
#define HW_DMA0_DAR5           0x801001c0
#define HW_DMA0_LLP5           0x801001c8
#define HW_DMA0_CTL5           0x801001d0
#define HW_DMA0_SSTAT5         0x801001d8
#define HW_DMA0_DSTAT5         0x801001e0
#define HW_DMA0_SSTATAR5       0x801001e8      
#define HW_DMA0_DSTATAR5       0x801001f0 
#define HW_DMA0_CFG5           0x801001f8
#define HW_DMA0_SGR5           0x80100200
#define HW_DMA0_DSR5           0x80100208

#define HW_DMA0_SAR6           0x80100210
#define HW_DMA0_DAR6           0x80100218
#define HW_DMA0_LLP6           0x80100220
#define HW_DMA0_CTL6           0x80100228
#define HW_DMA0_SSTAT6         0x80100230
#define HW_DMA0_DSTAT6         0x80100238
#define HW_DMA0_SSTATAR6       0x80100240      
#define HW_DMA0_DSTATAR6       0x80100248 
#define HW_DMA0_CFG6           0x80100250
#define HW_DMA0_SGR6           0x80100258
#define HW_DMA0_DSR6           0x80100260

#define HW_DMA0_SAR7           0x80100268
#define HW_DMA0_DAR7           0x80100270
#define HW_DMA0_LLP7           0x80100278
#define HW_DMA0_CTL7           0x80100280
#define HW_DMA0_SSTAT7         0x80100288
#define HW_DMA0_DSTAT7         0x80100290
#define HW_DMA0_SSTATAR7       0x80100298      
#define HW_DMA0_DSTATAR7       0x801002a0 
#define HW_DMA0_CFG7           0x801002a8
#define HW_DMA0_SGR7           0x801002b0
#define HW_DMA0_DSR7           0x801002b8

#define HW_DMA0_RawTFR         0x801002c0
#define HW_DMA0_RawBLOCK       0x801002c8
#define HW_DMA0_RawSRCTRAN     0x801002d0
#define HW_DMA0_RawDSTTRAN     0x801002d8
#define HW_DMA0_RawERR         0x801002e0

#define HW_DMA0_StatusTFR      0x801002e8
#define HW_DMA0_StatusBLOCK    0x801002f0
#define HW_DMA0_StatusSRCTRAN  0x801002f8
#define HW_DMA0_StatusDSTTRAN  0x80100300
#define HW_DMA0_StatusERR      0x80100308

#define HW_DMA0_MaskTFR        0x80100310
#define HW_DMA0_MaskBLOCK      0x80100318
#define HW_DMA0_MaskSRCTRAN    0x80100320
#define HW_DMA0_MaskDSTTRAN    0x80100328
#define HW_DMA0_MaskERR        0x80100330

#define HW_DMA0_ClearTFR       0x80100338
#define HW_DMA0_ClearBLOCK     0x80100340
#define HW_DMA0_ClearSRCTRAN   0x80100348
#define HW_DMA0_ClearDSTTRAN   0x80100350
#define HW_DMA0_ClearERR       0x80100358

#define HW_DMA0_STATUSINT      0x80100360

#define HW_DMA0_ReqSrcReg      0x80100368
#define HW_DMA0_ReqDstReg      0x80100370
#define HW_DMA0_SglReqSrcReg   0x80100378
#define HW_DMA0_SglReqDstReg   0x80100380
#define HW_DMA0_LstSrcReg      0x80100388
#define HW_DMA0_LstDstReg      0x80100390

#define HW_DMA0_DMACFGREG      0x80100398
#define HW_DMA0_CHENREG        0x801003a0

////////////////////////////////////////////////////////////////////////////////
// DMA1
#define HW_DMA1_SAR0          0x80200000
#define HW_DMA1_DAR0          0x80200008
#define HW_DMA1_LLP0          0x80200010
#define HW_DMA1_CTL0          0x80200018
#define HW_DMA1_SSTAT0        0x80200020
#define HW_DMA1_DSTAT0        0x80200028
#define HW_DMA1_SSTATAR0      0x80200030
#define HW_DMA1_DSTATAR0      0x80200038
#define HW_DMA1_CFG0          0x80200040
#define HW_DMA1_SGR0          0x80200048
#define HW_DMA1_DSR0          0x80200050

#define HW_DMA1_SAR1          0x80200058
#define HW_DMA1_DAR1          0x80200060
#define HW_DMA1_LLP1          0x80200068
#define HW_DMA1_CTL1          0x80200070
#define HW_DMA1_SSTAT1        0x80200078
#define HW_DMA1_DSTAT1        0x80200080
#define HW_DMA1_SSTATAR1      0x80200088
#define HW_DMA1_DSTATAR1      0x80200090
#define HW_DMA1_CFG1          0x80200098
#define HW_DMA1_SGR1          0x802000a0
#define HW_DMA1_DSR1          0x802000a8

#define HW_DMA1_SAR2          0x802000b0
#define HW_DMA1_DAR2          0x802000b8
#define HW_DMA1_LLP2          0x802000c0
#define HW_DMA1_CTL2          0x802000c8
#define HW_DMA1_SSTAT2        0x802000d0
#define HW_DMA1_DSTAT2        0x802000d8
#define HW_DMA1_SSTATAR2      0x802000e0
#define HW_DMA1_DSTATAR2      0x802000e8
#define HW_DMA1_CFG2          0x802000f0
#define HW_DMA1_SGR2          0x802000f8
#define HW_DMA1_DSR2          0x80200100

#define HW_DMA1_SAR3          0x80200108
#define HW_DMA1_DAR3          0x80200110
#define HW_DMA1_LLP3          0x80200118
#define HW_DMA1_CTL3          0x80200120
#define HW_DMA1_SSTAT3        0x80200128
#define HW_DMA1_DSTAT3        0x80200130
#define HW_DMA1_SSTATAR3      0x80200138
#define HW_DMA1_DSTATAR3      0x80200140
#define HW_DMA1_CFG3          0x80200148
#define HW_DMA1_SGR3          0x80200150
#define HW_DMA1_DSR3          0x80200158

#define HW_DMA1_SAR4          0x80200160
#define HW_DMA1_DAR4          0x80200168
#define HW_DMA1_LLP4          0x80200170
#define HW_DMA1_CTL4          0x80200178
#define HW_DMA1_SSTAT4        0x80200180
#define HW_DMA1_DSTAT4        0x80200188
#define HW_DMA1_SSTATAR4      0x80200190
#define HW_DMA1_DSTATAR4      0x80200198
#define HW_DMA1_CFG4          0x802001a0
#define HW_DMA1_SGR4          0x802001a8
#define HW_DMA1_DSR4          0x802001b0

#define HW_DMA1_SAR5          0x802001b8
#define HW_DMA1_DAR5          0x802001c0
#define HW_DMA1_LLP5          0x802001c8
#define HW_DMA1_CTL5          0x802001d0
#define HW_DMA1_SSTAT5        0x802001d8
#define HW_DMA1_DSTAT5        0x802001e0
#define HW_DMA1_SSTATAR5      0x802001e8
#define HW_DMA1_DSTATAR5      0x802001f0
#define HW_DMA1_CFG5          0x802001f8
#define HW_DMA1_SGR5          0x80200200
#define HW_DMA1_DSR5          0x80200208

#define HW_DMA1_SAR6          0x80200210
#define HW_DMA1_DAR6          0x80200218
#define HW_DMA1_LLP6          0x80200220
#define HW_DMA1_CTL6          0x80200228
#define HW_DMA1_SSTAT6        0x80200230
#define HW_DMA1_DSTAT6        0x80200238
#define HW_DMA1_SSTATAR6      0x80200240
#define HW_DMA1_DSTATAR6      0x80200248
#define HW_DMA1_CFG6          0x80200250
#define HW_DMA1_SGR6          0x80200258
#define HW_DMA1_DSR6          0x80200260

#define HW_DMA1_SAR7          0x80200268
#define HW_DMA1_DAR7          0x80200270
#define HW_DMA1_LLP7          0x80200278
#define HW_DMA1_CTL7          0x80200280
#define HW_DMA1_SSTAT7        0x80200288
#define HW_DMA1_DSTAT7        0x80200290
#define HW_DMA1_SSTATAR7      0x80200298
#define HW_DMA1_DSTATAR7      0x802002a0
#define HW_DMA1_CFG7          0x802002a8
#define HW_DMA1_SGR7          0x802002b0
#define HW_DMA1_DSR7          0x802002b8

#define HW_DMA1_RawTFR        0x802002c0
#define HW_DMA1_RawBLOCK      0x802002c8
#define HW_DMA1_RawSRCTRAN    0x802002d0
#define HW_DMA1_RawDSTTRAN    0x802002d8
#define HW_DMA1_RawERR        0x802002e0

#define HW_DMA1_StatusTFR     0x802002e8
#define HW_DMA1_StatusBLOCK   0x802002f0
#define HW_DMA1_StatusSRCTRAN 0x802002f8
#define HW_DMA1_StatusDSTTRAN 0x80200300
#define HW_DMA1_StatusERR     0x80200308

#define HW_DMA1_MaskTFR       0x80200310
#define HW_DMA1_MaskBLOCK     0x80200318
#define HW_DMA1_MaskSRCTRAN   0x80200320
#define HW_DMA1_MaskDSTTRAN   0x80200328
#define HW_DMA1_MaskERR       0x80200330

#define HW_DMA1_ClearTFR      0x80200338
#define HW_DMA1_ClearBLOCK    0x80200340
#define HW_DMA1_ClearSRCTRAN  0x80200348
#define HW_DMA1_ClearDSTTRAN  0x80200350
#define HW_DMA1_ClearERR      0x80200358

#define HW_DMA1_STATUSINT     0x80200360

#define HW_DMA1_ReqSrcReg     0x80200368
#define HW_DMA1_ReqDstReg     0x80200370
#define HW_DMA1_SglReqSrcReg  0x80200378
#define HW_DMA1_SglReqDstReg  0x80200380
#define HW_DMA1_LstSrcReg     0x80200388
#define HW_DMA1_LstDstReg     0x80200390

#define HW_DMA1_DMACFGREG     0x80200398
#define HW_DMA1_CHENREG       0x802003a0

////////////////////////////////////////////////////////////////////////////////
// ICOLL
#define HW_ICOLL_VECTOR       0x80054000
#define HW_ICOLL_LEVELACK     0x80054010
#define HW_ICOLL_CTRL         0x80054020
#define HW_ICOLL_STAT         0x80054030
#define HW_ICOLL_RAW0         0x80054040
#define HW_ICOLL_RAW1         0x80054050
#define HW_ICOLL_PRIORITY0    0x80054060
#define HW_ICOLL_PRIORITY1    0x80054070
#define HW_ICOLL_PRIORITY2    0x80054080
#define HW_ICOLL_PRIORITY3    0x80054090
#define HW_ICOLL_PRIORITY4    0x800540A0
#define HW_ICOLL_PRIORITY5    0x800540B0
#define HW_ICOLL_PRIORITY6    0x800540C0
#define HW_ICOLL_PRIORITY7    0x800540D0
#define HW_ICOLL_PRIORITY8    0x800540E0
#define HW_ICOLL_PRIORITY9    0x800540F0
#define HW_ICOLL_PRIORITY10   0x80054100
#define HW_ICOLL_PRIORITY11   0x80054110
#define HW_ICOLL_PRIORITY12   0x80054120
#define HW_ICOLL_PRIORITY13   0x80054130
#define HW_ICOLL_PRIORITY14   0x80054140
#define HW_ICOLL_PRIORITY15   0x80054150
#define HW_ICOLL_VBASE        0x80054160
#define HW_ICOLL_DEBUG        0x80054170
#define HW_ICOLL_DBGREAD0     0x80054180
#define HW_ICOLL_DBGREAD1     0x80054190
#define HW_ICOLL_DBGFLAG      0x800541A0
#define HW_ICOLL_DBGREQUEST0  0x800541B0
#define HW_ICOLL_DBGREQUEST1  0x800541C0
#define HW_ICOLL_CLEAR0       0x800541D0
#define HW_ICOLL_CLEAR1       0x800541E0
#define HW_ICOLL_UNDEF_VECTOR 0x800541F0

////////////////////////////////////////////////////////////////////////////////
// TIMER0
#define HW_TIMER0_IR          0x80088000
#define HW_TIMER0_TCR         0x80088010
#define HW_TIMER0_DIR         0x80088020
#define HW_TIMER0_TC0         0x80088030
#define HW_TIMER0_TC1         0x80088040
#define HW_TIMER0_TC2         0x80088050
#define HW_TIMER0_TC3         0x80088060
#define HW_TIMER0_PR          0x80088070
#define HW_TIMER0_PC          0x80088080
#define HW_TIMER0_MCR         0x80088090
#define HW_TIMER0_MR0         0x800880a0
#define HW_TIMER0_MR1         0x800880b0
#define HW_TIMER0_MR2         0x800880C0
#define HW_TIMER0_MR3         0x800880D0
#define HW_TIMER0_CCR         0x800880E0
#define HW_TIMER0_CR0         0x800880F0
#define HW_TIMER0_CR1         0x80088100
#define HW_TIMER0_CR2         0x80088110
#define HW_TIMER0_CR3         0x80088120
#define HW_TIMER0_EMR         0x80088130
#define HW_TIMER0_PWMTH0      0x80088140
#define HW_TIMER0_PWMTH1      0x80088150
#define HW_TIMER0_PWMTH2      0x80088160
#define HW_TIMER0_PWMTH3      0x80088170
#define HW_TIMER0_CTCR        0x80088180
#define HW_TIMER0_PWMC        0x80088190

////////////////////////////////////////////////////////////////////////////////
// USART

typedef struct {
  __IO unsigned long CTRL0[4];
  __IO unsigned long CTRL1[4];
  __IO unsigned long CTRL2[4];
  __IO unsigned long LINECTRL[4];
  __IO unsigned long INTR[4];
  __IO unsigned long DATA[4];
  __IO unsigned long STAT[4];
  __I  unsigned long DEBUG[4];
  __IO unsigned long ILPR[4];
  __IO unsigned long RS485CTRL[4];
  __IO unsigned long RS485ADRMATCH[4];
  __IO unsigned long RS485DLY[4];
  __IO unsigned long AUTOBAUD[4];
  __IO unsigned long CTRL3[4];
} ASM_USART_TypeDef;

#define UART0_BASE            0x80000000
#define UART1_BASE            0x80004000
#define UART2_BASE            0x80008000
#define UART3_BASE            0x8000C000
#define UART4_BASE            0x80010000
#define UART5_BASE            0x80014000
#define UART6_BASE            0x80018000
#define UART7_BASE            0x8001C000
#define UART8_BASE            0x80020000
#define UART9_BASE            0x80024000

////////////////////////////////////////////////////////////////////////////////
// MAC
#define HW_ETH_BASE_ADDR      0x80500000
#define HW_ETH_MACCR          (HW_ETH_BASE_ADDR + 0x0000)
#define HW_ETH_MACFFR         (HW_ETH_BASE_ADDR + 0x0004)
#define HW_ETH_MACHTHR        (HW_ETH_BASE_ADDR + 0x0008)
#define HW_ETH_MACHTLR        (HW_ETH_BASE_ADDR + 0x000C)
#define HW_ETH_MACMIIAR       (HW_ETH_BASE_ADDR + 0x0010)
#define HW_ETH_MACMIIDR       (HW_ETH_BASE_ADDR + 0x0014)
#define HW_ETH_MACFCR         (HW_ETH_BASE_ADDR + 0x0018)
#define HW_ETH_MACVLANTR      (HW_ETH_BASE_ADDR + 0x001C)
#define HW_ETH_MACVR          (HW_ETH_BASE_ADDR + 0x0020)
#define HW_ETH_MACRWUFFR      (HW_ETH_BASE_ADDR + 0x0028)
#define HW_ETH_MACPMTCSR      (HW_ETH_BASE_ADDR + 0x002C)
#define HW_ETH_MACDBGR        (HW_ETH_BASE_ADDR + 0x0034)
#define HW_ETH_MACISR         (HW_ETH_BASE_ADDR + 0x0038)
#define HW_ETH_MACIMR         (HW_ETH_BASE_ADDR + 0x003C)
#define HW_ETH_MACA0HR        (HW_ETH_BASE_ADDR + 0x0040)
#define HW_ETH_MACA0LR        (HW_ETH_BASE_ADDR + 0x0044)
#define HW_ETH_MACA1HR        (HW_ETH_BASE_ADDR + 0x0048)
#define HW_ETH_MACA1LR        (HW_ETH_BASE_ADDR + 0x004C)
#define HW_ETH_MACA2HR        (HW_ETH_BASE_ADDR + 0x0050)
#define HW_ETH_MACA2LR        (HW_ETH_BASE_ADDR + 0x0054)
#define HW_ETH_MACA3HR        (HW_ETH_BASE_ADDR + 0x0058)
#define HW_ETH_MACA3LR        (HW_ETH_BASE_ADDR + 0x005C)
#define HW_ETH_MACA4HR        (HW_ETH_BASE_ADDR + 0x0060)
#define HW_ETH_MACA4LR        (HW_ETH_BASE_ADDR + 0x0064)
#define HW_ETH_MMCCR          (HW_ETH_BASE_ADDR + 0x0100)
#define HW_ETH_MMCRIR         (HW_ETH_BASE_ADDR + 0x0104)
#define HW_ETH_MMCTIR         (HW_ETH_BASE_ADDR + 0x0108)
#define HW_ETH_MMCRIMR        (HW_ETH_BASE_ADDR + 0x010C)
#define HW_ETH_MMCTIMR        (HW_ETH_BASE_ADDR + 0x0110)
#define HW_ETH_MMCTGFSCCR     (HW_ETH_BASE_ADDR + 0x014C)
#define HW_ETH_MMCTGFMSCCR    (HW_ETH_BASE_ADDR + 0x0150)
#define HW_ETH_MMCTGFCR       (HW_ETH_BASE_ADDR + 0x0168)
#define HW_ETH_MMCRFCECR      (HW_ETH_BASE_ADDR + 0x0194)
#define HW_ETH_MMCRFAECR      (HW_ETH_BASE_ADDR + 0x0198)
#define HW_ETH_MMCRGUFCR      (HW_ETH_BASE_ADDR + 0x01C4)
#define HW_ETH_PTPTSCR        (HW_ETH_BASE_ADDR + 0x0700)
#define HW_ETH_PTPSSIR        (HW_ETH_BASE_ADDR + 0x0704)
#define HW_ETH_PTPTSHR        (HW_ETH_BASE_ADDR + 0x0708)
#define HW_ETH_PTPTSLR        (HW_ETH_BASE_ADDR + 0x070C)
#define HW_ETH_PTPTSHUR       (HW_ETH_BASE_ADDR + 0x0710)
#define HW_ETH_PTPTSLUR       (HW_ETH_BASE_ADDR + 0x0714)
#define HW_ETH_PTPTSAR        (HW_ETH_BASE_ADDR + 0x0718)
#define HW_ETH_PTPTTHR        (HW_ETH_BASE_ADDR + 0x071C)
#define HW_ETH_PTPTTLR        (HW_ETH_BASE_ADDR + 0x0720)
#define HW_ETH_PTPTSSR        (HW_ETH_BASE_ADDR + 0x0728)
#define HW_ETH_PTPPPSCR       (HW_ETH_BASE_ADDR + 0x072C)
#define HW_ETH_DMABMR         (HW_ETH_BASE_ADDR + 0x1000)
#define HW_ETH_DMATPDR        (HW_ETH_BASE_ADDR + 0x1004)
#define HW_ETH_DMARPDR        (HW_ETH_BASE_ADDR + 0x1008)
#define HW_ETH_DMARDLAR       (HW_ETH_BASE_ADDR + 0x100C)
#define HW_ETH_DMATDLAR       (HW_ETH_BASE_ADDR + 0x1010)
#define HW_ETH_DMASR          (HW_ETH_BASE_ADDR + 0x1014)
#define HW_ETH_DMAOMR         (HW_ETH_BASE_ADDR + 0x1018)
#define HW_ETH_DMAIER         (HW_ETH_BASE_ADDR + 0x101C)
#define HW_ETH_DMAMFBOCR      (HW_ETH_BASE_ADDR + 0x1020)
#define HW_ETH_DMARSWTR       (HW_ETH_BASE_ADDR + 0x1024)
#define HW_ETH_DMACHTDR       (HW_ETH_BASE_ADDR + 0x1048)
#define HW_ETH_DMACHRDR       (HW_ETH_BASE_ADDR + 0x104C)
#define HW_ETH_DMACHTBAR      (HW_ETH_BASE_ADDR + 0x1050)
#define HW_ETH_DMACHRBAR      (HW_ETH_BASE_ADDR + 0x1054)

////////////////////////////////////////////////////////////////////////////////
#endif /* __ASM9260T_REGS_H__ */