Subversion Repositories freemyipod

Rev

Details | Last modification | View Log | RSS feed

Rev Author Line No. Line
253 theseven 1
//
2
//
3
//    Copyright 2009 TheSeven
4
//
5
//
6
//    This file is part of iLoader.
7
//
8
//    TheSeven's iBugger is free software: you can redistribute it and/or
9
//    modify it under the terms of the GNU General Public License as
10
//    published by the Free Software Foundation, either version 2 of the
11
//    License, or (at your option) any later version.
12
//
13
//    TheSeven's iBugger is distributed in the hope that it will be useful,
14
//    but WITHOUT ANY WARRANTY; without even the implied warranty of
15
//    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
16
//    See the GNU General Public License for more details.
17
//
18
//    You should have received a copy of the GNU General Public License
19
//    along with iLoader.  If not, see <http://www.gnu.org/licenses/>.
20
//
21
//
22
 
23
 
24
#ifndef __HARDWARE__S5L8700_H__
25
#define __HARDWARE__S5L8700_H__
26
 
27
#include <toolkit.h>
28
 
29
 
30
/////CLKCON/////
31
#define CLKCON       *((volatile uint32_t*)(0x3C500000))
32
#define PLL0PMS      *((volatile uint32_t*)(0x3C500004))
33
#define PLL1PMS      *((volatile uint32_t*)(0x3C500008))
34
#define PLL2PMS      *((volatile uint32_t*)(0x3C50000C))
35
#define PLL0LCNT     *((volatile uint32_t*)(0x3C500014))
36
#define PLL1LCNT     *((volatile uint32_t*)(0x3C500018))
37
#define PLL2LCNT     *((volatile uint32_t*)(0x3C50001C))
38
#define PLLLOCK      *((volatile uint32_t*)(0x3C500020))
39
#define PLLCON       *((volatile uint32_t*)(0x3C500024))
40
#define PWRCON       *((volatile uint32_t*)(0x3C500028))
41
#define PWRMODE      *((volatile uint32_t*)(0x3C50002C))
42
#define SWRCON       *((volatile uint32_t*)(0x3C500030))
43
#define RSTSR        *((volatile uint32_t*)(0x3C500034))
44
#define DSPCLKMD     *((volatile uint32_t*)(0x3C500038))
45
#define CLKCON2      *((volatile uint32_t*)(0x3C50003C))
46
#define PWRCONEXT    *((volatile uint32_t*)(0x3C500040))
47
 
48
 
49
/////ICU/////
50
#define SRCPND       *((volatile uint32_t*)(0x39C00000))
51
#define INTMOD       *((volatile uint32_t*)(0x39C00004))
52
#define INTMSK       *((volatile uint32_t*)(0x39C00008))
53
#define INTPRIO      *((volatile uint32_t*)(0x39C0000C))
54
#define INTPND       *((volatile uint32_t*)(0x39C00010))
55
#define INTOFFSET    *((volatile uint32_t*)(0x39C00014))
56
#define EINTPOL      *((volatile uint32_t*)(0x39C00018))
57
#define EINTPEND     *((volatile uint32_t*)(0x39C0001C))
58
#define EINTMSK      *((volatile uint32_t*)(0x39C00020))
59
 
60
 
61
/////GPIO/////
62
#define PCON0        *((volatile uint32_t*)(0x3CF00000))
63
#define PDAT0        *((volatile uint32_t*)(0x3CF00004))
64
#define PCON1        *((volatile uint32_t*)(0x3CF00010))
65
#define PDAT1        *((volatile uint32_t*)(0x3CF00014))
66
#define PCON2        *((volatile uint32_t*)(0x3CF00020))
67
#define PDAT2        *((volatile uint32_t*)(0x3CF00024))
68
#define PCON3        *((volatile uint32_t*)(0x3CF00030))
69
#define PDAT3        *((volatile uint32_t*)(0x3CF00034))
70
#define PCON4        *((volatile uint32_t*)(0x3CF00040))
71
#define PDAT4        *((volatile uint32_t*)(0x3CF00044))
72
#define PCON5        *((volatile uint32_t*)(0x3CF00050))
73
#define PDAT5        *((volatile uint32_t*)(0x3CF00054))
74
#define PUNK5        *((volatile uint32_t*)(0x3CF0005C))
75
#define PCON6        *((volatile uint32_t*)(0x3CF00060))
76
#define PDAT6        *((volatile uint32_t*)(0x3CF00064))
77
#define PCON7        *((volatile uint32_t*)(0x3CF00070))
78
#define PDAT7        *((volatile uint32_t*)(0x3CF00074))
79
#define PCON10       *((volatile uint32_t*)(0x3CF000A0))
80
#define PDAT10       *((volatile uint32_t*)(0x3CF000A4))
81
#define PCON15       *((volatile uint32_t*)(0x3CF000F0))
82
#define PUNK15       *((volatile uint32_t*)(0x3CF000FC))
83
 
