rn6752.h 32 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092
  1. #ifndef _RN6752_H_
  2. #define _RN6752_H_
  3. enum {
  4. RN6752_MODE_NONE,
  5. //CVBS mode
  6. RN6752_MODE_CVBS_PAL,
  7. RN6752_MODE_CVBS_NTSC,
  8. //add other mode
  9. //720P mode
  10. RN6752_MODE_720P_PAL,
  11. RN6752_MODE_720P_NTSC,
  12. RN6752_MODE_1080P_25FPS,
  13. RN6752_MODE_1080P_30FPS,
  14. RN6752_MODE_END,
  15. };
  16. enum {
  17. RN6752_BRIGHTNESS_ADDR = 0x01,
  18. RN6752_CONTRAST_ADDR = 0x02,
  19. RN6752_SATURATION_ADDR = 0x03,
  20. RN6752_HUE_ADDR = 0x04,
  21. RN6752_SHARPNESS_ADDR = 0x05
  22. };
  23. enum {
  24. RN675X_ID_UNKNOWN,
  25. RN675X_ID_RN6752,
  26. RN675X_ID_RN6752M,
  27. RN675X_ID_END
  28. };
  29. struct dvr_rn6752{
  30. struct i2c_client *client;
  31. int gpio_irq;
  32. int gpio_reset;
  33. int gpio_pdn;
  34. int mode;
  35. int curr_channel;
  36. int itu601in;
  37. int id;
  38. #ifdef RN6752_USE_TIMER
  39. struct timer_list timer;
  40. bool timer_start;
  41. volatile int timer_timeout;
  42. #endif
  43. int enter_carback;
  44. struct workqueue_struct *eq_queue;
  45. struct work_struct eq_work;
  46. //struct mutex mutex_lock;
  47. spinlock_t spin_lock;
  48. };
  49. /*************************** for rn6752 ********************************/
  50. const char rn6752_tiu656_cvbs_pal[] = {
  51. // 720H@50, 27MHz, BT656 output
  52. // Slave address is 0x58
  53. // Register, data
  54. // if clock source(Xin) of RN675x is 26MHz, please add these procedures marked first
  55. //0xD2, 0x85, // disable auto clock detect
  56. //0xD6, 0x37, // 27MHz default
  57. //0xD8, 0x18, // switch to 26MHz clock
  58. //delay(100), // delay 100ms
  59. 0x81, 0x01, // turn on video decoder
  60. 0xA3, 0x00, // enable 72MHz sampling
  61. 0xDB, 0x8F, // internal use*
  62. 0xFF, 0x00, // switch to ch0 (default; optional)
  63. 0x2C, 0x30, // select sync slice points
  64. 0x50, 0x00, // 720H resolution select for BT.601
  65. 0x56, 0x00, // disable SAV & EAV for BT601; 0x00 enable SAV & EAV for BT656
  66. 0x63, 0x09, // filter control
  67. 0x59, 0x00, // extended register access
  68. 0x5A, 0x00, // data for extended register
  69. 0x58, 0x01, // enable extended register write
  70. 0x07, 0x22, // PAL format
  71. 0x2F, 0x14, // internal use
  72. 0x5E, 0x03, // disable H-scaling control
  73. 0x5B, 0x00, //
  74. 0x3A, 0x04, // no channel information insertion; invert VBLK for frame valid
  75. 0x3E, 0x32, // AVID & VBLK out for BT.601
  76. 0x40, 0x04, // no channel information insertion; invert VBLK for frame valid
  77. 0x46, 0x23, // AVID & VBLK out for BT.601
  78. 0x28, 0x92, // cropping
  79. 0x00, 0x00, // internal use*
  80. 0x2D, 0xF2, // cagc adjust
  81. 0x0D, 0x20, // cagc initial value
  82. // 0x05, 0x00, // sharpness
  83. // 0x04, 0x80, // hue
  84. 0x11, 0x03,
  85. 0x37, 0x33,
  86. 0x61, 0x6C,
  87. 0xDF, 0xFF, // enable 720H format
  88. 0x8E, 0x00, // single channel output for VP
  89. 0x8F, 0x00, // 720H mode for VP
  90. 0x8D, 0x31, // enable VP out
  91. 0x89, 0x00, // select 27MHz for SCLK
  92. 0x88, 0xC1, // enable SCLK out
  93. 0x81, 0x01, // turn on video decoder
  94. 0x96, 0x00, // select AVID & VBLK as status indicator
  95. 0x97, 0x0B, // enable status indicator out on AVID,VBLK & VSYNC
  96. 0x98, 0x00, // video timing pin status
  97. 0x9A, 0x40, // select AVID & VBLK as status indicator
  98. 0x9B, 0xE1, // enable status indicator out on HSYNC
  99. 0x9C, 0x00, // video timing pin status
  100. };
  101. const char rn6752_tiu656_cvbs_ntsc[] = {
  102. // 720H@60, 27MHz, BT656 output
  103. // Slave address is 0x58
  104. // Register, data
  105. // if clock source(Xin) of RN675x is 26MHz, please add these procedures marked first
  106. //0xD2, 0x85, // disable auto clock detect
  107. //0xD6, 0x37, // 27MHz default
  108. //0xD8, 0x18, // switch to 26MHz clock
  109. //delay(100), // delay 100ms
  110. 0x81, 0x01, // turn on video decoder
  111. 0xA3, 0x00, // enable 72MHz sampling
  112. 0xDB, 0x8F, // internal use*
  113. 0xFF, 0x00, // switch to ch0 (default; optional)
  114. 0x2C, 0x30, // select sync slice points
  115. 0x50, 0x00, // 720H resolution select for BT.601
  116. 0x56, 0x00, // disable SAV & EAV for BT601; 0x00 enable SAV & EAV for BT656
  117. 0x63, 0x09, // filter control
  118. 0x59, 0x00, // extended register access
  119. 0x5A, 0x00, // data for extended register
  120. 0x58, 0x01, // enable extended register write
  121. 0x07, 0x23, // NTSC format
  122. 0x2F, 0x14, // internal use
  123. 0x5E, 0x03, // disable H-scaling control
  124. 0x5B, 0x00, //
  125. 0x3A, 0x04, // no channel information insertion; invert VBLK for frame valid
  126. 0x3E, 0x32, // AVID & VBLK out for BT.601
  127. 0x40, 0x04, // no channel information insertion; invert VBLK for frame valid
  128. 0x46, 0x23, // AVID & VBLK out for BT.601
  129. 0x28, 0x92, // cropping
  130. 0x00, 0x00, // internal use*
  131. 0x2D, 0xF2, // cagc adjust
  132. 0x0D, 0x20, // cagc initial value
  133. // 0x05, 0x00, // sharpness
  134. // 0x04, 0x80, // hue
  135. 0x11, 0x03,
  136. 0x37, 0x33,
  137. 0x61, 0x6C,
  138. 0xDF, 0xFF, // enable 720H format
  139. 0x8E, 0x00, // single channel output for VP
  140. 0x8F, 0x00, // 720H mode for VP
  141. 0x8D, 0x31, // enable VP out
  142. 0x89, 0x00, // select 27MHz for SCLK
  143. 0x88, 0xC1, // enable SCLK out
  144. 0x81, 0x01, // turn on video decoder
  145. 0x96, 0x00, // select AVID & VBLK as status indicator
  146. 0x97, 0x0B, // enable status indicator out on AVID,VBLK & VSYNC
  147. 0x98, 0x00, // video timing pin status
  148. 0x9A, 0x40, // select AVID & VBLK as status indicator
  149. 0x9B, 0xE1, // enable status indicator out on HSYNC
  150. 0x9C, 0x00, // video timing pin status
  151. };
  152. const char rn6752_tiu656_720p_pal[]=
  153. {
  154. // 720P@25, 72MHz, BT656 output
  155. // Slave address is 0x58
  156. // Register, data
  157. // if clock source(Xin) of RN6752 is 26MHz, please add these procedures marked first
  158. //0xD2, 0x85, // disable auto clock detect
  159. //0xD6, 0x37, // 27MHz default
  160. //0xD8, 0x18, // switch to 26MHz clock
  161. //delay(100), // delay 100ms
  162. 0x81, 0x01, // turn on video decoder
  163. 0xA3, 0x04, // enable 72MHz sampling
  164. 0xDB, 0x8F, // internal use*
  165. 0xFF, 0x00, // switch to ch0 (default; optional)
  166. 0x2C, 0x30, // select sync slice points
  167. 0x50, 0x02, // 720p resolution select for BT.601
  168. 0x56, 0x00, // disable SAV & EAV for BT601; 0x00 enable SAV & EAV for BT656
  169. 0x63, 0xBD, // filter control
  170. 0x59, 0x00, // extended register access
  171. 0x5A, 0x02, // data for extended register :Pal
  172. 0x58, 0x01, // enable extended register write
  173. 0x07, 0x23, // 720p format
  174. 0x2F, 0x04, // internal use*
  175. 0x5E, 0x0B, // enable H-scaling control
  176. 0x51, 0x44, // scale factor1
  177. 0x52, 0x86, // scale factor2
  178. 0x53, 0x22, // scale factor3
  179. 0x3A, 0x04, // no channel information insertion; invert VBLK for frame valid
  180. 0x3E, 0x32, // AVID & VBLK out for BT.601
  181. 0x40, 0x04, // no channel information insertion; invert VBLK for frame valid
  182. 0x46, 0x23, // AVID & VBLK out for BT.601
  183. 0x28, 0x92, // cropping
  184. 0x00, 0x20, // internal use*
  185. 0x2D, 0xF2, // cagc adjust
  186. 0x0D, 0x20, // cagc initial value
  187. // 0x05, 0x00, // sharpness
  188. // 0x04, 0x80, // hue
  189. 0x11, 0x84,
  190. 0x37, 0x33,
  191. 0x61, 0x6C,
  192. 0xDF, 0xFE, // enable 720p format
  193. 0x8E, 0x00, // single channel output for VP
  194. 0x8F, 0x80, // 720p mode for VP
  195. 0x8D, 0x31, // enable VP out
  196. 0x89, 0x09, // select 72MHz for SCLK
  197. 0x88, 0xC1, // enable SCLK out
  198. 0x81, 0x01, // turn on video decoder
  199. 0x96, 0x00, // select AVID & VBLK as status indicator
  200. 0x97, 0x0B, // enable status indicator out on AVID,VBLK & VSYNC
  201. 0x98, 0x00, // video timing pin status
  202. 0x9A, 0x40, // select AVID & VBLK as status indicator
  203. 0x9B, 0xE1, // enable status indicator out on HSYNC
  204. 0x9C, 0x00, // video timing pin status
  205. };
  206. const char rn6752_tiu656_720p_ntsc[] = {
  207. // 720P@30, 72MHz, BT656 output
  208. // Slave address is 0x58
  209. // Register, data
  210. // if clock source(Xin) of RN675x is 26MHz, please add these procedures marked first
  211. //0xD2, 0x85, // disable auto clock detect
  212. //0xD6, 0x37, // 27MHz default
  213. //0xD8, 0x18, // switch to 26MHz clock
  214. //delay(100), // delay 100ms
  215. 0x81, 0x01, // turn on video decoder
  216. 0xA3, 0x04, // enable 72MHz sampling
  217. 0xDB, 0x8F, // internal use*
  218. 0xFF, 0x00, // switch to ch0 (default; optional)
  219. 0x2C, 0x30, // select sync slice points
  220. 0x50, 0x02, // 720p resolution select for BT.601
  221. 0x56, 0x00, // disable SAV & EAV for BT601; 0x00 enable SAV & EAV for BT656
  222. 0x63, 0xBD, // filter control
  223. 0x59, 0x00, // extended register access
  224. 0x5A, 0x04, // data for extended register
  225. 0x58, 0x01, // enable extended register write
  226. 0x07, 0x23, // 720p format
  227. 0x2F, 0x04, // internal use*
  228. 0x5E, 0x0B, // enable H-scaling control
  229. 0x51, 0x44, // scale factor1
  230. 0x52, 0x86, // scale factor2
  231. 0x53, 0x22, // scale factor3
  232. 0x3A, 0x04, // no channel information insertion; invert VBLK for frame valid
  233. 0x3E, 0x32, // AVID & VBLK out for BT.601
  234. 0x40, 0x04, // no channel information insertion; invert VBLK for frame valid
  235. 0x46, 0x23, // AVID & VBLK out for BT.601
  236. 0x28, 0x92, // cropping
  237. 0x00, 0x20, // internal use*
  238. 0x2D, 0xF2, // cagc adjust
  239. 0x0D, 0x20, // cagc initial value
  240. // 0x05, 0x00, // sharpness
  241. // 0x04, 0x80, // hue
  242. 0x11, 0x84,
  243. 0x37, 0x33,
  244. 0x61, 0x6C,
  245. 0xDF, 0xFE, // enable 720p format
  246. 0x8E, 0x00, // single channel output for VP
  247. 0x8F, 0x80, // 720p mode for VP
  248. 0x8D, 0x31, // enable VP out
  249. 0x89, 0x09, // select 72MHz for SCLK
  250. 0x88, 0xC1, // enable SCLK out
  251. 0x81, 0x01, // turn on video decoder
  252. 0x96, 0x00, // select AVID & VBLK as status indicator
  253. 0x97, 0x0B, // enable status indicator out on AVID,VBLK & VSYNC
  254. 0x98, 0x00, // video timing pin status
  255. 0x9A, 0x40, // select AVID & VBLK as status indicator
  256. 0x9B, 0xE1, // enable status indicator out on HSYNC
  257. 0x9C, 0x00, // video timing pin status
  258. };
  259. /*************************** end RN6752 ********************************/
  260. /*************************** for RN6752M ********************************/
  261. const unsigned char rn6752m_bt601_720p_25pfs[] = {
  262. // 720P@25 BT601
  263. // Slave address is 0x58
  264. // Register, data
  265. // if clock source(Xin) of RN6752 is 26MHz, please add these procedures marked first
  266. //0xD2, 0x85, // disable auto clock detect
  267. //0xD6, 0x37, // 27MHz default
  268. //0xD8, 0x18, // switch to 26MHz clock
  269. //delay(100), // delay 100ms
  270. 0x49,0x01,//0x01
  271. 0x19,0x07,
  272. 0x81, 0x01, // turn on video decoder
  273. 0xA3, 0x04,
  274. 0xDF, 0xFE, // enable HD format
  275. 0x88, 0x40, // disable SCLK0B out
  276. 0xF6, 0x40, // disable SCLK3A out
  277. // ch0
  278. 0xFF, 0x00, // switch to ch0 (default; optional)
  279. 0x00, 0x20, // internal use*
  280. 0x06, 0x08, // internal use*
  281. 0x07, 0x63, // HD format
  282. 0x2A, 0x01, // filter control
  283. 0x3A, 0x00, // No Insert Channel ID in SAV/EAV code
  284. 0x3F, 0x10, // channel ID
  285. 0x4C, 0x37, // equalizer
  286. 0x4F, 0x03, // sync control
  287. 0x50, 0x02, // 720p resolution
  288. 0x56, 0x05, // BT 72M mode and BT601 mode
  289. 0x5F, 0x40, // blank level
  290. 0x63, 0xF5, // filter control
  291. 0x59, 0x00, // extended register access
  292. 0x5A, 0x42, // data for extended register
  293. 0x58, 0x01, // enable extended register write
  294. 0x59, 0x33, // extended register access
  295. 0x5A, 0x23, // data for extended register
  296. 0x58, 0x01, // enable extended register write
  297. 0x51, 0xE1, // scale factor1
  298. 0x52, 0x88, // scale factor2
  299. 0x53, 0x12, // scale factor3
  300. 0x5B, 0x07, // H-scaling control
  301. 0x5E, 0x0B, // enable H-scaling control
  302. 0x6A, 0x82, // H-scaling control
  303. 0x28, 0x92, // cropping
  304. 0x01, 0x10, // brightness
  305. 0x03, 0x80, // saturation
  306. 0x04, 0x80, // hue
  307. 0x05, 0x00, // sharpness
  308. 0x57, 0x23, // black/white stretch
  309. 0x68, 0x32, // coring
  310. 0x3A, 0x04,
  311. 0x3E, 0x32,
  312. 0x40, 0x04,
  313. 0x46, 0x23,
  314. //0XD3,0X00,//channel 0 0x00 channel 1 0X01
  315. 0x8E, 0x00, // single channel output for VP
  316. 0x8F, 0x80, // 720p mode for VP
  317. 0x8D, 0x31, // enable VP out
  318. 0x89, 0x09, // select 72MHz for SCLK
  319. 0x88, 0x41, // enable SCLK out
  320. 0x96, 0x00, // select AVID & VBLK as status indicator
  321. 0x97, 0x0B, // enable status indicator out on AVID,VBLK & VSYNC
  322. 0x98, 0x00, // video timing pin status
  323. 0x9A, 0x40, // select AVID & VBLK as status indicator
  324. 0x9B, 0xE1, // enable status indicator out on HSYNC
  325. 0x9C, 0x00 // video timing pin status
  326. };
  327. const unsigned char rn6752m_bt601_720p_30pfs[] = {
  328. // 720P@30 BT601
  329. // Slave address is 0x58
  330. // Register, data
  331. // if clock source(Xin) of RN6752 is 26MHz, please add these procedures marked first
  332. //0xD2, 0x85, // disable auto clock detect
  333. //0xD6, 0x37, // 27MHz default
  334. //0xD8, 0x18, // switch to 26MHz clock
  335. //delay(100), // delay 100ms
  336. 0x49,0x01,
  337. 0x19,0x07,
  338. 0x81, 0x01, // turn on video decoder
  339. 0xA3, 0x04,
  340. 0xDF, 0xFE, // enable HD format
  341. 0x88, 0x40, // disable SCLK0B out
  342. 0xF6, 0x40, // disable SCLK3A out
  343. // ch0
  344. 0xFF, 0x00, // switch to ch0 (default; optional)
  345. 0x00, 0x20, // internal use*
  346. 0x06, 0x08, // internal use*
  347. 0x07, 0x63, // HD format
  348. 0x2A, 0x01, // filter control
  349. 0x3A, 0x00, // No Insert Channel ID in SAV/EAV code
  350. 0x3F, 0x10, // channel ID
  351. 0x4C, 0x37, // equalizer
  352. 0x4F, 0x03, // sync control
  353. 0x50, 0x02, // 720p resolution
  354. 0x56, 0x05, // BT 72M mode and BT601 mode
  355. 0x5F, 0x40, // blank level
  356. 0x63, 0xF5, // filter control
  357. 0x59, 0x00, // extended register access
  358. 0x5A, 0x44, // data for extended register
  359. 0x58, 0x01, // enable extended register write
  360. 0x59, 0x33, // extended register access
  361. 0x5A, 0x23, // data for extended register
  362. 0x58, 0x01, // enable extended register write
  363. 0x51, 0xE1, // scale factor1
  364. 0x52, 0x88, // scale factor2
  365. 0x53, 0x12, // scale factor3
  366. 0x5B, 0x07, // H-scaling control
  367. 0x5E, 0x0B, // enable H-scaling control
  368. 0x6A, 0x82, // H-scaling control
  369. 0x28, 0x92, // cropping
  370. 0x03, 0x80, // saturation
  371. 0x04, 0x80, // hue
  372. 0x05, 0x00, // sharpness
  373. 0x57, 0x23, // black/white stretch
  374. 0x68, 0x32, // coring
  375. 0x3A, 0x04,
  376. 0x3E, 0x32,
  377. 0x40, 0x04,
  378. 0x46, 0x23,
  379. 0x8E, 0x00, // single channel output for VP
  380. 0x8F, 0x80, // 720p mode for VP
  381. 0x8D, 0x31, // enable VP out
  382. 0x89, 0x09, // select 72MHz for SCLK
  383. 0x88, 0x41, // enable SCLK out
  384. //0XD3,0X00,//channel 0 0x00 channel 1 0X01
  385. 0x96, 0x00, // select AVID & VBLK as status indicator
  386. 0x97, 0x0B, // enable status indicator out on AVID,VBLK & VSYNC
  387. 0x98, 0x00, // video timing pin status
  388. 0x9A, 0x40, // select AVID & VBLK as status indicator
  389. 0x9B, 0xE1, // enable status indicator out on HSYNC
  390. 0x9C, 0x00 // video timing pin status
  391. };
  392. const unsigned char rn6752m_bt601_1080p_25pfs[] = {
  393. // 1080P@25 BT601
  394. // Slave address is 0x58
  395. // Register, data
  396. // if clock source(Xin) of RN6752 is 26MHz, please add these procedures marked first
  397. //0xD2, 0x85, // disable auto clock detect
  398. //0xD6, 0x37, // 27MHz default
  399. //0xD8, 0x18, // switch to 26MHz clock
  400. //delay(100), // delay 100ms
  401. 0x49,0x01,//
  402. 0x19,0x07,
  403. 0x81, 0x01, // turn on video decoder
  404. 0xA3, 0x04,
  405. 0xDF, 0xFE, // enable HD format
  406. 0xF0, 0xC0, // 144MHz output
  407. 0x88, 0x40, // disable SCLK0B out
  408. 0xF6, 0x40, // disable SCLK3A out
  409. // ch0
  410. 0xFF, 0x00, // switch to ch0 (default; optional)
  411. 0x00, 0x20, // internal use*
  412. 0x06, 0x08, // internal use*
  413. 0x07, 0x63, // HD format
  414. 0x2A, 0x01, // filter control
  415. 0x3A, 0x20, // Insert Channel ID in SAV/EAV code
  416. 0x3F, 0x10, // channel ID
  417. 0x4C, 0x37, // equalizer
  418. 0x4F, 0x03, // sync control
  419. 0x50, 0x03, // 1080p resolution
  420. 0x56, 0x06, // 144M and BT601 mode
  421. 0x5F, 0x44, // blank level
  422. 0x63, 0xF8, // filter control
  423. 0x59, 0x00, // extended register access
  424. 0x5A, 0x48, // data for extended register
  425. 0x58, 0x01, // enable extended register write
  426. 0x59, 0x33, // extended register access
  427. 0x5A, 0x23, // data for extended register
  428. 0x58, 0x01, // enable extended register write
  429. 0x51, 0xF4, // scale factor1
  430. 0x52, 0x29, // scale factor2
  431. 0x53, 0x15, // scale factor3
  432. 0x5B, 0x01, // H-scaling control
  433. 0x5E, 0x0F, // enable H-scaling control
  434. 0x6A, 0x87, // H-scaling control
  435. 0x28, 0x92, // cropping
  436. 0x01, 0xEF, // brightness
  437. 0x03, 0x80, // saturation
  438. 0x04, 0x80, // hue
  439. 0x05, 0x04, // sharpness
  440. 0x57, 0x23, // black/white stretch
  441. 0x68, 0x00, // coring
  442. 0x3A, 0x04,
  443. 0x3E, 0x32,
  444. 0x40, 0x04,
  445. 0x46, 0x23,
  446. 0x8E, 0x00, // single channel output for VP
  447. 0x8F, 0x80, // 1080p mode for VP
  448. 0x8D, 0x31, // enable VP out
  449. 0x89, 0x0A, // select 144MHz for SCLK
  450. 0x88, 0x41, // enable SCLK out // CLK inv bit1
  451. //0XD3,0X00,//channel 0 0x00 channel 1 0X01
  452. 0x96, 0x00, // select AVID & VBLK as status indicator
  453. 0x97, 0x0B, // enable status indicator out on AVID,VBLK & VSYNC
  454. 0x98, 0x00, // video timing pin status
  455. 0x9A, 0x40, // select AVID & VBLK as status indicator
  456. 0x9B, 0xE1, // enable status indicator out on HSYNC
  457. 0x9C, 0x00 // video timing pin status
  458. };
  459. const unsigned char rn6752m_bt601_1080p_30pfs[] = {
  460. // 1080P@30 BT601
  461. // Slave address is 0x58
  462. // Register, data
  463. // if clock source(Xin) of RN6752 is 26MHz, please add these procedures marked first
  464. //0xD2, 0x85, // disable auto clock detect
  465. //0xD6, 0x37, // 27MHz default
  466. //0xD8, 0x18, // switch to 26MHz clock
  467. //delay(100), // delay 100ms
  468. 0x49,0x01,
  469. 0x19,0x07,
  470. 0x81, 0x01, // turn on video decoder
  471. 0xA3, 0x04,
  472. 0xDF, 0xFE, // enable HD format
  473. 0xF0, 0xC0, // 144MHz output
  474. 0x88, 0x40, // disable SCLK0B out
  475. 0xF6, 0x40, // disable SCLK3A out
  476. // ch0
  477. 0xFF, 0x00, // switch to ch0 (default; optional)
  478. 0x00, 0x20, // internal use*
  479. 0x06, 0x08, // internal use*
  480. 0x07, 0x63, // HD format
  481. 0x2A, 0x01, // filter control
  482. 0x3A, 0x20, // Insert Channel ID in SAV/EAV code
  483. 0x3F, 0x10, // channel ID
  484. 0x4C, 0x37, // equalizer
  485. 0x4F, 0x03, // sync control
  486. 0x50, 0x03, // 1080p resolution
  487. 0x56, 0x06, // 144M and BT601 mode
  488. 0x5F, 0x44, // blank level
  489. 0x63, 0xF8, // filter control
  490. 0x59, 0x00, // extended register access
  491. 0x5A, 0x49, // data for extended register
  492. 0x58, 0x01, // enable extended register write
  493. 0x59, 0x33, // extended register access
  494. 0x5A, 0x23, // data for extended register
  495. 0x58, 0x01, // enable extended register write
  496. 0x51, 0xF4, // scale factor1
  497. 0x52, 0x29, // scale factor2
  498. 0x53, 0x15, // scale factor3
  499. 0x5B, 0x01, // H-scaling control
  500. 0x5E, 0x0F, // enable H-scaling control
  501. 0x6A, 0x87, // H-scaling control
  502. 0x28, 0x92, // cropping
  503. 0x03, 0x80, // saturation
  504. 0x04, 0x80, // hue
  505. 0x05, 0x04, // sharpness
  506. 0x57, 0x23, // black/white stretch
  507. 0x68, 0x00, // coring
  508. 0x3A, 0x04,
  509. 0x3E, 0x32,
  510. 0x40, 0x04,
  511. 0x46, 0x23,
  512. 0x8E, 0x00, // single channel output for VP
  513. 0x8F, 0x80, // 1080p mode for VP
  514. 0x8D, 0x31, // enable VP out
  515. 0x89, 0x0A, // select 144MHz for SCLK
  516. 0x88, 0x41, // enable SCLK out
  517. //0XD3,0X00,//channel 0 0x00 channel 1 0X01
  518. 0x96, 0x00, // select AVID & VBLK as status indicator
  519. 0x97, 0x0B, // enable status indicator out on AVID,VBLK & VSYNC
  520. 0x98, 0x00, // video timing pin status
  521. 0x9A, 0x40, // select AVID & VBLK as status indicator
  522. 0x9B, 0xE1, // enable status indicator out on HSYNC
  523. 0x9C, 0x00 // video timing pin status
  524. };
  525. const unsigned char rn6752m_bt601_cvbs_ntsc[] =
  526. {
  527. // cvbs@30 BT601
  528. // Slave address is 0x58
  529. // Register, data
  530. // if clock source(Xin) of RN6752 is 26MHz, please add these procedures marked first
  531. //0xD2, 0x85, // disable auto clock detect
  532. //0xD6, 0x37, // 27MHz default
  533. //0xD8, 0x18, // switch to 26MHz clock
  534. //delay(100), // delay 100ms
  535. 0x49, 0x01,
  536. 0x19, 0x07,
  537. 0x81, 0x01, // turn on video decoder
  538. 0xA3, 0x04,
  539. 0xDF, 0x0F, // enable CVBS format
  540. 0x88, 0x40, // disable SCLK0B out
  541. 0xF6, 0x40, // disable SCLK3A out
  542. // ch0
  543. 0xFF, 0x00, // switch to ch0 (default; optional)
  544. 0x00, 0x00, // internal use*
  545. 0x06, 0x08, // internal use*
  546. 0x07, 0x63, // HD format
  547. 0x2A, 0x81, // filter control
  548. 0x3A, 0x00, // No Insert Channel ID in SAV/EAV code
  549. 0x3F, 0x10, // channel ID
  550. 0x4C, 0x37, // equalizer
  551. 0x4F, 0x00, // sync control
  552. 0x50, 0x00, // 720p resolution
  553. 0x56, 0x05, // 72M mode and BT601 mode
  554. 0x5F, 0x00, // blank level
  555. 0x63, 0x75, // filter control
  556. 0x59, 0x00, // extended register access
  557. 0x5A, 0x00, // data for extended register
  558. 0x58, 0x01, // enable extended register write
  559. 0x59, 0x33, // extended register access
  560. 0x5A, 0x02, // data for extended register
  561. 0x58, 0x01, // enable extended register write
  562. 0x5B, 0x00, // H-scaling control
  563. 0x5E, 0x01, // enable H-scaling control
  564. 0x6A, 0x00, // H-scaling control
  565. 0x28, 0xB2, // cropping
  566. 0x20, 0x24,
  567. 0x23, 0x11,
  568. 0x24, 0x05,
  569. 0x25, 0x11,
  570. 0x26, 0x00,
  571. 0x42, 0x00,
  572. 0x03, 0x80, // saturation
  573. 0x04, 0x80, // hue
  574. 0x05, 0x03, // sharpness
  575. 0x57, 0x20, // black/white stretch
  576. 0x68, 0x32, // coring
  577. 0x3A, 0x04,
  578. 0x3E, 0x32,
  579. 0x40, 0x04,
  580. 0x46, 0x23,
  581. 0x8E, 0x00, // single channel output for VP
  582. 0x8F, 0x80, // 720p mode for VP
  583. 0x8D, 0x31, // enable VP out
  584. 0x89, 0x09, // select 72MHz for SCLK
  585. 0x88, 0x41, // enable SCLK out
  586. 0x96, 0x00, // select AVID & VBLK as status indicator
  587. 0x97, 0x0B, // enable status indicator out on AVID,VBLK & VSYNC
  588. 0x98, 0x00, // video timing pin status
  589. 0x9A, 0x40, // select AVID & VBLK as status indicator
  590. 0x9B, 0xE1, // enable status indicator out on HSYNC
  591. 0x9C, 0x00 // video timing pin status
  592. };
  593. const unsigned char rn6752m_bt601_cvbs_pal[]=
  594. {
  595. // cvbs@25 BT601
  596. // Slave address is 0x58
  597. // Register, data
  598. // if clock source(Xin) of RN6752 is 26MHz, please add these procedures marked first
  599. //0xD2, 0x85, // disable auto clock detect
  600. //0xD6, 0x37, // 27MHz default
  601. //0xD8, 0x18, // switch to 26MHz clock
  602. //delay(100), // delay 100ms
  603. 0x49,0x01,
  604. 0x19,0x07,
  605. 0x81, 0x01, // turn on video decoder
  606. 0xA3, 0x04,
  607. 0xDF, 0x0F, // enable CVBS format
  608. 0x88, 0x40, // disable SCLK0B out
  609. 0xF6, 0x40, // disable SCLK3A out
  610. // ch0
  611. 0xFF, 0x00, // switch to ch0 (default; optional)
  612. 0x00, 0x00, // internal use*
  613. 0x06, 0x08, // internal use*
  614. 0x07, 0x62, // HD format
  615. 0x2A, 0x81, // filter control
  616. 0x3A, 0x00, // No Insert Channel ID in SAV/EAV code
  617. 0x3F, 0x10, // channel ID
  618. 0x4C, 0x37, // equalizer
  619. 0x4F, 0x00, // sync control
  620. 0x50, 0x00, // 720p resolution
  621. 0x56, 0x05, // 72M mode and BT601 mode
  622. 0x5F, 0x00, // blank level
  623. 0x63, 0x75, // filter control
  624. 0x59, 0x00, // extended register access
  625. 0x5A, 0x00, // data for extended register
  626. 0x58, 0x01, // enable extended register write
  627. 0x59, 0x33, // extended register access
  628. 0x5A, 0x02, // data for extended register
  629. 0x58, 0x01, // enable extended register write
  630. 0x5B, 0x00, // H-scaling control
  631. 0x5E, 0x01, // enable H-scaling control
  632. 0x6A, 0x00, // H-scaling control
  633. 0x28, 0xB2, // cropping
  634. 0x20, 0x24,
  635. 0x23, 0x17,
  636. 0x24, 0x37,
  637. 0x25, 0x17,
  638. 0x26, 0x00,
  639. 0x42, 0x00,
  640. 0x03, 0x80, // saturation
  641. 0x04, 0x80, // hue
  642. 0x05, 0x03, // sharpness
  643. 0x57, 0x20, // black/white stretch
  644. 0x68, 0x32, // coring
  645. 0x3A, 0x04,
  646. 0x3E, 0x32,
  647. 0x40, 0x04,
  648. 0x46, 0x23,
  649. 0x8E, 0x00, // single channel output for VP
  650. 0x8F, 0x80, // 720p mode for VP
  651. 0x8D, 0x31, // enable VP out
  652. 0x89, 0x09, // select 72MHz for SCLK
  653. 0x88, 0x41, // enable SCLK out
  654. 0x96, 0x00, // select AVID & VBLK as status indicator
  655. 0x97, 0x0B, // enable status indicator out on AVID,VBLK & VSYNC
  656. 0x98, 0x00, // video timing pin status
  657. 0x9A, 0x40, // select AVID & VBLK as status indicator
  658. 0x9B, 0xE1, // enable status indicator out on HSYNC
  659. 0x9C, 0x00 // video timing pin status
  660. };
  661. /*************************** end RN6752M ********************************/
  662. const unsigned char rn6752m_bt656_cvbs_ntsc[]=
  663. {
  664. 0x81, 0x01, // turn on video decoder
  665. 0xA3, 0x04,
  666. 0xDF, 0x0F, // enable CVBS format
  667. 0x88, 0x40, // disable SCLK0B out
  668. 0xF6, 0x40, // disable SCLK3A out
  669. // ch0
  670. 0xFF, 0x00, // switch to ch0 (default; optional)
  671. 0x00, 0x00, // internal use*
  672. 0x06, 0x08, // internal use*
  673. 0x07, 0x63, // HD format
  674. 0x2A, 0x81, // filter control
  675. 0x3A, 0x00, // No Insert Channel ID in SAV/EAV code
  676. 0x3F, 0x10, // channel ID
  677. 0x4C, 0x37, // equalizer
  678. 0x4F, 0x00, // sync control
  679. 0x50, 0x00, // 720p resolution
  680. 0x56, 0x05, // 72M mode and BT601 mode
  681. 0x5F, 0x00, // blank level
  682. 0x63, 0x75, // filter control
  683. 0x59, 0x00, // extended register access
  684. 0x5A, 0x00, // data for extended register
  685. 0x58, 0x01, // enable extended register write
  686. 0x59, 0x33, // extended register access
  687. 0x5A, 0x02, // data for extended register
  688. 0x58, 0x01, // enable extended register write
  689. 0x5B, 0x00, // H-scaling control
  690. 0x5E, 0x01, // enable H-scaling control
  691. 0x6A, 0x00, // H-scaling control
  692. 0x28, 0xB2, // cropping
  693. 0x20, 0x24,
  694. 0x23, 0x11,
  695. 0x24, 0x05,
  696. 0x25, 0x11,
  697. 0x26, 0x00,
  698. 0x42, 0x00,
  699. 0x03, 0x80, // saturation
  700. 0x04, 0x80, // hue
  701. 0x05, 0x03, // sharpness
  702. 0x57, 0x20, // black/white stretch
  703. 0x68, 0x32, // coring
  704. 0x3A, 0x04,
  705. 0x3E, 0x32,
  706. 0x40, 0x04,
  707. 0x46, 0x23,
  708. 0x8E, 0x00, // single channel output for VP
  709. 0x8F, 0x80, // 720p mode for VP
  710. 0x8D, 0x31, // enable VP out
  711. 0x89, 0x09, // select 72MHz for SCLK
  712. 0x88, 0x41, // enable SCLK out
  713. 0x96, 0x00, // select AVID & VBLK as status indicator
  714. 0x97, 0x0B, // enable status indicator out on AVID,VBLK & VSYNC
  715. 0x98, 0x00, // video timing pin status
  716. 0x9A, 0x40, // select AVID & VBLK as status indicator
  717. 0x9B, 0xE1, // enable status indicator out on HSYNC
  718. 0x9C, 0x00 // video timing pin status
  719. };
  720. const unsigned char rn6752m_bt656_cvbs_pal[]=
  721. {
  722. 0x81, 0x01, // turn on video decoder
  723. 0xA3, 0x04,
  724. 0xDF, 0x0F, // enable CVBS format
  725. 0x88, 0x40, // disable SCLK0B out
  726. 0xF6, 0x40, // disable SCLK3A out
  727. // ch0
  728. 0xFF, 0x00, // switch to ch0 (default; optional)
  729. 0x00, 0x00, // internal use*
  730. 0x06, 0x08, // internal use*
  731. 0x07, 0x62, // HD format
  732. 0x2A, 0x81, // filter control
  733. 0x3A, 0x00, // No Insert Channel ID in SAV/EAV code
  734. 0x3F, 0x10, // channel ID
  735. 0x4C, 0x37, // equalizer
  736. 0x4F, 0x00, // sync control
  737. 0x50, 0x00, // 720p resolution
  738. 0x56, 0x05, // 72M mode and BT601 mode
  739. 0x5F, 0x00, // blank level
  740. 0x63, 0x75, // filter control
  741. 0x59, 0x00, // extended register access
  742. 0x5A, 0x00, // data for extended register
  743. 0x58, 0x01, // enable extended register write
  744. 0x59, 0x33, // extended register access
  745. 0x5A, 0x02, // data for extended register
  746. 0x58, 0x01, // enable extended register write
  747. 0x5B, 0x00, // H-scaling control
  748. 0x5E, 0x01, // enable H-scaling control
  749. 0x6A, 0x00, // H-scaling control
  750. 0x28, 0xB2, // cropping
  751. 0x20, 0x24,
  752. 0x23, 0x17,
  753. 0x24, 0x37,
  754. 0x25, 0x17,
  755. 0x26, 0x00,
  756. 0x42, 0x00,
  757. 0x03, 0x80, // saturation
  758. 0x04, 0x80, // hue
  759. 0x05, 0x03, // sharpness
  760. 0x57, 0x20, // black/white stretch
  761. 0x68, 0x32, // coring
  762. 0x3A, 0x04,
  763. 0x3E, 0x32,
  764. 0x40, 0x04,
  765. 0x46, 0x23,
  766. 0x8E, 0x00, // single channel output for VP
  767. 0x8F, 0x80, // 720p mode for VP
  768. 0x8D, 0x31, // enable VP out
  769. 0x89, 0x09, // select 72MHz for SCLK
  770. 0x88, 0x41, // enable SCLK out
  771. 0x96, 0x00, // select AVID & VBLK as status indicator
  772. 0x97, 0x0B, // enable status indicator out on AVID,VBLK & VSYNC
  773. 0x98, 0x00, // video timing pin status
  774. 0x9A, 0x40, // select AVID & VBLK as status indicator
  775. 0x9B, 0xE1, // enable status indicator out on HSYNC
  776. 0x9C, 0x00 // video timing pin status
  777. };
  778. const unsigned char rn6752m_bt656_720p_25pfs[] = {
  779. // 720P@25 BT656
  780. // Slave address is 0x58
  781. // Register, data
  782. // if clock source(Xin) of RN6752 is 26MHz, please add these procedures marked first
  783. //0xD2, 0x85, // disable auto clock detect
  784. //0xD6, 0x37, // 27MHz default
  785. //0xD8, 0x18, // switch to 26MHz clock
  786. //delay(100), // delay 100ms
  787. 0x81, 0x01, // turn on video decoder
  788. 0xA3, 0x04, // enable 72MHz sampling
  789. 0xDF, 0xFE, // enable HD format
  790. 0x88, 0x40, // disable SCLK0B out
  791. 0xF6, 0x40, // disable SCLK3A out
  792. // ch0
  793. 0xFF, 0x00, // switch to ch0 (default; optional)
  794. 0x00, 0x20, // internal use*
  795. 0x06, 0x08, // internal use*
  796. 0x07, 0x63, // HD format
  797. 0x2A, 0x01, // filter control
  798. 0x3A, 0x00, // No Insert Channel ID in SAV/EAV code
  799. 0x3F, 0x10, // channel ID
  800. 0x4C, 0x37, // equalizer
  801. 0x4F, 0x03, // sync control
  802. 0x50, 0x02, // 720p resolution
  803. 0x56, 0x01, // BT 72M mode
  804. 0x5F, 0x40, // blank level
  805. 0x63, 0xF5, // filter control
  806. 0x59, 0x00, // extended register access
  807. 0x5A, 0x42, // data for extended register
  808. 0x58, 0x01, // enable extended register write
  809. 0x59, 0x33, // extended register access
  810. 0x5A, 0x23, // data for extended register
  811. 0x58, 0x01, // enable extended register write
  812. 0x51, 0xE1, // scale factor1
  813. 0x52, 0x88, // scale factor2
  814. 0x53, 0x12, // scale factor3
  815. 0x5B, 0x07, // H-scaling control
  816. 0x5E, 0x08, // enable H-scaling control
  817. 0x6A, 0x82, // H-scaling control
  818. 0x28, 0x92, // cropping
  819. 0x03, 0x80, // saturation
  820. 0x04, 0x80, // hue
  821. 0x05, 0x00, // sharpness
  822. 0x57, 0x23, // black/white stretch
  823. 0x68, 0x32, // coring
  824. 0x37, 0x33,
  825. 0x61, 0x6C,
  826. // VP1
  827. 0x8E, 0x00, // single channel output for VP1
  828. 0x8F, 0x80, // 720p mode for VP1
  829. 0x8D, 0x31, // enable VP1 out
  830. 0x89, 0x09, // select 72MHz for SCLK
  831. 0x88, 0x41 // enable SCLK out
  832. };
  833. const unsigned char rn6752m_bt656_720p_30pfs[] = {
  834. // 720P@30 BT656
  835. // Slave address is 0x58
  836. // Register, data
  837. // if clock source(Xin) of RN6752 is 26MHz, please add these procedures marked first
  838. //0xD2, 0x85, // disable auto clock detect
  839. //0xD6, 0x37, // 27MHz default
  840. //0xD8, 0x18, // switch to 26MHz clock
  841. //delay(100), // delay 100ms
  842. 0x81, 0x01, // turn on video decoder
  843. 0xA3, 0x04, // enable 72MHz sampling
  844. 0xDF, 0xFE, // enable HD format
  845. 0x88, 0x40, // disable SCLK0B out
  846. 0xF6, 0x40, // disable SCLK3A out
  847. // ch0
  848. 0xFF, 0x00, // switch to ch0 (default; optional)
  849. 0x00, 0x20, // internal use*
  850. 0x06, 0x08, // internal use*
  851. 0x07, 0x63, // HD format
  852. 0x2A, 0x01, // filter control
  853. 0x3A, 0x00, // No Insert Channel ID in SAV/EAV code
  854. 0x3F, 0x10, // channel ID
  855. 0x4C, 0x37, // equalizer
  856. 0x4F, 0x03, // sync control
  857. 0x50, 0x02, // 720p resolution
  858. 0x56, 0x01, // 72M mode and BT656 mode
  859. 0x5F, 0x40, // blank level
  860. 0x63, 0xF5, // filter control
  861. 0x59, 0x00, // extended register access
  862. 0x5A, 0x44, // data for extended register
  863. 0x58, 0x01, // enable extended register write
  864. 0x59, 0x33, // extended register access
  865. 0x5A, 0x23, // data for extended register
  866. 0x58, 0x01, // enable extended register write
  867. 0x51, 0x4E, // scale factor1
  868. 0x52, 0x87, // scale factor2
  869. 0x53, 0x12, // scale factor3
  870. 0x5B, 0x07, // H-scaling control
  871. 0x5E, 0x08, // enable H-scaling control
  872. 0x6A, 0x82, // H-scaling control
  873. 0x28, 0x92, // cropping
  874. 0x03, 0x80, // saturation
  875. 0x04, 0x80, // hue
  876. 0x05, 0x00, // sharpness
  877. 0x57, 0x23, // black/white stretch
  878. 0x68, 0x32, // coring
  879. 0x37, 0x33,
  880. 0x61, 0x6C,
  881. // VP1
  882. 0x8E, 0x00, // single channel output for VP1
  883. 0x8F, 0x80, // 720p mode for VP1
  884. 0x8D, 0x31, // enable VP1 out
  885. 0x89, 0x09, // select 72MHz for SCLK
  886. 0x88, 0x41 // enable SCLK out
  887. };
  888. const unsigned char rn6752m_bt656_1080p_25pfs[] = {
  889. // 1080P@25 BT656
  890. // Slave address is 0x58
  891. // Register, data
  892. // if clock source(Xin) of RN6752 is 26MHz, please add these procedures marked first
  893. //0xD2, 0x85, // disable auto clock detect
  894. //0xD6, 0x37, // 27MHz default
  895. //0xD8, 0x18, // switch to 26MHz clock
  896. //delay(100), // delay 100ms
  897. 0x81, 0x01, // turn on video decoder
  898. 0xA3, 0x04, //
  899. 0xDF, 0xFE, // enable HD format
  900. 0xF0, 0xC0,
  901. 0x88, 0x40, // disable SCLK0B out
  902. 0xF6, 0x40, // disable SCLK3A out
  903. // ch0
  904. 0xFF, 0x00, // switch to ch0 (default; optional)
  905. 0x00, 0x20, // internal use*
  906. 0x06, 0x08, // internal use*
  907. 0x07, 0x63, // HD format
  908. 0x2A, 0x01, // filter control
  909. 0x3A, 0x00, // No Insert Channel ID in SAV/EAV code
  910. 0x3F, 0x10, // channel ID
  911. 0x4C, 0x37, // equalizer
  912. 0x4F, 0x03, // sync control
  913. 0x50, 0x03, // 1080p resolution
  914. 0x56, 0x02, // 144M and BT656 mode
  915. 0x5F, 0x44, // blank level
  916. 0x63, 0xF8, // filter control
  917. 0x59, 0x00, // extended register access
  918. 0x5A, 0x48, // data for extended register
  919. 0x58, 0x01, // enable extended register write
  920. 0x59, 0x33, // extended register access
  921. 0x5A, 0x23, // data for extended register
  922. 0x58, 0x01, // enable extended register write
  923. 0x51, 0xF4, // scale factor1
  924. 0x52, 0x29, // scale factor2
  925. 0x53, 0x15, // scale factor3
  926. 0x5B, 0x01, // H-scaling control
  927. 0x5E, 0x08, // enable H-scaling control
  928. 0x6A, 0x87, // H-scaling control
  929. 0x28, 0x92, // cropping
  930. 0x03, 0x80, // saturation
  931. 0x04, 0x80, // hue
  932. 0x05, 0x04, // sharpness
  933. 0x57, 0x23, // black/white stretch
  934. 0x68, 0x00, // coring
  935. 0x37, 0x33,
  936. 0x61, 0x6C,
  937. 0x8E, 0x00, // single channel output for VP
  938. 0x8F, 0x80, // 1080p mode for VP
  939. 0x8D, 0x31, // enable VP out
  940. 0x89, 0x0A, // select 144MHz for SCLK
  941. 0x88, 0x41 // enable SCLK out
  942. };
  943. const unsigned char rn6752m_bt656_1080p_30pfs[] = {
  944. // 1080P@30 BT656
  945. // Slave address is 0x58
  946. // Register, data
  947. // if clock source(Xin) of RN6752 is 26MHz, please add these procedures marked first
  948. //0xD2, 0x85, // disable auto clock detect
  949. //0xD6, 0x37, // 27MHz default
  950. //0xD8, 0x18, // switch to 26MHz clock
  951. //delay(100), // delay 100ms
  952. 0x81, 0x01, // turn on video decoder
  953. 0xA3, 0x04, //
  954. 0xDF, 0xFE, // enable HD format
  955. 0xF0, 0xC0,
  956. 0x88, 0x40, // disable SCLK0B out
  957. 0xF6, 0x40, // disable SCLK3A out
  958. // ch0
  959. 0xFF, 0x00, // switch to ch0 (default; optional)
  960. 0x00, 0x20, // internal use*
  961. 0x06, 0x08, // internal use*
  962. 0x07, 0x63, // HD format
  963. 0x2A, 0x01, // filter control
  964. 0x3A, 0x00, // No Insert Channel ID in SAV/EAV code
  965. 0x3F, 0x10, // channel ID
  966. 0x4C, 0x37, // equalizer
  967. 0x4F, 0x03, // sync control
  968. 0x50, 0x03, // 1080p resolution
  969. 0x56, 0x02, // 144M and BT656 mode
  970. 0x5F, 0x44, // blank level
  971. 0x63, 0xF8, // filter control
  972. 0x59, 0x00, // extended register access
  973. 0x5A, 0x49, // data for extended register
  974. 0x58, 0x01, // enable extended register write
  975. 0x59, 0x33, // extended register access
  976. 0x5A, 0x23, // data for extended register
  977. 0x58, 0x01, // enable extended register write
  978. 0x51, 0xF4, // scale factor1
  979. 0x52, 0x29, // scale factor2
  980. 0x53, 0x15, // scale factor3
  981. 0x5B, 0x01, // H-scaling control
  982. 0x5E, 0x08, // enable H-scaling control
  983. 0x6A, 0x87, // H-scaling control
  984. 0x28, 0x92, // cropping
  985. 0x03, 0x80, // saturation
  986. 0x04, 0x80, // hue
  987. 0x05, 0x04, // sharpness
  988. 0x57, 0x23, // black/white stretch
  989. 0x68, 0x00, // coring
  990. 0x37, 0x33,
  991. 0x61, 0x6C,
  992. 0x8E, 0x00, // single channel output for VP
  993. 0x8F, 0x80, // 1080p mode for VP
  994. 0x8D, 0x31, // enable VP out
  995. 0x89, 0x0A, // select 144MHz for SCLK
  996. 0x88, 0x41 // enable SCLK out
  997. };
  998. #endif