| Index: emcore/trunk/target/ipodnano2g/s5l8701.h | 
| — | — | @@ -1,313 +1,313 @@ | 
| 2 |  | -//
 | 
| 3 |  | -//
 | 
| 4 |  | -//    Copyright 2010 TheSeven
 | 
| 5 |  | -//
 | 
| 6 |  | -//
 | 
| 7 |  | -//    This file is part of emCORE.
 | 
| 8 |  | -//
 | 
| 9 |  | -//    emCORE is free software: you can redistribute it and/or
 | 
| 10 |  | -//    modify it under the terms of the GNU General Public License as
 | 
| 11 |  | -//    published by the Free Software Foundation, either version 2 of the
 | 
| 12 |  | -//    License, or (at your option) any later version.
 | 
| 13 |  | -//
 | 
| 14 |  | -//    emCORE is distributed in the hope that it will be useful,
 | 
| 15 |  | -//    but WITHOUT ANY WARRANTY; without even the implied warranty of
 | 
| 16 |  | -//    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
 | 
| 17 |  | -//    See the GNU General Public License for more details.
 | 
| 18 |  | -//
 | 
| 19 |  | -//    You should have received a copy of the GNU General Public License along
 | 
| 20 |  | -//    with emCORE.  If not, see <http://www.gnu.org/licenses/>.
 | 
| 21 |  | -//
 | 
| 22 |  | -//
 | 
| 23 |  | -
 | 
| 24 |  | -
 | 
| 25 |  | -#ifndef __S5L8701_H__
 | 
| 26 |  | -#define __S5L8701_H__
 | 
| 27 |  | -
 | 
| 28 |  | -#include "global.h"
 | 
| 29 |  | -
 | 
| 30 |  | -
 | 
| 31 |  | -/////CLKCON/////
 | 
| 32 |  | -#define CLKCON       (*((uint32_t volatile*)(0x3C500000)))
 | 
| 33 |  | -#define PLL0PMS      (*((uint32_t volatile*)(0x3C500004)))
 | 
| 34 |  | -#define PLL1PMS      (*((uint32_t volatile*)(0x3C500008)))
 | 
| 35 |  | -#define PLL2PMS      (*((uint32_t volatile*)(0x3C50000C)))
 | 
| 36 |  | -#define PLL0LCNT     (*((uint32_t volatile*)(0x3C500014)))
 | 
| 37 |  | -#define PLL1LCNT     (*((uint32_t volatile*)(0x3C500018)))
 | 
| 38 |  | -#define PLL2LCNT     (*((uint32_t volatile*)(0x3C50001C)))
 | 
| 39 |  | -#define PLLLOCK      (*((uint32_t volatile*)(0x3C500020)))
 | 
| 40 |  | -#define PLLCON       (*((uint32_t volatile*)(0x3C500024)))
 | 
| 41 |  | -#define PWRMODE      (*((uint32_t volatile*)(0x3C50002C)))
 | 
| 42 |  | -#define SWRCON       (*((uint32_t volatile*)(0x3C500030)))
 | 
| 43 |  | -#define RSTSR        (*((uint32_t volatile*)(0x3C500034)))
 | 
| 44 |  | -#define DSPCLKMD     (*((uint32_t volatile*)(0x3C500038)))
 | 
| 45 |  | -#define CLKCON2      (*((uint32_t volatile*)(0x3C50003C)))
 | 
| 46 |  | -#define PWRCON(i)    (*((uint32_t volatile*)(0x3C500000 + ((i) == 1 ? 0x40 : 0x28))))
 | 
| 47 |  | -
 | 
| 48 |  | -
 | 
| 49 |  | -/////ICU/////
 | 
| 50 |  | -#define SRCPND       (*((uint32_t volatile*)(0x39C00000)))
 | 
| 51 |  | -#define INTMOD       (*((uint32_t volatile*)(0x39C00004)))
 | 
| 52 |  | -#define INTMSK       (*((uint32_t volatile*)(0x39C00008)))
 | 
| 53 |  | -#define INTPRIO      (*((uint32_t volatile*)(0x39C0000C)))
 | 
| 54 |  | -#define INTPND       (*((uint32_t volatile*)(0x39C00010)))
 | 
| 55 |  | -#define INTOFFSET    (*((uint32_t volatile*)(0x39C00014)))
 | 
| 56 |  | -#define EINTPOL      (*((uint32_t volatile*)(0x39C00018)))
 | 
| 57 |  | -#define EINTPEND     (*((uint32_t volatile*)(0x39C0001C)))
 | 
| 58 |  | -#define EINTMSK      (*((uint32_t volatile*)(0x39C00020)))
 | 
| 59 |  | -
 | 
| 60 |  | -
 | 
| 61 |  | -/////GPIO/////
 | 
| 62 |  | -#define PCON0        (*((uint32_t volatile*)(0x3CF00000)))
 | 
| 63 |  | -#define PDAT0        (*((uint32_t volatile*)(0x3CF00004)))
 | 
| 64 |  | -#define PCON1        (*((uint32_t volatile*)(0x3CF00010)))
 | 
| 65 |  | -#define PDAT1        (*((uint32_t volatile*)(0x3CF00014)))
 | 
| 66 |  | -#define PCON2        (*((uint32_t volatile*)(0x3CF00020)))
 | 
| 67 |  | -#define PDAT2        (*((uint32_t volatile*)(0x3CF00024)))
 | 
| 68 |  | -#define PCON3        (*((uint32_t volatile*)(0x3CF00030)))
 | 
| 69 |  | -#define PDAT3        (*((uint32_t volatile*)(0x3CF00034)))
 | 
| 70 |  | -#define PCON4        (*((uint32_t volatile*)(0x3CF00040)))
 | 
| 71 |  | -#define PDAT4        (*((uint32_t volatile*)(0x3CF00044)))
 | 
| 72 |  | -#define PCON5        (*((uint32_t volatile*)(0x3CF00050)))
 | 
| 73 |  | -#define PDAT5        (*((uint32_t volatile*)(0x3CF00054)))
 | 
| 74 |  | -#define PUNK5        (*((uint32_t volatile*)(0x3CF0005C)))
 | 
| 75 |  | -#define PCON6        (*((uint32_t volatile*)(0x3CF00060)))
 | 
| 76 |  | -#define PDAT6        (*((uint32_t volatile*)(0x3CF00064)))
 | 
| 77 |  | -#define PCON7        (*((uint32_t volatile*)(0x3CF00070)))
 | 
| 78 |  | -#define PDAT7        (*((uint32_t volatile*)(0x3CF00074)))
 | 
| 79 |  | -#define PCON10       (*((uint32_t volatile*)(0x3CF000A0)))
 | 
| 80 |  | -#define PDAT10       (*((uint32_t volatile*)(0x3CF000A4)))
 | 
| 81 |  | -#define PCON11       (*((uint32_t volatile*)(0x3CF000B0)))
 | 
| 82 |  | -#define PDAT11       (*((uint32_t volatile*)(0x3CF000B4)))
 | 
| 83 |  | -#define PCON13       (*((uint32_t volatile*)(0x3CF000D0)))
 | 
| 84 |  | -#define PDAT13       (*((uint32_t volatile*)(0x3CF000D4)))
 | 
| 85 |  | -#define PCON14       (*((uint32_t volatile*)(0x3CF000E0)))
 | 
| 86 |  | -#define PDAT14       (*((uint32_t volatile*)(0x3CF000E4)))
 | 
| 87 |  | -#define PCON15       (*((uint32_t volatile*)(0x3CF000F0)))
 | 
| 88 |  | -#define PUNK15       (*((uint32_t volatile*)(0x3CF000FC)))
 | 
| 89 |  | -
 | 
| 90 |  | -
 | 
| 91 |  | -/////IODMA/////
 | 
| 92 |  | -#define DMABASE0     (*((void* volatile*)(0x38400000)))
 | 
| 93 |  | -#define DMACON0      (*((uint32_t volatile*)(0x38400004)))
 | 
| 94 |  | -#define DMATCNT0     (*((uint32_t volatile*)(0x38400008)))
 | 
| 95 |  | -#define DMACADDR0    (*((void* volatile*)(0x3840000C)))
 | 
| 96 |  | -#define DMACTCNT0    (*((uint32_t volatile*)(0x38400010)))
 | 
| 97 |  | -#define DMACOM0      (*((uint32_t volatile*)(0x38400014)))
 | 
| 98 |  | -#define DMANOF0      (*((uint32_t volatile*)(0x38400018)))
 | 
| 99 |  | -#define DMABASE1     (*((void* volatile*)(0x38400020)))
 | 
| 100 |  | -#define DMACON1      (*((uint32_t volatile*)(0x38400024)))
 | 
| 101 |  | -#define DMATCNT1     (*((uint32_t volatile*)(0x38400028)))
 | 
| 102 |  | -#define DMACADDR1    (*((void* volatile*)(0x3840002C)))
 | 
| 103 |  | -#define DMACTCNT1    (*((uint32_t volatile*)(0x38400030)))
 | 
| 104 |  | -#define DMACOM1      (*((uint32_t volatile*)(0x38400034)))
 | 
| 105 |  | -#define DMABASE2     (*((void* volatile*)(0x38400040)))
 | 
| 106 |  | -#define DMACON2      (*((uint32_t volatile*)(0x38400044)))
 | 
| 107 |  | -#define DMATCNT2     (*((uint32_t volatile*)(0x38400048)))
 | 
| 108 |  | -#define DMACADDR2    (*((void* volatile*)(0x3840004C)))
 | 
| 109 |  | -#define DMACTCNT2    (*((uint32_t volatile*)(0x38400050)))
 | 
| 110 |  | -#define DMACOM2      (*((uint32_t volatile*)(0x38400054)))
 | 
| 111 |  | -#define DMABASE3     (*((void* volatile*)(0x38400060)))
 | 
| 112 |  | -#define DMACON3      (*((uint32_t volatile*)(0x38400064)))
 | 
| 113 |  | -#define DMATCNT3     (*((uint32_t volatile*)(0x38400068)))
 | 
| 114 |  | -#define DMACADDR3    (*((void* volatile*)(0x3840006C)))
 | 
| 115 |  | -#define DMACTCNT3    (*((uint32_t volatile*)(0x38400070)))
 | 
| 116 |  | -#define DMACOM3      (*((uint32_t volatile*)(0x38400074)))
 | 
| 117 |  | -#define DMABASE4     (*((void* volatile*)(0x38400080)))
 | 
| 118 |  | -#define DMACON4      (*((uint32_t volatile*)(0x38400084)))
 | 
| 119 |  | -#define DMATCNT4     (*((uint32_t volatile*)(0x38400088)))
 | 
| 120 |  | -#define DMACADDR4    (*((void* volatile*)(0x3840008C)))
 | 
| 121 |  | -#define DMACTCNT4    (*((uint32_t volatile*)(0x38400090)))
 | 
| 122 |  | -#define DMACOM4      (*((uint32_t volatile*)(0x38400094)))
 | 
| 123 |  | -#define DMABASE5     (*((void* volatile*)(0x384000A0)))
 | 
| 124 |  | -#define DMACON5      (*((uint32_t volatile*)(0x384000A4)))
 | 
| 125 |  | -#define DMATCNT5     (*((uint32_t volatile*)(0x384000A8)))
 | 
| 126 |  | -#define DMACADDR5    (*((void* volatile*)(0x384000AC)))
 | 
| 127 |  | -#define DMACTCNT5    (*((uint32_t volatile*)(0x384000B0)))
 | 
| 128 |  | -#define DMACOM5      (*((uint32_t volatile*)(0x384000B4)))
 | 
| 129 |  | -#define DMABASE6     (*((void* volatile*)(0x384000C0)))
 | 
| 130 |  | -#define DMACON6      (*((uint32_t volatile*)(0x384000C4)))
 | 
| 131 |  | -#define DMATCNT6     (*((uint32_t volatile*)(0x384000C8)))
 | 
| 132 |  | -#define DMACADDR6    (*((void* volatile*)(0x384000CC)))
 | 
| 133 |  | -#define DMACTCNT6    (*((uint32_t volatile*)(0x384000D0)))
 | 
| 134 |  | -#define DMACOM6      (*((uint32_t volatile*)(0x384000D4)))
 | 
| 135 |  | -#define DMABASE7     (*((void* volatile*)(0x384000E0)))
 | 
| 136 |  | -#define DMACON7      (*((uint32_t volatile*)(0x384000E4)))
 | 
| 137 |  | -#define DMATCNT7     (*((uint32_t volatile*)(0x384000E8)))
 | 
| 138 |  | -#define DMACADDR7    (*((void* volatile*)(0x384000EC)))
 | 
| 139 |  | -#define DMACTCNT7    (*((uint32_t volatile*)(0x384000F0)))
 | 
| 140 |  | -#define DMACOM7      (*((uint32_t volatile*)(0x384000F4)))
 | 
| 141 |  | -#define DMABASE8     (*((void* volatile*)(0x38400100)))
 | 
| 142 |  | -#define DMACON8      (*((uint32_t volatile*)(0x38400104)))
 | 
| 143 |  | -#define DMATCNT8     (*((uint32_t volatile*)(0x38400108)))
 | 
| 144 |  | -#define DMACADDR8    (*((void* volatile*)(0x3840010C)))
 | 
| 145 |  | -#define DMACTCNT8    (*((uint32_t volatile*)(0x38400110)))
 | 
| 146 |  | -#define DMACOM8      (*((uint32_t volatile*)(0x38400114)))
 | 
| 147 |  | -#define DMAALLST     (*((uint32_t volatile*)(0x38400180)))
 | 
| 148 |  | -#define DMAALLST2    (*((uint32_t volatile*)(0x38400184)))
 | 
| 149 |  | -#define DMACON_DEVICE_SHIFT    30
 | 
| 150 |  | -#define DMACON_DIRECTION_SHIFT 29
 | 
| 151 |  | -#define DMACON_DATA_SIZE_SHIFT 22
 | 
| 152 |  | -#define DMACON_BURST_LEN_SHIFT 19
 | 
| 153 |  | -#define DMACOM_START           4
 | 
| 154 |  | -#define DMACOM_CLEARBOTHDONE   7
 | 
| 155 |  | -#define DMAALLST_WCOM0         (1 << 0)
 | 
| 156 |  | -#define DMAALLST_HCOM0         (1 << 1)
 | 
| 157 |  | -#define DMAALLST_DMABUSY0      (1 << 2)
 | 
| 158 |  | -#define DMAALLST_HOLD_SKIP     (1 << 3)
 | 
| 159 |  | -#define DMAALLST_WCOM1         (1 << 4)
 | 
| 160 |  | -#define DMAALLST_HCOM1         (1 << 5)
 | 
| 161 |  | -#define DMAALLST_DMABUSY1      (1 << 6)
 | 
| 162 |  | -#define DMAALLST_WCOM2         (1 << 8)
 | 
| 163 |  | -#define DMAALLST_HCOM2         (1 << 9)
 | 
| 164 |  | -#define DMAALLST_DMABUSY2      (1 << 10)
 | 
| 165 |  | -#define DMAALLST_WCOM3         (1 << 12)
 | 
| 166 |  | -#define DMAALLST_HCOM3         (1 << 13)
 | 
| 167 |  | -#define DMAALLST_DMABUSY3      (1 << 14)
 | 
| 168 |  | -#define DMAALLST_CHAN0_MASK    (0xF << 0)
 | 
| 169 |  | -#define DMAALLST_CHAN1_MASK    (0xF << 4)
 | 
| 170 |  | -#define DMAALLST_CHAN2_MASK    (0xF << 8)
 | 
| 171 |  | -#define DMAALLST_CHAN3_MASK    (0xF << 12)
 | 
| 172 |  | -
 | 
| 173 |  | -
 | 
| 174 |  | -/////FMC/////
 | 
| 175 |  | -#define FMCTRL0      (*((uint32_t volatile*)(0x39400000)))
 | 
| 176 |  | -#define FMCTRL1      (*((uint32_t volatile*)(0x39400004)))
 | 
| 177 |  | -#define FMCMD        (*((uint32_t volatile*)(0x39400008)))
 | 
| 178 |  | -#define FMADDR0      (*((uint32_t volatile*)(0x3940000C)))
 | 
| 179 |  | -#define FMADDR1      (*((uint32_t volatile*)(0x39400010)))
 | 
| 180 |  | -#define FMANUM       (*((uint32_t volatile*)(0x3940002C)))
 | 
| 181 |  | -#define FMDNUM       (*((uint32_t volatile*)(0x39400030)))
 | 
| 182 |  | -#define FMCSTAT      (*((uint32_t volatile*)(0x39400048)))
 | 
| 183 |  | -#define FMFIFO       (*((uint32_t volatile*)(0x39400080)))
 | 
| 184 |  | -#define RS_ECC_CTRL  (*((uint32_t volatile*)(0x39400100)))
 | 
| 185 |  | -#define FMCTRL0_ENABLEDMA      (1 << 10)
 | 
| 186 |  | -#define FMCTRL0_UNK1           (1 << 11)
 | 
| 187 |  | -#define FMCTRL1_DOTRANSADDR    (1 << 0)
 | 
| 188 |  | -#define FMCTRL1_DOREADDATA     (1 << 1)
 | 
| 189 |  | -#define FMCTRL1_DOWRITEDATA    (1 << 2)
 | 
| 190 |  | -#define FMCTRL1_CLEARWFIFO     (1 << 6)
 | 
| 191 |  | -#define FMCTRL1_CLEARRFIFO     (1 << 7)
 | 
| 192 |  | -#define FMCSTAT_RBB            (1 << 0)
 | 
| 193 |  | -#define FMCSTAT_RBBDONE        (1 << 1)
 | 
| 194 |  | -#define FMCSTAT_CMDDONE        (1 << 2)
 | 
| 195 |  | -#define FMCSTAT_ADDRDONE       (1 << 3)
 | 
| 196 |  | -#define FMCSTAT_BANK0READY     (1 << 4)
 | 
| 197 |  | -#define FMCSTAT_BANK1READY     (1 << 5)
 | 
| 198 |  | -#define FMCSTAT_BANK2READY     (1 << 6)
 | 
| 199 |  | -#define FMCSTAT_BANK3READY     (1 << 7)
 | 
| 200 |  | -
 | 
| 201 |  | -
 | 
| 202 |  | -/////ECC/////
 | 
| 203 |  | -#define ECC_DATA_PTR  (*((void* volatile*)(0x39E00004)))
 | 
| 204 |  | -#define ECC_SPARE_PTR (*((void* volatile*)(0x39E00008)))
 | 
| 205 |  | -#define ECC_CTRL      (*((uint32_t volatile*)(0x39E0000C)))
 | 
| 206 |  | -#define ECC_RESULT    (*((uint32_t volatile*)(0x39E00010)))
 | 
| 207 |  | -#define ECC_UNK1      (*((uint32_t volatile*)(0x39E00014)))
 | 
| 208 |  | -#define ECC_INT_CLR   (*((uint32_t volatile*)(0x39E00040)))
 | 
| 209 |  | -#define ECCCTRL_STARTDECODING  (1 << 0)
 | 
| 210 |  | -#define ECCCTRL_STARTENCODING  (1 << 1)
 | 
| 211 |  | -#define ECCCTRL_STARTDECNOSYND (1 << 2)
 | 
| 212 |  | -
 | 
| 213 |  | -
 | 
| 214 |  | -/////CLICKWHEEL/////
 | 
| 215 |  | -#define WHEEL00      (*((uint32_t volatile*)(0x3C200000)))
 | 
| 216 |  | -#define WHEEL04      (*((uint32_t volatile*)(0x3C200004)))
 | 
| 217 |  | -#define WHEEL08      (*((uint32_t volatile*)(0x3C200008)))
 | 
| 218 |  | -#define WHEEL0C      (*((uint32_t volatile*)(0x3C20000C)))
 | 
| 219 |  | -#define WHEEL10      (*((uint32_t volatile*)(0x3C200010)))
 | 
| 220 |  | -#define WHEELINT     (*((uint32_t volatile*)(0x3C200014)))
 | 
| 221 |  | -#define WHEELRX      (*((uint32_t volatile*)(0x3C200018)))
 | 
| 222 |  | -#define WHEELTX      (*((uint32_t volatile*)(0x3C20001C)))
 | 
| 223 |  | -
 | 
| 224 |  | -
 | 
| 225 |  | -/////AES/////
 | 
| 226 |  | -#define AESCONTROL   (*((uint32_t volatile*)(0x39800000)))
 | 
| 227 |  | -#define AESGO        (*((uint32_t volatile*)(0x39800004)))
 | 
| 228 |  | -#define AESUNKREG0   (*((uint32_t volatile*)(0x39800008)))
 | 
| 229 |  | -#define AESSTATUS    (*((uint32_t volatile*)(0x3980000C)))
 | 
| 230 |  | -#define AESUNKREG1   (*((uint32_t volatile*)(0x39800010)))
 | 
| 231 |  | -#define AESKEYLEN    (*((uint32_t volatile*)(0x39800014)))
 | 
| 232 |  | -#define AESOUTSIZE   (*((uint32_t volatile*)(0x39800018)))
 | 
| 233 |  | -#define AESOUTADDR   (*((void* volatile*)(0x39800020)))
 | 
| 234 |  | -#define AESINSIZE    (*((uint32_t volatile*)(0x39800024)))
 | 
| 235 |  | -#define AESINADDR    (*((const void* volatile*)(0x39800028)))
 | 
| 236 |  | -#define AESAUXSIZE   (*((uint32_t volatile*)(0x3980002C)))
 | 
| 237 |  | -#define AESAUXADDR   (*((void* volatile*)(0x39800030)))
 | 
| 238 |  | -#define AESSIZE3     (*((uint32_t volatile*)(0x39800034)))
 | 
| 239 |  | -#define AESKEY         ((uint32_t volatile*)(0x3980004C))
 | 
| 240 |  | -#define AESTYPE      (*((uint32_t volatile*)(0x3980006C)))
 | 
| 241 |  | -#define AESIV          ((uint32_t volatile*)(0x39800074))
 | 
| 242 |  | -#define AESTYPE2     (*((uint32_t volatile*)(0x39800088)))
 | 
| 243 |  | -#define AESUNKREG2   (*((uint32_t volatile*)(0x3980008C)))
 | 
| 244 |  | -
 | 
| 245 |  | -/////HASH/////
 | 
| 246 |  | -#define HASHCTRL     (*((uint32_t volatile*)(0x3C600000)))
 | 
| 247 |  | -#define HASHRESULT     ((uint32_t volatile*)(0x3C600020))
 | 
| 248 |  | -#define HASHDATAIN     ((uint32_t volatile*)(0x3C600040))
 | 
| 249 |  | -
 | 
| 250 |  | -
 | 
| 251 |  | -/////TIMER/////
 | 
