dpi_reg.h 12 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378
  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. unsigned EN : 1;
  77. unsigned rsv_1 : 31;
  78. } DPI_REG_EN, *PDPI_REG_EN;
  79. typedef struct {
  80. unsigned DPI_OEN_OFF : 1;
  81. unsigned DPI_BG_EN : 1;
  82. unsigned INTL_EN : 1;
  83. unsigned TDFP_EN : 1;
  84. unsigned CLPF_EN : 1;
  85. unsigned YUV422_EN : 1;
  86. unsigned YCMUX_EN : 1;
  87. unsigned EMBSYNC_EN : 1;
  88. unsigned INTF_RGB : 1;
  89. unsigned rsv_9 : 23;
  90. } DPI_REG_CNTL, *PDPI_REG_CNTL;
  91. typedef struct {
  92. unsigned VSYNC : 1;
  93. unsigned rsv_1 : 31;
  94. } DPI_REG_INTERRUPT, *PDPI_REG_INTERRUPT;
  95. typedef struct {
  96. UINT16 WIDTH;
  97. UINT16 HEIGHT;
  98. } DPI_REG_SIZE, *PDPI_REG_SIZE;
  99. typedef struct {
  100. unsigned DIVISOR : 5;
  101. unsigned rsv_5 : 3;
  102. unsigned DUTY : 5;
  103. unsigned rsv_13 : 18;
  104. unsigned POLARITY : 1;
  105. } DPI_REG_CLKCNTL, *PDPI_REG_CLKCNTL;
  106. typedef struct {
  107. unsigned V_CNT : 13;
  108. unsigned rsv_13 : 3;
  109. unsigned FIELD : 1;
  110. unsigned rsv_17 : 3;
  111. unsigned TDLR : 1;
  112. unsigned rsv_21 : 3;
  113. unsigned DPI_START : 1;
  114. unsigned TGEN_START : 1;
  115. unsigned OUT_EN : 1;
  116. unsigned rsv_27 : 5;
  117. } DPI_REG_STATUS, *PDPI_REG_STATUS;
  118. typedef struct {
  119. unsigned OFIX_EN : 1;
  120. unsigned rsv_1 : 30;
  121. unsigned DPI_OEN_ON : 1;
  122. } DPI_REG_TMODE, *PDPI_REG_TMODE;
  123. typedef struct {
  124. unsigned HPW : 8;
  125. unsigned HBP : 8;
  126. unsigned HFP : 8;
  127. unsigned HSYNC_POL : 1;
  128. unsigned DE_POL : 1;
  129. unsigned rsv_26 : 6;
  130. } DPI_REG_TGEN_HCNTL, *PDPI_REG_TGEN_HCNTL;
  131. typedef struct {
  132. unsigned HBP : 12;
  133. unsigned rsv_12 : 4;
  134. unsigned HFP : 12;
  135. unsigned rsv_28 : 4;
  136. } DPI_REG_TGEN_HPORCH, *PDPI_REG_TGEN_HPORCH;
  137. typedef struct {
  138. unsigned VPW_LODD : 8;
  139. unsigned VPW_HALF_LODD : 1;
  140. unsigned rsv_9 : 23;
  141. } DPI_REG_TGEN_VWIDTH_LODD, *PDPI_REG_TGEN_VWIDTH_LODD;
  142. typedef struct {
  143. unsigned VBP_LODD : 8;
  144. unsigned VBP_HALF_LODD : 1;
  145. unsigned rsv_9 : 7;
  146. unsigned VFP_LODD : 8;
  147. unsigned VFP_HALF_LODD : 1;
  148. unsigned rsv_25 : 7;
  149. } DPI_REG_TGEN_VPORCH_LODD, *PDPI_REG_TGEN_VPORCH_LODD;
  150. typedef struct {
  151. unsigned VPW_LEVEN : 7;
  152. unsigned VPW_HALF_LEVEN : 1;
  153. unsigned rsv_8 : 24;
  154. } DPI_REG_TGEN_VWIDTH_LEVEN, *PDPI_REG_TGEN_VWIDTH_LEVEN;
  155. typedef struct {
  156. unsigned VBP_LEVEN : 8;
  157. unsigned VBP_HALF_LEVEN : 1;
  158. unsigned rsv_9 : 7;
  159. unsigned VFP_LEVEN : 8;
  160. unsigned VFP_HALF_LEVEN : 1;
  161. unsigned rsv_25 : 7;
  162. } DPI_REG_TGEN_VPORCH_LEVEN, *PDPI_REG_TGEN_VPORCH_LEVEN;
  163. typedef struct {
  164. unsigned VPW_RODD : 8;
  165. unsigned VPW_HALF_RODD : 1;
  166. unsigned rsv_9 : 23;
  167. } DPI_REG_TGEN_VWIDTH_RODD, *PDPI_REG_TGEN_VWIDTH_RODD;
  168. typedef struct {
  169. unsigned VBP_RODD : 8;
  170. unsigned VBP_HALF_RODD : 1;
  171. unsigned rsv_9 : 7;
  172. unsigned VFP_RODD : 8;
  173. unsigned VFP_HALF_RODD : 1;
  174. unsigned rsv_25 : 7;
  175. } DPI_REG_TGEN_VPORCH_RODD, *PDPI_REG_TGEN_VPORCH_RODD;
  176. typedef struct {
  177. unsigned VPW_REVEN : 7;
  178. unsigned VPW_HALF_REVEN : 1;
  179. unsigned rsv_8 : 24;
  180. } DPI_REG_TGEN_VWIDTH_REVEN, *PDPI_REG_TGEN_VWIDTH_REVEN;
  181. typedef struct {
  182. unsigned VBP_REVEN : 8;
  183. unsigned VBP_HALF_REVEN : 1;
  184. unsigned rsv_9 : 7;
  185. unsigned VFP_REVEN : 8;
  186. unsigned VFP_HALF_REVEN : 1;
  187. unsigned rsv_25 : 7;
  188. } DPI_REG_TGEN_VPORCH_REVEN, *PDPI_REG_TGEN_VPORCH_REVEN;
  189. typedef struct {
  190. unsigned ESAV_VOFST_LODD : 8;
  191. unsigned ESAV_VWID_LODD : 8;
  192. unsigned ESAV_VOFST_LEVEN : 8;
  193. unsigned ESAV_VWID_LEVEN : 8;
  194. } DPI_REG_ESAV_VTIML, *PDPI_REG_ESAV_VTIML;
  195. typedef struct {
  196. unsigned ESAV_VOFST_RODD : 8;
  197. unsigned ESAV_VWID_RODD : 8;
  198. unsigned ESAV_VOFST_REVEN : 8;
  199. unsigned ESAV_VWID_REVEN : 8;
  200. } DPI_REG_ESAV_VTIMR, *PDPI_REG_ESAV_VTIMR;
  201. typedef struct {
  202. unsigned ESAV_FOFST_ODD : 8;
  203. unsigned ESAV_FOFST_EVEN : 8;
  204. unsigned rsv_16 : 16;
  205. } DPI_REG_ESAV_FTIM, *PDPI_REG_ESAV_FTIM;
  206. typedef struct {
  207. unsigned VPW : 8;
  208. unsigned VBP : 8;
  209. unsigned VFP : 8;
  210. unsigned VSYNC_POL : 1;
  211. unsigned rsv_25 : 7;
  212. } DPI_REG_TGEN_VCNTL, *PDPI_REG_TGEN_VCNTL;
  213. typedef struct {
  214. unsigned BG_RIGHT : 11;
  215. unsigned rsv_11 : 5;
  216. unsigned BG_LEFT : 11;
  217. unsigned rsv_27 : 5;
  218. } DPI_REG_BG_HCNTL, *PDPI_REG_BG_HCNTL;
  219. typedef struct {
  220. unsigned BG_BOT : 10;
  221. unsigned rsv_10 : 6;
  222. unsigned BG_TOP : 10;
  223. unsigned rsv_26 : 6;
  224. } DPI_REG_BG_VCNTL, *PDPI_REG_BG_VCNTL;
  225. typedef struct {
  226. unsigned BG_B : 8;
  227. unsigned BG_G : 8;
  228. unsigned BG_R : 8;
  229. unsigned rsv_24 : 8;
  230. } DPI_REG_BG_COLOR, *PDPI_REG_BG_COLOR;
  231. typedef struct {
  232. unsigned VSYNC_POL : 1;
  233. unsigned HSYNC_POL : 1;
  234. unsigned DE_POL : 1;
  235. unsigned rsv_3 : 5;
  236. unsigned TDLR_INV : 1;
  237. unsigned FIELD_INV : 1;
  238. unsigned rsv_10 : 22;
  239. } DPI_REG_TGEN_POL, *PDPI_REG_TGEN_POL;
  240. typedef struct {
  241. unsigned CLPF_TYPE : 2;
  242. unsigned rsv2 : 2;
  243. unsigned ROUND_EN : 1;
  244. unsigned rsv5 : 27;
  245. } DPI_REG_CLPF_SETTING, *PDPI_REG_CLPF_SETTING;
  246. typedef struct {
  247. unsigned Y_LIMIT_BOT : 12;
  248. unsigned rsv12 : 4;
  249. unsigned Y_LIMIT_TOP : 12;
  250. unsigned rsv28 : 4;
  251. } DPI_REG_Y_LIMIT, *PDPI_REG_Y_LIMIT;
  252. typedef struct {
  253. unsigned C_LIMIT_BOT : 12;
  254. unsigned rsv12 : 4;
  255. unsigned C_LIMIT_TOP : 12;
  256. unsigned rsv28 : 4;
  257. } DPI_REG_C_LIMIT, *PDPI_REG_C_LIMIT;
  258. typedef struct {
  259. unsigned UV_SWAP : 1;
  260. unsigned rsv1 : 3;
  261. unsigned CR_DELSEL : 1;
  262. unsigned CB_DELSEL : 1;
  263. unsigned Y_DELSEL : 1;
  264. unsigned DE_DELSEL : 1;
  265. } DPI_REG_YUV422_SETTING, *PDPI_REG_YUV422_SETTING;
  266. typedef struct {
  267. unsigned EMBVSYNC_R_CR : 1;
  268. unsigned EMBVSYNC_G_Y : 1;
  269. unsigned EMBVSYNC_B_CB : 1;
  270. unsigned rsv_3 : 1;
  271. unsigned ESAV_F_INV : 1;
  272. unsigned ESAV_V_INV : 1;
  273. unsigned ESAV_H_INV : 1;
  274. unsigned rsv_7 : 1;
  275. unsigned ESAV_CODE_MAN : 1;
  276. unsigned rsv_9 : 23;
  277. } DPI_REG_EMBSYNC_SETTING;
  278. typedef struct {
  279. DPI_REG_EN DPI_EN; // 0000
  280. UINT32 DPI_RST; // 0004
  281. DPI_REG_INTERRUPT INT_ENABLE; // 0008
  282. DPI_REG_INTERRUPT INT_STATUS; // 000C
  283. DPI_REG_CNTL CNTL; // 0010
  284. DPI_REG_CLKCNTL CLK_CNTL; // 0014
  285. DPI_REG_SIZE SIZE; // 0018
  286. UINT32 TGEN_HWIDTH; // 001C
  287. DPI_REG_TGEN_HPORCH TGEN_HPORCH; // 0020
  288. DPI_REG_TGEN_VWIDTH_LODD TGEN_VWIDTH_LODD; // 0024
  289. DPI_REG_TGEN_VPORCH_LODD TGEN_VPORCH_LODD; // 0028
  290. DPI_REG_TGEN_VWIDTH_LEVEN TGEN_VWIDTH_LEVEN; // 002C
  291. DPI_REG_TGEN_VPORCH_LEVEN TGEN_VPORCH_LEVEN; // 0030
  292. DPI_REG_TGEN_VWIDTH_RODD TGEN_VWIDTH_RODD; // 0034
  293. DPI_REG_TGEN_VPORCH_RODD TGEN_VPORCH_RODD; // 0038
  294. DPI_REG_TGEN_VWIDTH_REVEN TGEN_VWIDTH_REVEN; // 003C
  295. DPI_REG_TGEN_VPORCH_REVEN TGEN_VPORCH_REVEN; // 0040
  296. DPI_REG_ESAV_VTIML ESAV_VTIML; // 0044
  297. DPI_REG_ESAV_VTIMR ESAV_VTIMR; // 0048
  298. DPI_REG_ESAV_FTIM ESAV_FTIM; // 004C
  299. DPI_REG_BG_HCNTL BG_HCNTL; // 0050
  300. DPI_REG_BG_VCNTL BG_VCNTL; // 0054
  301. DPI_REG_BG_COLOR BG_COLOR; // 0058
  302. DPI_REG_TGEN_POL TGEN_POL; // 005C
  303. DPI_REG_STATUS STATUS; // 0060
  304. UINT32 rsv_64[9]; //0064..0084
  305. DPI_REG_CLPF_SETTING CLPF_SETTING; //0088
  306. DPI_REG_Y_LIMIT Y_LIMIT; //008C
  307. DPI_REG_C_LIMIT C_LIMIT; //0090
  308. DPI_REG_YUV422_SETTING YUV422_SETTING; //0094
  309. UINT32 YCMUX_SETTING; //0098
  310. DPI_REG_EMBSYNC_SETTING EMBSYNC_SETTING; //009C
  311. UINT32 rsv_a0[3]; //00A0..00A8
  312. DPI_REG_TMODE TMODE; //00AC
  313. UINT32 CHKSUM; //00B0
  314. } volatile DPI_REGS, *PDPI_REGS;
  315. #ifndef BUILD_LK
  316. STATIC_ASSERT(0x0018 == offsetof(DPI_REGS, SIZE));
  317. STATIC_ASSERT(0x0034 == offsetof(DPI_REGS, TGEN_VWIDTH_RODD));
  318. STATIC_ASSERT(0x0058 == offsetof(DPI_REGS, BG_COLOR));
  319. STATIC_ASSERT(0x009C == offsetof(DPI_REGS, EMBSYNC_SETTING));
  320. STATIC_ASSERT(0x00B0 == offsetof(DPI_REGS, CHKSUM));
  321. #endif
  322. #ifdef __cplusplus
  323. }
  324. #endif
  325. #endif // __DPI_REG_H__