smiapp-reg-defs.h 32 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582
  1. /* SPDX-License-Identifier: GPL-2.0-only */
  2. /*
  3. * drivers/media/i2c/smiapp/smiapp-reg-defs.h
  4. *
  5. * Generic driver for MIPI CCS/SMIA/SMIA++ compliant camera sensors
  6. *
  7. * Copyright (C) 2020 Intel Corporation
  8. * Copyright (C) 2011--2012 Nokia Corporation
  9. * Contact: Sakari Ailus <[email protected]>
  10. */
  11. #ifndef __SMIAPP_REG_DEFS_H__
  12. #define __SMIAPP_REG_DEFS_H__
  13. /* Register addresses */
  14. #define SMIAPP_REG_U16_MODEL_ID (0x0000 | CCS_FL_16BIT)
  15. #define SMIAPP_REG_U8_REVISION_NUMBER_MAJOR 0x0002
  16. #define SMIAPP_REG_U8_MANUFACTURER_ID 0x0003
  17. #define SMIAPP_REG_U8_SMIA_VERSION 0x0004
  18. #define SMIAPP_REG_U8_FRAME_COUNT 0x0005
  19. #define SMIAPP_REG_U8_PIXEL_ORDER 0x0006
  20. #define SMIAPP_REG_U16_DATA_PEDESTAL (0x0008 | CCS_FL_16BIT)
  21. #define SMIAPP_REG_U8_PIXEL_DEPTH 0x000c
  22. #define SMIAPP_REG_U8_REVISION_NUMBER_MINOR 0x0010
  23. #define SMIAPP_REG_U8_SMIAPP_VERSION 0x0011
  24. #define SMIAPP_REG_U8_MODULE_DATE_YEAR 0x0012
  25. #define SMIAPP_REG_U8_MODULE_DATE_MONTH 0x0013
  26. #define SMIAPP_REG_U8_MODULE_DATE_DAY 0x0014
  27. #define SMIAPP_REG_U8_MODULE_DATE_PHASE 0x0015
  28. #define SMIAPP_REG_U16_SENSOR_MODEL_ID (0x0016 | CCS_FL_16BIT)
  29. #define SMIAPP_REG_U8_SENSOR_REVISION_NUMBER 0x0018
  30. #define SMIAPP_REG_U8_SENSOR_MANUFACTURER_ID 0x0019
  31. #define SMIAPP_REG_U8_SENSOR_FIRMWARE_VERSION 0x001a
  32. #define SMIAPP_REG_U32_SERIAL_NUMBER (0x001c | CCS_FL_32BIT)
  33. #define SMIAPP_REG_U8_FRAME_FORMAT_MODEL_TYPE 0x0040
  34. #define SMIAPP_REG_U8_FRAME_FORMAT_MODEL_SUBTYPE 0x0041
  35. #define SMIAPP_REG_U16_FRAME_FORMAT_DESCRIPTOR_2(n) ((0x0042 + ((n) << 1)) | CCS_FL_16BIT) /* 0 <= n <= 14 */
  36. #define SMIAPP_REG_U32_FRAME_FORMAT_DESCRIPTOR_4(n) ((0x0060 + ((n) << 2)) | CCS_FL_32BIT) /* 0 <= n <= 7 */
  37. #define SMIAPP_REG_U16_ANALOGUE_GAIN_CAPABILITY (0x0080 | CCS_FL_16BIT)
  38. #define SMIAPP_REG_U16_ANALOGUE_GAIN_CODE_MIN (0x0084 | CCS_FL_16BIT)
  39. #define SMIAPP_REG_U16_ANALOGUE_GAIN_CODE_MAX (0x0086 | CCS_FL_16BIT)
  40. #define SMIAPP_REG_U16_ANALOGUE_GAIN_CODE_STEP (0x0088 | CCS_FL_16BIT)
  41. #define SMIAPP_REG_U16_ANALOGUE_GAIN_TYPE (0x008a | CCS_FL_16BIT)
  42. #define SMIAPP_REG_U16_ANALOGUE_GAIN_M0 (0x008c | CCS_FL_16BIT)
  43. #define SMIAPP_REG_U16_ANALOGUE_GAIN_C0 (0x008e | CCS_FL_16BIT)
  44. #define SMIAPP_REG_U16_ANALOGUE_GAIN_M1 (0x0090 | CCS_FL_16BIT)
  45. #define SMIAPP_REG_U16_ANALOGUE_GAIN_C1 (0x0092 | CCS_FL_16BIT)
  46. #define SMIAPP_REG_U8_DATA_FORMAT_MODEL_TYPE 0x00c0
  47. #define SMIAPP_REG_U8_DATA_FORMAT_MODEL_SUBTYPE 0x00c1
  48. #define SMIAPP_REG_U16_DATA_FORMAT_DESCRIPTOR(n) ((0x00c2 + ((n) << 1)) | CCS_FL_16BIT)
  49. #define SMIAPP_REG_U8_MODE_SELECT 0x0100
  50. #define SMIAPP_REG_U8_IMAGE_ORIENTATION 0x0101
  51. #define SMIAPP_REG_U8_SOFTWARE_RESET 0x0103
  52. #define SMIAPP_REG_U8_GROUPED_PARAMETER_HOLD 0x0104
  53. #define SMIAPP_REG_U8_MASK_CORRUPTED_FRAMES 0x0105
  54. #define SMIAPP_REG_U8_FAST_STANDBY_CTRL 0x0106
  55. #define SMIAPP_REG_U8_CCI_ADDRESS_CONTROL 0x0107
  56. #define SMIAPP_REG_U8_2ND_CCI_IF_CONTROL 0x0108
  57. #define SMIAPP_REG_U8_2ND_CCI_ADDRESS_CONTROL 0x0109
  58. #define SMIAPP_REG_U8_CSI_CHANNEL_IDENTIFIER 0x0110
  59. #define SMIAPP_REG_U8_CSI_SIGNALLING_MODE 0x0111
  60. #define SMIAPP_REG_U16_CSI_DATA_FORMAT (0x0112 | CCS_FL_16BIT)
  61. #define SMIAPP_REG_U8_CSI_LANE_MODE 0x0114
  62. #define SMIAPP_REG_U8_CSI2_10_TO_8_DT 0x0115
  63. #define SMIAPP_REG_U8_CSI2_10_TO_7_DT 0x0116
  64. #define SMIAPP_REG_U8_CSI2_10_TO_6_DT 0x0117
  65. #define SMIAPP_REG_U8_CSI2_12_TO_8_DT 0x0118
  66. #define SMIAPP_REG_U8_CSI2_12_TO_7_DT 0x0119
  67. #define SMIAPP_REG_U8_CSI2_12_TO_6_DT 0x011a
  68. #define SMIAPP_REG_U8_CSI2_14_TO_10_DT 0x011b
  69. #define SMIAPP_REG_U8_CSI2_14_TO_8_DT 0x011c
  70. #define SMIAPP_REG_U8_CSI2_16_TO_10_DT 0x011d
  71. #define SMIAPP_REG_U8_CSI2_16_TO_8_DT 0x011e
  72. #define SMIAPP_REG_U8_GAIN_MODE 0x0120
  73. #define SMIAPP_REG_U16_VANA_VOLTAGE (0x0130 | CCS_FL_16BIT)
  74. #define SMIAPP_REG_U16_VDIG_VOLTAGE (0x0132 | CCS_FL_16BIT)
  75. #define SMIAPP_REG_U16_VIO_VOLTAGE (0x0134 | CCS_FL_16BIT)
  76. #define SMIAPP_REG_U16_EXTCLK_FREQUENCY_MHZ (0x0136 | CCS_FL_16BIT)
  77. #define SMIAPP_REG_U8_TEMP_SENSOR_CONTROL 0x0138
  78. #define SMIAPP_REG_U8_TEMP_SENSOR_MODE 0x0139
  79. #define SMIAPP_REG_U8_TEMP_SENSOR_OUTPUT 0x013a
  80. #define SMIAPP_REG_U16_FINE_INTEGRATION_TIME (0x0200 | CCS_FL_16BIT)
  81. #define SMIAPP_REG_U16_COARSE_INTEGRATION_TIME (0x0202 | CCS_FL_16BIT)
  82. #define SMIAPP_REG_U16_ANALOGUE_GAIN_CODE_GLOBAL (0x0204 | CCS_FL_16BIT)
  83. #define SMIAPP_REG_U16_ANALOGUE_GAIN_CODE_GREENR (0x0206 | CCS_FL_16BIT)
  84. #define SMIAPP_REG_U16_ANALOGUE_GAIN_CODE_RED (0x0208 | CCS_FL_16BIT)
  85. #define SMIAPP_REG_U16_ANALOGUE_GAIN_CODE_BLUE (0x020a | CCS_FL_16BIT)
  86. #define SMIAPP_REG_U16_ANALOGUE_GAIN_CODE_GREENB (0x020c | CCS_FL_16BIT)
  87. #define SMIAPP_REG_U16_DIGITAL_GAIN_GREENR (0x020e | CCS_FL_16BIT)
  88. #define SMIAPP_REG_U16_DIGITAL_GAIN_RED (0x0210 | CCS_FL_16BIT)
  89. #define SMIAPP_REG_U16_DIGITAL_GAIN_BLUE (0x0212 | CCS_FL_16BIT)
  90. #define SMIAPP_REG_U16_DIGITAL_GAIN_GREENB (0x0214 | CCS_FL_16BIT)
  91. #define SMIAPP_REG_U16_VT_PIX_CLK_DIV (0x0300 | CCS_FL_16BIT)
  92. #define SMIAPP_REG_U16_VT_SYS_CLK_DIV (0x0302 | CCS_FL_16BIT)
  93. #define SMIAPP_REG_U16_PRE_PLL_CLK_DIV (0x0304 | CCS_FL_16BIT)
  94. #define SMIAPP_REG_U16_PLL_MULTIPLIER (0x0306 | CCS_FL_16BIT)
  95. #define SMIAPP_REG_U16_OP_PIX_CLK_DIV (0x0308 | CCS_FL_16BIT)
  96. #define SMIAPP_REG_U16_OP_SYS_CLK_DIV (0x030a | CCS_FL_16BIT)
  97. #define SMIAPP_REG_U16_FRAME_LENGTH_LINES (0x0340 | CCS_FL_16BIT)
  98. #define SMIAPP_REG_U16_LINE_LENGTH_PCK (0x0342 | CCS_FL_16BIT)
  99. #define SMIAPP_REG_U16_X_ADDR_START (0x0344 | CCS_FL_16BIT)
  100. #define SMIAPP_REG_U16_Y_ADDR_START (0x0346 | CCS_FL_16BIT)
  101. #define SMIAPP_REG_U16_X_ADDR_END (0x0348 | CCS_FL_16BIT)
  102. #define SMIAPP_REG_U16_Y_ADDR_END (0x034a | CCS_FL_16BIT)
  103. #define SMIAPP_REG_U16_X_OUTPUT_SIZE (0x034c | CCS_FL_16BIT)
  104. #define SMIAPP_REG_U16_Y_OUTPUT_SIZE (0x034e | CCS_FL_16BIT)
  105. #define SMIAPP_REG_U16_X_EVEN_INC (0x0380 | CCS_FL_16BIT)
  106. #define SMIAPP_REG_U16_X_ODD_INC (0x0382 | CCS_FL_16BIT)
  107. #define SMIAPP_REG_U16_Y_EVEN_INC (0x0384 | CCS_FL_16BIT)
  108. #define SMIAPP_REG_U16_Y_ODD_INC (0x0386 | CCS_FL_16BIT)
  109. #define SMIAPP_REG_U16_SCALING_MODE (0x0400 | CCS_FL_16BIT)
  110. #define SMIAPP_REG_U16_SPATIAL_SAMPLING (0x0402 | CCS_FL_16BIT)
  111. #define SMIAPP_REG_U16_SCALE_M (0x0404 | CCS_FL_16BIT)
  112. #define SMIAPP_REG_U16_SCALE_N (0x0406 | CCS_FL_16BIT)
  113. #define SMIAPP_REG_U16_DIGITAL_CROP_X_OFFSET (0x0408 | CCS_FL_16BIT)
  114. #define SMIAPP_REG_U16_DIGITAL_CROP_Y_OFFSET (0x040a | CCS_FL_16BIT)
  115. #define SMIAPP_REG_U16_DIGITAL_CROP_IMAGE_WIDTH (0x040c | CCS_FL_16BIT)
  116. #define SMIAPP_REG_U16_DIGITAL_CROP_IMAGE_HEIGHT (0x040e | CCS_FL_16BIT)
  117. #define SMIAPP_REG_U16_COMPRESSION_MODE (0x0500 | CCS_FL_16BIT)
  118. #define SMIAPP_REG_U16_TEST_PATTERN_MODE (0x0600 | CCS_FL_16BIT)
  119. #define SMIAPP_REG_U16_TEST_DATA_RED (0x0602 | CCS_FL_16BIT)
  120. #define SMIAPP_REG_U16_TEST_DATA_GREENR (0x0604 | CCS_FL_16BIT)
  121. #define SMIAPP_REG_U16_TEST_DATA_BLUE (0x0606 | CCS_FL_16BIT)
  122. #define SMIAPP_REG_U16_TEST_DATA_GREENB (0x0608 | CCS_FL_16BIT)
  123. #define SMIAPP_REG_U16_HORIZONTAL_CURSOR_WIDTH (0x060a | CCS_FL_16BIT)
  124. #define SMIAPP_REG_U16_HORIZONTAL_CURSOR_POSITION (0x060c | CCS_FL_16BIT)
  125. #define SMIAPP_REG_U16_VERTICAL_CURSOR_WIDTH (0x060e | CCS_FL_16BIT)
  126. #define SMIAPP_REG_U16_VERTICAL_CURSOR_POSITION (0x0610 | CCS_FL_16BIT)
  127. #define SMIAPP_REG_U16_FIFO_WATER_MARK_PIXELS (0x0700 | CCS_FL_16BIT)
  128. #define SMIAPP_REG_U8_TCLK_POST 0x0800
  129. #define SMIAPP_REG_U8_THS_PREPARE 0x0801
  130. #define SMIAPP_REG_U8_THS_ZERO_MIN 0x0802
  131. #define SMIAPP_REG_U8_THS_TRAIL 0x0803
  132. #define SMIAPP_REG_U8_TCLK_TRAIL_MIN 0x0804
  133. #define SMIAPP_REG_U8_TCLK_PREPARE 0x0805
  134. #define SMIAPP_REG_U8_TCLK_ZERO 0x0806
  135. #define SMIAPP_REG_U8_TLPX 0x0807
  136. #define SMIAPP_REG_U8_DPHY_CTRL 0x0808
  137. #define SMIAPP_REG_U32_REQUESTED_LINK_BIT_RATE_MBPS (0x0820 | CCS_FL_32BIT)
  138. #define SMIAPP_REG_U8_BINNING_MODE 0x0900
  139. #define SMIAPP_REG_U8_BINNING_TYPE 0x0901
  140. #define SMIAPP_REG_U8_BINNING_WEIGHTING 0x0902
  141. #define SMIAPP_REG_U8_DATA_TRANSFER_IF_1_CTRL 0x0a00
  142. #define SMIAPP_REG_U8_DATA_TRANSFER_IF_1_STATUS 0x0a01
  143. #define SMIAPP_REG_U8_DATA_TRANSFER_IF_1_PAGE_SELECT 0x0a02
  144. #define SMIAPP_REG_U8_DATA_TRANSFER_IF_1_DATA_0 0x0a04
  145. #define SMIAPP_REG_U8_DATA_TRANSFER_IF_1_DATA_1 0x0a05
  146. #define SMIAPP_REG_U8_DATA_TRANSFER_IF_1_DATA_2 0x0a06
  147. #define SMIAPP_REG_U8_DATA_TRANSFER_IF_1_DATA_3 0x0a07
  148. #define SMIAPP_REG_U8_DATA_TRANSFER_IF_1_DATA_4 0x0a08
  149. #define SMIAPP_REG_U8_DATA_TRANSFER_IF_1_DATA_5 0x0a09
  150. #define SMIAPP_REG_U8_DATA_TRANSFER_IF_1_DATA_12 0x0a10
  151. #define SMIAPP_REG_U8_DATA_TRANSFER_IF_1_DATA_13 0x0a11
  152. #define SMIAPP_REG_U8_DATA_TRANSFER_IF_1_DATA_14 0x0a12
  153. #define SMIAPP_REG_U8_DATA_TRANSFER_IF_1_DATA_15 0x0a13
  154. #define SMIAPP_REG_U8_DATA_TRANSFER_IF_1_DATA_16 0x0a14
  155. #define SMIAPP_REG_U8_DATA_TRANSFER_IF_1_DATA_17 0x0a15
  156. #define SMIAPP_REG_U8_DATA_TRANSFER_IF_1_DATA_18 0x0a16
  157. #define SMIAPP_REG_U8_DATA_TRANSFER_IF_1_DATA_19 0x0a17
  158. #define SMIAPP_REG_U8_DATA_TRANSFER_IF_1_DATA_20 0x0a18
  159. #define SMIAPP_REG_U8_DATA_TRANSFER_IF_1_DATA_21 0x0a19
  160. #define SMIAPP_REG_U8_DATA_TRANSFER_IF_1_DATA_22 0x0a1a
  161. #define SMIAPP_REG_U8_DATA_TRANSFER_IF_1_DATA_23 0x0a1b
  162. #define SMIAPP_REG_U8_DATA_TRANSFER_IF_1_DATA_24 0x0a1c
  163. #define SMIAPP_REG_U8_DATA_TRANSFER_IF_1_DATA_25 0x0a1d
  164. #define SMIAPP_REG_U8_DATA_TRANSFER_IF_1_DATA_26 0x0a1e
  165. #define SMIAPP_REG_U8_DATA_TRANSFER_IF_1_DATA_27 0x0a1f
  166. #define SMIAPP_REG_U8_DATA_TRANSFER_IF_1_DATA_28 0x0a20
  167. #define SMIAPP_REG_U8_DATA_TRANSFER_IF_1_DATA_29 0x0a21
  168. #define SMIAPP_REG_U8_DATA_TRANSFER_IF_1_DATA_30 0x0a22
  169. #define SMIAPP_REG_U8_DATA_TRANSFER_IF_1_DATA_31 0x0a23
  170. #define SMIAPP_REG_U8_DATA_TRANSFER_IF_1_DATA_32 0x0a24
  171. #define SMIAPP_REG_U8_DATA_TRANSFER_IF_1_DATA_33 0x0a25
  172. #define SMIAPP_REG_U8_DATA_TRANSFER_IF_1_DATA_34 0x0a26
  173. #define SMIAPP_REG_U8_DATA_TRANSFER_IF_1_DATA_35 0x0a27
  174. #define SMIAPP_REG_U8_DATA_TRANSFER_IF_1_DATA_36 0x0a28
  175. #define SMIAPP_REG_U8_DATA_TRANSFER_IF_1_DATA_37 0x0a29
  176. #define SMIAPP_REG_U8_DATA_TRANSFER_IF_1_DATA_38 0x0a2a
  177. #define SMIAPP_REG_U8_DATA_TRANSFER_IF_1_DATA_39 0x0a2b
  178. #define SMIAPP_REG_U8_DATA_TRANSFER_IF_1_DATA_40 0x0a2c
  179. #define SMIAPP_REG_U8_DATA_TRANSFER_IF_1_DATA_41 0x0a2d
  180. #define SMIAPP_REG_U8_DATA_TRANSFER_IF_1_DATA_42 0x0a2e
  181. #define SMIAPP_REG_U8_DATA_TRANSFER_IF_1_DATA_43 0x0a2f
  182. #define SMIAPP_REG_U8_DATA_TRANSFER_IF_1_DATA_44 0x0a30
  183. #define SMIAPP_REG_U8_DATA_TRANSFER_IF_1_DATA_45 0x0a31
  184. #define SMIAPP_REG_U8_DATA_TRANSFER_IF_1_DATA_46 0x0a32
  185. #define SMIAPP_REG_U8_DATA_TRANSFER_IF_1_DATA_47 0x0a33
  186. #define SMIAPP_REG_U8_DATA_TRANSFER_IF_1_DATA_48 0x0a34
  187. #define SMIAPP_REG_U8_DATA_TRANSFER_IF_1_DATA_49 0x0a35
  188. #define SMIAPP_REG_U8_DATA_TRANSFER_IF_1_DATA_50 0x0a36
  189. #define SMIAPP_REG_U8_DATA_TRANSFER_IF_1_DATA_51 0x0a37
  190. #define SMIAPP_REG_U8_DATA_TRANSFER_IF_1_DATA_52 0x0a38
  191. #define SMIAPP_REG_U8_DATA_TRANSFER_IF_1_DATA_53 0x0a39
  192. #define SMIAPP_REG_U8_DATA_TRANSFER_IF_1_DATA_54 0x0a3a
  193. #define SMIAPP_REG_U8_DATA_TRANSFER_IF_1_DATA_55 0x0a3b
  194. #define SMIAPP_REG_U8_DATA_TRANSFER_IF_1_DATA_56 0x0a3c
  195. #define SMIAPP_REG_U8_DATA_TRANSFER_IF_1_DATA_57 0x0a3d
  196. #define SMIAPP_REG_U8_DATA_TRANSFER_IF_1_DATA_58 0x0a3e
  197. #define SMIAPP_REG_U8_DATA_TRANSFER_IF_1_DATA_59 0x0a3f
  198. #define SMIAPP_REG_U8_DATA_TRANSFER_IF_1_DATA_60 0x0a40
  199. #define SMIAPP_REG_U8_DATA_TRANSFER_IF_1_DATA_61 0x0a41
  200. #define SMIAPP_REG_U8_DATA_TRANSFER_IF_1_DATA_62 0x0a42
  201. #define SMIAPP_REG_U8_DATA_TRANSFER_IF_1_DATA_63 0x0a43
  202. #define SMIAPP_REG_U8_DATA_TRANSFER_IF_2_CTRL 0x0a44
  203. #define SMIAPP_REG_U8_DATA_TRANSFER_IF_2_STATUS 0x0a45
  204. #define SMIAPP_REG_U8_DATA_TRANSFER_IF_2_PAGE_SELECT 0x0a46
  205. #define SMIAPP_REG_U8_DATA_TRANSFER_IF_2_DATA_0 0x0a48
  206. #define SMIAPP_REG_U8_DATA_TRANSFER_IF_2_DATA_1 0x0a49
  207. #define SMIAPP_REG_U8_DATA_TRANSFER_IF_2_DATA_2 0x0a4a
  208. #define SMIAPP_REG_U8_DATA_TRANSFER_IF_2_DATA_3 0x0a4b
  209. #define SMIAPP_REG_U8_DATA_TRANSFER_IF_2_DATA_4 0x0a4c
  210. #define SMIAPP_REG_U8_DATA_TRANSFER_IF_2_DATA_5 0x0a4d
  211. #define SMIAPP_REG_U8_DATA_TRANSFER_IF_2_DATA_6 0x0a4e
  212. #define SMIAPP_REG_U8_DATA_TRANSFER_IF_2_DATA_7 0x0a4f
  213. #define SMIAPP_REG_U8_DATA_TRANSFER_IF_2_DATA_8 0x0a50
  214. #define SMIAPP_REG_U8_DATA_TRANSFER_IF_2_DATA_9 0x0a51
  215. #define SMIAPP_REG_U8_DATA_TRANSFER_IF_2_DATA_10 0x0a52
  216. #define SMIAPP_REG_U8_DATA_TRANSFER_IF_2_DATA_11 0x0a53
  217. #define SMIAPP_REG_U8_DATA_TRANSFER_IF_2_DATA_12 0x0a54
  218. #define SMIAPP_REG_U8_DATA_TRANSFER_IF_2_DATA_13 0x0a55
  219. #define SMIAPP_REG_U8_DATA_TRANSFER_IF_2_DATA_14 0x0a56
  220. #define SMIAPP_REG_U8_DATA_TRANSFER_IF_2_DATA_15 0x0a57
  221. #define SMIAPP_REG_U8_DATA_TRANSFER_IF_2_DATA_16 0x0a58
  222. #define SMIAPP_REG_U8_DATA_TRANSFER_IF_2_DATA_17 0x0a59
  223. #define SMIAPP_REG_U8_DATA_TRANSFER_IF_2_DATA_18 0x0a5a
  224. #define SMIAPP_REG_U8_DATA_TRANSFER_IF_2_DATA_19 0x0a5b
  225. #define SMIAPP_REG_U8_DATA_TRANSFER_IF_2_DATA_20 0x0a5c
  226. #define SMIAPP_REG_U8_DATA_TRANSFER_IF_2_DATA_21 0x0a5d
  227. #define SMIAPP_REG_U8_DATA_TRANSFER_IF_2_DATA_22 0x0a5e
  228. #define SMIAPP_REG_U8_DATA_TRANSFER_IF_2_DATA_23 0x0a5f
  229. #define SMIAPP_REG_U8_DATA_TRANSFER_IF_2_DATA_24 0x0a60
  230. #define SMIAPP_REG_U8_DATA_TRANSFER_IF_2_DATA_25 0x0a61
  231. #define SMIAPP_REG_U8_DATA_TRANSFER_IF_2_DATA_26 0x0a62
  232. #define SMIAPP_REG_U8_DATA_TRANSFER_IF_2_DATA_27 0x0a63
  233. #define SMIAPP_REG_U8_DATA_TRANSFER_IF_2_DATA_28 0x0a64
  234. #define SMIAPP_REG_U8_DATA_TRANSFER_IF_2_DATA_29 0x0a65
  235. #define SMIAPP_REG_U8_DATA_TRANSFER_IF_2_DATA_30 0x0a66
  236. #define SMIAPP_REG_U8_DATA_TRANSFER_IF_2_DATA_31 0x0a67
  237. #define SMIAPP_REG_U8_DATA_TRANSFER_IF_2_DATA_32 0x0a68
  238. #define SMIAPP_REG_U8_DATA_TRANSFER_IF_2_DATA_33 0x0a69
  239. #define SMIAPP_REG_U8_DATA_TRANSFER_IF_2_DATA_34 0x0a6a
  240. #define SMIAPP_REG_U8_DATA_TRANSFER_IF_2_DATA_35 0x0a6b
  241. #define SMIAPP_REG_U8_DATA_TRANSFER_IF_2_DATA_36 0x0a6c
  242. #define SMIAPP_REG_U8_DATA_TRANSFER_IF_2_DATA_37 0x0a6d
  243. #define SMIAPP_REG_U8_DATA_TRANSFER_IF_2_DATA_38 0x0a6e
  244. #define SMIAPP_REG_U8_DATA_TRANSFER_IF_2_DATA_39 0x0a6f
  245. #define SMIAPP_REG_U8_DATA_TRANSFER_IF_2_DATA_40 0x0a70
  246. #define SMIAPP_REG_U8_DATA_TRANSFER_IF_2_DATA_41 0x0a71
  247. #define SMIAPP_REG_U8_DATA_TRANSFER_IF_2_DATA_42 0x0a72
  248. #define SMIAPP_REG_U8_DATA_TRANSFER_IF_2_DATA_43 0x0a73
  249. #define SMIAPP_REG_U8_DATA_TRANSFER_IF_2_DATA_44 0x0a74
  250. #define SMIAPP_REG_U8_DATA_TRANSFER_IF_2_DATA_45 0x0a75
  251. #define SMIAPP_REG_U8_DATA_TRANSFER_IF_2_DATA_46 0x0a76
  252. #define SMIAPP_REG_U8_DATA_TRANSFER_IF_2_DATA_47 0x0a77
  253. #define SMIAPP_REG_U8_DATA_TRANSFER_IF_2_DATA_48 0x0a78
  254. #define SMIAPP_REG_U8_DATA_TRANSFER_IF_2_DATA_49 0x0a79
  255. #define SMIAPP_REG_U8_DATA_TRANSFER_IF_2_DATA_50 0x0a7a
  256. #define SMIAPP_REG_U8_DATA_TRANSFER_IF_2_DATA_51 0x0a7b
  257. #define SMIAPP_REG_U8_DATA_TRANSFER_IF_2_DATA_52 0x0a7c
  258. #define SMIAPP_REG_U8_DATA_TRANSFER_IF_2_DATA_53 0x0a7d
  259. #define SMIAPP_REG_U8_DATA_TRANSFER_IF_2_DATA_54 0x0a7e
  260. #define SMIAPP_REG_U8_DATA_TRANSFER_IF_2_DATA_55 0x0a7f
  261. #define SMIAPP_REG_U8_DATA_TRANSFER_IF_2_DATA_56 0x0a80
  262. #define SMIAPP_REG_U8_DATA_TRANSFER_IF_2_DATA_57 0x0a81
  263. #define SMIAPP_REG_U8_DATA_TRANSFER_IF_2_DATA_58 0x0a82
  264. #define SMIAPP_REG_U8_DATA_TRANSFER_IF_2_DATA_59 0x0a83
  265. #define SMIAPP_REG_U8_DATA_TRANSFER_IF_2_DATA_60 0x0a84
  266. #define SMIAPP_REG_U8_DATA_TRANSFER_IF_2_DATA_61 0x0a85
  267. #define SMIAPP_REG_U8_DATA_TRANSFER_IF_2_DATA_62 0x0a86
  268. #define SMIAPP_REG_U8_DATA_TRANSFER_IF_2_DATA_63 0x0a87
  269. #define SMIAPP_REG_U8_SHADING_CORRECTION_ENABLE 0x0b00
  270. #define SMIAPP_REG_U8_LUMINANCE_CORRECTION_LEVEL 0x0b01
  271. #define SMIAPP_REG_U8_GREEN_IMBALANCE_FILTER_ENABLE 0x0b02
  272. #define SMIAPP_REG_U8_GREEN_IMBALANCE_FILTER_WEIGHT 0x0b03
  273. #define SMIAPP_REG_U8_BLACK_LEVEL_CORRECTION_ENABLE 0x0b04
  274. #define SMIAPP_REG_U8_MAPPED_COUPLET_CORRECT_ENABLE 0x0b05
  275. #define SMIAPP_REG_U8_SINGLE_DEFECT_CORRECT_ENABLE 0x0b06
  276. #define SMIAPP_REG_U8_SINGLE_DEFECT_CORRECT_WEIGHT 0x0b07
  277. #define SMIAPP_REG_U8_DYNAMIC_COUPLET_CORRECT_ENABLE 0x0b08
  278. #define SMIAPP_REG_U8_DYNAMIC_COUPLET_CORRECT_WEIGHT 0x0b09
  279. #define SMIAPP_REG_U8_COMBINED_DEFECT_CORRECT_ENABLE 0x0b0a
  280. #define SMIAPP_REG_U8_COMBINED_DEFECT_CORRECT_WEIGHT 0x0b0b
  281. #define SMIAPP_REG_U8_MODULE_SPECIFIC_CORRECTION_ENABLE 0x0b0c
  282. #define SMIAPP_REG_U8_MODULE_SPECIFIC_CORRECTION_WEIGHT 0x0b0d
  283. #define SMIAPP_REG_U8_MAPPED_LINE_DEFECT_CORRECT_ENABLE 0x0b0e
  284. #define SMIAPP_REG_U8_MAPPED_LINE_DEFECT_CORRECT_ADJUST 0x0b0f
  285. #define SMIAPP_REG_U8_MAPPED_COUPLET_CORRECT_ADJUST 0x0b10
  286. #define SMIAPP_REG_U8_MAPPED_TRIPLET_DEFECT_CORRECT_ENABLE 0x0b11
  287. #define SMIAPP_REG_U8_MAPPED_TRIPLET_DEFECT_CORRECT_ADJUST 0x0b12
  288. #define SMIAPP_REG_U8_DYNAMIC_TRIPLET_DEFECT_CORRECT_ENABLE 0x0b13
  289. #define SMIAPP_REG_U8_DYNAMIC_TRIPLET_DEFECT_CORRECT_ADJUST 0x0b14
  290. #define SMIAPP_REG_U8_DYNAMIC_LINE_DEFECT_CORRECT_ENABLE 0x0b15
  291. #define SMIAPP_REG_U8_DYNAMIC_LINE_DEFECT_CORRECT_ADJUST 0x0b16
  292. #define SMIAPP_REG_U8_EDOF_MODE 0x0b80
  293. #define SMIAPP_REG_U8_SHARPNESS 0x0b83
  294. #define SMIAPP_REG_U8_DENOISING 0x0b84
  295. #define SMIAPP_REG_U8_MODULE_SPECIFIC 0x0b85
  296. #define SMIAPP_REG_U16_DEPTH_OF_FIELD (0x0b86 | CCS_FL_16BIT)
  297. #define SMIAPP_REG_U16_FOCUS_DISTANCE (0x0b88 | CCS_FL_16BIT)
  298. #define SMIAPP_REG_U8_ESTIMATION_MODE_CTRL 0x0b8a
  299. #define SMIAPP_REG_U16_COLOUR_TEMPERATURE (0x0b8c | CCS_FL_16BIT)
  300. #define SMIAPP_REG_U16_ABSOLUTE_GAIN_GREENR (0x0b8e | CCS_FL_16BIT)
  301. #define SMIAPP_REG_U16_ABSOLUTE_GAIN_RED (0x0b90 | CCS_FL_16BIT)
  302. #define SMIAPP_REG_U16_ABSOLUTE_GAIN_BLUE (0x0b92 | CCS_FL_16BIT)
  303. #define SMIAPP_REG_U16_ABSOLUTE_GAIN_GREENB (0x0b94 | CCS_FL_16BIT)
  304. #define SMIAPP_REG_U8_ESTIMATION_ZONE_MODE 0x0bc0
  305. #define SMIAPP_REG_U16_FIXED_ZONE_WEIGHTING (0x0bc2 | CCS_FL_16BIT)
  306. #define SMIAPP_REG_U16_CUSTOM_ZONE_X_START (0x0bc4 | CCS_FL_16BIT)
  307. #define SMIAPP_REG_U16_CUSTOM_ZONE_Y_START (0x0bc6 | CCS_FL_16BIT)
  308. #define SMIAPP_REG_U16_CUSTOM_ZONE_WIDTH (0x0bc8 | CCS_FL_16BIT)
  309. #define SMIAPP_REG_U16_CUSTOM_ZONE_HEIGHT (0x0bca | CCS_FL_16BIT)
  310. #define SMIAPP_REG_U8_GLOBAL_RESET_CTRL1 0x0c00
  311. #define SMIAPP_REG_U8_GLOBAL_RESET_CTRL2 0x0c01
  312. #define SMIAPP_REG_U8_GLOBAL_RESET_MODE_CONFIG_1 0x0c02
  313. #define SMIAPP_REG_U8_GLOBAL_RESET_MODE_CONFIG_2 0x0c03
  314. #define SMIAPP_REG_U16_TRDY_CTRL (0x0c04 | CCS_FL_16BIT)
  315. #define SMIAPP_REG_U16_TRDOUT_CTRL (0x0c06 | CCS_FL_16BIT)
  316. #define SMIAPP_REG_U16_TSHUTTER_STROBE_DELAY_CTRL (0x0c08 | CCS_FL_16BIT)
  317. #define SMIAPP_REG_U16_TSHUTTER_STROBE_WIDTH_CTRL (0x0c0a | CCS_FL_16BIT)
  318. #define SMIAPP_REG_U16_TFLASH_STROBE_DELAY_CTRL (0x0c0c | CCS_FL_16BIT)
  319. #define SMIAPP_REG_U16_TFLASH_STROBE_WIDTH_HIGH_CTRL (0x0c0e | CCS_FL_16BIT)
  320. #define SMIAPP_REG_U16_TGRST_INTERVAL_CTRL (0x0c10 | CCS_FL_16BIT)
  321. #define SMIAPP_REG_U8_FLASH_STROBE_ADJUSTMENT 0x0c12
  322. #define SMIAPP_REG_U16_FLASH_STROBE_START_POINT (0x0c14 | CCS_FL_16BIT)
  323. #define SMIAPP_REG_U16_TFLASH_STROBE_DELAY_RS_CTRL (0x0c16 | CCS_FL_16BIT)
  324. #define SMIAPP_REG_U16_TFLASH_STROBE_WIDTH_HIGH_RS_CTRL (0x0c18 | CCS_FL_16BIT)
  325. #define SMIAPP_REG_U8_FLASH_MODE_RS 0x0c1a
  326. #define SMIAPP_REG_U8_FLASH_TRIGGER_RS 0x0c1b
  327. #define SMIAPP_REG_U8_FLASH_STATUS 0x0c1c
  328. #define SMIAPP_REG_U8_SA_STROBE_MODE 0x0c1d
  329. #define SMIAPP_REG_U16_SA_STROBE_START_POINT (0x0c1e | CCS_FL_16BIT)
  330. #define SMIAPP_REG_U16_TSA_STROBE_DELAY_CTRL (0x0c20 | CCS_FL_16BIT)
  331. #define SMIAPP_REG_U16_TSA_STROBE_WIDTH_CTRL (0x0c22 | CCS_FL_16BIT)
  332. #define SMIAPP_REG_U8_SA_STROBE_TRIGGER 0x0c24
  333. #define SMIAPP_REG_U8_SPECIAL_ACTUATOR_STATUS 0x0c25
  334. #define SMIAPP_REG_U16_TFLASH_STROBE_WIDTH2_HIGH_RS_CTRL (0x0c26 | CCS_FL_16BIT)
  335. #define SMIAPP_REG_U16_TFLASH_STROBE_WIDTH_LOW_RS_CTRL (0x0c28 | CCS_FL_16BIT)
  336. #define SMIAPP_REG_U8_TFLASH_STROBE_COUNT_RS_CTRL 0x0c2a
  337. #define SMIAPP_REG_U8_TFLASH_STROBE_COUNT_CTRL 0x0c2b
  338. #define SMIAPP_REG_U16_TFLASH_STROBE_WIDTH2_HIGH_CTRL (0x0c2c | CCS_FL_16BIT)
  339. #define SMIAPP_REG_U16_TFLASH_STROBE_WIDTH_LOW_CTRL (0x0c2e | CCS_FL_16BIT)
  340. #define SMIAPP_REG_U8_LOW_LEVEL_CTRL 0x0c80
  341. #define SMIAPP_REG_U16_MAIN_TRIGGER_REF_POINT (0x0c82 | CCS_FL_16BIT)
  342. #define SMIAPP_REG_U16_MAIN_TRIGGER_T3 (0x0c84 | CCS_FL_16BIT)
  343. #define SMIAPP_REG_U8_MAIN_TRIGGER_COUNT 0x0c86
  344. #define SMIAPP_REG_U16_PHASE1_TRIGGER_T3 (0x0c88 | CCS_FL_16BIT)
  345. #define SMIAPP_REG_U8_PHASE1_TRIGGER_COUNT 0x0c8a
  346. #define SMIAPP_REG_U16_PHASE2_TRIGGER_T3 (0x0c8c | CCS_FL_16BIT)
  347. #define SMIAPP_REG_U8_PHASE2_TRIGGER_COUNT 0x0c8e
  348. #define SMIAPP_REG_U8_MECH_SHUTTER_CTRL 0x0d00
  349. #define SMIAPP_REG_U8_OPERATION_MODE 0x0d01
  350. #define SMIAPP_REG_U8_ACT_STATE1 0x0d02
  351. #define SMIAPP_REG_U8_ACT_STATE2 0x0d03
  352. #define SMIAPP_REG_U16_FOCUS_CHANGE (0x0d80 | CCS_FL_16BIT)
  353. #define SMIAPP_REG_U16_FOCUS_CHANGE_CONTROL (0x0d82 | CCS_FL_16BIT)
  354. #define SMIAPP_REG_U16_FOCUS_CHANGE_NUMBER_PHASE1 (0x0d84 | CCS_FL_16BIT)
  355. #define SMIAPP_REG_U16_FOCUS_CHANGE_NUMBER_PHASE2 (0x0d86 | CCS_FL_16BIT)
  356. #define SMIAPP_REG_U8_STROBE_COUNT_PHASE1 0x0d88
  357. #define SMIAPP_REG_U8_STROBE_COUNT_PHASE2 0x0d89
  358. #define SMIAPP_REG_U8_POSITION 0x0d8a
  359. #define SMIAPP_REG_U8_BRACKETING_LUT_CONTROL 0x0e00
  360. #define SMIAPP_REG_U8_BRACKETING_LUT_MODE 0x0e01
  361. #define SMIAPP_REG_U8_BRACKETING_LUT_ENTRY_CONTROL 0x0e02
  362. #define SMIAPP_REG_U8_LUT_PARAMETERS_START 0x0e10
  363. #define SMIAPP_REG_U8_LUT_PARAMETERS_END 0x0eff
  364. #define SMIAPP_REG_U16_INTEGRATION_TIME_CAPABILITY (0x1000 | CCS_FL_16BIT)
  365. #define SMIAPP_REG_U16_COARSE_INTEGRATION_TIME_MIN (0x1004 | CCS_FL_16BIT)
  366. #define SMIAPP_REG_U16_COARSE_INTEGRATION_TIME_MAX_MARGIN (0x1006 | CCS_FL_16BIT)
  367. #define SMIAPP_REG_U16_FINE_INTEGRATION_TIME_MIN (0x1008 | CCS_FL_16BIT)
  368. #define SMIAPP_REG_U16_FINE_INTEGRATION_TIME_MAX_MARGIN (0x100a | CCS_FL_16BIT)
  369. #define SMIAPP_REG_U16_DIGITAL_GAIN_CAPABILITY (0x1080 | CCS_FL_16BIT)
  370. #define SMIAPP_REG_U16_DIGITAL_GAIN_MIN (0x1084 | CCS_FL_16BIT)
  371. #define SMIAPP_REG_U16_DIGITAL_GAIN_MAX (0x1086 | CCS_FL_16BIT)
  372. #define SMIAPP_REG_U16_DIGITAL_GAIN_STEP_SIZE (0x1088 | CCS_FL_16BIT)
  373. #define SMIAPP_REG_F32_MIN_EXT_CLK_FREQ_HZ (0x1100 | CCS_FL_FLOAT_IREAL | CCS_FL_32BIT)
  374. #define SMIAPP_REG_F32_MAX_EXT_CLK_FREQ_HZ (0x1104 | CCS_FL_FLOAT_IREAL | CCS_FL_32BIT)
  375. #define SMIAPP_REG_U16_MIN_PRE_PLL_CLK_DIV (0x1108 | CCS_FL_16BIT)
  376. #define SMIAPP_REG_U16_MAX_PRE_PLL_CLK_DIV (0x110a | CCS_FL_16BIT)
  377. #define SMIAPP_REG_F32_MIN_PLL_IP_FREQ_HZ (0x110c | CCS_FL_FLOAT_IREAL | CCS_FL_32BIT)
  378. #define SMIAPP_REG_F32_MAX_PLL_IP_FREQ_HZ (0x1110 | CCS_FL_FLOAT_IREAL | CCS_FL_32BIT)
  379. #define SMIAPP_REG_U16_MIN_PLL_MULTIPLIER (0x1114 | CCS_FL_16BIT)
  380. #define SMIAPP_REG_U16_MAX_PLL_MULTIPLIER (0x1116 | CCS_FL_16BIT)
  381. #define SMIAPP_REG_F32_MIN_PLL_OP_FREQ_HZ (0x1118 | CCS_FL_FLOAT_IREAL | CCS_FL_32BIT)
  382. #define SMIAPP_REG_F32_MAX_PLL_OP_FREQ_HZ (0x111c | CCS_FL_FLOAT_IREAL | CCS_FL_32BIT)
  383. #define SMIAPP_REG_U16_MIN_VT_SYS_CLK_DIV (0x1120 | CCS_FL_16BIT)
  384. #define SMIAPP_REG_U16_MAX_VT_SYS_CLK_DIV (0x1122 | CCS_FL_16BIT)
  385. #define SMIAPP_REG_F32_MIN_VT_SYS_CLK_FREQ_HZ (0x1124 | CCS_FL_FLOAT_IREAL | CCS_FL_32BIT)
  386. #define SMIAPP_REG_F32_MAX_VT_SYS_CLK_FREQ_HZ (0x1128 | CCS_FL_FLOAT_IREAL | CCS_FL_32BIT)
  387. #define SMIAPP_REG_F32_MIN_VT_PIX_CLK_FREQ_HZ (0x112c | CCS_FL_FLOAT_IREAL | CCS_FL_32BIT)
  388. #define SMIAPP_REG_F32_MAX_VT_PIX_CLK_FREQ_HZ (0x1130 | CCS_FL_FLOAT_IREAL | CCS_FL_32BIT)
  389. #define SMIAPP_REG_U16_MIN_VT_PIX_CLK_DIV (0x1134 | CCS_FL_16BIT)
  390. #define SMIAPP_REG_U16_MAX_VT_PIX_CLK_DIV (0x1136 | CCS_FL_16BIT)
  391. #define SMIAPP_REG_U16_MIN_FRAME_LENGTH_LINES (0x1140 | CCS_FL_16BIT)
  392. #define SMIAPP_REG_U16_MAX_FRAME_LENGTH_LINES (0x1142 | CCS_FL_16BIT)
  393. #define SMIAPP_REG_U16_MIN_LINE_LENGTH_PCK (0x1144 | CCS_FL_16BIT)
  394. #define SMIAPP_REG_U16_MAX_LINE_LENGTH_PCK (0x1146 | CCS_FL_16BIT)
  395. #define SMIAPP_REG_U16_MIN_LINE_BLANKING_PCK (0x1148 | CCS_FL_16BIT)
  396. #define SMIAPP_REG_U16_MIN_FRAME_BLANKING_LINES (0x114a | CCS_FL_16BIT)
  397. #define SMIAPP_REG_U8_MIN_LINE_LENGTH_PCK_STEP_SIZE 0x114c
  398. #define SMIAPP_REG_U16_MIN_OP_SYS_CLK_DIV (0x1160 | CCS_FL_16BIT)
  399. #define SMIAPP_REG_U16_MAX_OP_SYS_CLK_DIV (0x1162 | CCS_FL_16BIT)
  400. #define SMIAPP_REG_F32_MIN_OP_SYS_CLK_FREQ_HZ (0x1164 | CCS_FL_FLOAT_IREAL | CCS_FL_32BIT)
  401. #define SMIAPP_REG_F32_MAX_OP_SYS_CLK_FREQ_HZ (0x1168 | CCS_FL_FLOAT_IREAL | CCS_FL_32BIT)
  402. #define SMIAPP_REG_U16_MIN_OP_PIX_CLK_DIV (0x116c | CCS_FL_16BIT)
  403. #define SMIAPP_REG_U16_MAX_OP_PIX_CLK_DIV (0x116e | CCS_FL_16BIT)
  404. #define SMIAPP_REG_F32_MIN_OP_PIX_CLK_FREQ_HZ (0x1170 | CCS_FL_FLOAT_IREAL | CCS_FL_32BIT)
  405. #define SMIAPP_REG_F32_MAX_OP_PIX_CLK_FREQ_HZ (0x1174 | CCS_FL_FLOAT_IREAL | CCS_FL_32BIT)
  406. #define SMIAPP_REG_U16_X_ADDR_MIN (0x1180 | CCS_FL_16BIT)
  407. #define SMIAPP_REG_U16_Y_ADDR_MIN (0x1182 | CCS_FL_16BIT)
  408. #define SMIAPP_REG_U16_X_ADDR_MAX (0x1184 | CCS_FL_16BIT)
  409. #define SMIAPP_REG_U16_Y_ADDR_MAX (0x1186 | CCS_FL_16BIT)
  410. #define SMIAPP_REG_U16_MIN_X_OUTPUT_SIZE (0x1188 | CCS_FL_16BIT)
  411. #define SMIAPP_REG_U16_MIN_Y_OUTPUT_SIZE (0x118a | CCS_FL_16BIT)
  412. #define SMIAPP_REG_U16_MAX_X_OUTPUT_SIZE (0x118c | CCS_FL_16BIT)
  413. #define SMIAPP_REG_U16_MAX_Y_OUTPUT_SIZE (0x118e | CCS_FL_16BIT)
  414. #define SMIAPP_REG_U16_MIN_EVEN_INC (0x11c0 | CCS_FL_16BIT)
  415. #define SMIAPP_REG_U16_MAX_EVEN_INC (0x11c2 | CCS_FL_16BIT)
  416. #define SMIAPP_REG_U16_MIN_ODD_INC (0x11c4 | CCS_FL_16BIT)
  417. #define SMIAPP_REG_U16_MAX_ODD_INC (0x11c6 | CCS_FL_16BIT)
  418. #define SMIAPP_REG_U16_SCALING_CAPABILITY (0x1200 | CCS_FL_16BIT)
  419. #define SMIAPP_REG_U16_SCALER_M_MIN (0x1204 | CCS_FL_16BIT)
  420. #define SMIAPP_REG_U16_SCALER_M_MAX (0x1206 | CCS_FL_16BIT)
  421. #define SMIAPP_REG_U16_SCALER_N_MIN (0x1208 | CCS_FL_16BIT)
  422. #define SMIAPP_REG_U16_SCALER_N_MAX (0x120a | CCS_FL_16BIT)
  423. #define SMIAPP_REG_U16_SPATIAL_SAMPLING_CAPABILITY (0x120c | CCS_FL_16BIT)
  424. #define SMIAPP_REG_U8_DIGITAL_CROP_CAPABILITY 0x120e
  425. #define SMIAPP_REG_U16_COMPRESSION_CAPABILITY (0x1300 | CCS_FL_16BIT)
  426. #define SMIAPP_REG_U16_MATRIX_ELEMENT_REDINRED (0x1400 | CCS_FL_16BIT)
  427. #define SMIAPP_REG_U16_MATRIX_ELEMENT_GREENINRED (0x1402 | CCS_FL_16BIT)
  428. #define SMIAPP_REG_U16_MATRIX_ELEMENT_BLUEINRED (0x1404 | CCS_FL_16BIT)
  429. #define SMIAPP_REG_U16_MATRIX_ELEMENT_REDINGREEN (0x1406 | CCS_FL_16BIT)
  430. #define SMIAPP_REG_U16_MATRIX_ELEMENT_GREENINGREEN (0x1408 | CCS_FL_16BIT)
  431. #define SMIAPP_REG_U16_MATRIX_ELEMENT_BLUEINGREEN (0x140a | CCS_FL_16BIT)
  432. #define SMIAPP_REG_U16_MATRIX_ELEMENT_REDINBLUE (0x140c | CCS_FL_16BIT)
  433. #define SMIAPP_REG_U16_MATRIX_ELEMENT_GREENINBLUE (0x140e | CCS_FL_16BIT)
  434. #define SMIAPP_REG_U16_MATRIX_ELEMENT_BLUEINBLUE (0x1410 | CCS_FL_16BIT)
  435. #define SMIAPP_REG_U16_FIFO_SIZE_PIXELS (0x1500 | CCS_FL_16BIT)
  436. #define SMIAPP_REG_U8_FIFO_SUPPORT_CAPABILITY 0x1502
  437. #define SMIAPP_REG_U8_DPHY_CTRL_CAPABILITY 0x1600
  438. #define SMIAPP_REG_U8_CSI_LANE_MODE_CAPABILITY 0x1601
  439. #define SMIAPP_REG_U8_CSI_SIGNALLING_MODE_CAPABILITY 0x1602
  440. #define SMIAPP_REG_U8_FAST_STANDBY_CAPABILITY 0x1603
  441. #define SMIAPP_REG_U8_CCI_ADDRESS_CONTROL_CAPABILITY 0x1604
  442. #define SMIAPP_REG_U32_MAX_PER_LANE_BITRATE_1_LANE_MODE_MBPS (0x1608 | CCS_FL_32BIT)
  443. #define SMIAPP_REG_U32_MAX_PER_LANE_BITRATE_2_LANE_MODE_MBPS (0x160c | CCS_FL_32BIT)
  444. #define SMIAPP_REG_U32_MAX_PER_LANE_BITRATE_3_LANE_MODE_MBPS (0x1610 | CCS_FL_32BIT)
  445. #define SMIAPP_REG_U32_MAX_PER_LANE_BITRATE_4_LANE_MODE_MBPS (0x1614 | CCS_FL_32BIT)
  446. #define SMIAPP_REG_U8_TEMP_SENSOR_CAPABILITY 0x1618
  447. #define SMIAPP_REG_U16_MIN_FRAME_LENGTH_LINES_BIN (0x1700 | CCS_FL_16BIT)
  448. #define SMIAPP_REG_U16_MAX_FRAME_LENGTH_LINES_BIN (0x1702 | CCS_FL_16BIT)
  449. #define SMIAPP_REG_U16_MIN_LINE_LENGTH_PCK_BIN (0x1704 | CCS_FL_16BIT)
  450. #define SMIAPP_REG_U16_MAX_LINE_LENGTH_PCK_BIN (0x1706 | CCS_FL_16BIT)
  451. #define SMIAPP_REG_U16_MIN_LINE_BLANKING_PCK_BIN (0x1708 | CCS_FL_16BIT)
  452. #define SMIAPP_REG_U16_FINE_INTEGRATION_TIME_MIN_BIN (0x170a | CCS_FL_16BIT)
  453. #define SMIAPP_REG_U16_FINE_INTEGRATION_TIME_MAX_MARGIN_BIN (0x170c | CCS_FL_16BIT)
  454. #define SMIAPP_REG_U8_BINNING_CAPABILITY 0x1710
  455. #define SMIAPP_REG_U8_BINNING_WEIGHTING_CAPABILITY 0x1711
  456. #define SMIAPP_REG_U8_BINNING_SUBTYPES 0x1712
  457. #define SMIAPP_REG_U8_BINNING_TYPE_n(n) (0x1713 + (n)) /* 1 <= n <= 237 */
  458. #define SMIAPP_REG_U8_DATA_TRANSFER_IF_CAPABILITY 0x1800
  459. #define SMIAPP_REG_U8_SHADING_CORRECTION_CAPABILITY 0x1900
  460. #define SMIAPP_REG_U8_GREEN_IMBALANCE_CAPABILITY 0x1901
  461. #define SMIAPP_REG_U8_BLACK_LEVEL_CAPABILITY 0x1902
  462. #define SMIAPP_REG_U8_MODULE_SPECIFIC_CORRECTION_CAPABILITY 0x1903
  463. #define SMIAPP_REG_U16_DEFECT_CORRECTION_CAPABILITY (0x1904 | CCS_FL_16BIT)
  464. #define SMIAPP_REG_U16_DEFECT_CORRECTION_CAPABILITY_2 (0x1906 | CCS_FL_16BIT)
  465. #define SMIAPP_REG_U8_EDOF_CAPABILITY 0x1980
  466. #define SMIAPP_REG_U8_ESTIMATION_FRAMES 0x1981
  467. #define SMIAPP_REG_U8_SUPPORTS_SHARPNESS_ADJ 0x1982
  468. #define SMIAPP_REG_U8_SUPPORTS_DENOISING_ADJ 0x1983
  469. #define SMIAPP_REG_U8_SUPPORTS_MODULE_SPECIFIC_ADJ 0x1984
  470. #define SMIAPP_REG_U8_SUPPORTS_DEPTH_OF_FIELD_ADJ 0x1985
  471. #define SMIAPP_REG_U8_SUPPORTS_FOCUS_DISTANCE_ADJ 0x1986
  472. #define SMIAPP_REG_U8_COLOUR_FEEDBACK_CAPABILITY 0x1987
  473. #define SMIAPP_REG_U8_EDOF_SUPPORT_AB_NXM 0x1988
  474. #define SMIAPP_REG_U8_ESTIMATION_MODE_CAPABILITY 0x19c0
  475. #define SMIAPP_REG_U8_ESTIMATION_ZONE_CAPABILITY 0x19c1
  476. #define SMIAPP_REG_U16_EST_DEPTH_OF_FIELD (0x19c2 | CCS_FL_16BIT)
  477. #define SMIAPP_REG_U16_EST_FOCUS_DISTANCE (0x19c4 | CCS_FL_16BIT)
  478. #define SMIAPP_REG_U16_CAPABILITY_TRDY_MIN (0x1a00 | CCS_FL_16BIT)
  479. #define SMIAPP_REG_U8_FLASH_MODE_CAPABILITY 0x1a02
  480. #define SMIAPP_REG_U16_MECH_SHUT_AND_ACT_START_ADDR (0x1b02 | CCS_FL_16BIT)
  481. #define SMIAPP_REG_U8_ACTUATOR_CAPABILITY 0x1b04
  482. #define SMIAPP_REG_U16_ACTUATOR_TYPE (0x1b40 | CCS_FL_16BIT)
  483. #define SMIAPP_REG_U8_AF_DEVICE_ADDRESS 0x1b42
  484. #define SMIAPP_REG_U16_FOCUS_CHANGE_ADDRESS (0x1b44 | CCS_FL_16BIT)
  485. #define SMIAPP_REG_U8_BRACKETING_LUT_CAPABILITY_1 0x1c00
  486. #define SMIAPP_REG_U8_BRACKETING_LUT_CAPABILITY_2 0x1c01
  487. #define SMIAPP_REG_U8_BRACKETING_LUT_SIZE 0x1c02
  488. /* Register bit definitions */
  489. #define SMIAPP_IMAGE_ORIENTATION_HFLIP BIT(0)
  490. #define SMIAPP_IMAGE_ORIENTATION_VFLIP BIT(1)
  491. #define SMIAPP_DATA_TRANSFER_IF_1_CTRL_EN BIT(0)
  492. #define SMIAPP_DATA_TRANSFER_IF_1_CTRL_WR_EN BIT(1)
  493. #define SMIAPP_DATA_TRANSFER_IF_1_CTRL_ERR_CLEAR BIT(2)
  494. #define SMIAPP_DATA_TRANSFER_IF_1_STATUS_RD_READY BIT(0)
  495. #define SMIAPP_DATA_TRANSFER_IF_1_STATUS_WR_READY BIT(1)
  496. #define SMIAPP_DATA_TRANSFER_IF_1_STATUS_EDATA BIT(2)
  497. #define SMIAPP_DATA_TRANSFER_IF_1_STATUS_EUSAGE BIT(3)
  498. #define SMIAPP_DATA_TRANSFER_IF_CAPABILITY_SUPPORTED BIT(0)
  499. #define SMIAPP_DATA_TRANSFER_IF_CAPABILITY_POLL BIT(2)
  500. #define SMIAPP_SOFTWARE_RESET BIT(0)
  501. #define SMIAPP_FLASH_MODE_CAPABILITY_SINGLE_STROBE BIT(0)
  502. #define SMIAPP_FLASH_MODE_CAPABILITY_MULTIPLE_STROBE BIT(1)
  503. #define SMIAPP_CSI_SIGNALLING_MODE_CCP2_DATA_CLOCK 0
  504. #define SMIAPP_CSI_SIGNALLING_MODE_CCP2_DATA_STROBE 1
  505. #define SMIAPP_CSI_SIGNALLING_MODE_CSI2 2
  506. #define SMIAPP_DPHY_CTRL_AUTOMATIC 0
  507. /* DPHY control based on REQUESTED_LINK_BIT_RATE_MBPS */
  508. #define SMIAPP_DPHY_CTRL_UI 1
  509. #define SMIAPP_DPHY_CTRL_REGISTER 2
  510. #define SMIAPP_COMPRESSION_MODE_SIMPLE_PREDICTOR 1
  511. #define SMIAPP_COMPRESSION_MODE_ADVANCED_PREDICTOR 2
  512. #define SMIAPP_MODE_SELECT_SOFTWARE_STANDBY 0
  513. #define SMIAPP_MODE_SELECT_STREAMING 1
  514. #define SMIAPP_SCALING_MODE_NONE 0
  515. #define SMIAPP_SCALING_MODE_HORIZONTAL 1
  516. #define SMIAPP_SCALING_MODE_BOTH 2
  517. #define SMIAPP_SCALING_CAPABILITY_NONE 0
  518. #define SMIAPP_SCALING_CAPABILITY_HORIZONTAL 1
  519. #define SMIAPP_SCALING_CAPABILITY_BOTH 2 /* horizontal/both */
  520. /* digital crop right before scaler */
  521. #define SMIAPP_DIGITAL_CROP_CAPABILITY_NONE 0
  522. #define SMIAPP_DIGITAL_CROP_CAPABILITY_INPUT_CROP 1
  523. #define SMIAPP_DIGITAL_GAIN_CAPABILITY_PER_CHANNEL 1
  524. #define SMIAPP_BINNING_CAPABILITY_NO 0
  525. #define SMIAPP_BINNING_CAPABILITY_YES 1
  526. /* Maximum number of binning subtypes */
  527. #define SMIAPP_BINNING_SUBTYPES 253
  528. #define SMIAPP_PIXEL_ORDER_GRBG 0
  529. #define SMIAPP_PIXEL_ORDER_RGGB 1
  530. #define SMIAPP_PIXEL_ORDER_BGGR 2
  531. #define SMIAPP_PIXEL_ORDER_GBRG 3
  532. #define SMIAPP_DATA_FORMAT_MODEL_TYPE_NORMAL 1
  533. #define SMIAPP_DATA_FORMAT_MODEL_TYPE_EXTENDED 2
  534. #define SMIAPP_DATA_FORMAT_MODEL_TYPE_NORMAL_N 8
  535. #define SMIAPP_DATA_FORMAT_MODEL_TYPE_EXTENDED_N 16
  536. #define SMIAPP_FRAME_FORMAT_MODEL_TYPE_2BYTE 0x01
  537. #define SMIAPP_FRAME_FORMAT_MODEL_TYPE_4BYTE 0x02
  538. #define SMIAPP_FRAME_FORMAT_MODEL_SUBTYPE_NROWS_MASK 0x0f
  539. #define SMIAPP_FRAME_FORMAT_MODEL_SUBTYPE_NCOLS_MASK 0xf0
  540. #define SMIAPP_FRAME_FORMAT_MODEL_SUBTYPE_NCOLS_SHIFT 4
  541. #define SMIAPP_FRAME_FORMAT_DESC_2_PIXELCODE_MASK 0xf000
  542. #define SMIAPP_FRAME_FORMAT_DESC_2_PIXELCODE_SHIFT 12
  543. #define SMIAPP_FRAME_FORMAT_DESC_2_PIXELS_MASK 0x0fff
  544. #define SMIAPP_FRAME_FORMAT_DESC_4_PIXELCODE_MASK 0xf0000000
  545. #define SMIAPP_FRAME_FORMAT_DESC_4_PIXELCODE_SHIFT 28
  546. #define SMIAPP_FRAME_FORMAT_DESC_4_PIXELS_MASK 0x0000ffff
  547. #define SMIAPP_FRAME_FORMAT_DESC_PIXELCODE_EMBEDDED 1
  548. #define SMIAPP_FRAME_FORMAT_DESC_PIXELCODE_DUMMY 2
  549. #define SMIAPP_FRAME_FORMAT_DESC_PIXELCODE_BLACK 3
  550. #define SMIAPP_FRAME_FORMAT_DESC_PIXELCODE_DARK 4
  551. #define SMIAPP_FRAME_FORMAT_DESC_PIXELCODE_VISIBLE 5
  552. #define SMIAPP_FAST_STANDBY_CTRL_COMPLETE_FRAMES 0
  553. #define SMIAPP_FAST_STANDBY_CTRL_IMMEDIATE 1
  554. /* Scaling N factor */
  555. #define SMIAPP_SCALE_N 16
  556. #endif /* __SMIAPP_REG_DEFS_H__ */