| 252 |  | -#define TACON        (*((uint32_t volatile*)(0x3C700000)))
 | 
| 253 |  | -#define TACMD        (*((uint32_t volatile*)(0x3C700004)))
 | 
| 254 |  | -#define TADATA0      (*((uint32_t volatile*)(0x3C700008)))
 | 
| 255 |  | -#define TADATA1      (*((uint32_t volatile*)(0x3C70000C)))
 | 
| 256 |  | -#define TAPRE        (*((uint32_t volatile*)(0x3C700010)))
 | 
| 257 |  | -#define TACNT        (*((uint32_t volatile*)(0x3C700014)))
 | 
| 258 |  | -#define TBCON        (*((uint32_t volatile*)(0x3C700020)))
 | 
| 259 |  | -#define TBCMD        (*((uint32_t volatile*)(0x3C700024)))
 | 
| 260 |  | -#define TBDATA0      (*((uint32_t volatile*)(0x3C700028)))
 | 
| 261 |  | -#define TBDATA1      (*((uint32_t volatile*)(0x3C70002C)))
 | 
| 262 |  | -#define TBPRE        (*((uint32_t volatile*)(0x3C700030)))
 | 
| 263 |  | -#define TBCNT        (*((uint32_t volatile*)(0x3C700034)))
 | 
| 264 |  | -#define TCCON        (*((uint32_t volatile*)(0x3C700040)))
 | 
| 265 |  | -#define TCCMD        (*((uint32_t volatile*)(0x3C700044)))
 | 
| 266 |  | -#define TCDATA0      (*((uint32_t volatile*)(0x3C700048)))
 | 
| 267 |  | -#define TCDATA1      (*((uint32_t volatile*)(0x3C70004C)))
 | 
| 268 |  | -#define TCPRE        (*((uint32_t volatile*)(0x3C700050)))
 | 
| 269 |  | -#define TCCNT        (*((uint32_t volatile*)(0x3C700054)))
 | 
| 270 |  | -#define TDCON        (*((uint32_t volatile*)(0x3C700060)))
 | 
| 271 |  | -#define TDCMD        (*((uint32_t volatile*)(0x3C700064)))
 | 
| 272 |  | -#define TDDATA0      (*((uint32_t volatile*)(0x3C700068)))
 | 
| 273 |  | -#define TDDATA1      (*((uint32_t volatile*)(0x3C70006C)))
 | 
| 274 |  | -#define TDPRE        (*((uint32_t volatile*)(0x3C700070)))
 | 
| 275 |  | -#define TDCNT        (*((uint32_t volatile*)(0x3C700074)))
 | 
| 276 |  | -
 | 
| 277 |  | -
 | 
| 278 |  | -/////USB/////
 | 
| 279 |  | -#define OTGBASE 0x38800000
 | 
| 280 |  | -#define PHYBASE 0x3C400000
 | 
| 281 |  | -#define SYNOPSYSOTG_CLOCK 0
 | 
| 282 |  | -#define SYNOPSYSOTG_AHBCFG 0x27
 | 
| 283 |  | -
 | 
| 284 |  | -
 | 
| 285 |  | -/////I2C/////
 | 
| 286 |  | -#define IICCON       (*((uint32_t volatile*)(0x3C900000)))
 | 
| 287 |  | -#define IICSTAT      (*((uint32_t volatile*)(0x3C900004)))
 | 
| 288 |  | -#define IICADD       (*((uint32_t volatile*)(0x3C900008)))
 | 
| 289 |  | -#define IICDS        (*((uint32_t volatile*)(0x3C90000C)))
 | 
| 290 |  | -
 | 
| 291 |  | -
 | 
| 292 |  | -/////LCD/////
 | 
| 293 |  | -#define LCDCON    (*((uint32_t volatile*)(0x38600040)))
 | 
| 294 |  | -#define LCDWCMD   (*((uint32_t volatile*)(0x38600004)))
 | 
| 295 |  | -#define LCDPHTIME (*((uint32_t volatile*)(0x38600010)))
 | 
| 296 |  | -#define LCDSTATUS (*((uint32_t volatile*)(0x3860001c)))
 | 
| 297 |  | -#define LCDWDATA  (*((uint32_t volatile*)(0x38600040)))
 | 
| 298 |  | -
 | 
| 299 |  | -
 | 
| 300 |  | -/////CLOCK GATES/////
 | 
| 301 |  | -#define CLOCKGATE_USB_1 14
 | 
| 302 |  | -#define CLOCKGATE_USB_2 43
 | 
| 303 |  | -
 | 
| 304 |  | -
 | 
| 305 |  | -/////INTERRUPTS/////
 | 
| 306 |  | -#define IRQ_TIMER    5
 | 
| 307 |  | -#define IRQ_DMA      10
 | 
| 308 |  | -#define IRQ_USB_FUNC 16
 | 
| 309 |  | -#define IRQ_ECC      19
 | 
| 310 |  | -#define IRQ_WHEEL    26
 | 
| 311 |  | -#define IRQ_IIC      27
 | 
| 312 |  | -
 | 
| 313 |  | -
 | 
| 314 |  | -#endif
 | 
|  | 2 | +// | 
|  | 3 | +// | 
|  | 4 | +//    Copyright 2010 TheSeven | 
|  | 5 | +// | 
|  | 6 | +// | 
|  | 7 | +//    This file is part of emCORE. | 
|  | 8 | +// | 
|  | 9 | +//    emCORE is free software: you can redistribute it and/or | 
|  | 10 | +//    modify it under the terms of the GNU General Public License as | 
|  | 11 | +//    published by the Free Software Foundation, either version 2 of the | 
|  | 12 | +//    License, or (at your option) any later version. | 
|  | 13 | +// | 
|  | 14 | +//    emCORE is distributed in the hope that it will be useful, | 
|  | 15 | +//    but WITHOUT ANY WARRANTY; without even the implied warranty of | 
|  | 16 | +//    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. | 
|  | 17 | +//    See the GNU General Public License for more details. | 
|  | 18 | +// | 
|  | 19 | +//    You should have received a copy of the GNU General Public License along | 
|  | 20 | +//    with emCORE.  If not, see <http://www.gnu.org/licenses/>. | 
|  | 21 | +// | 
|  | 22 | +// | 
|  | 23 | + | 
|  | 24 | + | 
|  | 25 | +#ifndef __S5L8701_H__ | 
|  | 26 | +#define __S5L8701_H__ | 
|  | 27 | + | 
|  | 28 | +#include "global.h" | 
|  | 29 | + | 
|  | 30 | + | 
|  | 31 | +/////CLKCON///// | 
|  | 32 | +#define CLKCON       (*((uint32_t volatile*)(0x3C500000))) | 
|  | 33 | +#define PLL0PMS      (*((uint32_t volatile*)(0x3C500004))) | 
|  | 34 | +#define PLL1PMS      (*((uint32_t volatile*)(0x3C500008))) | 
|  | 35 | +#define PLL2PMS      (*((uint32_t volatile*)(0x3C50000C))) | 
|  | 36 | +#define PLL0LCNT     (*((uint32_t volatile*)(0x3C500014))) | 
|  | 37 | +#define PLL1LCNT     (*((uint32_t volatile*)(0x3C500018))) | 
|  | 38 | +#define PLL2LCNT     (*((uint32_t volatile*)(0x3C50001C))) | 
|  | 39 | +#define PLLLOCK      (*((uint32_t volatile*)(0x3C500020))) | 
|  | 40 | +#define PLLCON       (*((uint32_t volatile*)(0x3C500024))) | 
|  | 41 | +#define PWRMODE      (*((uint32_t volatile*)(0x3C50002C))) | 
|  | 42 | +#define SWRCON       (*((uint32_t volatile*)(0x3C500030))) | 
|  | 43 | +#define RSTSR        (*((uint32_t volatile*)(0x3C500034))) | 
|  | 44 | +#define DSPCLKMD     (*((uint32_t volatile*)(0x3C500038))) | 
|  | 45 | +#define CLKCON2      (*((uint32_t volatile*)(0x3C50003C))) | 
|  | 46 | +#define PWRCON(i)    (*((uint32_t volatile*)(0x3C500000 + ((i) == 1 ? 0x40 : 0x28)))) | 
|  | 47 | + | 
|  | 48 | + | 
|  | 49 | +/////ICU///// | 
|  | 50 | +#define SRCPND       (*((uint32_t volatile*)(0x39C00000))) | 
|  | 51 | +#define INTMOD       (*((uint32_t volatile*)(0x39C00004))) | 
|  | 52 | +#define INTMSK       (*((uint32_t volatile*)(0x39C00008))) | 
|  | 53 | +#define INTPRIO      (*((uint32_t volatile*)(0x39C0000C))) | 
|  | 54 | +#define INTPND       (*((uint32_t volatile*)(0x39C00010))) | 
|  | 55 | +#define INTOFFSET    (*((uint32_t volatile*)(0x39C00014))) | 
|  | 56 | +#define EINTPOL      (*((uint32_t volatile*)(0x39C00018))) | 
|  | 57 | +#define EINTPEND     (*((uint32_t volatile*)(0x39C0001C))) | 
|  | 58 | +#define EINTMSK      (*((uint32_t volatile*)(0x39C00020))) | 
|  | 59 | + | 
|  | 60 | + | 
|  | 61 | +/////GPIO///// | 
|  | 62 | +#define PCON0        (*((uint32_t volatile*)(0x3CF00000))) | 
|  | 63 | +#define PDAT0        (*((uint32_t volatile*)(0x3CF00004))) | 
|  | 64 | +#define PCON1        (*((uint32_t volatile*)(0x3CF00010))) | 
|  | 65 | +#define PDAT1        (*((uint32_t volatile*)(0x3CF00014))) | 
|  | 66 | +#define PCON2        (*((uint32_t volatile*)(0x3CF00020))) | 
|  | 67 | +#define PDAT2        (*((uint32_t volatile*)(0x3CF00024))) | 
|  | 68 | +#define PCON3        (*((uint32_t volatile*)(0x3CF00030))) | 
|  | 69 | +#define PDAT3        (*((uint32_t volatile*)(0x3CF00034))) | 
|  | 70 | +#define PCON4        (*((uint32_t volatile*)(0x3CF00040))) | 
|  | 71 | +#define PDAT4        (*((uint32_t volatile*)(0x3CF00044))) | 
|  | 72 | +#define PCON5        (*((uint32_t volatile*)(0x3CF00050))) | 
|  | 73 | +#define PDAT5        (*((uint32_t volatile*)(0x3CF00054))) | 
|  | 74 | +#define PUNK5        (*((uint32_t volatile*)(0x3CF0005C))) | 
|  | 75 | +#define PCON6        (*((uint32_t volatile*)(0x3CF00060))) | 
|  | 76 | +#define PDAT6        (*((uint32_t volatile*)(0x3CF00064))) | 
|  | 77 | +#define PCON7        (*((uint32_t volatile*)(0x3CF00070))) | 
|  | 78 | +#define PDAT7        (*((uint32_t volatile*)(0x3CF00074))) | 
|  | 79 | +#define PCON10       (*((uint32_t volatile*)(0x3CF000A0))) | 
|  | 80 | +#define PDAT10       (*((uint32_t volatile*)(0x3CF000A4))) | 
|  | 81 | +#define PCON11       (*((uint32_t volatile*)(0x3CF000B0))) | 
|  | 82 | +#define PDAT11       (*((uint32_t volatile*)(0x3CF000B4))) | 
|  | 83 | +#define PCON13       (*((uint32_t volatile*)(0x3CF000D0))) | 
|  | 84 | +#define PDAT13       (*((uint32_t volatile*)(0x3CF000D4))) | 
|  | 85 | +#define PCON14       (*((uint32_t volatile*)(0x3CF000E0))) | 
|  | 86 | +#define PDAT14       (*((uint32_t volatile*)(0x3CF000E4))) | 
|  | 87 | +#define PCON15       (*((uint32_t volatile*)(0x3CF000F0))) | 
|  | 88 | +#define PUNK15       (*((uint32_t volatile*)(0x3CF000FC))) | 
|  | 89 | + | 
|  | 90 | + | 
|  | 91 | +/////IODMA///// | 
|  | 92 | +#define DMABASE0     (*((void* volatile*)(0x38400000))) | 
|  | 93 | +#define DMACON0      (*((uint32_t volatile*)(0x38400004))) | 
|  | 94 | +#define DMATCNT0     (*((uint32_t volatile*)(0x38400008))) | 
|  | 95 | +#define DMACADDR0    (*((void* volatile*)(0x3840000C))) | 
|  | 96 | +#define DMACTCNT0    (*((uint32_t volatile*)(0x38400010))) | 
|  | 97 | +#define DMACOM0      (*((uint32_t volatile*)(0x38400014))) | 
|  | 98 | +#define DMANOF0      (*((uint32_t volatile*)(0x38400018))) | 
|  | 99 | +#define DMABASE1     (*((void* volatile*)(0x38400020))) | 
|  | 100 | +#define DMACON1      (*((uint32_t volatile*)(0x38400024))) | 
|  | 101 | +#define DMATCNT1     (*((uint32_t volatile*)(0x38400028))) | 
|  | 102 | +#define DMACADDR1    (*((void* volatile*)(0x3840002C))) | 
|  | 103 | +#define DMACTCNT1    (*((uint32_t volatile*)(0x38400030))) | 
|  | 104 | +#define DMACOM1      (*((uint32_t volatile*)(0x38400034))) | 
|  | 105 | +#define DMABASE2     (*((void* volatile*)(0x38400040))) | 
|  | 106 | +#define DMACON2      (*((uint32_t volatile*)(0x38400044))) | 
|  | 107 | +#define DMATCNT2     (*((uint32_t volatile*)(0x38400048))) | 
|  | 108 | +#define DMACADDR2    (*((void* volatile*)(0x3840004C))) | 
|  | 109 | +#define DMACTCNT2    (*((uint32_t volatile*)(0x38400050))) | 
|  | 110 | +#define DMACOM2      (*((uint32_t volatile*)(0x38400054))) | 
|  | 111 | +#define DMABASE3     (*((void* volatile*)(0x38400060))) | 
|  | 112 | +#define DMACON3      (*((uint32_t volatile*)(0x38400064))) | 
|  | 113 | +#define DMATCNT3     (*((uint32_t volatile*)(0x38400068))) | 
|  | 114 | +#define DMACADDR3    (*((void* volatile*)(0x3840006C))) | 
|  | 115 | +#define DMACTCNT3    (*((uint32_t volatile*)(0x38400070))) | 
|  | 116 | +#define DMACOM3      (*((uint32_t volatile*)(0x38400074))) | 
|  | 117 | +#define DMABASE4     (*((void* volatile*)(0x38400080))) | 
|  | 118 | +#define DMACON4      (*((uint32_t volatile*)(0x38400084))) | 
|  | 119 | +#define DMATCNT4     (*((uint32_t volatile*)(0x38400088))) | 
|  | 120 | +#define DMACADDR4    (*((void* volatile*)(0x3840008C))) | 
|  | 121 | +#define DMACTCNT4    (*((uint32_t volatile*)(0x38400090))) | 
|  | 122 | +#define DMACOM4      (*((uint32_t volatile*)(0x38400094))) | 
|  | 123 | +#define DMABASE5     (*((void* volatile*)(0x384000A0))) | 
|  | 124 | +#define DMACON5      (*((uint32_t volatile*)(0x384000A4))) | 
|  | 125 | +#define DMATCNT5     (*((uint32_t volatile*)(0x384000A8))) | 
|  | 126 | +#define DMACADDR5    (*((void* volatile*)(0x384000AC))) | 
|  | 127 | +#define DMACTCNT5    (*((uint32_t volatile*)(0x384000B0))) | 
|  | 128 | +#define DMACOM5      (*((uint32_t volatile*)(0x384000B4))) | 
|  | 129 | +#define DMABASE6     (*((void* volatile*)(0x384000C0))) | 
|  | 130 | +#define DMACON6      (*((uint32_t volatile*)(0x384000C4))) | 
|  | 131 | +#define DMATCNT6     (*((uint32_t volatile*)(0x384000C8))) | 
|  | 132 | +#define DMACADDR6    (*((void* volatile*)(0x384000CC))) | 
|  | 133 | +#define DMACTCNT6    (*((uint32_t volatile*)(0x384000D0))) | 
|  | 134 | +#define DMACOM6      (*((uint32_t volatile*)(0x384000D4))) | 
|  | 135 | +#define DMABASE7     (*((void* volatile*)(0x384000E0))) | 
|  | 136 | +#define DMACON7      (*((uint32_t volatile*)(0x384000E4))) | 
|  | 137 | +#define DMATCNT7     (*((uint32_t volatile*)(0x384000E8))) | 
|  | 138 | +#define DMACADDR7    (*((void* volatile*)(0x384000EC))) | 
|  | 139 | +#define DMACTCNT7    (*((uint32_t volatile*)(0x384000F0))) | 
|  | 140 | +#define DMACOM7      (*((uint32_t volatile*)(0x384000F4))) | 
|  | 141 | +#define DMABASE8     (*((void* volatile*)(0x38400100))) | 
|  | 142 | +#define DMACON8      (*((uint32_t volatile*)(0x38400104))) | 
|  | 143 | +#define DMATCNT8     (*((uint32_t volatile*)(0x38400108))) | 
|  | 144 | +#define DMACADDR8    (*((void* volatile*)(0x3840010C))) | 
|  | 145 | +#define DMACTCNT8    (*((uint32_t volatile*)(0x38400110))) | 
|  | 146 | +#define DMACOM8      (*((uint32_t volatile*)(0x38400114))) | 
|  | 147 | +#define DMAALLST     (*((uint32_t volatile*)(0x38400180))) | 
|  | 148 | +#define DMAALLST2    (*((uint32_t volatile*)(0x38400184))) | 
|  | 149 | +#define DMACON_DEVICE_SHIFT    30 | 
|  | 150 | +#define DMACON_DIRECTION_SHIFT 29 | 
|  | 151 | +#define DMACON_DATA_SIZE_SHIFT 22 | 
|  | 152 | +#define DMACON_BURST_LEN_SHIFT 19 | 
|  | 153 | +#define DMACOM_START           4 | 
|  | 154 | +#define DMACOM_CLEARBOTHDONE   7 | 
|  | 155 | +#define DMAALLST_WCOM0         (1 << 0) | 
|  | 156 | +#define DMAALLST_HCOM0         (1 << 1) | 
|  | 157 | +#define DMAALLST_DMABUSY0      (1 << 2) | 
|  | 158 | +#define DMAALLST_HOLD_SKIP     (1 << 3) | 
|  | 159 | +#define DMAALLST_WCOM1         (1 << 4) | 
|  | 160 | +#define DMAALLST_HCOM1         (1 << 5) | 
|  | 161 | +#define DMAALLST_DMABUSY1      (1 << 6) | 
|  | 162 | +#define DMAALLST_WCOM2         (1 << 8) | 
|  | 163 | +#define DMAALLST_HCOM2         (1 << 9) | 
|  | 164 | +#define DMAALLST_DMABUSY2      (1 << 10) | 
|  | 165 | +#define DMAALLST_WCOM3         (1 << 12) | 
|  | 166 | +#define DMAALLST_HCOM3         (1 << 13) | 
|  | 167 | +#define DMAALLST_DMABUSY3      (1 << 14) | 
|  | 168 | +#define DMAALLST_CHAN0_MASK    (0xF << 0) | 
|  | 169 | +#define DMAALLST_CHAN1_MASK    (0xF << 4) | 
|  | 170 | +#define DMAALLST_CHAN2_MASK    (0xF << 8) | 
|  | 171 | +#define DMAALLST_CHAN3_MASK    (0xF << 12) | 
|  | 172 | + | 
|  | 173 | + | 
|  | 174 | +/////FMC///// | 
|  | 175 | +#define FMCTRL0      (*((uint32_t volatile*)(0x39400000))) | 
|  | 176 | +#define FMCTRL1      (*((uint32_t volatile*)(0x39400004))) | 
|  | 177 | +#define FMCMD        (*((uint32_t volatile*)(0x39400008))) | 
|  | 178 | +#define FMADDR0      (*((uint32_t volatile*)(0x3940000C))) | 
|  | 179 | +#define FMADDR1      (*((uint32_t volatile*)(0x39400010))) | 
|  | 180 | +#define FMANUM       (*((uint32_t volatile*)(0x3940002C))) | 
|  | 181 | +#define FMDNUM       (*((uint32_t volatile*)(0x39400030))) | 
|  | 182 | +#define FMCSTAT      (*((uint32_t volatile*)(0x39400048))) | 
|  | 183 | +#define FMFIFO       (*((uint32_t volatile*)(0x39400080))) | 
|  | 184 | +#define RS_ECC_CTRL  (*((uint32_t volatile*)(0x39400100))) | 
|  | 185 | +#define FMCTRL0_ENABLEDMA      (1 << 10) | 
|  | 186 | +#define FMCTRL0_UNK1           (1 << 11) | 
|  | 187 | +#define FMCTRL1_DOTRANSADDR    (1 << 0) | 
|  | 188 | +#define FMCTRL1_DOREADDATA     (1 << 1) | 
|  | 189 | +#define FMCTRL1_DOWRITEDATA    (1 << 2) | 
|  | 190 | +#define FMCTRL1_CLEARWFIFO     (1 << 6) | 
|  | 191 | +#define FMCTRL1_CLEARRFIFO     (1 << 7) | 
|  | 192 | +#define FMCSTAT_RBB            (1 << 0) | 
|  | 193 | +#define FMCSTAT_RBBDONE        (1 << 1) | 
|  | 194 | +#define FMCSTAT_CMDDONE        (1 << 2) | 
|  | 195 | +#define FMCSTAT_ADDRDONE       (1 << 3) | 
|  | 196 | +#define FMCSTAT_BANK0READY     (1 << 4) | 
|  | 197 | +#define FMCSTAT_BANK1READY     (1 << 5) | 
|  | 198 | +#define FMCSTAT_BANK2READY     (1 << 6) | 
|  | 199 | +#define FMCSTAT_BANK3READY     (1 << 7) | 
|  | 200 | + | 
|  | 201 | + | 
|  | 202 | +/////ECC///// | 
|  | 203 | +#define ECC_DATA_PTR  (*((void* volatile*)(0x39E00004))) | 
|  | 204 | +#define ECC_SPARE_PTR (*((void* volatile*)(0x39E00008))) | 
|  | 205 | +#define ECC_CTRL      (*((uint32_t volatile*)(0x39E0000C))) | 
|  | 206 | +#define ECC_RESULT    (*((uint32_t volatile*)(0x39E00010))) | 
|  | 207 | +#define ECC_UNK1      (*((uint32_t volatile*)(0x39E00014))) | 
|  | 208 | +#define ECC_INT_CLR   (*((uint32_t volatile*)(0x39E00040))) | 
|  | 209 | +#define ECCCTRL_STARTDECODING  (1 << 0) | 
|  | 210 | +#define ECCCTRL_STARTENCODING  (1 << 1) | 
|  | 211 | +#define ECCCTRL_STARTDECNOSYND (1 << 2) | 
|  | 212 | + | 
|  | 213 | + | 
|  | 214 | +/////CLICKWHEEL///// | 
|  | 215 | +#define WHEEL00      (*((uint32_t volatile*)(0x3C200000))) | 
|  | 216 | +#define WHEEL04      (*((uint32_t volatile*)(0x3C200004))) | 
|  | 217 | +#define WHEEL08      (*((uint32_t volatile*)(0x3C200008))) | 
|  | 218 | +#define WHEEL0C      (*((uint32_t volatile*)(0x3C20000C))) | 
|  | 219 | +#define WHEEL10      (*((uint32_t volatile*)(0x3C200010))) | 
|  | 220 | +#define WHEELINT     (*((uint32_t volatile*)(0x3C200014))) | 
|  | 221 | +#define WHEELRX      (*((uint32_t volatile*)(0x3C200018))) | 
|  | 222 | +#define WHEELTX      (*((uint32_t volatile*)(0x3C20001C))) | 
|  | 223 | + | 
|  | 224 | + | 
|  | 225 | +/////AES///// | 
|  | 226 | +#define AESCONTROL   (*((uint32_t volatile*)(0x39800000))) | 
|  | 227 | +#define AESGO        (*((uint32_t volatile*)(0x39800004))) | 
|  | 228 | +#define AESUNKREG0   (*((uint32_t volatile*)(0x39800008))) | 
|  | 229 | +#define AESSTATUS    (*((uint32_t volatile*)(0x3980000C))) | 
|  | 230 | +#define AESUNKREG1   (*((uint32_t volatile*)(0x39800010))) | 
|  | 231 | +#define AESKEYLEN    (*((uint32_t volatile*)(0x39800014))) | 
|  | 232 | +#define AESOUTSIZE   (*((uint32_t volatile*)(0x39800018))) | 
|  | 233 | +#define AESOUTADDR   (*((void* volatile*)(0x39800020))) | 
|  | 234 | +#define AESINSIZE    (*((uint32_t volatile*)(0x39800024))) | 
|  | 235 | +#define AESINADDR    (*((const void* volatile*)(0x39800028))) | 
|  | 236 | +#define AESAUXSIZE   (*((uint32_t volatile*)(0x3980002C))) | 
|  | 237 | +#define AESAUXADDR   (*((void* volatile*)(0x39800030))) | 
|  | 238 | +#define AESSIZE3     (*((uint32_t volatile*)(0x39800034))) | 
|  | 239 | +#define AESKEY         ((uint32_t volatile*)(0x3980004C)) | 
|  | 240 | +#define AESTYPE      (*((uint32_t volatile*)(0x3980006C))) | 
|  | 241 | +#define AESIV          ((uint32_t volatile*)(0x39800074)) | 
|  | 242 | +#define AESTYPE2     (*((uint32_t volatile*)(0x39800088))) | 
|  | 243 | +#define AESUNKREG2   (*((uint32_t volatile*)(0x3980008C))) | 
|  | 244 | + | 
|  | 245 | +/////HASH///// | 
|  | 246 | +#define HASHCTRL     (*((uint32_t volatile*)(0x3C600000))) | 
|  | 247 | +#define HASHRESULT     ((uint32_t volatile*)(0x3C600020)) | 
|  | 248 | +#define HASHDATAIN     ((uint32_t volatile*)(0x3C600040)) | 
|  | 249 | + | 
|  | 250 | + | 
|  | 251 | +/////TIMER///// | 
|  | 252 | +#define TACON        (*((uint32_t volatile*)(0x3C700000))) | 
|  | 253 | +#define TACMD        (*((uint32_t volatile*)(0x3C700004))) | 
|  | 254 | +#define TADATA0      (*((uint32_t volatile*)(0x3C700008))) | 
|  | 255 | +#define TADATA1      (*((uint32_t volatile*)(0x3C70000C))) | 
|  | 256 | +#define TAPRE        (*((uint32_t volatile*)(0x3C700010))) | 
|  | 257 | +#define TACNT        (*((uint32_t volatile*)(0x3C700014))) | 
|  | 258 | +#define TBCON        (*((uint32_t volatile*)(0x3C700020))) | 
|  | 259 | +#define TBCMD        (*((uint32_t volatile*)(0x3C700024))) | 
|  | 260 | +#define TBDATA0      (*((uint32_t volatile*)(0x3C700028))) | 
|  | 261 | +#define TBDATA1      (*((uint32_t volatile*)(0x3C70002C))) | 
|  | 262 | +#define TBPRE        (*((uint32_t volatile*)(0x3C700030))) | 
|  | 263 | +#define TBCNT        (*((uint32_t volatile*)(0x3C700034))) | 
|  | 264 | +#define TCCON        (*((uint32_t volatile*)(0x3C700040))) | 
|  | 265 | +#define TCCMD        (*((uint32_t volatile*)(0x3C700044))) | 
|  | 266 | +#define TCDATA0      (*((uint32_t volatile*)(0x3C700048))) | 
|  | 267 | +#define TCDATA1      (*((uint32_t volatile*)(0x3C70004C))) | 
|  | 268 | +#define TCPRE        (*((uint32_t volatile*)(0x3C700050))) | 
|  | 269 | +#define TCCNT        (*((uint32_t volatile*)(0x3C700054))) | 
|  | 270 | +#define TDCON        (*((uint32_t volatile*)(0x3C700060))) | 
|  | 271 | +#define TDCMD        (*((uint32_t volatile*)(0x3C700064))) | 
|  | 272 | +#define TDDATA0      (*((uint32_t volatile*)(0x3C700068))) | 
|  | 273 | +#define TDDATA1      (*((uint32_t volatile*)(0x3C70006C))) | 
|  | 274 | +#define TDPRE        (*((uint32_t volatile*)(0x3C700070))) | 
|  | 275 | +#define TDCNT        (*((uint32_t volatile*)(0x3C700074))) | 
|  | 276 | + | 
|  | 277 | + | 
|  | 278 | +/////USB///// | 
|  | 279 | +#define OTGBASE 0x38800000 | 
|  | 280 | +#define PHYBASE 0x3C400000 | 
|  | 281 | +#define SYNOPSYSOTG_CLOCK 0 | 
|  | 282 | +#define SYNOPSYSOTG_AHBCFG 0x27 | 
|  | 283 | + | 
|  | 284 | + | 
|  | 285 | +/////I2C///// | 
|  | 286 | +#define IICCON       (*((uint32_t volatile*)(0x3C900000))) | 
|  | 287 | +#define IICSTAT      (*((uint32_t volatile*)(0x3C900004))) | 
|  | 288 | +#define IICADD       (*((uint32_t volatile*)(0x3C900008))) | 
|  | 289 | +#define IICDS        (*((uint32_t volatile*)(0x3C90000C))) | 
|  | 290 | + | 
|  | 291 | + | 
|  | 292 | +/////LCD///// | 
|  | 293 | +#define LCDCON    (*((uint32_t volatile*)(0x38600000))) | 
|  | 294 | +#define LCDWCMD   (*((uint32_t volatile*)(0x38600004))) | 
|  | 295 | +#define LCDPHTIME (*((uint32_t volatile*)(0x38600010))) | 
|  | 296 | +#define LCDSTATUS (*((uint32_t volatile*)(0x3860001c))) | 
|  | 297 | +#define LCDWDATA  (*((uint32_t volatile*)(0x38600040))) | 
|  | 298 | + | 
|  | 299 | + | 
|  | 300 | +/////CLOCK GATES///// | 
|  | 301 | +#define CLOCKGATE_USB_1 14 | 
|  | 302 | +#define CLOCKGATE_USB_2 43 | 
|  | 303 | + | 
|  | 304 | + | 
|  | 305 | +/////INTERRUPTS///// | 
|  | 306 | +#define IRQ_TIMER    5 | 
|  | 307 | +#define IRQ_DMA      10 | 
|  | 308 | +#define IRQ_USB_FUNC 16 | 
|  | 309 | +#define IRQ_ECC      19 | 
|  | 310 | +#define IRQ_WHEEL    26 | 
|  | 311 | +#define IRQ_IIC      27 | 
|  | 312 | + | 
|  | 313 | + | 
|  | 314 | +#endif | 
| Index: emcore/trunk/target/ipodnano3g/s5l8702.h | 
| — | — | @@ -1,600 +1,601 @@ | 
| 2 |  | -//
 | 
