xref: /nrf52832-nimble/rt-thread/libcpu/unicore32/sep6200/sep6200.h (revision 104654410c56c573564690304ae786df310c91fc)
1*10465441SEvalZero /*
2*10465441SEvalZero  * File      : sep6200.h
3*10465441SEvalZero  * This file is part of RT-Thread RTOS
4*10465441SEvalZero  * COPYRIGHT (C) 2006 - 2013, RT-Thread Development Team
5*10465441SEvalZero  *
6*10465441SEvalZero  *  This program is free software; you can redistribute it and/or modify
7*10465441SEvalZero  *  it under the terms of the GNU General Public License as published by
8*10465441SEvalZero  *  the Free Software Foundation; either version 2 of the License, or
9*10465441SEvalZero  *  (at your option) any later version.
10*10465441SEvalZero  *
11*10465441SEvalZero  *  This program is distributed in the hope that it will be useful,
12*10465441SEvalZero  *  but WITHOUT ANY WARRANTY; without even the implied warranty of
13*10465441SEvalZero  *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
14*10465441SEvalZero  *  GNU General Public License for more details.
15*10465441SEvalZero  *
16*10465441SEvalZero  *  You should have received a copy of the GNU General Public License along
17*10465441SEvalZero  *  with this program; if not, write to the Free Software Foundation, Inc.,
18*10465441SEvalZero  *  51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
19*10465441SEvalZero  *
20*10465441SEvalZero  * Change Logs:
21*10465441SEvalZero  * Date           Author       Notes
22*10465441SEvalZero  * 2013-7-17      Peng Fan     sep6200 implementation
23*10465441SEvalZero  */
24*10465441SEvalZero 
25*10465441SEvalZero #ifndef __SEP6200_H
26*10465441SEvalZero #define __SEP6200_H
27*10465441SEvalZero 
28*10465441SEvalZero #include <rtthread.h>
29*10465441SEvalZero 
30*10465441SEvalZero /*Core definations*/
31*10465441SEvalZero #define PRIVMODE  0x13
32*10465441SEvalZero #define	Mode_USR	0x10
33*10465441SEvalZero #define	Mode_REAL	0x11
34*10465441SEvalZero #define	Mode_IRQ	0x12
35*10465441SEvalZero #define	Mode_PRIV	0x13
36*10465441SEvalZero #define	Mode_TRAP	0x17
37*10465441SEvalZero #define	Mode_EXT	0x1B
38*10465441SEvalZero #define	Mode_SUSR	0x1F
39*10465441SEvalZero 
40*10465441SEvalZero /*
41*10465441SEvalZero  *  Address
42*10465441SEvalZero  */
43*10465441SEvalZero 
44*10465441SEvalZero #define	 SEP6200_VIC_BASE	0xb0000000
45*10465441SEvalZero #define  SEP6200_PMU_BASE	0xb0001000
46*10465441SEvalZero #define  SEP6200_RTC_BASE	0xb0002000
47*10465441SEvalZero #define	 SEP6200_TIMER_BASE 0xb0003000
48*10465441SEvalZero #define  SEP6200_PWM_BASE	0xb0004000
49*10465441SEvalZero #define  SEP6200_GPIO_BASE	0xb0006000
50*10465441SEvalZero #define  SEP6200_TOUCH_ADC	0xb0007000
51*10465441SEvalZero #define  SEP6200_SYSCTL_BASE	0xb0008000
52*10465441SEvalZero #define  SEP6200_UART0_BASE	0xb1000000
53*10465441SEvalZero #define  SEP6200_UART1_BASE	0xb1001000
54*10465441SEvalZero #define  SEP6200_UART2_BASE	0xb1002000
55*10465441SEvalZero #define  SEP6200_UART3_BASE	0xb1003000
56*10465441SEvalZero #define	 SEP6200_SSI1_BASE	0xb1004000
57*10465441SEvalZero #define	 SEP6200_SSI2_BASE	0xb1005000
58*10465441SEvalZero #define	 SEP6200_SSI3_BASE	0xb1006000
59*10465441SEvalZero #define  SEP6200_I2C_BASE	0xb1007000
60*10465441SEvalZero #define  SEP6200_I2S_BASE	0xb1008000
61*10465441SEvalZero #define  SEP6200_USB_BASE    0xb1010000
62*10465441SEvalZero #define  SEP6200_DMAC2_BASE  0xb1011000
63*10465441SEvalZero #define  SEP6200_ESRAM_BASE  0xb2000000
64*10465441SEvalZero #define	 SEP6200_NORREG_BASE0xb2020000
65*10465441SEvalZero #define	 SEP6200_SDIO1_BASE	0xb2022000
66*10465441SEvalZero #define	 SEP6200_SDIO2_BASE	0xb2023000
67*10465441SEvalZero #define	 SEP6200_LCDC_BASE	0xb2025000
68*10465441SEvalZero #define	 SEP6200_VPU_BASE	0xb2026000
69*10465441SEvalZero #define	 SEP6200_DMAC1_BASE	0xb2027000
70*10465441SEvalZero #define	 SEP6200_DDR2_REG	0xb3000000
71*10465441SEvalZero #define	 SEP6200_DDR_MEM	0x40000000
72*10465441SEvalZero 
73*10465441SEvalZero #define SEP6200_UART0_DLBL	(SEP6200_UART0_BASE+0x00)
74*10465441SEvalZero #define SEP6200_UART0_RXFIFO	(SEP6200_UART0_BASE+0x00)
75*10465441SEvalZero #define SEP6200_UART0_TXFIFO	(SEP6200_UART0_BASE+0x00)
76*10465441SEvalZero #define SEP6200_UART0_DLBH	(SEP6200_UART0_BASE+0x04)
77*10465441SEvalZero #define SEP6200_UART0_IER	(SEP6200_UART0_BASE+0x04)
78*10465441SEvalZero #define SEP6200_UART0_IIR	(SEP6200_UART0_BASE+0x08)
79*10465441SEvalZero #define SEP6200_UART0_FCR	(SEP6200_UART0_BASE+0x08)
80*10465441SEvalZero #define SEP6200_UART0_LCR	(SEP6200_UART0_BASE+0x0c)
81*10465441SEvalZero #define SEP6200_UART0_MCR	(SEP6200_UART0_BASE+0x10)
82*10465441SEvalZero #define SEP6200_UART0_LSR	(SEP6200_UART0_BASE+0x14)
83*10465441SEvalZero #define SEP6200_UART0_MSR	(SEP6200_UART0_BASE+0x18)
84*10465441SEvalZero 
85*10465441SEvalZero 
86*10465441SEvalZero #define    SEP6200_TIMER_T1LCR              (SEP6200_TIMER_BASE + 0X000)
87*10465441SEvalZero #define    SEP6200_TIMER_T1CCR              (SEP6200_TIMER_BASE + 0X004)
88*10465441SEvalZero #define    SEP6200_TIMER_T1CR               (SEP6200_TIMER_BASE + 0X008)
89*10465441SEvalZero #define    SEP6200_TIMER_T1ISCR             (SEP6200_TIMER_BASE + 0X00C)
90*10465441SEvalZero #define    SEP6200_TIMER_T1IMSR             (SEP6200_TIMER_BASE + 0X010)
91*10465441SEvalZero #define    SEP6200_TIMER_T2LCR              (SEP6200_TIMER_BASE + 0X020)
92*10465441SEvalZero #define    SEP6200_TIMER_T2CCR              (SEP6200_TIMER_BASE + 0X024)
93*10465441SEvalZero #define    SEP6200_TIMER_T2CR               (SEP6200_TIMER_BASE + 0X028)
94*10465441SEvalZero #define    SEP6200_TIMER_T2ISCR             (SEP6200_TIMER_BASE + 0X02C)
95*10465441SEvalZero #define    SEP6200_TIMER_T2IMSR             (SEP6200_TIMER_BASE + 0X030)
96*10465441SEvalZero #define    SEP6200_TIMER_T3LCR              (SEP6200_TIMER_BASE + 0X040)
97*10465441SEvalZero #define    SEP6200_TIMER_T3CCR              (SEP6200_TIMER_BASE + 0X044)
98*10465441SEvalZero #define    SEP6200_TIMER_T3CR               (SEP6200_TIMER_BASE + 0X048)
99*10465441SEvalZero #define    SEP6200_TIMER_T3ISCR             (SEP6200_TIMER_BASE + 0X04C)
100*10465441SEvalZero #define    SEP6200_TIMER_T3IMSR             (SEP6200_TIMER_BASE + 0X050)
101*10465441SEvalZero #define    SEP6200_TIMER_T3CAPR             (SEP6200_TIMER_BASE + 0X054)
102*10465441SEvalZero #define    SEP6200_TIMER_T4LCR              (SEP6200_TIMER_BASE + 0X060)
103*10465441SEvalZero #define    SEP6200_TIMER_T4CCR              (SEP6200_TIMER_BASE + 0X064)
104*10465441SEvalZero #define    SEP6200_TIMER_T4CR               (SEP6200_TIMER_BASE + 0X068)
105*10465441SEvalZero #define    SEP6200_TIMER_T4ISCR             (SEP6200_TIMER_BASE + 0X06C)
106*10465441SEvalZero #define    SEP6200_TIMER_T4IMSR             (SEP6200_TIMER_BASE + 0X070)
107*10465441SEvalZero #define    SEP6200_TIMER_T4CAPR             (SEP6200_TIMER_BASE + 0X074)
108*10465441SEvalZero #define    SEP6200_TIMER_T5LCR              (SEP6200_TIMER_BASE + 0X080)
109*10465441SEvalZero #define    SEP6200_TIMER_T5CCR              (SEP6200_TIMER_BASE + 0X084)
110*10465441SEvalZero #define    SEP6200_TIMER_T5CR               (SEP6200_TIMER_BASE + 0X088)
111*10465441SEvalZero #define    SEP6200_TIMER_T5ISCR             (SEP6200_TIMER_BASE + 0X08C)
112*10465441SEvalZero #define    SEP6200_TIMER_T5IMSR             (SEP6200_TIMER_BASE + 0X090)
113*10465441SEvalZero #define    SEP6200_TIMER_T5CAPR             (SEP6200_TIMER_BASE + 0X094)
114*10465441SEvalZero #define    SEP6200_TIMER_T6LCR              (SEP6200_TIMER_BASE + 0X0A0)
115*10465441SEvalZero #define    SEP6200_TIMER_T6CCR              (SEP6200_TIMER_BASE + 0X0A4)
116*10465441SEvalZero #define    SEP6200_TIMER_T6CR               (SEP6200_TIMER_BASE + 0X0A8)
117*10465441SEvalZero #define    SEP6200_TIMER_T6ISCR             (SEP6200_TIMER_BASE + 0X0AC)
118*10465441SEvalZero #define    SEP6200_TIMER_T6IMSR             (SEP6200_TIMER_BASE + 0X0B0)
119*10465441SEvalZero #define    SEP6200_TIMER_T6CAPR             (SEP6200_TIMER_BASE + 0X0B4)
120*10465441SEvalZero #define    SEP6200_TIMER_T7LCR              (SEP6200_TIMER_BASE + 0X0C0)
121*10465441SEvalZero #define    SEP6200_TIMER_T7CCR              (SEP6200_TIMER_BASE + 0X0C4)
122*10465441SEvalZero #define    SEP6200_TIMER_T7CR               (SEP6200_TIMER_BASE + 0X0C8)
123*10465441SEvalZero #define    SEP6200_TIMER_T7ISCR             (SEP6200_TIMER_BASE + 0X0CC)
124*10465441SEvalZero #define    SEP6200_TIMER_T7IMSR             (SEP6200_TIMER_BASE + 0X0D0)
125*10465441SEvalZero #define    SEP6200_TIMER_T8LCR              (SEP6200_TIMER_BASE + 0X0E0)
126*10465441SEvalZero #define    SEP6200_TIMER_T8CCR              (SEP6200_TIMER_BASE + 0X0E4)
127*10465441SEvalZero #define    SEP6200_TIMER_T8CR               (SEP6200_TIMER_BASE + 0X0E8)
128*10465441SEvalZero #define    SEP6200_TIMER_T8ISCR             (SEP6200_TIMER_BASE + 0X0EC)
129*10465441SEvalZero #define    SEP6200_TIMER_T8IMSR             (SEP6200_TIMER_BASE + 0X0F0)
130*10465441SEvalZero #define    SEP6200_TIMER_T9LCR              (SEP6200_TIMER_BASE + 0X100)
131*10465441SEvalZero #define    SEP6200_TIMER_T9CCR              (SEP6200_TIMER_BASE + 0X104)
132*10465441SEvalZero #define    SEP6200_TIMER_T9CR               (SEP6200_TIMER_BASE + 0X108)
133*10465441SEvalZero #define    SEP6200_TIMER_T9ISCR             (SEP6200_TIMER_BASE + 0X10C)
134*10465441SEvalZero #define    SEP6200_TIMER_T9IMSR             (SEP6200_TIMER_BASE + 0X110)
135*10465441SEvalZero #define    SEP6200_TIMER_T10LCR             (SEP6200_TIMER_BASE + 0X120)
136*10465441SEvalZero #define    SEP6200_TIMER_T10CCR             (SEP6200_TIMER_BASE + 0X124)
137*10465441SEvalZero #define    SEP6200_TIMER_T10CR              (SEP6200_TIMER_BASE + 0X128)
138*10465441SEvalZero #define    SEP6200_TIMER_T10ISCR            (SEP6200_TIMER_BASE + 0X12C)
139*10465441SEvalZero #define    SEP6200_TIMER_T10IMSR            (SEP6200_TIMER_BASE + 0X130)
140*10465441SEvalZero #define    SEP6200_TIMER_TIMSR              (SEP6200_TIMER_BASE + 0X140)
141*10465441SEvalZero #define    SEP6200_TIMER_TISCR              (SEP6200_TIMER_BASE + 0X144)
142*10465441SEvalZero #define    SEP6200_TIMER_TISR               (SEP6200_TIMER_BASE + 0X148)
143*10465441SEvalZero 
144*10465441SEvalZero #define    SEP6200_VIC_INT_SLT_L            (SEP6200_VIC_BASE + 0x000)
145*10465441SEvalZero #define    SEP6200_VIC_INT_SLT_H            (SEP6200_VIC_BASE + 0x004)
146*10465441SEvalZero #define    SEP6200_VIC_INT_EN_L             (SEP6200_VIC_BASE + 0x008)
147*10465441SEvalZero #define    SEP6200_VIC_INT_EN_H             (SEP6200_VIC_BASE + 0x00C)
148*10465441SEvalZero #define    SEP6200_VIC_INT_EN_CLR_L         (SEP6200_VIC_BASE + 0x010)
149*10465441SEvalZero #define    SEP6200_VIC_INT_EN_CLR_H         (SEP6200_VIC_BASE + 0x014)
150*10465441SEvalZero #define    SEP6200_VIC_SFT_INT_L            (SEP6200_VIC_BASE + 0x018)
151*10465441SEvalZero #define    SEP6200_VIC_SFT_INT_H            (SEP6200_VIC_BASE + 0x01C)
152*10465441SEvalZero #define    SEP6200_VIC_SFT_INT_CLR_L        (SEP6200_VIC_BASE + 0x020)
153*10465441SEvalZero #define    SEP6200_VIC_SFT_INT_CLR_H        (SEP6200_VIC_BASE + 0x024)
154*10465441SEvalZero #define    SEP6200_VIC_INT_MSK_ALL          (SEP6200_VIC_BASE + 0x028)
155*10465441SEvalZero #define    SEP6200_VIC_RAW_INT_SRC_L        (SEP6200_VIC_BASE + 0x030)
156*10465441SEvalZero #define    SEP6200_VIC_RAW_INT_SRC_H        (SEP6200_VIC_BASE + 0x034)
157*10465441SEvalZero #define    SEP6200_VIC_RAW_IRQ_STS_L        (SEP6200_VIC_BASE + 0x038)
158*10465441SEvalZero #define    SEP6200_VIC_RAW_IRQ_STS_H        (SEP6200_VIC_BASE + 0x03C)
159*10465441SEvalZero #define    SEP6200_VIC_RAW_FIQ_STS_L        (SEP6200_VIC_BASE + 0x040)
160*10465441SEvalZero #define    SEP6200_VIC_RAW_FIQ_STS_H        (SEP6200_VIC_BASE + 0x044)
161*10465441SEvalZero #define    SEP6200_VIC_MSK_IRQ_STS_L        (SEP6200_VIC_BASE + 0x048)
162*10465441SEvalZero #define    SEP6200_VIC_MSK_IRQ_STS_H        (SEP6200_VIC_BASE + 0x04C)
163*10465441SEvalZero #define    SEP6200_VIC_MSK_FIQ_STS_L        (SEP6200_VIC_BASE + 0x050)
164*10465441SEvalZero #define    SEP6200_VIC_MSK_FIQ_STS_H        (SEP6200_VIC_BASE + 0x054)
165*10465441SEvalZero #define    SEP6200_VIC_IRQ_PENDING_L        (SEP6200_VIC_BASE + 0x058)
166*10465441SEvalZero #define    SEP6200_VIC_IRQ_PENDING_H        (SEP6200_VIC_BASE + 0x05C)
167*10465441SEvalZero #define    SEP6200_VIC_FIQ_PENDING_L        (SEP6200_VIC_BASE + 0x060)
168*10465441SEvalZero #define    SEP6200_VIC_FIQ_PENDING_H        (SEP6200_VIC_BASE + 0x064)
169*10465441SEvalZero #define    SEP6200_VIC_IRQ_VECTOR_BASE      (SEP6200_VIC_BASE + 0x070)
170*10465441SEvalZero #define    SEP6200_VIC_FIQ_VECTOR_BASE      (SEP6200_VIC_BASE + 0x074)
171*10465441SEvalZero #define    SEP6200_VIC_IRQ_VECTOR_NUM       (SEP6200_VIC_BASE + 0x078)
172*10465441SEvalZero #define    SEP6200_VIC_FIQ_VECTOR_NUM       (SEP6200_VIC_BASE + 0x07C)
173*10465441SEvalZero #define    SEP6200_VIC_IRQ_VECTOR_ADDR      (SEP6200_VIC_BASE + 0x080)
174*10465441SEvalZero #define    SEP6200_VIC_FIQ_VECTOR_ADDR      (SEP6200_VIC_BASE + 0x084)
175*10465441SEvalZero #define    SEP6200_VIC_PROIRTY_MASK         (SEP6200_VIC_BASE + 0x090)
176*10465441SEvalZero #define    SEP6200_VIC_VECTOR_PROIRTY00     (SEP6200_VIC_BASE + 0x100)
177*10465441SEvalZero #define    SEP6200_VIC_VECTOR_PROIRTY01     (SEP6200_VIC_BASE + 0x104)
178*10465441SEvalZero #define    SEP6200_VIC_VECTOR_PROIRTY02     (SEP6200_VIC_BASE + 0x108)
179*10465441SEvalZero #define    SEP6200_VIC_VECTOR_PROIRTY03     (SEP6200_VIC_BASE + 0x10C)
180*10465441SEvalZero #define    SEP6200_VIC_VECTOR_PROIRTY04     (SEP6200_VIC_BASE + 0x110)
181*10465441SEvalZero #define    SEP6200_VIC_VECTOR_PROIRTY05     (SEP6200_VIC_BASE + 0x114)
182*10465441SEvalZero #define    SEP6200_VIC_VECTOR_PROIRTY06     (SEP6200_VIC_BASE + 0x118)
183*10465441SEvalZero #define    SEP6200_VIC_VECTOR_PROIRTY07     (SEP6200_VIC_BASE + 0x11C)
184*10465441SEvalZero #define    SEP6200_VIC_VECTOR_PROIRTY08     (SEP6200_VIC_BASE + 0x120)
185*10465441SEvalZero #define    SEP6200_VIC_VECTOR_PROIRTY09     (SEP6200_VIC_BASE + 0x124)
186*10465441SEvalZero #define    SEP6200_VIC_VECTOR_PROIRTY10     (SEP6200_VIC_BASE + 0x128)
187*10465441SEvalZero #define    SEP6200_VIC_VECTOR_PROIRTY11     (SEP6200_VIC_BASE + 0x12C)
188*10465441SEvalZero #define    SEP6200_VIC_VECTOR_PROIRTY12     (SEP6200_VIC_BASE + 0x130)
189*10465441SEvalZero #define    SEP6200_VIC_VECTOR_PROIRTY13     (SEP6200_VIC_BASE + 0x134)
190*10465441SEvalZero #define    SEP6200_VIC_VECTOR_PROIRTY14     (SEP6200_VIC_BASE + 0x138)
191*10465441SEvalZero #define    SEP6200_VIC_VECTOR_PROIRTY15     (SEP6200_VIC_BASE + 0x13C)
192*10465441SEvalZero #define    SEP6200_VIC_VECTOR_PROIRTY16     (SEP6200_VIC_BASE + 0x140)
193*10465441SEvalZero #define    SEP6200_VIC_VECTOR_PROIRTY17     (SEP6200_VIC_BASE + 0x144)
194*10465441SEvalZero #define    SEP6200_VIC_VECTOR_PROIRTY18     (SEP6200_VIC_BASE + 0x148)
195*10465441SEvalZero #define    SEP6200_VIC_VECTOR_PROIRTY19     (SEP6200_VIC_BASE + 0x14C)
196*10465441SEvalZero #define    SEP6200_VIC_VECTOR_PROIRTY20     (SEP6200_VIC_BASE + 0x150)
197*10465441SEvalZero #define    SEP6200_VIC_VECTOR_PROIRTY21     (SEP6200_VIC_BASE + 0x154)
198*10465441SEvalZero #define    SEP6200_VIC_VECTOR_PROIRTY22     (SEP6200_VIC_BASE + 0x158)
199*10465441SEvalZero #define    SEP6200_VIC_VECTOR_PROIRTY23     (SEP6200_VIC_BASE + 0x15C)
200*10465441SEvalZero #define    SEP6200_VIC_VECTOR_PROIRTY24     (SEP6200_VIC_BASE + 0x160)
201*10465441SEvalZero #define    SEP6200_VIC_VECTOR_PROIRTY25     (SEP6200_VIC_BASE + 0x164)
202*10465441SEvalZero #define    SEP6200_VIC_VECTOR_PROIRTY26     (SEP6200_VIC_BASE + 0x168)
203*10465441SEvalZero #define    SEP6200_VIC_VECTOR_PROIRTY27     (SEP6200_VIC_BASE + 0x16C)
204*10465441SEvalZero #define    SEP6200_VIC_VECTOR_PROIRTY28     (SEP6200_VIC_BASE + 0x170)
205*10465441SEvalZero #define    SEP6200_VIC_VECTOR_PROIRTY29     (SEP6200_VIC_BASE + 0x174)
206*10465441SEvalZero #define    SEP6200_VIC_VECTOR_PROIRTY30     (SEP6200_VIC_BASE + 0x178)
207*10465441SEvalZero #define    SEP6200_VIC_VECTOR_PROIRTY31     (SEP6200_VIC_BASE + 0x17C)
208*10465441SEvalZero #define    SEP6200_VIC_VECTOR_PROIRTY32     (SEP6200_VIC_BASE + 0x180)
209*10465441SEvalZero #define    SEP6200_VIC_VECTOR_PROIRTY33     (SEP6200_VIC_BASE + 0x184)
210*10465441SEvalZero #define    SEP6200_VIC_VECTOR_PROIRTY34     (SEP6200_VIC_BASE + 0x188)
211*10465441SEvalZero #define    SEP6200_VIC_VECTOR_PROIRTY35     (SEP6200_VIC_BASE + 0x18C)
212*10465441SEvalZero #define    SEP6200_VIC_VECTOR_PROIRTY36     (SEP6200_VIC_BASE + 0x190)
213*10465441SEvalZero #define    SEP6200_VIC_VECTOR_PROIRTY37     (SEP6200_VIC_BASE + 0x194)
214*10465441SEvalZero #define    SEP6200_VIC_VECTOR_PROIRTY38     (SEP6200_VIC_BASE + 0x198)
215*10465441SEvalZero #define    SEP6200_VIC_VECTOR_PROIRTY39     (SEP6200_VIC_BASE + 0x19C)
216*10465441SEvalZero #define    SEP6200_VIC_VECTOR_PROIRTY40     (SEP6200_VIC_BASE + 0x1A0)
217*10465441SEvalZero #define    SEP6200_VIC_VECTOR_PROIRTY41     (SEP6200_VIC_BASE + 0x1A4)
218*10465441SEvalZero #define    SEP6200_VIC_VECTOR_PROIRTY42     (SEP6200_VIC_BASE + 0x1A8)
219*10465441SEvalZero #define    SEP6200_VIC_VECTOR_PROIRTY43     (SEP6200_VIC_BASE + 0x1AC)
220*10465441SEvalZero #define    SEP6200_VIC_VECTOR_PROIRTY44     (SEP6200_VIC_BASE + 0x1B0)
221*10465441SEvalZero #define    SEP6200_VIC_VECTOR_PROIRTY45     (SEP6200_VIC_BASE + 0x1B4)
222*10465441SEvalZero #define    SEP6200_VIC_VECTOR_PROIRTY46     (SEP6200_VIC_BASE + 0x1B8)
223*10465441SEvalZero #define    SEP6200_VIC_VECTOR_PROIRTY47     (SEP6200_VIC_BASE + 0x1BC)
224*10465441SEvalZero #define    SEP6200_VIC_VECTOR_PROIRTY48     (SEP6200_VIC_BASE + 0x1C0)
225*10465441SEvalZero #define    SEP6200_VIC_VECTOR_PROIRTY49     (SEP6200_VIC_BASE + 0x1C4)
226*10465441SEvalZero #define    SEP6200_VIC_VECTOR_PROIRTY50     (SEP6200_VIC_BASE + 0x1C8)
227*10465441SEvalZero #define    SEP6200_VIC_VECTOR_PROIRTY51     (SEP6200_VIC_BASE + 0x1CC)
228*10465441SEvalZero #define    SEP6200_VIC_VECTOR_PROIRTY52     (SEP6200_VIC_BASE + 0x1D0)
229*10465441SEvalZero #define    SEP6200_VIC_VECTOR_PROIRTY53     (SEP6200_VIC_BASE + 0x1D4)
230*10465441SEvalZero #define    SEP6200_VIC_VECTOR_PROIRTY54     (SEP6200_VIC_BASE + 0x1D8)
231*10465441SEvalZero #define    SEP6200_VIC_VECTOR_PROIRTY55     (SEP6200_VIC_BASE + 0x1DC)
232*10465441SEvalZero #define    SEP6200_VIC_VECTOR_PROIRTY56     (SEP6200_VIC_BASE + 0x1E0)
233*10465441SEvalZero #define    SEP6200_VIC_VECTOR_PROIRTY57     (SEP6200_VIC_BASE + 0x1E4)
234*10465441SEvalZero #define    SEP6200_VIC_VECTOR_PROIRTY58     (SEP6200_VIC_BASE + 0x1E8)
235*10465441SEvalZero #define    SEP6200_VIC_VECTOR_PROIRTY59     (SEP6200_VIC_BASE + 0x1EC)
236*10465441SEvalZero #define    SEP6200_VIC_VECTOR_PROIRTY60     (SEP6200_VIC_BASE + 0x1F0)
237*10465441SEvalZero #define    SEP6200_VIC_VECTOR_PROIRTY61     (SEP6200_VIC_BASE + 0x1F4)
238*10465441SEvalZero #define    SEP6200_VIC_VECTOR_PROIRTY62     (SEP6200_VIC_BASE + 0x1F8)
239*10465441SEvalZero #define    SEP6200_VIC_VECTOR_PROIRTY63     (SEP6200_VIC_BASE + 0x1FC)
240*10465441SEvalZero 
241*10465441SEvalZero #define    SEP6200_PMU_PLL_SET              (SEP6200_PMU_BASE + 0x000)
242*10465441SEvalZero #define    SEP6200_PMU_APLL_CFG             (SEP6200_PMU_BASE + 0x004)
243*10465441SEvalZero #define    SEP6200_PMU_MPLL_GFG             (SEP6200_PMU_BASE + 0x008)
244*10465441SEvalZero #define    SEP6200_PMU_DPLL_CFG             (SEP6200_PMU_BASE + 0x00C)
245*10465441SEvalZero #define    SEP6200_PMU_PMDR                 (SEP6200_PMU_BASE + 0x010)
246*10465441SEvalZero #define    SEP6200_PMU_CLK_GT_CFG1          (SEP6200_PMU_BASE + 0x014)
247*10465441SEvalZero #define    SEP6200_PMU_CLK_GT_CFG2          (SEP6200_PMU_BASE + 0x018)
248*10465441SEvalZero #define    SEP6200_PMU_PWR_GT_CFG           (SEP6200_PMU_BASE + 0x01C)
249*10465441SEvalZero #define    SEP6200_PMU_AHB_CLK_CFG          (SEP6200_PMU_BASE + 0x020)
250*10465441SEvalZero #define    SEP6200_PMU_ARM_CLK_CFG          (SEP6200_PMU_BASE + 0x024)
251*10465441SEvalZero #define    SEP6200_PMU_DDR_CLK_CFG          (SEP6200_PMU_BASE + 0x028)
252*10465441SEvalZero #define    SEP6200_PMU_PIX_CLK_CFG          (SEP6200_PMU_BASE + 0x02C)
253*10465441SEvalZero #define    SEP6200_PMU_GPU_CLK2X_CFG        (SEP6200_PMU_BASE + 0x030)
254*10465441SEvalZero #define    SEP6200_PMU_DIV_SET              (SEP6200_PMU_BASE + 0x034)
255*10465441SEvalZero #define    SEP6200_PMU_CRYSTAL_CFG          (SEP6200_PMU_BASE + 0x038)
256*10465441SEvalZero #define    SEP6200_PMU_MSK_WAKEUP           (SEP6200_PMU_BASE + 0x03C)
257*10465441SEvalZero #define    SEP6200_PMU_RTCR                 (SEP6200_PMU_BASE + 0x040)
258*10465441SEvalZero #define    SEP6200_PMU_CLR_WAKEUP           (SEP6200_PMU_BASE + 0x044)
259*10465441SEvalZero #define    SEP6200_PMU_WAKEUP_TIME          (SEP6200_PMU_BASE + 0x048)
260*10465441SEvalZero #define    SEP6200_PMU_SLEEP_FLAG           (SEP6200_PMU_BASE + 0x04C)
261*10465441SEvalZero #define    SEP6200_PMU_WAIT_PWR_SWITCH      (SEP6200_PMU_BASE + 0x050)
262*10465441SEvalZero #define    SEP6200_PMU_PWR_STATE            (SEP6200_PMU_BASE + 0x054)
263*10465441SEvalZero #define    SEP6200_PMU_INT_POL_SEL          (SEP6200_PMU_BASE + 0x058)
264*10465441SEvalZero #define    SEP6200_PMU_PLLLD                (SEP6200_PMU_BASE + 0x05C)
265*10465441SEvalZero #define    SEP6200_PMU_IC_ENABLE            (SEP6200_PMU_BASE + 0x060)
266*10465441SEvalZero #define    SEP6200_PMU_IC_TAR               (SEP6200_PMU_BASE + 0x064)
267*10465441SEvalZero #define    SEP6200_PMU_IC_SCL_LCNT          (SEP6200_PMU_BASE + 0x068)
268*10465441SEvalZero #define    SEP6200_PMU_IC_SCL_HCNT          (SEP6200_PMU_BASE + 0x06C)
269*10465441SEvalZero #define    SEP6200_PMU_IC_DATA_CMD          (SEP6200_PMU_BASE + 0x070)
270*10465441SEvalZero #define    SEP6200_PMU_IC_STATE             (SEP6200_PMU_BASE + 0x074)
271*10465441SEvalZero #define    SEP6200_PMU_IC_SET               (SEP6200_PMU_BASE + 0x078)
272*10465441SEvalZero #define    SEP6200_PMU_HA_PWR_OFF_DAT       (SEP6200_PMU_BASE + 0x07C)
273*10465441SEvalZero #define    SEP6200_PMU_HA_PWR_ON_DAT        (SEP6200_PMU_BASE + 0x080)
274*10465441SEvalZero #define    SEP6200_PMU_HA_PWR_OFF_DAT_CNT   (SEP6200_PMU_BASE + 0x084)
275*10465441SEvalZero #define    SEP6200_PMU_HA_PWR_ON_DAT_CNT    (SEP6200_PMU_BASE + 0x088)
276*10465441SEvalZero #define    SEP6200_PMU_PWR_OFF_TIME         (SEP6200_PMU_BASE + 0x08C)
277*10465441SEvalZero #define    SEP6200_PMU_PWR_ON_TIME          (SEP6200_PMU_BASE + 0x090)
278*10465441SEvalZero #define    SEP6200_PMU_PWR_ON_POL_SEL       (SEP6200_PMU_BASE + 0x094)
279*10465441SEvalZero #define    SEP6200_PMU_RETURN_ADDR          (SEP6200_PMU_BASE + 0x098)
280*10465441SEvalZero #define    SEP6200_PMU_INT                  (SEP6200_PMU_BASE + 0x09C)
281*10465441SEvalZero 
282*10465441SEvalZero /* define the interrupt source number */
283*10465441SEvalZero #define    INTSRC_RESERVE2      63
284*10465441SEvalZero #define    INTSRC_RESERVE1      62
285*10465441SEvalZero #define    INTSRC_LCDC          61
286*10465441SEvalZero #define    INTSRC_GPU           60
287*10465441SEvalZero #define    INTSRC_VPU           59
288*10465441SEvalZero #define    INTSRC_TIMER3        58
289*10465441SEvalZero #define    INTSRC_TIMER2        57
290*10465441SEvalZero #define    INTSRC_TIMER1        56
291*10465441SEvalZero #define    INTSRC_NAND          55
292*10465441SEvalZero #define    INTSRC_I2S           54
293*10465441SEvalZero #define    INTSRC_I2C3          53
294*10465441SEvalZero #define    INTSRC_I2C2          52
295*10465441SEvalZero #define    INTSRC_I2C1          51
296*10465441SEvalZero #define    INTSRC_SSI3          50
297*10465441SEvalZero #define    INTSRC_SSI2          49
298*10465441SEvalZero #define    INTSRC_SSI1          48
299*10465441SEvalZero #define    INTSRC_SDIO2         47
300*10465441SEvalZero #define    INTSRC_SDIO1         46
301*10465441SEvalZero #define    INTSRC_UART3         45
302*10465441SEvalZero #define    INTSRC_UART2         44
303*10465441SEvalZero #define    INTSRC_UART1         43
304*10465441SEvalZero #define    INTSRC_UART0         42
305*10465441SEvalZero #define    INTSRC_PWM           41
306*10465441SEvalZero #define    INTSRC_USB           40
307*10465441SEvalZero #define    INTSRC_USBDMA        39
308*10465441SEvalZero #define    INTSRC_DMAC2         38
309*10465441SEvalZero #define    INTSRC_DMAC1         37
310*10465441SEvalZero #define    INTSRC_PMUIRQ_A11    36
311*10465441SEvalZero #define    INTSRC_DMAIRQ_A11    35
312*10465441SEvalZero #define    INTSRC_GPS           34
313*10465441SEvalZero #define    INTSRC_RTC           33
314*10465441SEvalZero #define    INTSRC_RESERVED16    32
315*10465441SEvalZero #define    INTSRC_PORTE12       31
316*10465441SEvalZero #define    INTSRC_PORTE11       30
317*10465441SEvalZero #define    INTSRC_PORTE10       29
318*10465441SEvalZero #define    INTSRC_PORTE9        28
319*10465441SEvalZero #define    INTSRC_PORTE5        27
320*10465441SEvalZero #define    INTSRC_PORTE4        26
321*10465441SEvalZero #define    INTSRC_PORTD9        25
322*10465441SEvalZero #define    INTSRC_PORTD8        24
323*10465441SEvalZero #define    INTSRC_PORTD3        23
324*10465441SEvalZero #define    INTSRC_PORTD2        22
325*10465441SEvalZero #define    INTSRC_PORTD1        21
326*10465441SEvalZero #define    INTSRC_PORTD0        20
327*10465441SEvalZero #define    INTSRC_PORTC3        19
328*10465441SEvalZero #define    INTSRC_PORTC2        18
329*10465441SEvalZero #define    INTSRC_PORTC1        17
330*10465441SEvalZero #define    INTSRC_PORTC0        16
331*10465441SEvalZero #define    INTSRC_EXT15         15
332*10465441SEvalZero #define    INTSRC_EXT14         14
333*10465441SEvalZero #define    INTSRC_EXT13         13
334*10465441SEvalZero #define    INTSRC_EXT12         12
335*10465441SEvalZero #define    INTSRC_EXT11         11
336*10465441SEvalZero #define    INTSRC_EXT10         10
337*10465441SEvalZero #define    INTSRC_EXT9          9
338*10465441SEvalZero #define    INTSRC_EXT8          8
339*10465441SEvalZero #define    INTSRC_EXT7          7
340*10465441SEvalZero #define    INTSRC_EXT6          6
341*10465441SEvalZero #define    INTSRC_EXT5          5
342*10465441SEvalZero #define    INTSRC_EXT4          4
343*10465441SEvalZero #define    INTSRC_AO_EXT3       3
344*10465441SEvalZero #define    INTSRC_AO_EXT2       2
345*10465441SEvalZero #define    INTSRC_AO_EXT1       1
346*10465441SEvalZero #define    INTSRC_AO_EXT0       0
347*10465441SEvalZero 
348*10465441SEvalZero 
349*10465441SEvalZero typedef    char                 S8;        /* signed 8-bit integer */
350*10465441SEvalZero typedef    short                S16;       /* signed 16-bit integer */
351*10465441SEvalZero typedef    long                 S32;       /* signed 32-bit integer */
352*10465441SEvalZero typedef    unsigned char        U8;        /* unsigned 8-bit integer */
353*10465441SEvalZero typedef    unsigned short       U16;       /* unsigned 16-bit integer */
354*10465441SEvalZero typedef    unsigned long        U32;       /* unsigned 32-bit integer */
355*10465441SEvalZero 
356*10465441SEvalZero typedef    volatile U32 *       RP;
357*10465441SEvalZero typedef    volatile U16 *       RP16;
358*10465441SEvalZero typedef    volatile U8  *       RP8;
359*10465441SEvalZero 
360*10465441SEvalZero typedef    void                 *VP;       /* pointer to an unpredictable data type */
361*10465441SEvalZero typedef    void                 (*FP)();   /* program start address */
362*10465441SEvalZero 
363*10465441SEvalZero #ifndef    _BOOL_TYPE_
364*10465441SEvalZero #define    _BOOL_TYPE_
365*10465441SEvalZero typedef    int                  BOOL;	     /* Boolean value.  TRUE (1) or FALSE (0). */
366*10465441SEvalZero #endif
367*10465441SEvalZero 
368*10465441SEvalZero typedef    int                  ER;         /* Error code.  A signed integer. */
369*10465441SEvalZero 
370*10465441SEvalZero /**
371*10465441SEvalZero  * IO definitions
372*10465441SEvalZero  *
373*10465441SEvalZero  * define access restrictions to peripheral registers
374*10465441SEvalZero  */
375*10465441SEvalZero 
376*10465441SEvalZero #define     __I     volatile const            /*!< defines 'read only' permissions      */
377*10465441SEvalZero #define     __O     volatile                  /*!< defines 'write only' permissions     */
378*10465441SEvalZero #define     __IO    volatile                  /*!< defines 'read / write' permissions   */
379*10465441SEvalZero #define     __iomem volatile
380*10465441SEvalZero 
381*10465441SEvalZero 
382*10465441SEvalZero /*Macros for debug*/
383*10465441SEvalZero 
384*10465441SEvalZero #define EOUT(fmt,...) \
385*10465441SEvalZero 	do \
386*10465441SEvalZero 	{ 	\
387*10465441SEvalZero 		rt_kprintf("EOUT:(%s:%i)  ",__FILE__,__LINE__); \
388*10465441SEvalZero 		rt_kprintf(fmt,##__VA_ARGS__); \
389*10465441SEvalZero 	}while(0)
390*10465441SEvalZero 
391*10465441SEvalZero #define RT_DEBUG
392*10465441SEvalZero #ifdef RT_DEBUG
393*10465441SEvalZero 	#define DBOUT(fmt,...) \
394*10465441SEvalZero 	do \
395*10465441SEvalZero 	{ 	\
396*10465441SEvalZero 		rt_kprintf("DBOUT:(%s:%i)  ",__FILE__,__LINE__); \
397*10465441SEvalZero 		rt_kprintf(fmt,##__VA_ARGS__); \
398*10465441SEvalZero 	}while(0)
399*10465441SEvalZero #else
400*10465441SEvalZero 	#define DBOUT(fmt,...) \
401*10465441SEvalZero 	do{}while(0)
402*10465441SEvalZero #endif
403*10465441SEvalZero 
404*10465441SEvalZero #ifdef	RT_DEBUG
405*10465441SEvalZero 	#define ASSERT(arg) \
406*10465441SEvalZero 	if((arg) == 0) \
407*10465441SEvalZero 	{		\
408*10465441SEvalZero 		while(1) \
409*10465441SEvalZero 		{		  \
410*10465441SEvalZero 			rt_kprintf("have a assert failure\n"); \
411*10465441SEvalZero 		}										 \
412*10465441SEvalZero 	}
413*10465441SEvalZero #else
414*10465441SEvalZero 	#define ASSERT(arg) \
415*10465441SEvalZero 	do		\
416*10465441SEvalZero 	{		 \
417*10465441SEvalZero 	}while(0)
418*10465441SEvalZero #endif
419*10465441SEvalZero 
420*10465441SEvalZero 
421*10465441SEvalZero #define write_reg(reg,value) \
422*10465441SEvalZero 	do \
423*10465441SEvalZero 	{ \
424*10465441SEvalZero 		*(RP)(reg) = value; \
425*10465441SEvalZero 	}while(0)
426*10465441SEvalZero 
427*10465441SEvalZero #define read_reg(reg) (*(RP)reg)
428*10465441SEvalZero 
429*10465441SEvalZero 
430*10465441SEvalZero struct rt_hw_register
431*10465441SEvalZero {
432*10465441SEvalZero 	rt_uint32_t r0;
433*10465441SEvalZero 	rt_uint32_t r1;
434*10465441SEvalZero 	rt_uint32_t r2;
435*10465441SEvalZero 	rt_uint32_t r3;
436*10465441SEvalZero 	rt_uint32_t r4;
437*10465441SEvalZero 	rt_uint32_t r5;
438*10465441SEvalZero 	rt_uint32_t r6;
439*10465441SEvalZero 	rt_uint32_t r7;
440*10465441SEvalZero 	rt_uint32_t r8;
441*10465441SEvalZero 	rt_uint32_t r9;
442*10465441SEvalZero 	rt_uint32_t r10;
443*10465441SEvalZero 	rt_uint32_t r11;
444*10465441SEvalZero 	rt_uint32_t r12;
445*10465441SEvalZero 	rt_uint32_t r13;
446*10465441SEvalZero 	rt_uint32_t r14;
447*10465441SEvalZero 	rt_uint32_t r15;
448*10465441SEvalZero 	rt_uint32_t r16;
449*10465441SEvalZero 	rt_uint32_t r17;
450*10465441SEvalZero 	rt_uint32_t r18;
451*10465441SEvalZero 	rt_uint32_t r19;
452*10465441SEvalZero 	rt_uint32_t r20;
453*10465441SEvalZero 	rt_uint32_t r21;
454*10465441SEvalZero 	rt_uint32_t r22;
455*10465441SEvalZero 	rt_uint32_t r23;
456*10465441SEvalZero 	rt_uint32_t r24;
457*10465441SEvalZero 	rt_uint32_t sb;
458*10465441SEvalZero 	rt_uint32_t sl;
459*10465441SEvalZero 	rt_uint32_t fp;
460*10465441SEvalZero 	rt_uint32_t ip;
461*10465441SEvalZero 	rt_uint32_t sp;
462*10465441SEvalZero 	rt_uint32_t lr;
463*10465441SEvalZero 	rt_uint32_t pc;
464*10465441SEvalZero 	rt_uint32_t asr;
465*10465441SEvalZero 	rt_uint32_t bsr;
466*10465441SEvalZero 	rt_uint32_t ORIG_r0;
467*10465441SEvalZero };
468*10465441SEvalZero 
469*10465441SEvalZero /*@}*/
470*10465441SEvalZero 
471*10465441SEvalZero #endif
472