hdmi_hw.c 65 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566156715681569157015711572157315741575157615771578157915801581158215831584158515861587158815891590159115921593159415951596159715981599160016011602160316041605160616071608160916101611161216131614161516161617161816191620162116221623162416251626162716281629163016311632163316341635163616371638163916401641164216431644164516461647164816491650165116521653165416551656165716581659166016611662166316641665166616671668166916701671167216731674167516761677167816791680168116821683168416851686168716881689169016911692169316941695169616971698169917001701170217031704170517061707170817091710171117121713171417151716171717181719172017211722172317241725172617271728172917301731173217331734173517361737173817391740174117421743174417451746174717481749175017511752175317541755175617571758175917601761176217631764176517661767176817691770177117721773177417751776177717781779178017811782178317841785178617871788178917901791179217931794179517961797179817991800180118021803180418051806180718081809181018111812181318141815181618171818181918201821182218231824182518261827182818291830183118321833183418351836183718381839184018411842
  1. #include <linux/kernel.h> /* printk */
  2. #include "sysreg.h"
  3. #include "hdmi_hw.h"
  4. #include "hdmi_dbg.h"
  5. #include "drv_hdmi_internal.h"
  6. #include "hdmi_hpd.h"
  7. #include "hdmi_time.h"
  8. #include "drv_hdmi_external.h"
  9. #include "hdmi_infoframe_api.h"
  10. #ifdef CONFIG_HDMI_SUPPORT_MHL
  11. #include "cbus_drv.h"
  12. #endif
  13. #define HDMI_MMIO_BASE 0xBE0E0000
  14. #define HDMIPhy_MMIO_BASE 0xBE0E1000
  15. #define CEC_MMIO_BASE 0xBE1E0000
  16. #define HDMI_CBUS_MMIO_BASE 0xBE290000
  17. #define HDMI_GetRegisterStartBit(ulRegisterName) ((ulRegisterName >> 16) & 0x00000003F)
  18. #define HDMI_GetRegisterEndBit(ulRegisterName) ((ulRegisterName >> 22) & 0x00000003F)
  19. #define GET_VALUE_BITS(ulRegisterName, ulValue) ((UINT32)(ulValue << (32 - HDMI_GetRegisterEndBit(ulRegisterName)))) >> ((32 - HDMI_GetRegisterEndBit(ulRegisterName)))
  20. #define POSITION_VALUE(ulRegisterName, ulValue) (ulValue << HDMI_GetRegisterStartBit(ulRegisterName))
  21. #define HDMI_GetStartAndEndBits(ulRegisterName) (ulRegisterName & 0x0FFF0000)
  22. #define ALL_BITS 0x08000000
  23. #define WIDTH_BIT_8 0x02000000
  24. #define REGISTER_ADDRESS_MASK 0x0000FFFF
  25. #define REGISTER_TYPE_MASK 0xF0000000
  26. extern BOOL MHL_CABLE_IN;
  27. extern BOOL MHL_CTS;
  28. HDMI_EQ_INDEX_e HDMI_EQ_MODE_INDEX=HDMI_EQ_INDEX_DEFAULT;
  29. UINT32 HDMI_GetRegisterType(UINT32 ulRegisterType)
  30. {
  31. switch (ulRegisterType)
  32. {
  33. case 0x40000000: //HDMIRX
  34. return HDMI_MMIO_BASE;
  35. case 0x50000000: //CEC
  36. return CEC_MMIO_BASE;
  37. case 0x60000000: //HDMIRX CBUS
  38. return HDMI_CBUS_MMIO_BASE;
  39. default:
  40. return HDMI_MMIO_BASE;
  41. }
  42. }
  43. //****************************************************************************
  44. //
  45. // Function : HDMI_RegisterWrite
  46. // Params : ulRegisterName -address of the index register
  47. // ulValue - value to program to the given bits of the register
  48. // Description: Sets the given bits of the given index register to the given value
  49. // ulRegisterName data format: TTTT WWWW WWSS SSSS AAAA AAAA AAAA AAAA
  50. // 0:reserved
  51. // T:register type 4=HDMIRX_register (offset 0xBE0E)
  52. // W:register used width
  53. // S:register start bit
  54. // A:register address
  55. // Returns : void
  56. //****************************************************************************
  57. void HDMI_RegisterWrite(UINT32 ulRegisterName, UINT32 ulValue)
  58. {
  59. UINT32 ulData, ulBitMask, ulRegisterType, ulRegisterAddr;
  60. BOOL fUseByteAccess;
  61. volatile UINT32 *pdRegAddr32;
  62. volatile UINT8 *pbRegAddr8;
  63. ulRegisterType = HDMI_GetRegisterType(ulRegisterName & REGISTER_TYPE_MASK);
  64. ulBitMask = GET_VALUE_BITS(ulRegisterName, 0xFFFFFFFF);
  65. ulBitMask <<= HDMI_GetRegisterStartBit(ulRegisterName);
  66. ulValue <<= HDMI_GetRegisterStartBit(ulRegisterName);
  67. fUseByteAccess = (HDMI_GetStartAndEndBits(ulRegisterName) <= WIDTH_BIT_8)?TRUE:FALSE;
  68. ulRegisterAddr = (ulRegisterName & REGISTER_ADDRESS_MASK);
  69. ulRegisterAddr |= ulRegisterType; //offset address
  70. pdRegAddr32 = (UINT32 *)ulRegisterAddr;
  71. pbRegAddr8 = (UINT8 *)ulRegisterAddr;
  72. if(fUseByteAccess)
  73. {
  74. ulData = *pbRegAddr8;
  75. }
  76. else
  77. {
  78. ulData = *pdRegAddr32;
  79. }
  80. ulData &= ~ulBitMask;
  81. ulData |= (ulValue & ulBitMask);
  82. if(fUseByteAccess)
  83. {
  84. *pbRegAddr8 = ulData;
  85. }
  86. else
  87. {
  88. *pdRegAddr32 = ulData;
  89. }
  90. }
  91. //****************************************************************************
  92. //
  93. // Function : HDMI_RegisterRead
  94. // Params : ulRegisterName -address of the index register
  95. // Description: read the given bits of the given index register to the value
  96. // ulRegisterName data format: TTTT WWWW WWSS SSSS AAAA AAAA AAAA AAAA
  97. // 0:reserved
  98. // T:register type 4=HDMIRX_register (offset 0xBE0E)
  99. // W:register used width
  100. // S:register start bit
  101. // A:register address
  102. // Returns : register data
  103. //****************************************************************************
  104. UINT32 HDMI_RegisterRead(UINT32 ulRegisterName)
  105. {
  106. UINT32 ulData, ulBitMask, ulRegisterType, ulRegisterNameTmp;
  107. volatile UINT32 *pdRegAddr32;
  108. ulRegisterNameTmp = ulRegisterName;
  109. ulRegisterType = HDMI_GetRegisterType(ulRegisterName & REGISTER_TYPE_MASK);
  110. ulRegisterNameTmp &= REGISTER_ADDRESS_MASK;
  111. ulRegisterNameTmp |= ulRegisterType; //offset address
  112. pdRegAddr32 = (UINT32 *)ulRegisterNameTmp;
  113. ulData = *pdRegAddr32;
  114. if (HDMI_GetStartAndEndBits(ulRegisterName) != ALL_BITS)
  115. {
  116. ulBitMask = GET_VALUE_BITS(ulRegisterName, 0xFFFFFFFF);
  117. ulBitMask <<= HDMI_GetRegisterStartBit(ulRegisterName);
  118. ulData &= ulBitMask;
  119. ulData >>= (HDMI_GetRegisterStartBit(ulRegisterName));
  120. }
  121. return ulData;
  122. }
  123. void HDMI_Interrupt_Enable(UINT32 ulIntr)
  124. {
  125. UINT32 ulCurIntEn;
  126. ulCurIntEn = HDMI_RegisterRead(HDMIRX_R_INTR_en);
  127. ulCurIntEn |= ulIntr;
  128. HDMI_RegisterWrite(HDMIRX_R_INTR_en, ulCurIntEn);
  129. }
  130. void HDMI_Interrupt_Disable(UINT32 ulIntr)
  131. {
  132. UINT32 ulCurIntEn;
  133. ulCurIntEn = HDMI_RegisterRead(HDMIRX_R_INTR_en);
  134. ulCurIntEn &= ~(ulIntr);
  135. HDMI_RegisterWrite(HDMIRX_R_INTR_en, ulCurIntEn);
  136. }
  137. void HDMI_PHY_Enable(BOOL fEn)
  138. {
  139. if(fEn)
  140. {
  141. HDMI_Set_PLL_Mode(HDMI_PLL_MODE_HDMI_ENABLE);
  142. #ifdef CONFIG_HDMI_SUPPORT_MHL
  143. if((MHL_CABLE_IN == TRUE)&&( DrvHDMIPortSelectBitsGet()==CONFIG_HDMI_MHL_PORT))
  144. HDMI_MHL_RxSense_Term_Debug(FALSE); //auto HDMI or MHL mode
  145. else
  146. HDMI_MHL_RxSense_Term_Debug(TRUE); //force HDMI mode for debug(not MHL mode)
  147. #else
  148. HDMI_MHL_RxSense_Term_Debug(TRUE); //force HDMI mode for debug(not MHL mode)
  149. #endif
  150. }
  151. else //Power Down for CEC
  152. {
  153. HDMI_Set_PLL_Mode(HDMI_PLL_MODE_HDMI_DISABLE);
  154. }
  155. #ifdef USE_HW_ADAPTIVE_EQ
  156. #ifdef CONFIG_HDMI_SUPPORT_MHL
  157. if((MHL_CABLE_IN != TRUE)||( DrvHDMIPortSelectBitsGet() != CONFIG_HDMI_MHL_PORT))
  158. #endif
  159. {
  160. HDMI_Adaptive_EQ_Init();
  161. }
  162. #endif
  163. }
  164. void HDMI_PLL_Init(void)
  165. {
  166. HDMI_Set_PLL_Mode(HDMI_PLL_MODE_HDMI_INIT);
  167. }
  168. void HDMI_SetPLL_ByFreq(void)
  169. {
  170. UINT8 bRefFreq = HDMI_RegisterRead(HDMIRX_ref_freq_cnt);
  171. HDMI_RegisterWrite(HDMIRX_TMDSCLK_PP_SEL, 0);
  172. if(bRefFreq <= 0x6)
  173. {
  174. hdmidbg("bRefFreq ?~0x6\n");
  175. HDMI_Set_PLL_Mode(HDMI_PLL_MODE_HDMI_FREQ_6);
  176. }
  177. else if(bRefFreq >= 0x7 && bRefFreq <= 0xE)
  178. {
  179. hdmidbg("bRefFreq 0x7~0xE\n");
  180. HDMI_Set_PLL_Mode(HDMI_PLL_MODE_HDMI_FREQ_7_E);
  181. }
  182. else if(bRefFreq >= 0xF && bRefFreq <= 0x1E)
  183. {
  184. hdmidbg("bRefFreq 0xF~0x1E\n");
  185. HDMI_Set_PLL_Mode(HDMI_PLL_MODE_HDMI_FREQ_F_1E);
  186. }
  187. else if(bRefFreq >= 0x1F && bRefFreq <= 0x32)
  188. {
  189. hdmidbg("bRefFreq 0x1F~0x32\n");
  190. HDMI_Set_PLL_Mode(HDMI_PLL_MODE_HDMI_FREQ_1F_32);
  191. }
  192. else if(bRefFreq >= 0x33 && bRefFreq <= 0x3F)
  193. {
  194. hdmidbg("bRefFreq 0x33~0x3F\n");
  195. HDMI_Set_PLL_Mode(HDMI_PLL_MODE_HDMI_FREQ_33_3F);
  196. }
  197. else if(bRefFreq >= 0x40 && bRefFreq <= 0x60)
  198. {
  199. hdmidbg("bRefFreq 0x40~0x60\n");
  200. HDMI_Set_PLL_Mode(HDMI_PLL_MODE_HDMI_FREQ_40_60);
  201. }
  202. else if(bRefFreq >= 0x61)
  203. {
  204. hdmidbg("bRefFreq 0x61~?\n");
  205. HDMI_Set_PLL_Mode(HDMI_PLL_MODE_HDMI_FREQ_61);
  206. }
  207. hdmidbg("bPLL_ICtrl=0x%x\n", HDMI_RegisterRead(HDMIRX_PLL_ICTRL_3_0_));
  208. hdmidbg("EN_FDIV=0x%x\n", HDMI_RegisterRead(HDMIRX_PLL_EN_FDIV));
  209. hdmidbg("bPLL_GB=0x%x\n", HDMI_RegisterRead(HDMIRX_PLL_GB_4_0_) | (HDMI_RegisterRead(HDMIRX_PLL_GB_5)<<5));
  210. hdmidbg("DIVSLE2=0x%x\n", HDMI_RegisterRead(HDMIRX_PHY_DIVSLE2));
  211. hdmidbg("DIV_SEL_2=0x%x\n", HDMI_RegisterRead(HDMIRX_PLL_DIVSEL2));
  212. hdmidbg("REFDIV=0x%x\n", HDMI_RegisterRead(HDMIRX_PLL_REFDIV));
  213. }
  214. void HDMI_MHL_SetPLL_ByFreq(void)
  215. {
  216. UINT8 bRefFreq = HDMI_RegisterRead(HDMIRX_ref_freq_cnt);
  217. #ifdef USE_HW_ADAPTIVE_EQ
  218. #ifndef Manu_EQ_Adjust
  219. UINT8 bHDMIRX_BS3 = (UINT8)HDMI_RegisterRead(HDMIRX_BS3);
  220. #endif
  221. #endif
  222. HDMI_RegisterWrite(HDMIRX_R_BYTE_ALIGN_CNT2, 0xF);//For Silicon Image MHL Starter KIT-9244
  223. if((HDMI_RegisterRead(HDMIRX_cbus_mode_pathen_muted)&0x3) ==0x2)
  224. {//CLK_MODE=10 =>PP Mode
  225. hdmidbg("MHL PP Mode\n");
  226. #ifndef Manu_EQ_Adjust
  227. HDMI_RegisterWrite(CTRLI_631_600__DW_0430,0x33722033);
  228. HDMI_RegisterWrite(CTRLI_663_632__DW_0434,0x20337220);
  229. #ifdef USE_HW_ADAPTIVE_EQ
  230. //HDMI_RegisterWrite(CTRLI_695_664__DW_0438,0x00000072);
  231. #ifdef CONFIG_HDMI_SUPPORT_MHL
  232. if((MHL_CABLE_IN == TRUE)&&( DrvHDMIPortSelectBitsGet() == CONFIG_HDMI_MHL_PORT))
  233. {
  234. HDMI_RegisterWrite(CTRLI_695_664__DW_0438,0x00000072);
  235. }
  236. else
  237. #endif
  238. {
  239. HDMI_RegisterWrite(CTRLI_695_664__DW_0438,0x00000072|(bHDMIRX_BS3<<16));
  240. }
  241. #else
  242. HDMI_RegisterWrite(CTRLI_695_664__DW_0438,0x00000072);
  243. #endif
  244. #endif
  245. HDMI_RegisterWrite(HDMIRX_R_SP1_EQ_OUT_VREF0,0);
  246. HDMI_RegisterWrite(HDMIRX_R_SP1_EQ_OUT_VREF1,1);
  247. HDMI_RegisterWrite(HDMIRX_BIAS_VREF_SF_SEL_1_0_, 3);
  248. HDMI_RegisterWrite(HDMIRX_EQ_VDC_SEL, 0);
  249. HDMI_RegisterWrite(HDMIRX_EQ_ICTL0, 0x1);
  250. HDMI_RegisterWrite(HDMIRX_EQ_ICTL1, 0x1);
  251. HDMI_RegisterWrite(HDMIRX_PHY_IB_CT_CK, 0x0);
  252. HDMI_RegisterWrite(HDMIRX_TMDSCLK_PP_SEL, 1);
  253. //*((u8 *)0xbe0e001c) = 0xff;
  254. HDMI_RegisterWrite(HDMIRX_HDMIP0_Mode_Sel_external, 1);
  255. HDMI_RegisterWrite(HDMIRX_HDMIP0_Mode_Sel_mux, 1);
  256. HDMI_RegisterWrite(HDMIRX_HDMIP0_MHL_Mode_Sel_external, 1);
  257. HDMI_RegisterWrite(HDMIRX_HDMIP0_MHL_Mode_Sel_mux, 1);
  258. HDMI_RegisterWrite(HDMIRX_HDMIP0_Mode_Sel_PLL_external, 1);
  259. HDMI_RegisterWrite(HDMIRX_HDMIP0_Mode_Sel_PLL_mux, 1);
  260. HDMI_RegisterWrite(HDMIRX_HDMIP0_MHL_Mode_PLL_Sel_external, 1);
  261. HDMI_RegisterWrite(HDMIRX_HDMIP0_MHL_Mode_Sel_PLL_mux, 1);
  262. if(bRefFreq <= 0xA)
  263. {
  264. hdmidbg("bRefFreq ?~0xA\n");
  265. HDMI_RegisterWrite(HDMIRX_PLL_ICTRL_3_0_, 0x6);
  266. HDMI_RegisterWrite(HDMIRX_PLL_EN_FDIV, 0);
  267. HDMI_RegisterWrite(HDMIRX_PLL_GB_4_0_, 0x8E);
  268. HDMI_RegisterWrite(HDMIRX_PLL_GB_5, 1);//For 533 PFD_PWDJ
  269. HDMI_RegisterWrite(HDMIRX_CTL_R_MORECTRLI_15_0_, 0x0039);
  270. }
  271. else if(bRefFreq >= 0xB && bRefFreq <= 0x10)
  272. {
  273. hdmidbg("bRefFreq 0xB~0x10\n");
  274. HDMI_RegisterWrite(HDMIRX_PLL_ICTRL_3_0_, 0x4);
  275. HDMI_RegisterWrite(HDMIRX_PLL_EN_FDIV, 0);
  276. HDMI_RegisterWrite(HDMIRX_PLL_GB_4_0_, 0x18);
  277. HDMI_RegisterWrite(HDMIRX_PLL_GB_5, 1);//For 533 PFD_PWDJ
  278. HDMI_RegisterWrite(HDMIRX_CTL_R_MORECTRLI_15_0_, 0x0039);
  279. }
  280. else if(bRefFreq >= 0x11 && bRefFreq <= 0x15)
  281. {
  282. hdmidbg("bRefFreq 0x11~0x15\n");
  283. HDMI_RegisterWrite(HDMIRX_PLL_ICTRL_3_0_, 0x4);
  284. HDMI_RegisterWrite(HDMIRX_PLL_EN_FDIV, 0);
  285. HDMI_RegisterWrite(HDMIRX_PLL_GB_4_0_, 0x8D);
  286. HDMI_RegisterWrite(HDMIRX_PLL_GB_5, 1);//For 533 PFD_PWDJ
  287. HDMI_RegisterWrite(HDMIRX_CTL_R_MORECTRLI_15_0_, 0x0038);
  288. }
  289. else if(bRefFreq >= 0x16)
  290. {
  291. hdmidbg("bRefFreq 0x16~?\n");
  292. HDMI_RegisterWrite(HDMIRX_PLL_ICTRL_3_0_, 0x3);// 2->3
  293. HDMI_RegisterWrite(HDMIRX_PLL_EN_FDIV, 0);
  294. HDMI_RegisterWrite(HDMIRX_PLL_GB_4_0_, 0x6);// 16->6
  295. HDMI_RegisterWrite(HDMIRX_PLL_GB_5, 1);//For 533 PFD_PWDJ
  296. HDMI_RegisterWrite(HDMIRX_CTL_R_MORECTRLI_15_0_, 0x0038);
  297. }
  298. HDMI_RegisterWrite(HDMIRX_CTL_R_FG_CNT_7_0_, 0x5);
  299. HDMI_RegisterWrite(HDMIRX_CTL_R_FH_CNT_7_0_, 0x7);
  300. HDMI_RegisterWrite(HDMIRX_CTL_R_FI_CNT_7_0_, 0x9);
  301. HDMI_RegisterWrite(HDMIRX_CTL_R_FJ_CNT_7_0_, 0xB);
  302. HDMI_RegisterWrite(HDMIRX_CTL_R_FK_CNT_7_0_, 0x15);
  303. HDMI_RegisterWrite(HDMIRX_PHY_DIVSLE2, 0);
  304. HDMI_RegisterWrite(HDMIRX_PLL_DIVSEL2, 0);
  305. HDMI_RegisterWrite(HDMIRX_PLL_REFDIV, 0);
  306. }
  307. else
  308. {//CLK_MODE=11 =>24 Bit Mode
  309. hdmidbg("MHL 24 Bit Mode\n");
  310. HDMI_RegisterWrite(HDMIRX_TMDSCLK_PP_SEL, 0);
  311. #ifndef Manu_EQ_Adjust
  312. HDMI_RegisterWrite(CTRLI_631_600__DW_0430,0x77722077);
  313. HDMI_RegisterWrite(CTRLI_663_632__DW_0434,0x20447220);
  314. #ifdef USE_HW_ADAPTIVE_EQ
  315. //HDMI_RegisterWrite(CTRLI_695_664__DW_0438,0x00000072);
  316. #ifdef CONFIG_HDMI_SUPPORT_MHL
  317. if((MHL_CABLE_IN == TRUE)&&( DrvHDMIPortSelectBitsGet() == CONFIG_HDMI_MHL_PORT))
  318. {
  319. HDMI_RegisterWrite(CTRLI_695_664__DW_0438,0x00000072);
  320. }
  321. else
  322. #endif
  323. {
  324. HDMI_RegisterWrite(CTRLI_695_664__DW_0438,0x00000072|(bHDMIRX_BS3<<16));
  325. }
  326. #else
  327. HDMI_RegisterWrite(CTRLI_695_664__DW_0438,0x00000072);
  328. #endif
  329. #endif
  330. HDMI_RegisterWrite(HDMIRX_R_SP1_EQ_OUT_VREF0,0);
  331. HDMI_RegisterWrite(HDMIRX_R_SP1_EQ_OUT_VREF1,1);
  332. HDMI_RegisterWrite(HDMIRX_BIAS_VREF_SF_SEL_1_0_, 1);
  333. HDMI_RegisterWrite(HDMIRX_EQ_VDC_SEL, 1);
  334. HDMI_RegisterWrite(HDMIRX_EQ_ICTL0, 0x0);
  335. HDMI_RegisterWrite(HDMIRX_EQ_ICTL1, 0x1);
  336. HDMI_RegisterWrite(HDMIRX_PHY_IB_CT_CK, 0x2);
  337. //*((u8 *)0xbe0e001c) = 0xbb;
  338. HDMI_RegisterWrite(HDMIRX_HDMIP0_Mode_Sel_external, 1);
  339. HDMI_RegisterWrite(HDMIRX_HDMIP0_Mode_Sel_mux, 1);
  340. HDMI_RegisterWrite(HDMIRX_HDMIP0_MHL_Mode_Sel_external, 0);
  341. HDMI_RegisterWrite(HDMIRX_HDMIP0_MHL_Mode_Sel_mux, 1);
  342. HDMI_RegisterWrite(HDMIRX_HDMIP0_Mode_Sel_PLL_external, 1);
  343. HDMI_RegisterWrite(HDMIRX_HDMIP0_Mode_Sel_PLL_mux, 1);
  344. HDMI_RegisterWrite(HDMIRX_HDMIP0_MHL_Mode_PLL_Sel_external, 0);
  345. HDMI_RegisterWrite(HDMIRX_HDMIP0_MHL_Mode_Sel_PLL_mux, 1);
  346. if(bRefFreq <= 0xA)
  347. {
  348. hdmidbg("bRefFreq ?~0xA\n");
  349. HDMI_RegisterWrite(HDMIRX_PLL_ICTRL_3_0_, 0x9);//6->9
  350. HDMI_RegisterWrite(HDMIRX_PLL_EN_FDIV, 0);
  351. HDMI_RegisterWrite(HDMIRX_PLL_GB_4_0_, 0x06);
  352. HDMI_RegisterWrite(HDMIRX_PLL_GB_5, 1);//For 533 PFD_PWDJ
  353. HDMI_RegisterWrite(HDMIRX_CTL_R_MORECTRLI_15_0_, 0x003a);
  354. }
  355. else if(bRefFreq >= 0xB && bRefFreq <= 0x10)
  356. {
  357. hdmidbg("bRefFreq 0xB~0x10\n");
  358. HDMI_RegisterWrite(HDMIRX_PLL_ICTRL_3_0_, 0x3);// 4->3
  359. HDMI_RegisterWrite(HDMIRX_PLL_EN_FDIV, 0);
  360. HDMI_RegisterWrite(HDMIRX_PLL_GB_4_0_, 0x6);// 8D->6
  361. HDMI_RegisterWrite(HDMIRX_PLL_GB_5, 1);//For 533 PFD_PWDJ
  362. HDMI_RegisterWrite(HDMIRX_CTL_R_MORECTRLI_15_0_, 0x0039);
  363. }
  364. else if(bRefFreq >= 0x11 && bRefFreq <= 0x15)
  365. {
  366. hdmidbg("bRefFreq 0x11~0x15\n");
  367. HDMI_RegisterWrite(HDMIRX_PLL_ICTRL_3_0_, 0x3);
  368. HDMI_RegisterWrite(HDMIRX_PLL_EN_FDIV, 0);
  369. HDMI_RegisterWrite(HDMIRX_PLL_GB_4_0_, 0x06);
  370. HDMI_RegisterWrite(HDMIRX_PLL_GB_5, 1);//For 533 PFD_PWDJ
  371. HDMI_RegisterWrite(HDMIRX_CTL_R_MORECTRLI_15_0_, 0x0039);
  372. }
  373. else if(bRefFreq >= 0x16)
  374. {
  375. hdmidbg("bRefFreq 0x16~?\n");
  376. HDMI_RegisterWrite(HDMIRX_PLL_ICTRL_3_0_, 0x2);// 2 ->3
  377. HDMI_RegisterWrite(HDMIRX_PLL_EN_FDIV, 0);
  378. HDMI_RegisterWrite(HDMIRX_PLL_GB_4_0_, 0x6);
  379. HDMI_RegisterWrite(HDMIRX_PLL_GB_5, 1);//For 533 PFD_PWDJ
  380. HDMI_RegisterWrite(HDMIRX_CTL_R_MORECTRLI_15_0_, 0x0038);
  381. }
  382. HDMI_RegisterWrite(HDMIRX_CTL_R_FG_CNT_7_0_, 0x5);
  383. HDMI_RegisterWrite(HDMIRX_CTL_R_FH_CNT_7_0_, 0x7);
  384. HDMI_RegisterWrite(HDMIRX_CTL_R_FI_CNT_7_0_, 0x9);
  385. HDMI_RegisterWrite(HDMIRX_CTL_R_FJ_CNT_7_0_, 0xB);
  386. HDMI_RegisterWrite(HDMIRX_CTL_R_FK_CNT_7_0_, 0x15);
  387. HDMI_RegisterWrite(HDMIRX_PHY_DIVSLE2, 0);
  388. HDMI_RegisterWrite(HDMIRX_PLL_DIVSEL2, 0);
  389. HDMI_RegisterWrite(HDMIRX_PLL_REFDIV, 0);
  390. }
  391. }
  392. void HDMI_MHL_CABLE_IN(BOOL fIn)
  393. {
  394. if(fIn)
  395. {
  396. MHL_CABLE_IN = TRUE;
  397. }
  398. else
  399. {
  400. MHL_CABLE_IN = FALSE;
  401. }
  402. }
  403. void HDMI_MHL_CTS(BOOL fIn)
  404. {
  405. if(fIn)
  406. {
  407. MHL_CTS = TRUE;
  408. sysset_HDMI_MHL_CBUS_EN_CTS_CTL(TRUE);
  409. }
  410. else
  411. {
  412. MHL_CTS = FALSE;
  413. sysset_HDMI_MHL_CBUS_EN_CTS_CTL(FALSE);
  414. }
  415. }
  416. void HDMI_Reset_HDMI_PLL(void)
  417. {
  418. #ifdef CONFIG_HDMI_SUPPORT_MHL
  419. if((MHL_CABLE_IN == TRUE)&&( DrvHDMIPortSelectBitsGet() == CONFIG_HDMI_MHL_PORT))
  420. {
  421. HDMI_RegisterWrite(HDMIRX_CTL_R_MORECTRLI_15_0_, 0x0020);
  422. HDMI_DelayMs(2);
  423. HDMI_RegisterWrite(HDMIRX_CTL_R_MORECTRLI_15_0_, 0x0038);
  424. }
  425. else
  426. {
  427. HDMI_RegisterWrite(HDMIRX_CTL_R_MORECTRLI_15_0_, 0x0020);
  428. HDMI_DelayMs(2);
  429. HDMI_RegisterWrite(HDMIRX_CTL_R_MORECTRLI_15_0_, 0x0028);
  430. }
  431. #else
  432. HDMI_RegisterWrite(HDMIRX_CTL_R_MORECTRLI_15_0_, 0x0020);
  433. HDMI_DelayMs(2);
  434. HDMI_RegisterWrite(HDMIRX_CTL_R_MORECTRLI_15_0_, 0x0028);
  435. #endif
  436. }
  437. //set force to HDMI mode, (set 1: force HDMI mode)
  438. void HDMI_MHL_RxSense_Term_Debug(BOOL fEn)
  439. {
  440. if(fEn) //force HDMI mode
  441. {
  442. HDMI_RegisterWrite(HDMIRX_R_RTT_INI_5_0_, 0x2d);
  443. HDMI_RegisterWrite(HDMIRX_HDMIP0_Rx_Sense_external, 1);
  444. HDMI_RegisterWrite(HDMIRX_HDMIP0_Rx_Sense_mux, 1);
  445. HDMI_RegisterWrite(HDMIRX_HDMIP1_Rx_Sense_external, 1);
  446. HDMI_RegisterWrite(HDMIRX_HDMIP1_Rx_Sense_mux, 1);
  447. HDMI_RegisterWrite(HDMIRX_HDMIP2_Rx_Sense_external, 1);
  448. HDMI_RegisterWrite(HDMIRX_HDMIP2_Rx_Sense_mux, 1);
  449. HDMI_RegisterWrite(CTRLI_303_272__DW_001C,0x3F3F3FEE);
  450. }
  451. else //auto HDMI or MHL mode
  452. {
  453. HDMI_RegisterWrite(HDMIRX_R_RTT_INI_5_0_, 0x2f);
  454. HDMI_RegisterWrite(HDMIRX_HDMIP0_Rx_Sense_external, 0);
  455. HDMI_RegisterWrite(HDMIRX_HDMIP0_Rx_Sense_mux, 0);
  456. HDMI_RegisterWrite(HDMIRX_HDMIP1_Rx_Sense_external, 0);
  457. HDMI_RegisterWrite(HDMIRX_HDMIP1_Rx_Sense_mux, 0);
  458. HDMI_RegisterWrite(HDMIRX_HDMIP2_Rx_Sense_external, 0);
  459. HDMI_RegisterWrite(HDMIRX_HDMIP2_Rx_Sense_mux, 0);
  460. HDMI_RegisterWrite(CTRLI_303_272__DW_001C,0x00100000);
  461. }
  462. }
  463. extern UINT32 MAX_BCH_ERROR_CNT;
  464. //set HDMI PLL for HDMI/DEMOD
  465. void HDMI_Set_PLL_Mode(HDMI_PLL_MODE_e eHDMI_PLL_MODE)
  466. {
  467. UINT8 bTerm = (UINT8)HDMI_RegisterRead(HDMIRX_PHY_RTT_EN_P_2_0_);
  468. UINT8 bPortSel = (UINT8)HDMI_RegisterRead(HDMIRX_PORT_EN_P2_0);
  469. #ifdef USE_HW_ADAPTIVE_EQ
  470. UINT8 bEQ_FIX = (UINT8)HDMI_RegisterRead(HDMIRX_EQ_VAL_FIX);
  471. UINT8 bHDMIRX_BS2_0 = (UINT8)HDMI_RegisterRead(HDMIRX_bs_2_0_);
  472. #ifndef Manu_EQ_Adjust
  473. UINT8 bHDMIRX_BS3 = (UINT8)HDMI_RegisterRead(HDMIRX_BS3);
  474. #endif
  475. #endif
  476. hdmidbg("[H] %s mode:%d\n", __FUNCTION__, eHDMI_PLL_MODE);
  477. switch(eHDMI_PLL_MODE)
  478. {
  479. /* Common */
  480. case HDMI_PLL_MODE_INIT:
  481. //todo
  482. #if 1 //Set PLL DIV SEL default value to avoid video water wave interfere, junjie.hung suggest in 20140625
  483. HDMI_RegisterWrite(HDMIRX_PLL_FEBDIV_7_0_, 0x2f);
  484. #endif
  485. break;
  486. case HDMI_PLL_MODE_ON:
  487. //todo
  488. break;
  489. case HDMI_PLL_MODE_OFF:
  490. //todo
  491. HDMI_RegisterWrite(CTRLI_31_0__DW_0280 , 0x00080000);
  492. HDMI_RegisterWrite(CTRLI_47_32__DW_0284,0x000001C0);
  493. HDMI_RegisterWrite(CTRLI_79_48__DW_0000,0x00000088);
  494. break;
  495. /* HDMI */
  496. case HDMI_PLL_MODE_HDMI_INIT:
  497. HDMI_RegisterWrite(HDMIRX_PLL_RSTN, 1);
  498. //HDMI_RegisterWrite(HDMIRX_PLL_PWDN_DEMOD, 0);
  499. HDMI_RegisterWrite(HDMIRX_R_SP5_PLL_CTP_PWDJ, 0x1);
  500. HDMI_RegisterWrite(HDMIRX_LDO_PWDE, 0x1);// 1/0 : normal / PD (change define from 331)
  501. HDMI_RegisterWrite(HDMIRX_LDO_PWD, 0x1);// 1/0 : normal / PD (change define from 331)
  502. //HDMI_RegisterWrite(HDMIRX_BIAS_VREF_SF_SEL_1_0_, 3);
  503. HDMI_RegisterWrite(HDMIRX_BIAS_VREF_SF_SEL_1_0_, 1);
  504. HDMI_RegisterWrite(HDMIRX_REG_CPS_CNT_TH0, 0);
  505. //HDMI_RegisterWrite(HDMIRX_debug_port_ext_31_28_, 0);
  506. HDMI_RegisterWrite(HDMIRX_reg_dport_ext, 0);
  507. HDMI_RegisterWrite(HDMIRX_PLL_EN_COMP, 1);
  508. //HDMI_RegisterWrite(HDMIRX_DEMOD_EN, 1);
  509. //HDMI_RegisterWrite(HDMIRX_PLL_RESETJ, 1);
  510. HDMI_RegisterWrite(HDMIRX_PLL_RESETJ, 0);
  511. HDMI_RegisterWrite(HDMIRX_r_zsink_cal_en, 0);
  512. HDMI_RegisterWrite(HDMIRX_REG_CPS_CNT_CLEAR, 0);
  513. HDMI_RegisterWrite(HDMIRX_w_con_1_0_, 0x0);
  514. HDMI_RegisterWrite(HDMIRX_w_con_3_2_, 0x3);
  515. HDMI_RegisterWrite(HDMIRX_w_con5_4, 0x1);
  516. break;
  517. case HDMI_PLL_MODE_HDMI_ENABLE:
  518. sysset_DEMOD_BG_POWER_DOWN(FALSE);
  519. #ifdef USE_HW_ADAPTIVE_EQ
  520. #ifdef CONFIG_HDMI_SUPPORT_MHL
  521. if((MHL_CABLE_IN == TRUE)&&( DrvHDMIPortSelectBitsGet() == CONFIG_HDMI_MHL_PORT))
  522. {
  523. HDMI_RegisterWrite(CTRLI_31_0__DW_0280, 0x997713A0| (bEQ_FIX<<19));//HDMIRX_EQ_VAL_FIX =0
  524. }
  525. else
  526. #endif
  527. {
  528. HDMI_RegisterWrite(CTRLI_31_0__DW_0280, 0x997F13A0);
  529. }
  530. #else
  531. HDMI_RegisterWrite(CTRLI_31_0__DW_0280, 0x997F13A0);
  532. #endif
  533. HDMI_RegisterWrite(CTRLI_47_32__DW_0284,0x9DC6);
  534. HDMI_RegisterWrite(CTRLI_79_48__DW_0000,0xAF002080 | (bTerm<<4) | bPortSel);
  535. HDMI_RegisterWrite(CTRLI_111_80__DW_0004,0x00000001);
  536. HDMI_RegisterWrite(CTRLI_143_112__DW_0008,0x0F010000);
  537. HDMI_RegisterWrite(CTRLI_175_144__DW_000C,0x1E100F0F);//533 18->1E
  538. HDMI_RegisterWrite(CTRLI_207_176__DW_0010,0x403F001F);//533 1C->1F
  539. HDMI_RegisterWrite(CTRLI_239_208__DW_0014,0x0);
  540. HDMI_RegisterWrite(CTRLI_271_240__DW_0018,0x0);
  541. HDMI_RegisterWrite(CTRLI_303_272__DW_001C,0x3F1018EE);//PLL from loop 533 3F->18
  542. HDMI_RegisterWrite(CTRLI_335_304__DW_0258,0x000E0010);
  543. HDMI_RegisterWrite(CTRLI_375_344__DW_0260,0x691900E0);//Turn RTT_CM 533 00->EO
  544. HDMI_RegisterWrite(CTRLI_407_376__DW_0264,0xDADA1800);
  545. HDMI_RegisterWrite(CTRLI_439_408__DW_0268,0x5AFABA5A);
  546. HDMI_RegisterWrite(CTRLI_471_440__DW_026C,0x0A3A3A3A);
  547. HDMI_RegisterWrite(CTRLI_503_472__DW_0270,0x011F1A0F);
  548. HDMI_RegisterWrite(CTRLI_535_504__DW_0274,0x05010101);
  549. #ifdef USE_HW_ADAPTIVE_EQ
  550. #ifdef CONFIG_HDMI_SUPPORT_MHL
  551. if((MHL_CABLE_IN == TRUE)&&( DrvHDMIPortSelectBitsGet() == CONFIG_HDMI_MHL_PORT))
  552. {
  553. HDMI_RegisterWrite(CTRLI_567_536__DW_0278,0x73C10F40);
  554. HDMI_RegisterWrite(CTRLI_599_568__DW_027C,0xFF06F023);//HDMIRX_R_SP5_PLL_CTP_PWDJ =1
  555. }
  556. else
  557. #endif
  558. {
  559. if(bEQ_FIX==0)
  560. {
  561. bHDMIRX_BS2_0 = 7;
  562. //HDMI_RegisterWrite(CTRLI_567_536__DW_0278,0x23C10F40);
  563. HDMI_RegisterWrite(CTRLI_567_536__DW_0278,0x03C10F40|(bHDMIRX_BS2_0<<28));
  564. //HDMI_RegisterWrite(CTRLI_599_568__DW_027C,0x0F06F023);//HDMIRX_R_SP5_PLL_CTP_PWDJ =1
  565. HDMI_RegisterWrite(CTRLI_599_568__DW_027C,0xF806F023);//HDMIRX_R_SP5_PLL_CTP_PWDJ =1
  566. }
  567. else
  568. {
  569. HDMI_RegisterWrite(CTRLI_567_536__DW_0278,0x73C10F40);
  570. HDMI_RegisterWrite(CTRLI_599_568__DW_027C,0xFF06F023);//HDMIRX_R_SP5_PLL_CTP_PWDJ =1
  571. }
  572. }
  573. #else
  574. HDMI_RegisterWrite(CTRLI_567_536__DW_0278,0x23C10F40);
  575. HDMI_RegisterWrite(CTRLI_599_568__DW_027C,0x0F06F023);//HDMIRX_R_SP5_PLL_CTP_PWDJ =1
  576. #endif
  577. #ifndef Manu_EQ_Adjust
  578. //FIX EQ setting
  579. HDMI_RegisterWrite(CTRLI_631_600__DW_0430,0x77722077);
  580. HDMI_RegisterWrite(CTRLI_663_632__DW_0434,0x20777220);
  581. #ifdef USE_HW_ADAPTIVE_EQ
  582. //HDMI_RegisterWrite(CTRLI_695_664__DW_0438,0x00000072);
  583. #ifdef CONFIG_HDMI_SUPPORT_MHL
  584. if((MHL_CABLE_IN == TRUE)&&( DrvHDMIPortSelectBitsGet() == CONFIG_HDMI_MHL_PORT))
  585. {
  586. HDMI_RegisterWrite(CTRLI_695_664__DW_0438,0x00000072);
  587. }
  588. else
  589. #endif
  590. {
  591. HDMI_RegisterWrite(CTRLI_695_664__DW_0438,0x00002072|(bHDMIRX_BS3<<16));
  592. }
  593. #else
  594. HDMI_RegisterWrite(CTRLI_695_664__DW_0438,0x00000072);
  595. #endif
  596. #endif
  597. break;
  598. case HDMI_PLL_MODE_HDMI_DISABLE:
  599. sysset_DEMOD_BG_POWER_DOWN(TRUE);
  600. #ifdef USE_HW_ADAPTIVE_EQ
  601. #ifdef CONFIG_HDMI_SUPPORT_MHL
  602. if((MHL_CABLE_IN == TRUE)&&( DrvHDMIPortSelectBitsGet() == CONFIG_HDMI_MHL_PORT))
  603. {
  604. HDMI_RegisterWrite(CTRLI_31_0__DW_0280 , 0x00080000);
  605. }
  606. else
  607. #endif
  608. {
  609. HDMI_RegisterWrite(CTRLI_31_0__DW_0280 , 0x00000000| (bEQ_FIX<<19));
  610. }
  611. #else
  612. HDMI_RegisterWrite(CTRLI_31_0__DW_0280 , 0x00080000);
  613. #endif
  614. HDMI_RegisterWrite(CTRLI_47_32__DW_0284,0x00000100);
  615. HDMI_RegisterWrite(CTRLI_79_48__DW_0000,0x00000088 | (bTerm<<4) | bPortSel);
  616. HDMI_RegisterWrite(CTRLI_111_80__DW_0004,0x0);
  617. HDMI_RegisterWrite(CTRLI_143_112__DW_0008,0x0);
  618. HDMI_RegisterWrite(CTRLI_175_144__DW_000C,0x0);
  619. HDMI_RegisterWrite(CTRLI_207_176__DW_0010,0x0);
  620. HDMI_RegisterWrite(CTRLI_239_208__DW_0014,0x0);
  621. HDMI_RegisterWrite(CTRLI_271_240__DW_0018,0x0);
  622. HDMI_RegisterWrite(CTRLI_303_272__DW_001C,0x0);
  623. HDMI_RegisterWrite(CTRLI_335_304__DW_0258,0x0);
  624. HDMI_RegisterWrite(CTRLI_375_344__DW_0260,0x40400E0);
  625. HDMI_RegisterWrite(CTRLI_407_376__DW_0264,0x0);
  626. HDMI_RegisterWrite(CTRLI_439_408__DW_0268,0x0);
  627. HDMI_RegisterWrite(CTRLI_471_440__DW_026C,0x0);
  628. HDMI_RegisterWrite(CTRLI_503_472__DW_0270,0x0);
  629. HDMI_RegisterWrite(CTRLI_535_504__DW_0274,0x0);
  630. #ifdef USE_HW_ADAPTIVE_EQ
  631. #ifdef CONFIG_HDMI_SUPPORT_MHL
  632. if((MHL_CABLE_IN == TRUE)&&( DrvHDMIPortSelectBitsGet() == CONFIG_HDMI_MHL_PORT))
  633. {
  634. HDMI_RegisterWrite(CTRLI_567_536__DW_0278,0x0);
  635. }
  636. else
  637. #endif
  638. {
  639. HDMI_RegisterWrite(CTRLI_567_536__DW_0278,0x0|(bHDMIRX_BS2_0<<28));
  640. }
  641. #else
  642. HDMI_RegisterWrite(CTRLI_567_536__DW_0278,0x0);
  643. #endif
  644. HDMI_RegisterWrite(CTRLI_599_568__DW_027C,0x0);
  645. break;
  646. case HDMI_PLL_MODE_HDMI_FREQ_6:
  647. //TMDS Clk < 15.6Mhz
  648. HDMI_RegisterWrite(HDMIRX_EQ_ICTL0, 0x0);
  649. HDMI_RegisterWrite(HDMIRX_EQ_ICTL1, 0x1);
  650. HDMI_RegisterWrite(HDMIRX_PHY_IB_CT_CK, 0x2);
  651. HDMI_RegisterWrite(HDMIRX_PLL_ICTRL_3_0_, 0x3);
  652. HDMI_RegisterWrite(HDMIRX_PLL_EN_FDIV, 0);
  653. HDMI_RegisterWrite(HDMIRX_PLL_GB_4_0_, 0x6);
  654. HDMI_RegisterWrite(HDMIRX_PLL_GB_5, 1);//For 533 PFD_PWDJ
  655. HDMI_RegisterWrite(HDMIRX_PHY_DIVSLE2, 1);
  656. HDMI_RegisterWrite(HDMIRX_PLL_DIVSEL2, 1);
  657. HDMI_RegisterWrite(HDMIRX_PLL_REFDIV, 0);
  658. HDMI_RegisterWrite(HDMIRX_R_BYTE_ALIGN_CNT2, 4);
  659. if(HDMI_EQ_MODE_INDEX==HDMI_EQ_INDEX_DEFAULT)
  660. {
  661. //HDMI_RegisterWrite(HDMIRX_PHY_EQC0, 7);
  662. //HDMI_RegisterWrite(HDMIRX_PHY_EQC1, 7);
  663. //HDMI_RegisterWrite(HDMIRX_PHY_EQDC0_0, 1);
  664. //HDMI_RegisterWrite(HDMIRX_PHY_EQDC0_1, 0);
  665. //HDMI_RegisterWrite(HDMIRX_PHY_EQDC1, 1);
  666. //HDMI_RegisterWrite(HDMIRX_PHY_EQDC0_2, 0);
  667. #ifndef Manu_EQ_Adjust
  668. HDMI_RegisterWrite(CTRLI_631_600__DW_0430,0x77722077);
  669. HDMI_RegisterWrite(CTRLI_663_632__DW_0434,0x20777220);
  670. #ifdef USE_HW_ADAPTIVE_EQ
  671. #ifdef CONFIG_HDMI_SUPPORT_MHL
  672. if((MHL_CABLE_IN == TRUE)&&( DrvHDMIPortSelectBitsGet() == CONFIG_HDMI_MHL_PORT))
  673. {
  674. HDMI_RegisterWrite(CTRLI_695_664__DW_0438,0x00000072);
  675. }
  676. else
  677. #endif
  678. {
  679. bHDMIRX_BS3 = 1;
  680. bHDMIRX_BS2_0 = 4;//bHDMIRX_BS2_0 = 3;
  681. HDMI_RegisterWrite(HDMIRX_bs_2_0_, bHDMIRX_BS2_0);
  682. //HDMI_RegisterWrite(CTRLI_695_664__DW_0438,0x00000072);
  683. //HDMI_RegisterWrite(CTRLI_695_664__DW_0438,0x00012072);
  684. HDMI_RegisterWrite(CTRLI_695_664__DW_0438,0x00002072|(bHDMIRX_BS3<<16));
  685. }
  686. #else
  687. HDMI_RegisterWrite(CTRLI_695_664__DW_0438,0x00000072);
  688. #endif
  689. HDMI_RegisterWrite(HDMIRX_R_SP1_EQ_OUT_VREF0,1);
  690. HDMI_RegisterWrite(HDMIRX_R_SP1_EQ_OUT_VREF1,1);
  691. HDMI_RegisterWrite(HDMIRX_BIAS_VREF_SF_SEL_1_0_, 2);
  692. HDMI_RegisterWrite(HDMIRX_EQ_VDC_SEL, 0);
  693. //HDMI_RegisterWrite(HDMIRX_R_SP2, 1);
  694. //HDMI_RegisterWrite(HDMIRX_R_SP3, 0);
  695. #endif
  696. }
  697. else
  698. {
  699. HDMI_Set_EQ_Mode(HDMI_EQ_MODE_INDEX);
  700. }
  701. HDMI_RegisterWrite(HDMIRX_taps_0, 1);
  702. HDMI_RegisterWrite(HDMIRX_lowlmt, 1);
  703. MAX_BCH_ERROR_CNT = 0x80;
  704. break;
  705. case HDMI_PLL_MODE_HDMI_FREQ_7_E:
  706. //18.2Mhz <TMDS Clk < 36.4Mhz
  707. HDMI_RegisterWrite(HDMIRX_EQ_ICTL0, 0x0);
  708. HDMI_RegisterWrite(HDMIRX_EQ_ICTL1, 0x1);
  709. HDMI_RegisterWrite(HDMIRX_PHY_IB_CT_CK, 0x2);
  710. HDMI_RegisterWrite(HDMIRX_PLL_ICTRL_3_0_, 0x3);
  711. HDMI_RegisterWrite(HDMIRX_PLL_EN_FDIV, 0);
  712. HDMI_RegisterWrite(HDMIRX_PLL_GB_4_0_, 0x6);
  713. HDMI_RegisterWrite(HDMIRX_PLL_GB_5, 1);//For 533 PFD_PWDJ
  714. HDMI_RegisterWrite(HDMIRX_PHY_DIVSLE2, 0);
  715. HDMI_RegisterWrite(HDMIRX_PLL_DIVSEL2, 0);
  716. HDMI_RegisterWrite(HDMIRX_PLL_REFDIV, 0);
  717. HDMI_RegisterWrite(HDMIRX_R_BYTE_ALIGN_CNT2, 4);
  718. if(HDMI_EQ_MODE_INDEX==HDMI_EQ_INDEX_DEFAULT)
  719. {
  720. //HDMI_RegisterWrite(HDMIRX_PHY_EQC0, 7);
  721. //HDMI_RegisterWrite(HDMIRX_PHY_EQC1, 7);
  722. //HDMI_RegisterWrite(HDMIRX_PHY_EQDC0_0, 1);
  723. //HDMI_RegisterWrite(HDMIRX_PHY_EQDC0_1, 1);
  724. //HDMI_RegisterWrite(HDMIRX_PHY_EQDC1, 3);
  725. //HDMI_RegisterWrite(HDMIRX_PHY_EQDC0_2, 0);
  726. #ifndef Manu_EQ_Adjust
  727. HDMI_RegisterWrite(CTRLI_631_600__DW_0430,0x77722077);
  728. HDMI_RegisterWrite(CTRLI_663_632__DW_0434,0x20777220);
  729. #ifdef USE_HW_ADAPTIVE_EQ
  730. #ifdef CONFIG_HDMI_SUPPORT_MHL
  731. if((MHL_CABLE_IN == TRUE)&&( DrvHDMIPortSelectBitsGet() == CONFIG_HDMI_MHL_PORT))
  732. {
  733. HDMI_RegisterWrite(CTRLI_695_664__DW_0438,0x00000072);
  734. }
  735. else
  736. #endif
  737. {
  738. bHDMIRX_BS3 = 1;
  739. bHDMIRX_BS2_0 = 3; //bHDMIRX_BS2_0 = 2;
  740. HDMI_RegisterWrite(HDMIRX_bs_2_0_, bHDMIRX_BS2_0);
  741. //HDMI_RegisterWrite(CTRLI_695_664__DW_0438,0x00000072);
  742. //HDMI_RegisterWrite(CTRLI_695_664__DW_0438,0x00012072);
  743. HDMI_RegisterWrite(CTRLI_695_664__DW_0438,0x00002072|(bHDMIRX_BS3<<16));
  744. }
  745. #else
  746. HDMI_RegisterWrite(CTRLI_695_664__DW_0438,0x00000072);
  747. #endif
  748. HDMI_RegisterWrite(HDMIRX_R_SP1_EQ_OUT_VREF0,1);
  749. HDMI_RegisterWrite(HDMIRX_R_SP1_EQ_OUT_VREF1,1);
  750. HDMI_RegisterWrite(HDMIRX_BIAS_VREF_SF_SEL_1_0_, 2);
  751. HDMI_RegisterWrite(HDMIRX_EQ_VDC_SEL, 0);
  752. //HDMI_RegisterWrite(HDMIRX_R_SP2, 1);
  753. //HDMI_RegisterWrite(HDMIRX_R_SP3, 0);
  754. #endif
  755. }
  756. else
  757. {
  758. HDMI_Set_EQ_Mode(HDMI_EQ_MODE_INDEX);
  759. }
  760. HDMI_RegisterWrite(HDMIRX_taps_0, 1);
  761. HDMI_RegisterWrite(HDMIRX_lowlmt, 1);
  762. MAX_BCH_ERROR_CNT = 0x80;
  763. break;
  764. case HDMI_PLL_MODE_HDMI_FREQ_F_1E:
  765. //39Mhz <TMDS Clk < 78Mhz
  766. HDMI_RegisterWrite(HDMIRX_EQ_ICTL0, 0x0);
  767. HDMI_RegisterWrite(HDMIRX_EQ_ICTL1, 0x1);
  768. HDMI_RegisterWrite(HDMIRX_PHY_IB_CT_CK, 0x2);
  769. HDMI_RegisterWrite(HDMIRX_PLL_ICTRL_3_0_, 0x3);
  770. HDMI_RegisterWrite(HDMIRX_PLL_EN_FDIV, 0);
  771. HDMI_RegisterWrite(HDMIRX_PLL_GB_4_0_, 0x06);
  772. HDMI_RegisterWrite(HDMIRX_PLL_GB_5, 1);//For 533 PFD_PWDJ
  773. HDMI_RegisterWrite(HDMIRX_PHY_DIVSLE2, 0);
  774. HDMI_RegisterWrite(HDMIRX_PLL_DIVSEL2, 0);
  775. HDMI_RegisterWrite(HDMIRX_PLL_REFDIV, 0);
  776. HDMI_RegisterWrite(HDMIRX_R_BYTE_ALIGN_CNT2, 4);
  777. if(HDMI_EQ_MODE_INDEX==HDMI_EQ_INDEX_DEFAULT)
  778. {
  779. //HDMI_RegisterWrite(HDMIRX_PHY_EQC0, 7);
  780. //HDMI_RegisterWrite(HDMIRX_PHY_EQC1, 7);
  781. //HDMI_RegisterWrite(HDMIRX_PHY_EQDC0_0, 1);
  782. //HDMI_RegisterWrite(HDMIRX_PHY_EQDC0_1, 0);
  783. //HDMI_RegisterWrite(HDMIRX_PHY_EQDC1, 1);
  784. //HDMI_RegisterWrite(HDMIRX_PHY_EQDC0_2, 0);
  785. #ifndef Manu_EQ_Adjust
  786. HDMI_RegisterWrite(CTRLI_631_600__DW_0430,0x77722077);
  787. HDMI_RegisterWrite(CTRLI_663_632__DW_0434,0x20777220);
  788. #ifdef USE_HW_ADAPTIVE_EQ
  789. #ifdef CONFIG_HDMI_SUPPORT_MHL
  790. if((MHL_CABLE_IN == TRUE)&&( DrvHDMIPortSelectBitsGet() == CONFIG_HDMI_MHL_PORT))
  791. {
  792. HDMI_RegisterWrite(CTRLI_695_664__DW_0438,0x00000072);
  793. }
  794. else
  795. #endif
  796. {
  797. bHDMIRX_BS3 = 1;
  798. bHDMIRX_BS2_0 = 0;
  799. HDMI_RegisterWrite(HDMIRX_bs_2_0_, bHDMIRX_BS2_0);
  800. //HDMI_RegisterWrite(CTRLI_695_664__DW_0438,0x00000072);
  801. //HDMI_RegisterWrite(CTRLI_695_664__DW_0438,0x00012072);
  802. HDMI_RegisterWrite(CTRLI_695_664__DW_0438,0x00002072|(bHDMIRX_BS3<<16));
  803. }
  804. #else
  805. HDMI_RegisterWrite(CTRLI_695_664__DW_0438,0x00000072);
  806. #endif
  807. HDMI_RegisterWrite(HDMIRX_R_SP1_EQ_OUT_VREF0,1);
  808. HDMI_RegisterWrite(HDMIRX_R_SP1_EQ_OUT_VREF1,1);
  809. HDMI_RegisterWrite(HDMIRX_BIAS_VREF_SF_SEL_1_0_, 2);
  810. HDMI_RegisterWrite(HDMIRX_EQ_VDC_SEL, 0);
  811. //HDMI_RegisterWrite(HDMIRX_R_SP2, 1);
  812. //HDMI_RegisterWrite(HDMIRX_R_SP3, 0);
  813. #endif
  814. }
  815. else
  816. {
  817. HDMI_Set_EQ_Mode(HDMI_EQ_MODE_INDEX);
  818. }
  819. HDMI_RegisterWrite(HDMIRX_taps_0, 1);
  820. HDMI_RegisterWrite(HDMIRX_lowlmt, 1);
  821. MAX_BCH_ERROR_CNT = 0x1000;
  822. break;
  823. case HDMI_PLL_MODE_HDMI_FREQ_1F_32:
  824. //80.6Mhz <TMDS Clk < 130Mhz
  825. HDMI_RegisterWrite(HDMIRX_EQ_ICTL0, 0x0);
  826. HDMI_RegisterWrite(HDMIRX_EQ_ICTL1, 0x1);
  827. HDMI_RegisterWrite(HDMIRX_PHY_IB_CT_CK, 0x2);
  828. HDMI_RegisterWrite(HDMIRX_PLL_ICTRL_3_0_, 0x3);
  829. HDMI_RegisterWrite(HDMIRX_PLL_EN_FDIV, 0);
  830. HDMI_RegisterWrite(HDMIRX_PLL_GB_4_0_, 0x06);
  831. HDMI_RegisterWrite(HDMIRX_PLL_GB_5, 1);//For 533 PFD_PWDJ
  832. HDMI_RegisterWrite(HDMIRX_PHY_DIVSLE2, 0);
  833. HDMI_RegisterWrite(HDMIRX_PLL_DIVSEL2, 0);
  834. HDMI_RegisterWrite(HDMIRX_PLL_REFDIV, 0);
  835. HDMI_RegisterWrite(HDMIRX_R_BYTE_ALIGN_CNT2, 4);
  836. if(HDMI_EQ_MODE_INDEX==HDMI_EQ_INDEX_DEFAULT)
  837. {
  838. //HDMI_RegisterWrite(HDMIRX_PHY_EQC0, 7);
  839. //HDMI_RegisterWrite(HDMIRX_PHY_EQC1, 7);
  840. //HDMI_RegisterWrite(HDMIRX_PHY_EQDC0_0, 1);
  841. //HDMI_RegisterWrite(HDMIRX_PHY_EQDC0_1, 0);
  842. //HDMI_RegisterWrite(HDMIRX_PHY_EQDC1, 1);
  843. //HDMI_RegisterWrite(HDMIRX_PHY_EQDC0_2, 0);
  844. #ifndef Manu_EQ_Adjust
  845. HDMI_RegisterWrite(CTRLI_631_600__DW_0430,0x77722077);
  846. HDMI_RegisterWrite(CTRLI_663_632__DW_0434,0x20777220);
  847. #ifdef USE_HW_ADAPTIVE_EQ
  848. #ifdef CONFIG_HDMI_SUPPORT_MHL
  849. if((MHL_CABLE_IN == TRUE)&&( DrvHDMIPortSelectBitsGet() == CONFIG_HDMI_MHL_PORT))
  850. {
  851. HDMI_RegisterWrite(CTRLI_695_664__DW_0438,0x00000072);
  852. }
  853. else
  854. #endif
  855. {
  856. bHDMIRX_BS3 = 1;
  857. bHDMIRX_BS2_0 = 0;
  858. HDMI_RegisterWrite(HDMIRX_bs_2_0_, bHDMIRX_BS2_0);
  859. //HDMI_RegisterWrite(CTRLI_695_664__DW_0438,0x00000072);
  860. //HDMI_RegisterWrite(CTRLI_695_664__DW_0438,0x00012072);
  861. HDMI_RegisterWrite(CTRLI_695_664__DW_0438,0x00002072|(bHDMIRX_BS3<<16));
  862. }
  863. #else
  864. HDMI_RegisterWrite(CTRLI_695_664__DW_0438,0x00000072);
  865. #endif
  866. HDMI_RegisterWrite(HDMIRX_R_SP1_EQ_OUT_VREF0,1);
  867. HDMI_RegisterWrite(HDMIRX_R_SP1_EQ_OUT_VREF1,1);
  868. HDMI_RegisterWrite(HDMIRX_BIAS_VREF_SF_SEL_1_0_, 2);
  869. HDMI_RegisterWrite(HDMIRX_EQ_VDC_SEL, 0);
  870. //HDMI_RegisterWrite(HDMIRX_R_SP2, 1);
  871. //HDMI_RegisterWrite(HDMIRX_R_SP3, 0);
  872. #endif
  873. }
  874. else
  875. {
  876. HDMI_Set_EQ_Mode(HDMI_EQ_MODE_INDEX);
  877. }
  878. HDMI_RegisterWrite(HDMIRX_taps_0, 1);
  879. HDMI_RegisterWrite(HDMIRX_lowlmt, 1);
  880. MAX_BCH_ERROR_CNT = 0x1800;
  881. break;
  882. case HDMI_PLL_MODE_HDMI_FREQ_33_3F:
  883. //132.6Mhz <TMDS Clk < 163.8Mhz
  884. HDMI_RegisterWrite(HDMIRX_EQ_ICTL0, 0x0);
  885. HDMI_RegisterWrite(HDMIRX_EQ_ICTL1, 0x1);
  886. HDMI_RegisterWrite(HDMIRX_PHY_IB_CT_CK, 0x2);
  887. HDMI_RegisterWrite(HDMIRX_PLL_ICTRL_3_0_, 0x2);
  888. HDMI_RegisterWrite(HDMIRX_PLL_EN_FDIV, 0);
  889. HDMI_RegisterWrite(HDMIRX_PLL_GB_4_0_, 0x6);
  890. HDMI_RegisterWrite(HDMIRX_PLL_GB_5, 1);//For 533 PFD_PWDJ
  891. HDMI_RegisterWrite(HDMIRX_PHY_DIVSLE2, 0);
  892. HDMI_RegisterWrite(HDMIRX_PLL_DIVSEL2, 0);
  893. HDMI_RegisterWrite(HDMIRX_PLL_REFDIV, 0);
  894. HDMI_RegisterWrite(HDMIRX_R_BYTE_ALIGN_CNT2, 4);
  895. if(HDMI_EQ_MODE_INDEX==HDMI_EQ_INDEX_DEFAULT)
  896. {
  897. //HDMI_RegisterWrite(HDMIRX_PHY_EQC0, 7);
  898. //HDMI_RegisterWrite(HDMIRX_PHY_EQC1, 7);
  899. //HDMI_RegisterWrite(HDMIRX_PHY_EQDC0_0, 1);
  900. //HDMI_RegisterWrite(HDMIRX_PHY_EQDC0_1, 0);
  901. //HDMI_RegisterWrite(HDMIRX_PHY_EQDC1, 1);
  902. //HDMI_RegisterWrite(HDMIRX_PHY_EQDC0_2, 0);
  903. #ifndef Manu_EQ_Adjust
  904. HDMI_RegisterWrite(CTRLI_631_600__DW_0430,0x77722077);
  905. HDMI_RegisterWrite(CTRLI_663_632__DW_0434,0x20777220);
  906. #ifdef USE_HW_ADAPTIVE_EQ
  907. #ifdef CONFIG_HDMI_SUPPORT_MHL
  908. if((MHL_CABLE_IN == TRUE)&&( DrvHDMIPortSelectBitsGet() == CONFIG_HDMI_MHL_PORT))
  909. {
  910. HDMI_RegisterWrite(CTRLI_695_664__DW_0438,0x00000072);
  911. }
  912. #endif
  913. {
  914. bHDMIRX_BS3 = 1;
  915. bHDMIRX_BS2_0 = 0;
  916. HDMI_RegisterWrite(HDMIRX_bs_2_0_, bHDMIRX_BS2_0);
  917. //HDMI_RegisterWrite(CTRLI_695_664__DW_0438,0x00000072);
  918. //HDMI_RegisterWrite(CTRLI_695_664__DW_0438,0x00012072);
  919. HDMI_RegisterWrite(CTRLI_695_664__DW_0438,0x00002072|(bHDMIRX_BS3<<16));
  920. }
  921. #else
  922. HDMI_RegisterWrite(CTRLI_695_664__DW_0438,0x00000072);
  923. #endif
  924. HDMI_RegisterWrite(HDMIRX_R_SP1_EQ_OUT_VREF0,1);
  925. HDMI_RegisterWrite(HDMIRX_R_SP1_EQ_OUT_VREF1,1);
  926. HDMI_RegisterWrite(HDMIRX_BIAS_VREF_SF_SEL_1_0_, 2);
  927. HDMI_RegisterWrite(HDMIRX_EQ_VDC_SEL, 0);
  928. //HDMI_RegisterWrite(HDMIRX_R_SP2, 1);
  929. //HDMI_RegisterWrite(HDMIRX_R_SP3, 0);
  930. #endif
  931. }
  932. else
  933. {
  934. HDMI_Set_EQ_Mode(HDMI_EQ_MODE_INDEX);
  935. }
  936. HDMI_RegisterWrite(HDMIRX_taps_0, 1);
  937. HDMI_RegisterWrite(HDMIRX_lowlmt, 1);
  938. MAX_BCH_ERROR_CNT = 0x1800;
  939. break;
  940. case HDMI_PLL_MODE_HDMI_FREQ_40_60:
  941. //166.4Mhz <TMDS Clk < 249.6Mhz
  942. HDMI_RegisterWrite(HDMIRX_EQ_ICTL0, 0x0);
  943. HDMI_RegisterWrite(HDMIRX_EQ_ICTL1, 0x1);
  944. HDMI_RegisterWrite(HDMIRX_PHY_IB_CT_CK, 0x2);
  945. HDMI_RegisterWrite(HDMIRX_PLL_ICTRL_3_0_, 0x3);
  946. HDMI_RegisterWrite(HDMIRX_PLL_EN_FDIV, 0);
  947. HDMI_RegisterWrite(HDMIRX_PLL_GB_4_0_, 0x6);
  948. HDMI_RegisterWrite(HDMIRX_PLL_GB_5, 1);//For 533 PFD_PWDJ
  949. HDMI_RegisterWrite(HDMIRX_PHY_DIVSLE2, 0);
  950. HDMI_RegisterWrite(HDMIRX_PLL_DIVSEL2, 0);
  951. HDMI_RegisterWrite(HDMIRX_PLL_REFDIV, 1);
  952. HDMI_RegisterWrite(HDMIRX_R_BYTE_ALIGN_CNT2, 4);
  953. if(HDMI_EQ_MODE_INDEX==HDMI_EQ_INDEX_DEFAULT)
  954. {
  955. //HDMI_RegisterWrite(HDMIRX_PHY_EQC0, 4);
  956. //HDMI_RegisterWrite(HDMIRX_PHY_EQC1, 4);
  957. //HDMI_RegisterWrite(HDMIRX_PHY_EQDC0_0, 1);
  958. //HDMI_RegisterWrite(HDMIRX_PHY_EQDC0_1, 0);
  959. //HDMI_RegisterWrite(HDMIRX_PHY_EQDC1, 1);
  960. //HDMI_RegisterWrite(HDMIRX_PHY_EQDC0_2, 0);
  961. #ifndef Manu_EQ_Adjust
  962. HDMI_RegisterWrite(CTRLI_631_600__DW_0430,0x44733044);
  963. HDMI_RegisterWrite(CTRLI_663_632__DW_0434,0x30447330);
  964. #ifdef USE_HW_ADAPTIVE_EQ
  965. #ifdef CONFIG_HDMI_SUPPORT_MHL
  966. if((MHL_CABLE_IN == TRUE)&&( DrvHDMIPortSelectBitsGet() == CONFIG_HDMI_MHL_PORT))
  967. {
  968. HDMI_RegisterWrite(CTRLI_695_664__DW_0438,0x00000072);
  969. }
  970. else
  971. #endif
  972. {
  973. bHDMIRX_BS3 = 0;
  974. bHDMIRX_BS2_0 = 7;
  975. HDMI_RegisterWrite(HDMIRX_bs_2_0_, bHDMIRX_BS2_0);
  976. //HDMI_RegisterWrite(CTRLI_695_664__DW_0438,0x00000072);
  977. //HDMI_RegisterWrite(CTRLI_695_664__DW_0438,0x00012072);
  978. HDMI_RegisterWrite(CTRLI_695_664__DW_0438,0x00002072|(bHDMIRX_BS3<<16));
  979. }
  980. #else
  981. HDMI_RegisterWrite(CTRLI_695_664__DW_0438,0x00000072);
  982. #endif
  983. HDMI_RegisterWrite(HDMIRX_R_SP1_EQ_OUT_VREF0,1);
  984. HDMI_RegisterWrite(HDMIRX_R_SP1_EQ_OUT_VREF1,1);
  985. HDMI_RegisterWrite(HDMIRX_BIAS_VREF_SF_SEL_1_0_, 2);
  986. HDMI_RegisterWrite(HDMIRX_EQ_VDC_SEL, 0);
  987. //HDMI_RegisterWrite(HDMIRX_R_SP2, 1);
  988. //HDMI_RegisterWrite(HDMIRX_R_SP3, 0);
  989. #endif
  990. }
  991. else
  992. {
  993. HDMI_Set_EQ_Mode(HDMI_EQ_MODE_INDEX);
  994. }
  995. HDMI_RegisterWrite(HDMIRX_taps_0, 0);
  996. HDMI_RegisterWrite(HDMIRX_lowlmt, 0);
  997. MAX_BCH_ERROR_CNT = 0x3200;
  998. break;
  999. case HDMI_PLL_MODE_HDMI_FREQ_61:
  1000. //252.2Mhz <TMDS Clk
  1001. HDMI_RegisterWrite(HDMIRX_EQ_ICTL0, 0x1);
  1002. HDMI_RegisterWrite(HDMIRX_EQ_ICTL1, 0x1);
  1003. HDMI_RegisterWrite(HDMIRX_PHY_IB_CT_CK, 0x0);
  1004. HDMI_RegisterWrite(HDMIRX_PLL_ICTRL_3_0_, 0x2);
  1005. HDMI_RegisterWrite(HDMIRX_PLL_EN_FDIV, 0);
  1006. HDMI_RegisterWrite(HDMIRX_PLL_GB_4_0_, 0x6);
  1007. HDMI_RegisterWrite(HDMIRX_PLL_GB_5, 1);//For 533 PFD_PWDJ
  1008. HDMI_RegisterWrite(HDMIRX_PHY_DIVSLE2, 0);
  1009. HDMI_RegisterWrite(HDMIRX_PLL_DIVSEL2, 0);
  1010. HDMI_RegisterWrite(HDMIRX_PLL_REFDIV, 1);
  1011. HDMI_RegisterWrite(HDMIRX_R_BYTE_ALIGN_CNT2, 4);
  1012. if(HDMI_EQ_MODE_INDEX==HDMI_EQ_INDEX_DEFAULT)
  1013. {
  1014. //HDMI_RegisterWrite(HDMIRX_PHY_EQC0, 4);
  1015. //HDMI_RegisterWrite(HDMIRX_PHY_EQC1, 4);
  1016. //HDMI_RegisterWrite(HDMIRX_PHY_EQDC0_0, 1);
  1017. //HDMI_RegisterWrite(HDMIRX_PHY_EQDC0_1, 0);
  1018. //HDMI_RegisterWrite(HDMIRX_PHY_EQDC1, 1);
  1019. //HDMI_RegisterWrite(HDMIRX_PHY_EQDC0_2, 0);
  1020. #ifndef Manu_EQ_Adjust
  1021. HDMI_RegisterWrite(CTRLI_631_600__DW_0430,0x33722033);
  1022. HDMI_RegisterWrite(CTRLI_663_632__DW_0434,0x20337220);
  1023. #ifdef USE_HW_ADAPTIVE_EQ
  1024. #ifdef CONFIG_HDMI_SUPPORT_MHL
  1025. if((MHL_CABLE_IN == TRUE)&&( DrvHDMIPortSelectBitsGet() == CONFIG_HDMI_MHL_PORT))
  1026. {
  1027. HDMI_RegisterWrite(CTRLI_695_664__DW_0438,0x00000072);
  1028. }
  1029. else
  1030. #endif
  1031. {
  1032. bHDMIRX_BS3 = 0;
  1033. bHDMIRX_BS2_0 = 7;
  1034. HDMI_RegisterWrite(HDMIRX_bs_2_0_, bHDMIRX_BS2_0);
  1035. //HDMI_RegisterWrite(CTRLI_695_664__DW_0438,0x00000072);
  1036. //HDMI_RegisterWrite(CTRLI_695_664__DW_0438,0x00012072);
  1037. HDMI_RegisterWrite(CTRLI_695_664__DW_0438,0x00002072|(bHDMIRX_BS3<<16));
  1038. }
  1039. #else
  1040. HDMI_RegisterWrite(CTRLI_695_664__DW_0438,0x00000072);
  1041. #endif
  1042. HDMI_RegisterWrite(HDMIRX_R_SP1_EQ_OUT_VREF0,1);
  1043. HDMI_RegisterWrite(HDMIRX_R_SP1_EQ_OUT_VREF1,1);
  1044. HDMI_RegisterWrite(HDMIRX_BIAS_VREF_SF_SEL_1_0_, 2);
  1045. HDMI_RegisterWrite(HDMIRX_EQ_VDC_SEL, 0);
  1046. //HDMI_RegisterWrite(HDMIRX_R_SP2, 1);
  1047. //HDMI_RegisterWrite(HDMIRX_R_SP3, 0);
  1048. #endif
  1049. }
  1050. else
  1051. {
  1052. HDMI_Set_EQ_Mode(HDMI_EQ_MODE_INDEX);
  1053. }
  1054. HDMI_RegisterWrite(HDMIRX_taps_0, 0);
  1055. HDMI_RegisterWrite(HDMIRX_lowlmt, 0);
  1056. MAX_BCH_ERROR_CNT = 0x3200;
  1057. break;
  1058. /* DEMOD */
  1059. case HDMI_PLL_MODE_ADEMOD_INIT:
  1060. HDMI_RegisterWrite(CTRLI_31_0__DW_0280 , 0x00080000);
  1061. HDMI_RegisterWrite(CTRLI_47_32__DW_0284 , 0x00000106);//0
  1062. HDMI_RegisterWrite(CTRLI_79_48__DW_0000 , 0x00001080 | (bTerm<<4));
  1063. HDMI_RegisterWrite(CTRLI_111_80__DW_0004 , 0x00000000);
  1064. HDMI_RegisterWrite(CTRLI_143_112__DW_0008, 0x00000000);
  1065. HDMI_RegisterWrite(CTRLI_175_144__DW_000C, 0x00000000);
  1066. HDMI_RegisterWrite(CTRLI_207_176__DW_0010, 0x00000000);
  1067. HDMI_RegisterWrite(CTRLI_239_208__DW_0014, 0x00000000);
  1068. HDMI_RegisterWrite(CTRLI_271_240__DW_0018, 0x00000000);
  1069. HDMI_RegisterWrite(CTRLI_303_272__DW_001C, 0x00000000);
  1070. HDMI_RegisterWrite(CTRLI_335_304__DW_0258, 0x40040000);
  1071. HDMI_RegisterWrite(CTRLI_375_344__DW_0260, 0x000000E0);
  1072. HDMI_RegisterWrite(CTRLI_407_376__DW_0264, 0x00000000);
  1073. HDMI_RegisterWrite(CTRLI_439_408__DW_0268, 0x00000000);
  1074. HDMI_RegisterWrite(CTRLI_471_440__DW_026C, 0x00000000);
  1075. HDMI_RegisterWrite(CTRLI_503_472__DW_0270, 0x00000000);
  1076. HDMI_RegisterWrite(CTRLI_535_504__DW_0274, 0x00000000);
  1077. HDMI_RegisterWrite(CTRLI_567_536__DW_0278, 0x00000000);
  1078. HDMI_RegisterWrite(CTRLI_599_568__DW_027C, 0x00000000);
  1079. HDMI_RegisterWrite(HDMIRX_HDMIP0_MHL_Mode_Sel_external,0x0);
  1080. HDMI_RegisterWrite(HDMIRX_HDMIP0_MHL_Mode_Sel_mux,0x0);
  1081. HDMI_RegisterWrite(HDMIRX_HDMIP0_MHL_Mode_PLL_Sel_external,0x0);
  1082. HDMI_RegisterWrite(HDMIRX_HDMIP0_MHL_Mode_Sel_PLL_mux,0x0);
  1083. HDMI_RegisterWrite(HDMIRX_TMDSCLK_PP_SEL, 0x1);
  1084. HDMI_RegisterWrite(HDMIRX_external_gated_TMDSCLK, 0x1);
  1085. HDMI_DelayMs(1);
  1086. break;
  1087. case HDMI_PLL_MODE_ADEMOD_ENABLE:
  1088. HDMI_RegisterWrite(HDMIRX_HDMIP0_Mode_Sel_PLL_external, 0);
  1089. HDMI_RegisterWrite(HDMIRX_HDMIP0_Mode_Sel_PLL_mux, 1);
  1090. sysset_DEMOD_BG_POWER_DOWN(FALSE);
  1091. HDMI_RegisterWrite(HDMIRX_HDMIP0_MHL_Mode_Sel_external,0x0);
  1092. HDMI_RegisterWrite(HDMIRX_HDMIP0_MHL_Mode_Sel_mux,0x0);
  1093. HDMI_RegisterWrite(HDMIRX_HDMIP0_MHL_Mode_PLL_Sel_external,0x0);
  1094. HDMI_RegisterWrite(HDMIRX_HDMIP0_MHL_Mode_Sel_PLL_mux,0x0);
  1095. HDMI_RegisterWrite(HDMIRX_TMDSCLK_PP_SEL, 0x1);
  1096. HDMI_RegisterWrite(HDMIRX_external_gated_TMDSCLK, 0x1);
  1097. HDMI_RegisterWrite(HDMIRX_COMP_PD, 0x0);
  1098. HDMI_RegisterWrite(HDMIRX_PLL_PD_COMP, 0x0);
  1099. //HDMI_RegisterWrite(HDMIRX_PLL_ICTRL_3_0_, 0x6);
  1100. HDMI_RegisterWrite(HDMIRX_PLL_ICTRL_3_0_, 0x1);
  1101. HDMI_RegisterWrite(HDMIRX_PLL_EN_FDIV, 0x0);//For ATV Line Noise
  1102. HDMI_RegisterWrite(HDMIRX_PLL_GB_5, 1);//For 533A2 PFD_PWDJ
  1103. //HDMI_RegisterWrite(HDMIRX_PLL_GB_4_0_, 0x3);// 3
  1104. HDMI_RegisterWrite(HDMIRX_PLL_GB_4_0_, 0xf);// 3
  1105. HDMI_RegisterWrite(HDMIRX_PLL_FEBDIV_7_0_, 0x2f);
  1106. HDMI_RegisterWrite(HDMIRX_PHY_DIVSLE2, 0x1);
  1107. HDMI_RegisterWrite(HDMIRX_PDACJ_CK, 0x1);
  1108. HDMI_DelayUs(1); //PLL_Power need 500 nsec to stable
  1109. //HDMI_RegisterWrite(HDMIRX_PLL_RESETJ, 0x1);
  1110. //HDMI_DelayMs(1);
  1111. HDMI_RegisterWrite(HDMIRX_PLL_RSTN, 0x1);
  1112. HDMI_RegisterWrite(HDMIRX_PLL_PWDN_DEMOD, 0x1);
  1113. HDMI_DelayUs(1);
  1114. HDMI_RegisterWrite(HDMIRX_R_SP5_PLL_CTP_PWDJ, 0x1);
  1115. HDMI_RegisterWrite(HDMIRX_LDO_PWD, 0x1);// 1/0 : normal / PD (change define from 331)
  1116. HDMI_RegisterWrite(HDMIRX_LDO_PWDE, 0x1);// 1/0 : normal / PD (change define from 331)
  1117. HDMI_DelayUs(8);
  1118. HDMI_RegisterWrite(HDMIRX_PLL_PWDN_DEMOD, 0x0);
  1119. HDMI_DelayUs(1);
  1120. HDMI_RegisterWrite(HDMIRX_PLL_PWDN_DEMOD, 0x1);
  1121. HDMI_DelayUs(1);
  1122. HDMI_RegisterWrite(HDMIRX_PLL_RESETJ, 0x1);
  1123. HDMI_DelayUs(1);
  1124. HDMI_RegisterWrite(HDMIRX_PLL_EN_FDIV, 0x0);//For ATV Line Noise
  1125. HDMI_RegisterWrite(HDMIRX_PLL_GB_4_0_, 0x3);// 3
  1126. HDMI_RegisterWrite(HDMIRX_PLL_ICTRL_3_0_, 0x6);
  1127. break;
  1128. case HDMI_PLL_MODE_ADEMOD_DISABLE:
  1129. sysset_DEMOD_BG_POWER_DOWN(TRUE);
  1130. HDMI_RegisterWrite(CTRLI_31_0__DW_0280, 0x000c0400);
  1131. HDMI_RegisterWrite(CTRLI_47_32__DW_0284, 0x00000006);
  1132. HDMI_RegisterWrite(CTRLI_79_48__DW_0000, 0x00000088 | (bTerm<<4));
  1133. HDMI_RegisterWrite(CTRLI_111_80__DW_0004, 0x00000000);
  1134. HDMI_RegisterWrite(CTRLI_143_112__DW_0008, 0x00000000);
  1135. HDMI_RegisterWrite(CTRLI_175_144__DW_000C, 0x00000000);
  1136. HDMI_RegisterWrite(CTRLI_207_176__DW_0010, 0x00000000);
  1137. HDMI_RegisterWrite(CTRLI_239_208__DW_0014, 0x00000000);
  1138. HDMI_RegisterWrite(CTRLI_271_240__DW_0018, 0x00000000);
  1139. HDMI_RegisterWrite(CTRLI_303_272__DW_001C, 0x71da0000);
  1140. HDMI_RegisterWrite(CTRLI_335_304__DW_0258, 0x40040010);
  1141. HDMI_RegisterWrite(CTRLI_375_344__DW_0260, 0x71da00E0);
  1142. HDMI_RegisterWrite(CTRLI_439_408__DW_0268, 0x00000000);
  1143. HDMI_RegisterWrite(CTRLI_471_440__DW_026C, 0x00000000);
  1144. HDMI_RegisterWrite(CTRLI_503_472__DW_0270, 0x00000000);
  1145. HDMI_RegisterWrite(CTRLI_535_504__DW_0274, 0x00000000);
  1146. HDMI_RegisterWrite(CTRLI_567_536__DW_0278, 0x00000000);
  1147. HDMI_RegisterWrite(CTRLI_599_568__DW_027C, 0x00000000);
  1148. HDMI_DelayMs(1);
  1149. break;
  1150. case HDMI_PLL_MODE_DDEMOD_INIT:
  1151. HDMI_RegisterWrite(CTRLI_31_0__DW_0280 , 0x00080000);
  1152. HDMI_RegisterWrite(CTRLI_47_32__DW_0284 , 0x00000106);
  1153. HDMI_RegisterWrite(CTRLI_79_48__DW_0000 , 0x00001080 | (bTerm<<4));
  1154. HDMI_RegisterWrite(CTRLI_111_80__DW_0004 , 0x00000000);
  1155. HDMI_RegisterWrite(CTRLI_143_112__DW_0008, 0x00000000);
  1156. HDMI_RegisterWrite(CTRLI_175_144__DW_000C, 0x00000000);
  1157. HDMI_RegisterWrite(CTRLI_207_176__DW_0010, 0x00000000);
  1158. HDMI_RegisterWrite(CTRLI_239_208__DW_0014, 0x00000000);
  1159. HDMI_RegisterWrite(CTRLI_271_240__DW_0018, 0x00000000);
  1160. HDMI_RegisterWrite(CTRLI_303_272__DW_001C, 0x00000000);
  1161. HDMI_RegisterWrite(CTRLI_335_304__DW_0258, 0x40040000);
  1162. HDMI_RegisterWrite(CTRLI_375_344__DW_0260, 0x000000E0);
  1163. HDMI_RegisterWrite(CTRLI_407_376__DW_0264, 0x00000000);
  1164. HDMI_RegisterWrite(CTRLI_439_408__DW_0268, 0x00000000);
  1165. HDMI_RegisterWrite(CTRLI_471_440__DW_026C, 0x00000000);
  1166. HDMI_RegisterWrite(CTRLI_503_472__DW_0270, 0x00000000);
  1167. HDMI_RegisterWrite(CTRLI_535_504__DW_0274, 0x00000000);
  1168. HDMI_RegisterWrite(CTRLI_567_536__DW_0278, 0x00000000);
  1169. HDMI_RegisterWrite(CTRLI_599_568__DW_027C, 0x00000000);
  1170. HDMI_RegisterWrite(HDMIRX_HDMIP0_MHL_Mode_Sel_external,0x0);
  1171. HDMI_RegisterWrite(HDMIRX_HDMIP0_MHL_Mode_Sel_mux,0x0);
  1172. HDMI_RegisterWrite(HDMIRX_HDMIP0_MHL_Mode_PLL_Sel_external,0x0);
  1173. HDMI_RegisterWrite(HDMIRX_HDMIP0_MHL_Mode_Sel_PLL_mux,0x0);
  1174. HDMI_RegisterWrite(HDMIRX_TMDSCLK_PP_SEL, 0x1);
  1175. HDMI_RegisterWrite(HDMIRX_external_gated_TMDSCLK, 0x1);
  1176. HDMI_DelayMs(1);
  1177. break;
  1178. case HDMI_PLL_MODE_DDEMOD_ENABLE_LDO_SETTING:
  1179. HDMI_RegisterWrite(HDMIRX_HDMIP0_Mode_Sel_PLL_external, 0);
  1180. HDMI_RegisterWrite(HDMIRX_HDMIP0_Mode_Sel_PLL_mux, 1);
  1181. sysset_DEMOD_BG_POWER_DOWN(FALSE);
  1182. HDMI_RegisterWrite(HDMIRX_HDMIP0_MHL_Mode_Sel_external,0x0);
  1183. HDMI_RegisterWrite(HDMIRX_HDMIP0_MHL_Mode_Sel_mux,0x0);
  1184. HDMI_RegisterWrite(HDMIRX_HDMIP0_MHL_Mode_PLL_Sel_external,0x0);
  1185. HDMI_RegisterWrite(HDMIRX_HDMIP0_MHL_Mode_Sel_PLL_mux,0x0);
  1186. HDMI_RegisterWrite(HDMIRX_TMDSCLK_PP_SEL, 0x1);
  1187. HDMI_RegisterWrite(HDMIRX_external_gated_TMDSCLK, 0x1);
  1188. HDMI_RegisterWrite(HDMIRX_COMP_PD, 0x0);
  1189. HDMI_RegisterWrite(HDMIRX_PLL_PD_COMP, 0x0);
  1190. //HDMI_RegisterWrite(HDMIRX_PLL_ICTRL_3_0_, 0x6);
  1191. HDMI_RegisterWrite(HDMIRX_PLL_ICTRL_3_0_, 0x1);
  1192. HDMI_RegisterWrite(HDMIRX_PLL_EN_FDIV, 0x0);
  1193. HDMI_RegisterWrite(HDMIRX_PLL_GB_5, 1);//For 533A2 PFD_PWDJ
  1194. //HDMI_RegisterWrite(HDMIRX_PLL_GB_4_0_, 0x3);//6->3
  1195. HDMI_RegisterWrite(HDMIRX_PLL_GB_4_0_, 0xf);//6->3
  1196. HDMI_RegisterWrite(HDMIRX_PLL_FEBDIV_7_0_, 0x2f);
  1197. HDMI_RegisterWrite(HDMIRX_PHY_DIVSLE2, 0x1);
  1198. HDMI_RegisterWrite(HDMIRX_PDACJ_CK, 0x1);
  1199. HDMI_DelayUs(1); //PLL_Power need 500 nsec to stable
  1200. // HDMI_RegisterWrite(HDMIRX_PLL_RESETJ, 0x1);
  1201. // HDMI_DelayMs(1);
  1202. HDMI_RegisterWrite(HDMIRX_PLL_RSTN, 0x1);
  1203. HDMI_RegisterWrite(HDMIRX_PLL_PWDN_DEMOD, 0x1);
  1204. HDMI_DelayUs(1);
  1205. HDMI_RegisterWrite(HDMIRX_R_SP5_PLL_CTP_PWDJ, 0x1);
  1206. HDMI_RegisterWrite(HDMIRX_LDO_PWD, 0x1);// 1/0 : normal / PD (change define from 331)
  1207. HDMI_RegisterWrite(HDMIRX_LDO_PWDE, 0x1);// 1/0 : normal / PD (change define from 331)
  1208. HDMI_DelayUs(8);
  1209. HDMI_RegisterWrite(HDMIRX_PLL_PWDN_DEMOD, 0x0);
  1210. HDMI_DelayUs(1);
  1211. HDMI_RegisterWrite(HDMIRX_PLL_PWDN_DEMOD, 0x1);
  1212. HDMI_DelayUs(1);
  1213. HDMI_RegisterWrite(HDMIRX_PLL_RESETJ, 0x1);
  1214. HDMI_DelayUs(1);
  1215. HDMI_RegisterWrite(HDMIRX_PLL_EN_FDIV, 0x0);//
  1216. HDMI_RegisterWrite(HDMIRX_PLL_GB_4_0_, 0x3);// 3
  1217. HDMI_RegisterWrite(HDMIRX_PLL_ICTRL_3_0_, 0x6);
  1218. break;
  1219. case HDMI_PLL_MODE_DDEMOD_DISABLE:
  1220. sysset_DEMOD_BG_POWER_DOWN(TRUE);
  1221. HDMI_RegisterWrite(CTRLI_31_0__DW_0280 , 0x00000000);
  1222. HDMI_RegisterWrite(CTRLI_47_32__DW_0284 , 0x00000106);
  1223. HDMI_RegisterWrite(CTRLI_79_48__DW_0000 , 0x00001088 | (bTerm<<4));
  1224. HDMI_RegisterWrite(CTRLI_111_80__DW_0004 , 0x00000000);
  1225. HDMI_RegisterWrite(CTRLI_143_112__DW_0008, 0x00000000);
  1226. HDMI_RegisterWrite(CTRLI_175_144__DW_000C, 0x00000000);
  1227. HDMI_RegisterWrite(CTRLI_207_176__DW_0010, 0x00000000);
  1228. HDMI_RegisterWrite(CTRLI_239_208__DW_0014, 0x00000000);
  1229. HDMI_RegisterWrite(CTRLI_271_240__DW_0018, 0x00000000);
  1230. HDMI_RegisterWrite(CTRLI_303_272__DW_001C, 0x00000000);
  1231. HDMI_RegisterWrite(CTRLI_335_304__DW_0258, 0x40040000);
  1232. HDMI_RegisterWrite(CTRLI_375_344__DW_0260, 0x00000000);
  1233. HDMI_RegisterWrite(CTRLI_407_376__DW_0264, 0x00000000);
  1234. HDMI_RegisterWrite(CTRLI_439_408__DW_0268, 0x00000000);
  1235. HDMI_RegisterWrite(CTRLI_471_440__DW_026C, 0x00000000);
  1236. HDMI_RegisterWrite(CTRLI_503_472__DW_0270, 0x00000000);
  1237. HDMI_RegisterWrite(CTRLI_535_504__DW_0274, 0x00000000);
  1238. HDMI_RegisterWrite(CTRLI_567_536__DW_0278, 0x00000000);
  1239. HDMI_RegisterWrite(CTRLI_599_568__DW_027C, 0x00000000);
  1240. HDMI_DelayMs(1);
  1241. break;
  1242. /* DEFAULT */
  1243. default:
  1244. printk("[H] mode is not exist\n");
  1245. break;
  1246. }
  1247. }
  1248. //set HDMI EQ Mode
  1249. void HDMI_Set_EQ_Mode(HDMI_EQ_INDEX_e eHDMI_EQ_MODE)
  1250. {
  1251. printk("[H] %s mode:%d\n", __FUNCTION__, eHDMI_EQ_MODE);
  1252. switch(eHDMI_EQ_MODE)
  1253. {
  1254. /* Default */
  1255. case HDMI_EQ_INDEX_DEFAULT:
  1256. HDMI_EQ_MODE_INDEX =eHDMI_EQ_MODE ;
  1257. break;
  1258. case HDMI_EQ_INDEX_1:
  1259. //HDMI_RegisterWrite(HDMIRX_PHY_EQC0, 7);
  1260. //HDMI_RegisterWrite(HDMIRX_PHY_EQC1, 7);
  1261. //HDMI_RegisterWrite(HDMIRX_PHY_EQDC0_0, 1);
  1262. //HDMI_RegisterWrite(HDMIRX_PHY_EQDC0_1, 1);
  1263. //HDMI_RegisterWrite(HDMIRX_PHY_EQDC1, 1);
  1264. //HDMI_RegisterWrite(HDMIRX_PHY_EQDC0_2, 1);
  1265. HDMI_EQ_MODE_INDEX =eHDMI_EQ_MODE ;
  1266. break;
  1267. case HDMI_EQ_INDEX_2:
  1268. //HDMI_RegisterWrite(HDMIRX_PHY_EQC0, 7);
  1269. //HDMI_RegisterWrite(HDMIRX_PHY_EQC1, 7);
  1270. //HDMI_RegisterWrite(HDMIRX_PHY_EQDC0_0, 1);
  1271. //HDMI_RegisterWrite(HDMIRX_PHY_EQDC0_1, 0);
  1272. //HDMI_RegisterWrite(HDMIRX_PHY_EQDC1, 7);
  1273. //HDMI_RegisterWrite(HDMIRX_PHY_EQDC0_2, 0);
  1274. HDMI_EQ_MODE_INDEX =eHDMI_EQ_MODE ;
  1275. break;
  1276. case HDMI_EQ_INDEX_3:
  1277. //HDMI_RegisterWrite(HDMIRX_PHY_EQC0, 0);
  1278. //HDMI_RegisterWrite(HDMIRX_PHY_EQC1, 0);
  1279. //HDMI_RegisterWrite(HDMIRX_PHY_EQDC0_0, 1);
  1280. //HDMI_RegisterWrite(HDMIRX_PHY_EQDC0_1, 1);
  1281. //HDMI_RegisterWrite(HDMIRX_PHY_EQDC1, 7);
  1282. //HDMI_RegisterWrite(HDMIRX_PHY_EQDC0_2, 1);
  1283. HDMI_EQ_MODE_INDEX =eHDMI_EQ_MODE ;
  1284. break;
  1285. case HDMI_EQ_INDEX_4:
  1286. //HDMI_RegisterWrite(HDMIRX_PHY_EQC0, 1);
  1287. //HDMI_RegisterWrite(HDMIRX_PHY_EQC1, 1);
  1288. //HDMI_RegisterWrite(HDMIRX_PHY_EQDC0_0, 1);
  1289. //HDMI_RegisterWrite(HDMIRX_PHY_EQDC0_1, 1);
  1290. //HDMI_RegisterWrite(HDMIRX_PHY_EQDC1, 3);
  1291. //HDMI_RegisterWrite(HDMIRX_PHY_EQDC0_2, 0);
  1292. HDMI_EQ_MODE_INDEX =eHDMI_EQ_MODE ;
  1293. break;
  1294. case HDMI_EQ_INDEX_5:
  1295. //HDMI_RegisterWrite(HDMIRX_PHY_EQC0, 4);
  1296. //HDMI_RegisterWrite(HDMIRX_PHY_EQC1, 4);
  1297. //HDMI_RegisterWrite(HDMIRX_PHY_EQDC0_0, 1);
  1298. //HDMI_RegisterWrite(HDMIRX_PHY_EQDC0_1, 1);
  1299. //HDMI_RegisterWrite(HDMIRX_PHY_EQDC1, 3);
  1300. //HDMI_RegisterWrite(HDMIRX_PHY_EQDC0_2, 0);
  1301. HDMI_EQ_MODE_INDEX =eHDMI_EQ_MODE ;
  1302. break;
  1303. case HDMI_EQ_INDEX_6:
  1304. //HDMI_RegisterWrite(HDMIRX_PHY_EQC0, 7);
  1305. //HDMI_RegisterWrite(HDMIRX_PHY_EQC1, 7);
  1306. //HDMI_RegisterWrite(HDMIRX_PHY_EQDC0_0, 1);
  1307. //HDMI_RegisterWrite(HDMIRX_PHY_EQDC0_1, 1);
  1308. //HDMI_RegisterWrite(HDMIRX_PHY_EQDC1, 1);
  1309. //HDMI_RegisterWrite(HDMIRX_PHY_EQDC0_2, 0);
  1310. HDMI_EQ_MODE_INDEX =eHDMI_EQ_MODE ;
  1311. break;
  1312. case HDMI_EQ_INDEX_7:
  1313. //HDMI_RegisterWrite(HDMIRX_PHY_EQC0, 1);
  1314. //HDMI_RegisterWrite(HDMIRX_PHY_EQC1, 1);
  1315. //HDMI_RegisterWrite(HDMIRX_PHY_EQDC0_0, 1);
  1316. //HDMI_RegisterWrite(HDMIRX_PHY_EQDC0_1, 0);
  1317. //HDMI_RegisterWrite(HDMIRX_PHY_EQDC1, 1);
  1318. //HDMI_RegisterWrite(HDMIRX_PHY_EQDC0_2, 0);
  1319. HDMI_EQ_MODE_INDEX =eHDMI_EQ_MODE ;
  1320. break;
  1321. case HDMI_EQ_INDEX_8:
  1322. //HDMI_RegisterWrite(HDMIRX_PHY_EQC0, 4);
  1323. //HDMI_RegisterWrite(HDMIRX_PHY_EQC1, 4);
  1324. //HDMI_RegisterWrite(HDMIRX_PHY_EQDC0_0, 1);
  1325. //HDMI_RegisterWrite(HDMIRX_PHY_EQDC0_1, 0);
  1326. //HDMI_RegisterWrite(HDMIRX_PHY_EQDC1, 1);
  1327. //HDMI_RegisterWrite(HDMIRX_PHY_EQDC0_2, 0);
  1328. HDMI_EQ_MODE_INDEX =eHDMI_EQ_MODE ;
  1329. break;
  1330. case HDMI_EQ_INDEX_9:
  1331. //HDMI_RegisterWrite(HDMIRX_PHY_EQC0, 4);
  1332. //HDMI_RegisterWrite(HDMIRX_PHY_EQC1, 4);
  1333. //HDMI_RegisterWrite(HDMIRX_PHY_EQDC0_0,0);
  1334. //HDMI_RegisterWrite(HDMIRX_PHY_EQDC0_1, 0);
  1335. //HDMI_RegisterWrite(HDMIRX_PHY_EQDC1, 0);
  1336. //HDMI_RegisterWrite(HDMIRX_PHY_EQDC0_2, 0);
  1337. HDMI_EQ_MODE_INDEX =eHDMI_EQ_MODE ;
  1338. break;
  1339. case HDMI_EQ_INDEX_10:
  1340. //HDMI_RegisterWrite(HDMIRX_PHY_EQC0, 7);
  1341. //HDMI_RegisterWrite(HDMIRX_PHY_EQC1, 7);
  1342. //HDMI_RegisterWrite(HDMIRX_PHY_EQDC0_0, 0);
  1343. //HDMI_RegisterWrite(HDMIRX_PHY_EQDC0_1, 0);
  1344. //HDMI_RegisterWrite(HDMIRX_PHY_EQDC1, 0);
  1345. //HDMI_RegisterWrite(HDMIRX_PHY_EQDC0_2, 0);
  1346. HDMI_EQ_MODE_INDEX =eHDMI_EQ_MODE ;
  1347. break;
  1348. /* DEFAULT */
  1349. default:
  1350. printk("[H] mode is not exist\n");
  1351. break;
  1352. }
  1353. HDMI_RegisterWrite(HDMIRX_R_rst_n, 0);
  1354. HDMI_DelayMs(2);
  1355. HDMI_RegisterWrite(HDMIRX_R_rst_n, 1);
  1356. }
  1357. void HDMI_Set_Demod_Clock_Div(UINT8 FEBDIV, UINT8 PLLGainBit)
  1358. {
  1359. if((PLLGainBit <= 31))
  1360. {
  1361. //Set 284[bit:2], 284[bit:3], 263[bit:4] = 0 to Reset Mode
  1362. HDMI_RegisterWrite(HDMIRX_PLL_PWDN_DEMOD, 0x0);
  1363. HDMI_RegisterWrite(HDMIRX_PLL_RESETJ, 0x0);
  1364. HDMI_RegisterWrite(HDMIRX_PLL_RSTN, 0x0);
  1365. HDMI_DelayUs(1);
  1366. //Set Demod Clock Div
  1367. HDMI_RegisterWrite(HDMIRX_PLL_FEBDIV_7_0_, FEBDIV);
  1368. HDMI_RegisterWrite(HDMIRX_PLL_ICTRL_3_0_, 0x6);
  1369. HDMI_RegisterWrite(HDMIRX_PLL_GB_4_0_, PLLGainBit);
  1370. HDMI_RegisterWrite(HDMIRX_PLL_EN_FDIV, 0x0);
  1371. //Set 284[bit:2] = 1
  1372. HDMI_DelayUs(1); //PLL Mode need 10 nsec to stable
  1373. HDMI_RegisterWrite(HDMIRX_PLL_PWDN_DEMOD, 0x1);
  1374. //Set 263[bit:4] = 1
  1375. HDMI_DelayUs(1); //PLL_PWDN_DEMOD need 10 nsec to stable
  1376. HDMI_RegisterWrite(HDMIRX_PLL_RESETJ, 0x1);
  1377. //set 284[bit:3] = 1
  1378. HDMI_DelayUs(1); //RESETJ need 10 nsec to stable
  1379. HDMI_RegisterWrite(HDMIRX_PLL_RSTN, 0x1);
  1380. HDMI_DelayUs(100); //CLK_DEMOD need more than 50 usec to stable
  1381. }
  1382. else
  1383. {
  1384. hdmidbg("PLLGainBit value is illegal\n");
  1385. }
  1386. }
  1387. UINT8 HDMI_Get_HDMI_LDO_PWD(void)
  1388. {
  1389. UINT8 ret = 0;
  1390. //PD0 1/0 : normal / PD (change define from 331)
  1391. ret = (UINT8)HDMI_RegisterRead(HDMIRX_LDO_PWD);
  1392. if(ret==1)
  1393. {
  1394. return HDMI_NORMAL;
  1395. }
  1396. else
  1397. {
  1398. return HDMI_PD;
  1399. }
  1400. }
  1401. UINT8 HDMI_Get_HDMI_R_SP5_PLL_CTP_PWDJ(void)
  1402. {
  1403. UINT8 ret = 0;
  1404. ret = (UINT8)HDMI_RegisterRead(HDMIRX_R_SP5_PLL_CTP_PWDJ);
  1405. return ret;
  1406. }
  1407. UINT8 HDMI_Get_HDMI_PLL_PWDN_DEMOD(void)
  1408. {
  1409. UINT8 ret = 0;
  1410. ret = (UINT8)HDMI_RegisterRead(HDMIRX_PLL_PWDN_DEMOD);
  1411. return ret;
  1412. }
  1413. UINT8 HDMI_Get_HDMI_COMP_PD(void)
  1414. {
  1415. UINT8 ret = 0;
  1416. ret = (UINT8)HDMI_RegisterRead(HDMIRX_COMP_PD);
  1417. return ret;
  1418. }
  1419. UINT8 HDMI_Get_HDMI_PLL_RESETJ(void)
  1420. {
  1421. UINT8 ret = 0;
  1422. ret = (UINT8)HDMI_RegisterRead(HDMIRX_PLL_RESETJ);
  1423. return ret;
  1424. }
  1425. UINT8 HDMI_Get_HDMI_DEMOD_EN(void)
  1426. {
  1427. UINT8 ret = 0;
  1428. ret = (UINT8)HDMI_RegisterRead(HDMIRX_DEMOD_EN);
  1429. return ret;
  1430. }
  1431. //------------------------------------------------------------------------------
  1432. // Function: DrvHDMIPortSelectBitsGet
  1433. // Description: Reads the HDMI selected port(s)bit-field.
  1434. // Parameters: None
  1435. // Returns: HDMI selected port(s)bit-field.
  1436. //
  1437. //------------------------------------------------------------------------------
  1438. UINT8 DrvHDMIPortSelectBitsGet(void)
  1439. {
  1440. return(HDMI_RegisterRead(HDMIRX_R_hdmi_port_sel));
  1441. }
  1442. UINT8 HDMI_Get_SPD_INFOFRAME(struct hdmi_spd_infoframe *frame)
  1443. {
  1444. hdmi_spd_infoframe_init(frame,
  1445. (const char*)((HDMIRX_R_SPD_VN_31_0_ & REGISTER_ADDRESS_MASK)+(HDMI_GetRegisterType(HDMIRX_R_SPD_VN_31_0_ & REGISTER_TYPE_MASK))),
  1446. (const char*)((HDMIRX_R_SPD_PD_31_0_ & REGISTER_ADDRESS_MASK)+(HDMI_GetRegisterType(HDMIRX_R_SPD_PD_31_0_ & REGISTER_TYPE_MASK))),
  1447. (const char*)((HDMIRX_R_SPD_SDI & REGISTER_ADDRESS_MASK)+(HDMI_GetRegisterType(HDMIRX_R_SPD_SDI & REGISTER_TYPE_MASK))));
  1448. return 0;
  1449. }
  1450. #ifdef USE_HW_ADAPTIVE_EQ
  1451. void HDMI_Adaptive_EQ_Init(void)
  1452. {
  1453. //PRE0 EQC=770 EQDC=227
  1454. HDMI_RegisterWrite(HDMIRX_PRE0_EQC0_2, 1);
  1455. HDMI_RegisterWrite(HDMIRX_PRE0_EQC0_1, 1);
  1456. HDMI_RegisterWrite(HDMIRX_PRE0_EQC0_0, 1);
  1457. HDMI_RegisterWrite(HDMIRX_PRE0_EQC1_2, 1);
  1458. HDMI_RegisterWrite(HDMIRX_PRE0_EQC1_1, 1);
  1459. HDMI_RegisterWrite(HDMIRX_PRE0_EQC1_0, 1);
  1460. HDMI_RegisterWrite(HDMIRX_PRE0_EQC2_2, 0);
  1461. HDMI_RegisterWrite(HDMIRX_PRE0_EQC2_1, 0);
  1462. HDMI_RegisterWrite(HDMIRX_PRE0_EQC2_0, 0);
  1463. HDMI_RegisterWrite(HDMIRX_PRE0_EQDC0_2, 0);
  1464. HDMI_RegisterWrite(HDMIRX_PRE0_EQDC0_1, 1);
  1465. HDMI_RegisterWrite(HDMIRX_PRE0_EQDC0_0, 0);
  1466. HDMI_RegisterWrite(HDMIRX_PRE0_EQDC1_2, 0);
  1467. HDMI_RegisterWrite(HDMIRX_PRE0_EQDC1_1, 1);
  1468. HDMI_RegisterWrite(HDMIRX_PRE0_EQDC1_0, 0);
  1469. HDMI_RegisterWrite(HDMIRX_PRE0_EQDC2_2, 1);
  1470. HDMI_RegisterWrite(HDMIRX_PRE0_EQDC2_1, 1);
  1471. HDMI_RegisterWrite(HDMIRX_PRE0_EQDC2_0, 1);
  1472. //PRE1 EQC=770 EQDC=277
  1473. HDMI_RegisterWrite(HDMIRX_PRE1_EQC0_2, 1);
  1474. HDMI_RegisterWrite(HDMIRX_PRE1_EQC0_1, 1);
  1475. HDMI_RegisterWrite(HDMIRX_PRE1_EQC0_0, 1);
  1476. HDMI_RegisterWrite(HDMIRX_PRE1_EQC1_2, 1);
  1477. HDMI_RegisterWrite(HDMIRX_PRE1_EQC1_1, 1);
  1478. HDMI_RegisterWrite(HDMIRX_PRE1_EQC1_0, 1);
  1479. HDMI_RegisterWrite(HDMIRX_PRE1_EQC2_2, 0);
  1480. HDMI_RegisterWrite(HDMIRX_PRE1_EQC2_1, 0);
  1481. HDMI_RegisterWrite(HDMIRX_PRE1_EQC2_0, 0);
  1482. HDMI_RegisterWrite(HDMIRX_PRE1_EQDC0_2, 0);
  1483. HDMI_RegisterWrite(HDMIRX_PRE1_EQDC0_1, 1);
  1484. HDMI_RegisterWrite(HDMIRX_PRE1_EQDC0_0, 0);
  1485. HDMI_RegisterWrite(HDMIRX_PRE1_EQDC1_2, 1);
  1486. HDMI_RegisterWrite(HDMIRX_PRE1_EQDC1_1, 1);
  1487. HDMI_RegisterWrite(HDMIRX_PRE1_EQDC1_0, 1);
  1488. HDMI_RegisterWrite(HDMIRX_PRE1_EQDC2_2, 1);
  1489. HDMI_RegisterWrite(HDMIRX_PRE1_EQDC2_1, 1);
  1490. HDMI_RegisterWrite(HDMIRX_PRE1_EQDC2_0, 1);
  1491. //PRE2 EQC=330 EQDC=447
  1492. HDMI_RegisterWrite(HDMIRX_PRE2_EQC0_2, 0);
  1493. HDMI_RegisterWrite(HDMIRX_PRE2_EQC0_1, 1);
  1494. HDMI_RegisterWrite(HDMIRX_PRE2_EQC0_0, 1);
  1495. HDMI_RegisterWrite(HDMIRX_PRE2_EQC1_2, 0);
  1496. HDMI_RegisterWrite(HDMIRX_PRE2_EQC1_1, 1);
  1497. HDMI_RegisterWrite(HDMIRX_PRE2_EQC1_0, 1);
  1498. HDMI_RegisterWrite(HDMIRX_PRE2_EQC2_2, 0);
  1499. HDMI_RegisterWrite(HDMIRX_PRE2_EQC2_1, 0);
  1500. HDMI_RegisterWrite(HDMIRX_PRE2_EQC2_0, 0);
  1501. HDMI_RegisterWrite(HDMIRX_PRE2_EQDC0_2, 1);
  1502. HDMI_RegisterWrite(HDMIRX_PRE2_EQDC0_1, 0);
  1503. HDMI_RegisterWrite(HDMIRX_PRE2_EQDC0_0, 0);
  1504. HDMI_RegisterWrite(HDMIRX_PRE2_EQDC1_2, 1);
  1505. HDMI_RegisterWrite(HDMIRX_PRE2_EQDC1_1, 0);
  1506. HDMI_RegisterWrite(HDMIRX_PRE2_EQDC1_0, 0);
  1507. HDMI_RegisterWrite(HDMIRX_PRE2_EQDC2_2, 1);
  1508. HDMI_RegisterWrite(HDMIRX_PRE2_EQDC2_1, 1);
  1509. HDMI_RegisterWrite(HDMIRX_PRE2_EQDC2_0, 1);
  1510. //PRE3 EQC=770 EQDC=447
  1511. HDMI_RegisterWrite(HDMIRX_PRE3_EQC0_2, 1);
  1512. HDMI_RegisterWrite(HDMIRX_PRE3_EQC0_1, 1);
  1513. HDMI_RegisterWrite(HDMIRX_PRE3_EQC0_0, 1);
  1514. HDMI_RegisterWrite(HDMIRX_PRE3_EQC1_2, 1);
  1515. HDMI_RegisterWrite(HDMIRX_PRE3_EQC1_1, 1);
  1516. HDMI_RegisterWrite(HDMIRX_PRE3_EQC1_0, 1);
  1517. HDMI_RegisterWrite(HDMIRX_PRE3_EQC2_2, 0);
  1518. HDMI_RegisterWrite(HDMIRX_PRE3_EQC2_1, 0);
  1519. HDMI_RegisterWrite(HDMIRX_PRE3_EQC2_0, 0);
  1520. HDMI_RegisterWrite(HDMIRX_PRE3_EQDC0_2, 1);
  1521. HDMI_RegisterWrite(HDMIRX_PRE3_EQDC0_1, 0);
  1522. HDMI_RegisterWrite(HDMIRX_PRE3_EQDC0_0, 0);
  1523. HDMI_RegisterWrite(HDMIRX_PRE3_EQDC1_2, 1);
  1524. HDMI_RegisterWrite(HDMIRX_PRE3_EQDC1_1, 0);
  1525. HDMI_RegisterWrite(HDMIRX_PRE3_EQDC1_0, 0);
  1526. HDMI_RegisterWrite(HDMIRX_PRE3_EQDC2_2, 1);
  1527. HDMI_RegisterWrite(HDMIRX_PRE3_EQDC2_1, 1);
  1528. HDMI_RegisterWrite(HDMIRX_PRE3_EQDC2_0, 1);
  1529. //PRE4 EQC=330 EQDC=227
  1530. HDMI_RegisterWrite(HDMIRX_PRE4_EQC0_2, 0);
  1531. HDMI_RegisterWrite(HDMIRX_PRE4_EQC0_1, 1);
  1532. HDMI_RegisterWrite(HDMIRX_PRE4_EQC0_0, 1);
  1533. HDMI_RegisterWrite(HDMIRX_PRE4_EQC1_2, 0);
  1534. HDMI_RegisterWrite(HDMIRX_PRE4_EQC1_1, 1);
  1535. HDMI_RegisterWrite(HDMIRX_PRE4_EQC1_0, 1);
  1536. HDMI_RegisterWrite(HDMIRX_PRE4_EQC2_2, 0);
  1537. HDMI_RegisterWrite(HDMIRX_PRE4_EQC2_1, 0);
  1538. HDMI_RegisterWrite(HDMIRX_PRE4_EQC2_0, 0);
  1539. HDMI_RegisterWrite(HDMIRX_PRE4_EQDC0_2, 0);
  1540. HDMI_RegisterWrite(HDMIRX_PRE4_EQDC0_1, 1);
  1541. HDMI_RegisterWrite(HDMIRX_PRE4_EQDC0_0, 0);
  1542. HDMI_RegisterWrite(HDMIRX_PRE4_EQDC1_2, 0);
  1543. HDMI_RegisterWrite(HDMIRX_PRE4_EQDC1_1, 1);
  1544. HDMI_RegisterWrite(HDMIRX_PRE4_EQDC1_0, 0);
  1545. HDMI_RegisterWrite(HDMIRX_PRE4_EQDC2_2, 1);
  1546. HDMI_RegisterWrite(HDMIRX_PRE4_EQDC2_1, 1);
  1547. HDMI_RegisterWrite(HDMIRX_PRE4_EQDC2_0, 1);
  1548. //PRE5 EQC=777 EQDC=222
  1549. HDMI_RegisterWrite(HDMIRX_PRE5_EQC0_2, 1);
  1550. HDMI_RegisterWrite(HDMIRX_PRE5_EQC0_1, 1);
  1551. HDMI_RegisterWrite(HDMIRX_PRE5_EQC0_0, 1);
  1552. HDMI_RegisterWrite(HDMIRX_PRE5_EQC1_2, 1);
  1553. HDMI_RegisterWrite(HDMIRX_PRE5_EQC1_1, 1);
  1554. HDMI_RegisterWrite(HDMIRX_PRE5_EQC1_0, 1);
  1555. HDMI_RegisterWrite(HDMIRX_PRE5_EQC2_2, 1);
  1556. HDMI_RegisterWrite(HDMIRX_PRE5_EQC2_1, 1);
  1557. HDMI_RegisterWrite(HDMIRX_PRE5_EQC2_0, 1);
  1558. HDMI_RegisterWrite(HDMIRX_PRE5_EQDC0_2, 0);
  1559. HDMI_RegisterWrite(HDMIRX_PRE5_EQDC0_1, 1);
  1560. HDMI_RegisterWrite(HDMIRX_PRE5_EQDC0_0, 0);
  1561. HDMI_RegisterWrite(HDMIRX_PRE5_EQDC1_2, 0);
  1562. HDMI_RegisterWrite(HDMIRX_PRE5_EQDC1_1, 1);
  1563. HDMI_RegisterWrite(HDMIRX_PRE5_EQDC1_0, 0);
  1564. HDMI_RegisterWrite(HDMIRX_PRE5_EQDC2_2, 0);
  1565. HDMI_RegisterWrite(HDMIRX_PRE5_EQDC2_1, 1);
  1566. HDMI_RegisterWrite(HDMIRX_PRE5_EQDC2_0, 0);
  1567. //PRE6 EQC=330 EQDC=127
  1568. HDMI_RegisterWrite(HDMIRX_PRE6_EQC0_2, 0);
  1569. HDMI_RegisterWrite(HDMIRX_PRE6_EQC0_1, 1);
  1570. HDMI_RegisterWrite(HDMIRX_PRE6_EQC0_0, 1);
  1571. HDMI_RegisterWrite(HDMIRX_PRE6_EQC1_2, 0);
  1572. HDMI_RegisterWrite(HDMIRX_PRE6_EQC1_1, 1);
  1573. HDMI_RegisterWrite(HDMIRX_PRE6_EQC1_0, 1);
  1574. HDMI_RegisterWrite(HDMIRX_PRE6_EQC2_2, 0);
  1575. HDMI_RegisterWrite(HDMIRX_PRE6_EQC2_1, 0);
  1576. HDMI_RegisterWrite(HDMIRX_PRE6_EQC2_0, 0);
  1577. HDMI_RegisterWrite(HDMIRX_PRE6_EQDC0_2, 0);
  1578. HDMI_RegisterWrite(HDMIRX_PRE6_EQDC0_1, 0);
  1579. HDMI_RegisterWrite(HDMIRX_PRE6_EQDC0_0, 1);
  1580. HDMI_RegisterWrite(HDMIRX_PRE6_EQDC1_2, 0);
  1581. HDMI_RegisterWrite(HDMIRX_PRE6_EQDC1_1, 1);
  1582. HDMI_RegisterWrite(HDMIRX_PRE6_EQDC1_0, 0);
  1583. HDMI_RegisterWrite(HDMIRX_PRE6_EQDC2_2, 1);
  1584. HDMI_RegisterWrite(HDMIRX_PRE6_EQDC2_1, 1);
  1585. HDMI_RegisterWrite(HDMIRX_PRE6_EQDC2_0, 1);
  1586. //PRE07 EQC=550 EQDC=127
  1587. HDMI_RegisterWrite(HDMIRX_PRE7_EQC0_2, 1);
  1588. HDMI_RegisterWrite(HDMIRX_PRE7_EQC0_1, 0);
  1589. HDMI_RegisterWrite(HDMIRX_PRE7_EQC0_0, 1);
  1590. HDMI_RegisterWrite(HDMIRX_PRE7_EQC1_2, 1);
  1591. HDMI_RegisterWrite(HDMIRX_PRE7_EQC1_1, 0);
  1592. HDMI_RegisterWrite(HDMIRX_PRE7_EQC1_0, 1);
  1593. HDMI_RegisterWrite(HDMIRX_PRE7_EQC2_2, 0);
  1594. HDMI_RegisterWrite(HDMIRX_PRE7_EQC2_1, 0);
  1595. HDMI_RegisterWrite(HDMIRX_PRE7_EQC2_0, 0);
  1596. HDMI_RegisterWrite(HDMIRX_PRE7_EQDC0_2, 0);
  1597. HDMI_RegisterWrite(HDMIRX_PRE7_EQDC0_1, 0);
  1598. HDMI_RegisterWrite(HDMIRX_PRE7_EQDC0_0, 1);
  1599. HDMI_RegisterWrite(HDMIRX_PRE7_EQDC1_2, 0);
  1600. HDMI_RegisterWrite(HDMIRX_PRE7_EQDC1_1, 1);
  1601. HDMI_RegisterWrite(HDMIRX_PRE7_EQDC1_0, 0);
  1602. HDMI_RegisterWrite(HDMIRX_PRE7_EQDC2_2, 1);
  1603. HDMI_RegisterWrite(HDMIRX_PRE7_EQDC2_1, 1);
  1604. HDMI_RegisterWrite(HDMIRX_PRE7_EQDC2_0, 1);
  1605. //PRE08 EQC=330 EQDC=117
  1606. HDMI_RegisterWrite(HDMIRX_PRE8_EQC0_2, 0);
  1607. HDMI_RegisterWrite(HDMIRX_PRE8_EQC0_1, 1);
  1608. HDMI_RegisterWrite(HDMIRX_PRE8_EQC0_0, 1);
  1609. HDMI_RegisterWrite(HDMIRX_PRE8_EQC1_2, 0);
  1610. HDMI_RegisterWrite(HDMIRX_PRE8_EQC1_1, 1);
  1611. HDMI_RegisterWrite(HDMIRX_PRE8_EQC1_0, 1);
  1612. HDMI_RegisterWrite(HDMIRX_PRE8_EQC2_2, 0);
  1613. HDMI_RegisterWrite(HDMIRX_PRE8_EQC2_1, 0);
  1614. HDMI_RegisterWrite(HDMIRX_PRE8_EQC2_0, 0);
  1615. HDMI_RegisterWrite(HDMIRX_PRE8_EQDC0_2, 0);
  1616. HDMI_RegisterWrite(HDMIRX_PRE8_EQDC0_1, 0);
  1617. HDMI_RegisterWrite(HDMIRX_PRE8_EQDC0_0, 1);
  1618. HDMI_RegisterWrite(HDMIRX_PRE8_EQDC1_2, 0);
  1619. HDMI_RegisterWrite(HDMIRX_PRE8_EQDC1_1, 0);
  1620. HDMI_RegisterWrite(HDMIRX_PRE8_EQDC1_0, 1);
  1621. HDMI_RegisterWrite(HDMIRX_PRE8_EQDC2_2, 1);
  1622. HDMI_RegisterWrite(HDMIRX_PRE8_EQDC2_1, 1);
  1623. HDMI_RegisterWrite(HDMIRX_PRE8_EQDC2_0, 1);
  1624. //PRE9 EQC=333 EQDC=111
  1625. HDMI_RegisterWrite(HDMIRX_PRE9_EQC0_2, 0);
  1626. HDMI_RegisterWrite(HDMIRX_PRE9_EQC0_1, 1);
  1627. HDMI_RegisterWrite(HDMIRX_PRE9_EQC0_0, 1);
  1628. HDMI_RegisterWrite(HDMIRX_PRE9_EQC1_2, 0);
  1629. HDMI_RegisterWrite(HDMIRX_PRE9_EQC1_1, 1);
  1630. HDMI_RegisterWrite(HDMIRX_PRE9_EQC1_0, 1);
  1631. HDMI_RegisterWrite(HDMIRX_PRE9_EQC2_2, 0);
  1632. HDMI_RegisterWrite(HDMIRX_PRE9_EQC2_1, 1);
  1633. HDMI_RegisterWrite(HDMIRX_PRE9_EQC2_0, 1);
  1634. HDMI_RegisterWrite(HDMIRX_PRE9_EQDC0_2, 0);
  1635. HDMI_RegisterWrite(HDMIRX_PRE9_EQDC0_1, 0);
  1636. HDMI_RegisterWrite(HDMIRX_PRE9_EQDC0_0, 1);
  1637. HDMI_RegisterWrite(HDMIRX_PRE9_EQDC1_2, 0);
  1638. HDMI_RegisterWrite(HDMIRX_PRE9_EQDC1_1, 0);
  1639. HDMI_RegisterWrite(HDMIRX_PRE9_EQDC1_0, 1);
  1640. HDMI_RegisterWrite(HDMIRX_PRE9_EQDC2_2, 0);
  1641. HDMI_RegisterWrite(HDMIRX_PRE9_EQDC2_1, 0);
  1642. HDMI_RegisterWrite(HDMIRX_PRE9_EQDC2_0, 1);
  1643. }
  1644. #endif