| 3 |  | -//
 | 
| 4 |  | -//    Copyright 2010 TheSeven
 | 
| 5 |  | -//
 | 
| 6 |  | -//
 | 
| 7 |  | -//    This file is part of emCORE.
 | 
| 8 |  | -//
 | 
| 9 |  | -//    emCORE is free software: you can redistribute it and/or
 | 
| 10 |  | -//    modify it under the terms of the GNU General Public License as
 | 
| 11 |  | -//    published by the Free Software Foundation, either version 2 of the
 | 
| 12 |  | -//    License, or (at your option) any later version.
 | 
| 13 |  | -//
 | 
| 14 |  | -//    emCORE is distributed in the hope that it will be useful,
 | 
| 15 |  | -//    but WITHOUT ANY WARRANTY; without even the implied warranty of
 | 
| 16 |  | -//    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
 | 
| 17 |  | -//    See the GNU General Public License for more details.
 | 
| 18 |  | -//
 | 
| 19 |  | -//    You should have received a copy of the GNU General Public License along
 | 
| 20 |  | -//    with emCORE.  If not, see <http://www.gnu.org/licenses/>.
 | 
| 21 |  | -//
 | 
| 22 |  | -//
 | 
| 23 |  | -
 | 
| 24 |  | -
 | 
| 25 |  | -#ifndef __S5L8702_H__
 | 
| 26 |  | -#define __S5L8702_H__
 | 
| 27 |  | -
 | 
| 28 |  | -#include "global.h"
 | 
| 29 |  | -
 | 
| 30 |  | -
 | 
| 31 |  | -/////SYSCON/////
 | 
| 32 |  | -#define PWRCON(i)    (*((uint32_t volatile*)(0x3C500000 \
 | 
| 33 |  | -                                           + ((i) == 4 ? 0x6C : \
 | 
| 34 |  | -                                             ((i) == 3 ? 0x68 : \
 | 
| 35 |  | -                                             ((i) == 2 ? 0x58 : \
 | 
| 36 |  | -                                             ((i) == 1 ? 0x4C : \
 | 
| 37 |  | -                                                         0x48)))))))
 | 
| 38 |  | -
 | 
| 39 |  | -
 | 
| 40 |  | -/////TIMER/////
 | 
| 41 |  | -#define TACON        (*((uint32_t volatile*)(0x3C700000)))
 | 
| 42 |  | -#define TACMD        (*((uint32_t volatile*)(0x3C700004)))
 | 
| 43 |  | -#define TADATA0      (*((uint32_t volatile*)(0x3C700008)))
 | 
| 44 |  | -#define TADATA1      (*((uint32_t volatile*)(0x3C70000C)))
 | 
| 45 |  | -#define TAPRE        (*((uint32_t volatile*)(0x3C700010)))
 | 
| 46 |  | -#define TACNT        (*((uint32_t volatile*)(0x3C700014)))
 | 
| 47 |  | -#define TBCON        (*((uint32_t volatile*)(0x3C700020)))
 | 
| 48 |  | -#define TBCMD        (*((uint32_t volatile*)(0x3C700024)))
 | 
| 49 |  | -#define TBDATA0      (*((uint32_t volatile*)(0x3C700028)))
 | 
| 50 |  | -#define TBDATA1      (*((uint32_t volatile*)(0x3C70002C)))
 | 
| 51 |  | -#define TBPRE        (*((uint32_t volatile*)(0x3C700030)))
 | 
| 52 |  | -#define TBCNT        (*((uint32_t volatile*)(0x3C700034)))
 | 
| 53 |  | -#define TCCON        (*((uint32_t volatile*)(0x3C700040)))
 | 
| 54 |  | -#define TCCMD        (*((uint32_t volatile*)(0x3C700044)))
 | 
| 55 |  | -#define TCDATA0      (*((uint32_t volatile*)(0x3C700048)))
 | 
| 56 |  | -#define TCDATA1      (*((uint32_t volatile*)(0x3C70004C)))
 | 
| 57 |  | -#define TCPRE        (*((uint32_t volatile*)(0x3C700050)))
 | 
| 58 |  | -#define TCCNT        (*((uint32_t volatile*)(0x3C700054)))
 | 
| 59 |  | -#define TDCON        (*((uint32_t volatile*)(0x3C700060)))
 | 
| 60 |  | -#define TDCMD        (*((uint32_t volatile*)(0x3C700064)))
 | 
| 61 |  | -#define TDDATA0      (*((uint32_t volatile*)(0x3C700068)))
 | 
| 62 |  | -#define TDDATA1      (*((uint32_t volatile*)(0x3C70006C)))
 | 
| 63 |  | -#define TDPRE        (*((uint32_t volatile*)(0x3C700070)))
 | 
| 64 |  | -#define TDCNT        (*((uint32_t volatile*)(0x3C700074)))
 | 
| 65 |  | -#define TECON        (*((uint32_t volatile*)(0x3C7000A0)))
 | 
| 66 |  | -#define TECMD        (*((uint32_t volatile*)(0x3C7000A4)))
 | 
| 67 |  | -#define TEDATA0      (*((uint32_t volatile*)(0x3C7000A8)))
 | 
| 68 |  | -#define TEDATA1      (*((uint32_t volatile*)(0x3C7000AC)))
 | 
| 69 |  | -#define TEPRE        (*((uint32_t volatile*)(0x3C7000B0)))
 | 
| 70 |  | -#define TECNT        (*((uint32_t volatile*)(0x3C7000B4)))
 | 
| 71 |  | -#define TFCON        (*((uint32_t volatile*)(0x3C7000C0)))
 | 
| 72 |  | -#define TFCMD        (*((uint32_t volatile*)(0x3C7000C4)))
 | 
| 73 |  | -#define TFDATA0      (*((uint32_t volatile*)(0x3C7000C8)))
 | 
| 74 |  | -#define TFDATA1      (*((uint32_t volatile*)(0x3C7000CC)))
 | 
| 75 |  | -#define TFPRE        (*((uint32_t volatile*)(0x3C7000D0)))
 | 
| 76 |  | -#define TFCNT        (*((uint32_t volatile*)(0x3C7000D4)))
 | 
| 77 |  | -#define TGCON        (*((uint32_t volatile*)(0x3C7000E0)))
 | 
| 78 |  | -#define TGCMD        (*((uint32_t volatile*)(0x3C7000E4)))
 | 
| 79 |  | -#define TGDATA0      (*((uint32_t volatile*)(0x3C7000E8)))
 | 
| 80 |  | -#define TGDATA1      (*((uint32_t volatile*)(0x3C7000EC)))
 | 
| 81 |  | -#define TGPRE        (*((uint32_t volatile*)(0x3C7000F0)))
 | 
| 82 |  | -#define TGCNT        (*((uint32_t volatile*)(0x3C7000F4)))
 | 
| 83 |  | -#define THCON        (*((uint32_t volatile*)(0x3C700100)))
 | 
| 84 |  | -#define THCMD        (*((uint32_t volatile*)(0x3C700104)))
 | 
| 85 |  | -#define THDATA0      (*((uint32_t volatile*)(0x3C700108)))
 | 
| 86 |  | -#define THDATA1      (*((uint32_t volatile*)(0x3C70010C)))
 | 
| 87 |  | -#define THPRE        (*((uint32_t volatile*)(0x3C700110)))
 | 
| 88 |  | -#define THCNT        (*((uint32_t volatile*)(0x3C700114)))
 | 
| 89 |  | -
 | 
| 90 |  | -
 | 
| 91 |  | -/////USB/////
 | 
| 92 |  | -#define OTGBASE 0x38400000
 | 
| 93 |  | -#define PHYBASE 0x3C400000
 | 
| 94 |  | -#define SYNOPSYSOTG_CLOCK 0
 | 
| 95 |  | -#define SYNOPSYSOTG_AHBCFG 0x2B
 | 
| 96 |  | -
 | 
| 97 |  | -
 | 
| 98 |  | -/////I2C/////
 | 
| 99 |  | -#define IICCON(bus)  (*((uint32_t volatile*)(0x3C600000 + 0x300000 * (bus))))
 | 
| 100 |  | -#define IICSTAT(bus) (*((uint32_t volatile*)(0x3C600004 + 0x300000 * (bus))))
 | 
| 101 |  | -#define IICADD(bus)  (*((uint32_t volatile*)(0x3C600008 + 0x300000 * (bus))))
 | 
| 102 |  | -#define IICDS(bus)   (*((uint32_t volatile*)(0x3C60000C + 0x300000 * (bus))))
 | 
| 103 |  | -#define IIC10(bus)   (*((uint32_t volatile*)(0x3C600010 + 0x300000 * (bus))))
 | 
| 104 |  | -
 | 
| 105 |  | -
 | 
| 106 |  | -/////INTERRUPT CONTROLLERS/////
 | 
| 107 |  | -#define VICIRQSTATUS(v)       (*((uint32_t volatile*)(0x38E00000 + 0x1000 * (v))))
 | 
| 108 |  | -#define VICFIQSTATUS(v)       (*((uint32_t volatile*)(0x38E00004 + 0x1000 * (v))))
 | 
| 109 |  | -#define VICRAWINTR(v)         (*((uint32_t volatile*)(0x38E00008 + 0x1000 * (v))))
 | 
| 110 |  | -#define VICINTSELECT(v)       (*((uint32_t volatile*)(0x38E0000C + 0x1000 * (v))))
 | 
| 111 |  | -#define VICINTENABLE(v)       (*((uint32_t volatile*)(0x38E00010 + 0x1000 * (v))))
 | 
| 112 |  | -#define VICINTENCLEAR(v)      (*((uint32_t volatile*)(0x38E00014 + 0x1000 * (v))))
 | 
| 113 |  | -#define VICSOFTINT(v)         (*((uint32_t volatile*)(0x38E00018 + 0x1000 * (v))))
 | 
| 114 |  | -#define VICSOFTINTCLEAR(v)    (*((uint32_t volatile*)(0x38E0001C + 0x1000 * (v))))
 | 
| 115 |  | -#define VICPROTECTION(v)      (*((uint32_t volatile*)(0x38E00020 + 0x1000 * (v))))
 | 
| 116 |  | -#define VICSWPRIORITYMASK(v)  (*((uint32_t volatile*)(0x38E00024 + 0x1000 * (v))))
 | 
| 117 |  | -#define VICPRIORITYDAISY(v)   (*((uint32_t volatile*)(0x38E00028 + 0x1000 * (v))))
 | 
| 118 |  | -#define VICVECTADDR(v, i)     (*((uint32_t volatile*)(0x38E00100 + 0x1000 * (v) + 4 * (i))))
 | 
| 119 |  | -#define VICVECTPRIORITY(v, i) (*((uint32_t volatile*)(0x38E00200 + 0x1000 * (v) + 4 * (i))))
 | 
| 120 |  | -#define VICADDRESS(v)         (*((const void* volatile*)(0x38E00F00 + 0x1000 * (v))))
 | 
| 121 |  | -#define VIC0IRQSTATUS         (*((uint32_t volatile*)(0x38E00000)))
 | 
| 122 |  | -#define VIC0FIQSTATUS         (*((uint32_t volatile*)(0x38E00004)))
 | 
| 123 |  | -#define VIC0RAWINTR           (*((uint32_t volatile*)(0x38E00008)))
 | 
| 124 |  | -#define VIC0INTSELECT         (*((uint32_t volatile*)(0x38E0000C)))
 | 
| 125 |  | -#define VIC0INTENABLE         (*((uint32_t volatile*)(0x38E00010)))
 | 
| 126 |  | -#define VIC0INTENCLEAR        (*((uint32_t volatile*)(0x38E00014)))
 | 
| 127 |  | -#define VIC0SOFTINT           (*((uint32_t volatile*)(0x38E00018)))
 | 
| 128 |  | -#define VIC0SOFTINTCLEAR      (*((uint32_t volatile*)(0x38E0001C)))
 | 
| 129 |  | -#define VIC0PROTECTION        (*((uint32_t volatile*)(0x38E00020)))
 | 
| 130 |  | -#define VIC0SWPRIORITYMASK    (*((uint32_t volatile*)(0x38E00024)))
 | 
| 131 |  | -#define VIC0PRIORITYDAISY     (*((uint32_t volatile*)(0x38E00028)))
 | 
| 132 |  | -#define VIC0VECTADDR(i)       (*((const void* volatile*)(0x38E00100 + 4 * (i))))
 | 
| 133 |  | -#define VIC0VECTADDR0         (*((const void* volatile*)(0x38E00100)))
 | 
| 134 |  | -#define VIC0VECTADDR1         (*((const void* volatile*)(0x38E00104)))
 | 
| 135 |  | -#define VIC0VECTADDR2         (*((const void* volatile*)(0x38E00108)))
 | 
| 136 |  | -#define VIC0VECTADDR3         (*((const void* volatile*)(0x38E0010C)))
 | 
| 137 |  | -#define VIC0VECTADDR4         (*((const void* volatile*)(0x38E00110)))
 | 
| 138 |  | -#define VIC0VECTADDR5         (*((const void* volatile*)(0x38E00114)))
 | 
| 139 |  | -#define VIC0VECTADDR6         (*((const void* volatile*)(0x38E00118)))
 | 
| 140 |  | -#define VIC0VECTADDR7         (*((const void* volatile*)(0x38E0011C)))
 | 
| 141 |  | -#define VIC0VECTADDR8         (*((const void* volatile*)(0x38E00120)))
 | 
| 142 |  | -#define VIC0VECTADDR9         (*((const void* volatile*)(0x38E00124)))
 | 
| 143 |  | -#define VIC0VECTADDR10        (*((const void* volatile*)(0x38E00128)))
 | 
| 144 |  | -#define VIC0VECTADDR11        (*((const void* volatile*)(0x38E0012C)))
 | 
| 145 |  | -#define VIC0VECTADDR12        (*((const void* volatile*)(0x38E00130)))
 | 
| 146 |  | -#define VIC0VECTADDR13        (*((const void* volatile*)(0x38E00134)))
 | 
| 147 |  | -#define VIC0VECTADDR14        (*((const void* volatile*)(0x38E00138)))
 | 
| 148 |  | -#define VIC0VECTADDR15        (*((const void* volatile*)(0x38E0013C)))
 | 
| 149 |  | -#define VIC0VECTADDR16        (*((const void* volatile*)(0x38E00140)))
 | 