84
 
85
/////IODMA/////
86
#define DMABASE0     *((volatile uint32_t*)(0x38400000))
87
#define DMACON0      *((volatile uint32_t*)(0x38400004))
88
#define DMATCNT0     *((volatile uint32_t*)(0x38400008))
89
#define DMACADDR0    *((volatile uint32_t*)(0x3840000C))
90
#define DMACTCNT0    *((volatile uint32_t*)(0x38400010))
91
#define DMACOM0      *((volatile uint32_t*)(0x38400014))
92
#define DMANOF0      *((volatile uint32_t*)(0x38400018))
93
#define DMABASE1     *((volatile uint32_t*)(0x38400020))
94
#define DMACON1      *((volatile uint32_t*)(0x38400024))
95
#define DMATCNT1     *((volatile uint32_t*)(0x38400028))
96
#define DMACADDR1    *((volatile uint32_t*)(0x3840002C))
97
#define DMACTCNT1    *((volatile uint32_t*)(0x38400030))
98
#define DMACOM1      *((volatile uint32_t*)(0x38400034))
99
#define DMABASE2     *((volatile uint32_t*)(0x38400040))
100
#define DMACON2      *((volatile uint32_t*)(0x38400044))
101
#define DMATCNT2     *((volatile uint32_t*)(0x38400048))
102
#define DMACADDR2    *((volatile uint32_t*)(0x3840004C))
103
#define DMACTCNT2    *((volatile uint32_t*)(0x38400050))
104
#define DMACOM2      *((volatile uint32_t*)(0x38400054))
105
#define DMABASE3     *((volatile uint32_t*)(0x38400060))
106
#define DMACON3      *((volatile uint32_t*)(0x38400064))
107
#define DMATCNT3     *((volatile uint32_t*)(0x38400068))
108
#define DMACADDR3    *((volatile uint32_t*)(0x3840006C))
109
#define DMACTCNT3    *((volatile uint32_t*)(0x38400070))
110
#define DMACOM3      *((volatile uint32_t*)(0x38400074))
111
#define DMABASE4     *((volatile uint32_t*)(0x38400080))
112
#define DMACON4      *((volatile uint32_t*)(0x38400084))
113
#define DMATCNT4     *((volatile uint32_t*)(0x38400088))
114
#define DMACADDR4    *((volatile uint32_t*)(0x3840008C))
115
#define DMACTCNT4    *((volatile uint32_t*)(0x38400090))
116
#define DMACOM4      *((volatile uint32_t*)(0x38400094))
117
#define DMABASE5     *((volatile uint32_t*)(0x384000A0))
118
#define DMACON5      *((volatile uint32_t*)(0x384000A4))
119
#define DMATCNT5     *((volatile uint32_t*)(0x384000A8))
120
#define DMACADDR5    *((volatile uint32_t*)(0x384000AC))
121
#define DMACTCNT5    *((volatile uint32_t*)(0x384000B0))
122
#define DMACOM5      *((volatile uint32_t*)(0x384000B4))
123
#define DMABASE6     *((volatile uint32_t*)(0x384000C0))
124
#define DMACON6      *((volatile uint32_t*)(0x384000C4))
125
#define DMATCNT6     *((volatile uint32_t*)(0x384000C8))
126
#define DMACADDR6    *((volatile uint32_t*)(0x384000CC))
127
#define DMACTCNT6    *((volatile uint32_t*)(0x384000D0))
128
#define DMACOM6      *((volatile uint32_t*)(0x384000D4))
129
#define DMABASE7     *((volatile uint32_t*)(0x384000E0))
130
#define DMACON7      *((volatile uint32_t*)(0x384000E4))
131
#define DMATCNT7     *((volatile uint32_t*)(0x384000E8))
132
#define DMACADDR7    *((volatile uint32_t*)(0x384000EC))
133
#define DMACTCNT7    *((volatile uint32_t*)(0x384000F0))
134
#define DMACOM7      *((volatile uint32_t*)(0x384000F4))
135
#define DMABASE8     *((volatile uint32_t*)(0x38400100))
136
#define DMACON8      *((volatile uint32_t*)(0x38400104))
137
#define DMATCNT8     *((volatile uint32_t*)(0x38400108))
138
#define DMACADDR8    *((volatile uint32_t*)(0x3840010C))
139
#define DMACTCNT8    *((volatile uint32_t*)(0x38400110))
140
#define DMACOM8      *((volatile uint32_t*)(0x38400114))
141
#define DMAALLST     *((volatile uint32_t*)(0x38400180))
142
#define DMACON_DEVICE_SHIFT    30
143
#define DMACON_DIRECTION_SHIFT 29
144
#define DMACON_DATA_SIZE_SHIFT 22
145
#define DMACON_BURST_LEN_SHIFT 19
146
#define DMACOM_START           4
147
#define DMACOM_CLEARBOTHDONE   7
148
#define DMAALLST_WCOM0         (1 << 0)
149
#define DMAALLST_HCOM0         (1 << 1)
150
#define DMAALLST_DMABUSY0      (1 << 2)
151
#define DMAALLST_HOLD_SKIP     (1 << 3)
152
#define DMAALLST_WCOM1         (1 << 4)
153
#define DMAALLST_HCOM1         (1 << 5)
154
#define DMAALLST_DMABUSY1      (1 << 6)
155
#define DMAALLST_WCOM2         (1 << 8)
156
#define DMAALLST_HCOM2         (1 << 9)
157
#define DMAALLST_DMABUSY2      (1 << 10)
158
#define DMAALLST_WCOM3         (1 << 12)
159
#define DMAALLST_HCOM3         (1 << 13)
160
#define DMAALLST_DMABUSY3      (1 << 14)
161
#define DMAALLST_CHAN0_MASK    (0xF << 0)
162
#define DMAALLST_CHAN1_MASK    (0xF << 4)
163
#define DMAALLST_CHAN2_MASK    (0xF << 8)
164
#define DMAALLST_CHAN3_MASK    (0xF << 12)
165
 
