ada419181411f20998178c7083af703c02f66bae
[platform/kernel/u-boot.git] / arch / arm / include / asm / arch-rmobile / sh73a0.h
1 #ifndef __ASM_ARCH_RMOBILE_SH73A0_H
2 #define __ASM_ARCH_RMOBILE_SH73A0_H
3
4 /* Global Timer */
5 #define GLOBAL_TIMER_BASE_ADDR  (0xF0000200)
6 #define MERAM_BASE      (0xE5580000)
7
8 /* GIC */
9 #define GIC_BASE        (0xF0000100)
10 #define ICCICR  GIC_BASE
11
12 /* Secure control register */
13 #define LIFEC_SEC_SRC   (0xE6110008)
14
15 /* RWDT */
16 #define RWDT_BASE   (0xE6020000)
17
18 /* HPB Semaphore Control Registers */
19 #define HPB_BASE        (0xE6001010)
20
21 /* Bus Semaphore Control Registers */
22 #define HPBSCR_BASE (0xE6001600)
23
24 /* SBSC1 */
25 #define SBSC1_BASE      (0xFE400000)
26 #define SDMRA1A         (SBSC1_BASE + 0x100000)
27 #define SDMRA2A         (SBSC1_BASE + 0x1C0000)
28 #define SDMRA3A         (SBSC1_BASE + 0x104000)
29
30 /* SBSC2 */
31 #define SBSC2_BASE      (0xFB400000)
32 #define SDMRA1B         (SBSC2_BASE + 0x100000)
33 #define SDMRA2B         (SBSC2_BASE + 0x1C0000)
34 #define SDMRA3B         (SBSC2_BASE + 0x104000)
35
36 /* CPG */
37 #define CPG_BASE   (0xE6150000)
38 #define CPG_SRCR_BASE   (CPG_BASE + 0x80A0)
39 #define WUPCR   (CPG_BASE + 0x1010)
40 #define SRESCR  (CPG_BASE + 0x1018)
41 #define PCLKCR  (CPG_BASE + 0x1020)
42
43 /* BSC */
44 #define BSC_BASE (0xFEC10000)
45
46 /* SCIF */
47 #define SCIF0_BASE      (0xE6C40000)
48 #define SCIF1_BASE      (0xE6C50000)
49 #define SCIF2_BASE      (0xE6C60000)
50 #define SCIF3_BASE      (0xE6C70000)
51 #define SCIF4_BASE      (0xE6C80000)
52 #define SCIF5_BASE      (0xE6CB0000)
53 #define SCIF6_BASE      (0xE6CC0000)
54 #define SCIF7_BASE      (0xE6CD0000)
55
56 #ifndef __ASSEMBLY__
57 #include <asm/types.h>
58
59 /* RWDT */
60 struct sh73a0_rwdt {
61         u16 rwtcnt0;    /* 0x00 */
62         u16 rwtcsra0;   /* 0x04 */
63         u16 rwtcsrb0;   /* 0x08 */
64 };
65
66 /* HPB Semaphore Control Registers */
67 struct sh73a0_hpb {
68         u32 hpbctrl0;
69         u32 hpbctrl1;
70         u32 hpbctrl2;
71         u32 cccr;
72         u32 dummy0; /* 0x20 */
73         u32 hpbctrl4;
74         u32 hpbctrl5;
75         u32 dummy1; /* 0x2C */
76         u32 hpbctrl6;
77 };
78
79 /* Bus Semaphore Control Registers */
80 struct sh73a0_hpb_bscr {
81         u32 mpsrc; /* 0x00 */
82         u32 mpacctl; /* 0x04 */
83         u32 dummy0[6];
84         u32 smgpiosrc; /* 0x20 */
85         u32 smgpioerr;
86         u32 smgpiotime;
87         u32 smgpiocnt;
88         u32 dummy1[4]; /* 0x30 .. 0x3C */
89         u32 smcmt2src;
90         u32 smcmt2err;
91         u32 smcmt2time;
92         u32 smcmt2cnt;
93         u32 smcpgsrc;
94         u32 smcpgerr;
95         u32 smcpgtime;
96         u32 smcpgcnt;
97         u32 dummy2[4]; /* 0x60 - 0x6C */
98         u32 smsyscsrc;
99         u32 smsyscerr;
100         u32 smsysctime;
101         u32 smsysccnt;
102 };
103
104 /* SBSC */
105 struct sh73a0_sbsc {
106         u32 dummy0[2]; /* 0x00, 0x04 */
107         u32 sdcr0;
108         u32 sdcr1;
109         u32 sdpcr;
110         u32 dummy1; /* 0x14 */
111         u32 sdcr0s;
112         u32 sdcr1s;
113         u32 rtcsr;
114         u32 dummy2; /* 0x24 */
115         u32 rtcor;
116         u32 rtcorh;
117         u32 rtcors;
118         u32 rtcorsh;
119         u32 dummy3[2]; /* 0x38, 0x3C */
120         u32 sdwcrc0;
121         u32 sdwcrc1;
122         u32 sdwcr00;
123         u32 sdwcr01;
124         u32 sdwcr10;
125         u32 sdwcr11;
126         u32 sdpdcr0;
127         u32 dummy4; /* 0x5C */
128         u32 sdwcr2;
129         u32 sdwcrc2;
130         u32 zqccr;
131         u32 dummy5[6]; /* 0x6C .. 0x80 */
132         u32 sdmracr0;
133         u32 dummy6; /* 0x88 */
134         u32 sdmrtmpcr;
135         u32 dummy7; /* 0x90 */
136         u32 sdmrtmpmsk;
137         u32 dummy8; /* 0x98 */
138         u32 sdgencnt;
139         u32 dphycnt0;
140         u32 dphycnt1;
141         u32 dphycnt2;
142         u32 dummy9[2]; /* 0xAC .. 0xB0 */
143         u32 sddrvcr0;
144         u32 dummy10[14]; /* 0xB8 .. 0xEC */
145         u32 dptdivcr0;
146         u32 dptdivcr1;
147         u32 dptdivcr2;
148         u32 dummy11; /* 0xFC */
149         u32 sdptcr0;
150         u32 sdptcr1;
151         u32 sdptcr2;
152         u32 sdptcr3; /* 0x10C */
153         u32 dummy12[145]; /* 0x110 .. 0x350 */
154         u32 dllcnt0; /* 0x354 */
155         u32 sbscmon0;
156 };
157
158 /* CPG */
159 struct sh73a0_sbsc_cpg {
160         u32 frqcra; /* 0x00 */
161         u32 frqcrb;
162         u32 vclkcr1;
163         u32 vclkcr2;
164         u32 zbckcr;
165         u32 flckcr;
166         u32 fsiackcr;
167         u32 vclkcr3;
168         u32 rtstbcr;
169         u32 systbcr;
170         u32 pll1cr;
171         u32 pll2cr;
172         u32 mstpsr0;
173         u32 dummy0; /* 0x34 */
174         u32 mstpsr1;
175         u32 mstpsr5;
176         u32 mstpsr2;
177         u32 dummy1; /* 0x44 */
178         u32 mstpsr3;
179         u32 mstpsr4;
180         u32 dummy2; /* 0x50 */
181         u32 astat;
182         u32 dvfscr0;
183         u32 dvfscr1;
184         u32 dsitckcr;
185         u32 dsi0pckcr;
186         u32 dsi1pckcr;
187         u32 dsi0phycr;
188         u32 dsi1phycr;
189         u32 sd0ckcr;
190         u32 sd1ckcr;
191         u32 sd2ckcr;
192         u32 subckcr;
193         u32 spuackcr;
194         u32 msuckcr;
195         u32 hsickcr;
196         u32 fsibckcr;
197         u32 spuvckcr;
198         u32 mfck1cr;
199         u32 mfck2cr;
200         u32 dummy3[8]; /* 0xA0 .. 0xBC */
201         u32 ckscr;
202         u32 dummy4; /* 0xC4 */
203         u32 pll1stpcr;
204         u32 mpmode;
205         u32 pllecr;
206         u32 dummy5; /* 0xD4 */
207         u32 pll0cr;
208         u32 pll3cr;
209         u32 dummy6; /* 0xE0 */
210         u32 frqcrd;
211         u32 dummyi7; /* 0xE8 */
212         u32 vrefcr;
213         u32 pll0stpcr;
214         u32 dummy8; /* 0xF4 */
215         u32 pll2stpcr;
216         u32 pll3stpcr;
217         u32 dummy9[4]; /* 0x100 .. 0x10c */
218         u32 rmstpcr0;
219         u32 rmstpcr1;
220         u32 rmstpcr2;
221         u32 rmstpcr3;
222         u32 rmstpcr4;
223         u32 rmstpcr5;
224         u32 dummy10[2]; /* 0x128 .. 0x12c */
225         u32 smstpcr0;
226         u32 smstpcr1;
227         u32 smstpcr2;
228         u32 smstpcr3;
229         u32 smstpcr4;
230         u32 smstpcr5;
231         u32 dummy11[2]; /* 0x148 .. 0x14c */
232         u32 cpgxxcs4;
233         u32 dummy12[7]; /* 0x154 .. 0x16c */
234         u32 dvfscr2;
235         u32 dvfscr3;
236         u32 dvfscr4;
237         u32 dvfscr5; /* 0x17C */
238 };
239
240 /* CPG SRCR part OK */
241 struct sh73a0_sbsc_cpg_srcr {
242         u32 srcr0;
243         u32 dummy0; /* 0xA4 */
244         u32 srcr1;
245         u32 dummy1; /* 0xAC */
246         u32 srcr2;
247         u32 dummy2; /* 0xB4 */
248         u32 srcr3;
249         u32 srcr4;
250         u32 dummy3; /* 0xC0 */
251         u32 srcr5;
252 };
253
254 /* BSC */
255 struct sh73a0_bsc {
256         u32 cmncr;
257         u32 cs0bcr;
258         u32 cs2bcr;
259         u32 dummy0; /* 0x0C */
260         u32 cs4bcr;
261         u32 cs5abcr;
262         u32 cs5bbcr;
263         u32 cs6abcr;
264         u32 cs6bbcr;
265         u32 cs0wcr;
266         u32 cs2wcr;
267         u32 dummy1; /* 0x2C */
268         u32 cs4wcr;
269         u32 cs5awcr;
270         u32 cs5bwcr;
271         u32 cs6awcr;
272         u32 cs6bwcr;
273         u32 rbwtcnt;
274         u32 busycr;
275         u32 dummy2; /* 0x5c */
276         u32 cs7abcr;
277         u32 cs7awcr;
278         u32 dummy3[2]; /* 0x68, 0x6C */
279         u32 bromtimcr;
280 };
281 #endif /* __ASSEMBLY__ */
282
283 #endif /* __ASM_ARCH_RMOBILE_SH73A0_H */