| 150 |  | -#define VIC0VECTADDR17        (*((const void* volatile*)(0x38E00144)))
 | 
| 151 |  | -#define VIC0VECTADDR18        (*((const void* volatile*)(0x38E00148)))
 | 
| 152 |  | -#define VIC0VECTADDR19        (*((const void* volatile*)(0x38E0014C)))
 | 
| 153 |  | -#define VIC0VECTADDR20        (*((const void* volatile*)(0x38E00150)))
 | 
| 154 |  | -#define VIC0VECTADDR21        (*((const void* volatile*)(0x38E00154)))
 | 
| 155 |  | -#define VIC0VECTADDR22        (*((const void* volatile*)(0x38E00158)))
 | 
| 156 |  | -#define VIC0VECTADDR23        (*((const void* volatile*)(0x38E0015C)))
 | 
| 157 |  | -#define VIC0VECTADDR24        (*((const void* volatile*)(0x38E00160)))
 | 
| 158 |  | -#define VIC0VECTADDR25        (*((const void* volatile*)(0x38E00164)))
 | 
| 159 |  | -#define VIC0VECTADDR26        (*((const void* volatile*)(0x38E00168)))
 | 
| 160 |  | -#define VIC0VECTADDR27        (*((const void* volatile*)(0x38E0016C)))
 | 
| 161 |  | -#define VIC0VECTADDR28        (*((const void* volatile*)(0x38E00170)))
 | 
| 162 |  | -#define VIC0VECTADDR29        (*((const void* volatile*)(0x38E00174)))
 | 
| 163 |  | -#define VIC0VECTADDR30        (*((const void* volatile*)(0x38E00178)))
 | 
| 164 |  | -#define VIC0VECTADDR31        (*((const void* volatile*)(0x38E0017C)))
 | 
| 165 |  | -#define VIC0VECTPRIORITY(i)   (*((uint32_t volatile*)(0x38E00200 + 4 * (i))))
 | 
| 166 |  | -#define VIC0VECTPRIORITY0     (*((uint32_t volatile*)(0x38E00200)))
 | 
| 167 |  | -#define VIC0VECTPRIORITY1     (*((uint32_t volatile*)(0x38E00204)))
 | 
| 168 |  | -#define VIC0VECTPRIORITY2     (*((uint32_t volatile*)(0x38E00208)))
 | 
| 169 |  | -#define VIC0VECTPRIORITY3     (*((uint32_t volatile*)(0x38E0020C)))
 | 
| 170 |  | -#define VIC0VECTPRIORITY4     (*((uint32_t volatile*)(0x38E00210)))
 | 
| 171 |  | -#define VIC0VECTPRIORITY5     (*((uint32_t volatile*)(0x38E00214)))
 | 
| 172 |  | -#define VIC0VECTPRIORITY6     (*((uint32_t volatile*)(0x38E00218)))
 | 
| 173 |  | -#define VIC0VECTPRIORITY7     (*((uint32_t volatile*)(0x38E0021C)))
 | 
| 174 |  | -#define VIC0VECTPRIORITY8     (*((uint32_t volatile*)(0x38E00220)))
 | 
| 175 |  | -#define VIC0VECTPRIORITY9     (*((uint32_t volatile*)(0x38E00224)))
 | 
| 176 |  | -#define VIC0VECTPRIORITY10    (*((uint32_t volatile*)(0x38E00228)))
 | 
| 177 |  | -#define VIC0VECTPRIORITY11    (*((uint32_t volatile*)(0x38E0022C)))
 | 
| 178 |  | -#define VIC0VECTPRIORITY12    (*((uint32_t volatile*)(0x38E00230)))
 | 
| 179 |  | -#define VIC0VECTPRIORITY13    (*((uint32_t volatile*)(0x38E00234)))
 | 
| 180 |  | -#define VIC0VECTPRIORITY14    (*((uint32_t volatile*)(0x38E00238)))
 | 
| 181 |  | -#define VIC0VECTPRIORITY15    (*((uint32_t volatile*)(0x38E0023C)))
 | 
| 182 |  | -#define VIC0VECTPRIORITY16    (*((uint32_t volatile*)(0x38E00240)))
 | 
| 183 |  | -#define VIC0VECTPRIORITY17    (*((uint32_t volatile*)(0x38E00244)))
 | 
| 184 |  | -#define VIC0VECTPRIORITY18    (*((uint32_t volatile*)(0x38E00248)))
 | 
| 185 |  | -#define VIC0VECTPRIORITY19    (*((uint32_t volatile*)(0x38E0024C)))
 | 
| 186 |  | -#define VIC0VECTPRIORITY20    (*((uint32_t volatile*)(0x38E00250)))
 | 
| 187 |  | -#define VIC0VECTPRIORITY21    (*((uint32_t volatile*)(0x38E00254)))
 | 
| 188 |  | -#define VIC0VECTPRIORITY22    (*((uint32_t volatile*)(0x38E00258)))
 | 
| 189 |  | -#define VIC0VECTPRIORITY23    (*((uint32_t volatile*)(0x38E0025C)))
 | 
| 190 |  | -#define VIC0VECTPRIORITY24    (*((uint32_t volatile*)(0x38E00260)))
 | 
| 191 |  | -#define VIC0VECTPRIORITY25    (*((uint32_t volatile*)(0x38E00264)))
 | 
| 192 |  | -#define VIC0VECTPRIORITY26    (*((uint32_t volatile*)(0x38E00268)))
 | 
| 193 |  | -#define VIC0VECTPRIORITY27    (*((uint32_t volatile*)(0x38E0026C)))
 | 
| 194 |  | -#define VIC0VECTPRIORITY28    (*((uint32_t volatile*)(0x38E00270)))
 | 
| 195 |  | -#define VIC0VECTPRIORITY29    (*((uint32_t volatile*)(0x38E00274)))
 | 
| 196 |  | -#define VIC0VECTPRIORITY30    (*((uint32_t volatile*)(0x38E00278)))
 | 
| 197 |  | -#define VIC0VECTPRIORITY31    (*((uint32_t volatile*)(0x38E0027C)))
 | 
| 198 |  | -#define VIC0ADDRESS           (*((void* volatile*)(0x38E00F00)))
 | 
| 199 |  | -#define VIC1IRQSTATUS         (*((uint32_t volatile*)(0x38E01000)))
 | 
| 200 |  | -#define VIC1FIQSTATUS         (*((uint32_t volatile*)(0x38E01004)))
 | 
| 201 |  | -#define VIC1RAWINTR           (*((uint32_t volatile*)(0x38E01008)))
 | 
| 202 |  | -#define VIC1INTSELECT         (*((uint32_t volatile*)(0x38E0100C)))
 | 
| 203 |  | -#define VIC1INTENABLE         (*((uint32_t volatile*)(0x38E01010)))
 | 
| 204 |  | -#define VIC1INTENCLEAR        (*((uint32_t volatile*)(0x38E01014)))
 | 
| 205 |  | -#define VIC1SOFTINT           (*((uint32_t volatile*)(0x38E01018)))
 | 
| 206 |  | -#define VIC1SOFTINTCLEAR      (*((uint32_t volatile*)(0x38E0101C)))
 | 
| 207 |  | -#define VIC1PROTECTION        (*((uint32_t volatile*)(0x38E01020)))
 | 
| 208 |  | -#define VIC1SWPRIORITYMASK    (*((uint32_t volatile*)(0x38E01024)))
 | 
| 209 |  | -#define VIC1PRIORITYDAISY     (*((uint32_t volatile*)(0x38E01028)))
 | 
| 210 |  | -#define VIC1VECTADDR(i)       (*((const void* volatile*)(0x38E01100 + 4 * (i))))
 | 
| 211 |  | -#define VIC1VECTADDR0         (*((const void* volatile*)(0x38E01100)))
 | 
| 212 |  | -#define VIC1VECTADDR1         (*((const void* volatile*)(0x38E01104)))
 | 
| 213 |  | -#define VIC1VECTADDR2         (*((const void* volatile*)(0x38E01108)))
 | 
| 214 |  | -#define VIC1VECTADDR3         (*((const void* volatile*)(0x38E0110C)))
 | 
| 215 |  | -#define VIC1VECTADDR4         (*((const void* volatile*)(0x38E01110)))
 | 
| 216 |  | -#define VIC1VECTADDR5         (*((const void* volatile*)(0x38E01114)))
 | 
| 217 |  | -#define VIC1VECTADDR6         (*((const void* volatile*)(0x38E01118)))
 | 
| 218 |  | -#define VIC1VECTADDR7         (*((const void* volatile*)(0x38E0111C)))
 | 
| 219 |  | -#define VIC1VECTADDR8         (*((const void* volatile*)(0x38E01120)))
 | 
| 220 |  | -#define VIC1VECTADDR9         (*((const void* volatile*)(0x38E01124)))
 | 
| 221 |  | -#define VIC1VECTADDR10        (*((const void* volatile*)(0x38E01128)))
 | 
| 222 |  | -#define VIC1VECTADDR11        (*((const void* volatile*)(0x38E0112C)))
 | 
| 223 |  | -#define VIC1VECTADDR12        (*((const void* volatile*)(0x38E01130)))
 | 
| 224 |  | -#define VIC1VECTADDR13        (*((const void* volatile*)(0x38E01134)))
 | 
| 225 |  | -#define VIC1VECTADDR14        (*((const void* volatile*)(0x38E01138)))
 | 
| 226 |  | -#define VIC1VECTADDR15        (*((const void* volatile*)(0x38E0113C)))
 | 
| 227 |  | -#define VIC1VECTADDR16        (*((const void* volatile*)(0x38E01140)))
 | 
| 228 |  | -#define VIC1VECTADDR17        (*((const void* volatile*)(0x38E01144)))
 | 
| 229 |  | -#define VIC1VECTADDR18        (*((const void* volatile*)(0x38E01148)))
 | 
| 230 |  | -#define VIC1VECTADDR19        (*((const void* volatile*)(0x38E0114C)))
 | 
| 231 |  | -#define VIC1VECTADDR20        (*((const void* volatile*)(0x38E01150)))
 | 
| 232 |  | -#define VIC1VECTADDR21        (*((const void* volatile*)(0x38E01154)))
 | 
| 233 |  | -#define VIC1VECTADDR22        (*((const void* volatile*)(0x38E01158)))
 | 
| 234 |  | -#define VIC1VECTADDR23        (*((const void* volatile*)(0x38E0115C)))
 | 
| 235 |  | -#define VIC1VECTADDR24        (*((const void* volatile*)(0x38E01160)))
 | 
| 236 |  | -#define VIC1VECTADDR25        (*((const void* volatile*)(0x38E01164)))
 | 
| 237 |  | -#define VIC1VECTADDR26        (*((const void* volatile*)(0x38E01168)))
 | 
| 238 |  | -#define VIC1VECTADDR27        (*((const void* volatile*)(0x38E0116C)))
 | 
| 239 |  | -#define VIC1VECTADDR28        (*((const void* volatile*)(0x38E01170)))
 | 
| 240 |  | -#define VIC1VECTADDR29        (*((const void* volatile*)(0x38E01174)))
 | 
| 241 |  | -#define VIC1VECTADDR30        (*((const void* volatile*)(0x38E01178)))
 | 
| 242 |  | -#define VIC1VECTADDR31        (*((const void* volatile*)(0x38E0117C)))
 | 
| 243 |  | -#define VIC1VECTPRIORITY(i)   (*((uint32_t volatile*)(0x38E01200 + 4 * (i))))
 | 
| 244 |  | -#define VIC1VECTPRIORITY0     (*((uint32_t volatile*)(0x38E01200)))
 | 
| 245 |  | -#define VIC1VECTPRIORITY1     (*((uint32_t volatile*)(0x38E01204)))
 | 
| 246 |  | -#define VIC1VECTPRIORITY2     (*((uint32_t volatile*)(0x38E01208)))
 | 
| 247 |  | -#define VIC1VECTPRIORITY3     (*((uint32_t volatile*)(0x38E0120C)))
 | 
| 248 |  | -#define VIC1VECTPRIORITY4     (*((uint32_t volatile*)(0x38E01210)))
 | 
| 249 |  | -#define VIC1VECTPRIORITY5     (*((uint32_t volatile*)(0x38E01214)))
 | 
| 250 |  | -#define VIC1VECTPRIORITY6     (*((uint32_t volatile*)(0x38E01218)))
 | 
| 251 |  | -#define VIC1VECTPRIORITY7     (*((uint32_t volatile*)(0x38E0121C)))
 | 
| 252 |  | -#define VIC1VECTPRIORITY8     (*((uint32_t volatile*)(0x38E01220)))
 | 
| 253 |  | -#define VIC1VECTPRIORITY9     (*((uint32_t volatile*)(0x38E01224)))
 | 
| 254 |  | -#define VIC1VECTPRIORITY10    (*((uint32_t volatile*)(0x38E01228)))
 | 
| 255 |  | -#define VIC1VECTPRIORITY11    (*((uint32_t volatile*)(0x38E0122C)))
 | 
| 256 |  | -#define VIC1VECTPRIORITY12    (*((uint32_t volatile*)(0x38E01230)))
 | 
| 257 |  | -#define VIC1VECTPRIORITY13    (*((uint32_t volatile*)(0x38E01234)))
 | 
| 258 |  | -#define VIC1VECTPRIORITY14    (*((uint32_t volatile*)(0x38E01238)))
 | 
| 259 |  | -#define VIC1VECTPRIORITY15    (*((uint32_t volatile*)(0x38E0123C)))
 | 
| 260 |  | -#define VIC1VECTPRIORITY16    (*((uint32_t volatile*)(0x38E01240)))
 | 
| 261 |  | -#define VIC1VECTPRIORITY17    (*((uint32_t volatile*)(0x38E01244)))
 | 
| 262 |  | -#define VIC1VECTPRIORITY18    (*((uint32_t volatile*)(0x38E01248)))
 | 
| 263 |  | -#define VIC1VECTPRIORITY19    (*((uint32_t volatile*)(0x38E0124C)))
 | 
| 264 |  | -#define VIC1VECTPRIORITY20    (*((uint32_t volatile*)(0x38E01250)))
 | 
| 265 |  | -#define VIC1VECTPRIORITY21    (*((uint32_t volatile*)(0x38E01254)))
 | 
| 266 |  | -#define VIC1VECTPRIORITY22    (*((uint32_t volatile*)(0x38E01258)))
 | 
| 267 |  | -#define VIC1VECTPRIORITY23    (*((uint32_t volatile*)(0x38E0125C)))
 | 
| 268 |  | -#define VIC1VECTPRIORITY24    (*((uint32_t volatile*)(0x38E01260)))
 | 
| 269 |  | -#define VIC1VECTPRIORITY25    (*((uint32_t volatile*)(0x38E01264)))
 | 
| 270 |  | -#define VIC1VECTPRIORITY26    (*((uint32_t volatile*)(0x38E01268)))
 | 
| 271 |  | -#define VIC1VECTPRIORITY27    (*((uint32_t volatile*)(0x38E0126C)))
 | 
| 272 |  | -#define VIC1VECTPRIORITY28    (*((uint32_t volatile*)(0x38E01270)))
 | 
| 273 |  | -#define VIC1VECTPRIORITY29    (*((uint32_t volatile*)(0x38E01274)))
 | 
| 274 |  | -#define VIC1VECTPRIORITY30    (*((uint32_t volatile*)(0x38E01278)))
 | 
| 275 |  | -#define VIC1VECTPRIORITY31    (*((uint32_t volatile*)(0x38E0127C)))
 | 
| 276 |  | -#define VIC1ADDRESS           (*((void* volatile*)(0x38E01F00)))
 | 
| 277 |  | -
 | 
| 278 |  | -
 | 
| 279 |  | -/////GPIO/////
 | 
| 280 |  | -#define PCON(i)       (*((uint32_t volatile*)(0x3cf00000 + ((i) << 5))))
 | 
| 281 |  | -#define PDAT(i)       (*((uint32_t volatile*)(0x3cf00004 + ((i) << 5))))
 | 
| 282 |  | -#define PUNA(i)       (*((uint32_t volatile*)(0x3cf00008 + ((i) << 5))))
 | 
| 283 |  | -#define PUNB(i)       (*((uint32_t volatile*)(0x3cf0000c + ((i) << 5))))
 | 
| 284 |  | -#define PCON0         (*((uint32_t volatile*)(0x3cf00000)))
 | 
| 285 |  | -#define PDAT0         (*((uint32_t volatile*)(0x3cf00004)))
 | 
| 286 |  | -#define PCON1         (*((uint32_t volatile*)(0x3cf00020)))
 | 
| 287 |  | -#define PDAT1         (*((uint32_t volatile*)(0x3cf00024)))
 | 
| 288 |  | -#define PCON2         (*((uint32_t volatile*)(0x3cf00040)))
 | 
| 289 |  | -#define PDAT2         (*((uint32_t volatile*)(0x3cf00044)))
 | 
| 290 |  | -#define PCON3         (*((uint32_t volatile*)(0x3cf00060)))
 | 
| 291 |  | -#define PDAT3         (*((uint32_t volatile*)(0x3cf00064)))
 | 
| 292 |  | -#define PCON4         (*((uint32_t volatile*)(0x3cf00080)))
 | 
| 293 |  | -#define PDAT4         (*((uint32_t volatile*)(0x3cf00084)))
 | 
| 294 |  | -#define PCON5         (*((uint32_t volatile*)(0x3cf000a0)))
 | 
| 295 |  | -#define PDAT5         (*((uint32_t volatile*)(0x3cf000a4)))
 | 
| 296 |  | -#define PCON6         (*((uint32_t volatile*)(0x3cf000c0)))
 | 
| 297 |  | -#define PDAT6         (*((uint32_t volatile*)(0x3cf000c4)))
 | 
| 298 |  | -#define PCON7         (*((uint32_t volatile*)(0x3cf000e0)))
 | 
| 299 |  | -#define PDAT7         (*((uint32_t volatile*)(0x3cf000e4)))
 | 
| 300 |  | -#define PCON8         (*((uint32_t volatile*)(0x3cf00100)))
 | 
| 301 |  | -#define PDAT8         (*((uint32_t volatile*)(0x3cf00104)))
 | 
| 302 |  | -#define PCON9         (*((uint32_t volatile*)(0x3cf00120)))
 | 
| 303 |  | -#define PDAT9         (*((uint32_t volatile*)(0x3cf00124)))
 | 
| 304 |  | -#define PCONA         (*((uint32_t volatile*)(0x3cf00140)))
 | 
| 305 |  | -#define PDATA         (*((uint32_t volatile*)(0x3cf00144)))
 | 
| 306 |  | -#define PCONB         (*((uint32_t volatile*)(0x3cf00160)))
 | 
| 307 |  | -#define PDATB         (*((uint32_t volatile*)(0x3cf00164)))
 | 
| 308 |  | -#define PCONC         (*((uint32_t volatile*)(0x3cf00180)))
 | 
| 309 |  | -#define PDATC         (*((uint32_t volatile*)(0x3cf00184)))
 | 
| 310 |  | -#define PCOND         (*((uint32_t volatile*)(0x3cf001a0)))
 | 
| 311 |  | -#define PDATD         (*((uint32_t volatile*)(0x3cf001a4)))
 | 
| 312 |  | -#define PCONE         (*((uint32_t volatile*)(0x3cf001c0)))
 | 
| 313 |  | -#define PDATE         (*((uint32_t volatile*)(0x3cf001c4)))
 | 
| 314 |  | -#define PCONF         (*((uint32_t volatile*)(0x3cf001e0)))
 | 
| 315 |  | -#define PDATF         (*((uint32_t volatile*)(0x3cf001e4)))
 | 
| 316 |  | -#define GPIOCMD       (*((uint32_t volatile*)(0x3cf00200)))
 | 
| 317 |  | -
 | 
| 318 |  | -
 | 
| 319 |  | -/////SPI/////
 | 
| 320 |  | -#define SPIBASE(i)      ((i) == 2 ? 0x3d200000 : \
 | 
| 321 |  | -                         (i) == 1 ? 0x3ce00000 : \
 | 
| 322 |  | -                                    0x3c300000)
 | 
| 323 |  | -#define SPICLKGATE(i)   ((i) == 2 ? 0x2f : \
 | 
| 324 |  | -                         (i) == 1 ? 0x2b : \
 | 
| 325 |  | -                                    0x22)
 | 
| 326 |  | -#define SPIDMA(i)       ((i) == 2 ? 0xd : \
 | 
| 327 |  | -                         (i) == 1 ? 0xf : \
 | 
| 328 |  | -                                    0x5)
 | 
| 329 |  | -#define SPICTRL(i)    (*((uint32_t volatile*)(SPIBASE(i))))
 | 
| 330 |  | -#define SPISETUP(i)   (*((uint32_t volatile*)(SPIBASE(i) + 0x4)))
 | 
| 331 |  | -#define SPISTATUS(i)  (*((uint32_t volatile*)(SPIBASE(i) + 0x8)))
 | 
| 332 |  | -#define SPIUNKREG1(i) (*((uint32_t volatile*)(SPIBASE(i) + 0xc)))
 | 
| 333 |  | -#define SPITXDATA(i)  (*((uint32_t volatile*)(SPIBASE(i) + 0x10)))
 | 
| 334 |  | -#define SPIRXDATA(i)  (*((uint32_t volatile*)(SPIBASE(i) + 0x20)))
 | 
| 335 |  | -#define SPICLKDIV(i)  (*((uint32_t volatile*)(SPIBASE(i) + 0x30)))
 | 
| 336 |  | -#define SPIRXLIMIT(i) (*((uint32_t volatile*)(SPIBASE(i) + 0x34)))
 | 
| 337 |  | -#define SPIUNKREG3(i) (*((uint32_t volatile*)(SPIBASE(i) + 0x38)))
 | 
| 338 |  | -
 | 
| 339 |  | -
 | 
| 340 |  | -/////AES/////
 | 
| 341 |  | -#define AESCONTROL    (*((uint32_t volatile*)(0x38c00000)))
 | 
| 342 |  | -#define AESGO         (*((uint32_t volatile*)(0x38c00004)))
 | 
| 343 |  | -#define AESUNKREG0    (*((uint32_t volatile*)(0x38c00008)))
 | 
| 344 |  | -#define AESSTATUS     (*((uint32_t volatile*)(0x38c0000c)))
 | 
| 345 |  | -#define AESUNKREG1    (*((uint32_t volatile*)(0x38c00010)))
 | 
| 346 |  | -#define AESKEYLEN     (*((uint32_t volatile*)(0x38c00014)))
 | 
| 347 |  | -#define AESOUTSIZE    (*((uint32_t volatile*)(0x38c00018)))
 | 
| 348 |  | -#define AESOUTADDR    (*((void* volatile*)(0x38c00020)))
 | 
