hw_emifa2.h 26 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884
  1. /**
  2. * \file hw_emifa2.h
  3. *
  4. * \brief EMIFA2 register definitions
  5. */
  6. /*
  7. * Copyright (C) 2010 Texas Instruments Incorporated - http://www.ti.com/
  8. */
  9. /*
  10. * Redistribution and use in source and binary forms, with or without
  11. * modification, are permitted provided that the following conditions
  12. * are met:
  13. *
  14. * Redistributions of source code must retain the above copyright
  15. * notice, this list of conditions and the following disclaimer.
  16. *
  17. * Redistributions in binary form must reproduce the above copyright
  18. * notice, this list of conditions and the following disclaimer in the
  19. * documentation and/or other materials provided with the
  20. * distribution.
  21. *
  22. * Neither the name of Texas Instruments Incorporated nor the names of
  23. * its contributors may be used to endorse or promote products derived
  24. * from this software without specific prior written permission.
  25. *
  26. * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
  27. * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
  28. * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
  29. * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
  30. * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
  31. * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
  32. * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
  33. * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
  34. * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
  35. * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
  36. * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  37. *
  38. */
  39. #ifndef _HW_EMIFA_H_
  40. #define _HW_EMIFA_H_
  41. #ifdef __cplusplus
  42. extern "C" {
  43. #endif
  44. #define EMIFA_MIDR (0x0)
  45. #define EMIFA_AWCC (0x4)
  46. #define EMIFA_SDCR (0x8)
  47. #define EMIFA_SDRCR (0xC)
  48. #define EMIFA_CE2CFG (0x10)
  49. #define EMIFA_CE3CFG (0x14)
  50. #define EMIFA_CE4CFG (0x18)
  51. #define EMIFA_CE5CFG (0x1C)
  52. #define EMIFA_SDTIMR (0x20)
  53. #define EMIFA_SDSRETR (0x3C)
  54. #define EMIFA_INTRAW (0x40)
  55. #define EMIFA_INTMSK (0x44)
  56. #define EMIFA_INTMSKSET (0x48)
  57. #define EMIFA_INTMSKCLR (0x4C)
  58. #define EMIFA_NANDFCR (0x60)
  59. #define EMIFA_NANDFSR (0x64)
  60. #define EMIFA_PMCR (0x68)
  61. #define EMIFA_NANDF1ECC (0x70)
  62. #define EMIFA_NANDF2ECC (0x74)
  63. #define EMIFA_NANDF3ECC (0x78)
  64. #define EMIFA_NANDF4ECC (0x7C)
  65. #define EMIFA_NAND4BITECCLOAD (0xBC)
  66. #define EMIFA_NAND4BITECC1 (0xC0)
  67. #define EMIFA_NAND4BITECC2 (0xC4)
  68. #define EMIFA_NAND4BITECC3 (0xC8)
  69. #define EMIFA_NAND4BITECC4 (0xCC)
  70. #define EMIFA_NANDERRADD1 (0xD0)
  71. #define EMIFA_NANDERRADD2 (0xD4)
  72. #define EMIFA_NANDERRVAL1 (0xD8)
  73. #define EMIFA_NANDERRVAL2 (0xDC)
  74. /**************************************************************************\
  75. * Field Definition Macros
  76. \**************************************************************************/
  77. /* REVID */
  78. #define EMIFA_MIDR_REV (0xFFFFFFFFu)
  79. #define EMIFA_REVID_REV_SHIFT (0x00000000u)
  80. /* AWCC */
  81. #define EMIFA_AWCC_WP1 (0x20000000u)
  82. #define EMIFA_AWCC_WP1_SHIFT (0x0000001Du)
  83. #define EMIFA_AWCC_WP0 (0x10000000u)
  84. #define EMIFA_AWCC_WP0_SHIFT (0x0000001Cu)
  85. #define EMIFA_AWCC_CS5_WAIT (0x00C00000u)
  86. #define EMIFA_AWCC_CS5_WAIT_SHIFT (0x00000016u)
  87. #define EMIFA_AWCC_CS4_WAIT (0x00300000u)
  88. #define EMIFA_AWCC_CS4_WAIT_SHIFT (0x00000014u)
  89. #define EMIFA_AWCC_CS3_WAIT (0x000C0000u)
  90. #define EMIFA_AWCC_CS3_WAIT_SHIFT (0x00000012u)
  91. #define EMIFA_AWCC_CS2_WAIT (0x00030000u)
  92. #define EMIFA_AWCC_CS2_WAIT_SHIFT (0x00000010u)
  93. #define EMIFA_AWCC_MAX_EXT_WAIT (0x000000FFu)
  94. #define EMIFA_AWCC_MAX_EXT_WAIT_SHIFT (0x00000000u)
  95. /* SDCR */
  96. #define EMIFA_SDCR_SR (0x80000000u)
  97. #define EMIFA_SDCR_SR_SHIFT (0x0000001Fu)
  98. #define EMIFA_SDCR_PD (0x40000000u)
  99. #define EMIFA_SDCR_PD_SHIFT (0x0000001Eu)
  100. #define EMIFA_SDCR_PDWR (0x20000000u)
  101. #define EMIFA_SDCR_PDWR_SHIFT (0x0000001Du)
  102. #define EMIFA_SDCR_NM (0x00004000u)
  103. #define EMIFA_SDCR_NM_SHIFT (0x0000000Eu)
  104. #define EMIFA_SDCR_CL (0x00000E00u)
  105. #define EMIFA_SDCR_CL_SHIFT (0x00000009u)
  106. /*----CL Tokens----*/
  107. #define EMIFA_SDCR_CL_CL2 (0x00000002u)
  108. #define EMIFA_SDCR_CL_CL3 (0x00000003u)
  109. #define EMIFA_SDCR_BIT11_9LOCK (0x00000100u)
  110. #define EMIFA_SDCR_BIT11_9LOCK_SHIFT (0x00000008u)
  111. #define EMIFA_SDCR_IBANK (0x00000070u)
  112. #define EMIFA_SDCR_IBANK_SHIFT (0x00000004u)
  113. /*----IBANK Tokens----*/
  114. #define EMIFA_SDCR_IBANK_1BANK (0x00000000u)
  115. #define EMIFA_SDCR_IBANK_2BANK (0x00000001u)
  116. #define EMIFA_SDCR_IBANK_4BANK (0x00000002u)
  117. #define EMIFA_SDCR_PAGESIZE (0x00000007u)
  118. #define EMIFA_SDCR_PAGESIZE_SHIFT (0x00000000u)
  119. /*----PAGESIZE Tokens----*/
  120. #define EMIFA_SDCR_PAGESIZE_256WORD_PAGE (0x00000000u)
  121. #define EMIFA_SDCR_PAGESIZE_512WORD_PAGE (0x00000001u)
  122. #define EMIFA_SDCR_PAGESIZE_1024WORD_PAGE (0x00000002u)
  123. #define EMIFA_SDCR_PAGESIZE_2048WORD_PAGE (0x00000003u)
  124. /* SDRCR */
  125. #define EMIFA_SDRCR_RR (0x00001FFFu)
  126. #define EMIFA_SDRCR_RR_SHIFT (0x00000000u)
  127. /* CE2CFG */
  128. #define EMIFA_CE2CFG_SS (0x80000000u)
  129. #define EMIFA_CE2CFG_SS_SHIFT (0x0000001Fu)
  130. #define EMIFA_CE2CFG_EW (0x40000000u)
  131. #define EMIFA_CE2CFG_EW_SHIFT (0x0000001Eu)
  132. #define EMIFA_CE2CFG_W_SETUP (0x3C000000u)
  133. #define EMIFA_CE2CFG_W_SETUP_SHIFT (0x0000001Au)
  134. #define EMIFA_CE2CFG_W_STROBE (0x03F00000u)
  135. #define EMIFA_CE2CFG_W_STROBE_SHIFT (0x00000014u)
  136. #define EMIFA_CE2CFG_W_HOLD (0x000E0000u)
  137. #define EMIFA_CE2CFG_W_HOLD_SHIFT (0x00000011u)
  138. #define EMIFA_CE2CFG_R_SETUP (0x0001E000u)
  139. #define EMIFA_CE2CFG_R_SETUP_SHIFT (0x0000000Du)
  140. #define EMIFA_CE2CFG_R_STROBE (0x00001F80u)
  141. #define EMIFA_CE2CFG_R_STROBE_SHIFT (0x00000007u)
  142. #define EMIFA_CE2CFG_R_HOLD (0x00000070u)
  143. #define EMIFA_CE2CFG_R_HOLD_SHIFT (0x00000004u)
  144. #define EMIFA_CE2CFG_TA (0x0000000Cu)
  145. #define EMIFA_CE2CFG_TA_SHIFT (0x00000002u)
  146. #define EMIFA_CE2CFG_ASIZE (0x00000003u)
  147. #define EMIFA_CE2CFG_ASIZE_SHIFT (0x00000000u)
  148. /* CE3CFG */
  149. #define EMIFA_CE3CFG_SS (0x80000000u)
  150. #define EMIFA_CE3CFG_SS_SHIFT (0x0000001Fu)
  151. #define EMIFA_CE3CFG_EW (0x40000000u)
  152. #define EMIFA_CE3CFG_EW_SHIFT (0x0000001Eu)
  153. #define EMIFA_CE3CFG_W_SETUP (0x3C000000u)
  154. #define EMIFA_CE3CFG_W_SETUP_SHIFT (0x0000001Au)
  155. #define EMIFA_CE3CFG_W_STROBE (0x03F00000u)
  156. #define EMIFA_CE3CFG_W_STROBE_SHIFT (0x00000014u)
  157. #define EMIFA_CE3CFG_W_HOLD (0x000E0000u)
  158. #define EMIFA_CE3CFG_W_HOLD_SHIFT (0x00000011u)
  159. #define EMIFA_CE3CFG_R_SETUP (0x0001E000u)
  160. #define EMIFA_CE3CFG_R_SETUP_SHIFT (0x0000000Du)
  161. #define EMIFA_CE3CFG_R_STROBE (0x00001F80u)
  162. #define EMIFA_CE3CFG_R_STROBE_SHIFT (0x00000007u)
  163. #define EMIFA_CE3CFG_R_HOLD (0x00000070u)
  164. #define EMIFA_CE3CFG_R_HOLD_SHIFT (0x00000004u)
  165. #define EMIFA_CE3CFG_TA (0x0000000Cu)
  166. #define EMIFA_CE3CFG_TA_SHIFT (0x00000002u)
  167. #define EMIFA_CE3CFG_ASIZE (0x00000003u)
  168. #define EMIFA_CE3CFG_ASIZE_SHIFT (0x00000000u)
  169. /* CE4CFG */
  170. #define EMIFA_CE4CFG_SS (0x80000000u)
  171. #define EMIFA_CE4CFG_SS_SHIFT (0x0000001Fu)
  172. #define EMIFA_CE4CFG_EW (0x40000000u)
  173. #define EMIFA_CE4CFG_EW_SHIFT (0x0000001Eu)
  174. #define EMIFA_CE4CFG_W_SETUP (0x3C000000u)
  175. #define EMIFA_CE4CFG_W_SETUP_SHIFT (0x0000001Au)
  176. #define EMIFA_CE4CFG_W_STROBE (0x03F00000u)
  177. #define EMIFA_CE4CFG_W_STROBE_SHIFT (0x00000014u)
  178. #define EMIFA_CE4CFG_W_HOLD (0x000E0000u)
  179. #define EMIFA_CE4CFG_W_HOLD_SHIFT (0x00000011u)
  180. #define EMIFA_CE4CFG_R_SETUP (0x0001E000u)
  181. #define EMIFA_CE4CFG_R_SETUP_SHIFT (0x0000000Du)
  182. #define EMIFA_CE4CFG_R_STROBE (0x00001F80u)
  183. #define EMIFA_CE4CFG_R_STROBE_SHIFT (0x00000007u)
  184. #define EMIFA_CE4CFG_R_HOLD (0x00000070u)
  185. #define EMIFA_CE4CFG_R_HOLD_SHIFT (0x00000004u)
  186. #define EMIFA_CE4CFG_TA (0x0000000Cu)
  187. #define EMIFA_CE4CFG_TA_SHIFT (0x00000002u)
  188. #define EMIFA_CE4CFG_ASIZE (0x00000003u)
  189. #define EMIFA_CE4CFG_ASIZE_SHIFT (0x00000000u)
  190. /* CE5CFG */
  191. #define EMIFA_CE5CFG_SS (0x80000000u)
  192. #define EMIFA_CE5CFG_SS_SHIFT (0x0000001Fu)
  193. #define EMIFA_CE5CFG_EW (0x40000000u)
  194. #define EMIFA_CE5CFG_EW_SHIFT (0x0000001Eu)
  195. #define EMIFA_CE5CFG_W_SETUP (0x3C000000u)
  196. #define EMIFA_CE5CFG_W_SETUP_SHIFT (0x0000001Au)
  197. #define EMIFA_CE5CFG_W_STROBE (0x03F00000u)
  198. #define EMIFA_CE5CFG_W_STROBE_SHIFT (0x00000014u)
  199. #define EMIFA_CE5CFG_W_HOLD (0x000E0000u)
  200. #define EMIFA_CE5CFG_W_HOLD_SHIFT (0x00000011u)
  201. #define EMIFA_CE5CFG_R_SETUP (0x0001E000u)
  202. #define EMIFA_CE5CFG_R_SETUP_SHIFT (0x0000000Du)
  203. #define EMIFA_CE5CFG_R_STROBE (0x00001F80u)
  204. #define EMIFA_CE5CFG_R_STROBE_SHIFT (0x00000007u)
  205. #define EMIFA_CE5CFG_R_HOLD (0x00000070u)
  206. #define EMIFA_CE5CFG_R_HOLD_SHIFT (0x00000004u)
  207. #define EMIFA_CE5CFG_TA (0x0000000Cu)
  208. #define EMIFA_CE5CFG_TA_SHIFT (0x00000002u)
  209. #define EMIFA_CE5CFG_ASIZE (0x00000003u)
  210. #define EMIFA_CE5CFG_ASIZE_SHIFT (0x00000000u)
  211. /* SDTIMR */
  212. #define EMIFA_SDTIMR_T_RFC (0xF8000000u)
  213. #define EMIFA_SDTIMR_T_RFC_SHIFT (0x0000001Bu)
  214. #define EMIFA_SDTIMR_T_RP (0x07000000u)
  215. #define EMIFA_SDTIMR_T_RP_SHIFT (0x00000018u)
  216. #define EMIFA_SDTIMR_T_RCD (0x00700000u)
  217. #define EMIFA_SDTIMR_T_RCD_SHIFT (0x00000014u)
  218. #define EMIFA_SDTIMR_T_WR (0x00070000u)
  219. #define EMIFA_SDTIMR_T_WR_SHIFT (0x00000010u)
  220. #define EMIFA_SDTIMR_T_RAS (0x0000F000u)
  221. #define EMIFA_SDTIMR_T_RAS_SHIFT (0x0000000Cu)
  222. #define EMIFA_SDTIMR_T_RC (0x00000F00u)
  223. #define EMIFA_SDTIMR_T_RC_SHIFT (0x00000008u)
  224. #define EMIFA_SDTIMR_T_RRD (0x00000070u)
  225. #define EMIFA_SDTIMR_T_RRD_SHIFT (0x00000004u)
  226. /* SDSRETR */
  227. #define EMIFA_SDSRETR_T_XS (0x0000001Fu)
  228. #define EMIFA_SDSRETR_T_XS_SHIFT (0x00000000u)
  229. /* INTRAW */
  230. #define EMIFA_INTRAW_WR (0x00000004u)
  231. #define EMIFA_INTRAW_WR_SHIFT (0x00000002u)
  232. #define EMIFA_INTRAW_LT (0x00000002u)
  233. #define EMIFA_INTRAW_LT_SHIFT (0x00000001u)
  234. #define EMIFA_INTRAW_AT (0x00000001u)
  235. #define EMIFA_INTRAW_AT_SHIFT (0x00000000u)
  236. /* INTMSK */
  237. #define EMIFA_INTMSK_WRED_MASK (0x00000004u)
  238. #define EMIFA_INTMSK_WRED_SHIFT (0x00000002u)
  239. #define EMIFA_INTMSK_LTED_MASK (0x00000002u)
  240. #define EMIFA_INTMSK_LTED_SHIFT (0x00000001u)
  241. #define EMIFA_INTMSK_ATED_MASK (0x00000001u)
  242. #define EMIFA_INTMSK_ATED_SHIFT (0x00000000u)
  243. /* INTMSKSET */
  244. #define EMIFA_INTMSKSET_WR_SET_MASK (0x00000004u)
  245. #define EMIFA_INTMSKSET_WR_SET_SHIFT (0x00000002u)
  246. #define EMIFA_INTMSKSET_LT_SET_MASK (0x00000002u)
  247. #define EMIFA_INTMSKSET_LT_SET_SHIFT (0x00000001u)
  248. #define EMIFA_INTMSKSET_AT_SET_MASK (0x00000001u)
  249. #define EMIFA_INTMSKSET_AT_SET_SHIFT (0x00000000u)
  250. /* INTMSKCLR */
  251. #define EMIFA_INTMSKCLR_WR_CLR_MASK (0x00000004u)
  252. #define EMIFA_INTMSKCLR_WR_CLR_SHIFT (0x00000002u)
  253. #define EMIFA_INTMSKCLR_LT_CLR_MASK (0x00000002u)
  254. #define EMIFA_INTMSKCLR_LT_CLR_SHIFT (0x00000001u)
  255. #define EMIFA_INTMSKCLR_AT_CLR_MASK (0x00000001u)
  256. #define EMIFA_INTMSKCLR_AT_CLR_SHIFT (0x00000000u)
  257. /* NANDFCR */
  258. #define EMIFA_NANDFCR_4BITECC_ADD_CALC_START (0x00002000u)
  259. #define EMIFA_NANDFCR_4BITECC_ADD_CALC_START_SHIFT (0x0000000Du)
  260. #define EMIFA_NANDFCR_4BITECC_START (0x00001000u)
  261. #define EMIFA_NANDFCR_4BITECC_START_SHIFT (0x0000000Cu)
  262. #define EMIFA_NANDFCR_CS5ECC (0x00000800u)
  263. #define EMIFA_NANDFCR_CS5ECC_SHIFT (0x0000000Bu)
  264. #define EMIFA_NANDFCR_CS4ECC (0x00000400u)
  265. #define EMIFA_NANDFCR_CS4ECC_SHIFT (0x0000000Au)
  266. #define EMIFA_NANDFCR_CS3ECC (0x00000200u)
  267. #define EMIFA_NANDFCR_CS3ECC_SHIFT (0x00000009u)
  268. #define EMIFA_NANDFCR_CS2ECC (0x00000100u)
  269. #define EMIFA_NANDFCR_CS2ECC_SHIFT (0x00000008u)
  270. #define EMIFA_NANDFCR_4BITECCSEL (0x00000030u)
  271. #define EMIFA_NANDFCR_4BITECCSEL_SHIFT (0x00000004u)
  272. /*----4BITECCSEL Tokens----*/
  273. #define EMIFA_NANDFCR_4BITECCSEL_CS2ECC (0x00000000u)
  274. #define EMIFA_NANDFCR_4BITECCSEL_CS3ECC (0x00000001u)
  275. #define EMIFA_NANDFCR_4BITECCSEL_CS4ECC (0x00000002u)
  276. #define EMIFA_NANDFCR_4BITECCSEL_CS5ECC (0x00000003u)
  277. #define EMIFA_NANDFCR_CS5NAND (0x00000008u)
  278. #define EMIFA_NANDFCR_CS5NAND_SHIFT (0x00000003u)
  279. #define EMIFA_NANDFCR_CS4NAND (0x00000004u)
  280. #define EMIFA_NANDFCR_CS4NAND_SHIFT (0x00000002u)
  281. #define EMIFA_NANDFCR_CS3NAND (0x00000002u)
  282. #define EMIFA_NANDFCR_CS3NAND_SHIFT (0x00000001u)
  283. #define EMIFA_NANDFCR_CS2NAND (0x00000001u)
  284. #define EMIFA_NANDFCR_CS2NAND_SHIFT (0x00000000u)
  285. /* NANDFSR */
  286. #define EMIFA_NANDFSR_ECC_ERRNUM (0x00030000u)
  287. #define EMIFA_NANDFSR_ECC_ERRNUM_SHIFT (0x00000010u)
  288. /*----ECC_ERRNUM Tokens----*/
  289. #define EMIFA_NANDFSR_ECC_ERRNUM_1ERR (0x00000000u)
  290. #define EMIFA_NANDFSR_ECC_ERRNUM_2ERR (0x00000001u)
  291. #define EMIFA_NANDFSR_ECC_ERRNUM_3ERR (0x00000002u)
  292. #define EMIFA_NANDFSR_ECC_ERRNUM_4ERR (0x00000003u)
  293. #define EMIFA_NANDFSR_ECC_STATE (0x00000F00u)
  294. #define EMIFA_NANDFSR_ECC_STATE_SHIFT (0x00000008u)
  295. /*----ECC_STATE Tokens----*/
  296. #define EMIFA_NANDFSR_ECC_STATE_NOERR (0x00000000u)
  297. #define EMIFA_NANDFSR_ECC_STATE_5ERR (0x00000001u)
  298. #define EMIFA_NANDFSR_ECC_STATE_ERR_CORRECT (0x00000002u)
  299. #define EMIFA_NANDFSR_ECC_STATE_ERR_EXIST (0x00000003u)
  300. #define EMIFA_NANDFSR_ECC_STATE_ERR_CALC (0x00000005u)
  301. #define EMIFA_NANDFSR_ECC_STATE_ERRSEARCH_PREPARE1 (0x00000006u)
  302. #define EMIFA_NANDFSR_ECC_STATE_ERRSEARCH_PREPARE2 (0x00000007u)
  303. #define EMIFA_NANDFSR_ECC_STATE_ERRSEARCH (0x00000008u)
  304. #define EMIFA_NANDFSR_ECC_STATE_ERRVALUE_CALC1 (0x0000000cu)
  305. #define EMIFA_NANDFSR_ECC_STATE_ERRVALUE_CALC2 (0x0000000du)
  306. #define EMIFA_NANDFSR_ECC_STATE_ERRVALUE_CALC3 (0x0000000eu)
  307. #define EMIFA_NANDFSR_ECC_STATE_ERRVALUE_CALC4 (0x0000000fu)
  308. #define EMIFA_NANDFSR_WAITST (0x0000000Fu)
  309. #define EMIFA_NANDFSR_WAITST_SHIFT (0x00000000u)
  310. /* PMCR */
  311. #define EMIFA_PMCR_CS5_PG_DEL (0xFC000000u)
  312. #define EMIFA_PMCR_CS5_PG_DEL_SHIFT (0x0000001Au)
  313. #define EMIFA_PMCR_CS5_PG_SIZE (0x02000000u)
  314. #define EMIFA_PMCR_CS5_PG_SIZE_SHIFT (0x00000019u)
  315. #define EMIFA_PMCR_CS5_PG_MD_EN (0x01000000u)
  316. #define EMIFA_PMCR_CS5_PG_MD_EN_SHIFT (0x00000018u)
  317. #define EMIFA_PMCR_CS4_PG_DEL (0x00FC0000u)
  318. #define EMIFA_PMCR_CS4_PG_DEL_SHIFT (0x00000012u)
  319. #define EMIFA_PMCR_CS4_PG_SIZE (0x00020000u)
  320. #define EMIFA_PMCR_CS4_PG_SIZE_SHIFT (0x00000011u)
  321. #define EMIFA_PMCR_CS4_PG_MD_EN (0x00010000u)
  322. #define EMIFA_PMCR_CS4_PG_MD_EN_SHIFT (0x00000010u)
  323. #define EMIFA_PMCR_CS3_PG_DEL (0x0000FC00u)
  324. #define EMIFA_PMCR_CS3_PG_DEL_SHIFT (0x0000000Au)
  325. #define EMIFA_PMCR_CS3_PG_SIZE (0x00000200u)
  326. #define EMIFA_PMCR_CS3_PG_SIZE_SHIFT (0x00000009u)
  327. #define EMIFA_PMCR_CS3_PG_MD_EN (0x00000100u)
  328. #define EMIFA_PMCR_CS3_PG_MD_EN_SHIFT (0x00000008u)
  329. #define EMIFA_PMCR_CS2_PG_DEL (0x000000FCu)
  330. #define EMIFA_PMCR_CS2_PG_DEL_SHIFT (0x00000002u)
  331. #define EMIFA_PMCR_CS2_PG_SIZE (0x00000002u)
  332. #define EMIFA_PMCR_CS2_PG_SIZE_SHIFT (0x00000001u)
  333. #define EMIFA_PMCR_CS2_PG_MD_EN (0x00000001u)
  334. #define EMIFA_PMCR_CS2_PG_MD_EN_SHIFT (0x00000000u)
  335. /* NANDF1ECC */
  336. #define EMIFA_NANDF1ECC_P2048O (0x08000000u)
  337. #define EMIFA_NANDF1ECC_P2048O_SHIFT (0x0000001Bu)
  338. #define EMIFA_NANDF1ECC_P1024O (0x04000000u)
  339. #define EMIFA_NANDF1ECC_P1024O_SHIFT (0x0000001Au)
  340. #define EMIFA_NANDF1ECC_P512O (0x02000000u)
  341. #define EMIFA_NANDF1ECC_P512O_SHIFT (0x00000019u)
  342. #define EMIFA_NANDF1ECC_P256O (0x01000000u)
  343. #define EMIFA_NANDF1ECC_P256O_SHIFT (0x00000018u)
  344. #define EMIFA_NANDF1ECC_P128O (0x00800000u)
  345. #define EMIFA_NANDF1ECC_P128O_SHIFT (0x00000017u)
  346. #define EMIFA_NANDF1ECC_P64O (0x00400000u)
  347. #define EMIFA_NANDF1ECC_P64O_SHIFT (0x00000016u)
  348. #define EMIFA_NANDF1ECC_P32O (0x00200000u)
  349. #define EMIFA_NANDF1ECC_P32O_SHIFT (0x00000015u)
  350. #define EMIFA_NANDF1ECC_P16O (0x00100000u)
  351. #define EMIFA_NANDF1ECC_P16O_SHIFT (0x00000014u)
  352. #define EMIFA_NANDF1ECC_P8O (0x00080000u)
  353. #define EMIFA_NANDF1ECC_P8O_SHIFT (0x00000013u)
  354. #define EMIFA_NANDF1ECC_P4O (0x00040000u)
  355. #define EMIFA_NANDF1ECC_P4O_SHIFT (0x00000012u)
  356. #define EMIFA_NANDF1ECC_P2O (0x00020000u)
  357. #define EMIFA_NANDF1ECC_P2O_SHIFT (0x00000011u)
  358. #define EMIFA_NANDF1ECC_P1O (0x00010000u)
  359. #define EMIFA_NANDF1ECC_P1O_SHIFT (0x00000010u)
  360. #define EMIFA_NANDF1ECC_P2048E (0x00000800u)
  361. #define EMIFA_NANDF1ECC_P2048E_SHIFT (0x0000000Bu)
  362. #define EMIFA_NANDF1ECC_P1024E (0x00000400u)
  363. #define EMIFA_NANDF1ECC_P1024E_SHIFT (0x0000000Au)
  364. #define EMIFA_NANDF1ECC_P512E (0x00000200u)
  365. #define EMIFA_NANDF1ECC_P512E_SHIFT (0x00000009u)
  366. #define EMIFA_NANDF1ECC_P256E (0x00000100u)
  367. #define EMIFA_NANDF1ECC_P256E_SHIFT (0x00000008u)
  368. #define EMIFA_NANDF1ECC_P128E (0x00000080u)
  369. #define EMIFA_NANDF1ECC_P128E_SHIFT (0x00000007u)
  370. #define EMIFA_NANDF1ECC_P64E (0x00000040u)
  371. #define EMIFA_NANDF1ECC_P64E_SHIFT (0x00000006u)
  372. #define EMIFA_NANDF1ECC_P32E (0x00000020u)
  373. #define EMIFA_NANDF1ECC_P32E_SHIFT (0x00000005u)
  374. #define EMIFA_NANDF1ECC_P16E (0x00000010u)
  375. #define EMIFA_NANDF1ECC_P16E_SHIFT (0x00000004u)
  376. #define EMIFA_NANDF1ECC_P8E (0x00000008u)
  377. #define EMIFA_NANDF1ECC_P8E_SHIFT (0x00000003u)
  378. #define EMIFA_NANDF1ECC_P4E (0x00000004u)
  379. #define EMIFA_NANDF1ECC_P4E_SHIFT (0x00000002u)
  380. #define EMIFA_NANDF1ECC_P2E (0x00000002u)
  381. #define EMIFA_NANDF1ECC_P2E_SHIFT (0x00000001u)
  382. #define EMIFA_NANDF1ECC_P1E (0x00000001u)
  383. #define EMIFA_NANDF1ECC_P1E_SHIFT (0x00000000u)
  384. /* NANDF2ECC */
  385. #define EMIFA_NANDF2ECC_P2048O (0x08000000u)
  386. #define EMIFA_NANDF2ECC_P2048O_SHIFT (0x0000001Bu)
  387. #define EMIFA_NANDF2ECC_P1024O (0x04000000u)
  388. #define EMIFA_NANDF2ECC_P1024O_SHIFT (0x0000001Au)
  389. #define EMIFA_NANDF2ECC_P512O (0x02000000u)
  390. #define EMIFA_NANDF2ECC_P512O_SHIFT (0x00000019u)
  391. #define EMIFA_NANDF2ECC_P256O (0x01000000u)
  392. #define EMIFA_NANDF2ECC_P256O_SHIFT (0x00000018u)
  393. #define EMIFA_NANDF2ECC_P128O (0x00800000u)
  394. #define EMIFA_NANDF2ECC_P128O_SHIFT (0x00000017u)
  395. #define EMIFA_NANDF2ECC_P64O (0x00400000u)
  396. #define EMIFA_NANDF2ECC_P64O_SHIFT (0x00000016u)
  397. #define EMIFA_NANDF2ECC_P32O (0x00200000u)
  398. #define EMIFA_NANDF2ECC_P32O_SHIFT (0x00000015u)
  399. #define EMIFA_NANDF2ECC_P16O (0x00100000u)
  400. #define EMIFA_NANDF2ECC_P16O_SHIFT (0x00000014u)
  401. #define EMIFA_NANDF2ECC_P8O (0x00080000u)
  402. #define EMIFA_NANDF2ECC_P8O_SHIFT (0x00000013u)
  403. #define EMIFA_NANDF2ECC_P4O (0x00040000u)
  404. #define EMIFA_NANDF2ECC_P4O_SHIFT (0x00000012u)
  405. #define EMIFA_NANDF2ECC_P2O (0x00020000u)
  406. #define EMIFA_NANDF2ECC_P2O_SHIFT (0x00000011u)
  407. #define EMIFA_NANDF2ECC_P1O (0x00010000u)
  408. #define EMIFA_NANDF2ECC_P1O_SHIFT (0x00000010u)
  409. #define EMIFA_NANDF2ECC_P2048E (0x00000800u)
  410. #define EMIFA_NANDF2ECC_P2048E_SHIFT (0x0000000Bu)
  411. #define EMIFA_NANDF2ECC_P1024E (0x00000400u)
  412. #define EMIFA_NANDF2ECC_P1024E_SHIFT (0x0000000Au)
  413. #define EMIFA_NANDF2ECC_P512E (0x00000200u)
  414. #define EMIFA_NANDF2ECC_P512E_SHIFT (0x00000009u)
  415. #define EMIFA_NANDF2ECC_P256E (0x00000100u)
  416. #define EMIFA_NANDF2ECC_P256E_SHIFT (0x00000008u)
  417. #define EMIFA_NANDF2ECC_P128E (0x00000080u)
  418. #define EMIFA_NANDF2ECC_P128E_SHIFT (0x00000007u)
  419. #define EMIFA_NANDF2ECC_P64E (0x00000040u)
  420. #define EMIFA_NANDF2ECC_P64E_SHIFT (0x00000006u)
  421. #define EMIFA_NANDF2ECC_P32E (0x00000020u)
  422. #define EMIFA_NANDF2ECC_P32E_SHIFT (0x00000005u)
  423. #define EMIFA_NANDF2ECC_P16E (0x00000010u)
  424. #define EMIFA_NANDF2ECC_P16E_SHIFT (0x00000004u)
  425. #define EMIFA_NANDF2ECC_P8E (0x00000008u)
  426. #define EMIFA_NANDF2ECC_P8E_SHIFT (0x00000003u)
  427. #define EMIFA_NANDF2ECC_P4E (0x00000004u)
  428. #define EMIFA_NANDF2ECC_P4E_SHIFT (0x00000002u)
  429. #define EMIFA_NANDF2ECC_P2E (0x00000002u)
  430. #define EMIFA_NANDF2ECC_P2E_SHIFT (0x00000001u)
  431. #define EMIFA_NANDF2ECC_P1E (0x00000001u)
  432. #define EMIFA_NANDF2ECC_P1E_SHIFT (0x00000000u)
  433. /* NANDF3ECC */
  434. #define EMIFA_NANDF3ECC_P2048O (0x08000000u)
  435. #define EMIFA_NANDF3ECC_P2048O_SHIFT (0x0000001Bu)
  436. #define EMIFA_NANDF3ECC_P1024O (0x04000000u)
  437. #define EMIFA_NANDF3ECC_P1024O_SHIFT (0x0000001Au)
  438. #define EMIFA_NANDF3ECC_P512O (0x02000000u)
  439. #define EMIFA_NANDF3ECC_P512O_SHIFT (0x00000019u)
  440. #define EMIFA_NANDF3ECC_P256O (0x01000000u)
  441. #define EMIFA_NANDF3ECC_P256O_SHIFT (0x00000018u)
  442. #define EMIFA_NANDF3ECC_P128O (0x00800000u)
  443. #define EMIFA_NANDF3ECC_P128O_SHIFT (0x00000017u)
  444. #define EMIFA_NANDF3ECC_P64O (0x00400000u)
  445. #define EMIFA_NANDF3ECC_P64O_SHIFT (0x00000016u)
  446. #define EMIFA_NANDF3ECC_P32O (0x00200000u)
  447. #define EMIFA_NANDF3ECC_P32O_SHIFT (0x00000015u)
  448. #define EMIFA_NANDF3ECC_P16O (0x00100000u)
  449. #define EMIFA_NANDF3ECC_P16O_SHIFT (0x00000014u)
  450. #define EMIFA_NANDF3ECC_P8O (0x00080000u)
  451. #define EMIFA_NANDF3ECC_P8O_SHIFT (0x00000013u)
  452. #define EMIFA_NANDF3ECC_P4O (0x00040000u)
  453. #define EMIFA_NANDF3ECC_P4O_SHIFT (0x00000012u)
  454. #define EMIFA_NANDF3ECC_P2O (0x00020000u)
  455. #define EMIFA_NANDF3ECC_P2O_SHIFT (0x00000011u)
  456. #define EMIFA_NANDF3ECC_P1O (0x00010000u)
  457. #define EMIFA_NANDF3ECC_P1O_SHIFT (0x00000010u)
  458. #define EMIFA_NANDF3ECC_P2048E (0x00000800u)
  459. #define EMIFA_NANDF3ECC_P2048E_SHIFT (0x0000000Bu)
  460. #define EMIFA_NANDF3ECC_P1024E (0x00000400u)
  461. #define EMIFA_NANDF3ECC_P1024E_SHIFT (0x0000000Au)
  462. #define EMIFA_NANDF3ECC_P512E (0x00000200u)
  463. #define EMIFA_NANDF3ECC_P512E_SHIFT (0x00000009u)
  464. #define EMIFA_NANDF3ECC_P256E (0x00000100u)
  465. #define EMIFA_NANDF3ECC_P256E_SHIFT (0x00000008u)
  466. #define EMIFA_NANDF3ECC_P128E (0x00000080u)
  467. #define EMIFA_NANDF3ECC_P128E_SHIFT (0x00000007u)
  468. #define EMIFA_NANDF3ECC_P64E (0x00000040u)
  469. #define EMIFA_NANDF3ECC_P64E_SHIFT (0x00000006u)
  470. #define EMIFA_NANDF3ECC_P32E (0x00000020u)
  471. #define EMIFA_NANDF3ECC_P32E_SHIFT (0x00000005u)
  472. #define EMIFA_NANDF3ECC_P16E (0x00000010u)
  473. #define EMIFA_NANDF3ECC_P16E_SHIFT (0x00000004u)
  474. #define EMIFA_NANDF3ECC_P8E (0x00000008u)
  475. #define EMIFA_NANDF3ECC_P8E_SHIFT (0x00000003u)
  476. #define EMIFA_NANDF3ECC_P4E (0x00000004u)
  477. #define EMIFA_NANDF3ECC_P4E_SHIFT (0x00000002u)
  478. #define EMIFA_NANDF3ECC_P2E (0x00000002u)
  479. #define EMIFA_NANDF3ECC_P2E_SHIFT (0x00000001u)
  480. #define EMIFA_NANDF3ECC_P1E (0x00000001u)
  481. #define EMIFA_NANDF3ECC_P1E_SHIFT (0x00000000u)
  482. /* NANDF4ECC */
  483. #define EMIFA_NANDF4ECC_P2048O (0x08000000u)
  484. #define EMIFA_NANDF4ECC_P2048O_SHIFT (0x0000001Bu)
  485. #define EMIFA_NANDF4ECC_P1024O (0x04000000u)
  486. #define EMIFA_NANDF4ECC_P1024O_SHIFT (0x0000001Au)
  487. #define EMIFA_NANDF4ECC_P512O (0x02000000u)
  488. #define EMIFA_NANDF4ECC_P512O_SHIFT (0x00000019u)
  489. #define EMIFA_NANDF4ECC_P256O (0x01000000u)
  490. #define EMIFA_NANDF4ECC_P256O_SHIFT (0x00000018u)
  491. #define EMIFA_NANDF4ECC_P128O (0x00800000u)
  492. #define EMIFA_NANDF4ECC_P128O_SHIFT (0x00000017u)
  493. #define EMIFA_NANDF4ECC_P64O (0x00400000u)
  494. #define EMIFA_NANDF4ECC_P64O_SHIFT (0x00000016u)
  495. #define EMIFA_NANDF4ECC_P32O (0x00200000u)
  496. #define EMIFA_NANDF4ECC_P32O_SHIFT (0x00000015u)
  497. #define EMIFA_NANDF4ECC_P16O (0x00100000u)
  498. #define EMIFA_NANDF4ECC_P16O_SHIFT (0x00000014u)
  499. #define EMIFA_NANDF4ECC_P8O (0x00080000u)
  500. #define EMIFA_NANDF4ECC_P8O_SHIFT (0x00000013u)
  501. #define EMIFA_NANDF4ECC_P4O (0x00040000u)
  502. #define EMIFA_NANDF4ECC_P4O_SHIFT (0x00000012u)
  503. #define EMIFA_NANDF4ECC_P2O (0x00020000u)
  504. #define EMIFA_NANDF4ECC_P2O_SHIFT (0x00000011u)
  505. #define EMIFA_NANDF4ECC_P1O (0x00010000u)
  506. #define EMIFA_NANDF4ECC_P1O_SHIFT (0x00000010u)
  507. #define EMIFA_NANDF4ECC_P2048E (0x00000800u)
  508. #define EMIFA_NANDF4ECC_P2048E_SHIFT (0x0000000Bu)
  509. #define EMIFA_NANDF4ECC_P1024E (0x00000400u)
  510. #define EMIFA_NANDF4ECC_P1024E_SHIFT (0x0000000Au)
  511. #define EMIFA_NANDF4ECC_P512E (0x00000200u)
  512. #define EMIFA_NANDF4ECC_P512E_SHIFT (0x00000009u)
  513. #define EMIFA_NANDF4ECC_P256E (0x00000100u)
  514. #define EMIFA_NANDF4ECC_P256E_SHIFT (0x00000008u)
  515. #define EMIFA_NANDF4ECC_P128E (0x00000080u)
  516. #define EMIFA_NANDF4ECC_P128E_SHIFT (0x00000007u)
  517. #define EMIFA_NANDF4ECC_P64E (0x00000040u)
  518. #define EMIFA_NANDF4ECC_P64E_SHIFT (0x00000006u)
  519. #define EMIFA_NANDF4ECC_P32E (0x00000020u)
  520. #define EMIFA_NANDF4ECC_P32E_SHIFT (0x00000005u)
  521. #define EMIFA_NANDF4ECC_P16E (0x00000010u)
  522. #define EMIFA_NANDF4ECC_P16E_SHIFT (0x00000004u)
  523. #define EMIFA_NANDF4ECC_P8E (0x00000008u)
  524. #define EMIFA_NANDF4ECC_P8E_SHIFT (0x00000003u)
  525. #define EMIFA_NANDF4ECC_P4E (0x00000004u)
  526. #define EMIFA_NANDF4ECC_P4E_SHIFT (0x00000002u)
  527. #define EMIFA_NANDF4ECC_P2E (0x00000002u)
  528. #define EMIFA_NANDF4ECC_P2E_SHIFT (0x00000001u)
  529. #define EMIFA_NANDF4ECC_P1E (0x00000001u)
  530. #define EMIFA_NANDF4ECC_P1E_SHIFT (0x00000000u)
  531. /* NAND4BITECCLOAD */
  532. #define EMIFA_NAND4BITECCLOAD_4BITECCLOAD (0x000003FFu)
  533. #define EMIFA_NAND4BITECCLOAD_4BITECCLOAD_SHIFT (0x00000000u)
  534. /* NAND4BITECC1 */
  535. #define EMIFA_NAND4BITECC1_4BITECCVAL2 (0x03FF0000u)
  536. #define EMIFA_NAND4BITECC1_4BITECCVAL2_SHIFT (0x00000010u)
  537. #define EMIFA_NAND4BITECC1_4BITECCVAL1 (0x000003FFu)
  538. #define EMIFA_NAND4BITECC1_4BITECCVAL1_SHIFT (0x00000000u)
  539. /* NAND4BITECC2 */
  540. #define EMIFA_NAND4BITECC2_4BITECCVAL4 (0x03FF0000u)
  541. #define EMIFA_NAND4BITECC2_4BITECCVAL4_SHIFT (0x00000010u)
  542. #define EMIFA_NAND4BITECC2_4BITECCVAL3 (0x000003FFu)
  543. #define EMIFA_NAND4BITECC2_4BITECCVAL3_SHIFT (0x00000000u)
  544. /* NAND4BITECC3 */
  545. #define EMIFA_NAND4BITECC3_4BITECCVAL6 (0x03FF0000u)
  546. #define EMIFA_NAND4BITECC3_4BITECCVAL6_SHIFT (0x00000010u)
  547. #define EMIFA_NAND4BITECC3_4BITECCVAL5 (0x000003FFu)
  548. #define EMIFA_NAND4BITECC3_4BITECCVAL5_SHIFT (0x00000000u)
  549. /* NAND4BITECC4 */
  550. #define EMIFA_NAND4BITECC4_4BITECCVAL8 (0x03FF0000u)
  551. #define EMIFA_NAND4BITECC4_4BITECCVAL8_SHIFT (0x00000010u)
  552. #define EMIFA_NAND4BITECC4_4BITECCVAL7 (0x000003FFu)
  553. #define EMIFA_NAND4BITECC4_4BITECCVAL7_SHIFT (0x00000000u)
  554. /* NANDERRADD1 */
  555. #define EMIFA_NANDERRADD1_4BITECCERRADD2 (0x03FF0000u)
  556. #define EMIFA_NANDERRADD1_4BITECCERRADD2_SHIFT (0x00000010u)
  557. #define EMIFA_NANDERRADD1_4BITECCERRADD1 (0x000003FFu)
  558. #define EMIFA_NANDERRADD1_4BITECCERRADD1_SHIFT (0x00000000u)
  559. /* NANDERRADD2 */
  560. #define EMIFA_NANDERRADD2_4BITECCERRADD4 (0x03FF0000u)
  561. #define EMIFA_NANDERRADD2_4BITECCERRADD4_SHIFT (0x00000010u)
  562. #define EMIFA_NANDERRADD2_4BITECCERRADD3 (0x000003FFu)
  563. #define EMIFA_NANDERRADD2_4BITECCERRADD3_SHIFT (0x00000000u)
  564. /* NANDERRVAL1 */
  565. #define EMIFA_NANDERRVAL1_4BITECCERRVAL2 (0x03FF0000u)
  566. #define EMIFA_NANDERRVAL1_4BITECCERRVAL2_SHIFT (0x00000010u)
  567. #define EMIFA_NANDERRVAL1_4BITECCERRVAL1 (0x000003FFu)
  568. #define EMIFA_NANDERRVAL1_4BITECCERRVAL1_SHIFT (0x00000000u)
  569. /* NANDERRVAL2 */
  570. #define EMIFA_NANDERRVAL2_4BITECCERRVAL4 (0x03FF0000u)
  571. #define EMIFA_NANDERRVAL2_4BITECCERRVAL4_SHIFT (0x00000010u)
  572. #define EMIFA_NANDERRVAL2_4BITECCERRVAL3 (0x000003FFu)
  573. #define EMIFA_NANDERRVAL2_4BITECCERRVAL3_SHIFT (0x00000000u)
  574. #ifdef __cplusplus
  575. }
  576. #endif
  577. #endif