iss_regs.h 30 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903
  1. /*
  2. * TI OMAP4 ISS V4L2 Driver - Register defines
  3. *
  4. * Copyright (C) 2012 Texas Instruments.
  5. *
  6. * Author: Sergio Aguirre <sergio.a.aguirre@gmail.com>
  7. *
  8. * This program is free software; you can redistribute it and/or modify
  9. * it under the terms of the GNU General Public License as published by
  10. * the Free Software Foundation; either version 2 of the License, or
  11. * (at your option) any later version.
  12. */
  13. #ifndef _OMAP4_ISS_REGS_H_
  14. #define _OMAP4_ISS_REGS_H_
  15. /* ISS */
  16. #define ISS_HL_REVISION 0x0
  17. #define ISS_HL_SYSCONFIG 0x10
  18. #define ISS_HL_SYSCONFIG_IDLEMODE_SHIFT 2
  19. #define ISS_HL_SYSCONFIG_IDLEMODE_FORCEIDLE 0x0
  20. #define ISS_HL_SYSCONFIG_IDLEMODE_NOIDLE 0x1
  21. #define ISS_HL_SYSCONFIG_IDLEMODE_SMARTIDLE 0x2
  22. #define ISS_HL_SYSCONFIG_SOFTRESET BIT(0)
  23. #define ISS_HL_IRQSTATUS_RAW(i) (0x20 + (0x10 * (i)))
  24. #define ISS_HL_IRQSTATUS(i) (0x24 + (0x10 * (i)))
  25. #define ISS_HL_IRQENABLE_SET(i) (0x28 + (0x10 * (i)))
  26. #define ISS_HL_IRQENABLE_CLR(i) (0x2c + (0x10 * (i)))
  27. #define ISS_HL_IRQ_HS_VS BIT(17)
  28. #define ISS_HL_IRQ_SIMCOP(i) BIT(12 + (i))
  29. #define ISS_HL_IRQ_BTE BIT(11)
  30. #define ISS_HL_IRQ_CBUFF BIT(10)
  31. #define ISS_HL_IRQ_CCP2(i) BIT((i) > 3 ? 16 : 14 + (i))
  32. #define ISS_HL_IRQ_CSIB BIT(5)
  33. #define ISS_HL_IRQ_CSIA BIT(4)
  34. #define ISS_HL_IRQ_ISP(i) BIT(i)
  35. #define ISS_CTRL 0x80
  36. #define ISS_CTRL_CLK_DIV_MASK (3 << 4)
  37. #define ISS_CTRL_INPUT_SEL_MASK (3 << 2)
  38. #define ISS_CTRL_INPUT_SEL_CSI2A (0 << 2)
  39. #define ISS_CTRL_INPUT_SEL_CSI2B (1 << 2)
  40. #define ISS_CTRL_SYNC_DETECT_VS_RAISING (3 << 0)
  41. #define ISS_CLKCTRL 0x84
  42. #define ISS_CLKCTRL_VPORT2_CLK BIT(30)
  43. #define ISS_CLKCTRL_VPORT1_CLK BIT(29)
  44. #define ISS_CLKCTRL_VPORT0_CLK BIT(28)
  45. #define ISS_CLKCTRL_CCP2 BIT(4)
  46. #define ISS_CLKCTRL_CSI2_B BIT(3)
  47. #define ISS_CLKCTRL_CSI2_A BIT(2)
  48. #define ISS_CLKCTRL_ISP BIT(1)
  49. #define ISS_CLKCTRL_SIMCOP BIT(0)
  50. #define ISS_CLKSTAT 0x88
  51. #define ISS_CLKSTAT_VPORT2_CLK BIT(30)
  52. #define ISS_CLKSTAT_VPORT1_CLK BIT(29)
  53. #define ISS_CLKSTAT_VPORT0_CLK BIT(28)
  54. #define ISS_CLKSTAT_CCP2 BIT(4)
  55. #define ISS_CLKSTAT_CSI2_B BIT(3)
  56. #define ISS_CLKSTAT_CSI2_A BIT(2)
  57. #define ISS_CLKSTAT_ISP BIT(1)
  58. #define ISS_CLKSTAT_SIMCOP BIT(0)
  59. #define ISS_PM_STATUS 0x8c
  60. #define ISS_PM_STATUS_CBUFF_PM_MASK (3 << 12)
  61. #define ISS_PM_STATUS_BTE_PM_MASK (3 << 10)
  62. #define ISS_PM_STATUS_SIMCOP_PM_MASK (3 << 8)
  63. #define ISS_PM_STATUS_ISP_PM_MASK (3 << 6)
  64. #define ISS_PM_STATUS_CCP2_PM_MASK (3 << 4)
  65. #define ISS_PM_STATUS_CSI2_B_PM_MASK (3 << 2)
  66. #define ISS_PM_STATUS_CSI2_A_PM_MASK (3 << 0)
  67. #define REGISTER0 0x0
  68. #define REGISTER0_HSCLOCKCONFIG BIT(24)
  69. #define REGISTER0_THS_TERM_MASK (0xff << 8)
  70. #define REGISTER0_THS_TERM_SHIFT 8
  71. #define REGISTER0_THS_SETTLE_MASK (0xff << 0)
  72. #define REGISTER0_THS_SETTLE_SHIFT 0
  73. #define REGISTER1 0x4
  74. #define REGISTER1_RESET_DONE_CTRLCLK BIT(29)
  75. #define REGISTER1_CLOCK_MISS_DETECTOR_STATUS BIT(25)
  76. #define REGISTER1_TCLK_TERM_MASK (0x3f << 18)
  77. #define REGISTER1_TCLK_TERM_SHIFT 18
  78. #define REGISTER1_DPHY_HS_SYNC_PATTERN_SHIFT 10
  79. #define REGISTER1_CTRLCLK_DIV_FACTOR_MASK (0x3 << 8)
  80. #define REGISTER1_CTRLCLK_DIV_FACTOR_SHIFT 8
  81. #define REGISTER1_TCLK_SETTLE_MASK (0xff << 0)
  82. #define REGISTER1_TCLK_SETTLE_SHIFT 0
  83. #define REGISTER2 0x8
  84. #define CSI2_SYSCONFIG 0x10
  85. #define CSI2_SYSCONFIG_MSTANDBY_MODE_MASK (3 << 12)
  86. #define CSI2_SYSCONFIG_MSTANDBY_MODE_FORCE (0 << 12)
  87. #define CSI2_SYSCONFIG_MSTANDBY_MODE_NO (1 << 12)
  88. #define CSI2_SYSCONFIG_MSTANDBY_MODE_SMART (2 << 12)
  89. #define CSI2_SYSCONFIG_SOFT_RESET (1 << 1)
  90. #define CSI2_SYSCONFIG_AUTO_IDLE (1 << 0)
  91. #define CSI2_SYSSTATUS 0x14
  92. #define CSI2_SYSSTATUS_RESET_DONE BIT(0)
  93. #define CSI2_IRQSTATUS 0x18
  94. #define CSI2_IRQENABLE 0x1c
  95. /* Shared bits across CSI2_IRQENABLE and IRQSTATUS */
  96. #define CSI2_IRQ_OCP_ERR BIT(14)
  97. #define CSI2_IRQ_SHORT_PACKET BIT(13)
  98. #define CSI2_IRQ_ECC_CORRECTION BIT(12)
  99. #define CSI2_IRQ_ECC_NO_CORRECTION BIT(11)
  100. #define CSI2_IRQ_COMPLEXIO_ERR BIT(9)
  101. #define CSI2_IRQ_FIFO_OVF BIT(8)
  102. #define CSI2_IRQ_CONTEXT0 BIT(0)
  103. #define CSI2_CTRL 0x40
  104. #define CSI2_CTRL_MFLAG_LEVH_MASK (7 << 20)
  105. #define CSI2_CTRL_MFLAG_LEVH_SHIFT 20
  106. #define CSI2_CTRL_MFLAG_LEVL_MASK (7 << 17)
  107. #define CSI2_CTRL_MFLAG_LEVL_SHIFT 17
  108. #define CSI2_CTRL_BURST_SIZE_EXPAND (1 << 16)
  109. #define CSI2_CTRL_VP_CLK_EN (1 << 15)
  110. #define CSI2_CTRL_NON_POSTED_WRITE (1 << 13)
  111. #define CSI2_CTRL_VP_ONLY_EN (1 << 11)
  112. #define CSI2_CTRL_VP_OUT_CTRL_MASK (3 << 8)
  113. #define CSI2_CTRL_VP_OUT_CTRL_SHIFT 8
  114. #define CSI2_CTRL_DBG_EN (1 << 7)
  115. #define CSI2_CTRL_BURST_SIZE_MASK (3 << 5)
  116. #define CSI2_CTRL_ENDIANNESS (1 << 4)
  117. #define CSI2_CTRL_FRAME (1 << 3)
  118. #define CSI2_CTRL_ECC_EN (1 << 2)
  119. #define CSI2_CTRL_IF_EN (1 << 0)
  120. #define CSI2_DBG_H 0x44
  121. #define CSI2_COMPLEXIO_CFG 0x50
  122. #define CSI2_COMPLEXIO_CFG_RESET_CTRL (1 << 30)
  123. #define CSI2_COMPLEXIO_CFG_RESET_DONE (1 << 29)
  124. #define CSI2_COMPLEXIO_CFG_PWD_CMD_MASK (3 << 27)
  125. #define CSI2_COMPLEXIO_CFG_PWD_CMD_OFF (0 << 27)
  126. #define CSI2_COMPLEXIO_CFG_PWD_CMD_ON (1 << 27)
  127. #define CSI2_COMPLEXIO_CFG_PWD_CMD_ULP (2 << 27)
  128. #define CSI2_COMPLEXIO_CFG_PWD_STATUS_MASK (3 << 25)
  129. #define CSI2_COMPLEXIO_CFG_PWD_STATUS_OFF (0 << 25)
  130. #define CSI2_COMPLEXIO_CFG_PWD_STATUS_ON (1 << 25)
  131. #define CSI2_COMPLEXIO_CFG_PWD_STATUS_ULP (2 << 25)
  132. #define CSI2_COMPLEXIO_CFG_PWR_AUTO (1 << 24)
  133. #define CSI2_COMPLEXIO_CFG_DATA_POL(i) (1 << (((i) * 4) + 3))
  134. #define CSI2_COMPLEXIO_CFG_DATA_POSITION_MASK(i) (7 << ((i) * 4))
  135. #define CSI2_COMPLEXIO_CFG_DATA_POSITION_SHIFT(i) ((i) * 4)
  136. #define CSI2_COMPLEXIO_CFG_CLOCK_POL (1 << 3)
  137. #define CSI2_COMPLEXIO_CFG_CLOCK_POSITION_MASK (7 << 0)
  138. #define CSI2_COMPLEXIO_CFG_CLOCK_POSITION_SHIFT 0
  139. #define CSI2_COMPLEXIO_IRQSTATUS 0x54
  140. #define CSI2_SHORT_PACKET 0x5c
  141. #define CSI2_COMPLEXIO_IRQENABLE 0x60
  142. /* Shared bits across CSI2_COMPLEXIO_IRQENABLE and IRQSTATUS */
  143. #define CSI2_COMPLEXIO_IRQ_STATEALLULPMEXIT BIT(26)
  144. #define CSI2_COMPLEXIO_IRQ_STATEALLULPMENTER BIT(25)
  145. #define CSI2_COMPLEXIO_IRQ_STATEULPM5 BIT(24)
  146. #define CSI2_COMPLEXIO_IRQ_STATEULPM4 BIT(23)
  147. #define CSI2_COMPLEXIO_IRQ_STATEULPM3 BIT(22)
  148. #define CSI2_COMPLEXIO_IRQ_STATEULPM2 BIT(21)
  149. #define CSI2_COMPLEXIO_IRQ_STATEULPM1 BIT(20)
  150. #define CSI2_COMPLEXIO_IRQ_ERRCONTROL5 BIT(19)
  151. #define CSI2_COMPLEXIO_IRQ_ERRCONTROL4 BIT(18)
  152. #define CSI2_COMPLEXIO_IRQ_ERRCONTROL3 BIT(17)
  153. #define CSI2_COMPLEXIO_IRQ_ERRCONTROL2 BIT(16)
  154. #define CSI2_COMPLEXIO_IRQ_ERRCONTROL1 BIT(15)
  155. #define CSI2_COMPLEXIO_IRQ_ERRESC5 BIT(14)
  156. #define CSI2_COMPLEXIO_IRQ_ERRESC4 BIT(13)
  157. #define CSI2_COMPLEXIO_IRQ_ERRESC3 BIT(12)
  158. #define CSI2_COMPLEXIO_IRQ_ERRESC2 BIT(11)
  159. #define CSI2_COMPLEXIO_IRQ_ERRESC1 BIT(10)
  160. #define CSI2_COMPLEXIO_IRQ_ERRSOTSYNCHS5 BIT(9)
  161. #define CSI2_COMPLEXIO_IRQ_ERRSOTSYNCHS4 BIT(8)
  162. #define CSI2_COMPLEXIO_IRQ_ERRSOTSYNCHS3 BIT(7)
  163. #define CSI2_COMPLEXIO_IRQ_ERRSOTSYNCHS2 BIT(6)
  164. #define CSI2_COMPLEXIO_IRQ_ERRSOTSYNCHS1 BIT(5)
  165. #define CSI2_COMPLEXIO_IRQ_ERRSOTHS5 BIT(4)
  166. #define CSI2_COMPLEXIO_IRQ_ERRSOTHS4 BIT(3)
  167. #define CSI2_COMPLEXIO_IRQ_ERRSOTHS3 BIT(2)
  168. #define CSI2_COMPLEXIO_IRQ_ERRSOTHS2 BIT(1)
  169. #define CSI2_COMPLEXIO_IRQ_ERRSOTHS1 BIT(0)
  170. #define CSI2_DBG_P 0x68
  171. #define CSI2_TIMING 0x6c
  172. #define CSI2_TIMING_FORCE_RX_MODE_IO1 BIT(15)
  173. #define CSI2_TIMING_STOP_STATE_X16_IO1 BIT(14)
  174. #define CSI2_TIMING_STOP_STATE_X4_IO1 BIT(13)
  175. #define CSI2_TIMING_STOP_STATE_COUNTER_IO1_MASK (0x1fff << 0)
  176. #define CSI2_TIMING_STOP_STATE_COUNTER_IO1_SHIFT 0
  177. #define CSI2_CTX_CTRL1(i) (0x70 + (0x20 * i))
  178. #define CSI2_CTX_CTRL1_GENERIC BIT(30)
  179. #define CSI2_CTX_CTRL1_TRANSCODE (0xf << 24)
  180. #define CSI2_CTX_CTRL1_FEC_NUMBER_MASK (0xff << 16)
  181. #define CSI2_CTX_CTRL1_COUNT_MASK (0xff << 8)
  182. #define CSI2_CTX_CTRL1_COUNT_SHIFT 8
  183. #define CSI2_CTX_CTRL1_EOF_EN BIT(7)
  184. #define CSI2_CTX_CTRL1_EOL_EN BIT(6)
  185. #define CSI2_CTX_CTRL1_CS_EN BIT(5)
  186. #define CSI2_CTX_CTRL1_COUNT_UNLOCK BIT(4)
  187. #define CSI2_CTX_CTRL1_PING_PONG BIT(3)
  188. #define CSI2_CTX_CTRL1_CTX_EN BIT(0)
  189. #define CSI2_CTX_CTRL2(i) (0x74 + (0x20 * i))
  190. #define CSI2_CTX_CTRL2_FRAME_MASK (0xffff << 16)
  191. #define CSI2_CTX_CTRL2_FRAME_SHIFT 16
  192. #define CSI2_CTX_CTRL2_USER_DEF_MAP_SHIFT 13
  193. #define CSI2_CTX_CTRL2_USER_DEF_MAP_MASK \
  194. (0x3 << CSI2_CTX_CTRL2_USER_DEF_MAP_SHIFT)
  195. #define CSI2_CTX_CTRL2_VIRTUAL_ID_MASK (3 << 11)
  196. #define CSI2_CTX_CTRL2_VIRTUAL_ID_SHIFT 11
  197. #define CSI2_CTX_CTRL2_DPCM_PRED (1 << 10)
  198. #define CSI2_CTX_CTRL2_FORMAT_MASK (0x3ff << 0)
  199. #define CSI2_CTX_CTRL2_FORMAT_SHIFT 0
  200. #define CSI2_CTX_DAT_OFST(i) (0x78 + (0x20 * i))
  201. #define CSI2_CTX_DAT_OFST_MASK (0xfff << 5)
  202. #define CSI2_CTX_PING_ADDR(i) (0x7c + (0x20 * i))
  203. #define CSI2_CTX_PING_ADDR_MASK 0xffffffe0
  204. #define CSI2_CTX_PONG_ADDR(i) (0x80 + (0x20 * i))
  205. #define CSI2_CTX_PONG_ADDR_MASK CSI2_CTX_PING_ADDR_MASK
  206. #define CSI2_CTX_IRQENABLE(i) (0x84 + (0x20 * i))
  207. #define CSI2_CTX_IRQSTATUS(i) (0x88 + (0x20 * i))
  208. #define CSI2_CTX_CTRL3(i) (0x8c + (0x20 * i))
  209. #define CSI2_CTX_CTRL3_ALPHA_SHIFT 5
  210. #define CSI2_CTX_CTRL3_ALPHA_MASK \
  211. (0x3fff << CSI2_CTX_CTRL3_ALPHA_SHIFT)
  212. /* Shared bits across CSI2_CTX_IRQENABLE and IRQSTATUS */
  213. #define CSI2_CTX_IRQ_ECC_CORRECTION BIT(8)
  214. #define CSI2_CTX_IRQ_LINE_NUMBER BIT(7)
  215. #define CSI2_CTX_IRQ_FRAME_NUMBER BIT(6)
  216. #define CSI2_CTX_IRQ_CS BIT(5)
  217. #define CSI2_CTX_IRQ_LE BIT(3)
  218. #define CSI2_CTX_IRQ_LS BIT(2)
  219. #define CSI2_CTX_IRQ_FE BIT(1)
  220. #define CSI2_CTX_IRQ_FS BIT(0)
  221. /* ISS BTE */
  222. #define BTE_CTRL (0x0030)
  223. #define BTE_CTRL_BW_LIMITER_MASK (0x3ff << 22)
  224. #define BTE_CTRL_BW_LIMITER_SHIFT 22
  225. /* ISS ISP_SYS1 */
  226. #define ISP5_REVISION (0x0000)
  227. #define ISP5_SYSCONFIG (0x0010)
  228. #define ISP5_SYSCONFIG_STANDBYMODE_MASK (3 << 4)
  229. #define ISP5_SYSCONFIG_STANDBYMODE_FORCE (0 << 4)
  230. #define ISP5_SYSCONFIG_STANDBYMODE_NO (1 << 4)
  231. #define ISP5_SYSCONFIG_STANDBYMODE_SMART (2 << 4)
  232. #define ISP5_SYSCONFIG_SOFTRESET (1 << 1)
  233. #define ISP5_IRQSTATUS(i) (0x0028 + (0x10 * (i)))
  234. #define ISP5_IRQENABLE_SET(i) (0x002c + (0x10 * (i)))
  235. #define ISP5_IRQENABLE_CLR(i) (0x0030 + (0x10 * (i)))
  236. /* Bits shared for ISP5_IRQ* registers */
  237. #define ISP5_IRQ_OCP_ERR BIT(31)
  238. #define ISP5_IRQ_IPIPE_INT_DPC_RNEW1 BIT(29)
  239. #define ISP5_IRQ_IPIPE_INT_DPC_RNEW0 BIT(28)
  240. #define ISP5_IRQ_IPIPE_INT_DPC_INIT BIT(27)
  241. #define ISP5_IRQ_IPIPE_INT_EOF BIT(25)
  242. #define ISP5_IRQ_H3A_INT_EOF BIT(24)
  243. #define ISP5_IRQ_RSZ_INT_EOF1 BIT(23)
  244. #define ISP5_IRQ_RSZ_INT_EOF0 BIT(22)
  245. #define ISP5_IRQ_RSZ_FIFO_IN_BLK_ERR BIT(19)
  246. #define ISP5_IRQ_RSZ_FIFO_OVF BIT(18)
  247. #define ISP5_IRQ_RSZ_INT_CYC_RSZB BIT(17)
  248. #define ISP5_IRQ_RSZ_INT_CYC_RSZA BIT(16)
  249. #define ISP5_IRQ_RSZ_INT_DMA BIT(15)
  250. #define ISP5_IRQ_RSZ_INT_LAST_PIX BIT(14)
  251. #define ISP5_IRQ_RSZ_INT_REG BIT(13)
  252. #define ISP5_IRQ_H3A_INT BIT(12)
  253. #define ISP5_IRQ_AF_INT BIT(11)
  254. #define ISP5_IRQ_AEW_INT BIT(10)
  255. #define ISP5_IRQ_IPIPEIF_IRQ BIT(9)
  256. #define ISP5_IRQ_IPIPE_INT_HST BIT(8)
  257. #define ISP5_IRQ_IPIPE_INT_BSC BIT(7)
  258. #define ISP5_IRQ_IPIPE_INT_DMA BIT(6)
  259. #define ISP5_IRQ_IPIPE_INT_LAST_PIX BIT(5)
  260. #define ISP5_IRQ_IPIPE_INT_REG BIT(4)
  261. #define ISP5_IRQ_ISIF_INT(i) BIT(i)
  262. #define ISP5_CTRL (0x006c)
  263. #define ISP5_CTRL_MSTANDBY BIT(24)
  264. #define ISP5_CTRL_VD_PULSE_EXT BIT(23)
  265. #define ISP5_CTRL_MSTANDBY_WAIT BIT(20)
  266. #define ISP5_CTRL_BL_CLK_ENABLE BIT(15)
  267. #define ISP5_CTRL_ISIF_CLK_ENABLE BIT(14)
  268. #define ISP5_CTRL_H3A_CLK_ENABLE BIT(13)
  269. #define ISP5_CTRL_RSZ_CLK_ENABLE BIT(12)
  270. #define ISP5_CTRL_IPIPE_CLK_ENABLE BIT(11)
  271. #define ISP5_CTRL_IPIPEIF_CLK_ENABLE BIT(10)
  272. #define ISP5_CTRL_SYNC_ENABLE BIT(9)
  273. #define ISP5_CTRL_PSYNC_CLK_SEL BIT(8)
  274. /* ISS ISP ISIF register offsets */
  275. #define ISIF_SYNCEN (0x0000)
  276. #define ISIF_SYNCEN_DWEN BIT(1)
  277. #define ISIF_SYNCEN_SYEN BIT(0)
  278. #define ISIF_MODESET (0x0004)
  279. #define ISIF_MODESET_INPMOD_MASK (3 << 12)
  280. #define ISIF_MODESET_INPMOD_RAW (0 << 12)
  281. #define ISIF_MODESET_INPMOD_YCBCR16 (1 << 12)
  282. #define ISIF_MODESET_INPMOD_YCBCR8 (2 << 12)
  283. #define ISIF_MODESET_CCDW_MASK (7 << 8)
  284. #define ISIF_MODESET_CCDW_2BIT (2 << 8)
  285. #define ISIF_MODESET_CCDMD (1 << 7)
  286. #define ISIF_MODESET_SWEN (1 << 5)
  287. #define ISIF_MODESET_HDPOL (1 << 3)
  288. #define ISIF_MODESET_VDPOL (1 << 2)
  289. #define ISIF_SPH (0x0018)
  290. #define ISIF_SPH_MASK (0x7fff)
  291. #define ISIF_LNH (0x001c)
  292. #define ISIF_LNH_MASK (0x7fff)
  293. #define ISIF_LNV (0x0028)
  294. #define ISIF_LNV_MASK (0x7fff)
  295. #define ISIF_HSIZE (0x0034)
  296. #define ISIF_HSIZE_ADCR BIT(12)
  297. #define ISIF_HSIZE_HSIZE_MASK (0xfff)
  298. #define ISIF_CADU (0x003c)
  299. #define ISIF_CADU_MASK (0x7ff)
  300. #define ISIF_CADL (0x0040)
  301. #define ISIF_CADL_MASK (0xffff)
  302. #define ISIF_CCOLP (0x004c)
  303. #define ISIF_CCOLP_CP0_F0_R (0 << 6)
  304. #define ISIF_CCOLP_CP0_F0_GR (1 << 6)
  305. #define ISIF_CCOLP_CP0_F0_B (3 << 6)
  306. #define ISIF_CCOLP_CP0_F0_GB (2 << 6)
  307. #define ISIF_CCOLP_CP1_F0_R (0 << 4)
  308. #define ISIF_CCOLP_CP1_F0_GR (1 << 4)
  309. #define ISIF_CCOLP_CP1_F0_B (3 << 4)
  310. #define ISIF_CCOLP_CP1_F0_GB (2 << 4)
  311. #define ISIF_CCOLP_CP2_F0_R (0 << 2)
  312. #define ISIF_CCOLP_CP2_F0_GR (1 << 2)
  313. #define ISIF_CCOLP_CP2_F0_B (3 << 2)
  314. #define ISIF_CCOLP_CP2_F0_GB (2 << 2)
  315. #define ISIF_CCOLP_CP3_F0_R (0 << 0)
  316. #define ISIF_CCOLP_CP3_F0_GR (1 << 0)
  317. #define ISIF_CCOLP_CP3_F0_B (3 << 0)
  318. #define ISIF_CCOLP_CP3_F0_GB (2 << 0)
  319. #define ISIF_VDINT(i) (0x0070 + (i) * 4)
  320. #define ISIF_VDINT_MASK (0x7fff)
  321. #define ISIF_CGAMMAWD (0x0080)
  322. #define ISIF_CGAMMAWD_GWDI_MASK (0xf << 1)
  323. #define ISIF_CGAMMAWD_GWDI(bpp) ((16 - (bpp)) << 1)
  324. #define ISIF_CCDCFG (0x0088)
  325. #define ISIF_CCDCFG_Y8POS BIT(11)
  326. /* ISS ISP IPIPEIF register offsets */
  327. #define IPIPEIF_ENABLE (0x0000)
  328. #define IPIPEIF_CFG1 (0x0004)
  329. #define IPIPEIF_CFG1_INPSRC1_MASK (3 << 14)
  330. #define IPIPEIF_CFG1_INPSRC1_VPORT_RAW (0 << 14)
  331. #define IPIPEIF_CFG1_INPSRC1_SDRAM_RAW (1 << 14)
  332. #define IPIPEIF_CFG1_INPSRC1_ISIF_DARKFM (2 << 14)
  333. #define IPIPEIF_CFG1_INPSRC1_SDRAM_YUV (3 << 14)
  334. #define IPIPEIF_CFG1_INPSRC2_MASK (3 << 2)
  335. #define IPIPEIF_CFG1_INPSRC2_ISIF (0 << 2)
  336. #define IPIPEIF_CFG1_INPSRC2_SDRAM_RAW (1 << 2)
  337. #define IPIPEIF_CFG1_INPSRC2_ISIF_DARKFM (2 << 2)
  338. #define IPIPEIF_CFG1_INPSRC2_SDRAM_YUV (3 << 2)
  339. #define IPIPEIF_CFG2 (0x0030)
  340. #define IPIPEIF_CFG2_YUV8P BIT(7)
  341. #define IPIPEIF_CFG2_YUV8 BIT(6)
  342. #define IPIPEIF_CFG2_YUV16 BIT(3)
  343. #define IPIPEIF_CFG2_VDPOL BIT(2)
  344. #define IPIPEIF_CFG2_HDPOL BIT(1)
  345. #define IPIPEIF_CFG2_INTSW BIT(0)
  346. #define IPIPEIF_CLKDIV (0x0040)
  347. /* ISS ISP IPIPE register offsets */
  348. #define IPIPE_SRC_EN (0x0000)
  349. #define IPIPE_SRC_EN_EN BIT(0)
  350. #define IPIPE_SRC_MODE (0x0004)
  351. #define IPIPE_SRC_MODE_WRT BIT(1)
  352. #define IPIPE_SRC_MODE_OST BIT(0)
  353. #define IPIPE_SRC_FMT (0x0008)
  354. #define IPIPE_SRC_FMT_RAW2YUV (0 << 0)
  355. #define IPIPE_SRC_FMT_RAW2RAW (1 << 0)
  356. #define IPIPE_SRC_FMT_RAW2STATS (2 << 0)
  357. #define IPIPE_SRC_FMT_YUV2YUV (3 << 0)
  358. #define IPIPE_SRC_COL (0x000c)
  359. #define IPIPE_SRC_COL_OO_R (0 << 6)
  360. #define IPIPE_SRC_COL_OO_GR (1 << 6)
  361. #define IPIPE_SRC_COL_OO_B (3 << 6)
  362. #define IPIPE_SRC_COL_OO_GB (2 << 6)
  363. #define IPIPE_SRC_COL_OE_R (0 << 4)
  364. #define IPIPE_SRC_COL_OE_GR (1 << 4)
  365. #define IPIPE_SRC_COL_OE_B (3 << 4)
  366. #define IPIPE_SRC_COL_OE_GB (2 << 4)
  367. #define IPIPE_SRC_COL_EO_R (0 << 2)
  368. #define IPIPE_SRC_COL_EO_GR (1 << 2)
  369. #define IPIPE_SRC_COL_EO_B (3 << 2)
  370. #define IPIPE_SRC_COL_EO_GB (2 << 2)
  371. #define IPIPE_SRC_COL_EE_R (0 << 0)
  372. #define IPIPE_SRC_COL_EE_GR (1 << 0)
  373. #define IPIPE_SRC_COL_EE_B (3 << 0)
  374. #define IPIPE_SRC_COL_EE_GB (2 << 0)
  375. #define IPIPE_SRC_VPS (0x0010)
  376. #define IPIPE_SRC_VPS_MASK (0xffff)
  377. #define IPIPE_SRC_VSZ (0x0014)
  378. #define IPIPE_SRC_VSZ_MASK (0x1fff)
  379. #define IPIPE_SRC_HPS (0x0018)
  380. #define IPIPE_SRC_HPS_MASK (0xffff)
  381. #define IPIPE_SRC_HSZ (0x001c)
  382. #define IPIPE_SRC_HSZ_MASK (0x1ffe)
  383. #define IPIPE_SEL_SBU (0x0020)
  384. #define IPIPE_SRC_STA (0x0024)
  385. #define IPIPE_GCK_MMR (0x0028)
  386. #define IPIPE_GCK_MMR_REG BIT(0)
  387. #define IPIPE_GCK_PIX (0x002c)
  388. #define IPIPE_GCK_PIX_G3 BIT(3)
  389. #define IPIPE_GCK_PIX_G2 BIT(2)
  390. #define IPIPE_GCK_PIX_G1 BIT(1)
  391. #define IPIPE_GCK_PIX_G0 BIT(0)
  392. #define IPIPE_DPC_LUT_EN (0x0034)
  393. #define IPIPE_DPC_LUT_SEL (0x0038)
  394. #define IPIPE_DPC_LUT_ADR (0x003c)
  395. #define IPIPE_DPC_LUT_SIZ (0x0040)
  396. #define IPIPE_DPC_OTF_EN (0x0044)
  397. #define IPIPE_DPC_OTF_TYP (0x0048)
  398. #define IPIPE_DPC_OTF_2_D_THR_R (0x004c)
  399. #define IPIPE_DPC_OTF_2_D_THR_GR (0x0050)
  400. #define IPIPE_DPC_OTF_2_D_THR_GB (0x0054)
  401. #define IPIPE_DPC_OTF_2_D_THR_B (0x0058)
  402. #define IPIPE_DPC_OTF_2_C_THR_R (0x005c)
  403. #define IPIPE_DPC_OTF_2_C_THR_GR (0x0060)
  404. #define IPIPE_DPC_OTF_2_C_THR_GB (0x0064)
  405. #define IPIPE_DPC_OTF_2_C_THR_B (0x0068)
  406. #define IPIPE_DPC_OTF_3_SHF (0x006c)
  407. #define IPIPE_DPC_OTF_3_D_THR (0x0070)
  408. #define IPIPE_DPC_OTF_3_D_SPL (0x0074)
  409. #define IPIPE_DPC_OTF_3_D_MIN (0x0078)
  410. #define IPIPE_DPC_OTF_3_D_MAX (0x007c)
  411. #define IPIPE_DPC_OTF_3_C_THR (0x0080)
  412. #define IPIPE_DPC_OTF_3_C_SLP (0x0084)
  413. #define IPIPE_DPC_OTF_3_C_MIN (0x0088)
  414. #define IPIPE_DPC_OTF_3_C_MAX (0x008c)
  415. #define IPIPE_LSC_VOFT (0x0090)
  416. #define IPIPE_LSC_VA2 (0x0094)
  417. #define IPIPE_LSC_VA1 (0x0098)
  418. #define IPIPE_LSC_VS (0x009c)
  419. #define IPIPE_LSC_HOFT (0x00a0)
  420. #define IPIPE_LSC_HA2 (0x00a4)
  421. #define IPIPE_LSC_HA1 (0x00a8)
  422. #define IPIPE_LSC_HS (0x00ac)
  423. #define IPIPE_LSC_GAN_R (0x00b0)
  424. #define IPIPE_LSC_GAN_GR (0x00b4)
  425. #define IPIPE_LSC_GAN_GB (0x00b8)
  426. #define IPIPE_LSC_GAN_B (0x00bc)
  427. #define IPIPE_LSC_OFT_R (0x00c0)
  428. #define IPIPE_LSC_OFT_GR (0x00c4)
  429. #define IPIPE_LSC_OFT_GB (0x00c8)
  430. #define IPIPE_LSC_OFT_B (0x00cc)
  431. #define IPIPE_LSC_SHF (0x00d0)
  432. #define IPIPE_LSC_MAX (0x00d4)
  433. #define IPIPE_D2F_1ST_EN (0x00d8)
  434. #define IPIPE_D2F_1ST_TYP (0x00dc)
  435. #define IPIPE_D2F_1ST_THR_00 (0x00e0)
  436. #define IPIPE_D2F_1ST_THR_01 (0x00e4)
  437. #define IPIPE_D2F_1ST_THR_02 (0x00e8)
  438. #define IPIPE_D2F_1ST_THR_03 (0x00ec)
  439. #define IPIPE_D2F_1ST_THR_04 (0x00f0)
  440. #define IPIPE_D2F_1ST_THR_05 (0x00f4)
  441. #define IPIPE_D2F_1ST_THR_06 (0x00f8)
  442. #define IPIPE_D2F_1ST_THR_07 (0x00fc)
  443. #define IPIPE_D2F_1ST_STR_00 (0x0100)
  444. #define IPIPE_D2F_1ST_STR_01 (0x0104)
  445. #define IPIPE_D2F_1ST_STR_02 (0x0108)
  446. #define IPIPE_D2F_1ST_STR_03 (0x010c)
  447. #define IPIPE_D2F_1ST_STR_04 (0x0110)
  448. #define IPIPE_D2F_1ST_STR_05 (0x0114)
  449. #define IPIPE_D2F_1ST_STR_06 (0x0118)
  450. #define IPIPE_D2F_1ST_STR_07 (0x011c)
  451. #define IPIPE_D2F_1ST_SPR_00 (0x0120)
  452. #define IPIPE_D2F_1ST_SPR_01 (0x0124)
  453. #define IPIPE_D2F_1ST_SPR_02 (0x0128)
  454. #define IPIPE_D2F_1ST_SPR_03 (0x012c)
  455. #define IPIPE_D2F_1ST_SPR_04 (0x0130)
  456. #define IPIPE_D2F_1ST_SPR_05 (0x0134)
  457. #define IPIPE_D2F_1ST_SPR_06 (0x0138)
  458. #define IPIPE_D2F_1ST_SPR_07 (0x013c)
  459. #define IPIPE_D2F_1ST_EDG_MIN (0x0140)
  460. #define IPIPE_D2F_1ST_EDG_MAX (0x0144)
  461. #define IPIPE_D2F_2ND_EN (0x0148)
  462. #define IPIPE_D2F_2ND_TYP (0x014c)
  463. #define IPIPE_D2F_2ND_THR00 (0x0150)
  464. #define IPIPE_D2F_2ND_THR01 (0x0154)
  465. #define IPIPE_D2F_2ND_THR02 (0x0158)
  466. #define IPIPE_D2F_2ND_THR03 (0x015c)
  467. #define IPIPE_D2F_2ND_THR04 (0x0160)
  468. #define IPIPE_D2F_2ND_THR05 (0x0164)
  469. #define IPIPE_D2F_2ND_THR06 (0x0168)
  470. #define IPIPE_D2F_2ND_THR07 (0x016c)
  471. #define IPIPE_D2F_2ND_STR_00 (0x0170)
  472. #define IPIPE_D2F_2ND_STR_01 (0x0174)
  473. #define IPIPE_D2F_2ND_STR_02 (0x0178)
  474. #define IPIPE_D2F_2ND_STR_03 (0x017c)
  475. #define IPIPE_D2F_2ND_STR_04 (0x0180)
  476. #define IPIPE_D2F_2ND_STR_05 (0x0184)
  477. #define IPIPE_D2F_2ND_STR_06 (0x0188)
  478. #define IPIPE_D2F_2ND_STR_07 (0x018c)
  479. #define IPIPE_D2F_2ND_SPR_00 (0x0190)
  480. #define IPIPE_D2F_2ND_SPR_01 (0x0194)
  481. #define IPIPE_D2F_2ND_SPR_02 (0x0198)
  482. #define IPIPE_D2F_2ND_SPR_03 (0x019c)
  483. #define IPIPE_D2F_2ND_SPR_04 (0x01a0)
  484. #define IPIPE_D2F_2ND_SPR_05 (0x01a4)
  485. #define IPIPE_D2F_2ND_SPR_06 (0x01a8)
  486. #define IPIPE_D2F_2ND_SPR_07 (0x01ac)
  487. #define IPIPE_D2F_2ND_EDG_MIN (0x01b0)
  488. #define IPIPE_D2F_2ND_EDG_MAX (0x01b4)
  489. #define IPIPE_GIC_EN (0x01b8)
  490. #define IPIPE_GIC_TYP (0x01bc)
  491. #define IPIPE_GIC_GAN (0x01c0)
  492. #define IPIPE_GIC_NFGAIN (0x01c4)
  493. #define IPIPE_GIC_THR (0x01c8)
  494. #define IPIPE_GIC_SLP (0x01cc)
  495. #define IPIPE_WB2_OFT_R (0x01d0)
  496. #define IPIPE_WB2_OFT_GR (0x01d4)
  497. #define IPIPE_WB2_OFT_GB (0x01d8)
  498. #define IPIPE_WB2_OFT_B (0x01dc)
  499. #define IPIPE_WB2_WGN_R (0x01e0)
  500. #define IPIPE_WB2_WGN_GR (0x01e4)
  501. #define IPIPE_WB2_WGN_GB (0x01e8)
  502. #define IPIPE_WB2_WGN_B (0x01ec)
  503. #define IPIPE_CFA_MODE (0x01f0)
  504. #define IPIPE_CFA_2DIR_HPF_THR (0x01f4)
  505. #define IPIPE_CFA_2DIR_HPF_SLP (0x01f8)
  506. #define IPIPE_CFA_2DIR_MIX_THR (0x01fc)
  507. #define IPIPE_CFA_2DIR_MIX_SLP (0x0200)
  508. #define IPIPE_CFA_2DIR_DIR_TRH (0x0204)
  509. #define IPIPE_CFA_2DIR_DIR_SLP (0x0208)
  510. #define IPIPE_CFA_2DIR_NDWT (0x020c)
  511. #define IPIPE_CFA_MONO_HUE_FRA (0x0210)
  512. #define IPIPE_CFA_MONO_EDG_THR (0x0214)
  513. #define IPIPE_CFA_MONO_THR_MIN (0x0218)
  514. #define IPIPE_CFA_MONO_THR_SLP (0x021c)
  515. #define IPIPE_CFA_MONO_SLP_MIN (0x0220)
  516. #define IPIPE_CFA_MONO_SLP_SLP (0x0224)
  517. #define IPIPE_CFA_MONO_LPWT (0x0228)
  518. #define IPIPE_RGB1_MUL_RR (0x022c)
  519. #define IPIPE_RGB1_MUL_GR (0x0230)
  520. #define IPIPE_RGB1_MUL_BR (0x0234)
  521. #define IPIPE_RGB1_MUL_RG (0x0238)
  522. #define IPIPE_RGB1_MUL_GG (0x023c)
  523. #define IPIPE_RGB1_MUL_BG (0x0240)
  524. #define IPIPE_RGB1_MUL_RB (0x0244)
  525. #define IPIPE_RGB1_MUL_GB (0x0248)
  526. #define IPIPE_RGB1_MUL_BB (0x024c)
  527. #define IPIPE_RGB1_OFT_OR (0x0250)
  528. #define IPIPE_RGB1_OFT_OG (0x0254)
  529. #define IPIPE_RGB1_OFT_OB (0x0258)
  530. #define IPIPE_GMM_CFG (0x025c)
  531. #define IPIPE_RGB2_MUL_RR (0x0260)
  532. #define IPIPE_RGB2_MUL_GR (0x0264)
  533. #define IPIPE_RGB2_MUL_BR (0x0268)
  534. #define IPIPE_RGB2_MUL_RG (0x026c)
  535. #define IPIPE_RGB2_MUL_GG (0x0270)
  536. #define IPIPE_RGB2_MUL_BG (0x0274)
  537. #define IPIPE_RGB2_MUL_RB (0x0278)
  538. #define IPIPE_RGB2_MUL_GB (0x027c)
  539. #define IPIPE_RGB2_MUL_BB (0x0280)
  540. #define IPIPE_RGB2_OFT_OR (0x0284)
  541. #define IPIPE_RGB2_OFT_OG (0x0288)
  542. #define IPIPE_RGB2_OFT_OB (0x028c)
  543. #define IPIPE_YUV_ADJ (0x0294)
  544. #define IPIPE_YUV_MUL_RY (0x0298)
  545. #define IPIPE_YUV_MUL_GY (0x029c)
  546. #define IPIPE_YUV_MUL_BY (0x02a0)
  547. #define IPIPE_YUV_MUL_RCB (0x02a4)
  548. #define IPIPE_YUV_MUL_GCB (0x02a8)
  549. #define IPIPE_YUV_MUL_BCB (0x02ac)
  550. #define IPIPE_YUV_MUL_RCR (0x02b0)
  551. #define IPIPE_YUV_MUL_GCR (0x02b4)
  552. #define IPIPE_YUV_MUL_BCR (0x02b8)
  553. #define IPIPE_YUV_OFT_Y (0x02bc)
  554. #define IPIPE_YUV_OFT_CB (0x02c0)
  555. #define IPIPE_YUV_OFT_CR (0x02c4)
  556. #define IPIPE_YUV_PHS (0x02c8)
  557. #define IPIPE_YUV_PHS_LPF BIT(1)
  558. #define IPIPE_YUV_PHS_POS BIT(0)
  559. #define IPIPE_YEE_EN (0x02d4)
  560. #define IPIPE_YEE_TYP (0x02d8)
  561. #define IPIPE_YEE_SHF (0x02dc)
  562. #define IPIPE_YEE_MUL_00 (0x02e0)
  563. #define IPIPE_YEE_MUL_01 (0x02e4)
  564. #define IPIPE_YEE_MUL_02 (0x02e8)
  565. #define IPIPE_YEE_MUL_10 (0x02ec)
  566. #define IPIPE_YEE_MUL_11 (0x02f0)
  567. #define IPIPE_YEE_MUL_12 (0x02f4)
  568. #define IPIPE_YEE_MUL_20 (0x02f8)
  569. #define IPIPE_YEE_MUL_21 (0x02fc)
  570. #define IPIPE_YEE_MUL_22 (0x0300)
  571. #define IPIPE_YEE_THR (0x0304)
  572. #define IPIPE_YEE_E_GAN (0x0308)
  573. #define IPIPE_YEE_E_THR_1 (0x030c)
  574. #define IPIPE_YEE_E_THR_2 (0x0310)
  575. #define IPIPE_YEE_G_GAN (0x0314)
  576. #define IPIPE_YEE_G_OFT (0x0318)
  577. #define IPIPE_CAR_EN (0x031c)
  578. #define IPIPE_CAR_TYP (0x0320)
  579. #define IPIPE_CAR_SW (0x0324)
  580. #define IPIPE_CAR_HPF_TYP (0x0328)
  581. #define IPIPE_CAR_HPF_SHF (0x032c)
  582. #define IPIPE_CAR_HPF_THR (0x0330)
  583. #define IPIPE_CAR_GN1_GAN (0x0334)
  584. #define IPIPE_CAR_GN1_SHF (0x0338)
  585. #define IPIPE_CAR_GN1_MIN (0x033c)
  586. #define IPIPE_CAR_GN2_GAN (0x0340)
  587. #define IPIPE_CAR_GN2_SHF (0x0344)
  588. #define IPIPE_CAR_GN2_MIN (0x0348)
  589. #define IPIPE_CGS_EN (0x034c)
  590. #define IPIPE_CGS_GN1_L_THR (0x0350)
  591. #define IPIPE_CGS_GN1_L_GAIN (0x0354)
  592. #define IPIPE_CGS_GN1_L_SHF (0x0358)
  593. #define IPIPE_CGS_GN1_L_MIN (0x035c)
  594. #define IPIPE_CGS_GN1_H_THR (0x0360)
  595. #define IPIPE_CGS_GN1_H_GAIN (0x0364)
  596. #define IPIPE_CGS_GN1_H_SHF (0x0368)
  597. #define IPIPE_CGS_GN1_H_MIN (0x036c)
  598. #define IPIPE_CGS_GN2_L_THR (0x0370)
  599. #define IPIPE_CGS_GN2_L_GAIN (0x0374)
  600. #define IPIPE_CGS_GN2_L_SHF (0x0378)
  601. #define IPIPE_CGS_GN2_L_MIN (0x037c)
  602. #define IPIPE_BOX_EN (0x0380)
  603. #define IPIPE_BOX_MODE (0x0384)
  604. #define IPIPE_BOX_TYP (0x0388)
  605. #define IPIPE_BOX_SHF (0x038c)
  606. #define IPIPE_BOX_SDR_SAD_H (0x0390)
  607. #define IPIPE_BOX_SDR_SAD_L (0x0394)
  608. #define IPIPE_HST_EN (0x039c)
  609. #define IPIPE_HST_MODE (0x03a0)
  610. #define IPIPE_HST_SEL (0x03a4)
  611. #define IPIPE_HST_PARA (0x03a8)
  612. #define IPIPE_HST_0_VPS (0x03ac)
  613. #define IPIPE_HST_0_VSZ (0x03b0)
  614. #define IPIPE_HST_0_HPS (0x03b4)
  615. #define IPIPE_HST_0_HSZ (0x03b8)
  616. #define IPIPE_HST_1_VPS (0x03bc)
  617. #define IPIPE_HST_1_VSZ (0x03c0)
  618. #define IPIPE_HST_1_HPS (0x03c4)
  619. #define IPIPE_HST_1_HSZ (0x03c8)
  620. #define IPIPE_HST_2_VPS (0x03cc)
  621. #define IPIPE_HST_2_VSZ (0x03d0)
  622. #define IPIPE_HST_2_HPS (0x03d4)
  623. #define IPIPE_HST_2_HSZ (0x03d8)
  624. #define IPIPE_HST_3_VPS (0x03dc)
  625. #define IPIPE_HST_3_VSZ (0x03e0)
  626. #define IPIPE_HST_3_HPS (0x03e4)
  627. #define IPIPE_HST_3_HSZ (0x03e8)
  628. #define IPIPE_HST_TBL (0x03ec)
  629. #define IPIPE_HST_MUL_R (0x03f0)
  630. #define IPIPE_HST_MUL_GR (0x03f4)
  631. #define IPIPE_HST_MUL_GB (0x03f8)
  632. #define IPIPE_HST_MUL_B (0x03fc)
  633. #define IPIPE_BSC_EN (0x0400)
  634. #define IPIPE_BSC_MODE (0x0404)
  635. #define IPIPE_BSC_TYP (0x0408)
  636. #define IPIPE_BSC_ROW_VCT (0x040c)
  637. #define IPIPE_BSC_ROW_SHF (0x0410)
  638. #define IPIPE_BSC_ROW_VPO (0x0414)
  639. #define IPIPE_BSC_ROW_VNU (0x0418)
  640. #define IPIPE_BSC_ROW_VSKIP (0x041c)
  641. #define IPIPE_BSC_ROW_HPO (0x0420)
  642. #define IPIPE_BSC_ROW_HNU (0x0424)
  643. #define IPIPE_BSC_ROW_HSKIP (0x0428)
  644. #define IPIPE_BSC_COL_VCT (0x042c)
  645. #define IPIPE_BSC_COL_SHF (0x0430)
  646. #define IPIPE_BSC_COL_VPO (0x0434)
  647. #define IPIPE_BSC_COL_VNU (0x0438)
  648. #define IPIPE_BSC_COL_VSKIP (0x043c)
  649. #define IPIPE_BSC_COL_HPO (0x0440)
  650. #define IPIPE_BSC_COL_HNU (0x0444)
  651. #define IPIPE_BSC_COL_HSKIP (0x0448)
  652. #define IPIPE_BSC_EN (0x0400)
  653. /* ISS ISP Resizer register offsets */
  654. #define RSZ_REVISION (0x0000)
  655. #define RSZ_SYSCONFIG (0x0004)
  656. #define RSZ_SYSCONFIG_RSZB_CLK_EN BIT(9)
  657. #define RSZ_SYSCONFIG_RSZA_CLK_EN BIT(8)
  658. #define RSZ_IN_FIFO_CTRL (0x000c)
  659. #define RSZ_IN_FIFO_CTRL_THRLD_LOW_MASK (0x1ff << 16)
  660. #define RSZ_IN_FIFO_CTRL_THRLD_LOW_SHIFT 16
  661. #define RSZ_IN_FIFO_CTRL_THRLD_HIGH_MASK (0x1ff << 0)
  662. #define RSZ_IN_FIFO_CTRL_THRLD_HIGH_SHIFT 0
  663. #define RSZ_FRACDIV (0x0008)
  664. #define RSZ_FRACDIV_MASK (0xffff)
  665. #define RSZ_SRC_EN (0x0020)
  666. #define RSZ_SRC_EN_SRC_EN BIT(0)
  667. #define RSZ_SRC_MODE (0x0024)
  668. #define RSZ_SRC_MODE_OST BIT(0)
  669. #define RSZ_SRC_MODE_WRT BIT(1)
  670. #define RSZ_SRC_FMT0 (0x0028)
  671. #define RSZ_SRC_FMT0_BYPASS BIT(1)
  672. #define RSZ_SRC_FMT0_SEL BIT(0)
  673. #define RSZ_SRC_FMT1 (0x002c)
  674. #define RSZ_SRC_FMT1_IN420 BIT(1)
  675. #define RSZ_SRC_VPS (0x0030)
  676. #define RSZ_SRC_VSZ (0x0034)
  677. #define RSZ_SRC_HPS (0x0038)
  678. #define RSZ_SRC_HSZ (0x003c)
  679. #define RSZ_DMA_RZA (0x0040)
  680. #define RSZ_DMA_RZB (0x0044)
  681. #define RSZ_DMA_STA (0x0048)
  682. #define RSZ_GCK_MMR (0x004c)
  683. #define RSZ_GCK_MMR_MMR BIT(0)
  684. #define RSZ_GCK_SDR (0x0054)
  685. #define RSZ_GCK_SDR_CORE BIT(0)
  686. #define RSZ_IRQ_RZA (0x0058)
  687. #define RSZ_IRQ_RZA_MASK (0x1fff)
  688. #define RSZ_IRQ_RZB (0x005c)
  689. #define RSZ_IRQ_RZB_MASK (0x1fff)
  690. #define RSZ_YUV_Y_MIN (0x0060)
  691. #define RSZ_YUV_Y_MAX (0x0064)
  692. #define RSZ_YUV_C_MIN (0x0068)
  693. #define RSZ_YUV_C_MAX (0x006c)
  694. #define RSZ_SEQ (0x0074)
  695. #define RSZ_SEQ_HRVB BIT(2)
  696. #define RSZ_SEQ_HRVA BIT(0)
  697. #define RZA_EN (0x0078)
  698. #define RZA_MODE (0x007c)
  699. #define RZA_MODE_ONE_SHOT BIT(0)
  700. #define RZA_420 (0x0080)
  701. #define RZA_I_VPS (0x0084)
  702. #define RZA_I_HPS (0x0088)
  703. #define RZA_O_VSZ (0x008c)
  704. #define RZA_O_HSZ (0x0090)
  705. #define RZA_V_PHS_Y (0x0094)
  706. #define RZA_V_PHS_C (0x0098)
  707. #define RZA_V_DIF (0x009c)
  708. #define RZA_V_TYP (0x00a0)
  709. #define RZA_V_LPF (0x00a4)
  710. #define RZA_H_PHS (0x00a8)
  711. #define RZA_H_DIF (0x00b0)
  712. #define RZA_H_TYP (0x00b4)
  713. #define RZA_H_LPF (0x00b8)
  714. #define RZA_DWN_EN (0x00bc)
  715. #define RZA_SDR_Y_BAD_H (0x00d0)
  716. #define RZA_SDR_Y_BAD_L (0x00d4)
  717. #define RZA_SDR_Y_SAD_H (0x00d8)
  718. #define RZA_SDR_Y_SAD_L (0x00dc)
  719. #define RZA_SDR_Y_OFT (0x00e0)
  720. #define RZA_SDR_Y_PTR_S (0x00e4)
  721. #define RZA_SDR_Y_PTR_E (0x00e8)
  722. #define RZA_SDR_C_BAD_H (0x00ec)
  723. #define RZA_SDR_C_BAD_L (0x00f0)
  724. #define RZA_SDR_C_SAD_H (0x00f4)
  725. #define RZA_SDR_C_SAD_L (0x00f8)
  726. #define RZA_SDR_C_OFT (0x00fc)
  727. #define RZA_SDR_C_PTR_S (0x0100)
  728. #define RZA_SDR_C_PTR_E (0x0104)
  729. #define RZB_EN (0x0108)
  730. #define RZB_MODE (0x010c)
  731. #define RZB_420 (0x0110)
  732. #define RZB_I_VPS (0x0114)
  733. #define RZB_I_HPS (0x0118)
  734. #define RZB_O_VSZ (0x011c)
  735. #define RZB_O_HSZ (0x0120)
  736. #define RZB_V_DIF (0x012c)
  737. #define RZB_V_TYP (0x0130)
  738. #define RZB_V_LPF (0x0134)
  739. #define RZB_H_DIF (0x0140)
  740. #define RZB_H_TYP (0x0144)
  741. #define RZB_H_LPF (0x0148)
  742. #define RZB_SDR_Y_BAD_H (0x0160)
  743. #define RZB_SDR_Y_BAD_L (0x0164)
  744. #define RZB_SDR_Y_SAD_H (0x0168)
  745. #define RZB_SDR_Y_SAD_L (0x016c)
  746. #define RZB_SDR_Y_OFT (0x0170)
  747. #define RZB_SDR_Y_PTR_S (0x0174)
  748. #define RZB_SDR_Y_PTR_E (0x0178)
  749. #define RZB_SDR_C_BAD_H (0x017c)
  750. #define RZB_SDR_C_BAD_L (0x0180)
  751. #define RZB_SDR_C_SAD_H (0x0184)
  752. #define RZB_SDR_C_SAD_L (0x0188)
  753. #define RZB_SDR_C_PTR_S (0x0190)
  754. #define RZB_SDR_C_PTR_E (0x0194)
  755. /* Shared Bitmasks between RZA & RZB */
  756. #define RSZ_EN_EN BIT(0)
  757. #define RSZ_420_CEN BIT(1)
  758. #define RSZ_420_YEN BIT(0)
  759. #define RSZ_I_VPS_MASK (0x1fff)
  760. #define RSZ_I_HPS_MASK (0x1fff)
  761. #define RSZ_O_VSZ_MASK (0x1fff)
  762. #define RSZ_O_HSZ_MASK (0x1ffe)
  763. #define RSZ_V_PHS_Y_MASK (0x3fff)
  764. #define RSZ_V_PHS_C_MASK (0x3fff)
  765. #define RSZ_V_DIF_MASK (0x3fff)
  766. #define RSZ_V_TYP_C BIT(1)
  767. #define RSZ_V_TYP_Y BIT(0)
  768. #define RSZ_V_LPF_C_MASK (0x3f << 6)
  769. #define RSZ_V_LPF_C_SHIFT 6
  770. #define RSZ_V_LPF_Y_MASK (0x3f << 0)
  771. #define RSZ_V_LPF_Y_SHIFT 0
  772. #define RSZ_H_PHS_MASK (0x3fff)
  773. #define RSZ_H_DIF_MASK (0x3fff)
  774. #define RSZ_H_TYP_C BIT(1)
  775. #define RSZ_H_TYP_Y BIT(0)
  776. #define RSZ_H_LPF_C_MASK (0x3f << 6)
  777. #define RSZ_H_LPF_C_SHIFT 6
  778. #define RSZ_H_LPF_Y_MASK (0x3f << 0)
  779. #define RSZ_H_LPF_Y_SHIFT 0
  780. #define RSZ_DWN_EN_DWN_EN BIT(0)
  781. #endif /* _OMAP4_ISS_REGS_H_ */