| 349 |  | -#define AESINSIZE     (*((uint32_t volatile*)(0x38c00024)))
 | 
| 350 |  | -#define AESINADDR     (*((const void* volatile*)(0x38c00028)))
 | 
| 351 |  | -#define AESAUXSIZE    (*((uint32_t volatile*)(0x38c0002c)))
 | 
| 352 |  | -#define AESAUXADDR    (*((void* volatile*)(0x38c00030)))
 | 
| 353 |  | -#define AESSIZE3      (*((uint32_t volatile*)(0x38c00034)))
 | 
| 354 |  | -#define AESKEY          ((uint32_t volatile*)(0x38c0004c))
 | 
| 355 |  | -#define AESTYPE       (*((uint32_t volatile*)(0x38c0006c)))
 | 
| 356 |  | -#define AESIV           ((uint32_t volatile*)(0x38c00074))
 | 
| 357 |  | -#define AESTYPE2      (*((uint32_t volatile*)(0x38c00088)))
 | 
| 358 |  | -#define AESUNKREG2    (*((uint32_t volatile*)(0x38c0008c)))
 | 
| 359 |  | -
 | 
| 360 |  | -
 | 
| 361 |  | -/////SHA1/////
 | 
| 362 |  | -#define SHA1CONFIG    (*((uint32_t volatile*)(0x38000000)))
 | 
| 363 |  | -#define SHA1RESET     (*((uint32_t volatile*)(0x38000004)))
 | 
| 364 |  | -#define SHA1RESULT      ((uint32_t volatile*)(0x38000020))
 | 
| 365 |  | -#define SHA1DATAIN      ((uint32_t volatile*)(0x38000040))
 | 
| 366 |  | -
 | 
| 367 |  | -
 | 
| 368 |  | -/////DMA/////
 | 
| 369 |  | -struct dma_lli
 | 
| 370 |  | -{
 | 
| 371 |  | -    void* srcaddr;
 | 
| 372 |  | -    void* dstaddr;
 | 
| 373 |  | -    const struct dma_lli* nextlli;
 | 
| 374 |  | -    uint32_t control;
 | 
| 375 |  | -};
 | 
| 376 |  | -#define DMACINTSTS(d)       (*((uint32_t volatile*)(0x38200000 + 0x1700000 * (d))))
 | 
| 377 |  | -#define DMACINTTCSTS(d)     (*((uint32_t volatile*)(0x38200004 + 0x1700000 * (d))))
 | 
| 378 |  | -#define DMACINTTCCLR(d)     (*((uint32_t volatile*)(0x38200008 + 0x1700000 * (d))))
 | 
| 379 |  | -#define DMACINTERRSTS(d)    (*((uint32_t volatile*)(0x3820000c + 0x1700000 * (d))))
 | 
| 380 |  | -#define DMACINTERRCLR(d)    (*((uint32_t volatile*)(0x38200010 + 0x1700000 * (d))))
 | 
| 381 |  | -#define DMACRAWINTTCSTS(d)  (*((uint32_t volatile*)(0x38200014 + 0x1700000 * (d))))
 | 
| 382 |  | -#define DMACRAWINTERRSTS(d) (*((uint32_t volatile*)(0x38200018 + 0x1700000 * (d))))
 | 
| 383 |  | -#define DMACENABLEDCHANS(d) (*((uint32_t volatile*)(0x3820001c + 0x1700000 * (d))))
 | 
| 384 |  | -#define DMACSOFTBREQ(d)     (*((uint32_t volatile*)(0x38200020 + 0x1700000 * (d))))
 | 
| 385 |  | -#define DMACSOFTSREQ(d)     (*((uint32_t volatile*)(0x38200024 + 0x1700000 * (d))))
 | 
| 386 |  | -#define DMACSOFTLBREQ(d)    (*((uint32_t volatile*)(0x38200028 + 0x1700000 * (d))))
 | 
| 387 |  | -#define DMACSOFTLSREQ(d)    (*((uint32_t volatile*)(0x3820002c + 0x1700000 * (d))))
 | 
| 388 |  | -#define DMACCONFIG(d)       (*((uint32_t volatile*)(0x38200030 + 0x1700000 * (d))))
 | 
| 389 |  | -#define DMACSYNC(d)         (*((uint32_t volatile*)(0x38200034 + 0x1700000 * (d))))
 | 
| 390 |  | -#define DMACCLLI(d, c)      (*((struct dma_lli volatile*)(0x38200100 + 0x1700000 * (d) + 0x20 * (c))))
 | 
| 391 |  | -#define DMACCSRCADDR(d, c)  (*((const void* volatile*)(0x38200100 + 0x1700000 * (d) + 0x20 * (c))))
 | 
| 392 |  | -#define DMACCDESTADDR(d, c) (*((void* volatile*)(0x38200104 + 0x1700000 * (d) + 0x20 * (c))))
 | 
| 393 |  | -#define DMACCNEXTLLI(d, c)  (*((const void* volatile*)(0x38200108 + 0x1700000 * (d) + 0x20 * (c))))
 | 
| 394 |  | -#define DMACCCONTROL(d, c)  (*((uint32_t volatile*)(0x3820010c + 0x1700000 * (d) + 0x20 * (c))))
 | 
| 395 |  | -#define DMACCCONFIG(d, c)   (*((uint32_t volatile*)(0x38200110 + 0x1700000 * (d) + 0x20 * (c))))
 | 
| 396 |  | -#define DMAC0INTSTS         (*((uint32_t volatile*)(0x38200000)))
 | 
| 397 |  | -#define DMAC0INTTCSTS       (*((uint32_t volatile*)(0x38200004)))
 | 
| 398 |  | -#define DMAC0INTTCCLR       (*((uint32_t volatile*)(0x38200008)))
 | 
| 399 |  | -#define DMAC0INTERRSTS      (*((uint32_t volatile*)(0x3820000c)))
 | 
| 400 |  | -#define DMAC0INTERRCLR      (*((uint32_t volatile*)(0x38200010)))
 | 
| 401 |  | -#define DMAC0RAWINTTCSTS    (*((uint32_t volatile*)(0x38200014)))
 | 
| 402 |  | -#define DMAC0RAWINTERRSTS   (*((uint32_t volatile*)(0x38200018)))
 | 
| 403 |  | -#define DMAC0ENABLEDCHANS   (*((uint32_t volatile*)(0x3820001c)))
 | 
| 404 |  | -#define DMAC0SOFTBREQ       (*((uint32_t volatile*)(0x38200020)))
 | 
| 405 |  | -#define DMAC0SOFTSREQ       (*((uint32_t volatile*)(0x38200024)))
 | 
| 406 |  | -#define DMAC0SOFTLBREQ      (*((uint32_t volatile*)(0x38200028)))
 | 
| 407 |  | -#define DMAC0SOFTLSREQ      (*((uint32_t volatile*)(0x3820002c)))
 | 
| 408 |  | -#define DMAC0CONFIG         (*((uint32_t volatile*)(0x38200030)))
 | 
| 409 |  | -#define DMAC0SYNC           (*((uint32_t volatile*)(0x38200034)))
 | 
| 410 |  | -#define DMAC0CLLI(c)        (*((struct dma_lli volatile*)(0x38200100 + 0x20 * (c))))
 | 
| 411 |  | -#define DMAC0CSRCADDR(c)    (*((const void* volatile*)(0x38200100 + 0x20 * (c))))
 | 
| 412 |  | -#define DMAC0CDESTADDR(c)   (*((void* volatile*)(0x38200104 + 0x20 * (c))))
 | 
| 413 |  | -#define DMAC0CNEXTLLI(c)    (*((const void* volatile*)(0x38200108 + 0x20 * (c))))
 | 
| 414 |  | -#define DMAC0CCONTROL(c)    (*((uint32_t volatile*)(0x3820010c + 0x20 * (c))))
 | 
| 415 |  | -#define DMAC0CCONFIG(c)     (*((uint32_t volatile*)(0x38200110 + 0x20 * (c))))
 | 
| 416 |  | -#define DMAC0C0LLI          (*((struct dma_lli volatile*)(0x38200100)))
 | 
| 417 |  | -#define DMAC0C0SRCADDR      (*((const void* volatile*)(0x38200100)))
 | 
| 418 |  | -#define DMAC0C0DESTADDR     (*((void* volatile*)(0x38200104)))
 | 
| 419 |  | -#define DMAC0C0NEXTLLI      (*((const struct dma_lli* volatile*)(0x38200108)))
 | 
| 420 |  | -#define DMAC0C0CONTROL      (*((uint32_t volatile*)(0x3820010c)))
 | 
| 421 |  | -#define DMAC0C0CONFIG       (*((uint32_t volatile*)(0x38200110)))
 | 
| 422 |  | -#define DMAC0C1LLI          (*((struct dma_lli volatile*)(0x38200120)))
 | 
| 423 |  | -#define DMAC0C1SRCADDR      (*((const void* volatile*)(0x38200120)))
 | 
| 424 |  | -#define DMAC0C1DESTADDR     (*((void* volatile*)(0x38200124)))
 | 
| 425 |  | -#define DMAC0C1NEXTLLI      (*((const struct dma_lli* volatile*)(0x38200128)))
 | 
| 426 |  | -#define DMAC0C1CONTROL      (*((uint32_t volatile*)(0x3820012c)))
 | 
| 427 |  | -#define DMAC0C1CONFIG       (*((uint32_t volatile*)(0x38200130)))
 | 
| 428 |  | -#define DMAC0C2LLI          (*((struct dma_lli volatile*)(0x38200140)))
 | 
| 429 |  | -#define DMAC0C2SRCADDR      (*((const void* volatile*)(0x38200140)))
 | 
| 430 |  | -#define DMAC0C2DESTADDR     (*((void* volatile*)(0x38200144)))
 | 
| 431 |  | -#define DMAC0C2NEXTLLI      (*((const struct dma_lli* volatile*)(0x38200148)))
 | 
| 432 |  | -#define DMAC0C2CONTROL      (*((uint32_t volatile*)(0x3820014c)))
 | 
| 433 |  | -#define DMAC0C2CONFIG       (*((uint32_t volatile*)(0x38200150)))
 | 
| 434 |  | -#define DMAC0C3LLI          (*((struct dma_lli volatile*)(0x38200160)))
 | 
| 435 |  | -#define DMAC0C3SRCADDR      (*((const void* volatile*)(0x38200160)))
 | 
| 436 |  | -#define DMAC0C3DESTADDR     (*((void* volatile*)(0x38200164)))
 | 
| 437 |  | -#define DMAC0C3NEXTLLI      (*((const struct dma_lli* volatile*)(0x38200168)))
 | 
| 438 |  | -#define DMAC0C3CONTROL      (*((uint32_t volatile*)(0x3820016c)))
 | 
| 439 |  | -#define DMAC0C3CONFIG       (*((uint32_t volatile*)(0x38200170)))
 | 
| 440 |  | -#define DMAC0C4LLI          (*((struct dma_lli volatile*)(0x38200180)))
 | 
| 441 |  | -#define DMAC0C4SRCADDR      (*((const void* volatile*)(0x38200180)))
 | 
| 442 |  | -#define DMAC0C4DESTADDR     (*((void* volatile*)(0x38200184)))
 | 
| 443 |  | -#define DMAC0C4NEXTLLI      (*((const struct dma_lli* volatile*)(0x38200188)))
 | 
| 444 |  | -#define DMAC0C4CONTROL      (*((uint32_t volatile*)(0x3820018c)))
 | 
| 445 |  | -#define DMAC0C4CONFIG       (*((uint32_t volatile*)(0x38200190)))
 | 
| 446 |  | -#define DMAC0C5LLI          (*((struct dma_lli volatile*)(0x382001a0)))
 | 
| 447 |  | -#define DMAC0C5SRCADDR      (*((const void* volatile*)(0x382001a0)))
 | 
| 448 |  | -#define DMAC0C5DESTADDR     (*((void* volatile*)(0x382001a4)))
 | 
| 449 |  | -#define DMAC0C5NEXTLLI      (*((const struct dma_lli* volatile*)(0x382001a8)))
 | 
| 450 |  | -#define DMAC0C5CONTROL      (*((uint32_t volatile*)(0x382001ac)))
 | 
| 451 |  | -#define DMAC0C5CONFIG       (*((uint32_t volatile*)(0x382001b0)))
 | 
| 452 |  | -#define DMAC0C6LLI          (*((struct dma_lli volatile*)(0x382001c0)))
 | 
| 453 |  | -#define DMAC0C6SRCADDR      (*((const void* volatile*)(0x382001c0)))
 | 
| 454 |  | -#define DMAC0C6DESTADDR     (*((void* volatile*)(0x382001c4)))
 | 
| 455 |  | -#define DMAC0C6NEXTLLI      (*((const struct dma_lli* volatile*)(0x382001c8)))
 | 
| 456 |  | -#define DMAC0C6CONTROL      (*((uint32_t volatile*)(0x382001cc)))
 | 
| 457 |  | -#define DMAC0C6CONFIG       (*((uint32_t volatile*)(0x382001d0)))
 | 
| 458 |  | -#define DMAC0C7LLI          (*((struct dma_lli volatile*)(0x382001e0)))
 | 
| 459 |  | -#define DMAC0C7SRCADDR      (*((const void* volatile*)(0x382001e0)))
 | 
| 460 |  | -#define DMAC0C7DESTADDR     (*((void* volatile*)(0x382001e4)))
 | 
| 461 |  | -#define DMAC0C7NEXTLLI      (*((const struct dma_lli* volatile*)(0x382001e8)))
 | 
| 462 |  | -#define DMAC0C7CONTROL      (*((uint32_t volatile*)(0x382001ec)))
 | 
| 463 |  | -#define DMAC0C7CONFIG       (*((uint32_t volatile*)(0x382001f0)))
 | 
| 464 |  | -#define DMAC1INTSTS         (*((uint32_t volatile*)(0x39900000)))
 | 
| 465 |  | -#define DMAC1INTTCSTS       (*((uint32_t volatile*)(0x39900004)))
 | 
| 466 |  | -#define DMAC1INTTCCLR       (*((uint32_t volatile*)(0x39900008)))
 | 
| 467 |  | -#define DMAC1INTERRSTS      (*((uint32_t volatile*)(0x3990000c)))
 | 
| 468 |  | -#define DMAC1INTERRCLR      (*((uint32_t volatile*)(0x39900010)))
 | 
| 469 |  | -#define DMAC1RAWINTTCSTS    (*((uint32_t volatile*)(0x39900014)))
 | 
| 470 |  | -#define DMAC1RAWINTERRSTS   (*((uint32_t volatile*)(0x39900018)))
 | 
| 471 |  | -#define DMAC1ENABLEDCHANS   (*((uint32_t volatile*)(0x3990001c)))
 | 
| 472 |  | -#define DMAC1SOFTBREQ       (*((uint32_t volatile*)(0x39900020)))
 | 
| 473 |  | -#define DMAC1SOFTSREQ       (*((uint32_t volatile*)(0x39900024)))
 | 
| 474 |  | -#define DMAC1SOFTLBREQ      (*((uint32_t volatile*)(0x39900028)))
 | 
| 475 |  | -#define DMAC1SOFTLSREQ      (*((uint32_t volatile*)(0x3990002c)))
 | 
| 476 |  | -#define DMAC1CONFIG         (*((uint32_t volatile*)(0x39900030)))
 | 
| 477 |  | -#define DMAC1SYNC           (*((uint32_t volatile*)(0x39900034)))
 | 
| 478 |  | -#define DMAC1CLLI(c)        (*((struct dma_lli volatile*)(0x39900100 + 0x20 * (c))))
 | 
| 479 |  | -#define DMAC1CSRCADDR(c)    (*((const void* volatile*)(0x39900100 + 0x20 * (c))))
 | 
| 480 |  | -#define DMAC1CDESTADDR(c)   (*((void* volatile*)(0x39900104 + 0x20 * (c))))
 | 
| 481 |  | -#define DMAC1CNEXTLLI(c)    (*((const void* volatile*)(0x39900108 + 0x20 * (c))))
 | 
| 482 |  | -#define DMAC1CCONTROL(c)    (*((uint32_t volatile*)(0x3990010c + 0x20 * (c))))
 | 
| 483 |  | -#define DMAC1CCONFIG(c)     (*((uint32_t volatile*)(0x39900110 + 0x20 * (c))))
 | 
| 484 |  | -#define DMAC1C0LLI          (*((struct dma_lli volatile*)(0x39900100)))
 | 
| 485 |  | -#define DMAC1C0SRCADDR      (*((const void* volatile*)(0x39900100)))
 | 
| 486 |  | -#define DMAC1C0DESTADDR     (*((void* volatile*)(0x39900104)))
 | 
| 487 |  | -#define DMAC1C0NEXTLLI      (*((const struct dma_lli* volatile*)(0x39900108)))
 | 
| 488 |  | -#define DMAC1C0CONTROL      (*((uint32_t volatile*)(0x3990010c)))
 | 
| 489 |  | -#define DMAC1C0CONFIG       (*((uint32_t volatile*)(0x39900110)))
 | 
| 490 |  | -#define DMAC1C1LLI          (*((struct dma_lli volatile*)(0x39900120)))
 | 
| 491 |  | -#define DMAC1C1SRCADDR      (*((const void* volatile*)(0x39900120)))
 | 
| 492 |  | -#define DMAC1C1DESTADDR     (*((void* volatile*)(0x39900124)))
 | 
| 493 |  | -#define DMAC1C1NEXTLLI      (*((const struct dma_lli* volatile*)(0x39900128)))
 | 
| 494 |  | -#define DMAC1C1CONTROL      (*((uint32_t volatile*)(0x3990012c)))
 | 
| 495 |  | -#define DMAC1C1CONFIG       (*((uint32_t volatile*)(0x39900130)))
 | 
| 496 |  | -#define DMAC1C2LLI          (*((struct dma_lli volatile*)(0x39900140)))
 | 
| 497 |  | -#define DMAC1C2SRCADDR      (*((const void* volatile*)(0x39900140)))
 | 
| 498 |  | -#define DMAC1C2DESTADDR     (*((void* volatile*)(0x39900144)))
 | 
| 499 |  | -#define DMAC1C2NEXTLLI      (*((const struct dma_lli* volatile*)(0x39900148)))
 | 
| 500 |  | -#define DMAC1C2CONTROL      (*((uint32_t volatile*)(0x3990014c)))
 | 
| 501 |  | -#define DMAC1C2CONFIG       (*((uint32_t volatile*)(0x39900150)))
 | 
| 502 |  | -#define DMAC1C3LLI          (*((struct dma_lli volatile*)(0x39900160)))
 | 
| 503 |  | -#define DMAC1C3SRCADDR      (*((const void* volatile*)(0x39900160)))
 | 
| 504 |  | -#define DMAC1C3DESTADDR     (*((void* volatile*)(0x39900164)))
 | 
| 505 |  | -#define DMAC1C3NEXTLLI      (*((volatile void**)(0x39900168)))
 | 
| 506 |  | -#define DMAC1C3CONTROL      (*((uint32_t volatile*)(0x3990016c)))
 | 
| 507 |  | -#define DMAC1C3CONFIG       (*((uint32_t volatile*)(0x39900170)))
 | 
| 508 |  | -#define DMAC1C4LLI          (*((struct dma_lli volatile*)(0x39900180)))
 | 
| 509 |  | -#define DMAC1C4SRCADDR      (*((const void* volatile*)(0x39900180)))
 | 
| 510 |  | -#define DMAC1C4DESTADDR     (*((void* volatile*)(0x39900184)))
 | 
| 511 |  | -#define DMAC1C4NEXTLLI      (*((const struct dma_lli* volatile*)(0x39900188)))
 | 
| 512 |  | -#define DMAC1C4CONTROL      (*((uint32_t volatile*)(0x3990018c)))
 | 
| 513 |  | -#define DMAC1C4CONFIG       (*((uint32_t volatile*)(0x39900190)))
 | 
| 514 |  | -#define DMAC1C5LLI          (*((struct dma_lli volatile*)(0x399001a0)))
 | 
| 515 |  | -#define DMAC1C5SRCADDR      (*((const void* volatile*)(0x399001a0)))
 | 
| 516 |  | -#define DMAC1C5DESTADDR     (*((void* volatile*)(0x399001a4)))
 | 
| 517 |  | -#define DMAC1C5NEXTLLI      (*((const struct dma_lli* volatile*)(0x399001a8)))
 | 
| 518 |  | -#define DMAC1C5CONTROL      (*((uint32_t volatile*)(0x399001ac)))
 | 
| 519 |  | -#define DMAC1C5CONFIG       (*((uint32_t volatile*)(0x399001b0)))
 | 
| 520 |  | -#define DMAC1C6LLI          (*((struct dma_lli volatile*)(0x399001c0)))
 | 
| 521 |  | -#define DMAC1C6SRCADDR      (*((const void* volatile*)(0x399001c0)))
 | 
| 522 |  | -#define DMAC1C6DESTADDR     (*((void* volatile*)(0x399001c4)))
 | 
| 523 |  | -#define DMAC1C6NEXTLLI      (*((const struct dma_lli* volatile*)(0x399001c8)))
 | 
| 524 |  | -#define DMAC1C6CONTROL      (*((uint32_t volatile*)(0x399001cc)))
 | 
| 525 |  | -#define DMAC1C6CONFIG       (*((uint32_t volatile*)(0x399001d0)))
 | 
| 526 |  | -#define DMAC1C7LLI          (*((struct dma_lli volatile*)(0x399001e0)))
 | 
| 527 |  | -#define DMAC1C7SRCADDR      (*((const void* volatile*)(0x399001e0)))
 | 
| 528 |  | -#define DMAC1C7DESTADDR     (*((void* volatile*)(0x399001e4)))
 | 
| 529 |  | -#define DMAC1C7NEXTLLI      (*((const struct dma_lli* volatile*)(0x399001e8)))
 | 
| 530 |  | -#define DMAC1C7CONTROL      (*((uint32_t volatile*)(0x399001ec)))
 | 
| 531 |  | -#define DMAC1C7CONFIG       (*((uint32_t volatile*)(0x399001f0)))
 | 
| 532 |  | -
 | 
| 533 |  | -
 | 
| 534 |  | -/////LCD/////
 | 
| 535 |  | -#define LCDWCMD   (*((uint32_t volatile*)(0x38300004)))
 | 
| 536 |  | -#define LCDSTATUS (*((uint32_t volatile*)(0x3830001c)))
 | 
| 537 |  | -#define LCDWDATA  (*((uint32_t volatile*)(0x38300040)))
 | 
| 538 |  | -
 | 
| 539 |  | -
 | 
| 540 |  | -/////ATA/////
 | 
| 541 |  | -#define ATA_CONTROL         (*((uint32_t volatile*)(0x38700000)))
 | 
