dm355_ccdc_regs.h 10 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311
  1. /*
  2. * Copyright (C) 2005-2009 Texas Instruments Inc
  3. *
  4. * This program is free software; you can redistribute it and/or modify
  5. * it under the terms of the GNU General Public License as published by
  6. * the Free Software Foundation; either version 2 of the License, or
  7. * (at your option) any later version.
  8. *
  9. * This program is distributed in the hope that it will be useful,
  10. * but WITHOUT ANY WARRANTY; without even the implied warranty of
  11. * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
  12. * GNU General Public License for more details.
  13. *
  14. * You should have received a copy of the GNU General Public License
  15. * along with this program; if not, write to the Free Software
  16. * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
  17. */
  18. #ifndef _DM355_CCDC_REGS_H
  19. #define _DM355_CCDC_REGS_H
  20. /**************************************************************************\
  21. * Register OFFSET Definitions
  22. \**************************************************************************/
  23. #define SYNCEN 0x00
  24. #define MODESET 0x04
  25. #define HDWIDTH 0x08
  26. #define VDWIDTH 0x0c
  27. #define PPLN 0x10
  28. #define LPFR 0x14
  29. #define SPH 0x18
  30. #define NPH 0x1c
  31. #define SLV0 0x20
  32. #define SLV1 0x24
  33. #define NLV 0x28
  34. #define CULH 0x2c
  35. #define CULV 0x30
  36. #define HSIZE 0x34
  37. #define SDOFST 0x38
  38. #define STADRH 0x3c
  39. #define STADRL 0x40
  40. #define CLAMP 0x44
  41. #define DCSUB 0x48
  42. #define COLPTN 0x4c
  43. #define BLKCMP0 0x50
  44. #define BLKCMP1 0x54
  45. #define MEDFILT 0x58
  46. #define RYEGAIN 0x5c
  47. #define GRCYGAIN 0x60
  48. #define GBGGAIN 0x64
  49. #define BMGGAIN 0x68
  50. #define OFFSET 0x6c
  51. #define OUTCLIP 0x70
  52. #define VDINT0 0x74
  53. #define VDINT1 0x78
  54. #define RSV0 0x7c
  55. #define GAMMAWD 0x80
  56. #define REC656IF 0x84
  57. #define CCDCFG 0x88
  58. #define FMTCFG 0x8c
  59. #define FMTPLEN 0x90
  60. #define FMTSPH 0x94
  61. #define FMTLNH 0x98
  62. #define FMTSLV 0x9c
  63. #define FMTLNV 0xa0
  64. #define FMTRLEN 0xa4
  65. #define FMTHCNT 0xa8
  66. #define FMT_ADDR_PTR_B 0xac
  67. #define FMT_ADDR_PTR(i) (FMT_ADDR_PTR_B + (i * 4))
  68. #define FMTPGM_VF0 0xcc
  69. #define FMTPGM_VF1 0xd0
  70. #define FMTPGM_AP0 0xd4
  71. #define FMTPGM_AP1 0xd8
  72. #define FMTPGM_AP2 0xdc
  73. #define FMTPGM_AP3 0xe0
  74. #define FMTPGM_AP4 0xe4
  75. #define FMTPGM_AP5 0xe8
  76. #define FMTPGM_AP6 0xec
  77. #define FMTPGM_AP7 0xf0
  78. #define LSCCFG1 0xf4
  79. #define LSCCFG2 0xf8
  80. #define LSCH0 0xfc
  81. #define LSCV0 0x100
  82. #define LSCKH 0x104
  83. #define LSCKV 0x108
  84. #define LSCMEMCTL 0x10c
  85. #define LSCMEMD 0x110
  86. #define LSCMEMQ 0x114
  87. #define DFCCTL 0x118
  88. #define DFCVSAT 0x11c
  89. #define DFCMEMCTL 0x120
  90. #define DFCMEM0 0x124
  91. #define DFCMEM1 0x128
  92. #define DFCMEM2 0x12c
  93. #define DFCMEM3 0x130
  94. #define DFCMEM4 0x134
  95. #define CSCCTL 0x138
  96. #define CSCM0 0x13c
  97. #define CSCM1 0x140
  98. #define CSCM2 0x144
  99. #define CSCM3 0x148
  100. #define CSCM4 0x14c
  101. #define CSCM5 0x150
  102. #define CSCM6 0x154
  103. #define CSCM7 0x158
  104. #define DATAOFST 0x15c
  105. #define CCDC_REG_LAST DATAOFST
  106. /**************************************************************
  107. * Define for various register bit mask and shifts for CCDC
  108. *
  109. **************************************************************/
  110. #define CCDC_RAW_IP_MODE 0
  111. #define CCDC_VDHDOUT_INPUT 0
  112. #define CCDC_YCINSWP_RAW (0 << 4)
  113. #define CCDC_EXWEN_DISABLE 0
  114. #define CCDC_DATAPOL_NORMAL 0
  115. #define CCDC_CCDCFG_FIDMD_LATCH_VSYNC 0
  116. #define CCDC_CCDCFG_FIDMD_NO_LATCH_VSYNC (1 << 6)
  117. #define CCDC_CCDCFG_WENLOG_AND 0
  118. #define CCDC_CCDCFG_TRGSEL_WEN 0
  119. #define CCDC_CCDCFG_EXTRG_DISABLE 0
  120. #define CCDC_CFA_MOSAIC 0
  121. #define CCDC_Y8POS_SHIFT 11
  122. #define CCDC_VDC_DFCVSAT_MASK 0x3fff
  123. #define CCDC_DATAOFST_MASK 0x0ff
  124. #define CCDC_DATAOFST_H_SHIFT 0
  125. #define CCDC_DATAOFST_V_SHIFT 8
  126. #define CCDC_GAMMAWD_CFA_MASK 1
  127. #define CCDC_GAMMAWD_CFA_SHIFT 5
  128. #define CCDC_GAMMAWD_INPUT_SHIFT 2
  129. #define CCDC_FID_POL_MASK 1
  130. #define CCDC_FID_POL_SHIFT 4
  131. #define CCDC_HD_POL_MASK 1
  132. #define CCDC_HD_POL_SHIFT 3
  133. #define CCDC_VD_POL_MASK 1
  134. #define CCDC_VD_POL_SHIFT 2
  135. #define CCDC_VD_POL_NEGATIVE (1 << 2)
  136. #define CCDC_FRM_FMT_MASK 1
  137. #define CCDC_FRM_FMT_SHIFT 7
  138. #define CCDC_DATA_SZ_MASK 7
  139. #define CCDC_DATA_SZ_SHIFT 8
  140. #define CCDC_VDHDOUT_MASK 1
  141. #define CCDC_VDHDOUT_SHIFT 0
  142. #define CCDC_EXWEN_MASK 1
  143. #define CCDC_EXWEN_SHIFT 5
  144. #define CCDC_INPUT_MODE_MASK 3
  145. #define CCDC_INPUT_MODE_SHIFT 12
  146. #define CCDC_PIX_FMT_MASK 3
  147. #define CCDC_PIX_FMT_SHIFT 12
  148. #define CCDC_DATAPOL_MASK 1
  149. #define CCDC_DATAPOL_SHIFT 6
  150. #define CCDC_WEN_ENABLE (1 << 1)
  151. #define CCDC_VDHDEN_ENABLE (1 << 16)
  152. #define CCDC_LPF_ENABLE (1 << 14)
  153. #define CCDC_ALAW_ENABLE 1
  154. #define CCDC_ALAW_GAMA_WD_MASK 7
  155. #define CCDC_REC656IF_BT656_EN 3
  156. #define CCDC_FMTCFG_FMTMODE_MASK 3
  157. #define CCDC_FMTCFG_FMTMODE_SHIFT 1
  158. #define CCDC_FMTCFG_LNUM_MASK 3
  159. #define CCDC_FMTCFG_LNUM_SHIFT 4
  160. #define CCDC_FMTCFG_ADDRINC_MASK 7
  161. #define CCDC_FMTCFG_ADDRINC_SHIFT 8
  162. #define CCDC_CCDCFG_FIDMD_SHIFT 6
  163. #define CCDC_CCDCFG_WENLOG_SHIFT 8
  164. #define CCDC_CCDCFG_TRGSEL_SHIFT 9
  165. #define CCDC_CCDCFG_EXTRG_SHIFT 10
  166. #define CCDC_CCDCFG_MSBINVI_SHIFT 13
  167. #define CCDC_HSIZE_FLIP_SHIFT 12
  168. #define CCDC_HSIZE_FLIP_MASK 1
  169. #define CCDC_HSIZE_VAL_MASK 0xFFF
  170. #define CCDC_SDOFST_FIELD_INTERLEAVED 0x249
  171. #define CCDC_SDOFST_INTERLACE_INVERSE 0x4B6D
  172. #define CCDC_SDOFST_INTERLACE_NORMAL 0x0B6D
  173. #define CCDC_SDOFST_PROGRESSIVE_INVERSE 0x4000
  174. #define CCDC_SDOFST_PROGRESSIVE_NORMAL 0
  175. #define CCDC_START_PX_HOR_MASK 0x7FFF
  176. #define CCDC_NUM_PX_HOR_MASK 0x7FFF
  177. #define CCDC_START_VER_ONE_MASK 0x7FFF
  178. #define CCDC_START_VER_TWO_MASK 0x7FFF
  179. #define CCDC_NUM_LINES_VER 0x7FFF
  180. #define CCDC_BLK_CLAMP_ENABLE (1 << 15)
  181. #define CCDC_BLK_SGAIN_MASK 0x1F
  182. #define CCDC_BLK_ST_PXL_MASK 0x1FFF
  183. #define CCDC_BLK_SAMPLE_LN_MASK 3
  184. #define CCDC_BLK_SAMPLE_LN_SHIFT 13
  185. #define CCDC_NUM_LINE_CALC_MASK 3
  186. #define CCDC_NUM_LINE_CALC_SHIFT 14
  187. #define CCDC_BLK_DC_SUB_MASK 0x3FFF
  188. #define CCDC_BLK_COMP_MASK 0xFF
  189. #define CCDC_BLK_COMP_GB_COMP_SHIFT 8
  190. #define CCDC_BLK_COMP_GR_COMP_SHIFT 0
  191. #define CCDC_BLK_COMP_R_COMP_SHIFT 8
  192. #define CCDC_LATCH_ON_VSYNC_DISABLE (1 << 15)
  193. #define CCDC_LATCH_ON_VSYNC_ENABLE (0 << 15)
  194. #define CCDC_FPC_ENABLE (1 << 15)
  195. #define CCDC_FPC_FPC_NUM_MASK 0x7FFF
  196. #define CCDC_DATA_PACK_ENABLE (1 << 11)
  197. #define CCDC_FMT_HORZ_FMTLNH_MASK 0x1FFF
  198. #define CCDC_FMT_HORZ_FMTSPH_MASK 0x1FFF
  199. #define CCDC_FMT_HORZ_FMTSPH_SHIFT 16
  200. #define CCDC_FMT_VERT_FMTLNV_MASK 0x1FFF
  201. #define CCDC_FMT_VERT_FMTSLV_MASK 0x1FFF
  202. #define CCDC_FMT_VERT_FMTSLV_SHIFT 16
  203. #define CCDC_VP_OUT_VERT_NUM_MASK 0x3FFF
  204. #define CCDC_VP_OUT_VERT_NUM_SHIFT 17
  205. #define CCDC_VP_OUT_HORZ_NUM_MASK 0x1FFF
  206. #define CCDC_VP_OUT_HORZ_NUM_SHIFT 4
  207. #define CCDC_VP_OUT_HORZ_ST_MASK 0xF
  208. #define CCDC_CSC_COEF_INTEG_MASK 7
  209. #define CCDC_CSC_COEF_DECIMAL_MASK 0x1f
  210. #define CCDC_CSC_COEF_INTEG_SHIFT 5
  211. #define CCDC_CSCM_MSB_SHIFT 8
  212. #define CCDC_CSC_ENABLE 1
  213. #define CCDC_CSC_DEC_MAX 32
  214. #define CCDC_MFILT1_SHIFT 10
  215. #define CCDC_MFILT2_SHIFT 8
  216. #define CCDC_MED_FILT_THRESH 0x3FFF
  217. #define CCDC_LPF_MASK 1
  218. #define CCDC_LPF_SHIFT 14
  219. #define CCDC_OFFSET_MASK 0x3FF
  220. #define CCDC_DATASFT_MASK 7
  221. #define CCDC_DATASFT_SHIFT 8
  222. #define CCDC_DF_ENABLE 1
  223. #define CCDC_FMTPLEN_P0_MASK 0xF
  224. #define CCDC_FMTPLEN_P1_MASK 0xF
  225. #define CCDC_FMTPLEN_P2_MASK 7
  226. #define CCDC_FMTPLEN_P3_MASK 7
  227. #define CCDC_FMTPLEN_P0_SHIFT 0
  228. #define CCDC_FMTPLEN_P1_SHIFT 4
  229. #define CCDC_FMTPLEN_P2_SHIFT 8
  230. #define CCDC_FMTPLEN_P3_SHIFT 12
  231. #define CCDC_FMTSPH_MASK 0x1FFF
  232. #define CCDC_FMTLNH_MASK 0x1FFF
  233. #define CCDC_FMTSLV_MASK 0x1FFF
  234. #define CCDC_FMTLNV_MASK 0x7FFF
  235. #define CCDC_FMTRLEN_MASK 0x1FFF
  236. #define CCDC_FMTHCNT_MASK 0x1FFF
  237. #define CCDC_ADP_INIT_MASK 0x1FFF
  238. #define CCDC_ADP_LINE_SHIFT 13
  239. #define CCDC_ADP_LINE_MASK 3
  240. #define CCDC_FMTPGN_APTR_MASK 7
  241. #define CCDC_DFCCTL_GDFCEN_MASK 1
  242. #define CCDC_DFCCTL_VDFCEN_MASK 1
  243. #define CCDC_DFCCTL_VDFC_DISABLE (0 << 4)
  244. #define CCDC_DFCCTL_VDFCEN_SHIFT 4
  245. #define CCDC_DFCCTL_VDFCSL_MASK 3
  246. #define CCDC_DFCCTL_VDFCSL_SHIFT 5
  247. #define CCDC_DFCCTL_VDFCUDA_MASK 1
  248. #define CCDC_DFCCTL_VDFCUDA_SHIFT 7
  249. #define CCDC_DFCCTL_VDFLSFT_MASK 3
  250. #define CCDC_DFCCTL_VDFLSFT_SHIFT 8
  251. #define CCDC_DFCMEMCTL_DFCMARST_MASK 1
  252. #define CCDC_DFCMEMCTL_DFCMARST_SHIFT 2
  253. #define CCDC_DFCMEMCTL_DFCMWR_MASK 1
  254. #define CCDC_DFCMEMCTL_DFCMWR_SHIFT 0
  255. #define CCDC_DFCMEMCTL_INC_ADDR (0 << 2)
  256. #define CCDC_LSCCFG_GFTSF_MASK 7
  257. #define CCDC_LSCCFG_GFTSF_SHIFT 1
  258. #define CCDC_LSCCFG_GFTINV_MASK 0xf
  259. #define CCDC_LSCCFG_GFTINV_SHIFT 4
  260. #define CCDC_LSC_GFTABLE_SEL_MASK 3
  261. #define CCDC_LSC_GFTABLE_EPEL_SHIFT 8
  262. #define CCDC_LSC_GFTABLE_OPEL_SHIFT 10
  263. #define CCDC_LSC_GFTABLE_EPOL_SHIFT 12
  264. #define CCDC_LSC_GFTABLE_OPOL_SHIFT 14
  265. #define CCDC_LSC_GFMODE_MASK 3
  266. #define CCDC_LSC_GFMODE_SHIFT 4
  267. #define CCDC_LSC_DISABLE 0
  268. #define CCDC_LSC_ENABLE 1
  269. #define CCDC_LSC_TABLE1_SLC 0
  270. #define CCDC_LSC_TABLE2_SLC 1
  271. #define CCDC_LSC_TABLE3_SLC 2
  272. #define CCDC_LSC_MEMADDR_RESET (1 << 2)
  273. #define CCDC_LSC_MEMADDR_INCR (0 << 2)
  274. #define CCDC_LSC_FRAC_MASK_T1 0xFF
  275. #define CCDC_LSC_INT_MASK 3
  276. #define CCDC_LSC_FRAC_MASK 0x3FFF
  277. #define CCDC_LSC_CENTRE_MASK 0x3FFF
  278. #define CCDC_LSC_COEF_MASK 0xff
  279. #define CCDC_LSC_COEFL_SHIFT 0
  280. #define CCDC_LSC_COEFU_SHIFT 8
  281. #define CCDC_GAIN_MASK 0x7FF
  282. #define CCDC_SYNCEN_VDHDEN_MASK (1 << 0)
  283. #define CCDC_SYNCEN_WEN_MASK (1 << 1)
  284. #define CCDC_SYNCEN_WEN_SHIFT 1
  285. /* Power on Defaults in hardware */
  286. #define MODESET_DEFAULT 0x200
  287. #define CULH_DEFAULT 0xFFFF
  288. #define CULV_DEFAULT 0xFF
  289. #define GAIN_DEFAULT 256
  290. #define OUTCLIP_DEFAULT 0x3FFF
  291. #define LSCCFG2_DEFAULT 0xE
  292. #endif