v4l2-chip-ident.h 9.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333
  1. /*
  2. v4l2 chip identifiers header
  3. This header provides a list of chip identifiers that can be returned
  4. through the VIDIOC_DBG_G_CHIP_IDENT ioctl.
  5. Copyright (C) 2007 Hans Verkuil <hverkuil@xs4all.nl>
  6. This program is free software; you can redistribute it and/or modify
  7. it under the terms of the GNU General Public License as published by
  8. the Free Software Foundation; either version 2 of the License, or
  9. (at your option) any later version.
  10. This program is distributed in the hope that it will be useful,
  11. but WITHOUT ANY WARRANTY; without even the implied warranty of
  12. MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
  13. GNU General Public License for more details.
  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 V4L2_CHIP_IDENT_H_
  19. #define V4L2_CHIP_IDENT_H_
  20. /* VIDIOC_DBG_G_CHIP_IDENT: identifies the actual chip installed on the board */
  21. /* KEEP THIS LIST ORDERED BY ID!
  22. Otherwise it will be hard to see which ranges are already in use when
  23. adding support to a new chip family. */
  24. enum {
  25. /* general idents: reserved range 0-49 */
  26. V4L2_IDENT_NONE = 0, /* No chip matched */
  27. V4L2_IDENT_AMBIGUOUS = 1, /* Match too general, multiple chips matched */
  28. V4L2_IDENT_UNKNOWN = 2, /* Chip found, but cannot identify */
  29. /* module tvaudio: reserved range 50-99 */
  30. V4L2_IDENT_TVAUDIO = 50, /* A tvaudio chip, unknown which it is exactly */
  31. /* Sony IMX074 */
  32. V4L2_IDENT_IMX074 = 74,
  33. /* module saa7110: just ident 100 */
  34. V4L2_IDENT_SAA7110 = 100,
  35. /* module saa7115: reserved range 101-149 */
  36. V4L2_IDENT_SAA7111 = 101,
  37. V4L2_IDENT_SAA7111A = 102,
  38. V4L2_IDENT_SAA7113 = 103,
  39. V4L2_IDENT_SAA7114 = 104,
  40. V4L2_IDENT_SAA7115 = 105,
  41. V4L2_IDENT_SAA7118 = 108,
  42. /* module saa7127: reserved range 150-199 */
  43. V4L2_IDENT_SAA7127 = 157,
  44. V4L2_IDENT_SAA7129 = 159,
  45. /* module cx25840: reserved range 200-249 */
  46. V4L2_IDENT_CX25836 = 236,
  47. V4L2_IDENT_CX25837 = 237,
  48. V4L2_IDENT_CX25840 = 240,
  49. V4L2_IDENT_CX25841 = 241,
  50. V4L2_IDENT_CX25842 = 242,
  51. V4L2_IDENT_CX25843 = 243,
  52. /* OmniVision sensors: reserved range 250-299 */
  53. V4L2_IDENT_OV7670 = 250,
  54. V4L2_IDENT_OV7720 = 251,
  55. V4L2_IDENT_OV7725 = 252,
  56. V4L2_IDENT_OV7660 = 253,
  57. V4L2_IDENT_OV9650 = 254,
  58. V4L2_IDENT_OV9655 = 255,
  59. V4L2_IDENT_SOI968 = 256,
  60. V4L2_IDENT_OV9640 = 257,
  61. V4L2_IDENT_OV6650 = 258,
  62. V4L2_IDENT_OV2640 = 259,
  63. V4L2_IDENT_OV9740 = 260,
  64. V4L2_IDENT_OV5642 = 261,
  65. /* module saa7146: reserved range 300-309 */
  66. V4L2_IDENT_SAA7146 = 300,
  67. /* Conexant MPEG encoder/decoders: reserved range 400-420 */
  68. V4L2_IDENT_CX23418_843 = 403, /* Integrated A/V Decoder on the '418 */
  69. V4L2_IDENT_CX23415 = 415,
  70. V4L2_IDENT_CX23416 = 416,
  71. V4L2_IDENT_CX23417 = 417,
  72. V4L2_IDENT_CX23418 = 418,
  73. /* module bt819: reserved range 810-819 */
  74. V4L2_IDENT_BT815A = 815,
  75. V4L2_IDENT_BT817A = 817,
  76. V4L2_IDENT_BT819A = 819,
  77. /* module au0828 */
  78. V4L2_IDENT_AU0828 = 828,
  79. /* module bt856: just ident 856 */
  80. V4L2_IDENT_BT856 = 856,
  81. /* module bt866: just ident 866 */
  82. V4L2_IDENT_BT866 = 866,
  83. /* module ks0127: reserved range 1120-1129 */
  84. V4L2_IDENT_KS0122S = 1122,
  85. V4L2_IDENT_KS0127 = 1127,
  86. V4L2_IDENT_KS0127B = 1128,
  87. /* module indycam: just ident 2000 */
  88. V4L2_IDENT_INDYCAM = 2000,
  89. /* module vp27smpx: just ident 2700 */
  90. V4L2_IDENT_VP27SMPX = 2700,
  91. /* module vpx3220: reserved range: 3210-3229 */
  92. V4L2_IDENT_VPX3214C = 3214,
  93. V4L2_IDENT_VPX3216B = 3216,
  94. V4L2_IDENT_VPX3220A = 3220,
  95. /* VX855 just ident 3409 */
  96. /* Other via devs could use 3314, 3324, 3327, 3336, 3364, 3353 */
  97. V4L2_IDENT_VIA_VX855 = 3409,
  98. /* module tvp5150 */
  99. V4L2_IDENT_TVP5150 = 5150,
  100. /* module saa5246a: just ident 5246 */
  101. V4L2_IDENT_SAA5246A = 5246,
  102. /* module saa5249: just ident 5249 */
  103. V4L2_IDENT_SAA5249 = 5249,
  104. /* module cs5345: just ident 5345 */
  105. V4L2_IDENT_CS5345 = 5345,
  106. /* module tea6415c: just ident 6415 */
  107. V4L2_IDENT_TEA6415C = 6415,
  108. /* module tea6420: just ident 6420 */
  109. V4L2_IDENT_TEA6420 = 6420,
  110. /* module saa6588: just ident 6588 */
  111. V4L2_IDENT_SAA6588 = 6588,
  112. /* module vs6624: just ident 6624 */
  113. V4L2_IDENT_VS6624 = 6624,
  114. /* module saa6752hs: reserved range 6750-6759 */
  115. V4L2_IDENT_SAA6752HS = 6752,
  116. V4L2_IDENT_SAA6752HS_AC3 = 6753,
  117. /* modules tef6862: just ident 6862 */
  118. V4L2_IDENT_TEF6862 = 6862,
  119. /* module tvp7002: just ident 7002 */
  120. V4L2_IDENT_TVP7002 = 7002,
  121. /* module adv7170: just ident 7170 */
  122. V4L2_IDENT_ADV7170 = 7170,
  123. /* module adv7175: just ident 7175 */
  124. V4L2_IDENT_ADV7175 = 7175,
  125. /* module adv7180: just ident 7180 */
  126. V4L2_IDENT_ADV7180 = 7180,
  127. /* module adv7183: just ident 7183 */
  128. V4L2_IDENT_ADV7183 = 7183,
  129. /* module saa7185: just ident 7185 */
  130. V4L2_IDENT_SAA7185 = 7185,
  131. /* module saa7191: just ident 7191 */
  132. V4L2_IDENT_SAA7191 = 7191,
  133. /* module ths7303: just ident 7303 */
  134. V4L2_IDENT_THS7303 = 7303,
  135. /* module adv7343: just ident 7343 */
  136. V4L2_IDENT_ADV7343 = 7343,
  137. /* module saa7706h: just ident 7706 */
  138. V4L2_IDENT_SAA7706H = 7706,
  139. /* module mt9v011, just ident 8243 */
  140. V4L2_IDENT_MT9V011 = 8243,
  141. /* module wm8739: just ident 8739 */
  142. V4L2_IDENT_WM8739 = 8739,
  143. /* module wm8775: just ident 8775 */
  144. V4L2_IDENT_WM8775 = 8775,
  145. /* Marvell controllers starting at 8801 */
  146. V4L2_IDENT_CAFE = 8801,
  147. V4L2_IDENT_ARMADA610 = 8802,
  148. /* AKM AK8813/AK8814 */
  149. V4L2_IDENT_AK8813 = 8813,
  150. V4L2_IDENT_AK8814 = 8814,
  151. /* module cx23885 and cx25840 */
  152. V4L2_IDENT_CX23885 = 8850,
  153. V4L2_IDENT_CX23885_AV = 8851, /* Integrated A/V decoder */
  154. V4L2_IDENT_CX23887 = 8870,
  155. V4L2_IDENT_CX23887_AV = 8871, /* Integrated A/V decoder */
  156. V4L2_IDENT_CX23888 = 8880,
  157. V4L2_IDENT_CX23888_AV = 8881, /* Integrated A/V decoder */
  158. V4L2_IDENT_CX23888_IR = 8882, /* Integrated infrared controller */
  159. /* module tda9840: just ident 9840 */
  160. V4L2_IDENT_TDA9840 = 9840,
  161. /* module tw9910: just ident 9910 */
  162. V4L2_IDENT_TW9910 = 9910,
  163. /* module sn9c20x: just ident 10000 */
  164. V4L2_IDENT_SN9C20X = 10000,
  165. /* module cx231xx and cx25840 */
  166. V4L2_IDENT_CX2310X_AV = 23099, /* Integrated A/V decoder; not in '100 */
  167. V4L2_IDENT_CX23100 = 23100,
  168. V4L2_IDENT_CX23101 = 23101,
  169. V4L2_IDENT_CX23102 = 23102,
  170. /* module msp3400: reserved range 34000-34999 for msp34xx */
  171. V4L2_IDENT_MSPX4XX = 34000, /* generic MSPX4XX identifier, only
  172. use internally (tveeprom.c). */
  173. V4L2_IDENT_MSP3400B = 34002,
  174. V4L2_IDENT_MSP3400C = 34003,
  175. V4L2_IDENT_MSP3400D = 34004,
  176. V4L2_IDENT_MSP3400G = 34007,
  177. V4L2_IDENT_MSP3401G = 34017,
  178. V4L2_IDENT_MSP3402G = 34027,
  179. V4L2_IDENT_MSP3405D = 34054,
  180. V4L2_IDENT_MSP3405G = 34057,
  181. V4L2_IDENT_MSP3407D = 34074,
  182. V4L2_IDENT_MSP3407G = 34077,
  183. V4L2_IDENT_MSP3410B = 34102,
  184. V4L2_IDENT_MSP3410C = 34103,
  185. V4L2_IDENT_MSP3410D = 34104,
  186. V4L2_IDENT_MSP3410G = 34107,
  187. V4L2_IDENT_MSP3411G = 34117,
  188. V4L2_IDENT_MSP3412G = 34127,
  189. V4L2_IDENT_MSP3415D = 34154,
  190. V4L2_IDENT_MSP3415G = 34157,
  191. V4L2_IDENT_MSP3417D = 34174,
  192. V4L2_IDENT_MSP3417G = 34177,
  193. V4L2_IDENT_MSP3420G = 34207,
  194. V4L2_IDENT_MSP3421G = 34217,
  195. V4L2_IDENT_MSP3422G = 34227,
  196. V4L2_IDENT_MSP3425G = 34257,
  197. V4L2_IDENT_MSP3427G = 34277,
  198. V4L2_IDENT_MSP3430G = 34307,
  199. V4L2_IDENT_MSP3431G = 34317,
  200. V4L2_IDENT_MSP3435G = 34357,
  201. V4L2_IDENT_MSP3437G = 34377,
  202. V4L2_IDENT_MSP3440G = 34407,
  203. V4L2_IDENT_MSP3441G = 34417,
  204. V4L2_IDENT_MSP3442G = 34427,
  205. V4L2_IDENT_MSP3445G = 34457,
  206. V4L2_IDENT_MSP3447G = 34477,
  207. V4L2_IDENT_MSP3450G = 34507,
  208. V4L2_IDENT_MSP3451G = 34517,
  209. V4L2_IDENT_MSP3452G = 34527,
  210. V4L2_IDENT_MSP3455G = 34557,
  211. V4L2_IDENT_MSP3457G = 34577,
  212. V4L2_IDENT_MSP3460G = 34607,
  213. V4L2_IDENT_MSP3461G = 34617,
  214. V4L2_IDENT_MSP3465G = 34657,
  215. V4L2_IDENT_MSP3467G = 34677,
  216. /* module msp3400: reserved range 44000-44999 for msp44xx */
  217. V4L2_IDENT_MSP4400G = 44007,
  218. V4L2_IDENT_MSP4408G = 44087,
  219. V4L2_IDENT_MSP4410G = 44107,
  220. V4L2_IDENT_MSP4418G = 44187,
  221. V4L2_IDENT_MSP4420G = 44207,
  222. V4L2_IDENT_MSP4428G = 44287,
  223. V4L2_IDENT_MSP4440G = 44407,
  224. V4L2_IDENT_MSP4448G = 44487,
  225. V4L2_IDENT_MSP4450G = 44507,
  226. V4L2_IDENT_MSP4458G = 44587,
  227. /* Micron CMOS sensor chips: 45000-45099 */
  228. V4L2_IDENT_MT9M001C12ST = 45000,
  229. V4L2_IDENT_MT9M001C12STM = 45005,
  230. V4L2_IDENT_MT9M111 = 45007,
  231. V4L2_IDENT_MT9M112 = 45008,
  232. V4L2_IDENT_MT9V022IX7ATC = 45010, /* No way to detect "normal" I77ATx */
  233. V4L2_IDENT_MT9V022IX7ATM = 45015, /* and "lead free" IA7ATx chips */
  234. V4L2_IDENT_MT9T031 = 45020,
  235. V4L2_IDENT_MT9T111 = 45021,
  236. V4L2_IDENT_MT9T112 = 45022,
  237. V4L2_IDENT_MT9V111 = 45031,
  238. V4L2_IDENT_MT9V112 = 45032,
  239. /* HV7131R CMOS sensor: just ident 46000 */
  240. V4L2_IDENT_HV7131R = 46000,
  241. /* Sharp RJ54N1CB0C, 0xCB0C = 51980 */
  242. V4L2_IDENT_RJ54N1CB0C = 51980,
  243. /* module m52790: just ident 52790 */
  244. V4L2_IDENT_M52790 = 52790,
  245. /* module cs53132a: just ident 53132 */
  246. V4L2_IDENT_CS53l32A = 53132,
  247. /* modules upd61151 MPEG2 encoder: just ident 54000 */
  248. V4L2_IDENT_UPD61161 = 54000,
  249. /* modules upd61152 MPEG2 encoder with AC3: just ident 54001 */
  250. V4L2_IDENT_UPD61162 = 54001,
  251. /* module upd64031a: just ident 64031 */
  252. V4L2_IDENT_UPD64031A = 64031,
  253. /* module upd64083: just ident 64083 */
  254. V4L2_IDENT_UPD64083 = 64083,
  255. /* Don't just add new IDs at the end: KEEP THIS LIST ORDERED BY ID! */
  256. };
  257. #endif