| 542 |  | -#define ATA_STATUS          (*((uint32_t volatile*)(0x38700004)))
 | 
| 543 |  | -#define ATA_COMMAND         (*((uint32_t volatile*)(0x38700008)))
 | 
| 544 |  | -#define ATA_SWRST           (*((uint32_t volatile*)(0x3870000c)))
 | 
| 545 |  | -#define ATA_IRQ             (*((uint32_t volatile*)(0x38700010)))
 | 
| 546 |  | -#define ATA_IRQ_MASK        (*((uint32_t volatile*)(0x38700014)))
 | 
| 547 |  | -#define ATA_CFG             (*((uint32_t volatile*)(0x38700018)))
 | 
| 548 |  | -#define ATA_MDMA_TIME       (*((uint32_t volatile*)(0x38700028)))
 | 
| 549 |  | -#define ATA_PIO_TIME        (*((uint32_t volatile*)(0x3870002c)))
 | 
| 550 |  | -#define ATA_UDMA_TIME       (*((uint32_t volatile*)(0x38700030)))
 | 
| 551 |  | -#define ATA_XFR_NUM         (*((uint32_t volatile*)(0x38700034)))
 | 
| 552 |  | -#define ATA_XFR_CNT         (*((uint32_t volatile*)(0x38700038)))
 | 
| 553 |  | -#define ATA_TBUF_START      (*((void* volatile*)(0x3870003c)))
 | 
| 554 |  | -#define ATA_TBUF_SIZE       (*((uint32_t volatile*)(0x38700040)))
 | 
| 555 |  | -#define ATA_SBUF_START      (*((void* volatile*)(0x38700044)))
 | 
| 556 |  | -#define ATA_SBUF_SIZE       (*((uint32_t volatile*)(0x38700048)))
 | 
| 557 |  | -#define ATA_CADR_TBUF       (*((void* volatile*)(0x3870004c)))
 | 
| 558 |  | -#define ATA_CADR_SBUF       (*((void* volatile*)(0x38700050)))
 | 
| 559 |  | -#define ATA_PIO_DTR         (*((uint32_t volatile*)(0x38700054)))
 | 
| 560 |  | -#define ATA_PIO_FED         (*((uint32_t volatile*)(0x38700058)))
 | 
| 561 |  | -#define ATA_PIO_SCR         (*((uint32_t volatile*)(0x3870005c)))
 | 
| 562 |  | -#define ATA_PIO_LLR         (*((uint32_t volatile*)(0x38700060)))
 | 
| 563 |  | -#define ATA_PIO_LMR         (*((uint32_t volatile*)(0x38700064)))
 | 
| 564 |  | -#define ATA_PIO_LHR         (*((uint32_t volatile*)(0x38700068)))
 | 
| 565 |  | -#define ATA_PIO_DVR         (*((uint32_t volatile*)(0x3870006c)))
 | 
| 566 |  | -#define ATA_PIO_CSD         (*((uint32_t volatile*)(0x38700070)))
 | 
| 567 |  | -#define ATA_PIO_DAD         (*((uint32_t volatile*)(0x38700074)))
 | 
| 568 |  | -#define ATA_PIO_READY       (*((uint32_t volatile*)(0x38700078)))
 | 
| 569 |  | -#define ATA_PIO_RDATA       (*((uint32_t volatile*)(0x3870007c)))
 | 
| 570 |  | -#define ATA_BUS_FIFO_STATUS (*((uint32_t volatile*)(0x38700080)))
 | 
| 571 |  | -#define ATA_FIFO_STATUS     (*((uint32_t volatile*)(0x38700084)))
 | 
| 572 |  | -#define ATA_DMA_ADDR        (*((void* volatile*)(0x38700088)))
 | 
| 573 |  | -
 | 
| 574 |  | -
 | 
| 575 |  | -/////CLICKWHEEL/////
 | 
| 576 |  | -#define WHEEL00      (*((uint32_t volatile*)(0x3C200000)))
 | 
| 577 |  | -#define WHEEL04      (*((uint32_t volatile*)(0x3C200004)))
 | 
| 578 |  | -#define WHEEL08      (*((uint32_t volatile*)(0x3C200008)))
 | 
| 579 |  | -#define WHEEL0C      (*((uint32_t volatile*)(0x3C20000C)))
 | 
| 580 |  | -#define WHEEL10      (*((uint32_t volatile*)(0x3C200010)))
 | 
| 581 |  | -#define WHEELINT     (*((uint32_t volatile*)(0x3C200014)))
 | 
| 582 |  | -#define WHEELRX      (*((uint32_t volatile*)(0x3C200018)))
 | 
| 583 |  | -#define WHEELTX      (*((uint32_t volatile*)(0x3C20001C)))
 | 
| 584 |  | -
 | 
| 585 |  | -
 | 
| 586 |  | -/////CLOCK GATES/////
 | 
| 587 |  | -#define CLOCKGATE_USB_1 2
 | 
| 588 |  | -#define CLOCKGATE_USB_2 35
 | 
| 589 |  | -
 | 
| 590 |  | -
 | 
| 591 |  | -/////INTERRUPTS/////
 | 
| 592 |  | -#define IRQ_TIMER 8
 | 
| 593 |  | -#define IRQ_USB_FUNC 19
 | 
| 594 |  | -#define IRQ_DMAC(d) 16 + d
 | 
| 595 |  | -#define IRQ_DMAC0 16
 | 
| 596 |  | -#define IRQ_DMAC1 17
 | 
| 597 |  | -#define IRQ_WHEEL 23
 | 
| 598 |  | -#define IRQ_ATA 29
 | 
| 599 |  | -
 | 
| 600 |  | -
 | 
| 601 |  | -#endif
 | 
