chipcHw_reg.h 37 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530
  1. /*****************************************************************************
  2. * Copyright 2004 - 2008 Broadcom Corporation. All rights reserved.
  3. *
  4. * Unless you and Broadcom execute a separate written software license
  5. * agreement governing use of this software, this software is licensed to you
  6. * under the terms of the GNU General Public License version 2, available at
  7. * http://www.broadcom.com/licenses/GPLv2.php (the "GPL").
  8. *
  9. * Notwithstanding the above, under no circumstances may you combine this
  10. * software in any way with any other Broadcom software provided under a
  11. * license other than the GPL, without Broadcom's express prior written
  12. * consent.
  13. *****************************************************************************/
  14. /****************************************************************************/
  15. /**
  16. * @file chipcHw_reg.h
  17. *
  18. * @brief Definitions for low level chip control registers
  19. *
  20. */
  21. /****************************************************************************/
  22. #ifndef CHIPCHW_REG_H
  23. #define CHIPCHW_REG_H
  24. #include <mach/csp/mm_io.h>
  25. #include <csp/reg.h>
  26. #include <mach/csp/ddrcReg.h>
  27. #define chipcHw_BASE_ADDRESS MM_IO_BASE_CHIPC
  28. typedef struct {
  29. uint32_t ChipId; /* Chip ID */
  30. uint32_t DDRClock; /* PLL1 Channel 1 for DDR clock */
  31. uint32_t ARMClock; /* PLL1 Channel 2 for ARM clock */
  32. uint32_t ESWClock; /* PLL1 Channel 3 for ESW system clock */
  33. uint32_t VPMClock; /* PLL1 Channel 4 for VPM clock */
  34. uint32_t ESW125Clock; /* PLL1 Channel 5 for ESW 125MHz clock */
  35. uint32_t UARTClock; /* PLL1 Channel 6 for UART clock */
  36. uint32_t SDIO0Clock; /* PLL1 Channel 7 for SDIO 0 clock */
  37. uint32_t SDIO1Clock; /* PLL1 Channel 8 for SDIO 1 clock */
  38. uint32_t SPIClock; /* PLL1 Channel 9 for SPI master Clock */
  39. uint32_t ETMClock; /* PLL1 Channel 10 for ARM ETM Clock */
  40. uint32_t ACLKClock; /* ACLK Clock (Divider) */
  41. uint32_t OTPClock; /* OTP Clock (Divider) */
  42. uint32_t I2CClock; /* I2C Clock (CK_13m) (Divider) */
  43. uint32_t I2S0Clock; /* I2S0 Clock (Divider) */
  44. uint32_t RTBUSClock; /* RTBUS (DDR PHY Config.) Clock (Divider) */
  45. uint32_t pad1;
  46. uint32_t APM100Clock; /* APM 100MHz CLK Clock (Divider) */
  47. uint32_t TSCClock; /* TSC Clock (Divider) */
  48. uint32_t LEDClock; /* LED Clock (Divider) */
  49. uint32_t USBClock; /* PLL2 Channel 1 for USB clock */
  50. uint32_t LCDClock; /* PLL2 Channel 2 for LCD clock */
  51. uint32_t APMClock; /* PLL2 Channel 3 for APM 200 MHz clock */
  52. uint32_t BusIntfClock; /* Bus interface clock */
  53. uint32_t PLLStatus; /* PLL status register (PLL1) */
  54. uint32_t PLLConfig; /* PLL configuration register (PLL1) */
  55. uint32_t PLLPreDivider; /* PLL pre-divider control register (PLL1) */
  56. uint32_t PLLDivider; /* PLL divider control register (PLL1) */
  57. uint32_t PLLControl1; /* PLL analog control register #1 (PLL1) */
  58. uint32_t PLLControl2; /* PLL analog control register #2 (PLL1) */
  59. uint32_t I2S1Clock; /* I2S1 Clock */
  60. uint32_t AudioEnable; /* Enable/ disable audio channel */
  61. uint32_t SoftReset1; /* Reset blocks */
  62. uint32_t SoftReset2; /* Reset blocks */
  63. uint32_t Spare1; /* Phase align interrupts */
  64. uint32_t Sticky; /* Sticky bits */
  65. uint32_t MiscCtrl; /* Misc. control */
  66. uint32_t pad3[3];
  67. uint32_t PLLStatus2; /* PLL status register (PLL2) */
  68. uint32_t PLLConfig2; /* PLL configuration register (PLL2) */
  69. uint32_t PLLPreDivider2; /* PLL pre-divider control register (PLL2) */
  70. uint32_t PLLDivider2; /* PLL divider control register (PLL2) */
  71. uint32_t PLLControl12; /* PLL analog control register #1 (PLL2) */
  72. uint32_t PLLControl22; /* PLL analog control register #2 (PLL2) */
  73. uint32_t DDRPhaseCtrl1; /* DDR Clock Phase Alignment control1 */
  74. uint32_t VPMPhaseCtrl1; /* VPM Clock Phase Alignment control1 */
  75. uint32_t PhaseAlignStatus; /* DDR/VPM Clock Phase Alignment Status */
  76. uint32_t PhaseCtrlStatus; /* DDR/VPM Clock HW DDR/VPM ph_ctrl and load_ch Status */
  77. uint32_t DDRPhaseCtrl2; /* DDR Clock Phase Alignment control2 */
  78. uint32_t VPMPhaseCtrl2; /* VPM Clock Phase Alignment control2 */
  79. uint32_t pad4[9];
  80. uint32_t SoftOTP1; /* Software OTP control */
  81. uint32_t SoftOTP2; /* Software OTP control */
  82. uint32_t SoftStraps; /* Software strap */
  83. uint32_t PinStraps; /* Pin Straps */
  84. uint32_t DiffOscCtrl; /* Diff oscillator control */
  85. uint32_t DiagsCtrl; /* Diagnostic control */
  86. uint32_t DiagsOutputCtrl; /* Diagnostic output enable */
  87. uint32_t DiagsReadBackCtrl; /* Diagnostic read back control */
  88. uint32_t LcdPifMode; /* LCD/PIF Pin Sharing MUX Mode */
  89. uint32_t GpioMux_0_7; /* Pin Sharing MUX0 Control */
  90. uint32_t GpioMux_8_15; /* Pin Sharing MUX1 Control */
  91. uint32_t GpioMux_16_23; /* Pin Sharing MUX2 Control */
  92. uint32_t GpioMux_24_31; /* Pin Sharing MUX3 Control */
  93. uint32_t GpioMux_32_39; /* Pin Sharing MUX4 Control */
  94. uint32_t GpioMux_40_47; /* Pin Sharing MUX5 Control */
  95. uint32_t GpioMux_48_55; /* Pin Sharing MUX6 Control */
  96. uint32_t GpioMux_56_63; /* Pin Sharing MUX7 Control */
  97. uint32_t GpioSR_0_7; /* Slew rate for GPIO 0 - 7 */
  98. uint32_t GpioSR_8_15; /* Slew rate for GPIO 8 - 15 */
  99. uint32_t GpioSR_16_23; /* Slew rate for GPIO 16 - 23 */
  100. uint32_t GpioSR_24_31; /* Slew rate for GPIO 24 - 31 */
  101. uint32_t GpioSR_32_39; /* Slew rate for GPIO 32 - 39 */
  102. uint32_t GpioSR_40_47; /* Slew rate for GPIO 40 - 47 */
  103. uint32_t GpioSR_48_55; /* Slew rate for GPIO 48 - 55 */
  104. uint32_t GpioSR_56_63; /* Slew rate for GPIO 56 - 63 */
  105. uint32_t MiscSR_0_7; /* Slew rate for MISC 0 - 7 */
  106. uint32_t MiscSR_8_15; /* Slew rate for MISC 8 - 15 */
  107. uint32_t GpioPull_0_15; /* Pull up registers for GPIO 0 - 15 */
  108. uint32_t GpioPull_16_31; /* Pull up registers for GPIO 16 - 31 */
  109. uint32_t GpioPull_32_47; /* Pull up registers for GPIO 32 - 47 */
  110. uint32_t GpioPull_48_63; /* Pull up registers for GPIO 48 - 63 */
  111. uint32_t MiscPull_0_15; /* Pull up registers for MISC 0 - 15 */
  112. uint32_t GpioInput_0_31; /* Input type for GPIO 0 - 31 */
  113. uint32_t GpioInput_32_63; /* Input type for GPIO 32 - 63 */
  114. uint32_t MiscInput_0_15; /* Input type for MISC 0 - 16 */
  115. } chipcHw_REG_t;
  116. #define pChipcHw ((volatile chipcHw_REG_t *) chipcHw_BASE_ADDRESS)
  117. #define pChipcPhysical ((volatile chipcHw_REG_t *) MM_ADDR_IO_CHIPC)
  118. #define chipcHw_REG_CHIPID_BASE_MASK 0xFFFFF000
  119. #define chipcHw_REG_CHIPID_BASE_SHIFT 12
  120. #define chipcHw_REG_CHIPID_REV_MASK 0x00000FFF
  121. #define chipcHw_REG_REV_A0 0xA00
  122. #define chipcHw_REG_REV_B0 0x0B0
  123. #define chipcHw_REG_PLL_STATUS_CONTROL_ENABLE 0x80000000 /* Allow controlling PLL registers */
  124. #define chipcHw_REG_PLL_STATUS_LOCKED 0x00000001 /* PLL is settled */
  125. #define chipcHw_REG_PLL_CONFIG_D_RESET 0x00000008 /* Digital reset */
  126. #define chipcHw_REG_PLL_CONFIG_A_RESET 0x00000004 /* Analog reset */
  127. #define chipcHw_REG_PLL_CONFIG_BYPASS_ENABLE 0x00000020 /* Bypass enable */
  128. #define chipcHw_REG_PLL_CONFIG_OUTPUT_ENABLE 0x00000010 /* Output enable */
  129. #define chipcHw_REG_PLL_CONFIG_POWER_DOWN 0x00000001 /* Power down */
  130. #define chipcHw_REG_PLL_CONFIG_VCO_SPLIT_FREQ 1600000000 /* 1.6GHz VCO split frequency */
  131. #define chipcHw_REG_PLL_CONFIG_VCO_800_1600 0x00000000 /* VCO range 800-1600 MHz */
  132. #define chipcHw_REG_PLL_CONFIG_VCO_1601_3200 0x00000080 /* VCO range 1601-3200 MHz */
  133. #define chipcHw_REG_PLL_CONFIG_TEST_ENABLE 0x00010000 /* PLL test output enable */
  134. #define chipcHw_REG_PLL_CONFIG_TEST_SELECT_MASK 0x003E0000 /* Mask to set test values */
  135. #define chipcHw_REG_PLL_CONFIG_TEST_SELECT_SHIFT 17
  136. #define chipcHw_REG_PLL_CLOCK_PHASE_COMP 0x00800000 /* Phase comparator output */
  137. #define chipcHw_REG_PLL_CLOCK_TO_BUS_RATIO_MASK 0x00300000 /* Clock to bus ratio mask */
  138. #define chipcHw_REG_PLL_CLOCK_TO_BUS_RATIO_SHIFT 20 /* Number of bits to be shifted */
  139. #define chipcHw_REG_PLL_CLOCK_POWER_DOWN 0x00080000 /* PLL channel power down */
  140. #define chipcHw_REG_PLL_CLOCK_SOURCE_GPIO 0x00040000 /* Use GPIO as source */
  141. #define chipcHw_REG_PLL_CLOCK_BYPASS_SELECT 0x00020000 /* Select bypass clock */
  142. #define chipcHw_REG_PLL_CLOCK_OUTPUT_ENABLE 0x00010000 /* Clock gated ON */
  143. #define chipcHw_REG_PLL_CLOCK_PHASE_UPDATE_ENABLE 0x00008000 /* Clock phase update enable */
  144. #define chipcHw_REG_PLL_CLOCK_PHASE_CONTROL_SHIFT 8 /* Number of bits to be shifted */
  145. #define chipcHw_REG_PLL_CLOCK_PHASE_CONTROL_MASK 0x00003F00 /* Phase control mask */
  146. #define chipcHw_REG_PLL_CLOCK_MDIV_MASK 0x000000FF /* Clock post divider mask
  147. 00000000 = divide-by-256
  148. 00000001 = divide-by-1
  149. 00000010 = divide-by-2
  150. 00000011 = divide-by-3
  151. 00000100 = divide-by-4
  152. 00000101 = divide-by-5
  153. 00000110 = divide-by-6
  154. .
  155. .
  156. 11111011 = divide-by-251
  157. 11111100 = divide-by-252
  158. 11111101 = divide-by-253
  159. 11111110 = divide-by-254
  160. */
  161. #define chipcHw_REG_DIV_CLOCK_SOURCE_OTHER 0x00040000 /* NON-PLL clock source select */
  162. #define chipcHw_REG_DIV_CLOCK_BYPASS_SELECT 0x00020000 /* NON-PLL clock bypass enable */
  163. #define chipcHw_REG_DIV_CLOCK_OUTPUT_ENABLE 0x00010000 /* NON-PLL clock output enable */
  164. #define chipcHw_REG_DIV_CLOCK_DIV_MASK 0x000000FF /* NON-PLL clock post-divide mask */
  165. #define chipcHw_REG_DIV_CLOCK_DIV_256 0x00000000 /* NON-PLL clock post-divide by 256 */
  166. #define chipcHw_REG_PLL_PREDIVIDER_P1_SHIFT 0
  167. #define chipcHw_REG_PLL_PREDIVIDER_P2_SHIFT 4
  168. #define chipcHw_REG_PLL_PREDIVIDER_NDIV_SHIFT 8
  169. #define chipcHw_REG_PLL_PREDIVIDER_NDIV_MASK 0x0001FF00
  170. #define chipcHw_REG_PLL_PREDIVIDER_POWER_DOWN 0x02000000
  171. #define chipcHw_REG_PLL_PREDIVIDER_NDIV_MODE_MASK 0x00700000 /* Divider mask */
  172. #define chipcHw_REG_PLL_PREDIVIDER_NDIV_MODE_INTEGER 0x00000000 /* Integer-N Mode */
  173. #define chipcHw_REG_PLL_PREDIVIDER_NDIV_MODE_MASH_UNIT 0x00100000 /* MASH Sigma-Delta Modulator Unit Mode */
  174. #define chipcHw_REG_PLL_PREDIVIDER_NDIV_MODE_MFB_UNIT 0x00200000 /* MFB Sigma-Delta Modulator Unit Mode */
  175. #define chipcHw_REG_PLL_PREDIVIDER_NDIV_MODE_MASH_1_8 0x00300000 /* MASH Sigma-Delta Modulator 1/8 Mode */
  176. #define chipcHw_REG_PLL_PREDIVIDER_NDIV_MODE_MFB_1_8 0x00400000 /* MFB Sigma-Delta Modulator 1/8 Mode */
  177. #define chipcHw_REG_PLL_PREDIVIDER_NDIV_i(vco) ((vco) / chipcHw_XTAL_FREQ_Hz)
  178. #define chipcHw_REG_PLL_PREDIVIDER_P1 1
  179. #define chipcHw_REG_PLL_PREDIVIDER_P2 1
  180. #define chipcHw_REG_PLL_DIVIDER_M1DIV 0x03000000
  181. #define chipcHw_REG_PLL_DIVIDER_FRAC 0x00FFFFFF /* Fractional divider */
  182. #define chipcHw_REG_PLL_DIVIDER_NDIV_f_SS (0x00FFFFFF) /* To attain spread with max frequency */
  183. #define chipcHw_REG_PLL_DIVIDER_NDIV_f 0 /* ndiv_frac = chipcHw_REG_PLL_DIVIDER_NDIV_f /
  184. chipcHw_REG_PLL_DIVIDER_FRAC
  185. = 0, when SS is disable
  186. */
  187. #define chipcHw_REG_PLL_DIVIDER_MDIV(vco, Hz) ((chipcHw_divide((vco), (Hz)) > 255) ? 0 : chipcHw_divide((vco), (Hz)))
  188. #define chipcHw_REG_ACLKClock_CLK_DIV_MASK 0x3
  189. /* System booting strap options */
  190. #define chipcHw_STRAPS_SOFT_OVERRIDE 0x00000001 /* Software Strap Override */
  191. #define chipcHw_STRAPS_BOOT_DEVICE_NAND_FLASH_8 0x00000000 /* 8 bit NAND FLASH Boot */
  192. #define chipcHw_STRAPS_BOOT_DEVICE_NOR_FLASH_16 0x00000002 /* 16 bit NOR FLASH Boot */
  193. #define chipcHw_STRAPS_BOOT_DEVICE_SERIAL_FLASH 0x00000004 /* Serial FLASH Boot */
  194. #define chipcHw_STRAPS_BOOT_DEVICE_NAND_FLASH_16 0x00000006 /* 16 bit NAND FLASH Boot */
  195. #define chipcHw_STRAPS_BOOT_DEVICE_UART 0x00000008 /* UART Boot */
  196. #define chipcHw_STRAPS_BOOT_DEVICE_MASK 0x0000000E /* Mask */
  197. /* System boot option */
  198. #define chipcHw_STRAPS_BOOT_OPTION_BROM 0x00000000 /* Boot from Boot ROM */
  199. #define chipcHw_STRAPS_BOOT_OPTION_ARAM 0x00000020 /* Boot from ARAM */
  200. #define chipcHw_STRAPS_BOOT_OPTION_NOR 0x00000030 /* Boot from NOR flash */
  201. /* NAND Flash page size strap options */
  202. #define chipcHw_STRAPS_NAND_PAGESIZE_512 0x00000000 /* NAND FLASH page size of 512 bytes */
  203. #define chipcHw_STRAPS_NAND_PAGESIZE_2048 0x00000040 /* NAND FLASH page size of 2048 bytes */
  204. #define chipcHw_STRAPS_NAND_PAGESIZE_4096 0x00000080 /* NAND FLASH page size of 4096 bytes */
  205. #define chipcHw_STRAPS_NAND_PAGESIZE_EXT 0x000000C0 /* NAND FLASH page of extened size */
  206. #define chipcHw_STRAPS_NAND_PAGESIZE_MASK 0x000000C0 /* Mask */
  207. #define chipcHw_STRAPS_NAND_EXTRA_CYCLE 0x00000400 /* NAND FLASH address cycle configuration */
  208. #define chipcHw_STRAPS_REBOOT_TO_UART 0x00000800 /* Reboot to UART on error */
  209. /* Secure boot mode strap options */
  210. #define chipcHw_STRAPS_BOOT_MODE_NORMAL 0x00000000 /* Normal Boot */
  211. #define chipcHw_STRAPS_BOOT_MODE_DBG_SW 0x00000100 /* Software debugging Boot */
  212. #define chipcHw_STRAPS_BOOT_MODE_DBG_BOOT 0x00000200 /* Boot rom debugging Boot */
  213. #define chipcHw_STRAPS_BOOT_MODE_NORMAL_QUIET 0x00000300 /* Normal Boot (Quiet BootRom) */
  214. #define chipcHw_STRAPS_BOOT_MODE_MASK 0x00000300 /* Mask */
  215. /* Slave Mode straps */
  216. #define chipcHw_STRAPS_I2CS 0x02000000 /* I2C Slave */
  217. #define chipcHw_STRAPS_SPIS 0x01000000 /* SPI Slave */
  218. /* Strap pin options */
  219. #define chipcHw_REG_SW_STRAPS ((pChipcHw->PinStraps & 0x0000FC00) >> 10)
  220. /* PIF/LCD pin sharing defines */
  221. #define chipcHw_REG_LCD_PIN_ENABLE 0x00000001 /* LCD Controller is used and the pins have LCD functions */
  222. #define chipcHw_REG_PIF_PIN_ENABLE 0x00000002 /* LCD pins are used to perform PIF functions */
  223. #define chipcHw_GPIO_COUNT 61 /* Number of GPIO pin accessible thorugh CHIPC */
  224. /* NOTE: Any changes to these constants will require a corresponding change to chipcHw_str.c */
  225. #define chipcHw_REG_GPIO_MUX_KEYPAD 0x00000001 /* GPIO mux for Keypad */
  226. #define chipcHw_REG_GPIO_MUX_I2CH 0x00000002 /* GPIO mux for I2CH */
  227. #define chipcHw_REG_GPIO_MUX_SPI 0x00000003 /* GPIO mux for SPI */
  228. #define chipcHw_REG_GPIO_MUX_UART 0x00000004 /* GPIO mux for UART */
  229. #define chipcHw_REG_GPIO_MUX_LEDMTXP 0x00000005 /* GPIO mux for LEDMTXP */
  230. #define chipcHw_REG_GPIO_MUX_LEDMTXS 0x00000006 /* GPIO mux for LEDMTXS */
  231. #define chipcHw_REG_GPIO_MUX_SDIO0 0x00000007 /* GPIO mux for SDIO0 */
  232. #define chipcHw_REG_GPIO_MUX_SDIO1 0x00000008 /* GPIO mux for SDIO1 */
  233. #define chipcHw_REG_GPIO_MUX_PCM 0x00000009 /* GPIO mux for PCM */
  234. #define chipcHw_REG_GPIO_MUX_I2S 0x0000000A /* GPIO mux for I2S */
  235. #define chipcHw_REG_GPIO_MUX_ETM 0x0000000B /* GPIO mux for ETM */
  236. #define chipcHw_REG_GPIO_MUX_DEBUG 0x0000000C /* GPIO mux for DEBUG */
  237. #define chipcHw_REG_GPIO_MUX_MISC 0x0000000D /* GPIO mux for MISC */
  238. #define chipcHw_REG_GPIO_MUX_GPIO 0x00000000 /* GPIO mux for GPIO */
  239. #define chipcHw_REG_GPIO_MUX(pin) (&pChipcHw->GpioMux_0_7 + ((pin) >> 3))
  240. #define chipcHw_REG_GPIO_MUX_POSITION(pin) (((pin) & 0x00000007) << 2)
  241. #define chipcHw_REG_GPIO_MUX_MASK 0x0000000F /* Mask */
  242. #define chipcHw_REG_SLEW_RATE_HIGH 0x00000000 /* High speed slew rate */
  243. #define chipcHw_REG_SLEW_RATE_NORMAL 0x00000008 /* Normal slew rate */
  244. /* Pins beyond 42 are defined by skipping 8 bits within the register */
  245. #define chipcHw_REG_SLEW_RATE(pin) (((pin) > 42) ? (&pChipcHw->GpioSR_0_7 + (((pin) + 2) >> 3)) : (&pChipcHw->GpioSR_0_7 + ((pin) >> 3)))
  246. #define chipcHw_REG_SLEW_RATE_POSITION(pin) (((pin) > 42) ? ((((pin) + 2) & 0x00000007) << 2) : (((pin) & 0x00000007) << 2))
  247. #define chipcHw_REG_SLEW_RATE_MASK 0x00000008 /* Mask */
  248. #define chipcHw_REG_CURRENT_STRENGTH_2mA 0x00000001 /* Current driving strength 2 milli ampere */
  249. #define chipcHw_REG_CURRENT_STRENGTH_4mA 0x00000002 /* Current driving strength 4 milli ampere */
  250. #define chipcHw_REG_CURRENT_STRENGTH_6mA 0x00000004 /* Current driving strength 6 milli ampere */
  251. #define chipcHw_REG_CURRENT_STRENGTH_8mA 0x00000005 /* Current driving strength 8 milli ampere */
  252. #define chipcHw_REG_CURRENT_STRENGTH_10mA 0x00000006 /* Current driving strength 10 milli ampere */
  253. #define chipcHw_REG_CURRENT_STRENGTH_12mA 0x00000007 /* Current driving strength 12 milli ampere */
  254. #define chipcHw_REG_CURRENT_MASK 0x00000007 /* Mask */
  255. /* Pins beyond 42 are defined by skipping 8 bits */
  256. #define chipcHw_REG_CURRENT(pin) (((pin) > 42) ? (&pChipcHw->GpioSR_0_7 + (((pin) + 2) >> 3)) : (&pChipcHw->GpioSR_0_7 + ((pin) >> 3)))
  257. #define chipcHw_REG_CURRENT_POSITION(pin) (((pin) > 42) ? ((((pin) + 2) & 0x00000007) << 2) : (((pin) & 0x00000007) << 2))
  258. #define chipcHw_REG_PULL_NONE 0x00000000 /* No pull up register */
  259. #define chipcHw_REG_PULL_UP 0x00000001 /* Pull up register enable */
  260. #define chipcHw_REG_PULL_DOWN 0x00000002 /* Pull down register enable */
  261. #define chipcHw_REG_PULLUP_MASK 0x00000003 /* Mask */
  262. /* Pins beyond 42 are defined by skipping 4 bits */
  263. #define chipcHw_REG_PULLUP(pin) (((pin) > 42) ? (&pChipcHw->GpioPull_0_15 + (((pin) + 2) >> 4)) : (&pChipcHw->GpioPull_0_15 + ((pin) >> 4)))
  264. #define chipcHw_REG_PULLUP_POSITION(pin) (((pin) > 42) ? ((((pin) + 2) & 0x0000000F) << 1) : (((pin) & 0x0000000F) << 1))
  265. #define chipcHw_REG_INPUTTYPE_CMOS 0x00000000 /* Normal CMOS logic */
  266. #define chipcHw_REG_INPUTTYPE_ST 0x00000001 /* High speed Schmitt Trigger */
  267. #define chipcHw_REG_INPUTTYPE_MASK 0x00000001 /* Mask */
  268. /* Pins beyond 42 are defined by skipping 2 bits */
  269. #define chipcHw_REG_INPUTTYPE(pin) (((pin) > 42) ? (&pChipcHw->GpioInput_0_31 + (((pin) + 2) >> 5)) : (&pChipcHw->GpioInput_0_31 + ((pin) >> 5)))
  270. #define chipcHw_REG_INPUTTYPE_POSITION(pin) (((pin) > 42) ? ((((pin) + 2) & 0x0000001F)) : (((pin) & 0x0000001F)))
  271. /* Device connected to the bus clock */
  272. #define chipcHw_REG_BUS_CLOCK_ARM 0x00000001 /* Bus interface clock for ARM */
  273. #define chipcHw_REG_BUS_CLOCK_VDEC 0x00000002 /* Bus interface clock for VDEC */
  274. #define chipcHw_REG_BUS_CLOCK_ARAM 0x00000004 /* Bus interface clock for ARAM */
  275. #define chipcHw_REG_BUS_CLOCK_HPM 0x00000008 /* Bus interface clock for HPM */
  276. #define chipcHw_REG_BUS_CLOCK_DDRC 0x00000010 /* Bus interface clock for DDRC */
  277. #define chipcHw_REG_BUS_CLOCK_DMAC0 0x00000020 /* Bus interface clock for DMAC0 */
  278. #define chipcHw_REG_BUS_CLOCK_DMAC1 0x00000040 /* Bus interface clock for DMAC1 */
  279. #define chipcHw_REG_BUS_CLOCK_NVI 0x00000080 /* Bus interface clock for NVI */
  280. #define chipcHw_REG_BUS_CLOCK_ESW 0x00000100 /* Bus interface clock for ESW */
  281. #define chipcHw_REG_BUS_CLOCK_GE 0x00000200 /* Bus interface clock for GE */
  282. #define chipcHw_REG_BUS_CLOCK_I2CH 0x00000400 /* Bus interface clock for I2CH */
  283. #define chipcHw_REG_BUS_CLOCK_I2S0 0x00000800 /* Bus interface clock for I2S0 */
  284. #define chipcHw_REG_BUS_CLOCK_I2S1 0x00001000 /* Bus interface clock for I2S1 */
  285. #define chipcHw_REG_BUS_CLOCK_VRAM 0x00002000 /* Bus interface clock for VRAM */
  286. #define chipcHw_REG_BUS_CLOCK_CLCD 0x00004000 /* Bus interface clock for CLCD */
  287. #define chipcHw_REG_BUS_CLOCK_LDK 0x00008000 /* Bus interface clock for LDK */
  288. #define chipcHw_REG_BUS_CLOCK_LED 0x00010000 /* Bus interface clock for LED */
  289. #define chipcHw_REG_BUS_CLOCK_OTP 0x00020000 /* Bus interface clock for OTP */
  290. #define chipcHw_REG_BUS_CLOCK_PIF 0x00040000 /* Bus interface clock for PIF */
  291. #define chipcHw_REG_BUS_CLOCK_SPU 0x00080000 /* Bus interface clock for SPU */
  292. #define chipcHw_REG_BUS_CLOCK_SDIO0 0x00100000 /* Bus interface clock for SDIO0 */
  293. #define chipcHw_REG_BUS_CLOCK_SDIO1 0x00200000 /* Bus interface clock for SDIO1 */
  294. #define chipcHw_REG_BUS_CLOCK_SPIH 0x00400000 /* Bus interface clock for SPIH */
  295. #define chipcHw_REG_BUS_CLOCK_SPIS 0x00800000 /* Bus interface clock for SPIS */
  296. #define chipcHw_REG_BUS_CLOCK_UART0 0x01000000 /* Bus interface clock for UART0 */
  297. #define chipcHw_REG_BUS_CLOCK_UART1 0x02000000 /* Bus interface clock for UART1 */
  298. #define chipcHw_REG_BUS_CLOCK_BBL 0x04000000 /* Bus interface clock for BBL */
  299. #define chipcHw_REG_BUS_CLOCK_I2CS 0x08000000 /* Bus interface clock for I2CS */
  300. #define chipcHw_REG_BUS_CLOCK_USBH 0x10000000 /* Bus interface clock for USB Host */
  301. #define chipcHw_REG_BUS_CLOCK_USBD 0x20000000 /* Bus interface clock for USB Device */
  302. #define chipcHw_REG_BUS_CLOCK_BROM 0x40000000 /* Bus interface clock for Boot ROM */
  303. #define chipcHw_REG_BUS_CLOCK_TSC 0x80000000 /* Bus interface clock for Touch screen */
  304. /* Software resets defines */
  305. #define chipcHw_REG_SOFT_RESET_VPM_GLOBAL_HOLD 0x0000000080000000ULL /* Reset Global VPM and hold */
  306. #define chipcHw_REG_SOFT_RESET_VPM_HOLD 0x0000000040000000ULL /* Reset VPM and hold */
  307. #define chipcHw_REG_SOFT_RESET_VPM_GLOBAL 0x0000000020000000ULL /* Reset Global VPM */
  308. #define chipcHw_REG_SOFT_RESET_VPM 0x0000000010000000ULL /* Reset VPM */
  309. #define chipcHw_REG_SOFT_RESET_KEYPAD 0x0000000008000000ULL /* Reset Key pad */
  310. #define chipcHw_REG_SOFT_RESET_LED 0x0000000004000000ULL /* Reset LED */
  311. #define chipcHw_REG_SOFT_RESET_SPU 0x0000000002000000ULL /* Reset SPU */
  312. #define chipcHw_REG_SOFT_RESET_RNG 0x0000000001000000ULL /* Reset RNG */
  313. #define chipcHw_REG_SOFT_RESET_PKA 0x0000000000800000ULL /* Reset PKA */
  314. #define chipcHw_REG_SOFT_RESET_LCD 0x0000000000400000ULL /* Reset LCD */
  315. #define chipcHw_REG_SOFT_RESET_PIF 0x0000000000200000ULL /* Reset PIF */
  316. #define chipcHw_REG_SOFT_RESET_I2CS 0x0000000000100000ULL /* Reset I2C Slave */
  317. #define chipcHw_REG_SOFT_RESET_I2CH 0x0000000000080000ULL /* Reset I2C Host */
  318. #define chipcHw_REG_SOFT_RESET_SDIO1 0x0000000000040000ULL /* Reset SDIO 1 */
  319. #define chipcHw_REG_SOFT_RESET_SDIO0 0x0000000000020000ULL /* Reset SDIO 0 */
  320. #define chipcHw_REG_SOFT_RESET_BBL 0x0000000000010000ULL /* Reset BBL */
  321. #define chipcHw_REG_SOFT_RESET_I2S1 0x0000000000008000ULL /* Reset I2S1 */
  322. #define chipcHw_REG_SOFT_RESET_I2S0 0x0000000000004000ULL /* Reset I2S0 */
  323. #define chipcHw_REG_SOFT_RESET_SPIS 0x0000000000002000ULL /* Reset SPI Slave */
  324. #define chipcHw_REG_SOFT_RESET_SPIH 0x0000000000001000ULL /* Reset SPI Host */
  325. #define chipcHw_REG_SOFT_RESET_GPIO1 0x0000000000000800ULL /* Reset GPIO block 1 */
  326. #define chipcHw_REG_SOFT_RESET_GPIO0 0x0000000000000400ULL /* Reset GPIO block 0 */
  327. #define chipcHw_REG_SOFT_RESET_UART1 0x0000000000000200ULL /* Reset UART 1 */
  328. #define chipcHw_REG_SOFT_RESET_UART0 0x0000000000000100ULL /* Reset UART 0 */
  329. #define chipcHw_REG_SOFT_RESET_NVI 0x0000000000000080ULL /* Reset NVI */
  330. #define chipcHw_REG_SOFT_RESET_WDOG 0x0000000000000040ULL /* Reset Watch dog */
  331. #define chipcHw_REG_SOFT_RESET_TMR 0x0000000000000020ULL /* Reset Timer */
  332. #define chipcHw_REG_SOFT_RESET_ETM 0x0000000000000010ULL /* Reset ETM */
  333. #define chipcHw_REG_SOFT_RESET_ARM_HOLD 0x0000000000000008ULL /* Reset ARM and HOLD */
  334. #define chipcHw_REG_SOFT_RESET_ARM 0x0000000000000004ULL /* Reset ARM */
  335. #define chipcHw_REG_SOFT_RESET_CHIP_WARM 0x0000000000000002ULL /* Chip warm reset */
  336. #define chipcHw_REG_SOFT_RESET_CHIP_SOFT 0x0000000000000001ULL /* Chip soft reset */
  337. #define chipcHw_REG_SOFT_RESET_VDEC 0x0000100000000000ULL /* Video decoder */
  338. #define chipcHw_REG_SOFT_RESET_GE 0x0000080000000000ULL /* Graphics engine */
  339. #define chipcHw_REG_SOFT_RESET_OTP 0x0000040000000000ULL /* Reset OTP */
  340. #define chipcHw_REG_SOFT_RESET_USB2 0x0000020000000000ULL /* Reset USB2 */
  341. #define chipcHw_REG_SOFT_RESET_USB1 0x0000010000000000ULL /* Reset USB 1 */
  342. #define chipcHw_REG_SOFT_RESET_USB 0x0000008000000000ULL /* Reset USB 1 and USB2 soft reset */
  343. #define chipcHw_REG_SOFT_RESET_ESW 0x0000004000000000ULL /* Reset Ethernet switch */
  344. #define chipcHw_REG_SOFT_RESET_ESWCLK 0x0000002000000000ULL /* Reset Ethernet switch clock */
  345. #define chipcHw_REG_SOFT_RESET_DDRPHY 0x0000001000000000ULL /* Reset DDR Physical */
  346. #define chipcHw_REG_SOFT_RESET_DDR 0x0000000800000000ULL /* Reset DDR Controller */
  347. #define chipcHw_REG_SOFT_RESET_TSC 0x0000000400000000ULL /* Reset Touch screen */
  348. #define chipcHw_REG_SOFT_RESET_PCM 0x0000000200000000ULL /* Reset PCM device */
  349. #define chipcHw_REG_SOFT_RESET_APM 0x0000200100000000ULL /* Reset APM device */
  350. #define chipcHw_REG_SOFT_RESET_VPM_GLOBAL_UNHOLD 0x8000000000000000ULL /* Unhold Global VPM */
  351. #define chipcHw_REG_SOFT_RESET_VPM_UNHOLD 0x4000000000000000ULL /* Unhold VPM */
  352. #define chipcHw_REG_SOFT_RESET_ARM_UNHOLD 0x2000000000000000ULL /* Unhold ARM reset */
  353. #define chipcHw_REG_SOFT_RESET_UNHOLD_MASK 0xF000000000000000ULL /* Mask to handle unhold request */
  354. /* Audio channel control defines */
  355. #define chipcHw_REG_AUDIO_CHANNEL_ENABLE_ALL 0x00000001 /* Enable all audio channel */
  356. #define chipcHw_REG_AUDIO_CHANNEL_ENABLE_A 0x00000002 /* Enable channel A */
  357. #define chipcHw_REG_AUDIO_CHANNEL_ENABLE_B 0x00000004 /* Enable channel B */
  358. #define chipcHw_REG_AUDIO_CHANNEL_ENABLE_C 0x00000008 /* Enable channel C */
  359. #define chipcHw_REG_AUDIO_CHANNEL_ENABLE_NTP_CLOCK 0x00000010 /* Enable NTP clock */
  360. #define chipcHw_REG_AUDIO_CHANNEL_ENABLE_PCM0_CLOCK 0x00000020 /* Enable PCM0 clock */
  361. #define chipcHw_REG_AUDIO_CHANNEL_ENABLE_PCM1_CLOCK 0x00000040 /* Enable PCM1 clock */
  362. #define chipcHw_REG_AUDIO_CHANNEL_ENABLE_APM_CLOCK 0x00000080 /* Enable APM clock */
  363. /* Misc. chip control defines */
  364. #define chipcHw_REG_MISC_CTRL_GE_SEL 0x00040000 /* Select GE2/GE3 */
  365. #define chipcHw_REG_MISC_CTRL_I2S1_CLOCK_ONCHIP 0x00000000 /* Use on chip clock for I2S1 */
  366. #define chipcHw_REG_MISC_CTRL_I2S1_CLOCK_GPIO 0x00020000 /* Use external clock via GPIO pin 26 for I2S1 */
  367. #define chipcHw_REG_MISC_CTRL_I2S0_CLOCK_ONCHIP 0x00000000 /* Use on chip clock for I2S0 */
  368. #define chipcHw_REG_MISC_CTRL_I2S0_CLOCK_GPIO 0x00010000 /* Use external clock via GPIO pin 45 for I2S0 */
  369. #define chipcHw_REG_MISC_CTRL_ARM_CP15_DISABLE 0x00008000 /* Disable ARM CP15 bit */
  370. #define chipcHw_REG_MISC_CTRL_RTC_DISABLE 0x00000008 /* Disable RTC registers */
  371. #define chipcHw_REG_MISC_CTRL_BBRAM_DISABLE 0x00000004 /* Disable Battery Backed RAM */
  372. #define chipcHw_REG_MISC_CTRL_USB_MODE_HOST 0x00000002 /* Set USB as host */
  373. #define chipcHw_REG_MISC_CTRL_USB_MODE_DEVICE 0xFFFFFFFD /* Set USB as device */
  374. #define chipcHw_REG_MISC_CTRL_USB_POWERON 0xFFFFFFFE /* Power up USB */
  375. #define chipcHw_REG_MISC_CTRL_USB_POWEROFF 0x00000001 /* Power down USB */
  376. /* OTP configuration defines */
  377. #define chipcHw_REG_OTP_SECURITY_OFF 0x0000020000000000ULL /* Security support is OFF */
  378. #define chipcHw_REG_OTP_SPU_SLOW 0x0000010000000000ULL /* Limited SPU throughput */
  379. #define chipcHw_REG_OTP_LCD_SPEED 0x0000000600000000ULL /* Set VPM speed one */
  380. #define chipcHw_REG_OTP_VPM_SPEED_1 0x0000000100000000ULL /* Set VPM speed one */
  381. #define chipcHw_REG_OTP_VPM_SPEED_0 0x0000000080000000ULL /* Set VPM speed zero */
  382. #define chipcHw_REG_OTP_AXI_SPEED 0x0000000060000000ULL /* Set maximum AXI bus speed */
  383. #define chipcHw_REG_OTP_APM_DISABLE 0x000000001F000000ULL /* Disable APM */
  384. #define chipcHw_REG_OTP_PIF_DISABLE 0x0000000000200000ULL /* Disable PIF */
  385. #define chipcHw_REG_OTP_VDEC_DISABLE 0x0000000000100000ULL /* Disable Video decoder */
  386. #define chipcHw_REG_OTP_BBL_DISABLE 0x0000000000080000ULL /* Disable RTC and BBRAM */
  387. #define chipcHw_REG_OTP_LED_DISABLE 0x0000000000040000ULL /* Disable LED */
  388. #define chipcHw_REG_OTP_GE_DISABLE 0x0000000000020000ULL /* Disable Graphics Engine */
  389. #define chipcHw_REG_OTP_LCD_DISABLE 0x0000000000010000ULL /* Disable LCD */
  390. #define chipcHw_REG_OTP_KEYPAD_DISABLE 0x0000000000008000ULL /* Disable keypad */
  391. #define chipcHw_REG_OTP_UART_DISABLE 0x0000000000004000ULL /* Disable UART */
  392. #define chipcHw_REG_OTP_SDIOH_DISABLE 0x0000000000003000ULL /* Disable SDIO host */
  393. #define chipcHw_REG_OTP_HSS_DISABLE 0x0000000000000C00ULL /* Disable HSS */
  394. #define chipcHw_REG_OTP_TSC_DISABLE 0x0000000000000200ULL /* Disable touch screen */
  395. #define chipcHw_REG_OTP_USB_DISABLE 0x0000000000000180ULL /* Disable USB */
  396. #define chipcHw_REG_OTP_SGMII_DISABLE 0x0000000000000060ULL /* Disable SGMII */
  397. #define chipcHw_REG_OTP_ETH_DISABLE 0x0000000000000018ULL /* Disable gigabit ethernet */
  398. #define chipcHw_REG_OTP_ETH_PHY_DISABLE 0x0000000000000006ULL /* Disable ethernet PHY */
  399. #define chipcHw_REG_OTP_VPM_DISABLE 0x0000000000000001ULL /* Disable VPM */
  400. /* Sticky bit defines */
  401. #define chipcHw_REG_STICKY_BOOT_DONE 0x00000001 /* Boot done */
  402. #define chipcHw_REG_STICKY_SOFT_RESET 0x00000002 /* ARM soft reset */
  403. #define chipcHw_REG_STICKY_GENERAL_1 0x00000004 /* General purpose bit 1 */
  404. #define chipcHw_REG_STICKY_GENERAL_2 0x00000008 /* General purpose bit 2 */
  405. #define chipcHw_REG_STICKY_GENERAL_3 0x00000010 /* General purpose bit 3 */
  406. #define chipcHw_REG_STICKY_GENERAL_4 0x00000020 /* General purpose bit 4 */
  407. #define chipcHw_REG_STICKY_GENERAL_5 0x00000040 /* General purpose bit 5 */
  408. #define chipcHw_REG_STICKY_POR_BROM 0x00000080 /* Special sticky bit for security - set in BROM to avoid other modes being entered */
  409. #define chipcHw_REG_STICKY_ARM_RESET 0x00000100 /* ARM reset */
  410. #define chipcHw_REG_STICKY_CHIP_SOFT_RESET 0x00000200 /* Chip soft reset */
  411. #define chipcHw_REG_STICKY_CHIP_WARM_RESET 0x00000400 /* Chip warm reset */
  412. #define chipcHw_REG_STICKY_WDOG_RESET 0x00000800 /* Watchdog reset */
  413. #define chipcHw_REG_STICKY_OTP_RESET 0x00001000 /* OTP reset */
  414. /* HW phase alignment defines *//* Spare1 register definitions */
  415. #define chipcHw_REG_SPARE1_DDR_PHASE_INTR_ENABLE 0x80000000 /* Enable DDR phase align panic interrupt */
  416. #define chipcHw_REG_SPARE1_VPM_PHASE_INTR_ENABLE 0x40000000 /* Enable VPM phase align panic interrupt */
  417. #define chipcHw_REG_SPARE1_VPM_BUS_ACCESS_ENABLE 0x00000002 /* Enable access to VPM using system BUS */
  418. #define chipcHw_REG_SPARE1_DDR_BUS_ACCESS_ENABLE 0x00000001 /* Enable access to DDR using system BUS */
  419. /* DDRPhaseCtrl1 register definitions */
  420. #define chipcHw_REG_DDR_SW_PHASE_CTRL_ENABLE 0x80000000 /* Enable DDR SW phase alignment */
  421. #define chipcHw_REG_DDR_HW_PHASE_CTRL_ENABLE 0x40000000 /* Enable DDR HW phase alignment */
  422. #define chipcHw_REG_DDR_PHASE_VALUE_GE_MASK 0x0000007F /* DDR lower threshold for phase alignment */
  423. #define chipcHw_REG_DDR_PHASE_VALUE_GE_SHIFT 23
  424. #define chipcHw_REG_DDR_PHASE_VALUE_LE_MASK 0x0000007F /* DDR upper threshold for phase alignment */
  425. #define chipcHw_REG_DDR_PHASE_VALUE_LE_SHIFT 16
  426. #define chipcHw_REG_DDR_PHASE_ALIGN_WAIT_CYCLE_MASK 0x0000FFFF /* BUS Cycle to wait to run next DDR phase alignment */
  427. #define chipcHw_REG_DDR_PHASE_ALIGN_WAIT_CYCLE_SHIFT 0
  428. /* VPMPhaseCtrl1 register definitions */
  429. #define chipcHw_REG_VPM_SW_PHASE_CTRL_ENABLE 0x80000000 /* Enable VPM SW phase alignment */
  430. #define chipcHw_REG_VPM_HW_PHASE_CTRL_ENABLE 0x40000000 /* Enable VPM HW phase alignment */
  431. #define chipcHw_REG_VPM_PHASE_VALUE_GE_MASK 0x0000007F /* VPM lower threshold for phase alignment */
  432. #define chipcHw_REG_VPM_PHASE_VALUE_GE_SHIFT 23
  433. #define chipcHw_REG_VPM_PHASE_VALUE_LE_MASK 0x0000007F /* VPM upper threshold for phase alignment */
  434. #define chipcHw_REG_VPM_PHASE_VALUE_LE_SHIFT 16
  435. #define chipcHw_REG_VPM_PHASE_ALIGN_WAIT_CYCLE_MASK 0x0000FFFF /* BUS Cycle to wait to complete the VPM phase alignment */
  436. #define chipcHw_REG_VPM_PHASE_ALIGN_WAIT_CYCLE_SHIFT 0
  437. /* PhaseAlignStatus register definitions */
  438. #define chipcHw_REG_DDR_TIMEOUT_INTR_STATUS 0x80000000 /* DDR time out interrupt status */
  439. #define chipcHw_REG_DDR_PHASE_STATUS_MASK 0x0000007F /* DDR phase status value */
  440. #define chipcHw_REG_DDR_PHASE_STATUS_SHIFT 24
  441. #define chipcHw_REG_DDR_PHASE_ALIGNED 0x00800000 /* DDR Phase aligned status */
  442. #define chipcHw_REG_DDR_LOAD 0x00400000 /* Load DDR phase status */
  443. #define chipcHw_REG_DDR_PHASE_CTRL_MASK 0x0000003F /* DDR phase control value */
  444. #define chipcHw_REG_DDR_PHASE_CTRL_SHIFT 16
  445. #define chipcHw_REG_VPM_TIMEOUT_INTR_STATUS 0x80000000 /* VPM time out interrupt status */
  446. #define chipcHw_REG_VPM_PHASE_STATUS_MASK 0x0000007F /* VPM phase status value */
  447. #define chipcHw_REG_VPM_PHASE_STATUS_SHIFT 8
  448. #define chipcHw_REG_VPM_PHASE_ALIGNED 0x00000080 /* VPM Phase aligned status */
  449. #define chipcHw_REG_VPM_LOAD 0x00000040 /* Load VPM phase status */
  450. #define chipcHw_REG_VPM_PHASE_CTRL_MASK 0x0000003F /* VPM phase control value */
  451. #define chipcHw_REG_VPM_PHASE_CTRL_SHIFT 0
  452. /* DDRPhaseCtrl2 register definitions */
  453. #define chipcHw_REG_DDR_INTR_SERVICED 0x02000000 /* Acknowledge that interrupt was serviced */
  454. #define chipcHw_REG_DDR_TIMEOUT_INTR_ENABLE 0x01000000 /* Enable time out interrupt */
  455. #define chipcHw_REG_DDR_LOAD_COUNT_PHASE_CTRL_MASK 0x0000000F /* Wait before toggling load_ch */
  456. #define chipcHw_REG_DDR_LOAD_COUNT_PHASE_CTRL_SHIFT 20
  457. #define chipcHw_REG_DDR_TOTAL_LOAD_COUNT_CTRL_MASK 0x0000000F /* Total wait to settle ph_ctrl and load_ch */
  458. #define chipcHw_REG_DDR_TOTAL_LOAD_COUNT_CTRL_SHIFT 16
  459. #define chipcHw_REG_DDR_PHASE_TIMEOUT_COUNT_MASK 0x0000FFFF /* Time out value for DDR HW phase alignment */
  460. #define chipcHw_REG_DDR_PHASE_TIMEOUT_COUNT_SHIFT 0
  461. /* VPMPhaseCtrl2 register definitions */
  462. #define chipcHw_REG_VPM_INTR_SELECT_MASK 0x00000003 /* Interrupt select */
  463. #define chipcHw_REG_VPM_INTR_SELECT_SHIFT 26
  464. #define chipcHw_REG_VPM_INTR_DISABLE 0x00000000
  465. #define chipcHw_REG_VPM_INTR_FAST (0x1 << chipcHw_REG_VPM_INTR_SELECT_SHIFT)
  466. #define chipcHw_REG_VPM_INTR_MEDIUM (0x2 << chipcHw_REG_VPM_INTR_SELECT_SHIFT)
  467. #define chipcHw_REG_VPM_INTR_SLOW (0x3 << chipcHw_REG_VPM_INTR_SELECT_SHIFT)
  468. #define chipcHw_REG_VPM_INTR_SERVICED 0x02000000 /* Acknowledge that interrupt was serviced */
  469. #define chipcHw_REG_VPM_TIMEOUT_INTR_ENABLE 0x01000000 /* Enable time out interrupt */
  470. #define chipcHw_REG_VPM_LOAD_COUNT_PHASE_CTRL_MASK 0x0000000F /* Wait before toggling load_ch */
  471. #define chipcHw_REG_VPM_LOAD_COUNT_PHASE_CTRL_SHIFT 20
  472. #define chipcHw_REG_VPM_TOTAL_LOAD_COUNT_CTRL_MASK 0x0000000F /* Total wait cycle to settle ph_ctrl and load_ch */
  473. #define chipcHw_REG_VPM_TOTAL_LOAD_COUNT_CTRL_SHIFT 16
  474. #define chipcHw_REG_VPM_PHASE_TIMEOUT_COUNT_MASK 0x0000FFFF /* Time out value for VPM HW phase alignment */
  475. #define chipcHw_REG_VPM_PHASE_TIMEOUT_COUNT_SHIFT 0
  476. #endif /* CHIPCHW_REG_H */