166
 
167
/////FMC/////
168
#define FMCTRL0      *((volatile uint32_t*)(0x39400000))
169
#define FMCTRL1      *((volatile uint32_t*)(0x39400004))
170
#define FMCMD        *((volatile uint32_t*)(0x39400008))
171
#define FMADDR0      *((volatile uint32_t*)(0x3940000C))
172
#define FMADDR1      *((volatile uint32_t*)(0x39400010))
173
#define FMANUM       *((volatile uint32_t*)(0x3940002C))
174
#define FMDNUM       *((volatile uint32_t*)(0x39400030))
175
#define FMCSTAT      *((volatile uint32_t*)(0x39400048))
176
#define FMFIFO       *((volatile uint32_t*)(0x39400080))
177
#define RS_ECC_CTRL  *((volatile uint32_t*)(0x39400100))
178
#define FMCTRL0_ENABLEDMA      (1 << 10)
179
#define FMCTRL0_UNK1           (1 << 11)
180
#define FMCTRL1_DOTRANSADDR    (1 << 0)
181
#define FMCTRL1_DOREADDATA     (1 << 1)
182
#define FMCTRL1_DOWRITEDATA    (1 << 2)
183
#define FMCTRL1_CLEARWFIFO     (1 << 6)
184
#define FMCTRL1_CLEARRFIFO     (1 << 7)
185
#define FMCSTAT_RBB            (1 << 0)
186
#define FMCSTAT_RBBDONE        (1 << 1)
187
#define FMCSTAT_CMDDONE        (1 << 2)
188
#define FMCSTAT_ADDRDONE       (1 << 3)
189
#define FMCSTAT_BANK0READY     (1 << 4)
190
#define FMCSTAT_BANK1READY     (1 << 5)
191
#define FMCSTAT_BANK2READY     (1 << 6)
192
#define FMCSTAT_BANK3READY     (1 << 7)
193
 
194
 
195
/////ECC/////
196
#define ECC_DATA_PTR  *((volatile uint32_t*)(0x39E00004))
197
#define ECC_SPARE_PTR *((volatile uint32_t*)(0x39E00008))
198
#define ECC_CTRL      *((volatile uint32_t*)(0x39E0000C))
199
#define ECC_RESULT    *((volatile uint32_t*)(0x39E00010))
200
#define ECC_UNK1      *((volatile uint32_t*)(0x39E00014))
201
#define ECC_INT_CLR   *((volatile uint32_t*)(0x39E00040))
202
#define INTMSK_ECC             0x80000
203
#define ECCCTRL_STARTDECODING  (1 << 0)
204
#define ECCCTRL_STARTENCODING  (1 << 1)
205
#define ECCCTRL_STARTDECNOSYND (1 << 2)
206
 
