hw_sata.h 21 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781
  1. /**
  2. * \file hw_sata.h
  3. *
  4. * \brief SATA 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_SATA_H_
  40. #define _HW_SATA_H_
  41. #ifdef __cplusplus
  42. extern "C" {
  43. #endif
  44. #define SATA_CAP (0x0)
  45. #define SATA_GHC (0x4)
  46. #define SATA_IS (0x8)
  47. #define SATA_PI (0xC)
  48. #define SATA_VR (0x10)
  49. #define SATA_CCCCTL (0x14)
  50. #define SATA_CCCPORTS (0x18)
  51. #define SATA_BISTAFR (0xA0)
  52. #define SATA_BISTCR (0xA4)
  53. #define SATA_BISTFCTR (0xA8)
  54. #define SATA_BISTSR (0xAC)
  55. #define SATA_BISTDECR (0xB0)
  56. #define SATA_TIMER1MS (0xE0)
  57. #define SATA_GPARAM1R (0xE8)
  58. #define SATA_GPARAM2R (0xEC)
  59. #define SATA_PPARAMR (0xF0)
  60. #define SATA_TESTR (0xF4)
  61. #define SATA_VERSIONR (0xF8)
  62. #define SATA_IDR (0xFC)
  63. #define SATA_P0CLB (0x100)
  64. #define SATA_P0FB (0x108)
  65. #define SATA_P0IS (0x110)
  66. #define SATA_P0IE (0x114)
  67. #define SATA_P0CMD (0x118)
  68. #define SATA_P0TFD (0x120)
  69. #define SATA_P0SIG (0x124)
  70. #define SATA_P0SSTS (0x128)
  71. #define SATA_P0SCTL (0x12C)
  72. #define SATA_P0SERR (0x130)
  73. #define SATA_P0SACT (0x134)
  74. #define SATA_P0CI (0x138)
  75. #define SATA_P0SNTF (0x13C)
  76. #define SATA_P0DMACR (0x170)
  77. #define SATA_P0PHYCR (0x178)
  78. #define SATA_P0PHYSR (0x17C)
  79. /**************************************************************************\
  80. * Field Definition Macros
  81. \**************************************************************************/
  82. /* CAP */
  83. #define SATA_CAP_S64A (0x80000000u)
  84. #define SATA_CAP_S64A_SHIFT (0x0000001Fu)
  85. #define SATA_CAP_SNCQ (0x40000000u)
  86. #define SATA_CAP_SNCQ_SHIFT (0x0000001Eu)
  87. #define SATA_CAP_SSNTF (0x20000000u)
  88. #define SATA_CAP_SSNTF_SHIFT (0x0000001Du)
  89. #define SATA_CAP_SMPS (0x10000000u)
  90. #define SATA_CAP_SMPS_SHIFT (0x0000001Cu)
  91. #define SATA_CAP_SSS (0x08000000u)
  92. #define SATA_CAP_SSS_SHIFT (0x0000001Bu)
  93. #define SATA_CAP_SALP (0x04000000u)
  94. #define SATA_CAP_SALP_SHIFT (0x0000001Au)
  95. #define SATA_CAP_SAL (0x02000000u)
  96. #define SATA_CAP_SAL_SHIFT (0x00000019u)
  97. #define SATA_CAP_SCLO (0x01000000u)
  98. #define SATA_CAP_SCLO_SHIFT (0x00000018u)
  99. #define SATA_CAP_ISS (0x00F00000u)
  100. #define SATA_CAP_ISS_SHIFT (0x00000014u)
  101. #define SATA_CAP_SNZO (0x00080000u)
  102. #define SATA_CAP_SNZO_SHIFT (0x00000013u)
  103. #define SATA_CAP_SAM (0x00040000u)
  104. #define SATA_CAP_SAM_SHIFT (0x00000012u)
  105. #define SATA_CAP_SPM (0x00020000u)
  106. #define SATA_CAP_SPM_SHIFT (0x00000011u)
  107. #define SATA_CAP_PMD (0x00008000u)
  108. #define SATA_CAP_PMD_SHIFT (0x0000000Fu)
  109. #define SATA_CAP_SSC (0x00004000u)
  110. #define SATA_CAP_SSC_SHIFT (0x0000000Eu)
  111. #define SATA_CAP_PSC (0x00002000u)
  112. #define SATA_CAP_PSC_SHIFT (0x0000000Du)
  113. #define SATA_CAP_NCS (0x00001F00u)
  114. #define SATA_CAP_NCS_SHIFT (0x00000008u)
  115. #define SATA_CAP_CCCS (0x00000080u)
  116. #define SATA_CAP_CCCS_SHIFT (0x00000007u)
  117. #define SATA_CAP_EMS (0x00000040u)
  118. #define SATA_CAP_EMS_SHIFT (0x00000006u)
  119. #define SATA_CAP_SXS (0x00000020u)
  120. #define SATA_CAP_SXS_SHIFT (0x00000005u)
  121. #define SATA_CAP_NP (0x0000001Fu)
  122. #define SATA_CAP_NP_SHIFT (0x00000000u)
  123. /* GHC */
  124. #define SATA_GHC_AE (0x80000000u)
  125. #define SATA_GHC_AE_SHIFT (0x0000001Fu)
  126. #define SATA_GHC_IE (0x00000002u)
  127. #define SATA_GHC_IE_SHIFT (0x00000001u)
  128. #define SATA_GHC_HR (0x00000001u)
  129. #define SATA_GHC_HR_SHIFT (0x00000000u)
  130. /* IS */
  131. #define SATA_IS_IPS (0x00000001u)
  132. #define SATA_IS_IPS_SHIFT (0x00000000u)
  133. /* PI */
  134. #define SATA_PI_PI (0x00000001u)
  135. #define SATA_PI_PI_SHIFT (0x00000000u)
  136. /* VR */
  137. #define SATA_VR_MJR (0xFFFF0000u)
  138. #define SATA_VR_MJR_SHIFT (0x00000010u)
  139. #define SATA_VR_MNR (0x0000FFFFu)
  140. #define SATA_VR_MNR_SHIFT (0x00000000u)
  141. /* CCCCTL */
  142. #define SATA_CCCCTL_TV (0xFFFF0000u)
  143. #define SATA_CCCCTL_TV_SHIFT (0x00000010u)
  144. #define SATA_CCCCTL_CC (0x0000FF00u)
  145. #define SATA_CCCCTL_CC_SHIFT (0x00000008u)
  146. #define SATA_CCCCTL_INT (0x000000F8u)
  147. #define SATA_CCCCTL_INT_SHIFT (0x00000003u)
  148. #define SATA_CCCCTL_EN (0x00000001u)
  149. #define SATA_CCCCTL_EN_SHIFT (0x00000000u)
  150. /* CCCPORTS */
  151. #define SATA_CCCPORTS_PRT (0x00000001u)
  152. #define SATA_CCCPORTS_PRT_SHIFT (0x00000000u)
  153. /* BISTAFR */
  154. #define SATA_BISTAFR_NCP (0x0000FF00u)
  155. #define SATA_BISTAFR_NCP_SHIFT (0x00000008u)
  156. #define SATA_BISTAFR_PD (0x000000FFu)
  157. #define SATA_BISTAFR_PD_SHIFT (0x00000000u)
  158. /* BISTCR */
  159. #define SATA_BISTCR_TXO (0x00040000u)
  160. #define SATA_BISTCR_TXO_SHIFT (0x00000012u)
  161. #define SATA_BISTCR_CNTCLR (0x00020000u)
  162. #define SATA_BISTCR_CNTCLR_SHIFT (0x00000011u)
  163. #define SATA_BISTCR_NEALB (0x00010000u)
  164. #define SATA_BISTCR_NEALB_SHIFT (0x00000010u)
  165. #define SATA_BISTCR_LLC (0x00000700u)
  166. #define SATA_BISTCR_LLC_SHIFT (0x00000008u)
  167. #define SATA_BISTCR_ERREN (0x00000040u)
  168. #define SATA_BISTCR_ERREN_SHIFT (0x00000006u)
  169. #define SATA_BISTCR_FLIP (0x00000020u)
  170. #define SATA_BISTCR_FLIP_SHIFT (0x00000005u)
  171. #define SATA_BISTCR_PV (0x00000010u)
  172. #define SATA_BISTCR_PV_SHIFT (0x00000004u)
  173. #define SATA_BISTCR_PATTERN (0x0000000Fu)
  174. #define SATA_BISTCR_PATTERN_SHIFT (0x00000000u)
  175. /* BISTFCTR */
  176. #define SATA_BISTFCTR_BISTFCTR (0xFFFFFFFFu)
  177. #define SATA_BISTFCTR_BISTFCTR_SHIFT (0x00000000u)
  178. /* BISTSR */
  179. #define SATA_BISTSR_BRSTERR (0x00FF0000u)
  180. #define SATA_BISTSR_BRSTERR_SHIFT (0x00000010u)
  181. #define SATA_BISTSR_FRAMERR (0x0000FFFFu)
  182. #define SATA_BISTSR_FRAMERR_SHIFT (0x00000000u)
  183. /* BISTDECR */
  184. #define SATA_BISTDECR_DWERR (0xFFFFFFFFu)
  185. #define SATA_BISTDECR_DWERR_SHIFT (0x00000000u)
  186. /* TIMER1MS */
  187. #define SATA_TIMER1MS_TIMV (0x000FFFFFu)
  188. #define SATA_TIMER1MS_TIMV_SHIFT (0x00000000u)
  189. /* GPARAM1R */
  190. #define SATA_GPARAM1R_ALIGN_M (0x80000000u)
  191. #define SATA_GPARAM1R_ALIGN_M_SHIFT (0x0000001Fu)
  192. #define SATA_GPARAM1R_RX_BUFFER (0x40000000u)
  193. #define SATA_GPARAM1R_RX_BUFFER_SHIFT (0x0000001Eu)
  194. #define SATA_GPARAM1R_PHY_DATA (0x30000000u)
  195. #define SATA_GPARAM1R_PHY_DATA_SHIFT (0x0000001Cu)
  196. #define SATA_GPARAM1R_PHY_RST (0x08000000u)
  197. #define SATA_GPARAM1R_PHY_RST_SHIFT (0x0000001Bu)
  198. #define SATA_GPARAM1R_PHY_CTRL (0x07E00000u)
  199. #define SATA_GPARAM1R_PHY_CTRL_SHIFT (0x00000015u)
  200. #define SATA_GPARAM1R_PHY_STAT (0x001F8000u)
  201. #define SATA_GPARAM1R_PHY_STAT_SHIFT (0x0000000Fu)
  202. #define SATA_GPARAM1R_LATCH_M (0x00004000u)
  203. #define SATA_GPARAM1R_LATCH_M_SHIFT (0x0000000Eu)
  204. #define SATA_GPARAM1R_BIST_M (0x00002000u)
  205. #define SATA_GPARAM1R_BIST_M_SHIFT (0x0000000Du)
  206. #define SATA_GPARAM1R_PHY_TYPE (0x00001000u)
  207. #define SATA_GPARAM1R_PHY_TYPE_SHIFT (0x0000000Cu)
  208. #define SATA_GPARAM1R_RETURN_ERR (0x00000400u)
  209. #define SATA_GPARAM1R_RETURN_ERR_SHIFT (0x0000000Au)
  210. #define SATA_GPARAM1R_AHB_ENDIAN (0x00000300u)
  211. #define SATA_GPARAM1R_AHB_ENDIAN_SHIFT (0x00000008u)
  212. #define SATA_GPARAM1R_S_HADDR (0x00000080u)
  213. #define SATA_GPARAM1R_S_HADDR_SHIFT (0x00000007u)
  214. #define SATA_GPARAM1R_M_HADDR (0x00000040u)
  215. #define SATA_GPARAM1R_M_HADDR_SHIFT (0x00000006u)
  216. #define SATA_GPARAM1R_S_HDATA (0x00000038u)
  217. #define SATA_GPARAM1R_S_HDATA_SHIFT (0x00000003u)
  218. #define SATA_GPARAM1R_M_HDATA (0x00000007u)
  219. #define SATA_GPARAM1R_M_HDATA_SHIFT (0x00000000u)
  220. /* GPARAM2R */
  221. #define SATA_GPARAM2R_DEV_CP (0x00004000u)
  222. #define SATA_GPARAM2R_DEV_CP_SHIFT (0x0000000Eu)
  223. #define SATA_GPARAM2R_DEV_MP (0x00002000u)
  224. #define SATA_GPARAM2R_DEV_MP_SHIFT (0x0000000Du)
  225. #define SATA_GPARAM2R_ENCODE_M (0x00001000u)
  226. #define SATA_GPARAM2R_ENCODE_M_SHIFT (0x0000000Cu)
  227. #define SATA_GPARAM2R_RXOOB_CLK_M (0x00000800u)
  228. #define SATA_GPARAM2R_RXOOB_CLK_M_SHIFT (0x0000000Bu)
  229. #define SATA_GPARAM2R_RX_OOB_M (0x00000400u)
  230. #define SATA_GPARAM2R_RX_OOB_M_SHIFT (0x0000000Au)
  231. #define SATA_GPARAM2R_TX_OOB_M (0x00000200u)
  232. #define SATA_GPARAM2R_TX_OOB_M_SHIFT (0x00000009u)
  233. #define SATA_GPARAM2R_RXOOB_CLK (0x000001FFu)
  234. #define SATA_GPARAM2R_RXOOB_CLK_SHIFT (0x00000000u)
  235. /* PPARAMR */
  236. #define SATA_PPARAMR_TX_MEM_M (0x00000200u)
  237. #define SATA_PPARAMR_TX_MEM_M_SHIFT (0x00000009u)
  238. #define SATA_PPARAMR_TX_MEM_S (0x00000100u)
  239. #define SATA_PPARAMR_TX_MEM_S_SHIFT (0x00000008u)
  240. #define SATA_PPARAMR_RX_MEM_M (0x00000080u)
  241. #define SATA_PPARAMR_RX_MEM_M_SHIFT (0x00000007u)
  242. #define SATA_PPARAMR_RX_MEM_S (0x00000040u)
  243. #define SATA_PPARAMR_RX_MEM_S_SHIFT (0x00000006u)
  244. #define SATA_PPARAMR_TX_FIFO_DEPTH (0x00000038u)
  245. #define SATA_PPARAMR_TX_FIFO_DEPTH_SHIFT (0x00000003u)
  246. #define SATA_PPARAMR_RX_FIFO_DEPTH (0x00000007u)
  247. #define SATA_PPARAMR_RX_FIFO_DEPTH_SHIFT (0x00000000u)
  248. /* TESTR */
  249. #define SATA_TESTR_PSEL (0x00070000u)
  250. #define SATA_TESTR_PSEL_SHIFT (0x00000010u)
  251. #define SATA_TESTR_TEST_IF (0x00000001u)
  252. #define SATA_TESTR_TEST_IF_SHIFT (0x00000000u)
  253. /* VERSIONR */
  254. #define SATA_VERSIONR_VERSION (0xFFFFFFFFu)
  255. #define SATA_VERSIONR_VERSION_SHIFT (0x00000000u)
  256. /* IDR */
  257. #define SATA_IDR_ID (0xFFFFFFFFu)
  258. #define SATA_IDR_ID_SHIFT (0x00000000u)
  259. /* P0CLB */
  260. #define SATA_P0CLB_CLB (0xFFFFFFFFu)
  261. #define SATA_P0CLB_CLB_SHIFT (0x00000000u)
  262. /* P0FB */
  263. #define SATA_P0FB_FB (0xFFFFFFFFu)
  264. #define SATA_P0FB_FB_SHIFT (0x00000000u)
  265. /* P0IS */
  266. #define SATA_P0IS_CPDS (0x80000000u)
  267. #define SATA_P0IS_CPDS_SHIFT (0x0000001Fu)
  268. #define SATA_P0IS_TFES (0x40000000u)
  269. #define SATA_P0IS_TFES_SHIFT (0x0000001Eu)
  270. #define SATA_P0IS_HBFS (0x20000000u)
  271. #define SATA_P0IS_HBFS_SHIFT (0x0000001Du)
  272. #define SATA_P0IS_HBDS (0x10000000u)
  273. #define SATA_P0IS_HBDS_SHIFT (0x0000001Cu)
  274. #define SATA_P0IS_IFS (0x08000000u)
  275. #define SATA_P0IS_IFS_SHIFT (0x0000001Bu)
  276. #define SATA_P0IS_INFS (0x04000000u)
  277. #define SATA_P0IS_INFS_SHIFT (0x0000001Au)
  278. #define SATA_P0IS_OFS (0x01000000u)
  279. #define SATA_P0IS_OFS_SHIFT (0x00000018u)
  280. #define SATA_P0IS_IPMS (0x00800000u)
  281. #define SATA_P0IS_IPMS_SHIFT (0x00000017u)
  282. #define SATA_P0IS_PRCS (0x00400000u)
  283. #define SATA_P0IS_PRCS_SHIFT (0x00000016u)
  284. #define SATA_P0IS_DMPS (0x00000080u)
  285. #define SATA_P0IS_DMPS_SHIFT (0x00000007u)
  286. #define SATA_P0IS_PCS (0x00000040u)
  287. #define SATA_P0IS_PCS_SHIFT (0x00000006u)
  288. #define SATA_P0IS_DPS (0x00000020u)
  289. #define SATA_P0IS_DPS_SHIFT (0x00000005u)
  290. #define SATA_P0IS_UFS (0x00000010u)
  291. #define SATA_P0IS_UFS_SHIFT (0x00000004u)
  292. #define SATA_P0IS_SDBS (0x00000008u)
  293. #define SATA_P0IS_SDBS_SHIFT (0x00000003u)
  294. #define SATA_P0IS_DSS (0x00000004u)
  295. #define SATA_P0IS_DSS_SHIFT (0x00000002u)
  296. #define SATA_P0IS_PSS (0x00000002u)
  297. #define SATA_P0IS_PSS_SHIFT (0x00000001u)
  298. #define SATA_P0IS_DHRS (0x00000001u)
  299. #define SATA_P0IS_DHRS_SHIFT (0x00000000u)
  300. /* P0IE */
  301. #define SATA_P0IE_CPDE (0x80000000u)
  302. #define SATA_P0IE_CPDE_SHIFT (0x0000001Fu)
  303. #define SATA_P0IE_TFEE (0x40000000u)
  304. #define SATA_P0IE_TFEE_SHIFT (0x0000001Eu)
  305. #define SATA_P0IE_HBFE (0x20000000u)
  306. #define SATA_P0IE_HBFE_SHIFT (0x0000001Du)
  307. #define SATA_P0IE_HBDE (0x10000000u)
  308. #define SATA_P0IE_HBDE_SHIFT (0x0000001Cu)
  309. #define SATA_P0IE_IFE (0x08000000u)
  310. #define SATA_P0IE_IFE_SHIFT (0x0000001Bu)
  311. #define SATA_P0IE_INFE (0x04000000u)
  312. #define SATA_P0IE_INFE_SHIFT (0x0000001Au)
  313. #define SATA_P0IE_OFE (0x01000000u)
  314. #define SATA_P0IE_OFE_SHIFT (0x00000018u)
  315. #define SATA_P0IE_IPME (0x00800000u)
  316. #define SATA_P0IE_IPME_SHIFT (0x00000017u)
  317. #define SATA_P0IE_PRCE (0x00400000u)
  318. #define SATA_P0IE_PRCE_SHIFT (0x00000016u)
  319. #define SATA_P0IE_DMPE (0x00000080u)
  320. #define SATA_P0IE_DMPE_SHIFT (0x00000007u)
  321. #define SATA_P0IE_PCE (0x00000040u)
  322. #define SATA_P0IE_PCE_SHIFT (0x00000006u)
  323. #define SATA_P0IE_DPE (0x00000020u)
  324. #define SATA_P0IE_DPE_SHIFT (0x00000005u)
  325. #define SATA_P0IE_UFE (0x00000010u)
  326. #define SATA_P0IE_UFE_SHIFT (0x00000004u)
  327. #define SATA_P0IE_SDBE (0x00000008u)
  328. #define SATA_P0IE_SDBE_SHIFT (0x00000003u)
  329. #define SATA_P0IE_DSE (0x00000004u)
  330. #define SATA_P0IE_DSE_SHIFT (0x00000002u)
  331. #define SATA_P0IE_PSE (0x00000002u)
  332. #define SATA_P0IE_PSE_SHIFT (0x00000001u)
  333. #define SATA_P0IE_DHRE (0x00000001u)
  334. #define SATA_P0IE_DHRE_SHIFT (0x00000000u)
  335. /* P0CMD */
  336. #define SATA_P0CMD_ICC (0xF0000000u)
  337. #define SATA_P0CMD_ICC_SHIFT (0x0000001Cu)
  338. #define SATA_P0CMD_ASP (0x08000000u)
  339. #define SATA_P0CMD_ASP_SHIFT (0x0000001Bu)
  340. #define SATA_P0CMD_ALPE (0x04000000u)
  341. #define SATA_P0CMD_ALPE_SHIFT (0x0000001Au)
  342. #define SATA_P0CMD_DLAE (0x02000000u)
  343. #define SATA_P0CMD_DLAE_SHIFT (0x00000019u)
  344. #define SATA_P0CMD_ATAPI (0x01000000u)
  345. #define SATA_P0CMD_ATAPI_SHIFT (0x00000018u)
  346. #define SATA_P0CMD_ESP (0x00200000u)
  347. #define SATA_P0CMD_ESP_SHIFT (0x00000015u)
  348. #define SATA_P0CMD_CPD (0x00100000u)
  349. #define SATA_P0CMD_CPD_SHIFT (0x00000014u)
  350. #define SATA_P0CMD_MPSP (0x00080000u)
  351. #define SATA_P0CMD_MPSP_SHIFT (0x00000013u)
  352. #define SATA_P0CMD_HPCP (0x00040000u)
  353. #define SATA_P0CMD_HPCP_SHIFT (0x00000012u)
  354. #define SATA_P0CMD_PMA (0x00020000u)
  355. #define SATA_P0CMD_PMA_SHIFT (0x00000011u)
  356. #define SATA_P0CMD_CPS (0x00010000u)
  357. #define SATA_P0CMD_CPS_SHIFT (0x00000010u)
  358. #define SATA_P0CMD_CR (0x00008000u)
  359. #define SATA_P0CMD_CR_SHIFT (0x0000000Fu)
  360. #define SATA_P0CMD_FR (0x00004000u)
  361. #define SATA_P0CMD_FR_SHIFT (0x0000000Eu)
  362. #define SATA_P0CMD_MPSS (0x00002000u)
  363. #define SATA_P0CMD_MPSS_SHIFT (0x0000000Du)
  364. #define SATA_P0CMD_CCS (0x00001F00u)
  365. #define SATA_P0CMD_CCS_SHIFT (0x00000008u)
  366. #define SATA_P0CMD_FRE (0x00000010u)
  367. #define SATA_P0CMD_FRE_SHIFT (0x00000004u)
  368. #define SATA_P0CMD_CLO (0x00000008u)
  369. #define SATA_P0CMD_CLO_SHIFT (0x00000003u)
  370. #define SATA_P0CMD_POD (0x00000004u)
  371. #define SATA_P0CMD_POD_SHIFT (0x00000002u)
  372. #define SATA_P0CMD_SUD (0x00000002u)
  373. #define SATA_P0CMD_SUD_SHIFT (0x00000001u)
  374. #define SATA_P0CMD_ST (0x00000001u)
  375. #define SATA_P0CMD_ST_SHIFT (0x00000000u)
  376. /* P0TFD */
  377. #define SATA_P0TFD_ERR (0x0000FF00u)
  378. #define SATA_P0TFD_ERR_SHIFT (0x00000008u)
  379. #define SATA_P0TFD_STS (0x000000FFu)
  380. #define SATA_P0TFD_STS_SHIFT (0x00000000u)
  381. /* P0SIG */
  382. #define SATA_P0SIG_SIG (0xFFFFFFFFu)
  383. #define SATA_P0SIG_SIG_SHIFT (0x00000000u)
  384. /* P0SSTS */
  385. #define SATA_P0SSTS_IPM (0x00000F00u)
  386. #define SATA_P0SSTS_IPM_SHIFT (0x00000008u)
  387. #define SATA_P0SSTS_SPD (0x000000F0u)
  388. #define SATA_P0SSTS_SPD_SHIFT (0x00000004u)
  389. #define SATA_P0SSTS_DET (0x0000000Fu)
  390. #define SATA_P0SSTS_DET_SHIFT (0x00000000u)
  391. /* P0SCTL */
  392. #define SATA_P0SCTL_IPM (0x00000F00u)
  393. #define SATA_P0SCTL_IPM_SHIFT (0x00000008u)
  394. #define SATA_P0SCTL_SPD (0x000000F0u)
  395. #define SATA_P0SCTL_SPD_SHIFT (0x00000004u)
  396. #define SATA_P0SCTL_DET (0x0000000Fu)
  397. #define SATA_P0SCTL_DET_SHIFT (0x00000000u)
  398. /* P0SERR */
  399. #define SATA_P0SERR_DIAG_X (0x04000000u)
  400. #define SATA_P0SERR_DIAG_X_SHIFT (0x0000001Au)
  401. #define SATA_P0SERR_DIAG_F (0x02000000u)
  402. #define SATA_P0SERR_DIAG_F_SHIFT (0x00000019u)
  403. #define SATA_P0SERR_DIAG_T (0x01000000u)
  404. #define SATA_P0SERR_DIAG_T_SHIFT (0x00000018u)
  405. #define SATA_P0SERR_DIAG_S (0x00800000u)
  406. #define SATA_P0SERR_DIAG_S_SHIFT (0x00000017u)
  407. #define SATA_P0SERR_DIAG_H (0x00400000u)
  408. #define SATA_P0SERR_DIAG_H_SHIFT (0x00000016u)
  409. #define SATA_P0SERR_DIAG_C (0x00200000u)
  410. #define SATA_P0SERR_DIAG_C_SHIFT (0x00000015u)
  411. #define SATA_P0SERR_DIAG_D (0x00100000u)
  412. #define SATA_P0SERR_DIAG_D_SHIFT (0x00000014u)
  413. #define SATA_P0SERR_DIAG_B (0x00080000u)
  414. #define SATA_P0SERR_DIAG_B_SHIFT (0x00000013u)
  415. #define SATA_P0SERR_DIAG_W (0x00040000u)
  416. #define SATA_P0SERR_DIAG_W_SHIFT (0x00000012u)
  417. #define SATA_P0SERR_DIAG_I (0x00020000u)
  418. #define SATA_P0SERR_DIAG_I_SHIFT (0x00000011u)
  419. #define SATA_P0SERR_DIAG_N (0x00010000u)
  420. #define SATA_P0SERR_DIAG_N_SHIFT (0x00000010u)
  421. #define SATA_P0SERR_ERR_E (0x00000800u)
  422. #define SATA_P0SERR_ERR_E_SHIFT (0x0000000Bu)
  423. #define SATA_P0SERR_ERR_P (0x00000400u)
  424. #define SATA_P0SERR_ERR_P_SHIFT (0x0000000Au)
  425. #define SATA_P0SERR_ERR_C (0x00000200u)
  426. #define SATA_P0SERR_ERR_C_SHIFT (0x00000009u)
  427. #define SATA_P0SERR_ERR_T (0x00000100u)
  428. #define SATA_P0SERR_ERR_T_SHIFT (0x00000008u)
  429. #define SATA_P0SERR_ERR_M (0x00000002u)
  430. #define SATA_P0SERR_ERR_M_SHIFT (0x00000001u)
  431. #define SATA_P0SERR_ERR_I (0x00000001u)
  432. #define SATA_P0SERR_ERR_I_SHIFT (0x00000000u)
  433. /* P0SACT */
  434. #define SATA_P0SACT_DS (0xFFFFFFFFu)
  435. #define SATA_P0SACT_DS_SHIFT (0x00000000u)
  436. /* P0CI */
  437. #define SATA_P0CI_CI (0xFFFFFFFFu)
  438. #define SATA_P0CI_CI_SHIFT (0x00000000u)
  439. /* P0SNTF */
  440. #define SATA_P0SNTF_PMN (0x0000FFFFu)
  441. #define SATA_P0SNTF_PMN_SHIFT (0x00000000u)
  442. /* P0DMACR */
  443. #define SATA_P0DMACR_RXABL (0x0000F000u)
  444. #define SATA_P0DMACR_RXABL_SHIFT (0x0000000Cu)
  445. #define SATA_P0DMACR_TXABL (0x00000F00u)
  446. #define SATA_P0DMACR_TXABL_SHIFT (0x00000008u)
  447. #define SATA_P0DMACR_RXTS (0x000000F0u)
  448. #define SATA_P0DMACR_RXTS_SHIFT (0x00000004u)
  449. #define SATA_P0DMACR_TXTS (0x0000000Fu)
  450. #define SATA_P0DMACR_TXTS_SHIFT (0x00000000u)
  451. /* P0PHYCR */
  452. #define SATA_P0PHYCR_ENPLL (0x80000000u)
  453. #define SATA_P0PHYCR_ENPLL_SHIFT (0x0000001Fu)
  454. #define SATA_P0PHYCR_OVERRI (0x40000000u)
  455. #define SATA_P0PHYCR_OVERRI_SHIFT (0x0000001Eu)
  456. #define SATA_P0PHYCR_TXDE (0x03C00000u)
  457. #define SATA_P0PHYCR_TXDE_SHIFT (0x00000016u)
  458. #define SATA_P0PHYCR_TXSWING (0x00380000u)
  459. #define SATA_P0PHYCR_TXSWING_SHIFT (0x00000013u)
  460. #define SATA_P0PHYCR_TXCM (0x00040000u)
  461. #define SATA_P0PHYCR_TXCM_SHIFT (0x00000012u)
  462. #define SATA_P0PHYCR_TXINVPAIR (0x00020000u)
  463. #define SATA_P0PHYCR_TXINVPAIR_SHIFT (0x00000011u)
  464. #define SATA_P0PHYCR_RXEQ (0x0001E000u)
  465. #define SATA_P0PHYCR_RXEQ_SHIFT (0x0000000Du)
  466. #define SATA_P0PHYCR_RXCDR (0x00001C00u)
  467. #define SATA_P0PHYCR_RXCDR_SHIFT (0x0000000Au)
  468. #define SATA_P0PHYCR_RXTERM (0x00000300u)
  469. #define SATA_P0PHYCR_RXTERM_SHIFT (0x00000008u)
  470. #define SATA_P0PHYCR_RXINVPAIR (0x00000080u)
  471. #define SATA_P0PHYCR_RXINVPAIR_SHIFT (0x00000007u)
  472. #define SATA_P0PHYCR_LOS (0x00000040u)
  473. #define SATA_P0PHYCR_LOS_SHIFT (0x00000006u)
  474. #define SATA_P0PHYCR_LB (0x00000030u)
  475. #define SATA_P0PHYCR_LB_SHIFT (0x00000004u)
  476. #define SATA_P0PHYCR_MPY (0x0000000Fu)
  477. #define SATA_P0PHYCR_MPY_SHIFT (0x00000000u)
  478. /* P0PHYSR */
  479. #define SATA_P0PHYSR_SIGDET (0x00000002u)
  480. #define SATA_P0PHYSR_SIGDET_SHIFT (0x00000001u)
  481. #define SATA_P0PHYSR_LOCK (0x00000001u)
  482. #define SATA_P0PHYSR_LOCK_SHIFT (0x00000000u)
  483. #ifdef __cplusplus
  484. }
  485. #endif
  486. #endif