|  | 2 | +// | 
|  | 3 | +// | 
|  | 4 | +//    Copyright 2010 TheSeven | 
|  | 5 | +// | 
|  | 6 | +// | 
|  | 7 | +//    This file is part of emCORE. | 
|  | 8 | +// | 
|  | 9 | +//    emCORE is free software: you can redistribute it and/or | 
|  | 10 | +//    modify it under the terms of the GNU General Public License as | 
|  | 11 | +//    published by the Free Software Foundation, either version 2 of the | 
|  | 12 | +//    License, or (at your option) any later version. | 
|  | 13 | +// | 
|  | 14 | +//    emCORE is distributed in the hope that it will be useful, | 
|  | 15 | +//    but WITHOUT ANY WARRANTY; without even the implied warranty of | 
|  | 16 | +//    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. | 
|  | 17 | +//    See the GNU General Public License for more details. | 
|  | 18 | +// | 
|  | 19 | +//    You should have received a copy of the GNU General Public License along | 
|  | 20 | +//    with emCORE.  If not, see <http://www.gnu.org/licenses/>. | 
|  | 21 | +// | 
|  | 22 | +// | 
|  | 23 | + | 
|  | 24 | + | 
|  | 25 | +#ifndef __S5L8702_H__ | 
|  | 26 | +#define __S5L8702_H__ | 
|  | 27 | + | 
|  | 28 | +#include "global.h" | 
|  | 29 | + | 
|  | 30 | + | 
|  | 31 | +/////SYSCON///// | 
|  | 32 | +#define PWRCON(i)    (*((uint32_t volatile*)(0x3C500000 \ | 
|  | 33 | +                                           + ((i) == 4 ? 0x6C : \ | 
|  | 34 | +                                             ((i) == 3 ? 0x68 : \ | 
|  | 35 | +                                             ((i) == 2 ? 0x58 : \ | 
|  | 36 | +                                             ((i) == 1 ? 0x4C : \ | 
|  | 37 | +                                                         0x48))))))) | 
|  | 38 | + | 
|  | 39 | + | 
|  | 40 | +/////TIMER///// | 
|  | 41 | +#define TACON        (*((uint32_t volatile*)(0x3C700000))) | 
|  | 42 | +#define TACMD        (*((uint32_t volatile*)(0x3C700004))) | 
|  | 43 | +#define TADATA0      (*((uint32_t volatile*)(0x3C700008))) | 
|  | 44 | +#define TADATA1      (*((uint32_t volatile*)(0x3C70000C))) | 
|  | 45 | +#define TAPRE        (*((uint32_t volatile*)(0x3C700010))) | 
|  | 46 | +#define TACNT        (*((uint32_t volatile*)(0x3C700014))) | 
|  | 47 | +#define TBCON        (*((uint32_t volatile*)(0x3C700020))) | 
|  | 48 | +#define TBCMD        (*((uint32_t volatile*)(0x3C700024))) | 
|  | 49 | +#define TBDATA0      (*((uint32_t volatile*)(0x3C700028))) | 
|  | 50 | +#define TBDATA1      (*((uint32_t volatile*)(0x3C70002C))) | 
|  | 51 | +#define TBPRE        (*((uint32_t volatile*)(0x3C700030))) | 
|  | 52 | +#define TBCNT        (*((uint32_t volatile*)(0x3C700034))) | 
|  | 53 | +#define TCCON        (*((uint32_t volatile*)(0x3C700040))) | 
|  | 54 | +#define TCCMD        (*((uint32_t volatile*)(0x3C700044))) | 
|  | 55 | +#define TCDATA0      (*((uint32_t volatile*)(0x3C700048))) | 
|  | 56 | +#define TCDATA1      (*((uint32_t volatile*)(0x3C70004C))) | 
|  | 57 | +#define TCPRE        (*((uint32_t volatile*)(0x3C700050))) | 
|  | 58 | +#define TCCNT        (*((uint32_t volatile*)(0x3C700054))) | 
|  | 59 | +#define TDCON        (*((uint32_t volatile*)(0x3C700060))) | 
|  | 60 | +#define TDCMD        (*((uint32_t volatile*)(0x3C700064))) | 
|  | 61 | +#define TDDATA0      (*((uint32_t volatile*)(0x3C700068))) | 
|  | 62 | +#define TDDATA1      (*((uint32_t volatile*)(0x3C70006C))) | 
|  | 63 | +#define TDPRE        (*((uint32_t volatile*)(0x3C700070))) | 
|  | 64 | +#define TDCNT        (*((uint32_t volatile*)(0x3C700074))) | 
|  | 65 | +#define TECON        (*((uint32_t volatile*)(0x3C7000A0))) | 
|  | 66 | +#define TECMD        (*((uint32_t volatile*)(0x3C7000A4))) | 
|  | 67 | +#define TEDATA0      (*((uint32_t volatile*)(0x3C7000A8))) | 
|  | 68 | +#define TEDATA1      (*((uint32_t volatile*)(0x3C7000AC))) | 
|  | 69 | +#define TEPRE        (*((uint32_t volatile*)(0x3C7000B0))) | 
|  | 70 | +#define TECNT        (*((uint32_t volatile*)(0x3C7000B4))) | 
|  | 71 | +#define TFCON        (*((uint32_t volatile*)(0x3C7000C0))) | 
|  | 72 | +#define TFCMD        (*((uint32_t volatile*)(0x3C7000C4))) | 
|  | 73 | +#define TFDATA0      (*((uint32_t volatile*)(0x3C7000C8))) | 
|  | 74 | +#define TFDATA1      (*((uint32_t volatile*)(0x3C7000CC))) | 
|  | 75 | +#define TFPRE        (*((uint32_t volatile*)(0x3C7000D0))) | 
|  | 76 | +#define TFCNT        (*((uint32_t volatile*)(0x3C7000D4))) | 
|  | 77 | +#define TGCON        (*((uint32_t volatile*)(0x3C7000E0))) | 
|  | 78 | +#define TGCMD        (*((uint32_t volatile*)(0x3C7000E4))) | 
|  | 79 | +#define TGDATA0      (*((uint32_t volatile*)(0x3C7000E8))) | 
|  | 80 | +#define TGDATA1      (*((uint32_t volatile*)(0x3C7000EC))) | 
|  | 81 | +#define TGPRE        (*((uint32_t volatile*)(0x3C7000F0))) | 
|  | 82 | +#define TGCNT        (*((uint32_t volatile*)(0x3C7000F4))) | 
|  | 83 | +#define THCON        (*((uint32_t volatile*)(0x3C700100))) | 
|  | 84 | +#define THCMD        (*((uint32_t volatile*)(0x3C700104))) | 
|  | 85 | +#define THDATA0      (*((uint32_t volatile*)(0x3C700108))) | 
|  | 86 | +#define THDATA1      (*((uint32_t volatile*)(0x3C70010C))) | 
|  | 87 | +#define THPRE        (*((uint32_t volatile*)(0x3C700110))) | 
|  | 88 | +#define THCNT        (*((uint32_t volatile*)(0x3C700114))) | 
|  | 89 | + | 
|  | 90 | + | 
|  | 91 | +/////USB///// | 
|  | 92 | +#define OTGBASE 0x38400000 | 
|  | 93 | +#define PHYBASE 0x3C400000 | 
|  | 94 | +#define SYNOPSYSOTG_CLOCK 0 | 
|  | 95 | +#define SYNOPSYSOTG_AHBCFG 0x2B | 
|  | 96 | + | 
|  | 97 | + | 
|  | 98 | +/////I2C///// | 
|  | 99 | +#define IICCON(bus)  (*((uint32_t volatile*)(0x3C600000 + 0x300000 * (bus)))) | 
|  | 100 | +#define IICSTAT(bus) (*((uint32_t volatile*)(0x3C600004 + 0x300000 * (bus)))) | 
|  | 101 | +#define IICADD(bus)  (*((uint32_t volatile*)(0x3C600008 + 0x300000 * (bus)))) | 
|  | 102 | +#define IICDS(bus)   (*((uint32_t volatile*)(0x3C60000C + 0x300000 * (bus)))) | 
|  | 103 | +#define IIC10(bus)   (*((uint32_t volatile*)(0x3C600010 + 0x300000 * (bus)))) | 
|  | 104 | + | 
|  | 105 | + | 
|  | 106 | +/////INTERRUPT CONTROLLERS///// | 
|  | 107 | +#define VICIRQSTATUS(v)       (*((uint32_t volatile*)(0x38E00000 + 0x1000 * (v)))) | 
|  | 108 | +#define VICFIQSTATUS(v)       (*((uint32_t volatile*)(0x38E00004 + 0x1000 * (v)))) | 
|  | 109 | +#define VICRAWINTR(v)         (*((uint32_t volatile*)(0x38E00008 + 0x1000 * (v)))) | 
|  | 110 | +#define VICINTSELECT(v)       (*((uint32_t volatile*)(0x38E0000C + 0x1000 * (v)))) | 
|  | 111 | +#define VICINTENABLE(v)       (*((uint32_t volatile*)(0x38E00010 + 0x1000 * (v)))) | 
|  | 112 | +#define VICINTENCLEAR(v)      (*((uint32_t volatile*)(0x38E00014 + 0x1000 * (v)))) | 
|  | 113 | +#define VICSOFTINT(v)         (*((uint32_t volatile*)(0x38E00018 + 0x1000 * (v)))) | 
|  | 114 | +#define VICSOFTINTCLEAR(v)    (*((uint32_t volatile*)(0x38E0001C + 0x1000 * (v)))) | 
|  | 115 | +#define VICPROTECTION(v)      (*((uint32_t volatile*)(0x38E00020 + 0x1000 * (v)))) | 
|  | 116 | +#define VICSWPRIORITYMASK(v)  (*((uint32_t volatile*)(0x38E00024 + 0x1000 * (v)))) | 
|  | 117 | +#define VICPRIORITYDAISY(v)   (*((uint32_t volatile*)(0x38E00028 + 0x1000 * (v)))) | 
|  | 118 | +#define VICVECTADDR(v, i)     (*((uint32_t volatile*)(0x38E00100 + 0x1000 * (v) + 4 * (i)))) | 
|  | 119 | +#define VICVECTPRIORITY(v, i) (*((uint32_t volatile*)(0x38E00200 + 0x1000 * (v) + 4 * (i)))) | 
|  | 120 | +#define VICADDRESS(v)         (*((const void* volatile*)(0x38E00F00 + 0x1000 * (v)))) | 
|  | 121 | +#define VIC0IRQSTATUS         (*((uint32_t volatile*)(0x38E00000))) | 
|  | 122 | +#define VIC0FIQSTATUS         (*((uint32_t volatile*)(0x38E00004))) | 
|  | 123 | +#define VIC0RAWINTR           (*((uint32_t volatile*)(0x38E00008))) | 
|  | 124 | +#define VIC0INTSELECT         (*((uint32_t volatile*)(0x38E0000C))) | 
|  | 125 | +#define VIC0INTENABLE         (*((uint32_t volatile*)(0x38E00010))) | 
|  | 126 | +#define VIC0INTENCLEAR        (*((uint32_t volatile*)(0x38E00014))) | 
|  | 127 | +#define VIC0SOFTINT           (*((uint32_t volatile*)(0x38E00018))) | 
|  | 128 | +#define VIC0SOFTINTCLEAR      (*((uint32_t volatile*)(0x38E0001C))) | 
|  | 129 | +#define VIC0PROTECTION        (*((uint32_t volatile*)(0x38E00020))) | 
|  | 130 | +#define VIC0SWPRIORITYMASK    (*((uint32_t volatile*)(0x38E00024))) | 
|  | 131 | +#define VIC0PRIORITYDAISY     (*((uint32_t volatile*)(0x38E00028))) | 
|  | 132 | +#define VIC0VECTADDR(i)       (*((const void* volatile*)(0x38E00100 + 4 * (i)))) | 
|  | 133 | +#define VIC0VECTADDR0         (*((const void* volatile*)(0x38E00100))) | 
|  | 134 | +#define VIC0VECTADDR1         (*((const void* volatile*)(0x38E00104))) | 
|  | 135 | +#define VIC0VECTADDR2         (*((const void* volatile*)(0x38E00108))) | 
|  | 136 | +#define VIC0VECTADDR3         (*((const void* volatile*)(0x38E0010C))) | 
|  | 137 | +#define VIC0VECTADDR4         (*((const void* volatile*)(0x38E00110))) | 
|  | 138 | +#define VIC0VECTADDR5         (*((const void* volatile*)(0x38E00114))) | 
|  | 139 | +#define VIC0VECTADDR6         (*((const void* volatile*)(0x38E00118))) | 
|  | 140 | +#define VIC0VECTADDR7         (*((const void* volatile*)(0x38E0011C))) | 
|  | 141 | +#define VIC0VECTADDR8         (*((const void* volatile*)(0x38E00120))) | 
|  | 142 | +#define VIC0VECTADDR9         (*((const void* volatile*)(0x38E00124))) | 
|  | 143 | +#define VIC0VECTADDR10        (*((const void* volatile*)(0x38E00128))) | 
|  | 144 | +#define VIC0VECTADDR11        (*((const void* volatile*)(0x38E0012C))) | 
|  | 145 | +#define VIC0VECTADDR12        (*((const void* volatile*)(0x38E00130))) | 
|  | 146 | +#define VIC0VECTADDR13        (*((const void* volatile*)(0x38E00134))) | 
|  | 147 | +#define VIC0VECTADDR14        (*((const void* volatile*)(0x38E00138))) | 
|  | 148 | +#define VIC0VECTADDR15        (*((const void* volatile*)(0x38E0013C))) | 
|  | 149 | +#define VIC0VECTADDR16        (*((const void* volatile*)(0x38E00140))) | 
|  | 150 | +#define VIC0VECTADDR17        (*((const void* volatile*)(0x38E00144))) | 
|  | 151 | +#define VIC0VECTADDR18        (*((const void* volatile*)(0x38E00148))) | 
|  | 152 | +#define VIC0VECTADDR19        (*((const void* volatile*)(0x38E0014C))) | 
|  | 153 | +#define VIC0VECTADDR20        (*((const void* volatile*)(0x38E00150))) | 
|  | 154 | +#define VIC0VECTADDR21        (*((const void* volatile*)(0x38E00154))) | 
|  | 155 | +#define VIC0VECTADDR22        (*((const void* volatile*)(0x38E00158))) | 
|  | 156 | +#define VIC0VECTADDR23        (*((const void* volatile*)(0x38E0015C))) | 
|  | 157 | +#define VIC0VECTADDR24        (*((const void* volatile*)(0x38E00160))) | 
|  | 158 | +#define VIC0VECTADDR25        (*((const void* volatile*)(0x38E00164))) | 
|  | 159 | +#define VIC0VECTADDR26        (*((const void* volatile*)(0x38E00168))) | 
|  | 160 | +#define VIC0VECTADDR27        (*((const void* volatile*)(0x38E0016C))) | 
|  | 161 | +#define VIC0VECTADDR28        (*((const void* volatile*)(0x38E00170))) | 
|  | 162 | +#define VIC0VECTADDR29        (*((const void* volatile*)(0x38E00174))) | 
|  | 163 | +#define VIC0VECTADDR30        (*((const void* volatile*)(0x38E00178))) | 
|  | 164 | +#define VIC0VECTADDR31        (*((const void* volatile*)(0x38E0017C))) | 
|  | 165 | +#define VIC0VECTPRIORITY(i)   (*((uint32_t volatile*)(0x38E00200 + 4 * (i)))) | 
|  | 166 | +#define VIC0VECTPRIORITY0     (*((uint32_t volatile*)(0x38E00200))) | 
|  | 167 | +#define VIC0VECTPRIORITY1     (*((uint32_t volatile*)(0x38E00204))) | 
|  | 168 | +#define VIC0VECTPRIORITY2     (*((uint32_t volatile*)(0x38E00208))) | 
|  | 169 | +#define VIC0VECTPRIORITY3     (*((uint32_t volatile*)(0x38E0020C))) | 
|  | 170 | +#define VIC0VECTPRIORITY4     (*((uint32_t volatile*)(0x38E00210))) | 
|  | 171 | +#define VIC0VECTPRIORITY5     (*((uint32_t volatile*)(0x38E00214))) | 
|  | 172 | +#define VIC0VECTPRIORITY6     (*((uint32_t volatile*)(0x38E00218))) | 
|  | 173 | +#define VIC0VECTPRIORITY7     (*((uint32_t volatile*)(0x38E0021C))) | 
|  | 174 | +#define VIC0VECTPRIORITY8     (*((uint32_t volatile*)(0x38E00220))) | 
|  | 175 | +#define VIC0VECTPRIORITY9     (*((uint32_t volatile*)(0x38E00224))) | 
|  | 176 | +#define VIC0VECTPRIORITY10    (*((uint32_t volatile*)(0x38E00228))) | 
|  | 177 | +#define VIC0VECTPRIORITY11    (*((uint32_t volatile*)(0x38E0022C))) | 
|  | 178 | +#define VIC0VECTPRIORITY12    (*((uint32_t volatile*)(0x38E00230))) | 
|  | 179 | +#define VIC0VECTPRIORITY13    (*((uint32_t volatile*)(0x38E00234))) | 
|  | 180 | +#define VIC0VECTPRIORITY14    (*((uint32_t volatile*)(0x38E00238))) | 
|  | 181 | +#define VIC0VECTPRIORITY15    (*((uint32_t volatile*)(0x38E0023C))) | 
|  | 182 | +#define VIC0VECTPRIORITY16    (*((uint32_t volatile*)(0x38E00240))) | 
|  | 183 | +#define VIC0VECTPRIORITY17    (*((uint32_t volatile*)(0x38E00244))) | 
|  | 184 | +#define VIC0VECTPRIORITY18    (*((uint32_t volatile*)(0x38E00248))) | 
|  | 185 | +#define VIC0VECTPRIORITY19    (*((uint32_t volatile*)(0x38E0024C))) | 
|  | 186 | +#define VIC0VECTPRIORITY20    (*((uint32_t volatile*)(0x38E00250))) | 
|  | 187 | +#define VIC0VECTPRIORITY21    (*((uint32_t volatile*)(0x38E00254))) | 
|  | 188 | +#define VIC0VECTPRIORITY22    (*((uint32_t volatile*)(0x38E00258))) | 
|  | 189 | +#define VIC0VECTPRIORITY23    (*((uint32_t volatile*)(0x38E0025C))) | 
|  | 190 | +#define VIC0VECTPRIORITY24    (*((uint32_t volatile*)(0x38E00260))) | 
|  | 191 | +#define VIC0VECTPRIORITY25    (*((uint32_t volatile*)(0x38E00264))) | 
|  | 192 | +#define VIC0VECTPRIORITY26    (*((uint32_t volatile*)(0x38E00268))) | 
|  | 193 | +#define VIC0VECTPRIORITY27    (*((uint32_t volatile*)(0x38E0026C))) | 
|  | 194 | +#define VIC0VECTPRIORITY28    (*((uint32_t volatile*)(0x38E00270))) | 
|  | 195 | +#define VIC0VECTPRIORITY29    (*((uint32_t volatile*)(0x38E00274))) | 
|  | 196 | +#define VIC0VECTPRIORITY30    (*((uint32_t volatile*)(0x38E00278))) | 
|  | 197 | +#define VIC0VECTPRIORITY31    (*((uint32_t volatile*)(0x38E0027C))) | 
|  | 198 | +#define VIC0ADDRESS           (*((void* volatile*)(0x38E00F00))) | 
|  | 199 | +#define VIC1IRQSTATUS         (*((uint32_t volatile*)(0x38E01000))) | 
|  | 200 | +#define VIC1FIQSTATUS         (*((uint32_t volatile*)(0x38E01004))) | 
|  | 201 | +#define VIC1RAWINTR           (*((uint32_t volatile*)(0x38E01008))) | 
|  | 202 | +#define VIC1INTSELECT         (*((uint32_t volatile*)(0x38E0100C))) | 
|  | 203 | +#define VIC1INTENABLE         (*((uint32_t volatile*)(0x38E01010))) | 
|  | 204 | +#define VIC1INTENCLEAR        (*((uint32_t volatile*)(0x38E01014))) | 
|  | 205 | +#define VIC1SOFTINT           (*((uint32_t volatile*)(0x38E01018))) | 
|  | 206 | +#define VIC1SOFTINTCLEAR      (*((uint32_t volatile*)(0x38E0101C))) | 
|  | 207 | +#define VIC1PROTECTION        (*((uint32_t volatile*)(0x38E01020))) | 
|  | 208 | +#define VIC1SWPRIORITYMASK    (*((uint32_t volatile*)(0x38E01024))) | 
|  | 209 | +#define VIC1PRIORITYDAISY     (*((uint32_t volatile*)(0x38E01028))) | 
|  | 210 | +#define VIC1VECTADDR(i)       (*((const void* volatile*)(0x38E01100 + 4 * (i)))) | 
|  | 211 | +#define VIC1VECTADDR0         (*((const void* volatile*)(0x38E01100))) | 
|  | 212 | +#define VIC1VECTADDR1         (*((const void* volatile*)(0x38E01104))) | 
|  | 213 | +#define VIC1VECTADDR2         (*((const void* volatile*)(0x38E01108))) | 
|  | 214 | +#define VIC1VECTADDR3         (*((const void* volatile*)(0x38E0110C))) | 
|  | 215 | +#define VIC1VECTADDR4         (*((const void* volatile*)(0x38E01110))) | 
|  | 216 | +#define VIC1VECTADDR5         (*((const void* volatile*)(0x38E01114))) | 
|  | 217 | +#define VIC1VECTADDR6         (*((const void* volatile*)(0x38E01118))) | 
|  | 218 | +#define VIC1VECTADDR7         (*((const void* volatile*)(0x38E0111C))) | 
|  | 219 | +#define VIC1VECTADDR8         (*((const void* volatile*)(0x38E01120))) | 
|  | 220 | +#define VIC1VECTADDR9         (*((const void* volatile*)(0x38E01124))) | 
|  | 221 | +#define VIC1VECTADDR10        (*((const void* volatile*)(0x38E01128))) | 
|  | 222 | +#define VIC1VECTADDR11        (*((const void* volatile*)(0x38E0112C))) | 
|  | 223 | +#define VIC1VECTADDR12        (*((const void* volatile*)(0x38E01130))) | 
|  | 224 | +#define VIC1VECTADDR13        (*((const void* volatile*)(0x38E01134))) | 
|  | 225 | +#define VIC1VECTADDR14        (*((const void* volatile*)(0x38E01138))) | 
|  | 226 | +#define VIC1VECTADDR15        (*((const void* volatile*)(0x38E0113C))) | 
|  | 227 | +#define VIC1VECTADDR16        (*((const void* volatile*)(0x38E01140))) | 
|  | 228 | +#define VIC1VECTADDR17        (*((const void* volatile*)(0x38E01144))) | 
|  | 229 | +#define VIC1VECTADDR18        (*((const void* volatile*)(0x38E01148))) | 
|  | 230 | +#define VIC1VECTADDR19        (*((const void* volatile*)(0x38E0114C))) | 
|  | 231 | +#define VIC1VECTADDR20        (*((const void* volatile*)(0x38E01150))) | 
|  | 232 | +#define VIC1VECTADDR21        (*((const void* volatile*)(0x38E01154))) | 
|  | 233 | +#define VIC1VECTADDR22        (*((const void* volatile*)(0x38E01158))) | 
|  | 234 | +#define VIC1VECTADDR23        (*((const void* volatile*)(0x38E0115C))) | 
|  | 235 | +#define VIC1VECTADDR24        (*((const void* volatile*)(0x38E01160))) | 
|  | 236 | +#define VIC1VECTADDR25        (*((const void* volatile*)(0x38E01164))) | 
|  | 237 | +#define VIC1VECTADDR26        (*((const void* volatile*)(0x38E01168))) | 
|  | 238 | +#define VIC1VECTADDR27        (*((const void* volatile*)(0x38E0116C))) | 
|  | 239 | +#define VIC1VECTADDR28        (*((const void* volatile*)(0x38E01170))) | 
|  | 240 | +#define VIC1VECTADDR29        (*((const void* volatile*)(0x38E01174))) | 
|  | 241 | +#define VIC1VECTADDR30        (*((const void* volatile*)(0x38E01178))) | 
|  | 242 | +#define VIC1VECTADDR31        (*((const void* volatile*)(0x38E0117C))) | 
|  | 243 | +#define VIC1VECTPRIORITY(i)   (*((uint32_t volatile*)(0x38E01200 + 4 * (i)))) | 
|  | 244 | +#define VIC1VECTPRIORITY0     (*((uint32_t volatile*)(0x38E01200))) | 
|  | 245 | +#define VIC1VECTPRIORITY1     (*((uint32_t volatile*)(0x38E01204))) | 
|  | 246 | +#define VIC1VECTPRIORITY2     (*((uint32_t volatile*)(0x38E01208))) | 
|  | 247 | +#define VIC1VECTPRIORITY3     (*((uint32_t volatile*)(0x38E0120C))) | 
|  | 248 | +#define VIC1VECTPRIORITY4     (*((uint32_t volatile*)(0x38E01210))) | 
|  | 249 | +#define VIC1VECTPRIORITY5     (*((uint32_t volatile*)(0x38E01214))) | 
|  | 250 | +#define VIC1VECTPRIORITY6     (*((uint32_t volatile*)(0x38E01218))) | 
|  | 251 | +#define VIC1VECTPRIORITY7     (*((uint32_t volatile*)(0x38E0121C))) | 
|  | 252 | +#define VIC1VECTPRIORITY8     (*((uint32_t volatile*)(0x38E01220))) | 
|  | 253 | +#define VIC1VECTPRIORITY9     (*((uint32_t volatile*)(0x38E01224))) | 
|  | 254 | +#define VIC1VECTPRIORITY10    (*((uint32_t volatile*)(0x38E01228))) | 
|  | 255 | +#define VIC1VECTPRIORITY11    (*((uint32_t volatile*)(0x38E0122C))) | 
|  | 256 | +#define VIC1VECTPRIORITY12    (*((uint32_t volatile*)(0x38E01230))) | 
|  | 257 | +#define VIC1VECTPRIORITY13    (*((uint32_t volatile*)(0x38E01234))) | 
|  | 258 | +#define VIC1VECTPRIORITY14    (*((uint32_t volatile*)(0x38E01238))) | 
|  | 259 | +#define VIC1VECTPRIORITY15    (*((uint32_t volatile*)(0x38E0123C))) | 
|  | 260 | +#define VIC1VECTPRIORITY16    (*((uint32_t volatile*)(0x38E01240))) | 
|  | 261 | +#define VIC1VECTPRIORITY17    (*((uint32_t volatile*)(0x38E01244))) | 
|  | 262 | +#define VIC1VECTPRIORITY18    (*((uint32_t volatile*)(0x38E01248))) | 
|  | 263 | +#define VIC1VECTPRIORITY19    (*((uint32_t volatile*)(0x38E0124C))) | 
|  | 264 | +#define VIC1VECTPRIORITY20    (*((uint32_t volatile*)(0x38E01250))) | 
|  | 265 | +#define VIC1VECTPRIORITY21    (*((uint32_t volatile*)(0x38E01254))) | 
|  | 266 | +#define VIC1VECTPRIORITY22    (*((uint32_t volatile*)(0x38E01258))) | 
|  | 267 | +#define VIC1VECTPRIORITY23    (*((uint32_t volatile*)(0x38E0125C))) | 
|  | 268 | +#define VIC1VECTPRIORITY24    (*((uint32_t volatile*)(0x38E01260))) | 
|  | 269 | +#define VIC1VECTPRIORITY25    (*((uint32_t volatile*)(0x38E01264))) | 
|  | 270 | +#define VIC1VECTPRIORITY26    (*((uint32_t volatile*)(0x38E01268))) | 
|  | 271 | +#define VIC1VECTPRIORITY27    (*((uint32_t volatile*)(0x38E0126C))) | 
|  | 272 | +#define VIC1VECTPRIORITY28    (*((uint32_t volatile*)(0x38E01270))) | 
|  | 273 | +#define VIC1VECTPRIORITY29    (*((uint32_t volatile*)(0x38E01274))) | 
|  | 274 | +#define VIC1VECTPRIORITY30    (*((uint32_t volatile*)(0x38E01278))) | 
|  | 275 | +#define VIC1VECTPRIORITY31    (*((uint32_t volatile*)(0x38E0127C))) | 
|  | 276 | +#define VIC1ADDRESS           (*((void* volatile*)(0x38E01F00))) | 
|  | 277 | + | 
|  | 278 | + | 
|  | 279 | +/////GPIO///// | 
|  | 280 | +#define PCON(i)       (*((uint32_t volatile*)(0x3cf00000 + ((i) << 5)))) | 
|  | 281 | +#define PDAT(i)       (*((uint32_t volatile*)(0x3cf00004 + ((i) << 5)))) | 
|  | 282 | +#define PUNA(i)       (*((uint32_t volatile*)(0x3cf00008 + ((i) << 5)))) | 
|  | 283 | +#define PUNB(i)       (*((uint32_t volatile*)(0x3cf0000c + ((i) << 5)))) | 
|  | 284 | +#define PCON0         (*((uint32_t volatile*)(0x3cf00000))) | 
|  | 285 | +#define PDAT0         (*((uint32_t volatile*)(0x3cf00004))) | 
|  | 286 | +#define PCON1         (*((uint32_t volatile*)(0x3cf00020))) | 
|  | 287 | +#define PDAT1         (*((uint32_t volatile*)(0x3cf00024))) | 
|  | 288 | +#define PCON2         (*((uint32_t volatile*)(0x3cf00040))) | 
|  | 289 | +#define PDAT2         (*((uint32_t volatile*)(0x3cf00044))) | 
|  | 290 | +#define PCON3         (*((uint32_t volatile*)(0x3cf00060))) | 
|  | 291 | +#define PDAT3         (*((uint32_t volatile*)(0x3cf00064))) | 
|  | 292 | +#define PCON4         (*((uint32_t volatile*)(0x3cf00080))) | 
|  | 293 | +#define PDAT4         (*((uint32_t volatile*)(0x3cf00084))) | 
|  | 294 | +#define PCON5         (*((uint32_t volatile*)(0x3cf000a0))) | 
|  | 295 | +#define PDAT5         (*((uint32_t volatile*)(0x3cf000a4))) | 
|  | 296 | +#define PCON6         (*((uint32_t volatile*)(0x3cf000c0))) | 
|  | 297 | +#define PDAT6         (*((uint32_t volatile*)(0x3cf000c4))) | 
|  | 298 | +#define PCON7         (*((uint32_t volatile*)(0x3cf000e0))) | 
|  | 299 | +#define PDAT7         (*((uint32_t volatile*)(0x3cf000e4))) | 
|  | 300 | +#define PCON8         (*((uint32_t volatile*)(0x3cf00100))) | 
|  | 301 | +#define PDAT8         (*((uint32_t volatile*)(0x3cf00104))) | 
|  | 302 | +#define PCON9         (*((uint32_t volatile*)(0x3cf00120))) | 
|  | 303 | +#define PDAT9         (*((uint32_t volatile*)(0x3cf00124))) | 
|  | 304 | +#define PCONA         (*((uint32_t volatile*)(0x3cf00140))) | 
|  | 305 | +#define PDATA         (*((uint32_t volatile*)(0x3cf00144))) | 
|  | 306 | +#define PCONB         (*((uint32_t volatile*)(0x3cf00160))) | 
|  | 307 | +#define PDATB         (*((uint32_t volatile*)(0x3cf00164))) | 
|  | 308 | +#define PCONC         (*((uint32_t volatile*)(0x3cf00180))) | 
|  | 309 | +#define PDATC         (*((uint32_t volatile*)(0x3cf00184))) | 
|  | 310 | +#define PCOND         (*((uint32_t volatile*)(0x3cf001a0))) | 
|  | 311 | +#define PDATD         (*((uint32_t volatile*)(0x3cf001a4))) | 
|  | 312 | +#define PCONE         (*((uint32_t volatile*)(0x3cf001c0))) | 
|  | 313 | +#define PDATE         (*((uint32_t volatile*)(0x3cf001c4))) | 
|  | 314 | +#define PCONF         (*((uint32_t volatile*)(0x3cf001e0))) | 
|  | 315 | +#define PDATF         (*((uint32_t volatile*)(0x3cf001e4))) | 
|  | 316 | +#define GPIOCMD       (*((uint32_t volatile*)(0x3cf00200))) | 
|  | 317 | + | 
|  | 318 | + | 
|  | 319 | +/////SPI///// | 
|  | 320 | +#define SPIBASE(i)      ((i) == 2 ? 0x3d200000 : \ | 
|  | 321 | +                         (i) == 1 ? 0x3ce00000 : \ | 
|  | 322 | +                                    0x3c300000) | 
|  | 323 | +#define SPICLKGATE(i)   ((i) == 2 ? 0x2f : \ | 
|  | 324 | +                         (i) == 1 ? 0x2b : \ | 
|  | 325 | +                                    0x22) | 
|  | 326 | +#define SPIDMA(i)       ((i) == 2 ? 0xd : \ | 
|  | 327 | +                         (i) == 1 ? 0xf : \ | 
|  | 328 | +                                    0x5) | 
|  | 329 | +#define SPICTRL(i)    (*((uint32_t volatile*)(SPIBASE(i)))) | 
|  | 330 | +#define SPISETUP(i)   (*((uint32_t volatile*)(SPIBASE(i) + 0x4))) | 
|  | 331 | +#define SPISTATUS(i)  (*((uint32_t volatile*)(SPIBASE(i) + 0x8))) | 
|  | 332 | +#define SPIUNKREG1(i) (*((uint32_t volatile*)(SPIBASE(i) + 0xc))) | 
|  | 333 | +#define SPITXDATA(i)  (*((uint32_t volatile*)(SPIBASE(i) + 0x10))) | 
|  | 334 | +#define SPIRXDATA(i)  (*((uint32_t volatile*)(SPIBASE(i) + 0x20))) | 
|  | 335 | +#define SPICLKDIV(i)  (*((uint32_t volatile*)(SPIBASE(i) + 0x30))) | 
|  | 336 | +#define SPIRXLIMIT(i) (*((uint32_t volatile*)(SPIBASE(i) + 0x34))) | 
|  | 337 | +#define SPIUNKREG3(i) (*((uint32_t volatile*)(SPIBASE(i) + 0x38))) | 
|  | 338 | + | 
|  | 339 | + | 
|  | 340 | +/////AES///// | 
|  | 341 | +#define AESCONTROL    (*((uint32_t volatile*)(0x38c00000))) | 
|  | 342 | +#define AESGO         (*((uint32_t volatile*)(0x38c00004))) | 
|  | 343 | +#define AESUNKREG0    (*((uint32_t volatile*)(0x38c00008))) | 
|  | 344 | +#define AESSTATUS     (*((uint32_t volatile*)(0x38c0000c))) | 
|  | 345 | +#define AESUNKREG1    (*((uint32_t volatile*)(0x38c00010))) | 
|  | 346 | +#define AESKEYLEN     (*((uint32_t volatile*)(0x38c00014))) | 
|  | 347 | +#define AESOUTSIZE    (*((uint32_t volatile*)(0x38c00018))) | 
|  | 348 | +#define AESOUTADDR    (*((void* volatile*)(0x38c00020))) | 
|  | 349 | +#define AESINSIZE     (*((uint32_t volatile*)(0x38c00024))) | 
|  | 350 | +#define AESINADDR     (*((const void* volatile*)(0x38c00028))) | 
|  | 351 | +#define AESAUXSIZE    (*((uint32_t volatile*)(0x38c0002c))) | 
|  | 352 | +#define AESAUXADDR    (*((void* volatile*)(0x38c00030))) | 
|  | 353 | +#define AESSIZE3      (*((uint32_t volatile*)(0x38c00034))) | 
|  | 354 | +#define AESKEY          ((uint32_t volatile*)(0x38c0004c)) | 
|  | 355 | +#define AESTYPE       (*((uint32_t volatile*)(0x38c0006c))) | 
|  | 356 | +#define AESIV           ((uint32_t volatile*)(0x38c00074)) | 
|  | 357 | +#define AESTYPE2      (*((uint32_t volatile*)(0x38c00088))) | 
|  | 358 | +#define AESUNKREG2    (*((uint32_t volatile*)(0x38c0008c))) | 
|  | 359 | + | 
|  | 360 | + | 
|  | 361 | +/////SHA1///// | 
|  | 362 | +#define SHA1CONFIG    (*((uint32_t volatile*)(0x38000000))) | 
|  | 363 | +#define SHA1RESET     (*((uint32_t volatile*)(0x38000004))) | 
|  | 364 | +#define SHA1RESULT      ((uint32_t volatile*)(0x38000020)) | 
|  | 365 | +#define SHA1DATAIN      ((uint32_t volatile*)(0x38000040)) | 
|  | 366 | + | 
|  | 367 | + | 
|  | 368 | +/////DMA///// | 
|  | 369 | +struct dma_lli | 
|  | 370 | +{ | 
|  | 371 | +    void* srcaddr; | 
|  | 372 | +    void* dstaddr; | 
|  | 373 | +    const struct dma_lli* nextlli; | 
|  | 374 | +    uint32_t control; | 
|  | 375 | +}; | 
|  | 376 | +#define DMACINTSTS(d)       (*((uint32_t volatile*)(0x38200000 + 0x1700000 * (d)))) | 
|  | 377 | +#define DMACINTTCSTS(d)     (*((uint32_t volatile*)(0x38200004 + 0x1700000 * (d)))) | 
|  | 378 | +#define DMACINTTCCLR(d)     (*((uint32_t volatile*)(0x38200008 + 0x1700000 * (d)))) | 
|  | 379 | +#define DMACINTERRSTS(d)    (*((uint32_t volatile*)(0x3820000c + 0x1700000 * (d)))) | 
|  | 380 | +#define DMACINTERRCLR(d)    (*((uint32_t volatile*)(0x38200010 + 0x1700000 * (d)))) | 
|  | 381 | +#define DMACRAWINTTCSTS(d)  (*((uint32_t volatile*)(0x38200014 + 0x1700000 * (d)))) | 
|  | 382 | +#define DMACRAWINTERRSTS(d) (*((uint32_t volatile*)(0x38200018 + 0x1700000 * (d)))) | 
|  | 383 | +#define DMACENABLEDCHANS(d) (*((uint32_t volatile*)(0x3820001c + 0x1700000 * (d)))) | 
|  | 384 | +#define DMACSOFTBREQ(d)     (*((uint32_t volatile*)(0x38200020 + 0x1700000 * (d)))) | 
|  | 385 | +#define DMACSOFTSREQ(d)     (*((uint32_t volatile*)(0x38200024 + 0x1700000 * (d)))) | 
|  | 386 | +#define DMACSOFTLBREQ(d)    (*((uint32_t volatile*)(0x38200028 + 0x1700000 * (d)))) | 
|  | 387 | +#define DMACSOFTLSREQ(d)    (*((uint32_t volatile*)(0x3820002c + 0x1700000 * (d)))) | 
|  | 388 | +#define DMACCONFIG(d)       (*((uint32_t volatile*)(0x38200030 + 0x1700000 * (d)))) | 
|  | 389 | +#define DMACSYNC(d)         (*((uint32_t volatile*)(0x38200034 + 0x1700000 * (d)))) | 
|  | 390 | +#define DMACCLLI(d, c)      (*((struct dma_lli volatile*)(0x38200100 + 0x1700000 * (d) + 0x20 * (c)))) | 
|  | 391 | +#define DMACCSRCADDR(d, c)  (*((const void* volatile*)(0x38200100 + 0x1700000 * (d) + 0x20 * (c)))) | 
|  | 392 | +#define DMACCDESTADDR(d, c) (*((void* volatile*)(0x38200104 + 0x1700000 * (d) + 0x20 * (c)))) | 
|  | 393 | +#define DMACCNEXTLLI(d, c)  (*((const void* volatile*)(0x38200108 + 0x1700000 * (d) + 0x20 * (c)))) | 
|  | 394 | +#define DMACCCONTROL(d, c)  (*((uint32_t volatile*)(0x3820010c + 0x1700000 * (d) + 0x20 * (c)))) | 
|  | 395 | +#define DMACCCONFIG(d, c)   (*((uint32_t volatile*)(0x38200110 + 0x1700000 * (d) + 0x20 * (c)))) | 
|  | 396 | +#define DMAC0INTSTS         (*((uint32_t volatile*)(0x38200000))) | 
|  | 397 | +#define DMAC0INTTCSTS       (*((uint32_t volatile*)(0x38200004))) | 
|  | 398 | +#define DMAC0INTTCCLR       (*((uint32_t volatile*)(0x38200008))) | 
|  | 399 | +#define DMAC0INTERRSTS      (*((uint32_t volatile*)(0x3820000c))) | 
|  | 400 | +#define DMAC0INTERRCLR      (*((uint32_t volatile*)(0x38200010))) | 
|  | 401 | +#define DMAC0RAWINTTCSTS    (*((uint32_t volatile*)(0x38200014))) | 
|  | 402 | +#define DMAC0RAWINTERRSTS   (*((uint32_t volatile*)(0x38200018))) | 
|  | 403 | +#define DMAC0ENABLEDCHANS   (*((uint32_t volatile*)(0x3820001c))) | 
|  | 404 | +#define DMAC0SOFTBREQ       (*((uint32_t volatile*)(0x38200020))) | 
|  | 405 | +#define DMAC0SOFTSREQ       (*((uint32_t volatile*)(0x38200024))) | 
|  | 406 | +#define DMAC0SOFTLBREQ      (*((uint32_t volatile*)(0x38200028))) | 
|  | 407 | +#define DMAC0SOFTLSREQ      (*((uint32_t volatile*)(0x3820002c))) | 
|  | 408 | +#define DMAC0CONFIG         (*((uint32_t volatile*)(0x38200030))) | 
|  | 409 | +#define DMAC0SYNC           (*((uint32_t volatile*)(0x38200034))) | 
|  | 410 | +#define DMAC0CLLI(c)        (*((struct dma_lli volatile*)(0x38200100 + 0x20 * (c)))) | 
|  | 411 | +#define DMAC0CSRCADDR(c)    (*((const void* volatile*)(0x38200100 + 0x20 * (c)))) | 
|  | 412 | +#define DMAC0CDESTADDR(c)   (*((void* volatile*)(0x38200104 + 0x20 * (c)))) | 
|  | 413 | +#define DMAC0CNEXTLLI(c)    (*((const void* volatile*)(0x38200108 + 0x20 * (c)))) | 
|  | 414 | +#define DMAC0CCONTROL(c)    (*((uint32_t volatile*)(0x3820010c + 0x20 * (c)))) | 
|  | 415 | +#define DMAC0CCONFIG(c)     (*((uint32_t volatile*)(0x38200110 + 0x20 * (c)))) | 
|  | 416 | +#define DMAC0C0LLI          (*((struct dma_lli volatile*)(0x38200100))) | 
|  | 417 | +#define DMAC0C0SRCADDR      (*((const void* volatile*)(0x38200100))) | 
|  | 418 | +#define DMAC0C0DESTADDR     (*((void* volatile*)(0x38200104))) | 
|  | 419 | +#define DMAC0C0NEXTLLI      (*((const struct dma_lli* volatile*)(0x38200108))) | 
|  | 420 | +#define DMAC0C0CONTROL      (*((uint32_t volatile*)(0x3820010c))) | 
|  | 421 | +#define DMAC0C0CONFIG       (*((uint32_t volatile*)(0x38200110))) | 
|  | 422 | +#define DMAC0C1LLI          (*((struct dma_lli volatile*)(0x38200120))) | 
|  | 423 | +#define DMAC0C1SRCADDR      (*((const void* volatile*)(0x38200120))) | 
|  | 424 | +#define DMAC0C1DESTADDR     (*((void* volatile*)(0x38200124))) | 
|  | 425 | +#define DMAC0C1NEXTLLI      (*((const struct dma_lli* volatile*)(0x38200128))) | 
|  | 426 | +#define DMAC0C1CONTROL      (*((uint32_t volatile*)(0x3820012c))) | 
|  | 427 | +#define DMAC0C1CONFIG       (*((uint32_t volatile*)(0x38200130))) | 
|  | 428 | +#define DMAC0C2LLI          (*((struct dma_lli volatile*)(0x38200140))) | 
|  | 429 | +#define DMAC0C2SRCADDR      (*((const void* volatile*)(0x38200140))) | 
|  | 430 | +#define DMAC0C2DESTADDR     (*((void* volatile*)(0x38200144))) | 
|  | 431 | +#define DMAC0C2NEXTLLI      (*((const struct dma_lli* volatile*)(0x38200148))) | 
|  | 432 | +#define DMAC0C2CONTROL      (*((uint32_t volatile*)(0x3820014c))) | 
|  | 433 | +#define DMAC0C2CONFIG       (*((uint32_t volatile*)(0x38200150))) | 
|  | 434 | +#define DMAC0C3LLI          (*((struct dma_lli volatile*)(0x38200160))) | 
|  | 435 | +#define DMAC0C3SRCADDR      (*((const void* volatile*)(0x38200160))) | 
|  | 436 | +#define DMAC0C3DESTADDR     (*((void* volatile*)(0x38200164))) | 
|  | 437 | +#define DMAC0C3NEXTLLI      (*((const struct dma_lli* volatile*)(0x38200168))) | 
|  | 438 | +#define DMAC0C3CONTROL      (*((uint32_t volatile*)(0x3820016c))) | 
|  | 439 | +#define DMAC0C3CONFIG       (*((uint32_t volatile*)(0x38200170))) | 
|  | 440 | +#define DMAC0C4LLI          (*((struct dma_lli volatile*)(0x38200180))) | 
|  | 441 | +#define DMAC0C4SRCADDR      (*((const void* volatile*)(0x38200180))) | 
|  | 442 | +#define DMAC0C4DESTADDR     (*((void* volatile*)(0x38200184))) | 
|  | 443 | +#define DMAC0C4NEXTLLI      (*((const struct dma_lli* volatile*)(0x38200188))) | 
|  | 444 | +#define DMAC0C4CONTROL      (*((uint32_t volatile*)(0x3820018c))) | 
|  | 445 | +#define DMAC0C4CONFIG       (*((uint32_t volatile*)(0x38200190))) | 
|  | 446 | +#define DMAC0C5LLI          (*((struct dma_lli volatile*)(0x382001a0))) | 
|  | 447 | +#define DMAC0C5SRCADDR      (*((const void* volatile*)(0x382001a0))) | 
|  | 448 | +#define DMAC0C5DESTADDR     (*((void* volatile*)(0x382001a4))) | 
|  | 449 | +#define DMAC0C5NEXTLLI      (*((const struct dma_lli* volatile*)(0x382001a8))) | 
|  | 450 | +#define DMAC0C5CONTROL      (*((uint32_t volatile*)(0x382001ac))) | 
|  | 451 | +#define DMAC0C5CONFIG       (*((uint32_t volatile*)(0x382001b0))) | 
|  | 452 | +#define DMAC0C6LLI          (*((struct dma_lli volatile*)(0x382001c0))) | 
|  | 453 | +#define DMAC0C6SRCADDR      (*((const void* volatile*)(0x382001c0))) | 
|  | 454 | +#define DMAC0C6DESTADDR     (*((void* volatile*)(0x382001c4))) | 
|  | 455 | +#define DMAC0C6NEXTLLI      (*((const struct dma_lli* volatile*)(0x382001c8))) | 
|  | 456 | +#define DMAC0C6CONTROL      (*((uint32_t volatile*)(0x382001cc))) | 
|  | 457 | +#define DMAC0C6CONFIG       (*((uint32_t volatile*)(0x382001d0))) | 
|  | 458 | +#define DMAC0C7LLI          (*((struct dma_lli volatile*)(0x382001e0))) | 
|  | 459 | +#define DMAC0C7SRCADDR      (*((const void* volatile*)(0x382001e0))) | 
|  | 460 | +#define DMAC0C7DESTADDR     (*((void* volatile*)(0x382001e4))) | 
|  | 461 | +#define DMAC0C7NEXTLLI      (*((const struct dma_lli* volatile*)(0x382001e8))) | 
|  | 462 | +#define DMAC0C7CONTROL      (*((uint32_t volatile*)(0x382001ec))) | 
|  | 463 | +#define DMAC0C7CONFIG       (*((uint32_t volatile*)(0x382001f0))) | 
|  | 464 | +#define DMAC1INTSTS         (*((uint32_t volatile*)(0x39900000))) | 
|  | 465 | +#define DMAC1INTTCSTS       (*((uint32_t volatile*)(0x39900004))) | 
|  | 466 | +#define DMAC1INTTCCLR       (*((uint32_t volatile*)(0x39900008))) | 
|  | 467 | +#define DMAC1INTERRSTS      (*((uint32_t volatile*)(0x3990000c))) | 
|  | 468 | +#define DMAC1INTERRCLR      (*((uint32_t volatile*)(0x39900010))) | 
|  | 469 | +#define DMAC1RAWINTTCSTS    (*((uint32_t volatile*)(0x39900014))) | 
|  | 470 | +#define DMAC1RAWINTERRSTS   (*((uint32_t volatile*)(0x39900018))) | 
|  | 471 | +#define DMAC1ENABLEDCHANS   (*((uint32_t volatile*)(0x3990001c))) | 
|  | 472 | +#define DMAC1SOFTBREQ       (*((uint32_t volatile*)(0x39900020))) | 
|  | 473 | +#define DMAC1SOFTSREQ       (*((uint32_t volatile*)(0x39900024))) | 
|  | 474 | +#define DMAC1SOFTLBREQ      (*((uint32_t volatile*)(0x39900028))) | 
|  | 475 | +#define DMAC1SOFTLSREQ      (*((uint32_t volatile*)(0x3990002c))) | 
|  | 476 | +#define DMAC1CONFIG         (*((uint32_t volatile*)(0x39900030))) | 
|  | 477 | +#define DMAC1SYNC           (*((uint32_t volatile*)(0x39900034))) | 
|  | 478 | +#define DMAC1CLLI(c)        (*((struct dma_lli volatile*)(0x39900100 + 0x20 * (c)))) | 
|  | 479 | +#define DMAC1CSRCADDR(c)    (*((const void* volatile*)(0x39900100 + 0x20 * (c)))) | 
|  | 480 | +#define DMAC1CDESTADDR(c)   (*((void* volatile*)(0x39900104 + 0x20 * (c)))) | 
|  | 481 | +#define DMAC1CNEXTLLI(c)    (*((const void* volatile*)(0x39900108 + 0x20 * (c)))) | 
|  | 482 | +#define DMAC1CCONTROL(c)    (*((uint32_t volatile*)(0x3990010c + 0x20 * (c)))) | 
|  | 483 | +#define DMAC1CCONFIG(c)     (*((uint32_t volatile*)(0x39900110 + 0x20 * (c)))) | 
|  | 484 | +#define DMAC1C0LLI          (*((struct dma_lli volatile*)(0x39900100))) | 
|  | 485 | +#define DMAC1C0SRCADDR      (*((const void* volatile*)(0x39900100))) | 
|  | 486 | +#define DMAC1C0DESTADDR     (*((void* volatile*)(0x39900104))) | 
|  | 487 | +#define DMAC1C0NEXTLLI      (*((const struct dma_lli* volatile*)(0x39900108))) | 
|  | 488 | +#define DMAC1C0CONTROL      (*((uint32_t volatile*)(0x3990010c))) | 
|  | 489 | +#define DMAC1C0CONFIG       (*((uint32_t volatile*)(0x39900110))) | 
|  | 490 | +#define DMAC1C1LLI          (*((struct dma_lli volatile*)(0x39900120))) | 
|  | 491 | +#define DMAC1C1SRCADDR      (*((const void* volatile*)(0x39900120))) | 
|  | 492 | +#define DMAC1C1DESTADDR     (*((void* volatile*)(0x39900124))) | 
|  | 493 | +#define DMAC1C1NEXTLLI      (*((const struct dma_lli* volatile*)(0x39900128))) | 
|  | 494 | +#define DMAC1C1CONTROL      (*((uint32_t volatile*)(0x3990012c))) | 
|  | 495 | +#define DMAC1C1CONFIG       (*((uint32_t volatile*)(0x39900130))) | 
|  | 496 | +#define DMAC1C2LLI          (*((struct dma_lli volatile*)(0x39900140))) | 
|  | 497 | +#define DMAC1C2SRCADDR      (*((const void* volatile*)(0x39900140))) | 
|  | 498 | +#define DMAC1C2DESTADDR     (*((void* volatile*)(0x39900144))) | 
|  | 499 | +#define DMAC1C2NEXTLLI      (*((const struct dma_lli* volatile*)(0x39900148))) | 
|  | 500 | +#define DMAC1C2CONTROL      (*((uint32_t volatile*)(0x3990014c))) | 
|  | 501 | +#define DMAC1C2CONFIG       (*((uint32_t volatile*)(0x39900150))) | 
|  | 502 | +#define DMAC1C3LLI          (*((struct dma_lli volatile*)(0x39900160))) | 
|  | 503 | +#define DMAC1C3SRCADDR      (*((const void* volatile*)(0x39900160))) | 
|  | 504 | +#define DMAC1C3DESTADDR     (*((void* volatile*)(0x39900164))) | 
|  | 505 | +#define DMAC1C3NEXTLLI      (*((volatile void**)(0x39900168))) | 
|  | 506 | +#define DMAC1C3CONTROL      (*((uint32_t volatile*)(0x3990016c))) | 
|  | 507 | +#define DMAC1C3CONFIG       (*((uint32_t volatile*)(0x39900170))) | 
|  | 508 | +#define DMAC1C4LLI          (*((struct dma_lli volatile*)(0x39900180))) | 
|  | 509 | +#define DMAC1C4SRCADDR      (*((const void* volatile*)(0x39900180))) | 
|  | 510 | +#define DMAC1C4DESTADDR     (*((void* volatile*)(0x39900184))) | 
|  | 511 | +#define DMAC1C4NEXTLLI      (*((const struct dma_lli* volatile*)(0x39900188))) | 
|  | 512 | +#define DMAC1C4CONTROL      (*((uint32_t volatile*)(0x3990018c))) | 
|  | 513 | +#define DMAC1C4CONFIG       (*((uint32_t volatile*)(0x39900190))) | 
|  | 514 | +#define DMAC1C5LLI          (*((struct dma_lli volatile*)(0x399001a0))) | 
|  | 515 | +#define DMAC1C5SRCADDR      (*((const void* volatile*)(0x399001a0))) | 
|  | 516 | +#define DMAC1C5DESTADDR     (*((void* volatile*)(0x399001a4))) | 
|  | 517 | +#define DMAC1C5NEXTLLI      (*((const struct dma_lli* volatile*)(0x399001a8))) | 
|  | 518 | +#define DMAC1C5CONTROL      (*((uint32_t volatile*)(0x399001ac))) | 
|  | 519 | +#define DMAC1C5CONFIG       (*((uint32_t volatile*)(0x399001b0))) | 
|  | 520 | +#define DMAC1C6LLI          (*((struct dma_lli volatile*)(0x399001c0))) | 
|  | 521 | +#define DMAC1C6SRCADDR      (*((const void* volatile*)(0x399001c0))) | 
|  | 522 | +#define DMAC1C6DESTADDR     (*((void* volatile*)(0x399001c4))) | 
|  | 523 | +#define DMAC1C6NEXTLLI      (*((const struct dma_lli* volatile*)(0x399001c8))) | 
|  | 524 | +#define DMAC1C6CONTROL      (*((uint32_t volatile*)(0x399001cc))) | 
|  | 525 | +#define DMAC1C6CONFIG       (*((uint32_t volatile*)(0x399001d0))) | 
|  | 526 | +#define DMAC1C7LLI          (*((struct dma_lli volatile*)(0x399001e0))) | 
|  | 527 | +#define DMAC1C7SRCADDR      (*((const void* volatile*)(0x399001e0))) | 
|  | 528 | +#define DMAC1C7DESTADDR     (*((void* volatile*)(0x399001e4))) | 
|  | 529 | +#define DMAC1C7NEXTLLI      (*((const struct dma_lli* volatile*)(0x399001e8))) | 
|  | 530 | +#define DMAC1C7CONTROL      (*((uint32_t volatile*)(0x399001ec))) | 
|  | 531 | +#define DMAC1C7CONFIG       (*((uint32_t volatile*)(0x399001f0))) | 
|  | 532 | + | 
|  | 533 | + | 
|  | 534 | +/////LCD///// | 
|  | 535 | +#define LCDCON    (*((uint32_t volatile*)(0x38300000))) | 
|  | 536 | +#define LCDWCMD   (*((uint32_t volatile*)(0x38300004))) | 
|  | 537 | +#define LCDSTATUS (*((uint32_t volatile*)(0x3830001c))) | 
|  | 538 | +#define LCDPHTIME (*((uint32_t volatile*)(0x38300010))) | 
|  | 539 | +#define LCDWDATA  (*((uint32_t volatile*)(0x38300040))) | 
|  | 540 | + | 
|  | 541 | +/////ATA///// | 
|  | 542 | +#define ATA_CONTROL         (*((uint32_t volatile*)(0x38700000))) | 
|  | 543 | +#define ATA_STATUS          (*((uint32_t volatile*)(0x38700004))) | 
|  | 544 | +#define ATA_COMMAND         (*((uint32_t volatile*)(0x38700008))) | 
|  | 545 | +#define ATA_SWRST           (*((uint32_t volatile*)(0x3870000c))) | 
|  | 546 | +#define ATA_IRQ             (*((uint32_t volatile*)(0x38700010))) | 
|  | 547 | +#define ATA_IRQ_MASK        (*((uint32_t volatile*)(0x38700014))) | 
|  | 548 | +#define ATA_CFG             (*((uint32_t volatile*)(0x38700018))) | 
|  | 549 | +#define ATA_MDMA_TIME       (*((uint32_t volatile*)(0x38700028))) | 
|  | 550 | +#define ATA_PIO_TIME        (*((uint32_t volatile*)(0x3870002c))) | 
|  | 551 | +#define ATA_UDMA_TIME       (*((uint32_t volatile*)(0x38700030))) | 
|  | 552 | +#define ATA_XFR_NUM         (*((uint32_t volatile*)(0x38700034))) | 
|  | 553 | +#define ATA_XFR_CNT         (*((uint32_t volatile*)(0x38700038))) | 
|  | 554 | +#define ATA_TBUF_START      (*((void* volatile*)(0x3870003c))) | 
|  | 555 | +#define ATA_TBUF_SIZE       (*((uint32_t volatile*)(0x38700040))) | 
|  | 556 | +#define ATA_SBUF_START      (*((void* volatile*)(0x38700044))) | 
|  | 557 | +#define ATA_SBUF_SIZE       (*((uint32_t volatile*)(0x38700048))) | 
|  | 558 | +#define ATA_CADR_TBUF       (*((void* volatile*)(0x3870004c))) | 
|  | 559 | +#define ATA_CADR_SBUF       (*((void* volatile*)(0x38700050))) | 
|  | 560 | +#define ATA_PIO_DTR         (*((uint32_t volatile*)(0x38700054))) | 
|  | 561 | +#define ATA_PIO_FED         (*((uint32_t volatile*)(0x38700058))) | 
|  | 562 | +#define ATA_PIO_SCR         (*((uint32_t volatile*)(0x3870005c))) | 
|  | 563 | +#define ATA_PIO_LLR         (*((uint32_t volatile*)(0x38700060))) | 
|  | 564 | +#define ATA_PIO_LMR         (*((uint32_t volatile*)(0x38700064))) | 
|  | 565 | +#define ATA_PIO_LHR         (*((uint32_t volatile*)(0x38700068))) | 
|  | 566 | +#define ATA_PIO_DVR         (*((uint32_t volatile*)(0x3870006c))) | 
|  | 567 | +#define ATA_PIO_CSD         (*((uint32_t volatile*)(0x38700070))) | 
|  | 568 | +#define ATA_PIO_DAD         (*((uint32_t volatile*)(0x38700074))) | 
|  | 569 | +#define ATA_PIO_READY       (*((uint32_t volatile*)(0x38700078))) | 
|  | 570 | +#define ATA_PIO_RDATA       (*((uint32_t volatile*)(0x3870007c))) | 
|  | 571 | +#define ATA_BUS_FIFO_STATUS (*((uint32_t volatile*)(0x38700080))) | 
|  | 572 | +#define ATA_FIFO_STATUS     (*((uint32_t volatile*)(0x38700084))) | 
|  | 573 | +#define ATA_DMA_ADDR        (*((void* volatile*)(0x38700088))) | 
|  | 574 | + | 
|  | 575 | + | 
|  | 576 | +/////CLICKWHEEL///// | 
|  | 577 | +#define WHEEL00      (*((uint32_t volatile*)(0x3C200000))) | 
|  | 578 | +#define WHEEL04      (*((uint32_t volatile*)(0x3C200004))) | 
|  | 579 | +#define WHEEL08      (*((uint32_t volatile*)(0x3C200008))) | 
|  | 580 | +#define WHEEL0C      (*((uint32_t volatile*)(0x3C20000C))) | 
|  | 581 | +#define WHEEL10      (*((uint32_t volatile*)(0x3C200010))) | 
|  | 582 | +#define WHEELINT     (*((uint32_t volatile*)(0x3C200014))) | 
|  | 583 | +#define WHEELRX      (*((uint32_t volatile*)(0x3C200018))) | 
|  | 584 | +#define WHEELTX      (*((uint32_t volatile*)(0x3C20001C))) | 
|  | 585 | + | 
|  | 586 | + | 
|  | 587 | +/////CLOCK GATES///// | 
|  | 588 | +#define CLOCKGATE_USB_1 2 | 
|  | 589 | +#define CLOCKGATE_USB_2 35 | 
|  | 590 | + | 
|  | 591 | + | 
|  | 592 | +/////INTERRUPTS///// | 
|  | 593 | +#define IRQ_TIMER 8 | 
|  | 594 | +#define IRQ_USB_FUNC 19 | 
|  | 595 | +#define IRQ_DMAC(d) 16 + d | 
|  | 596 | +#define IRQ_DMAC0 16 | 
|  | 597 | +#define IRQ_DMAC1 17 | 
|  | 598 | +#define IRQ_WHEEL 23 | 
|  | 599 | +#define IRQ_ATA 29 | 
|  | 600 | + | 
|  | 601 | + | 
|  | 602 | +#endif |