207
 
208
/////CLICKWHEEL/////
209
#define WHEEL00      *((volatile uint32_t*)(0x3C200000))
210
#define WHEEL04      *((volatile uint32_t*)(0x3C200004))
211
#define WHEEL08      *((volatile uint32_t*)(0x3C200008))
212
#define WHEEL0C      *((volatile uint32_t*)(0x3C20000C))
213
#define WHEEL10      *((volatile uint32_t*)(0x3C200010))
214
#define WHEELINT     *((volatile uint32_t*)(0x3C200014))
215
#define WHEELRX      *((volatile uint32_t*)(0x3C200018))
216
#define WHEELTX      *((volatile uint32_t*)(0x3C20001C))
217
 
218
 
219
/////AES/////
220
#define AESCONTROL *((volatile uint32_t*)(0x39800000))
221
#define AESGO      *((volatile uint32_t*)(0x39800004))
222
#define AESUNKREG0 *((volatile uint32_t*)(0x39800008))
223
#define AESSTATUS  *((volatile uint32_t*)(0x3980000C))
224
#define AESUNKREG1 *((volatile uint32_t*)(0x39800010))
225
#define AESKEYLEN  *((volatile uint32_t*)(0x39800014))
226
#define AESOUTSIZE *((volatile uint32_t*)(0x39800018))
227
#define AESOUTADDR *((volatile uint32_t*)(0x39800020))
228
#define AESINSIZE  *((volatile uint32_t*)(0x39800024))
229
#define AESINADDR  *((volatile uint32_t*)(0x39800028))
230
#define AESAUXSIZE *((volatile uint32_t*)(0x3980002C))
231
#define AESAUXADDR *((volatile uint32_t*)(0x39800030))
232
#define AESSIZE3   *((volatile uint32_t*)(0x39800034))
233
#define AESTYPE    *((volatile uint32_t*)(0x3980006C))
234
 
235
 
236
/////HASH/////
237
#define HASHCTRL   *((volatile uint32_t*)(0x3C600000))
238
#define HASHRESULT  ((volatile uint32_t*)(0x3C600020))
239
#define HASHDATAIN  ((volatile uint32_t*)(0x3C600040))
240
 
241
 
242
/////TIMER/////
243
#define TACON      *((volatile uint32_t*)(0x3C700000))
244
#define TACMD      *((volatile uint32_t*)(0x3C700004))
245
#define TADATA0    *((volatile uint32_t*)(0x3C700008))
246
#define TADATA1    *((volatile uint32_t*)(0x3C70000C))
247
#define TAPRE      *((volatile uint32_t*)(0x3C700010))
248
#define TACNT      *((volatile uint32_t*)(0x3C700014))
249
#define TBCON      *((volatile uint32_t*)(0x3C700020))
250
#define TBCMD      *((volatile uint32_t*)(0x3C700024))
251
#define TBDATA0    *((volatile uint32_t*)(0x3C700028))
252
#define TBDATA1    *((volatile uint32_t*)(0x3C70002C))
253
#define TBPRE      *((volatile uint32_t*)(0x3C700030))
254
#define TBCNT      *((volatile uint32_t*)(0x3C700034))
255
#define TCCON      *((volatile uint32_t*)(0x3C700040))
256
#define TCCMD      *((volatile uint32_t*)(0x3C700044))
257
#define TCDATA0    *((volatile uint32_t*)(0x3C700048))
258
#define TCDATA1    *((volatile uint32_t*)(0x3C70004C))
259
#define TCPRE      *((volatile uint32_t*)(0x3C700050))
260
#define TCCNT      *((volatile uint32_t*)(0x3C700054))
261
#define TDCON      *((volatile uint32_t*)(0x3C700060))
262
#define TDCMD      *((volatile uint32_t*)(0x3C700064))
263
#define TDDATA0    *((volatile uint32_t*)(0x3C700068))
264
#define TDDATA1    *((volatile uint32_t*)(0x3C70006C))
265
#define TDPRE      *((volatile uint32_t*)(0x3C700070))
266
#define TDCNT      *((volatile uint32_t*)(0x3C700074))
267
#define FIVE_USEC_TIMER (((uint64_t)(*((volatile uint32_t*)(0x3C700080))) << 32) \
268
                        | (*((volatile uint32_t*)(0x3C700084))))  /* 64bit 5usec timer */
269
#define USEC_TIMER      ((long)(FIVE_USEC_TIMER * 5)) /* usecs */
270
 
271
 
272
#endif