dpi_reg.h 12 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409
  1. /* Copyright Statement:
  2. *
  3. * This software/firmware and related documentation ("MediaTek Software") are
  4. * protected under relevant copyright laws. The information contained herein
  5. * is confidential and proprietary to MediaTek Inc. and/or its licensors.
  6. * Without the prior written permission of MediaTek inc. and/or its licensors,
  7. * any reproduction, modification, use or disclosure of MediaTek Software,
  8. * and information contained herein, in whole or in part, shall be strictly prohibited.
  9. */
  10. /* MediaTek Inc. (C) 2010. All rights reserved.
  11. *
  12. * BY OPENING THIS FILE, RECEIVER HEREBY UNEQUIVOCALLY ACKNOWLEDGES AND AGREES
  13. * THAT THE SOFTWARE/FIRMWARE AND ITS DOCUMENTATIONS ("MEDIATEK SOFTWARE")
  14. * RECEIVED FROM MEDIATEK AND/OR ITS REPRESENTATIVES ARE PROVIDED TO RECEIVER ON
  15. * AN "AS-IS" BASIS ONLY. MEDIATEK EXPRESSLY DISCLAIMS ANY AND ALL WARRANTIES,
  16. * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED WARRANTIES OF
  17. * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE OR NONINFRINGEMENT.
  18. * NEITHER DOES MEDIATEK PROVIDE ANY WARRANTY WHATSOEVER WITH RESPECT TO THE
  19. * SOFTWARE OF ANY THIRD PARTY WHICH MAY BE USED BY, INCORPORATED IN, OR
  20. * SUPPLIED WITH THE MEDIATEK SOFTWARE, AND RECEIVER AGREES TO LOOK ONLY TO SUCH
  21. * THIRD PARTY FOR ANY WARRANTY CLAIM RELATING THERETO. RECEIVER EXPRESSLY ACKNOWLEDGES
  22. * THAT IT IS RECEIVER'S SOLE RESPONSIBILITY TO OBTAIN FROM ANY THIRD PARTY ALL PROPER LICENSES
  23. * CONTAINED IN MEDIATEK SOFTWARE. MEDIATEK SHALL ALSO NOT BE RESPONSIBLE FOR ANY MEDIATEK
  24. * SOFTWARE RELEASES MADE TO RECEIVER'S SPECIFICATION OR TO CONFORM TO A PARTICULAR
  25. * STANDARD OR OPEN FORUM. RECEIVER'S SOLE AND EXCLUSIVE REMEDY AND MEDIATEK'S ENTIRE AND
  26. * CUMULATIVE LIABILITY WITH RESPECT TO THE MEDIATEK SOFTWARE RELEASED HEREUNDER WILL BE,
  27. * AT MEDIATEK'S OPTION, TO REVISE OR REPLACE THE MEDIATEK SOFTWARE AT ISSUE,
  28. * OR REFUND ANY SOFTWARE LICENSE FEES OR SERVICE CHARGE PAID BY RECEIVER TO
  29. * MEDIATEK FOR SUCH MEDIATEK SOFTWARE AT ISSUE.
  30. *
  31. * The following software/firmware and/or related documentation ("MediaTek Software")
  32. * have been modified by MediaTek Inc. All revisions are subject to any receiver's
  33. * applicable license agreements with MediaTek Inc.
  34. */
  35. /*****************************************************************************
  36. * Copyright Statement:
  37. * --------------------
  38. * This software is protected by Copyright and the information contained
  39. * herein is confidential. The software may not be copied and the information
  40. * contained herein may not be used or disclosed except with the written
  41. * permission of MediaTek Inc. (C) 2008
  42. *
  43. * BY OPENING THIS FILE, BUYER HEREBY UNEQUIVOCALLY ACKNOWLEDGES AND AGREES
  44. * THAT THE SOFTWARE/FIRMWARE AND ITS DOCUMENTATIONS ("MEDIATEK SOFTWARE")
  45. * RECEIVED FROM MEDIATEK AND/OR ITS REPRESENTATIVES ARE PROVIDED TO BUYER ON
  46. * AN "AS-IS" BASIS ONLY. MEDIATEK EXPRESSLY DISCLAIMS ANY AND ALL WARRANTIES,
  47. * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED WARRANTIES OF
  48. * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE OR NONINFRINGEMENT.
  49. * NEITHER DOES MEDIATEK PROVIDE ANY WARRANTY WHATSOEVER WITH RESPECT TO THE
  50. * SOFTWARE OF ANY THIRD PARTY WHICH MAY BE USED BY, INCORPORATED IN, OR
  51. * SUPPLIED WITH THE MEDIATEK SOFTWARE, AND BUYER AGREES TO LOOK ONLY TO SUCH
  52. * THIRD PARTY FOR ANY WARRANTY CLAIM RELATING THERETO. MEDIATEK SHALL ALSO
  53. * NOT BE RESPONSIBLE FOR ANY MEDIATEK SOFTWARE RELEASES MADE TO BUYER'S
  54. * SPECIFICATION OR TO CONFORM TO A PARTICULAR STANDARD OR OPEN FORUM.
  55. *
  56. * BUYER'S SOLE AND EXCLUSIVE REMEDY AND MEDIATEK'S ENTIRE AND CUMULATIVE
  57. * LIABILITY WITH RESPECT TO THE MEDIATEK SOFTWARE RELEASED HEREUNDER WILL BE,
  58. * AT MEDIATEK'S OPTION, TO REVISE OR REPLACE THE MEDIATEK SOFTWARE AT ISSUE,
  59. * OR REFUND ANY SOFTWARE LICENSE FEES OR SERVICE CHARGE PAID BY BUYER TO
  60. * MEDIATEK FOR SUCH MEDIATEK SOFTWARE AT ISSUE.
  61. *
  62. * THE TRANSACTION CONTEMPLATED HEREUNDER SHALL BE CONSTRUED IN ACCORDANCE
  63. * WITH THE LAWS OF THE STATE OF CALIFORNIA, USA, EXCLUDING ITS CONFLICT OF
  64. * LAWS PRINCIPLES. ANY DISPUTES, CONTROVERSIES OR CLAIMS ARISING THEREOF AND
  65. * RELATED THERETO SHALL BE SETTLED BY ARBITRATION IN SAN FRANCISCO, CA, UNDER
  66. * THE RULES OF THE INTERNATIONAL CHAMBER OF COMMERCE (ICC).
  67. *
  68. *****************************************************************************/
  69. #ifndef __DPI_REG_H__
  70. #define __DPI_REG_H__
  71. #include <stddef.h>
  72. #ifdef __cplusplus
  73. extern "C" {
  74. #endif
  75. typedef struct
  76. {
  77. unsigned EN : 1;
  78. unsigned rsv_1 : 31;
  79. }DPI_REG_EN, *PDPI_REG_EN;
  80. typedef struct
  81. {
  82. unsigned DPI_OEN_OFF : 1;
  83. unsigned DPI_BG_EN : 1;
  84. unsigned INTL_EN : 1;
  85. unsigned TDFP_EN : 1;
  86. unsigned CLPF_EN : 1;
  87. unsigned YUV422_EN : 1;
  88. unsigned YCMUX_EN : 1;
  89. unsigned EMBSYNC_EN : 1;
  90. unsigned INTF_RGB : 1;
  91. unsigned rsv_9 : 23;
  92. } DPI_REG_CNTL, *PDPI_REG_CNTL;
  93. typedef struct
  94. {
  95. unsigned VSYNC : 1;
  96. unsigned rsv_1 : 31;
  97. } DPI_REG_INTERRUPT, *PDPI_REG_INTERRUPT;
  98. typedef struct
  99. {
  100. UINT16 WIDTH;
  101. UINT16 HEIGHT;
  102. } DPI_REG_SIZE, *PDPI_REG_SIZE;
  103. typedef struct
  104. {
  105. unsigned DIVISOR : 5;
  106. unsigned rsv_5 : 3;
  107. unsigned DUTY : 5;
  108. unsigned rsv_13 : 18;
  109. unsigned POLARITY : 1;
  110. } DPI_REG_CLKCNTL, *PDPI_REG_CLKCNTL;
  111. typedef struct
  112. {
  113. unsigned V_CNT : 13;
  114. unsigned rsv_13 : 3;
  115. unsigned FIELD : 1;
  116. unsigned rsv_17 : 3;
  117. unsigned TDLR : 1;
  118. unsigned rsv_21 : 3;
  119. unsigned DPI_START : 1;
  120. unsigned TGEN_START : 1;
  121. unsigned OUT_EN : 1;
  122. unsigned rsv_27 : 5;
  123. } DPI_REG_STATUS, *PDPI_REG_STATUS;
  124. typedef struct
  125. {
  126. unsigned OFIX_EN : 1;
  127. unsigned rsv_1 : 30;
  128. unsigned DPI_OEN_ON : 1;
  129. } DPI_REG_TMODE, *PDPI_REG_TMODE;
  130. typedef struct
  131. {
  132. unsigned HPW : 8;
  133. unsigned HBP : 8;
  134. unsigned HFP : 8;
  135. unsigned HSYNC_POL : 1;
  136. unsigned DE_POL : 1;
  137. unsigned rsv_26 : 6;
  138. } DPI_REG_TGEN_HCNTL, *PDPI_REG_TGEN_HCNTL;
  139. typedef struct
  140. {
  141. unsigned HBP : 12;
  142. unsigned rsv_12 : 4;
  143. unsigned HFP : 12;
  144. unsigned rsv_28 : 4;
  145. } DPI_REG_TGEN_HPORCH, *PDPI_REG_TGEN_HPORCH;
  146. typedef struct
  147. {
  148. unsigned VPW_LODD : 8;
  149. unsigned VPW_HALF_LODD : 1;
  150. unsigned rsv_9 : 23;
  151. } DPI_REG_TGEN_VWIDTH_LODD, *PDPI_REG_TGEN_VWIDTH_LODD;
  152. typedef struct
  153. {
  154. unsigned VBP_LODD : 8;
  155. unsigned VBP_HALF_LODD : 1;
  156. unsigned rsv_9 : 7;
  157. unsigned VFP_LODD : 8;
  158. unsigned VFP_HALF_LODD : 1;
  159. unsigned rsv_25 : 7;
  160. } DPI_REG_TGEN_VPORCH_LODD, *PDPI_REG_TGEN_VPORCH_LODD;
  161. typedef struct
  162. {
  163. unsigned VPW_LEVEN : 7;
  164. unsigned VPW_HALF_LEVEN : 1;
  165. unsigned rsv_8 : 24;
  166. } DPI_REG_TGEN_VWIDTH_LEVEN, *PDPI_REG_TGEN_VWIDTH_LEVEN;
  167. typedef struct
  168. {
  169. unsigned VBP_LEVEN : 8;
  170. unsigned VBP_HALF_LEVEN : 1;
  171. unsigned rsv_9 : 7;
  172. unsigned VFP_LEVEN : 8;
  173. unsigned VFP_HALF_LEVEN : 1;
  174. unsigned rsv_25 : 7;
  175. } DPI_REG_TGEN_VPORCH_LEVEN, *PDPI_REG_TGEN_VPORCH_LEVEN;
  176. typedef struct
  177. {
  178. unsigned VPW_RODD : 8;
  179. unsigned VPW_HALF_RODD : 1;
  180. unsigned rsv_9 : 23;
  181. } DPI_REG_TGEN_VWIDTH_RODD, *PDPI_REG_TGEN_VWIDTH_RODD;
  182. typedef struct
  183. {
  184. unsigned VBP_RODD : 8;
  185. unsigned VBP_HALF_RODD : 1;
  186. unsigned rsv_9 : 7;
  187. unsigned VFP_RODD : 8;
  188. unsigned VFP_HALF_RODD : 1;
  189. unsigned rsv_25 : 7;
  190. } DPI_REG_TGEN_VPORCH_RODD, *PDPI_REG_TGEN_VPORCH_RODD;
  191. typedef struct
  192. {
  193. unsigned VPW_REVEN : 7;
  194. unsigned VPW_HALF_REVEN : 1;
  195. unsigned rsv_8 : 24;
  196. } DPI_REG_TGEN_VWIDTH_REVEN, *PDPI_REG_TGEN_VWIDTH_REVEN;
  197. typedef struct
  198. {
  199. unsigned VBP_REVEN : 8;
  200. unsigned VBP_HALF_REVEN : 1;
  201. unsigned rsv_9 : 7;
  202. unsigned VFP_REVEN : 8;
  203. unsigned VFP_HALF_REVEN : 1;
  204. unsigned rsv_25 : 7;
  205. } DPI_REG_TGEN_VPORCH_REVEN, *PDPI_REG_TGEN_VPORCH_REVEN;
  206. typedef struct
  207. {
  208. unsigned ESAV_VOFST_LODD : 8;
  209. unsigned ESAV_VWID_LODD : 8;
  210. unsigned ESAV_VOFST_LEVEN : 8;
  211. unsigned ESAV_VWID_LEVEN : 8;
  212. } DPI_REG_ESAV_VTIML, *PDPI_REG_ESAV_VTIML;
  213. typedef struct
  214. {
  215. unsigned ESAV_VOFST_RODD : 8;
  216. unsigned ESAV_VWID_RODD : 8;
  217. unsigned ESAV_VOFST_REVEN : 8;
  218. unsigned ESAV_VWID_REVEN : 8;
  219. } DPI_REG_ESAV_VTIMR, *PDPI_REG_ESAV_VTIMR;
  220. typedef struct
  221. {
  222. unsigned ESAV_FOFST_ODD : 8;
  223. unsigned ESAV_FOFST_EVEN : 8;
  224. unsigned rsv_16 : 16;
  225. } DPI_REG_ESAV_FTIM, *PDPI_REG_ESAV_FTIM;
  226. typedef struct
  227. {
  228. unsigned VPW : 8;
  229. unsigned VBP : 8;
  230. unsigned VFP : 8;
  231. unsigned VSYNC_POL : 1;
  232. unsigned rsv_25 : 7;
  233. } DPI_REG_TGEN_VCNTL, *PDPI_REG_TGEN_VCNTL;
  234. typedef struct
  235. {
  236. unsigned BG_RIGHT : 11;
  237. unsigned rsv_11 : 5;
  238. unsigned BG_LEFT : 11;
  239. unsigned rsv_27 : 5;
  240. } DPI_REG_BG_HCNTL, *PDPI_REG_BG_HCNTL;
  241. typedef struct
  242. {
  243. unsigned BG_BOT : 10;
  244. unsigned rsv_10 : 6;
  245. unsigned BG_TOP : 10;
  246. unsigned rsv_26 : 6;
  247. } DPI_REG_BG_VCNTL, *PDPI_REG_BG_VCNTL;
  248. typedef struct
  249. {
  250. unsigned BG_B : 8;
  251. unsigned BG_G : 8;
  252. unsigned BG_R : 8;
  253. unsigned rsv_24 : 8;
  254. } DPI_REG_BG_COLOR, *PDPI_REG_BG_COLOR;
  255. typedef struct
  256. {
  257. unsigned VSYNC_POL : 1;
  258. unsigned HSYNC_POL : 1;
  259. unsigned DE_POL : 1;
  260. unsigned rsv_3 : 5;
  261. unsigned TDLR_INV : 1;
  262. unsigned FIELD_INV : 1;
  263. unsigned rsv_10 : 22;
  264. } DPI_REG_TGEN_POL, *PDPI_REG_TGEN_POL;
  265. typedef struct
  266. {
  267. unsigned CLPF_TYPE : 2;
  268. unsigned rsv2 : 2;
  269. unsigned ROUND_EN : 1;
  270. unsigned rsv5 : 27;
  271. }DPI_REG_CLPF_SETTING, *PDPI_REG_CLPF_SETTING;
  272. typedef struct
  273. {
  274. unsigned Y_LIMIT_BOT : 12;
  275. unsigned rsv12 : 4;
  276. unsigned Y_LIMIT_TOP : 12;
  277. unsigned rsv28 : 4;
  278. }DPI_REG_Y_LIMIT, *PDPI_REG_Y_LIMIT;
  279. typedef struct
  280. {
  281. unsigned C_LIMIT_BOT : 12;
  282. unsigned rsv12 : 4;
  283. unsigned C_LIMIT_TOP : 12;
  284. unsigned rsv28 : 4;
  285. }DPI_REG_C_LIMIT, *PDPI_REG_C_LIMIT;
  286. typedef struct
  287. {
  288. unsigned UV_SWAP : 1;
  289. unsigned rsv1 : 3;
  290. unsigned CR_DELSEL : 1;
  291. unsigned CB_DELSEL : 1;
  292. unsigned Y_DELSEL : 1;
  293. unsigned DE_DELSEL : 1;
  294. }DPI_REG_YUV422_SETTING, *PDPI_REG_YUV422_SETTING;
  295. typedef struct
  296. {
  297. unsigned EMBVSYNC_R_CR : 1;
  298. unsigned EMBVSYNC_G_Y : 1;
  299. unsigned EMBVSYNC_B_CB : 1;
  300. unsigned rsv_3 : 1;
  301. unsigned ESAV_F_INV : 1;
  302. unsigned ESAV_V_INV : 1;
  303. unsigned ESAV_H_INV : 1;
  304. unsigned rsv_7 : 1;
  305. unsigned ESAV_CODE_MAN : 1;
  306. unsigned rsv_9 : 23;
  307. }DPI_REG_EMBSYNC_SETTING;
  308. typedef struct
  309. {
  310. DPI_REG_EN DPI_EN; // 0000
  311. UINT32 DPI_RST; // 0004
  312. DPI_REG_INTERRUPT INT_ENABLE; // 0008
  313. DPI_REG_INTERRUPT INT_STATUS; // 000C
  314. DPI_REG_CNTL CNTL; // 0010
  315. DPI_REG_CLKCNTL CLK_CNTL; // 0014
  316. DPI_REG_SIZE SIZE; // 0018
  317. UINT32 TGEN_HWIDTH; // 001C
  318. DPI_REG_TGEN_HPORCH TGEN_HPORCH; // 0020
  319. DPI_REG_TGEN_VWIDTH_LODD TGEN_VWIDTH_LODD; // 0024
  320. DPI_REG_TGEN_VPORCH_LODD TGEN_VPORCH_LODD; // 0028
  321. DPI_REG_TGEN_VWIDTH_LEVEN TGEN_VWIDTH_LEVEN; // 002C
  322. DPI_REG_TGEN_VPORCH_LEVEN TGEN_VPORCH_LEVEN; // 0030
  323. DPI_REG_TGEN_VWIDTH_RODD TGEN_VWIDTH_RODD; // 0034
  324. DPI_REG_TGEN_VPORCH_RODD TGEN_VPORCH_RODD; // 0038
  325. DPI_REG_TGEN_VWIDTH_REVEN TGEN_VWIDTH_REVEN; // 003C
  326. DPI_REG_TGEN_VPORCH_REVEN TGEN_VPORCH_REVEN; // 0040
  327. DPI_REG_ESAV_VTIML ESAV_VTIML; // 0044
  328. DPI_REG_ESAV_VTIMR ESAV_VTIMR; // 0048
  329. DPI_REG_ESAV_FTIM ESAV_FTIM; // 004C
  330. DPI_REG_BG_HCNTL BG_HCNTL; // 0050
  331. DPI_REG_BG_VCNTL BG_VCNTL; // 0054
  332. DPI_REG_BG_COLOR BG_COLOR; // 0058
  333. DPI_REG_TGEN_POL TGEN_POL; // 005C
  334. DPI_REG_STATUS STATUS; // 0060
  335. UINT32 rsv_64[9]; //0064..0084
  336. DPI_REG_CLPF_SETTING CLPF_SETTING; //0088
  337. DPI_REG_Y_LIMIT Y_LIMIT; //008C
  338. DPI_REG_C_LIMIT C_LIMIT; //0090
  339. DPI_REG_YUV422_SETTING YUV422_SETTING; //0094
  340. UINT32 YCMUX_SETTING; //0098
  341. DPI_REG_EMBSYNC_SETTING EMBSYNC_SETTING; //009C
  342. UINT32 rsv_a0[3]; //00A0..00A8
  343. DPI_REG_TMODE TMODE; //00AC
  344. UINT32 CHKSUM; //00B0
  345. } volatile DPI_REGS, *PDPI_REGS;
  346. #ifndef BUILD_LK
  347. STATIC_ASSERT(0x0018 == offsetof(DPI_REGS, SIZE));
  348. STATIC_ASSERT(0x0034 == offsetof(DPI_REGS, TGEN_VWIDTH_RODD));
  349. STATIC_ASSERT(0x0058 == offsetof(DPI_REGS, BG_COLOR));
  350. STATIC_ASSERT(0x009C == offsetof(DPI_REGS, EMBSYNC_SETTING));
  351. STATIC_ASSERT(0x00B0 == offsetof(DPI_REGS, CHKSUM));
  352. #endif
  353. #ifdef __cplusplus
  354. }
  355. #endif
  356. #endif // __DPI_REG_H__