ddp_reg.h 88 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566156715681569157015711572157315741575157615771578157915801581158215831584158515861587158815891590159115921593159415951596159715981599160016011602160316041605160616071608160916101611161216131614161516161617161816191620162116221623162416251626162716281629163016311632163316341635163616371638163916401641164216431644164516461647164816491650165116521653165416551656165716581659166016611662166316641665166616671668166916701671167216731674167516761677167816791680168116821683168416851686168716881689169016911692169316941695169616971698169917001701170217031704170517061707170817091710171117121713171417151716171717181719172017211722172317241725172617271728172917301731173217331734173517361737173817391740174117421743174417451746174717481749175017511752175317541755175617571758175917601761176217631764176517661767176817691770177117721773177417751776177717781779178017811782178317841785178617871788178917901791179217931794179517961797179817991800180118021803180418051806180718081809181018111812181318141815181618171818181918201821182218231824182518261827182818291830183118321833183418351836183718381839184018411842184318441845184618471848184918501851185218531854185518561857185818591860186118621863186418651866186718681869187018711872187318741875187618771878187918801881188218831884188518861887188818891890189118921893189418951896189718981899190019011902190319041905190619071908190919101911191219131914191519161917191819191920192119221923192419251926192719281929193019311932193319341935193619371938193919401941194219431944194519461947194819491950195119521953195419551956195719581959196019611962196319641965196619671968196919701971197219731974197519761977197819791980198119821983198419851986198719881989199019911992199319941995199619971998199920002001200220032004200520062007200820092010201120122013201420152016201720182019202020212022202320242025202620272028202920302031203220332034203520362037203820392040204120422043204420452046204720482049205020512052205320542055205620572058205920602061206220632064206520662067206820692070207120722073207420752076207720782079208020812082208320842085208620872088208920902091209220932094209520962097209820992100210121022103210421052106210721082109211021112112211321142115211621172118211921202121212221232124212521262127212821292130
  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) 2015. 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. #ifndef _DDP_REG_H_
  32. #define _DDP_REG_H_
  33. #include <platform/mt_typedefs.h>
  34. #include <platform/sync_write.h>
  35. #include <platform/mt_reg_base.h>
  36. typedef void * cmdqRecHandle;
  37. // MIPITX and DSI
  38. typedef struct {
  39. unsigned RG_DSI_LDOCORE_EN:1;
  40. unsigned RG_DSI_CKG_LDOOUT_EN:1;
  41. unsigned RG_DSI_BCLK_SEL:2;
  42. unsigned RG_DSI_LD_IDX_SEL:3;
  43. unsigned rsv_7:1;
  44. unsigned RG_DSI_PHYCLK_SEL:2;
  45. unsigned RG_DSI_DSICLK_FREQ_SEL:1;
  46. unsigned RG_DSI_LPTX_CLMP_EN:1;
  47. unsigned rsv_12:20;
  48. } MIPITX_DSI_CON_REG, *PMIPITX_DSI_CON_REG;
  49. typedef struct {
  50. unsigned RG_DSI_LNTC_LDOOUT_EN:1;
  51. unsigned RG_DSI_LNTC_CKLANE_EN:1;
  52. unsigned RG_DSI_LNTC_LPTX_IPLUS1:1;
  53. unsigned RG_DSI_LNTC_LPTX_IPLUS2:1;
  54. unsigned RG_DSI_LNTC_LPTX_IMINUS:1;
  55. unsigned RG_DSI_LNTC_LPCD_IPLUS:1;
  56. unsigned RG_DSI_LNTC_LPCD_IMINUS:1;
  57. unsigned rsv_7:1;
  58. unsigned RG_DSI_LNTC_RT_CODE:4;
  59. unsigned rsv_12:20;
  60. } MIPITX_DSI_CLOCK_LANE_REG, *PMIPITX_DSI_CLOCK_LANE_REG;
  61. typedef struct {
  62. unsigned RG_DSI_LNT0_LDOOUT_EN:1;
  63. unsigned RG_DSI_LNT0_CKLANE_EN:1;
  64. unsigned RG_DSI_LNT0_LPTX_IPLUS1:1;
  65. unsigned RG_DSI_LNT0_LPTX_IPLUS2:1;
  66. unsigned RG_DSI_LNT0_LPTX_IMINUS:1;
  67. unsigned RG_DSI_LNT0_LPCD_IPLUS:1;
  68. unsigned RG_DSI_LNT0_LPCD_IMINUS:1;
  69. unsigned rsv_7:1;
  70. unsigned RG_DSI_LNT0_RT_CODE:4;
  71. unsigned rsv_11:20;
  72. } MIPITX_DSI_DATA_LANE0_REG, *PMIPITX_DSI_DATA_LANE0_REG;
  73. typedef struct {
  74. unsigned RG_DSI_LNT1_LDOOUT_EN:1;
  75. unsigned RG_DSI_LNT1_CKLANE_EN:1;
  76. unsigned RG_DSI_LNT1_LPTX_IPLUS1:1;
  77. unsigned RG_DSI_LNT1_LPTX_IPLUS2:1;
  78. unsigned RG_DSI_LNT1_LPTX_IMINUS:1;
  79. unsigned RG_DSI_LNT1_LPCD_IPLUS:1;
  80. unsigned RG_DSI_LNT1_LPCD_IMINUS:1;
  81. unsigned rsv_7:1;
  82. unsigned RG_DSI_LNT1_RT_CODE:4;
  83. unsigned rsv_11:20;
  84. } MIPITX_DSI_DATA_LANE1_REG, *PMIPITX_DSI_DATA_LANE1_REG;
  85. typedef struct {
  86. unsigned RG_DSI_LNT2_LDOOUT_EN:1;
  87. unsigned RG_DSI_LNT2_CKLANE_EN:1;
  88. unsigned RG_DSI_LNT2_LPTX_IPLUS1:1;
  89. unsigned RG_DSI_LNT2_LPTX_IPLUS2:1;
  90. unsigned RG_DSI_LNT2_LPTX_IMINUS:1;
  91. unsigned RG_DSI_LNT2_LPCD_IPLUS:1;
  92. unsigned RG_DSI_LNT2_LPCD_IMINUS:1;
  93. unsigned rsv_7:1;
  94. unsigned RG_DSI_LNT2_RT_CODE:4;
  95. unsigned rsv_11:20;
  96. } MIPITX_DSI_DATA_LANE2_REG, *PMIPITX_DSI_DATA_LANE2_REG;
  97. typedef struct {
  98. unsigned RG_DSI_LNT3_LDOOUT_EN:1;
  99. unsigned RG_DSI_LNT3_CKLANE_EN:1;
  100. unsigned RG_DSI_LNT3_LPTX_IPLUS1:1;
  101. unsigned RG_DSI_LNT3_LPTX_IPLUS2:1;
  102. unsigned RG_DSI_LNT3_LPTX_IMINUS:1;
  103. unsigned RG_DSI_LNT3_LPCD_IPLUS:1;
  104. unsigned RG_DSI_LNT3_LPCD_IMINUS:1;
  105. unsigned rsv_7:1;
  106. unsigned RG_DSI_LNT3_RT_CODE:4;
  107. unsigned rsv_11:20;
  108. } MIPITX_DSI_DATA_LANE3_REG, *PMIPITX_DSI_DATA_LANE3_REG;
  109. typedef struct {
  110. unsigned RG_DSI_LNT_INTR_EN:1;
  111. unsigned RG_DSI_LNT_HS_BIAS_EN:1;
  112. unsigned RG_DSI_LNT_IMP_CAL_EN:1;
  113. unsigned RG_DSI_LNT_TESTMODE_EN:1;
  114. unsigned RG_DSI_LNT_IMP_CAL_CODE:4;
  115. unsigned RG_DSI_LNT_AIO_SEL:3;
  116. unsigned RG_DSI_PAD_TIE_LOW_EN:1;
  117. unsigned rsv_12:1;
  118. unsigned RG_DSI_PRESERVE:3;
  119. unsigned rsv_16:16;
  120. } MIPITX_DSI_TOP_CON_REG, *PMIPITX_DSI_TOP_CON_REG;
  121. typedef struct {
  122. unsigned RG_DSI_BG_CORE_EN:1;
  123. unsigned RG_DSI_BG_CKEN:1;
  124. unsigned RG_DSI_BG_DIV:2;
  125. unsigned RG_DSI_BG_FAST_CHARGE:1;
  126. unsigned RG_DSI_V12_SEL:3;
  127. unsigned RG_DSI_V10_SEL:3;
  128. unsigned RG_DSI_V072_SEL:3;
  129. unsigned RG_DSI_V04_SEL:3;
  130. unsigned RG_DSI_V032_SEL:3;
  131. unsigned RG_DSI_V02_SEL:3;
  132. unsigned rsv_23:1;
  133. unsigned RG_DSI_BG_R1_TRIM:4;
  134. unsigned RG_DSI_BG_R2_TRIM:4;
  135. } MIPITX_DSI_BG_CON_REG, *PMIPITX_DSI_BG_CON_REG;
  136. typedef struct {
  137. unsigned RG_DSI0_MPPLL_PLL_EN:1;
  138. unsigned RG_DSI0_MPPLL_PREDIV:2;
  139. unsigned RG_DSI0_MPPLL_TXDIV0:2;
  140. unsigned RG_DSI0_MPPLL_TXDIV1:2;
  141. unsigned RG_DSI0_MPPLL_POSDIV:3;
  142. unsigned RG_DSI0_MPPLL_MONVC_EN:1;
  143. unsigned RG_DSI0_MPPLL_MONREF_EN:1;
  144. unsigned RG_DSI0_MPPLL_VDO_EN:1;
  145. unsigned rsv_13:19;
  146. } MIPITX_DSI_PLL_CON0_REG, *PMIPITX_DSI_PLL_CON0_REG;
  147. typedef struct {
  148. unsigned RG_DSI0_MPPLL_SDM_FRA_EN:1;
  149. unsigned RG_DSI0_MPPLL_SDM_SSC_PH_INIT:1;
  150. unsigned RG_DSI0_MPPLL_SDM_SSC_EN:1;
  151. unsigned rsv_3:13;
  152. unsigned RG_DSI0_MPPLL_SDM_SSC_PRD:16;
  153. } MIPITX_DSI_PLL_CON1_REG, *PMIPITX_DSI_PLL_CON1_REG;
  154. typedef struct {
  155. unsigned RG_DSI_MPPLL_SDM_PCW:31;
  156. unsigned rsv_31:1;
  157. } MIPITX_DSI_PLL_CON2_REG, *PMIPITX_DSI_PLL_CON2_REG;
  158. typedef struct {
  159. unsigned RG_DSI0_MPPLL_SDM_SSC_DELTA1:16;
  160. unsigned RG_DSI0_MPPLL_SDM_SSC_DELTA:16;
  161. } MIPITX_DSI_PLL_CON3_REG, *PMIPITX_DSI_PLL_CON3_REG;
  162. typedef struct {
  163. unsigned RG_DSI0_MPPLL_SDM_PCW_CHG:1;
  164. unsigned rsv_1:31;
  165. } MIPITX_DSI_PLL_CHG_REG, *PMIPITX_DSI_PLL_CHG_REG;
  166. typedef struct {
  167. unsigned RG_MPPLL_TST_EN:1;
  168. unsigned RG_MPPLL_TSTCK_EN:1;
  169. unsigned RG_MPPLL_TSTSEL:2;
  170. unsigned RG_MPPLL_S2QDIV:2;
  171. unsigned RG_MPPLL_PLLOUT_EN:1;
  172. unsigned RG_MPPLL_PRESERVE:5;
  173. unsigned rsv_12:20;
  174. } MIPITX_DSI_PLL_TOP_REG, *PMIPITX_DSI_PLL_TOP_REG;
  175. typedef struct {
  176. unsigned DA_DSI_MPPLL_SDM_PWR_ON:1;
  177. unsigned DA_DSI_MPPLL_SDM_ISO_EN:1;
  178. unsigned rsv_2:6;
  179. unsigned AD_DSI0_MPPLL_SDM_PWR_ACK:1;
  180. unsigned rsv_9:23;
  181. } MIPITX_DSI_PLL_PWR_REG, *PMIPITX_DSI_PLL_PWR_REG;
  182. typedef struct {
  183. unsigned RGS_DSI_LNT_IMP_CAL_OUTPUT:1;
  184. unsigned rsv_1:31;
  185. } MIPITX_DSI_RGS_REG, *PMIPITX_DSI_RGS_REG;
  186. typedef struct {
  187. unsigned RG_DSI0_GPI0_EN:1;
  188. unsigned RG_DSI0_GPI1_EN:1;
  189. unsigned RG_DSI0_GPI2_EN:1;
  190. unsigned RG_DSI0_GPI3_EN:1;
  191. unsigned RG_DSI0_GPI4_EN:1;
  192. unsigned RG_DSI0_GPI5_EN:1;
  193. unsigned RG_DSI0_GPI6_EN:1;
  194. unsigned RG_DSI0_GPI7_EN:1;
  195. unsigned RG_DSI0_GPI8_EN:1;
  196. unsigned RG_DSI0_GPI9_EN:1;
  197. unsigned RG_DSI0_GPI_SMT_EN:1;
  198. unsigned RG_DSI0_GPI_DRIVE_EN:1;
  199. unsigned rsv_12:20;
  200. } MIPITX_DSI_GPI_EN_REG, *PMIPITX_DSI_GPI_EN_REG;
  201. typedef struct {
  202. unsigned RG_DSI0_GPI0_PD:1;
  203. unsigned RG_DSI0_GPI1_PD:1;
  204. unsigned RG_DSI0_GPI2_PD:1;
  205. unsigned RG_DSI0_GPI3_PD:1;
  206. unsigned RG_DSI0_GPI4_PD:1;
  207. unsigned RG_DSI0_GPI5_PD:1;
  208. unsigned RG_DSI0_GPI6_PD:1;
  209. unsigned RG_DSI0_GPI7_PD:1;
  210. unsigned RG_DSI0_GPI8_PD:1;
  211. unsigned RG_DSI0_GPI9_PD:1;
  212. unsigned rsv_10:6;
  213. unsigned RG_DSI0_GPI0_PU:1;
  214. unsigned RG_DSI0_GPI1_PU:1;
  215. unsigned RG_DSI0_GPI2_PU:1;
  216. unsigned RG_DSI0_GPI3_PU:1;
  217. unsigned RG_DSI0_GPI4_PU:1;
  218. unsigned RG_DSI0_GPI5_PU:1;
  219. unsigned RG_DSI0_GPI6_PU:1;
  220. unsigned RG_DSI0_GPI7_PU:1;
  221. unsigned RG_DSI0_GPI8_PU:1;
  222. unsigned RG_DSI0_GPI9_PU:1;
  223. unsigned rsv_26:6;
  224. } MIPITX_DSI_GPI_PULL_REG, *PMIPITX_DSI_GPI_PULL_REG;
  225. typedef struct {
  226. unsigned MIPI_TX_PHY0_SEL:3;
  227. unsigned rsv_3:1;
  228. unsigned MIPI_TX_PHY1_SEL:3;
  229. unsigned rsv_7:1;
  230. unsigned MIPI_TX_PHY2_SEL:3;
  231. unsigned rsv_11:1;
  232. unsigned MIPI_TX_PHY3_SEL:3;
  233. unsigned rsv_15:1;
  234. unsigned MIPI_TX_PHYC_SEL:3;
  235. unsigned rsv_19:1;
  236. unsigned MIPI_TX_LPRX_SEL:3;
  237. unsigned rsv_23:9;
  238. } MIPITX_DSI_PHY_SEL_REG, *PMIPITX_DSI_PHY_SEL_REG;
  239. typedef struct {
  240. unsigned SW_CTRL_EN:1;
  241. unsigned rsv_1:31;
  242. } MIPITX_DSI_SW_CTRL_REG, *PMIPITX_DSI_SW_CTRL_REG;
  243. typedef struct {
  244. unsigned SW_LNTC_LPTX_PRE_OE:1;
  245. unsigned SW_LNTC_LPTX_OE:1;
  246. unsigned SW_LNTC_LPTX_DP:1;
  247. unsigned SW_LNTC_LPTX_DN:1;
  248. unsigned SW_LNTC_HSTX_PRE_OE:1;
  249. unsigned SW_LNTC_HSTX_OE:1;
  250. unsigned SW_LNTC_HSTX_RDY:1;
  251. unsigned SW_LNTC_LPRX_EN:1;
  252. unsigned SW_LNTC_HSTX_DATA:8;
  253. unsigned rsv_16:16;
  254. } MIPITX_DSI_SW_CTRL_CON0_REG, *PMIPITX_DSI_SW_CTRL_CON0_REG;
  255. typedef struct {
  256. unsigned SW_LNT0_LPTX_PRE_OE:1;
  257. unsigned SW_LNT0_LPTX_OE:1;
  258. unsigned SW_LNT0_LPTX_DP:1;
  259. unsigned SW_LNT0_LPTX_DN:1;
  260. unsigned SW_LNT0_HSTX_PRE_OE:1;
  261. unsigned SW_LNT0_HSTX_OE:1;
  262. unsigned SW_LNT0_HSTX_RDY:1;
  263. unsigned SW_LNT0_LPRX_EN:1;
  264. unsigned SW_LNT1_LPTX_PRE_OE:1;
  265. unsigned SW_LNT1_LPTX_OE:1;
  266. unsigned SW_LNT1_LPTX_DP:1;
  267. unsigned SW_LNT1_LPTX_DN:1;
  268. unsigned SW_LNT1_HSTX_PRE_OE:1;
  269. unsigned SW_LNT1_HSTX_OE:1;
  270. unsigned SW_LNT1_HSTX_RDY:1;
  271. unsigned SW_LNT1_LPRX_EN:1;
  272. unsigned SW_LNT2_LPTX_PRE_OE:1;
  273. unsigned SW_LNT2_LPTX_OE:1;
  274. unsigned SW_LNT2_LPTX_DP:1;
  275. unsigned SW_LNT2_LPTX_DN:1;
  276. unsigned SW_LNT2_HSTX_PRE_OE:1;
  277. unsigned SW_LNT2_HSTX_OE:1;
  278. unsigned SW_LNT2_HSTX_RDY:1;
  279. unsigned SW_LNT2_LPRX_EN:1;
  280. unsigned SW_LNT3_LPTX_PRE_OE:1;
  281. unsigned SW_LNT3_LPTX_OE:1;
  282. unsigned SW_LNT3_LPTX_DP:1;
  283. unsigned SW_LNT3_LPTX_DN:1;
  284. unsigned SW_LNT3_HSTX_PRE_OE:1;
  285. unsigned SW_LNT3_HSTX_OE:1;
  286. unsigned SW_LNT3_HSTX_RDY:1;
  287. unsigned SW_LNT3_LPRX_EN:1;
  288. } MIPITX_DSI_SW_CTRL_CON1_REG, *PMIPITX_DSI_SW_CTRL_CON1_REG;
  289. typedef struct {
  290. unsigned SW_LNT_HSTX_DATA:8;
  291. unsigned rsv_8:24;
  292. } MIPITX_DSI_SW_CTRL_CON2_REG, *PMIPITX_DSI_SW_CTRL_CON2_REG;
  293. typedef struct {
  294. unsigned MIPI_TX_DBG_SEL:4;
  295. unsigned MIPI_TX_DBG_OUT_EN:1;
  296. unsigned MIPI_TX_GPIO_MODE_EN:1;
  297. unsigned MIPI_TX_APB_ASYNC_CNT_EN:1;
  298. unsigned MIPI_TX_TST_CK_OUT_EN : 1;
  299. unsigned MIPI_TX_TST_CK_OUT_SEL : 1;
  300. unsigned rsv_9 : 23;
  301. } MIPITX_DSI_DBG_CON_REG, *PMIPITX_DSI_DBG_CON_REG;
  302. typedef struct
  303. {
  304. unsigned MIPI_TX_DBG_OUT : 32;
  305. }MIPI_DSI_DBG_OUT, *PMIPI_DSI_DBG_OUT;
  306. typedef struct {
  307. unsigned MIPI_TX_APB_ASYNC_ERR:1;
  308. unsigned rsv_1:31;
  309. } MIPITX_DSI_APB_ASYNC_STA_REG, *PMIPITX_DSI_APB_ASYNC_STA_REG;
  310. /* field definition */
  311. /* ------------------------------------------------------------- */
  312. /* DSI */
  313. typedef struct {
  314. unsigned DSI_START:1;
  315. unsigned rsv_1:1;
  316. unsigned SLEEPOUT_START:1;
  317. unsigned rsv_3:1;
  318. unsigned SKEWCAL_START:1;
  319. unsigned rsv_5:11;
  320. unsigned VM_CMD_START:1;
  321. unsigned rsv_17:15;
  322. } DSI_START_REG, *PDSI_START_REG;
  323. typedef struct {
  324. unsigned rsv_0:1;
  325. unsigned BUF_UNDERRUN:1;
  326. unsigned rsv_2:2;
  327. unsigned ESC_ENTRY_ERR:1;
  328. unsigned ESC_SYNC_ERR:1;
  329. unsigned CTRL_ERR:1;
  330. unsigned CONTENT_ERR:1;
  331. unsigned rsv_8:24;
  332. } DSI_STATUS_REG, *PDSI_STATUS_REG;
  333. typedef struct {
  334. unsigned RD_RDY:1;
  335. unsigned CMD_DONE:1;
  336. unsigned TE_RDY:1;
  337. unsigned VM_DONE:1;
  338. unsigned FRAME_DONE:1;
  339. unsigned VM_CMD_DONE:1;
  340. unsigned SLEEPOUT_DONE:1;
  341. unsigned TE_TIMEOUT:1;
  342. unsigned VM_VBP_STR:1;
  343. unsigned VM_VACT_STR:1;
  344. unsigned VM_VFP_STR:1;
  345. unsigned SKEWCAL_DONE:1;
  346. unsigned SLEEPIN_ULPS:1;
  347. unsigned rsv_13:19;
  348. } DSI_INT_ENABLE_REG, *PDSI_INT_ENABLE_REG;
  349. typedef struct {
  350. unsigned RD_RDY:1;
  351. unsigned CMD_DONE:1;
  352. unsigned TE_RDY:1;
  353. unsigned VM_DONE:1;
  354. unsigned FRAME_DONE_INT_EN:1;
  355. unsigned VM_CMD_DONE:1;
  356. unsigned SLEEPOUT_DONE:1;
  357. unsigned TE_TIMEOUT:1;
  358. unsigned VM_VBP_STR:1;
  359. unsigned VM_VACT_STR:1;
  360. unsigned VM_VFP_STR:1;
  361. unsigned SKEWCAL_DONE:1;
  362. unsigned SLEEPIN_ULPS:1;
  363. unsigned rsv_13:18;
  364. unsigned BUSY:1;
  365. } DSI_INT_STATUS_REG, *PDSI_INT_STATUS_REG;
  366. typedef struct {
  367. unsigned DSI_RESET:1;
  368. unsigned rsv_1:1;
  369. unsigned DPHY_RESET:1;
  370. unsigned rsv_3:1;
  371. unsigned DSI_DUAL_EN:1;
  372. unsigned rsv_5:27;
  373. } DSI_COM_CTRL_REG, *PDSI_COM_CTRL_REG;
  374. typedef enum {
  375. DSI_CMD_MODE = 0,
  376. DSI_SYNC_PULSE_VDO_MODE = 1,
  377. DSI_SYNC_EVENT_VDO_MODE = 2,
  378. DSI_BURST_VDO_MODE = 3
  379. } DSI_MODE_CTRL;
  380. typedef struct {
  381. unsigned MODE:2;
  382. unsigned rsv_2:14;
  383. unsigned FRM_MODE:1;
  384. unsigned MIX_MODE:1;
  385. unsigned V2C_SWITCH_ON:1;
  386. unsigned C2V_SWITCH_ON:1;
  387. unsigned SLEEP_MODE:1;
  388. unsigned rsv_21:11;
  389. } DSI_MODE_CTRL_REG, *PDSI_MODE_CTRL_REG;
  390. typedef enum {
  391. ONE_LANE = 1,
  392. TWO_LANE = 2,
  393. THREE_LANE = 3,
  394. FOUR_LANE = 4
  395. } DSI_LANE_NUM;
  396. typedef struct {
  397. unsigned VC_NUM:2;
  398. unsigned LANE_NUM:4;
  399. unsigned DIS_EOT:1;
  400. unsigned BLLP_EN:1;
  401. unsigned TE_FREERUN:1;
  402. unsigned EXT_TE_EN:1;
  403. unsigned EXT_TE_EDGE:1;
  404. unsigned TE_AUTO_SYNC:1;
  405. unsigned MAX_RTN_SIZE:4;
  406. unsigned HSTX_CKLP_EN:1;
  407. unsigned TYPE1_BTA_SEL:1;
  408. unsigned TE_WITH_CMD_EN:1;
  409. unsigned TE_TIMEOUT_CHK_EN:1;
  410. unsigned EXT_TE_TIME_VM:4;
  411. unsigned RGB_PKT_CNT:4;
  412. unsigned LP_ONLY_VBLK:1;
  413. unsigned rsv_29:3;
  414. } DSI_TXRX_CTRL_REG, *PDSI_TXRX_CTRL_REG;
  415. typedef enum {
  416. PACKED_PS_16BIT_RGB565 = 0,
  417. LOOSELY_PS_18BIT_RGB666 = 1,
  418. PACKED_PS_24BIT_RGB888 = 2,
  419. PACKED_PS_18BIT_RGB666 = 3
  420. } DSI_PS_TYPE;
  421. typedef struct {
  422. unsigned DSI_PS_WC:15;
  423. unsigned rsv_15:1;
  424. unsigned DSI_PS_SEL:3;
  425. unsigned rsv_19:5;
  426. unsigned RGB_SWAP:1;
  427. unsigned BYTE_SWAP:1;
  428. unsigned CUSTOM_HEADER:6;
  429. } DSI_PSCTRL_REG, *PDSI_PSCTRL_REG;
  430. typedef struct {
  431. unsigned VSA_NL:12;
  432. unsigned rsv_12:20;
  433. } DSI_VSA_NL_REG, *PDSI_VSA_NL_REG;
  434. typedef struct {
  435. unsigned VBP_NL:12;
  436. unsigned rsv_12:20;
  437. } DSI_VBP_NL_REG, *PDSI_VBP_NL_REG;
  438. typedef struct {
  439. unsigned VFP_NL:12;
  440. unsigned rsv_12:20;
  441. } DSI_VFP_NL_REG, *PDSI_VFP_NL_REG;
  442. typedef struct {
  443. unsigned VACT_NL:12;
  444. unsigned rsv_12:20;
  445. } DSI_VACT_NL_REG, *PDSI_VACT_NL_REG;
  446. typedef struct {
  447. unsigned LFR_MODE:2;
  448. unsigned LFR_TYPE:2;
  449. unsigned LFR_EN:1;
  450. unsigned LFR_UPDATE:1;
  451. unsigned LFR_VSE_DIS:1;
  452. unsigned rsv_7:1;
  453. unsigned LFR_SKIP_NUM:6;
  454. unsigned rsv_14:18;
  455. } DSI_LFR_CON_REG, *PDSI_LFR_CON_REG;
  456. typedef struct {
  457. unsigned LFR_SKIP_CNT:6;
  458. unsigned rsv_6:2;
  459. unsigned LFR_SKIP_STA:1;
  460. unsigned rsv_9:23;
  461. } DSI_LFR_STA_REG, *PDSI_LFR_STA_REG;
  462. typedef struct {
  463. unsigned DSI_WIDTH:15;
  464. unsigned rsv_15:1;
  465. unsigned DSI_HEIGHT:15;
  466. unsigned rsv_31:1;
  467. } DSI_SIZE_CON_REG, *PDSI_SIZE_CON_REG;
  468. typedef struct {
  469. unsigned HSA_WC:12;
  470. unsigned rsv_12:20;
  471. } DSI_HSA_WC_REG, *PDSI_HSA_WC_REG;
  472. typedef struct {
  473. unsigned HBP_WC:12;
  474. unsigned rsv_12:20;
  475. } DSI_HBP_WC_REG, *PDSI_HBP_WC_REG;
  476. typedef struct {
  477. unsigned HFP_WC:12;
  478. unsigned rsv_12:20;
  479. } DSI_HFP_WC_REG, *PDSI_HFP_WC_REG;
  480. typedef struct {
  481. unsigned BLLP_WC:12;
  482. unsigned rsv_12:20;
  483. } DSI_BLLP_WC_REG, *PDSI_BLLP_WC_REG;
  484. typedef struct {
  485. unsigned CMDQ_SIZE:8;
  486. unsigned rsv_8:24;
  487. } DSI_CMDQ_CTRL_REG, *PDSI_CMDQ_CTRL_REG;
  488. typedef struct {
  489. unsigned rsv_0:2;
  490. unsigned HSTX_CKLP_WC:14;
  491. unsigned HSTX_CKLP_WC_AUTO:1;
  492. unsigned rsv_17:15;
  493. } DSI_HSTX_CKLP_REG, *PDSI_HSTX_CKLP_REG;
  494. typedef struct {
  495. unsigned HSTX_CKLP_WC_AUTO_RESULT:17;
  496. unsigned rsv_17:15;
  497. } DSI_HSTX_CKLP_WC_AUTO_RESULT_REG, *PDSI_HSTX_CKLP_WC_AUTO_RESULT_REG;
  498. typedef struct {
  499. unsigned char byte0;
  500. unsigned char byte1;
  501. unsigned char byte2;
  502. unsigned char byte3;
  503. } DSI_RX_DATA_REG, *PDSI_RX_DATA_REG;
  504. typedef struct {
  505. unsigned DSI_RACK:1;
  506. unsigned DSI_RACK_BYPASS:1;
  507. unsigned rsv2:30;
  508. } DSI_RACK_REG, *PDSI_RACK_REG;
  509. typedef struct {
  510. unsigned TRIG0:1; /* remote rst */
  511. unsigned TRIG1:1; /* TE */
  512. unsigned TRIG2:1; /* ack */
  513. unsigned TRIG3:1; /* rsv */
  514. unsigned RX_ULPS:1;
  515. unsigned DIRECTION:1;
  516. unsigned RX_LPDT:1;
  517. unsigned rsv7:1;
  518. unsigned RX_POINTER:4;
  519. unsigned rsv12:20;
  520. } DSI_TRIG_STA_REG, *PDSI_TRIG_STA_REG;
  521. typedef struct {
  522. unsigned RWMEM_CONTI:16;
  523. unsigned rsv16:16;
  524. } DSI_MEM_CONTI_REG, *PDSI_MEM_CONTI_REG;
  525. typedef struct {
  526. unsigned FRM_BC:21;
  527. unsigned rsv21:11;
  528. } DSI_FRM_BC_REG, *PDSI_FRM_BC_REG;
  529. typedef struct {
  530. unsigned _3D_MODE:2;
  531. unsigned _3D_FMT:2;
  532. unsigned _3D_VSYNC:1;
  533. unsigned _3D_LR:1;
  534. unsigned rsv6:2;
  535. unsigned _3D_EN:1;
  536. unsigned rsv9:23;
  537. } DSI_3D_CON_REG, *PDSI_3D_CON_REG;
  538. typedef struct {
  539. unsigned UPLS_WAKEUP_PRD:16;
  540. unsigned SKEWCALL_PRD:16;
  541. } DSI_TIME_CON0_REG, *PDSI_TIME_CON0_REG;
  542. typedef struct {
  543. unsigned TE_WAKEUP_PRD:16;
  544. unsigned PREFETCH_TIME:15;
  545. unsigned PREFETCH_EN:1;
  546. } DSI_TIME_CON1_REG, *PDSI_TIME_CON1_REG;
  547. typedef struct {
  548. unsigned LC_HSTX_CK_PAT:32;
  549. } DSI_PHY_LCPAT_REG, *PDSI_PHY_LCPAT_REG;
  550. typedef struct {
  551. unsigned LC_HS_TX_EN:1;
  552. unsigned LC_ULPM_EN:1;
  553. unsigned LC_WAKEUP_EN:1;
  554. unsigned TRAIL_FIX:1;
  555. unsigned rsv4:4;
  556. unsigned EARLY_DRDY:5;
  557. unsigned rsv13:3;
  558. unsigned EARLY_HS_POE:5;
  559. unsigned rsv21:11;
  560. } DSI_PHY_LCCON_REG, *PDSI_PHY_LCCON_REG;
  561. typedef struct {
  562. unsigned L0_RM_TRIG_EN:1;
  563. unsigned L0_ULPM_EN:1;
  564. unsigned L0_WAKEUP_EN:1;
  565. unsigned Lx_ULPM_AS_L0:1;
  566. unsigned L0_RX_FILTER_EN:1;
  567. unsigned rsv3:27;
  568. } DSI_PHY_LD0CON_REG, *PDSI_PHY_LD0CON_REG;
  569. typedef struct {
  570. unsigned HS_SYNC_CODE:8;
  571. unsigned HS_SYNC_CODE2:8;
  572. unsigned HS_SKEWCAL_PAT:8;
  573. unsigned HS_DB_SYNC_EN:1;
  574. unsigned rsv25:7;
  575. } DSI_PHY_SYNCON_REG, *PDSI_PHY_SYNCON_REG;
  576. typedef struct {
  577. unsigned char LPX;
  578. unsigned char HS_PRPR;
  579. unsigned char HS_ZERO;
  580. unsigned char HS_TRAIL;
  581. } DSI_PHY_TIMCON0_REG, *PDSI_PHY_TIMCON0_REG;
  582. typedef struct {
  583. unsigned char TA_GO;
  584. unsigned char TA_SURE;
  585. unsigned char TA_GET;
  586. unsigned char DA_HS_EXIT;
  587. } DSI_PHY_TIMCON1_REG, *PDSI_PHY_TIMCON1_REG;
  588. typedef struct {
  589. unsigned char CONT_DET;
  590. unsigned char DA_HS_SYNC;
  591. unsigned char CLK_ZERO;
  592. unsigned char CLK_TRAIL;
  593. } DSI_PHY_TIMCON2_REG, *PDSI_PHY_TIMCON2_REG;
  594. typedef struct {
  595. unsigned char CLK_HS_PRPR;
  596. unsigned char CLK_HS_POST;
  597. unsigned char CLK_HS_EXIT;
  598. unsigned rsv24:8;
  599. } DSI_PHY_TIMCON3_REG, *PDSI_PHY_TIMCON3_REG;
  600. typedef struct {
  601. unsigned VM_CMD_EN:1;
  602. unsigned LONG_PKT:1;
  603. unsigned TIME_SEL:1;
  604. unsigned TS_VSA_EN:1;
  605. unsigned TS_VBP_EN:1;
  606. unsigned TS_VFP_EN:1;
  607. unsigned rsv6:2;
  608. unsigned CM_DATA_ID:8;
  609. unsigned CM_DATA_0:8;
  610. unsigned CM_DATA_1:8;
  611. } DSI_VM_CMD_CON_REG, *PDSI_VM_CMD_CON_REG;
  612. typedef struct {
  613. DSI_PHY_TIMCON0_REG CTRL0;
  614. DSI_PHY_TIMCON1_REG CTRL1;
  615. DSI_PHY_TIMCON2_REG CTRL2;
  616. DSI_PHY_TIMCON3_REG CTRL3;
  617. } DSI_PHY_TIMCON_REG, *PDSI_PHY_TIMCON_REG;
  618. typedef struct {
  619. unsigned PKT_CHECK_SUM:16;
  620. unsigned ACC_CHECK_SUM:16;
  621. } DSI_CKSM_OUT_REG, *PDSI_CKSM_OUT_REG;
  622. typedef struct {
  623. unsigned DPHY_CTL_STATE_C:9;
  624. unsigned rsv9:7;
  625. unsigned DPHY_HS_TX_STATE_C:5;
  626. unsigned rsv21:11;
  627. } DSI_STATE_DBG0_REG, *PDSI_STATE_DBG0_REG;
  628. typedef struct {
  629. unsigned CTL_STATE_C:15;
  630. unsigned rsv15:1;
  631. unsigned HS_TX_STATE_0:5;
  632. unsigned rsv21:3;
  633. unsigned ESC_STATE_0:8;
  634. } DSI_STATE_DBG1_REG, *PDSI_STATE_DBG1_REG;
  635. typedef struct {
  636. unsigned RX_ESC_STATE:10;
  637. unsigned rsv10:6;
  638. unsigned TA_T2R_STATE:5;
  639. unsigned rsv21:3;
  640. unsigned TA_R2T_STATE:5;
  641. unsigned rsv29:3;
  642. } DSI_STATE_DBG2_REG, *PDSI_STATE_DBG2_REG;
  643. typedef struct {
  644. unsigned CTL_STATE_1:5;
  645. unsigned rsv5:3;
  646. unsigned HS_TX_STATE_1:5;
  647. unsigned rsv13:3;
  648. unsigned CTL_STATE_2:5;
  649. unsigned rsv21:3;
  650. unsigned HS_TX_STATE_2:5;
  651. unsigned rsv29:3;
  652. } DSI_STATE_DBG3_REG, *PDSI_STATE_DBG3_REG;
  653. typedef struct {
  654. unsigned CTL_STATE_3:5;
  655. unsigned rsv5:3;
  656. unsigned HS_TX_STATE_3:5;
  657. unsigned rsv13:19;
  658. } DSI_STATE_DBG4_REG, *PDSI_STATE_DBG4_REG;
  659. typedef struct {
  660. unsigned TIMER_COUNTER:16;
  661. unsigned TIMER_BUSY:1;
  662. unsigned rsv17:11;
  663. unsigned WAKEUP_STATE:4;
  664. } DSI_STATE_DBG5_REG, *PDSI_STATE_DBG5_REG;
  665. typedef struct {
  666. unsigned CMTRL_STATE:15;
  667. unsigned rsv15:1;
  668. unsigned CMDQ_STATE:7;
  669. unsigned rsv23:9;
  670. } DSI_STATE_DBG6_REG, *PDSI_STATE_DBG6_REG;
  671. typedef struct {
  672. unsigned VMCTL_STATE:11;
  673. unsigned rsv11:1;
  674. unsigned VFP_PERIOD:1;
  675. unsigned VACT_PERIOD:1;
  676. unsigned VBP_PERIOD:1;
  677. unsigned VSA_PERIOD:1;
  678. unsigned rsv16:16;
  679. } DSI_STATE_DBG7_REG, *PDSI_STATE_DBG7_REG;
  680. typedef struct {
  681. unsigned WORD_COUNTER:15;
  682. unsigned rsv15:1;
  683. unsigned PREFETCH_CNT:15;
  684. unsigned DSI_PREFETCH_MUTEX:1;
  685. } DSI_STATE_DBG8_REG, *PDSI_STATE_DBG8_REG;
  686. typedef struct {
  687. unsigned LINE_COUNTER:22;
  688. unsigned rsv22:10;
  689. } DSI_STATE_DBG9_REG, *PDSI_STATE_DBG9_REG;
  690. typedef struct {
  691. unsigned DEBUG_OUT_SEL:5;
  692. unsigned rsv5:3;
  693. unsigned CHKSUM_REC_EN:1;
  694. unsigned C2V_START_CON:1;
  695. unsigned rsv10:4;
  696. unsigned DYNAMIC_CG_EN:18;
  697. } DSI_DEBUG_SEL_REG, *PDSI_DEBUG_SEL_REG;
  698. typedef struct {
  699. unsigned LIMIT_WIDTH:15;
  700. unsigned rsv_15:1;
  701. unsigned LIMIT_HEIGHT:15;
  702. unsigned rsv_31:1;
  703. } DSI_STATE_DBG10_REG, *PDSI_STATE_DBG10_REG;
  704. typedef struct {
  705. unsigned BIST_MODE:1;
  706. unsigned BIST_ENABLE:1;
  707. unsigned BIST_FIX_PATTERN:1;
  708. unsigned BIST_SPC_PATTERN:1;
  709. unsigned BIST_HS_FREE:1;
  710. unsigned rsv_05:1;
  711. unsigned SELF_PAT_MODE:1;
  712. unsigned rsv_07:1;
  713. unsigned BIST_LANE_NUM:4; /* To be confirmed */
  714. unsigned rsv12:4;
  715. unsigned BIST_TIMING:8;
  716. unsigned rsv24:8;
  717. } DSI_BIST_CON_REG, *PDSI_BIST_CON_REG;
  718. typedef struct {
  719. unsigned LIMIT_PS_WC:15;
  720. unsigned rsv_15:17;
  721. } DSI_STATE_DBG11_REG, *PDSI_STATE_DBG11_REG;
  722. typedef struct {
  723. unsigned FORCE_COMMIT:1;
  724. unsigned BYPASS_SHADOW:1;
  725. unsigned READ_WRK_REG:1;
  726. unsigned rsv_3:29;
  727. } DSI_SHADOW_DBG_REG, *PDSI_SHADOW_DBG_REG;
  728. typedef struct {
  729. unsigned UPD_VACT_ERR:1;
  730. unsigned UPD_VFP_ERR:1;
  731. unsigned rsv_2:30;
  732. } DSI_SHADOW_STA_REG, *PDSI_SHADOW_STA_REG;
  733. typedef struct {
  734. DSI_START_REG DSI_START; /* 0000 */
  735. DSI_STATUS_REG DSI_STA; /* 0004 */
  736. DSI_INT_ENABLE_REG DSI_INTEN; /* 0008 */
  737. DSI_INT_STATUS_REG DSI_INTSTA; /* 000C */
  738. DSI_COM_CTRL_REG DSI_COM_CTRL; /* 0010 */
  739. DSI_MODE_CTRL_REG DSI_MODE_CTRL; /* 0014 */
  740. DSI_TXRX_CTRL_REG DSI_TXRX_CTRL; /* 0018 */
  741. DSI_PSCTRL_REG DSI_PSCTRL; /* 001C */
  742. DSI_VSA_NL_REG DSI_VSA_NL; /* 0020 */
  743. DSI_VBP_NL_REG DSI_VBP_NL; /* 0024 */
  744. DSI_VFP_NL_REG DSI_VFP_NL; /* 0028 */
  745. DSI_VACT_NL_REG DSI_VACT_NL; /* 002C */
  746. DSI_LFR_CON_REG DSI_LFR_CON; /* 0030 */
  747. DSI_LFR_STA_REG DSI_LFR_STA; /* 0034 */
  748. DSI_SIZE_CON_REG DSI_SIZE_CON; /* 0038 */
  749. UINT32 rsv_3c[5]; /* 003C..004C */
  750. DSI_HSA_WC_REG DSI_HSA_WC; /* 0050 */
  751. DSI_HBP_WC_REG DSI_HBP_WC; /* 0054 */
  752. DSI_HFP_WC_REG DSI_HFP_WC; /* 0058 */
  753. DSI_BLLP_WC_REG DSI_BLLP_WC; /* 005C */
  754. DSI_CMDQ_CTRL_REG DSI_CMDQ_SIZE; /* 0060 */
  755. DSI_HSTX_CKLP_REG DSI_HSTX_CKL_WC; /* 0064 */
  756. DSI_HSTX_CKLP_WC_AUTO_RESULT_REG DSI_HSTX_CKL_WC_AUTO_RESULT; /* 0068 */
  757. UINT32 rsv_006C[2]; /* 006c..0070 */
  758. DSI_RX_DATA_REG DSI_RX_DATA0; /* 0074 */
  759. DSI_RX_DATA_REG DSI_RX_DATA1; /* 0078 */
  760. DSI_RX_DATA_REG DSI_RX_DATA2; /* 007c */
  761. DSI_RX_DATA_REG DSI_RX_DATA3; /* 0080 */
  762. DSI_RACK_REG DSI_RACK; /* 0084 */
  763. DSI_TRIG_STA_REG DSI_TRIG_STA; /* 0088 */
  764. UINT32 rsv_008C; /* 008C */
  765. DSI_MEM_CONTI_REG DSI_MEM_CONTI; /* 0090 */
  766. DSI_FRM_BC_REG DSI_FRM_BC; /* 0094 */
  767. DSI_3D_CON_REG DSI_3D_CON; /* 0098 */
  768. UINT32 rsv_009C; /* 009c */
  769. DSI_TIME_CON0_REG DSI_TIME_CON0; /* 00A0 */
  770. DSI_TIME_CON1_REG DSI_TIME_CON1; /* 00A4 */
  771. UINT32 rsv_00A8[22]; /* 0A8..0FC */
  772. UINT32 DSI_PHY_PCPAT; /* 00100 */
  773. DSI_PHY_LCCON_REG DSI_PHY_LCCON; /* 0104 */
  774. DSI_PHY_LD0CON_REG DSI_PHY_LD0CON; /* 0108 */
  775. DSI_PHY_SYNCON_REG DSI_PHY_SYNCON; /* 010C */
  776. DSI_PHY_TIMCON0_REG DSI_PHY_TIMECON0; /* 0110 */
  777. DSI_PHY_TIMCON1_REG DSI_PHY_TIMECON1; /* 0114 */
  778. DSI_PHY_TIMCON2_REG DSI_PHY_TIMECON2; /* 0118 */
  779. DSI_PHY_TIMCON3_REG DSI_PHY_TIMECON3; /* 011C */
  780. UINT32 rsv_0120[4]; /* 0120..012c */
  781. DSI_VM_CMD_CON_REG DSI_VM_CMD_CON; /* 0130 */
  782. UINT32 DSI_VM_CMD_DATA0; /* 0134 */
  783. UINT32 DSI_VM_CMD_DATA4; /* 0138 */
  784. UINT32 DSI_VM_CMD_DATA8; /* 013C */
  785. UINT32 DSI_VM_CMD_DATAC; /* 0140 */
  786. DSI_CKSM_OUT_REG DSI_CKSM_OUT; /* 0144 */
  787. DSI_STATE_DBG0_REG DSI_STATE_DBG0; /* 0148 */
  788. DSI_STATE_DBG1_REG DSI_STATE_DBG1; /* 014C */
  789. DSI_STATE_DBG2_REG DSI_STATE_DBG2; /* 0150 */
  790. DSI_STATE_DBG3_REG DSI_STATE_DBG3; /* 0154 */
  791. DSI_STATE_DBG4_REG DSI_STATE_DBG4; /* 0158 */
  792. DSI_STATE_DBG5_REG DSI_STATE_DBG5; /* 015C */
  793. DSI_STATE_DBG6_REG DSI_STATE_DBG6; /* 0160 */
  794. DSI_STATE_DBG7_REG DSI_STATE_DBG7; /* 0164 */
  795. DSI_STATE_DBG8_REG DSI_STATE_DBG8; /* 0168 */
  796. DSI_STATE_DBG9_REG DSI_STATE_DBG9; /* 016C */
  797. DSI_DEBUG_SEL_REG DSI_DEBUG_SEL; /* 0170 */
  798. DSI_STATE_DBG10_REG DSI_STATE_DBG10; /* 0174 */
  799. UINT32 DSI_BIST_PATTERN; /* 0178 */
  800. DSI_BIST_CON_REG DSI_BIST_CON; /* 017C */
  801. UINT32 DSI_VM_CMD_DATA10; /* 00180 */
  802. UINT32 DSI_VM_CMD_DATA14; /* 00184 */
  803. UINT32 DSI_VM_CMD_DATA18; /* 00188 */
  804. UINT32 DSI_VM_CMD_DATA1C; /* 0018C */
  805. DSI_STATE_DBG11_REG DSI_STATE_DBG11; /* 0190 */
  806. UINT32 rsv_0194; /* 0194 */
  807. DSI_SHADOW_DBG_REG DSI_SHADOW_DBG; /* 0198 */
  808. DSI_SHADOW_STA_REG DSI_SHADOW_STA; /* 019C */
  809. } volatile DSI_REGS, *PDSI_REGS;
  810. /* 0~1 TYPE ,2 BTA,3 HS, 4 CL,5 TE,6~7 RESV, 8~15 DATA_ID,16~23 DATA_0,24~31 DATA_1 */
  811. typedef struct {
  812. unsigned char byte0;
  813. unsigned char byte1;
  814. unsigned char byte2;
  815. unsigned char byte3;
  816. } DSI_CMDQ, *PDSI_CMDQ;
  817. typedef struct {
  818. DSI_CMDQ data[128]; /* only support 128 cmdq */
  819. } DSI_CMDQ_REGS, *PDSI_CMDQ_REGS;
  820. typedef struct {
  821. unsigned char byte0;
  822. unsigned char byte1;
  823. unsigned char byte2;
  824. unsigned char byte3;
  825. } DSI_VM_CMDQ, *PDSI_VM_CMDQ;
  826. typedef struct {
  827. DSI_VM_CMDQ data[4];
  828. } DSI_VM_CMDQ_REGS, *PDSI_VM_CMDQ_REGS;
  829. typedef struct {
  830. MIPITX_DSI_CON_REG MIPITX_DSI_CON; /* 0000 */
  831. MIPITX_DSI_CLOCK_LANE_REG MIPITX_DSI_CLOCK_LANE; /* 0004 */
  832. MIPITX_DSI_DATA_LANE0_REG MIPITX_DSI_DATA_LANE0; /* 0008 */
  833. MIPITX_DSI_DATA_LANE1_REG MIPITX_DSI_DATA_LANE1; /* 000C */
  834. MIPITX_DSI_DATA_LANE2_REG MIPITX_DSI_DATA_LANE2; /* 0010 */
  835. MIPITX_DSI_DATA_LANE3_REG MIPITX_DSI_DATA_LANE3; /* 0014 */
  836. UINT32 rsv_18[10]; /* 0018..003C */
  837. MIPITX_DSI_TOP_CON_REG MIPITX_DSI_TOP_CON; /* 0040 */
  838. MIPITX_DSI_BG_CON_REG MIPITX_DSI_BG_CON; /* 0044 */
  839. UINT32 rsv_48[2]; /* 0048..004C */
  840. MIPITX_DSI_PLL_CON0_REG MIPITX_DSI_PLL_CON0; /* 0050 */
  841. MIPITX_DSI_PLL_CON1_REG MIPITX_DSI_PLL_CON1; /* 0054 */
  842. MIPITX_DSI_PLL_CON2_REG MIPITX_DSI_PLL_CON2; /* 0058 */
  843. MIPITX_DSI_PLL_CON3_REG MIPITX_DSI_PLL_CON3; /* 005C */
  844. MIPITX_DSI_PLL_CHG_REG MIPITX_DSI_PLL_CHG; /* 0060 */
  845. MIPITX_DSI_PLL_TOP_REG MIPITX_DSI_PLL_TOP; /* 0064 */
  846. MIPITX_DSI_PLL_PWR_REG MIPITX_DSI_PLL_PWR; /* 0068 */
  847. UINT32 rsv_6C; /* 006C */
  848. MIPITX_DSI_RGS_REG MIPITX_DSI_RGS; /* 0070 */
  849. MIPITX_DSI_GPI_EN_REG MIPITX_DSI_GPI_EN; /* 0074 */
  850. MIPITX_DSI_GPI_PULL_REG MIPITX_DSI_GPI_PULL; /* 0078 */
  851. MIPITX_DSI_PHY_SEL_REG MIPITX_DSI_PHY_SEL; /* 007C */
  852. MIPITX_DSI_SW_CTRL_REG MIPITX_DSI_SW_CTRL_EN; /* 0080 */
  853. MIPITX_DSI_SW_CTRL_CON0_REG MIPITX_DSI_SW_CTRL_CON0; /* 0084 */
  854. MIPITX_DSI_SW_CTRL_CON1_REG MIPITX_DSI_SW_CTRL_CON1; /* 0088 */
  855. MIPITX_DSI_SW_CTRL_CON2_REG MIPITX_DSI_SW_CTRL_CON2; /* 008C */
  856. MIPITX_DSI_DBG_CON_REG MIPITX_DSI_DBG_CON; /* 0090 */
  857. MIPI_DSI_DBG_OUT MIPITX_DSI_DBG_OUT; /* 0094 */
  858. MIPITX_DSI_APB_ASYNC_STA_REG MIPITX_DSI_APB_ASYNC_STA; /* 0098 */
  859. } volatile DSI_PHY_REGS, *PDSI_PHY_REGS;
  860. #ifndef BUILD_LK
  861. /*
  862. STATIC_ASSERT(0x0050 == offsetof(DSI_PHY_REGS, MIPITX_DSI_PLL_CON0));
  863. STATIC_ASSERT(0x0070 == offsetof(DSI_PHY_REGS, MIPITX_DSI_RGS));
  864. STATIC_ASSERT(0x0080 == offsetof(DSI_PHY_REGS, MIPITX_DSI_SW_CTRL_EN));
  865. STATIC_ASSERT(0x0090 == offsetof(DSI_PHY_REGS, MIPITX_DSI_DBG_CON));
  866. STATIC_ASSERT(0x002C == offsetof(DSI_REGS, DSI_VACT_NL));
  867. STATIC_ASSERT(0x0104 == offsetof(DSI_REGS, DSI_PHY_LCCON));
  868. STATIC_ASSERT(0x011C == offsetof(DSI_REGS, DSI_PHY_TIMECON3));
  869. STATIC_ASSERT(0x017C == offsetof(DSI_REGS, DSI_BIST_CON));
  870. STATIC_ASSERT(0x0100 == offsetof(DSI_REGS, DSI_PHY_PCPAT));
  871. STATIC_ASSERT(0x0098 == offsetof(DSI_REGS, DSI_3D_CON));
  872. */
  873. #endif
  874. #define DISP_INDEX_OFFSET 0x1000
  875. #define DISP_RDMA_INDEX_OFFSET 0x1000
  876. //TDODO: get base reg addr from system header
  877. #define DDP_REG_BASE_MMSYS_CONFIG MMSYS_CONFIG_BASE //0xf4000000
  878. #define DDP_REG_BASE_DISP_OVL0 OVL0_BASE //0xf4008000
  879. #define DDP_REG_BASE_DISP_OVL1 OVL1_BASE //0xf4009000
  880. #define DDP_REG_BASE_DISP_OVL0_2L DISP_OVL0_2L_BASE //0xf4018000
  881. #define DDP_REG_BASE_DISP_OVL1_2L DISP_OVL1_2L_BASE //0xf4019000
  882. #define DDP_REG_BASE_DISP_RDMA0 DISP_RDMA0_BASE //0xf400A000
  883. #define DDP_REG_BASE_DISP_RDMA1 DISP_RDMA1_BASE //0xf400B000
  884. #define DDP_REG_BASE_DISP_WDMA0 DISP_WDMA0_BASE //0xf400C000
  885. #define DDP_REG_BASE_DISP_WDMA1 DISP_WDMA1_BASE //0xf4017000
  886. #define DDP_REG_BASE_DISP_UFOE DISP_UFOE_BASE //0xf401A000
  887. #define DDP_REG_BASE_DISP_SPLIT0 DISP_SPLIT0_BASE //0xf4018000
  888. #define DDP_REG_BASE_DSI0 DSI0_BASE //0xf4012000
  889. #define DDP_REG_BASE_DSI1 DSI1_BASE //0xf4012000
  890. #define DDP_REG_BASE_MM_MUTEX MM_MUTEX_BASE //0xf4014000
  891. #define DDP_REG_BASE_DISP_COLOR0 COLOR0_BASE //0xf400D000
  892. #define DDP_REG_BASE_DISP_CCORR CCORR_BASE //0xf400E000
  893. #define DDP_REG_BASE_DISP_AAL DISP_AAL_BASE //0xf400F000
  894. #define DDP_REG_BASE_DISP_GAMMA DISP_GAMMA_BASE //0xf4010000
  895. #define DDP_REG_BASE_DITHER DITHER_BASE //0xf4011000
  896. #define DDP_REG_BASE_DPI DPI_BASE //0xf4013000
  897. #define DDP_REG_BASE_DISP_PWM0 DISP_PWM0_BASE //0xf100E000
  898. #define DDP_REG_BASE_SMI_LARB0 SMI_LARB0_BASE //0xf4015000
  899. #define DDP_REG_BASE_SMI_LARB4 SMI_LARB4_BASE //0xf4015000
  900. #define DDP_REG_BASE_SMI_COMMON SMI_COMMON_BASE //0xf4016000
  901. #define DDP_REG_BASE_DISP_COLOR1 COLOR1_BASE //0xf4014000
  902. #define DDP_REG_BASE_DISP_MERGE 0 //DISP_MERGE_BASE //0xf4017000
  903. #define DDP_REG_BASE_DISP_SPLIT1 0 //DISP_SPLIT1_BASE //0xf4019000
  904. #define DDP_REG_BASE_DISP_PWM1 0 //DISP_PWM1_BASE //0xf401F000
  905. #define DDP_REG_BASE_DISP_OD DISP_OD_BASE //0xf4023000
  906. #define DDP_REG_BASE_DISP_RDMA2 0 //DISP_RDMA2_BASE //0xf4010000
  907. #define DISPSYS_REG_ADDR_MIN DDP_REG_BASE_MMSYS_CONFIG
  908. #define DISPSYS_REG_ADDR_MAX DDP_REG_BASE_DISP_OVL1_2L
  909. #define DISPSYS_CONFIG_BASE DDP_REG_BASE_MMSYS_CONFIG
  910. #define DISPSYS_OVL0_BASE DDP_REG_BASE_DISP_OVL0
  911. #define DISPSYS_OVL1_BASE DDP_REG_BASE_DISP_OVL1
  912. #define DISPSYS_RDMA0_BASE DDP_REG_BASE_DISP_RDMA0
  913. #define DISPSYS_RDMA1_BASE DDP_REG_BASE_DISP_RDMA1
  914. #define DISPSYS_WDMA0_BASE DDP_REG_BASE_DISP_WDMA0
  915. #define DISPSYS_WDMA1_BASE DDP_REG_BASE_DISP_WDMA1
  916. #define DISPSYS_COLOR0_BASE DDP_REG_BASE_DISP_COLOR0
  917. #define DISPSYS_COLOR1_BASE DDP_REG_BASE_DISP_COLOR1
  918. #define DISPSYS_AAL_BASE DDP_REG_BASE_DISP_AAL
  919. #define DISPSYS_GAMMA_BASE DDP_REG_BASE_DISP_GAMMA
  920. #define DISPSYS_MERGE_BASE DDP_REG_BASE_DISP_MERGE
  921. #define DISPSYS_SPLIT0_BASE DDP_REG_BASE_DISP_SPLIT0
  922. #define DISPSYS_SPLIT1_BASE DDP_REG_BASE_DISP_SPLIT1
  923. #define DISPSYS_UFOE_BASE DDP_REG_BASE_DISP_UFOE
  924. #define DISPSYS_DSI0_BASE DDP_REG_BASE_DSI0
  925. #define DISPSYS_DITHER_BASE DDP_REG_BASE_DITHER
  926. #define DISPSYS_DSI1_BASE DDP_REG_BASE_DSI1
  927. #define DISPSYS_DPI_BASE DDP_REG_BASE_DPI
  928. #define DISPSYS_PWM0_BASE DDP_REG_BASE_DISP_PWM0
  929. #define DISPSYS_PWM1_BASE DDP_REG_BASE_DISP_PWM1
  930. #define DISPSYS_MUTEX_BASE DDP_REG_BASE_MM_MUTEX
  931. #define DISPSYS_SMI_LARB0_BASE DDP_REG_BASE_SMI_LARB0
  932. #define DISPSYS_SMI_LARB4_BASE DDP_REG_BASE_SMI_LARB4
  933. #define DISPSYS_SMI_COMMON_BASE DDP_REG_BASE_SMI_COMMON
  934. #define DISPSYS_OD_BASE DDP_REG_BASE_DISP_OD
  935. #define DISPSYS_CCORR_BASE DDP_REG_BASE_DISP_CCORR
  936. // ---------------------------------------------------------------------------
  937. // Type Casting
  938. // ---------------------------------------------------------------------------
  939. #define AS_INT32(x) (*(INT32 *)(x))
  940. #define AS_INT16(x) (*(INT16 *)(x))
  941. #define AS_INT8(x) (*(INT8 *)(x))
  942. #define AS_UINT32(x) (*(UINT32 *)(x))
  943. #define AS_UINT16(x) (*(UINT16 *)(x))
  944. #define AS_UINT8(x) (*(UINT8 *)(x))
  945. // ---------------------------------------------------------------------------
  946. // Register Manipulations
  947. // ---------------------------------------------------------------------------
  948. #define READ_REGISTER_UINT32(reg) \
  949. (*(volatile UINT32 * const)(reg))
  950. #define WRITE_REGISTER_UINT32(reg, val) \
  951. (*(volatile UINT32 * const)(reg)) = (val)
  952. #define READ_REGISTER_UINT16(reg) \
  953. (*(volatile UINT16 * const)(reg))
  954. #define WRITE_REGISTER_UINT16(reg, val) \
  955. (*(volatile UINT16 * const)(reg)) = (val)
  956. #define READ_REGISTER_UINT8(reg) \
  957. (*(volatile UINT8 * const)(reg))
  958. #define WRITE_REGISTER_UINT8(reg, val) \
  959. (*(volatile UINT8 * const)(reg)) = (val)
  960. // ---------------------------------------------------------------------------
  961. // Register Field Access
  962. // ---------------------------------------------------------------------------
  963. #define REG_FLD(width, shift) \
  964. ((unsigned int)((((width) & 0xFF) << 16) | ((shift) & 0xFF)))
  965. #define REG_FLD_MSB_LSB(msb, lsb) REG_FLD((msb) - (lsb) + 1, (lsb))
  966. #define REG_FLD_WIDTH(field) \
  967. ((unsigned int)(((field) >> 16) & 0xFF))
  968. #define REG_FLD_SHIFT(field) \
  969. ((unsigned int)((field) & 0xFF))
  970. #define REG_FLD_MASK(field) \
  971. ((unsigned int)((1ULL << REG_FLD_WIDTH(field)) - 1) << REG_FLD_SHIFT(field))
  972. #define REG_FLD_VAL(field, val) \
  973. (((val) << REG_FLD_SHIFT(field)) & REG_FLD_MASK(field))
  974. #define REG_FLD_VAL_GET(field, regval) \
  975. (((regval) & REG_FLD_MASK(field)) >> REG_FLD_SHIFT(field))
  976. #define DISP_REG_GET(reg32) (*(volatile unsigned int*)(reg32))
  977. #define DISP_REG_GET_FIELD(field, reg32) ((*(volatile unsigned int*)(reg32) & REG_FLD_MASK(field)) >> REG_FLD_SHIFT(field))
  978. /* polling register until masked bit is 1 */
  979. #define DDP_REG_POLLING(reg32, mask) \
  980. do { \
  981. while (!((DISP_REG_GET(reg32))&mask))\
  982. ; \
  983. } while (0)
  984. /* Polling register until masked bit is 0 */
  985. #define DDP_REG_POLLING_NEG(reg32, mask) \
  986. do { \
  987. while ((DISP_REG_GET(reg32))&mask)\
  988. ; \
  989. } while (0)
  990. #define DISP_CPU_REG_SET(reg32, val) mt_reg_sync_writel(val, (volatile unsigned int*)(reg32))
  991. #define DISP_CPU_REG_SET_FIELD(field, reg32, val) \
  992. do { \
  993. mt_reg_sync_writel( (*(volatile unsigned int*)(reg32) & ~REG_FLD_MASK(field))|REG_FLD_VAL((field), (val)), reg32); \
  994. } while (0)
  995. #define DISP_REG_MASK(handle, reg32, val, mask) \
  996. do { \
  997. mt_reg_sync_writel((unsigned int)(INREG32(reg32)&~(mask))|(val),(volatile unsigned long*)(reg32) );\
  998. } while (0)
  999. #define DISP_REG_SET(handle,reg32, val) \
  1000. do { \
  1001. mt_reg_sync_writel(val, (volatile unsigned int*)(reg32));\
  1002. } while (0)
  1003. #define DISP_REG_SET_FIELD(handle,field, reg32, val) \
  1004. do { \
  1005. mt_reg_sync_writel( (*(volatile unsigned int*)(reg32) & ~REG_FLD_MASK(field))|REG_FLD_VAL((field), (val)), reg32); \
  1006. } while (0)
  1007. #define DISP_REG_CMDQ_POLLING(handle, reg32, val, mask) \
  1008. do { \
  1009. while ((DISP_REG_GET(reg32) & (mask)) != ((val) & (mask)))\
  1010. ; \
  1011. } while (0)
  1012. //////////////////////////////////////////// Register Field Access //////////////////////////////////////////////////////////////////////////////////////
  1013. ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
  1014. // field definition
  1015. // -------------------------------------------------------------
  1016. // AAL
  1017. #define DISP_AAL_EN (DISPSYS_AAL_BASE + 0x000)
  1018. #define DISP_AAL_RESET (DISPSYS_AAL_BASE + 0x004)
  1019. #define DISP_AAL_INTEN (DISPSYS_AAL_BASE + 0x008)
  1020. #define DISP_AAL_INTSTA (DISPSYS_AAL_BASE + 0x00c)
  1021. #define DISP_AAL_STATUS (DISPSYS_AAL_BASE + 0x010)
  1022. #define DISP_AAL_CFG (DISPSYS_AAL_BASE + 0x020)
  1023. #define DISP_AAL_IN_CNT (DISPSYS_AAL_BASE + 0x024)
  1024. #define DISP_AAL_OUT_CNT (DISPSYS_AAL_BASE + 0x028)
  1025. #define DISP_AAL_CHKSUM (DISPSYS_AAL_BASE + 0x02c)
  1026. #define DISP_AAL_SIZE (DISPSYS_AAL_BASE + 0x030)
  1027. #define DISP_AAL_CABC_00 (DISPSYS_AAL_BASE + 0x20c)
  1028. #define DISP_AAL_CABC_02 (DISPSYS_AAL_BASE + 0x214)
  1029. #define DISP_AAL_CABC_04 (DISPSYS_AAL_BASE + 0x21c)
  1030. #define DISP_AAL_STATUS_00 (DISPSYS_AAL_BASE + 0x224)
  1031. /* 00 ~ 32: max histogram */
  1032. #define DISP_AAL_STATUS_32 (DISPSYS_AAL_BASE + 0x2a4)
  1033. /* bit 8: dre_gain_force_en */
  1034. #define DISP_AAL_DRE_GAIN_FILTER_00 (DISPSYS_AAL_BASE + 0x354)
  1035. #define DISP_AAL_DRE_FLT_FORCE(idx) (DISPSYS_AAL_BASE + 0x358 + (idx) * 4)
  1036. #define DISP_AAL_DRE_CRV_CAL_00 (DISPSYS_AAL_BASE + 0x344)
  1037. #define DISP_AAL_DRE_MAPPING_00 (DISPSYS_AAL_BASE + 0x3b0)
  1038. #define DISP_AAL_CABC_GAINLMT_TBL(idx) (DISPSYS_AAL_BASE + 0x40c + (idx) * 4)
  1039. #define DISP_PWM_EN_OFF (0x00)
  1040. #define DISP_PWM_COMMIT_OFF (0x08)
  1041. #define DISP_PWM_CON_0_OFF (0x10)
  1042. #define DISP_PWM_CON_1_OFF (0x14)
  1043. // field definition
  1044. // -------------------------------------------------------------
  1045. // DISP OD
  1046. #define DISP_OD_EN (DISPSYS_OD_BASE + 0x000)
  1047. #define DISP_OD_RESET (DISPSYS_OD_BASE + 0x004)
  1048. #define DISP_OD_INTEN (DISPSYS_OD_BASE + 0x008)
  1049. #define DISP_OD_INTS (DISPSYS_OD_BASE + 0x00C)
  1050. #define DISP_OD_STATUS (DISPSYS_OD_BASE + 0x010)
  1051. #define DISP_OD_CFG (DISPSYS_OD_BASE + 0x020)
  1052. #define DISP_OD_INPUT_COUNT (DISPSYS_OD_BASE + 0x024)
  1053. #define DISP_OD_OUTPUT_COUNT (DISPSYS_OD_BASE + 0x028)
  1054. #define DISP_OD_CHKS_UM (DISPSYS_OD_BASE + 0x02c)
  1055. #define DISP_OD_SIZE (DISPSYS_OD_BASE + 0x030)
  1056. #define DISP_OD_HSYNC_WIDTH (DISPSYS_OD_BASE + 0x040)
  1057. #define DISP_OD_VSYNC_WIDTH (DISPSYS_OD_BASE + 0x044)
  1058. #define DISP_OD_MISC (DISPSYS_OD_BASE + 0x048)
  1059. // field definition
  1060. // -------------------------------------------------------------
  1061. // COLOR
  1062. #define CFG_MAIN_FLD_M_REG_RESET REG_FLD(1, 31)
  1063. #define CFG_MAIN_FLD_M_DISP_RESET REG_FLD(1, 30)
  1064. #define CFG_MAIN_FLD_COLOR_DBUF_EN REG_FLD(1, 29)
  1065. #define CFG_MAIN_FLD_C_PP_CM_DBG_SEL REG_FLD(4, 16)
  1066. #define CFG_MAIN_FLD_SEQ_SEL REG_FLD(1, 13)
  1067. #define CFG_MAIN_FLD_ALLBP REG_FLD(1, 7)
  1068. #define CFG_MAIN_FLD_HEBP REG_FLD(1, 4)
  1069. #define CFG_MAIN_FLD_SEBP REG_FLD(1, 3)
  1070. #define CFG_MAIN_FLD_YEBP REG_FLD(1, 2)
  1071. #define CFG_MAIN_FLD_P2CBP REG_FLD(1, 1)
  1072. #define CFG_MAIN_FLD_C2PBP REG_FLD(1, 0)
  1073. #define START_FLD_DISP_COLOR_START REG_FLD(1, 0)
  1074. #define DISP_COLOR_CFG_MAIN (DISPSYS_COLOR0_BASE+0x400)
  1075. #define DISP_COLOR_PXL_CNT_MAIN (DISPSYS_COLOR0_BASE+0x404)
  1076. #define DISP_COLOR_LINE_CNT_MAIN (DISPSYS_COLOR0_BASE+0x408)
  1077. #define DISP_COLOR_WIN_X_MAIN (DISPSYS_COLOR0_BASE+0x40C)
  1078. #define DISP_COLOR_WIN_Y_MAIN (DISPSYS_COLOR0_BASE+0x410)
  1079. #define DISP_COLOR_TIMING_DETECTION_0 (DISPSYS_COLOR0_BASE+0x418)
  1080. #define DISP_COLOR_TIMING_DETECTION_1 (DISPSYS_COLOR0_BASE+0x41c)
  1081. #define DISP_COLOR_DBG_CFG_MAIN (DISPSYS_COLOR0_BASE+0x420)
  1082. #define DISP_COLOR_C_BOOST_MAIN (DISPSYS_COLOR0_BASE+0x428)
  1083. #define DISP_COLOR_C_BOOST_MAIN_2 (DISPSYS_COLOR0_BASE+0x42C)
  1084. #define DISP_COLOR_LUMA_ADJ (DISPSYS_COLOR0_BASE+0x430)
  1085. #define DISP_COLOR_G_PIC_ADJ_MAIN_1 (DISPSYS_COLOR0_BASE+0x434)
  1086. #define DISP_COLOR_G_PIC_ADJ_MAIN_2 (DISPSYS_COLOR0_BASE+0x438)
  1087. #define DISP_COLOR_POS_MAIN (DISPSYS_COLOR0_BASE+0x484)
  1088. #define DISP_COLOR_INK_DATA_MAIN (DISPSYS_COLOR0_BASE+0x488)
  1089. #define DISP_COLOR_INK_DATA_MAIN_CR (DISPSYS_COLOR0_BASE+0x48c)
  1090. #define DISP_COLOR_CAP_IN_DATA_MAIN (DISPSYS_COLOR0_BASE+0x490)
  1091. #define DISP_COLOR_CAP_IN_DATA_MAIN_CR (DISPSYS_COLOR0_BASE+0x494)
  1092. #define DISP_COLOR_CAP_OUT_DATA_MAIN (DISPSYS_COLOR0_BASE+0x498)
  1093. #define DISP_COLOR_CAP_OUT_DATA_MAIN_CR (DISPSYS_COLOR0_BASE+0x49c)
  1094. #define DISP_COLOR_Y_SLOPE_1_0_MAIN (DISPSYS_COLOR0_BASE+0x4A0)
  1095. #define DISP_COLOR_LOCAL_HUE_CD_0 (DISPSYS_COLOR0_BASE+0x620)
  1096. #define DISP_COLOR_TWO_D_WINDOW_1 (DISPSYS_COLOR0_BASE+0x740)
  1097. #define DISP_COLOR_TWO_D_W1_RESULT (DISPSYS_COLOR0_BASE+0x74C)
  1098. #define DISP_COLOR_SAT_HIST_X_CFG_MAIN (DISPSYS_COLOR0_BASE+0x768)
  1099. #define DISP_COLOR_SAT_HIST_Y_CFG_MAIN (DISPSYS_COLOR0_BASE+0x76c)
  1100. #define DISP_COLOR_BWS_2 (DISPSYS_COLOR0_BASE+0x79c)
  1101. #define DISP_COLOR_CRC_0 (DISPSYS_COLOR0_BASE+0x7e0)
  1102. #define DISP_COLOR_PART_SAT_GAIN1_0 (DISPSYS_COLOR0_BASE+0x7FC)
  1103. #define DISP_COLOR_PART_SAT_GAIN1_1 (DISPSYS_COLOR0_BASE+0x800)
  1104. #define DISP_COLOR_PART_SAT_GAIN1_2 (DISPSYS_COLOR0_BASE+0x804)
  1105. #define DISP_COLOR_PART_SAT_GAIN1_3 (DISPSYS_COLOR0_BASE+0x808)
  1106. #define DISP_COLOR_PART_SAT_GAIN1_4 (DISPSYS_COLOR0_BASE+0x80C)
  1107. #define DISP_COLOR_PART_SAT_GAIN2_0 (DISPSYS_COLOR0_BASE+0x810)
  1108. #define DISP_COLOR_PART_SAT_GAIN2_1 (DISPSYS_COLOR0_BASE+0x814)
  1109. #define DISP_COLOR_PART_SAT_GAIN2_2 (DISPSYS_COLOR0_BASE+0x818)
  1110. #define DISP_COLOR_PART_SAT_GAIN2_3 (DISPSYS_COLOR0_BASE+0x81C)
  1111. #define DISP_COLOR_PART_SAT_GAIN2_4 (DISPSYS_COLOR0_BASE+0x820)
  1112. #define DISP_COLOR_PART_SAT_GAIN3_0 (DISPSYS_COLOR0_BASE+0x824)
  1113. #define DISP_COLOR_PART_SAT_GAIN3_1 (DISPSYS_COLOR0_BASE+0x828)
  1114. #define DISP_COLOR_PART_SAT_GAIN3_2 (DISPSYS_COLOR0_BASE+0x82C)
  1115. #define DISP_COLOR_PART_SAT_GAIN3_3 (DISPSYS_COLOR0_BASE+0x830)
  1116. #define DISP_COLOR_PART_SAT_GAIN3_4 (DISPSYS_COLOR0_BASE+0x834)
  1117. #define DISP_COLOR_PART_SAT_POINT1_0 (DISPSYS_COLOR0_BASE+0x838)
  1118. #define DISP_COLOR_PART_SAT_POINT1_1 (DISPSYS_COLOR0_BASE+0x83C)
  1119. #define DISP_COLOR_PART_SAT_POINT1_2 (DISPSYS_COLOR0_BASE+0x840)
  1120. #define DISP_COLOR_PART_SAT_POINT1_3 (DISPSYS_COLOR0_BASE+0x844)
  1121. #define DISP_COLOR_PART_SAT_POINT1_4 (DISPSYS_COLOR0_BASE+0x848)
  1122. #define DISP_COLOR_PART_SAT_POINT2_0 (DISPSYS_COLOR0_BASE+0x84C)
  1123. #define DISP_COLOR_PART_SAT_POINT2_1 (DISPSYS_COLOR0_BASE+0x850)
  1124. #define DISP_COLOR_PART_SAT_POINT2_2 (DISPSYS_COLOR0_BASE+0x854)
  1125. #define DISP_COLOR_PART_SAT_POINT2_3 (DISPSYS_COLOR0_BASE+0x858)
  1126. #define DISP_COLOR_PART_SAT_POINT2_4 (DISPSYS_COLOR0_BASE+0x85C)
  1127. #define DISP_COLOR_START (DISPSYS_COLOR0_BASE+0xC00)
  1128. #define DISP_COLOR_INTEN (DISPSYS_COLOR0_BASE+0xC04)
  1129. #define DISP_COLOR_OUT_SEL (DISPSYS_COLOR0_BASE+0xC08)
  1130. #define DISP_COLOR_FRAME_DONE_DEL (DISPSYS_COLOR0_BASE+0xC10)
  1131. #define DISP_COLOR_CRC (DISPSYS_COLOR0_BASE+0xC14)
  1132. #define DISP_COLOR_SW_SCRATCH (DISPSYS_COLOR0_BASE+0xC18)
  1133. #define DISP_COLOR_CK_ON (DISPSYS_COLOR0_BASE+0xC28)
  1134. #define DISP_COLOR_INTERNAL_IP_WIDTH (DISPSYS_COLOR0_BASE+0xC50)
  1135. #define DISP_COLOR_INTERNAL_IP_HEIGHT (DISPSYS_COLOR0_BASE+0xC54)
  1136. #define DISP_COLOR_CM1_EN (DISPSYS_COLOR0_BASE+0xC60)
  1137. #define DISP_COLOR_CM2_EN (DISPSYS_COLOR0_BASE+0xCA0)
  1138. // -------------------------------------------------------------
  1139. // DSI
  1140. #define DISP_REG_DSI_INSTA (DISPSYS_DSI0_BASE + 0x00C)
  1141. // -------------------------------------------------------------
  1142. // DPI
  1143. #define DISP_REG_DPI_EN (DISPSYS_DPI_BASE + 0x000)
  1144. #define DISP_REG_DPI_RST (DISPSYS_DPI_BASE + 0x004)
  1145. #define DISP_REG_DPI_INTEN (DISPSYS_DPI_BASE + 0x008)
  1146. #define DISP_REG_DPI_INSTA (DISPSYS_DPI_BASE + 0x00C)
  1147. #define DISP_REG_DPI_CON (DISPSYS_DPI_BASE + 0x010)
  1148. #define DISP_REG_DPI_OUTPUT_SETTING (DISPSYS_DPI_BASE + 0x014)
  1149. #define DISP_REG_DPI_SIZE (DISPSYS_DPI_BASE + 0x018)
  1150. #define DISP_REG_DPI_DDR_SETTING (DISPSYS_DPI_BASE + 0x01c)
  1151. #define DISP_REG_DPI_TGEN_HWIDTH (DISPSYS_DPI_BASE + 0x020)
  1152. #define DISP_REG_DPI_TGEN_HPORCH (DISPSYS_DPI_BASE + 0x024)
  1153. #define DISP_REG_DPI_TGEN_VWIDTH (DISPSYS_DPI_BASE + 0x028)
  1154. #define DISP_REG_DPI_TGEN_VPORCH (DISPSYS_DPI_BASE + 0x02C)
  1155. #define DISP_REG_DPI_BG_HCNTL (DISPSYS_DPI_BASE + 0x030)
  1156. #define DISP_REG_DPI_BG_VCNTL (DISPSYS_DPI_BASE + 0x034)
  1157. #define DISP_REG_DPI_BG_COLOR (DISPSYS_DPI_BASE + 0x038)
  1158. #define DISP_REG_DPI_FIFO_CTL (DISPSYS_DPI_BASE + 0x03C)
  1159. #define DISP_REG_DPI_STATUS (DISPSYS_DPI_BASE + 0x040)
  1160. #define DISP_REG_DPI_TMODE (DISPSYS_DPI_BASE + 0x044)
  1161. #define DISP_REG_DPI_CHKSUM (DISPSYS_DPI_BASE + 0x048)
  1162. #define DISP_REG_DPI_PATTERN (DISPSYS_DPI_BASE + 0x04C)
  1163. #define DISP_REG_DPI_DUMMY (DISPSYS_DPI_BASE + 0x050)
  1164. #define DISP_REG_DPI_TGEN_VWIDTH_LEVEN (DISPSYS_DPI_BASE + 0x068)
  1165. #define DISP_REG_DPI_TGEN_VPORCH_LEVEN (DISPSYS_DPI_BASE + 0x06c)
  1166. #define DISP_REG_DPI_TGEN_VWIDTH_RODD (DISPSYS_DPI_BASE + 0x070)
  1167. #define DISP_REG_DPI_TGEN_VPORCH_RODD (DISPSYS_DPI_BASE + 0x074)
  1168. #define DISP_REG_DPI_TGEN_VWIDTH_REVEN (DISPSYS_DPI_BASE + 0x078)
  1169. #define DISP_REG_DPI_TGEN_VPORCH_REVEN (DISPSYS_DPI_BASE + 0x07c)
  1170. #define DISP_REG_DPI_ESAV_VTIM_L (DISPSYS_DPI_BASE + 0x080)
  1171. #define DISP_REG_DPI_ESAV_VTIM_R (DISPSYS_DPI_BASE + 0x084)
  1172. #define DISP_REG_DPI_ESAV_VTIM_R (DISPSYS_DPI_BASE + 0x088)
  1173. #define DISP_REG_DPI_CLPF_SETTING (DISPSYS_DPI_BASE + 0x08c)
  1174. #define DISP_REG_DPI_Y_LIMIT (DISPSYS_DPI_BASE + 0x090)
  1175. #define DISP_REG_DPI_C_LIMIT (DISPSYS_DPI_BASE + 0x094)
  1176. #define DISP_REG_DPI_YUV422_SETTING (DISPSYS_DPI_BASE + 0x098)
  1177. #define DISP_REG_DPI_EMBSYNC_SETTING (DISPSYS_DPI_BASE + 0x09c)
  1178. #define DISP_REG_DPI_ESAV_CODE_SET0 (DISPSYS_DPI_BASE + 0x0a0)
  1179. #define DISP_REG_DPI_ESAV_CODE_SET1 (DISPSYS_DPI_BASE + 0x0a4)
  1180. #define DISP_REG_DPI_ESAV_CODE_SET0 (DISPSYS_DPI_BASE + 0x0a8)
  1181. #define DISP_REG_DPI_ESAV_CODE_SET1 (DISPSYS_DPI_BASE + 0x0ac)
  1182. #define DISP_REG_DPI_BLANK_CODE_SET (DISPSYS_DPI_BASE + 0x0b0)
  1183. #define DISP_REG_DPI_MATRIX_SET (DISPSYS_DPI_BASE + 0x0b4)
  1184. #define EN_FLD_EN REG_FLD(1, 0)
  1185. #define RST_FLD_RST REG_FLD(1, 0)
  1186. #define INTEN_FLD_INT_UNDERFLOW_EN REG_FLD(1, 2)
  1187. #define INTEN_FLD_INT_VDE_EN REG_FLD(1, 1)
  1188. #define INTEN_FLD_INT_VSYNC_EN REG_FLD(1, 0)
  1189. #define INSTA_FLD_INTSTA_UNDERFLOW_EN REG_FLD(1, 2)
  1190. #define INSTA_FLD_INTSTA_VDE_EN REG_FLD(1, 1)
  1191. #define INSTA_FLD_INTSTA_VSYNC_EN REG_FLD(1, 0)
  1192. #define CON_FLD_IN_RB_SWAP REG_FLD(1, 1)
  1193. #define CON_FLD_BG_ENABLE REG_FLD(1, 0)
  1194. #define OUTPUT_SETTING_FLD_EDGE_SEL REG_FLD(1, 17)
  1195. #define OUTPUT_SETTING_FLD_OEN_OFF REG_FLD(1, 16)
  1196. #define OUTPUT_SETTING_FLD_CK_POL REG_FLD(1, 15)
  1197. #define OUTPUT_SETTING_FLD_VSYNC_POL REG_FLD(1, 14)
  1198. #define OUTPUT_SETTING_FLD_HSYNC_POL REG_FLD(1, 13)
  1199. #define OUTPUT_SETTING_FLD_DE_POL REG_FLD(1, 12)
  1200. #define OUTPUT_SETTING_FLD_VS_MASK REG_FLD(1, 10)
  1201. #define OUTPUT_SETTING_FLD_HS_MASK REG_FLD(1, 9)
  1202. #define OUTPUT_SETTING_FLD_DE_MASK REG_FLD(1, 8)
  1203. #define OUTPUT_SETTING_FLD_R_MASK REG_FLD(1, 6)
  1204. #define OUTPUT_SETTING_FLD_G_MASK REG_FLD(1, 5)
  1205. #define OUTPUT_SETTING_FLD_B_MASK REG_FLD(1, 4)
  1206. #define OUTPUT_SETTING_FLD_BIT_SWAP REG_FLD(1, 3)
  1207. #define OUTPUT_SETTING_FLD_CH_SWAP REG_FLD(3, 0)
  1208. #define DPI_SIZE_FLD_HSIZE REG_FLD(11, 16)
  1209. #define DPI_SIZE_FLD_VSIZE REG_FLD(11, 0)
  1210. #define TGEN_HWIDTH_FLD_HPW REG_FLD(12, 0)
  1211. #define TGEN_HPORCH_FLD_HFP REG_FLD(12, 16)
  1212. #define TGEN_HPORCH_FLD_HBP REG_FLD(12, 0)
  1213. #define TGEN_VWIDTH_FLD_VPW REG_FLD(8, 0)
  1214. #define TGEN_VPORCH_FLD_VFP REG_FLD(8, 16)
  1215. #define TGEN_VPORCH_FLD_VBP REG_FLD(8, 0)
  1216. #define BG_HCNTL_FLD_BG_LEFT REG_FLD(11, 16)
  1217. #define BG_HCNTL_FLD_BG_RIGHT REG_FLD(11, 0)
  1218. #define BG_VCNTL_FLD_BG_TOP REG_FLD(11, 16)
  1219. #define BG_VCNTL_FLD_BG_BOT REG_FLD(11, 0)
  1220. #define BG_COLOR_FLD_BG_R REG_FLD(8, 16)
  1221. #define BG_COLOR_FLD_BG_G REG_FLD(8, 8)
  1222. #define BG_COLOR_FLD_BG_B REG_FLD(8, 0)
  1223. #define FIFO_CTL_FLD_FIFO_RST_SEL REG_FLD(1, 8)
  1224. #define FIFO_CTL_FLD_FIFO_VALID_SET REG_FLD(5, 0)
  1225. #define STATUS_FLD_OUTEN REG_FLD(1, 17)
  1226. #define STATUS_FLD_DPI_BUSY REG_FLD(1, 16)
  1227. #define STATUS_FLD_V_COUNTER REG_FLD(13, 0)
  1228. #define TMODE_FLD_DPI_OEN_ON REG_FLD(1, 0)
  1229. #define CHKSUM_FLD_DPI_CHKSUM_EN REG_FLD(1, 31)
  1230. #define CHKSUM_FLD_DPI_CHKSUM_READY REG_FLD(1, 30)
  1231. #define CHKSUM_FLD_DPI_CHKSUM REG_FLD(24, 0)
  1232. #define PATTERN_FLD_PAT_R_MAN REG_FLD(8, 24)
  1233. #define PATTERN_FLD_PAT_G_MAN REG_FLD(8, 16)
  1234. #define PATTERN_FLD_PAT_B_MAN REG_FLD(8, 8)
  1235. #define PATTERN_FLD_PAT_SEL REG_FLD(3, 4)
  1236. #define PATTERN_FLD_PAT_EN REG_FLD(1, 0)
  1237. // field definition
  1238. // -------------------------------------------------------------
  1239. // CCORR
  1240. #define DISP_REG_CCORR_EN (DISPSYS_CCORR_BASE + 0x000)
  1241. #define DISP_REG_CCORR_RESET (DISPSYS_CCORR_BASE + 0x004)
  1242. #define DISP_REG_CCORR_INTEN (DISPSYS_CCORR_BASE + 0x008)
  1243. #define DISP_REG_CCORR_INTSTA (DISPSYS_CCORR_BASE + 0x00c)
  1244. #define DISP_REG_CCORR_STATUS (DISPSYS_CCORR_BASE + 0x010)
  1245. #define DISP_REG_CCORR_CFG (DISPSYS_CCORR_BASE + 0x020)
  1246. #define DISP_REG_CCORR_IN_CNT (DISPSYS_CCORR_BASE + 0x024)
  1247. #define DISP_REG_CCORR_OUT_CNT (DISPSYS_CCORR_BASE + 0x028)
  1248. #define DISP_REG_CCORR_CHKSUM (DISPSYS_CCORR_BASE + 0x02c)
  1249. #define DISP_REG_CCORR_SIZE (DISPSYS_CCORR_BASE + 0x030)
  1250. #define DISP_REG_CCORR_COEF_0 (DISPSYS_CCORR_BASE + 0x080)
  1251. #define DISP_REG_CCORR_DUMMY_REG (DISPSYS_CCORR_BASE + 0x0c0)
  1252. #define CCORR_SIZE_FLD_HSIZE REG_FLD(13, 16)
  1253. #define CCORR_SIZE_FLD_VSIZE REG_FLD(13, 0)
  1254. #define CCORR_CFG_FLD_CHKSUM_SEL REG_FLD(3, 29)
  1255. #define CCORR_CFG_FLD_CHKSUM_EN REG_FLD(1, 28)
  1256. #define CCORR_CFG_FLD_CCORR_GAMMA_OFF REG_FLD(1, 2)
  1257. #define CCORR_CFG_FLD_CCORR_ENGINE_EN REG_FLD(1, 1)
  1258. // -------------------------------------------------------------
  1259. // GAMMA
  1260. #define DISP_REG_GAMMA_EN (DISPSYS_GAMMA_BASE + 0x000)
  1261. #define DISP_REG_GAMMA_RESET (DISPSYS_GAMMA_BASE + 0x004)
  1262. #define DISP_REG_GAMMA_INTEN (DISPSYS_GAMMA_BASE + 0x008)
  1263. #define DISP_REG_GAMMA_INTSTA (DISPSYS_GAMMA_BASE + 0x00c)
  1264. #define DISP_REG_GAMMA_STATUS (DISPSYS_GAMMA_BASE + 0x010)
  1265. #define DISP_REG_GAMMA_CFG (DISPSYS_GAMMA_BASE + 0x020)
  1266. #define DISP_REG_GAMMA_INPUT_COUNT (DISPSYS_GAMMA_BASE + 0x024)
  1267. #define DISP_REG_GAMMA_OUTPUT_COUNT (DISPSYS_GAMMA_BASE + 0x028)
  1268. #define DISP_REG_GAMMA_CHKSUM (DISPSYS_GAMMA_BASE + 0x02c)
  1269. #define DISP_REG_GAMMA_SIZE (DISPSYS_GAMMA_BASE + 0x030)
  1270. #define DISP_REG_GAMMA_DUMMY_REG (DISPSYS_GAMMA_BASE + 0x0c0)
  1271. #define DISP_REG_GAMMA_LUT (DISPSYS_GAMMA_BASE + 0x700)
  1272. #define EN_FLD_GAMMA_EN REG_FLD(1, 0)
  1273. #define RESET_FLD_GAMMA_RESET REG_FLD(1, 0)
  1274. #define INTEN_FLD_OF_END_INT_EN REG_FLD(1, 1)
  1275. #define INTEN_FLD_IF_END_INT_EN REG_FLD(1, 0)
  1276. #define INTSTA_FLD_OF_END_INT REG_FLD(1, 1)
  1277. #define INTSTA_FLD_IF_END_INT REG_FLD(1, 0)
  1278. #define STATUS_FLD_IN_VALID REG_FLD(1, 7)
  1279. #define STATUS_FLD_IN_READY REG_FLD(1, 6)
  1280. #define STATUS_FLD_OUT_VALID REG_FLD(1, 5)
  1281. #define STATUS_FLD_OUT_READY REG_FLD(1, 4)
  1282. #define STATUS_FLD_OF_UNFINISH REG_FLD(1, 1)
  1283. #define STATUS_FLD_IF_UNFINISH REG_FLD(1, 0)
  1284. #define CFG_FLD_CHKSUM_SEL REG_FLD(2, 29)
  1285. #define CFG_FLD_CHKSUM_EN REG_FLD(1, 28)
  1286. #define CFG_FLD_CCORR_GAMMA_OFF REG_FLD(1, 5)
  1287. #define CFG_FLD_CCORR_EN REG_FLD(1, 4)
  1288. #define CFG_FLD_DITHER_EN REG_FLD(1, 2)
  1289. #define CFG_FLD_GAMMA_LUT_EN REG_FLD(1, 1)
  1290. #define CFG_FLD_RELAY_MODE REG_FLD(1, 0)
  1291. #define INPUT_COUNT_FLD_INP_LINE_CNT REG_FLD(13, 16)
  1292. #define INPUT_COUNT_FLD_INP_PIX_CNT REG_FLD(13, 0)
  1293. #define OUTPUT_COUNT_FLD_OUTP_LINE_CNT REG_FLD(13, 16)
  1294. #define OUTPUT_COUNT_FLD_OUTP_PIX_CNT REG_FLD(13, 0)
  1295. #define CHKSUM_FLD_CHKSUM REG_FLD(30, 0)
  1296. #define SIZE_FLD_HSIZE REG_FLD(13, 16)
  1297. #define SIZE_FLD_VSIZE REG_FLD(13, 0)
  1298. #define CCORR_0_FLD_CCORR_C00 REG_FLD(12, 16)
  1299. #define CCORR_0_FLD_CCORR_C01 REG_FLD(12, 0)
  1300. #define CCORR_1_FLD_CCORR_C02 REG_FLD(12, 16)
  1301. #define CCORR_1_FLD_CCORR_C10 REG_FLD(12, 0)
  1302. #define CCORR_2_FLD_CCORR_C11 REG_FLD(12, 16)
  1303. #define CCORR_2_FLD_CCORR_C12 REG_FLD(12, 0)
  1304. #define CCORR_3_FLD_CCORR_C20 REG_FLD(12, 16)
  1305. #define CCORR_3_FLD_CCORR_C21 REG_FLD(12, 0)
  1306. #define CCORR_4_FLD_CCORR_C22 REG_FLD(12, 16)
  1307. #define DUMMY_REG_FLD_DUMMY_REG REG_FLD(32, 0)
  1308. #define DITHER_0_FLD_CRC_CLR REG_FLD(1, 24)
  1309. #define DITHER_0_FLD_CRC_START REG_FLD(1, 20)
  1310. #define DITHER_0_FLD_CRC_CEN REG_FLD(1, 16)
  1311. #define DITHER_0_FLD_FRAME_DONE_DEL REG_FLD(8, 8)
  1312. #define DITHER_0_FLD_OUT_SEL REG_FLD(1, 4)
  1313. #define DITHER_5_FLD_W_DEMO REG_FLD(16, 0)
  1314. #define DITHER_6_FLD_WRAP_MODE REG_FLD(1, 16)
  1315. #define DITHER_6_FLD_LEFT_EN REG_FLD(2, 14)
  1316. #define DITHER_6_FLD_FPHASE_R REG_FLD(1, 13)
  1317. #define DITHER_6_FLD_FPHASE_EN REG_FLD(1, 12)
  1318. #define DITHER_6_FLD_FPHASE REG_FLD(6, 4)
  1319. #define DITHER_6_FLD_ROUND_EN REG_FLD(1, 3)
  1320. #define DITHER_6_FLD_RDITHER_EN REG_FLD(1, 2)
  1321. #define DITHER_6_FLD_LFSR_EN REG_FLD(1, 1)
  1322. #define DITHER_6_FLD_EDITHER_EN REG_FLD(1, 0)
  1323. #define DITHER_7_FLD_DRMOD_B REG_FLD(2, 8)
  1324. #define DITHER_7_FLD_DRMOD_G REG_FLD(2, 4)
  1325. #define DITHER_7_FLD_DRMOD_R REG_FLD(2, 0)
  1326. #define GAMMA_DITHER_8_FLD_INK_DATA_R REG_FLD(12, 16)
  1327. #define DITHER_8_FLD_INK REG_FLD(1, 0)
  1328. #define GAMMA_DITHER_9_FLD_INK_DATA_B REG_FLD(12, 16)
  1329. #define GAMMA_DITHER_9_FLD_INK_DATA_G REG_FLD(12, 0)
  1330. #define DITHER_10_FLD_FPHASE_BIT REG_FLD(3, 8)
  1331. #define DITHER_10_FLD_FPHASE_SEL REG_FLD(2, 4)
  1332. #define DITHER_10_FLD_FPHASE_CTRL REG_FLD(2, 0)
  1333. #define DITHER_11_FLD_SUB_B REG_FLD(2, 12)
  1334. #define DITHER_11_FLD_SUB_G REG_FLD(2, 8)
  1335. #define DITHER_11_FLD_SUB_R REG_FLD(2, 4)
  1336. #define DITHER_11_FLD_SUBPIX_EN REG_FLD(1, 0)
  1337. #define DITHER_12_FLD_H_ACTIVE REG_FLD(16, 16)
  1338. #define DITHER_12_FLD_TABLE_EN REG_FLD(2, 4)
  1339. #define DITHER_12_FLD_LSB_OFF REG_FLD(1, 0)
  1340. #define DITHER_13_FLD_RSHIFT_B REG_FLD(3, 8)
  1341. #define DITHER_13_FLD_RSHIFT_G REG_FLD(3, 4)
  1342. #define DITHER_13_FLD_RSHIFT_R REG_FLD(3, 0)
  1343. #define DITHER_14_FLD_DEBUG_MODE REG_FLD(2, 8)
  1344. #define DITHER_14_FLD_DIFF_SHIFT REG_FLD(3, 4)
  1345. #define DITHER_14_FLD_TESTPIN_EN REG_FLD(1, 0)
  1346. #define DITHER_15_FLD_LSB_ERR_SHIFT_R REG_FLD(3, 28)
  1347. #define DITHER_15_FLD_LSB_OVFLW_BIT_R REG_FLD(3, 24)
  1348. #define DITHER_15_FLD_LSB_ADD_LSHIFT_R REG_FLD(3, 20)
  1349. #define DITHER_15_FLD_LSB_INPUT_RSHIFT_R REG_FLD(3, 16)
  1350. #define DITHER_15_FLD_LSB_NEW_BIT_MODE REG_FLD(1, 0)
  1351. #define DITHER_16_FLD_LSB_ERR_SHIFT_B REG_FLD(3, 28)
  1352. #define DITHER_16_FLD_OVFLW_BIT_B REG_FLD(3, 24)
  1353. #define DITHER_16_FLD_ADD_LSHIFT_B REG_FLD(3, 20)
  1354. #define DITHER_16_FLD_INPUT_RSHIFT_B REG_FLD(3, 16)
  1355. #define DITHER_16_FLD_LSB_ERR_SHIFT_G REG_FLD(3, 12)
  1356. #define DITHER_16_FLD_OVFLW_BIT_G REG_FLD(3, 8)
  1357. #define DITHER_16_FLD_ADD_LSHIFT_G REG_FLD(3, 4)
  1358. #define DITHER_16_FLD_INPUT_RSHIFT_G REG_FLD(3, 0)
  1359. #define DITHER_17_FLD_CRC_RDY REG_FLD(1, 16)
  1360. #define DITHER_17_FLD_CRC_OUT REG_FLD(16, 0)
  1361. #define LUT_FLD_GAMMA_LUT_R REG_FLD(10, 20)
  1362. #define LUT_FLD_GAMMA_LUT_G REG_FLD(10, 10)
  1363. #define LUT_FLD_GAMMA_LUT_B REG_FLD(10, 0)
  1364. // -------------------------------------------------------------
  1365. // Dither
  1366. #define DISP_REG_DITHER_EN (DISPSYS_DITHER_BASE + 0x000)
  1367. #define DISP_REG_DITHER_RESET (DISPSYS_DITHER_BASE + 0x004)
  1368. #define DISP_REG_DITHER_INTEN (DISPSYS_DITHER_BASE + 0x008)
  1369. #define DISP_REG_DITHER_INTSTA (DISPSYS_DITHER_BASE + 0x00c)
  1370. #define DISP_REG_DITHER_STATUS (DISPSYS_DITHER_BASE + 0x010)
  1371. #define DISP_REG_DITHER_CFG (DISPSYS_DITHER_BASE + 0x020)
  1372. #define DISP_REG_DITHER_IN_CNT (DISPSYS_DITHER_BASE + 0x024)
  1373. #define DISP_REG_DITHER_OUT_CNT (DISPSYS_DITHER_BASE + 0x028)
  1374. #define DISP_REG_DITHER_CHKSUM (DISPSYS_DITHER_BASE + 0x02c)
  1375. #define DISP_REG_DITHER_SIZE (DISPSYS_DITHER_BASE + 0x030)
  1376. #define DISP_REG_DITHER_DUMMY_REG (DISPSYS_DITHER_BASE + 0x0c0)
  1377. #define DISP_REG_DITHER_0 (DISPSYS_DITHER_BASE + 0x100)
  1378. #define DISP_REG_DITHER_5 (DISPSYS_DITHER_BASE + 0x114)
  1379. #define DISP_REG_DITHER_6 (DISPSYS_DITHER_BASE + 0x118)
  1380. #define DISP_REG_DITHER_7 (DISPSYS_DITHER_BASE + 0x11c)
  1381. #define DISP_REG_DITHER_8 (DISPSYS_DITHER_BASE + 0x120)
  1382. #define DISP_REG_DITHER_9 (DISPSYS_DITHER_BASE + 0x124)
  1383. #define DISP_REG_DITHER_10 (DISPSYS_DITHER_BASE + 0x128)
  1384. #define DISP_REG_DITHER_11 (DISPSYS_DITHER_BASE + 0x12c)
  1385. #define DISP_REG_DITHER_12 (DISPSYS_DITHER_BASE + 0x130)
  1386. #define DISP_REG_DITHER_13 (DISPSYS_DITHER_BASE + 0x134)
  1387. #define DISP_REG_DITHER_14 (DISPSYS_DITHER_BASE + 0x138)
  1388. #define DISP_REG_DITHER_15 (DISPSYS_DITHER_BASE + 0x13c)
  1389. #define DISP_REG_DITHER_16 (DISPSYS_DITHER_BASE + 0x140)
  1390. #define DISP_REG_DITHER_17 (DISPSYS_DITHER_BASE + 0x144)
  1391. #define DITHER_CFG_FLD_CHKSUM_SEL REG_FLD(2, 29)
  1392. #define DITHER_CFG_FLD_CHKSUM_EN REG_FLD(1, 28)
  1393. #define DITHER_CFG_FLD_DITHER_ENGINE_EN REG_FLD(1,1)
  1394. #define DITHER_CFG_FLD_RELAY_MODE REG_FLD(1,0)
  1395. #define DITHER_SIZE_FLD_HSIZE REG_FLD(13, 16)
  1396. #define DITHER_SIZE_FLD_VSIZE REG_FLD(13, 0)
  1397. // -------------------------------------------------------------
  1398. // MUTEX
  1399. #define DISP_OVL_SEPARATE_MUTEX_ID (DISP_MUTEX_DDP_LAST+1) /* other disp will not see mutex 4 */
  1400. #define DISP_REG_CONFIG_MUTEX_INTEN (DISPSYS_MUTEX_BASE + 0x000)
  1401. #define DISP_REG_CONFIG_MUTEX_INTSTA (DISPSYS_MUTEX_BASE + 0x004)
  1402. #define DISP_REG_CONFIG_MUTEX_CFG (DISPSYS_MUTEX_BASE + 0x008)
  1403. #define CFG_FLD_HW_CG REG_FLD(1, 0)
  1404. #define DISP_REG_CONFIG_MUTEX_REG_UPD_TIMEOUT (DISPSYS_MUTEX_BASE + 0x00C)
  1405. #define UPD_FLD_UPD_TIMEOUT REG_FLD(8, 0)
  1406. #define DISP_REG_CONFIG_MUTEX_REG_COMMIT0 (DISPSYS_MUTEX_BASE + 0x010)
  1407. #define DISP_REG_CONFIG_MUTEX_REG_COMMIT1 (DISPSYS_MUTEX_BASE + 0x014)
  1408. #define DISP_REG_CONFIG_MUTEX_INTEN_1 (DISPSYS_MUTEX_BASE + 0x018)
  1409. #define DISP_REG_CONFIG_MUTEX_INTSTA_1 (DISPSYS_MUTEX_BASE + 0x01C)
  1410. /* mutex0 */
  1411. #define DISP_REG_CONFIG_MUTEX0_EN (DISPSYS_MUTEX_BASE + 0x020)
  1412. #define EN_FLD_MUTEX0_EN REG_FLD(1, 0)
  1413. #define DISP_REG_CONFIG_MUTEX0_GET (DISPSYS_MUTEX_BASE + 0x024)
  1414. #define GET_FLD_MUTEX0_GET REG_FLD(1, 0)
  1415. #define GET_FLD_INT_MUTEX0_EN REG_FLD(1, 1)
  1416. #define DISP_REG_CONFIG_MUTEX0_RST (DISPSYS_MUTEX_BASE + 0x028)
  1417. #define RST_FLD_MUTEX0_RST REG_FLD(1, 0)
  1418. #define DISP_REG_CONFIG_MUTEX0_SOF (DISPSYS_MUTEX_BASE + 0x02C)
  1419. #define SOF_FLD_MUTEX0_SOF REG_FLD(3, 0)
  1420. #define SOF_FLD_MUTEX0_SOF_TIMING REG_FLD(2, 3)
  1421. #define SOF_FLD_MUTEX0_SOF_WAIT REG_FLD(1, 5)
  1422. #define SOF_FLD_MUTEX0_EOF REG_FLD(3, 6)
  1423. #define SOF_FLD_MUTEX0_FOF_TIMING REG_FLD(2, 9)
  1424. #define SOF_FLD_MUTEX0_EOF_WAIT REG_FLD(1, 11)
  1425. #define SOF_VAL_MUTEX0_SOF_SINGLE_MODE (0)
  1426. #define SOF_VAL_MUTEX0_SOF_FROM_DSI0 (1)
  1427. #define SOF_VAL_MUTEX0_SOF_FROM_DSI1 (2)
  1428. #define SOF_VAL_MUTEX0_SOF_FROM_DPI (3)
  1429. #define SOF_VAL_MUTEX0_EOF_SINGLE_MODE (0)
  1430. #define SOF_VAL_MUTEX0_EOF_FROM_DSI0 (1)
  1431. #define SOF_VAL_MUTEX0_EOF_FROM_DSI1 (2)
  1432. #define SOF_VAL_MUTEX0_EOF_FROM_DPI (3)
  1433. #define DISP_REG_CONFIG_MUTEX0_MOD0 (DISPSYS_MUTEX_BASE + 0x030)
  1434. #define DISP_REG_CONFIG_MUTEX0_MOD1 (DISPSYS_MUTEX_BASE + 0x034)
  1435. #define DISP_REG_CONFIG_MUTEX1_EN (DISPSYS_MUTEX_BASE + 0x040)
  1436. #define DISP_REG_CONFIG_MUTEX1_GET (DISPSYS_MUTEX_BASE + 0x044)
  1437. #define DISP_REG_CONFIG_MUTEX1_RST (DISPSYS_MUTEX_BASE + 0x048)
  1438. #define DISP_REG_CONFIG_MUTEX1_SOF (DISPSYS_MUTEX_BASE + 0x04C)
  1439. #define DISP_REG_CONFIG_MUTEX1_MOD0 (DISPSYS_MUTEX_BASE + 0x050)
  1440. #define DISP_REG_CONFIG_MUTEX1_MOD1 (DISPSYS_MUTEX_BASE + 0x054)
  1441. #define DISP_REG_CONFIG_MUTEX2_EN (DISPSYS_MUTEX_BASE + 0x060)
  1442. #define DISP_REG_CONFIG_MUTEX2_GET (DISPSYS_MUTEX_BASE + 0x064)
  1443. #define DISP_REG_CONFIG_MUTEX2_RST (DISPSYS_MUTEX_BASE + 0x068)
  1444. #define DISP_REG_CONFIG_MUTEX2_SOF (DISPSYS_MUTEX_BASE + 0x06C)
  1445. #define DISP_REG_CONFIG_MUTEX2_MOD0 (DISPSYS_MUTEX_BASE + 0x070)
  1446. #define DISP_REG_CONFIG_MUTEX2_MOD1 (DISPSYS_MUTEX_BASE + 0x074)
  1447. #define DISP_REG_CONFIG_MUTEX3_EN (DISPSYS_MUTEX_BASE + 0x080)
  1448. #define DISP_REG_CONFIG_MUTEX3_GET (DISPSYS_MUTEX_BASE + 0x084)
  1449. #define DISP_REG_CONFIG_MUTEX3_RST (DISPSYS_MUTEX_BASE + 0x088)
  1450. #define DISP_REG_CONFIG_MUTEX3_SOF (DISPSYS_MUTEX_BASE + 0x08C)
  1451. #define DISP_REG_CONFIG_MUTEX3_MOD0 (DISPSYS_MUTEX_BASE + 0x090)
  1452. #define DISP_REG_CONFIG_MUTEX3_MOD1 (DISPSYS_MUTEX_BASE + 0x094)
  1453. #define DISP_REG_CONFIG_MUTEX4_EN (DISPSYS_MUTEX_BASE + 0x0A0)
  1454. #define DISP_REG_CONFIG_MUTEX4_GET (DISPSYS_MUTEX_BASE + 0x0A4)
  1455. #define DISP_REG_CONFIG_MUTEX4_RST (DISPSYS_MUTEX_BASE + 0x0A8)
  1456. #define DISP_REG_CONFIG_MUTEX4_SOF (DISPSYS_MUTEX_BASE + 0x0AC)
  1457. #define DISP_REG_CONFIG_MUTEX4_MOD0 (DISPSYS_MUTEX_BASE + 0x0B0)
  1458. #define DISP_REG_CONFIG_MUTEX4_MOD1 (DISPSYS_MUTEX_BASE + 0x0B4)
  1459. #define DISP_REG_CONFIG_MUTEX5_EN (DISPSYS_MUTEX_BASE + 0x0C0)
  1460. #define DISP_REG_CONFIG_MUTEX5_GET (DISPSYS_MUTEX_BASE + 0x0C4)
  1461. #define DISP_REG_CONFIG_MUTEX5_RST (DISPSYS_MUTEX_BASE + 0x0C8)
  1462. #define DISP_REG_CONFIG_MUTEX5_SOF (DISPSYS_MUTEX_BASE + 0x0CC)
  1463. #define DISP_REG_CONFIG_MUTEX5_MOD0 (DISPSYS_MUTEX_BASE + 0x0D0)
  1464. #define DISP_REG_CONFIG_MUTEX5_MOD1 (DISPSYS_MUTEX_BASE + 0x0D4)
  1465. #define DISP_REG_CONFIG_MUTEX_DUMMY0 (DISPSYS_MUTEX_BASE + 0x300)
  1466. #define DISP_REG_CONFIG_MUTEX_DUMMY1 (DISPSYS_MUTEX_BASE + 0x304)
  1467. #define DISP_REG_CONFIG_DEBUG_OUT_SEL (DISPSYS_MUTEX_BASE + 0x30C)
  1468. #define DEBUG_OUT_SEL_FLD_DEBUG_OUT_SEL REG_FLD(2, 0)
  1469. #define DISP_REG_CONFIG_MUTEX_EN(n) (DISP_REG_CONFIG_MUTEX0_EN + (0x20 * (n)))
  1470. #define DISP_REG_CONFIG_MUTEX_GET(n) (DISP_REG_CONFIG_MUTEX0_GET + (0x20 * (n)))
  1471. #define DISP_REG_CONFIG_MUTEX_RST(n) (DISP_REG_CONFIG_MUTEX0_RST + (0x20 * (n)))
  1472. #define DISP_REG_CONFIG_MUTEX_MOD0(n) (DISP_REG_CONFIG_MUTEX0_MOD0 + (0x20 * (n)))
  1473. #define DISP_REG_CONFIG_MUTEX_MOD1(n) (DISP_REG_CONFIG_MUTEX0_MOD1 + (0x20 * (n)))
  1474. #define DISP_REG_CONFIG_MUTEX_SOF(n) (DISP_REG_CONFIG_MUTEX0_SOF + (0x20 * (n)))
  1475. // -------------------------------------------------------------
  1476. // OD
  1477. #define DISP_REG_OD_EN (DISPSYS_OD_BASE+0x000)
  1478. #define DISP_REG_OD_RESET (DISPSYS_OD_BASE+0x004)
  1479. #define DISP_REG_OD_INTEN (DISPSYS_OD_BASE+0x008)
  1480. #define DISP_REG_OD_INTSTA (DISPSYS_OD_BASE+0x00C)
  1481. #define DISP_REG_OD_STATUS (DISPSYS_OD_BASE+0x010)
  1482. #define DISP_REG_OD_CFG (DISPSYS_OD_BASE+0x020)
  1483. #define DISP_REG_OD_INPUT_COUNT (DISPSYS_OD_BASE+0x024)
  1484. #define DISP_REG_OD_OUTPUT_COUNT (DISPSYS_OD_BASE+0x028)
  1485. #define DISP_REG_OD_CHKSUM (DISPSYS_OD_BASE+0x02C)
  1486. #define DISP_REG_OD_SIZE (DISPSYS_OD_BASE+0x030)
  1487. #define DISP_REG_OD_HSYNC_WIDTH (DISPSYS_OD_BASE+0x040)
  1488. #define DISP_REG_OD_VSYNC_WIDTH (DISPSYS_OD_BASE+0x044)
  1489. #define DISP_REG_OD_MISC (DISPSYS_OD_BASE+0x048)
  1490. #define DISP_REG_OD_DUMMY_REG (DISPSYS_OD_BASE+0x0C0)
  1491. #define DISP_REG_OD_DITHER_0 (DISPSYS_OD_BASE+0x100)
  1492. #define DISP_REG_OD_DITHER_5 (DISPSYS_OD_BASE+0x114)
  1493. #define DISP_REG_OD_DITHER_6 (DISPSYS_OD_BASE+0x118)
  1494. #define DISP_REG_OD_DITHER_7 (DISPSYS_OD_BASE+0x11C)
  1495. #define DISP_REG_OD_DITHER_8 (DISPSYS_OD_BASE+0x120)
  1496. #define DISP_REG_OD_DITHER_9 (DISPSYS_OD_BASE+0x124)
  1497. #define DISP_REG_OD_DITHER_10 (DISPSYS_OD_BASE+0x128)
  1498. #define DISP_REG_OD_DITHER_11 (DISPSYS_OD_BASE+0x12C)
  1499. #define DISP_REG_OD_DITHER_12 (DISPSYS_OD_BASE+0x130)
  1500. #define DISP_REG_OD_DITHER_13 (DISPSYS_OD_BASE+0x134)
  1501. #define DISP_REG_OD_DITHER_14 (DISPSYS_OD_BASE+0x138)
  1502. #define DISP_REG_OD_DITHER_15 (DISPSYS_OD_BASE+0x13C)
  1503. #define DISP_REG_OD_DITHER_16 (DISPSYS_OD_BASE+0x140)
  1504. #define DISP_REG_OD_DITHER_17 (DISPSYS_OD_BASE+0x144)
  1505. /* ------------------------------------------------------------- */
  1506. /* RDMA */
  1507. #define DISP_REG_RDMA_INT_ENABLE (DISPSYS_RDMA0_BASE+0x000)
  1508. #define DISP_REG_RDMA_INT_STATUS (DISPSYS_RDMA0_BASE+0x004)
  1509. #define DISP_REG_RDMA_GLOBAL_CON (DISPSYS_RDMA0_BASE+0x010)
  1510. #define DISP_REG_RDMA_SIZE_CON_0 (DISPSYS_RDMA0_BASE+0x014)
  1511. #define DISP_REG_RDMA_SIZE_CON_1 (DISPSYS_RDMA0_BASE+0x018)
  1512. #define DISP_REG_RDMA_TARGET_LINE (DISPSYS_RDMA0_BASE+0x01C)
  1513. #define DISP_REG_RDMA_MEM_CON (DISPSYS_RDMA0_BASE+0x024)
  1514. #define DISP_REG_RDMA_MEM_SRC_PITCH (DISPSYS_RDMA0_BASE+0x02C)
  1515. #define DISP_REG_RDMA_MEM_GMC_SETTING_0 (DISPSYS_RDMA0_BASE+0x030)
  1516. #define DISP_REG_RDMA_MEM_GMC_SETTING_1 (DISPSYS_RDMA0_BASE+0x034)
  1517. #define DISP_REG_RDMA_MEM_SLOW_CON (DISPSYS_RDMA0_BASE+0x038)
  1518. #define DISP_REG_RDMA_MEM_GMC_SETTING_2 (DISPSYS_RDMA0_BASE+0x03c)
  1519. #define DISP_REG_RDMA_FIFO_CON (DISPSYS_RDMA0_BASE+0x040)
  1520. #define DISP_REG_RDMA_FIFO_LOG (DISPSYS_RDMA0_BASE+0x044)
  1521. #define DISP_REG_RDMA_C00 (DISPSYS_RDMA0_BASE+0x054)
  1522. #define DISP_REG_RDMA_C01 (DISPSYS_RDMA0_BASE+0x058)
  1523. #define DISP_REG_RDMA_C02 (DISPSYS_RDMA0_BASE+0x05C)
  1524. #define DISP_REG_RDMA_C10 (DISPSYS_RDMA0_BASE+0x060)
  1525. #define DISP_REG_RDMA_C11 (DISPSYS_RDMA0_BASE+0x064)
  1526. #define DISP_REG_RDMA_C12 (DISPSYS_RDMA0_BASE+0x068)
  1527. #define DISP_REG_RDMA_C20 (DISPSYS_RDMA0_BASE+0x06C)
  1528. #define DISP_REG_RDMA_C21 (DISPSYS_RDMA0_BASE+0x070)
  1529. #define DISP_REG_RDMA_C22 (DISPSYS_RDMA0_BASE+0x074)
  1530. #define DISP_REG_RDMA_PRE_ADD_0 (DISPSYS_RDMA0_BASE+0x078)
  1531. #define DISP_REG_RDMA_PRE_ADD_1 (DISPSYS_RDMA0_BASE+0x07C)
  1532. #define DISP_REG_RDMA_PRE_ADD_2 (DISPSYS_RDMA0_BASE+0x080)
  1533. #define DISP_REG_RDMA_POST_ADD_0 (DISPSYS_RDMA0_BASE+0x084)
  1534. #define DISP_REG_RDMA_POST_ADD_1 (DISPSYS_RDMA0_BASE+0x088)
  1535. #define DISP_REG_RDMA_POST_ADD_2 (DISPSYS_RDMA0_BASE+0x08C)
  1536. #define DISP_REG_RDMA_DUMMY (DISPSYS_RDMA0_BASE+0x090)
  1537. #define DISP_REG_RDMA_DEBUG_OUT_SEL (DISPSYS_RDMA0_BASE+0x094)
  1538. #define DISP_REG_RDMA_MEM_START_ADDR (DISPSYS_RDMA0_BASE+0xf00)
  1539. #define DISP_REG_RDMA_BG_CON_0 (DISPSYS_RDMA0_BASE+0x0a0)
  1540. #define DISP_REG_RDMA_BG_CON_1 (DISPSYS_RDMA0_BASE+0x0a4)
  1541. #define DISP_REG_RDMA_THRESHOLD_FOR_SODI (DISPSYS_RDMA0_BASE+0x0a8)
  1542. #define DISP_REG_RDMA_THRESHOLD_FOR_DVFS (DISPSYS_RDMA0_BASE+0x0ac)
  1543. #define DISP_REG_RDMA_SRAM_SEL (DISPSYS_RDMA0_BASE+0x0b0)
  1544. #define DISP_REG_RDMA_STALL_CG_CON (DISPSYS_RDMA0_BASE+0x0b4)
  1545. #define DISP_REG_RDMA_SHADOW_UPDATE (DISPSYS_RDMA0_BASE+0x0b8)
  1546. #define DISP_REG_RDMA_DRAM_CON (DISPSYS_RDMA0_BASE+0x0c0)
  1547. #define DISP_REG_RDMA_DVFS_SETTING_PRE (DISPSYS_RDMA0_BASE+0x0d0)
  1548. #define DISP_REG_RDMA_DVFS_SETTING_ULTRA (DISPSYS_RDMA0_BASE+0x0d4)
  1549. #define DISP_REG_RDMA_IN_P_CNT (DISPSYS_RDMA0_BASE+0x0f0)
  1550. #define DISP_REG_RDMA_IN_LINE_CNT (DISPSYS_RDMA0_BASE+0x0f4)
  1551. #define DISP_REG_RDMA_OUT_P_CNT (DISPSYS_RDMA0_BASE+0x0f8)
  1552. #define DISP_REG_RDMA_OUT_LINE_CNT (DISPSYS_RDMA0_BASE+0x0fc)
  1553. #define DISP_REG_RDMA_DBG_OUT (DISPSYS_RDMA0_BASE+0x100)
  1554. #define DISP_REG_RDMA_DBG_OUT1 (DISPSYS_RDMA0_BASE+0x10c)
  1555. #define INT_ENABLE_FLD_TARGET_LINE_INT_EN REG_FLD(1, 5)
  1556. #define INT_ENABLE_FLD_FIFO_UNDERFLOW_INT_EN REG_FLD(1, 4)
  1557. #define INT_ENABLE_FLD_EOF_ABNORMAL_INT_EN REG_FLD(1, 3)
  1558. #define INT_ENABLE_FLD_FRAME_END_INT_EN REG_FLD(1, 2)
  1559. #define INT_ENABLE_FLD_FRAME_START_INT_EN REG_FLD(1, 1)
  1560. #define INT_ENABLE_FLD_REG_UPDATE_INT_EN REG_FLD(1, 0)
  1561. #define INT_STATUS_FLD_FIFO_EMPTY_INT_FLAG REG_FLD(1, 6)
  1562. #define INT_STATUS_FLD_TARGET_LINE_INT_FLAG REG_FLD(1, 5)
  1563. #define INT_STATUS_FLD_FIFO_UNDERFLOW_INT_FLAG REG_FLD(1, 4)
  1564. #define INT_STATUS_FLD_EOF_ABNORMAL_INT_FLAG REG_FLD(1, 3)
  1565. #define INT_STATUS_FLD_FRAME_END_INT_FLAG REG_FLD(1, 2)
  1566. #define INT_STATUS_FLD_FRAME_START_INT_FLAG REG_FLD(1, 1)
  1567. #define INT_STATUS_FLD_REG_UPDATE_INT_FLAG REG_FLD(1, 0)
  1568. #define GLOBAL_CON_FLD_SMI_BUSY REG_FLD(1, 12)
  1569. #define GLOBAL_CON_FLD_RESET_STATE REG_FLD(3, 8)
  1570. #define GLOBAL_CON_FLD_SOFT_RESET REG_FLD(1, 4)
  1571. #define GLOBAL_CON_FLD_MODE_SEL REG_FLD(1, 1)
  1572. #define GLOBAL_CON_FLD_ENGINE_EN REG_FLD(1, 0)
  1573. #define SIZE_CON_0_FLD_MATRIX_INT_MTX_SEL REG_FLD(4, 20)
  1574. #define SIZE_CON_0_FLD_MATRIX_WIDE_GAMUT_EN REG_FLD(1, 18)
  1575. #define SIZE_CON_0_FLD_MATRIX_ENABLE REG_FLD(1, 17)
  1576. #define SIZE_CON_0_FLD_MATRIX_EXT_MTX_EN REG_FLD(1, 16)
  1577. #define SIZE_CON_0_FLD_OUTPUT_FRAME_WIDTH REG_FLD(13, 0)
  1578. #define SIZE_CON_1_FLD_OUTPUT_FRAME_HEIGHT REG_FLD(20, 0)
  1579. #define TARGET_LINE_FLD_TARGET_LINE REG_FLD(20, 0)
  1580. #define MEM_CON_FLD_MEM_MODE_HORI_BLOCK_NUM REG_FLD(8, 24)
  1581. #define MEM_CON_FLD_MEM_MODE_INPUT_COSITE REG_FLD(1, 13)
  1582. #define MEM_CON_FLD_MEM_MODE_INPUT_UPSAMPLE REG_FLD(1, 12)
  1583. #define MEM_CON_FLD_MEM_MODE_INPUT_SWAP REG_FLD(1, 8)
  1584. #define MEM_CON_FLD_MEM_MODE_INPUT_FORMAT REG_FLD(4, 4)
  1585. #define MEM_CON_FLD_MEM_MODE_TILE_INTERLACE REG_FLD(1, 1)
  1586. #define MEM_CON_FLD_MEM_MODE_TILE_EN REG_FLD(1, 0)
  1587. #define MEM_SRC_PITCH_FLD_MEM_MODE_SRC_PITCH REG_FLD(16, 0)
  1588. #define MEM_GMC_SETTING_0_FLD_PRE_ULTRA_THRESHOLD_HIGH_OFS REG_FLD(8, 24)
  1589. #define MEM_GMC_SETTING_0_FLD_ULTRA_THRESHOLD_HIGH_OFS REG_FLD(8, 16)
  1590. #define MEM_GMC_SETTING_0_FLD_PRE_ULTRA_THRESHOLD_LOW_OFS REG_FLD(8, 8)
  1591. #define MEM_GMC_SETTING_0_FLD_ULTRA_THRESHOLD_LOW REG_FLD(8, 0)
  1592. #define MEM_SLOW_CON_FLD_MEM_MODE_SLOW_COUNT REG_FLD(16, 16)
  1593. #define MEM_SLOW_CON_FLD_MEM_MODE_SLOW_EN REG_FLD(1, 0)
  1594. #define MEM_GMC_SETTING_1_FLD_ISSUE_REQ_THRESHOLD REG_FLD(8, 0)
  1595. #define FIFO_CON_FLD_FIFO_UNDERFLOW_EN REG_FLD(1, 31)
  1596. #define FIFO_CON_FLD_FIFO_PSEUDO_SIZE REG_FLD(12, 16)
  1597. #define FIFO_CON_FLD_OUTPUT_VALID_FIFO_THRESHOLD REG_FLD(12, 0)
  1598. #define FIFO_LOG_FLD_RDMA_FIFO_LOG REG_FLD(10, 0)
  1599. #define C00_FLD_DISP_RDMA_C00 REG_FLD(13, 0)
  1600. #define C01_FLD_DISP_RDMA_C01 REG_FLD(13, 0)
  1601. #define C02_FLD_DISP_RDMA_C02 REG_FLD(13, 0)
  1602. #define C10_FLD_DISP_RDMA_C10 REG_FLD(13, 0)
  1603. #define C11_FLD_DISP_RDMA_C11 REG_FLD(13, 0)
  1604. #define C12_FLD_DISP_RDMA_C12 REG_FLD(13, 0)
  1605. #define C20_FLD_DISP_RDMA_C20 REG_FLD(13, 0)
  1606. #define C21_FLD_DISP_RDMA_C21 REG_FLD(13, 0)
  1607. #define C22_FLD_DISP_RDMA_C22 REG_FLD(13, 0)
  1608. #define PRE_ADD_0_FLD_DISP_RDMA_PRE_ADD_0 REG_FLD(9, 0)
  1609. #define PRE_ADD_1_FLD_DISP_RDMA_PRE_ADD_1 REG_FLD(9, 0)
  1610. #define PRE_ADD_2_FLD_DISP_RDMA_PRE_ADD_2 REG_FLD(9, 0)
  1611. #define POST_ADD_0_FLD_DISP_RDMA_POST_ADD_0 REG_FLD(9, 0)
  1612. #define POST_ADD_1_FLD_DISP_RDMA_POST_ADD_1 REG_FLD(9, 0)
  1613. #define POST_ADD_2_FLD_DISP_RDMA_POST_ADD_2 REG_FLD(9, 0)
  1614. #define DUMMY_FLD_DISP_RDMA_DUMMY REG_FLD(32, 0)
  1615. #define DEBUG_OUT_SEL_FLD_DISP_RDMA_DEBUG_OUT_SEL REG_FLD(4, 0)
  1616. #define MEM_START_ADDR_FLD_MEM_MODE_START_ADDR REG_FLD(32, 0)
  1617. #define RDMA_BG_CON_0_LEFT REG_FLD(13, 0)
  1618. #define RDMA_BG_CON_0_RIGHT REG_FLD(13, 16)
  1619. #define RDMA_BG_CON_1_TOP REG_FLD(13, 0)
  1620. #define RDMA_BG_CON_1_BOTTOM REG_FLD(13, 16)
  1621. /* ------------------------------------------------------------- */
  1622. /* SPLIT */
  1623. #define DISP_REG_SPLIT_ENABLE (DISPSYS_SPLIT0_BASE+0x00)
  1624. #define DISP_REG_SPLIT_SW_RESET (DISPSYS_SPLIT0_BASE+0x04)
  1625. #define DISP_REG_SPLIT_CFG (DISPSYS_SPLIT0_BASE+0x20)
  1626. #define DISP_REG_SPLIT_DEBUG (DISPSYS_SPLIT0_BASE+0x60)
  1627. #define ENABLE_FLD_SPLIT_EN REG_FLD(1, 0)
  1628. #define W_RESET_FLD_SPLIT_SW_RST REG_FLD(1, 0)
  1629. #define DEBUG_FLD_SPLIT_FSM REG_FLD(2, 28)
  1630. #define DEBUG_FLD_IN_PIXEL_CNT REG_FLD(24, 0)
  1631. /* ------------------------------------------------------------- */
  1632. /* UFO */
  1633. #define DISP_REG_UFO_START (DISPSYS_UFOE_BASE+0x000)
  1634. #define DISP_REG_UFO_INTEN (DISPSYS_UFOE_BASE+0x004)
  1635. #define DISP_REG_UFO_INTSTA (DISPSYS_UFOE_BASE+0x008)
  1636. #define DISP_REG_UFO_DBUF (DISPSYS_UFOE_BASE+0x00C)
  1637. #define DISP_REG_UFO_CRC (DISPSYS_UFOE_BASE+0x014)
  1638. #define DISP_REG_UFO_SW_SCRATCH (DISPSYS_UFOE_BASE+0x018)
  1639. #define DISP_REG_UFO_CR0P6_PAD (DISPSYS_UFOE_BASE+0x020)
  1640. #define DISP_REG_UFO_LR_OVERLAP (DISPSYS_UFOE_BASE+0x024)
  1641. #define DISP_REG_UFO_CK_ON (DISPSYS_UFOE_BASE+0x028)
  1642. #define DISP_REG_UFO_STALL_CG (DISPSYS_UFOE_BASE+0x030)
  1643. #define DISP_REG_UFO_FRAME_WIDTH (DISPSYS_UFOE_BASE+0x050)
  1644. #define DISP_REG_UFO_FRAME_HEIGHT (DISPSYS_UFOE_BASE+0x054)
  1645. #define DISP_REG_UFO_OUTEN (DISPSYS_UFOE_BASE+0x058)
  1646. #define DISP_REG_UFO_R0_CRC (DISPSYS_UFOE_BASE+0x0F0)
  1647. #define DISP_REG_UFO_CFG_0B (DISPSYS_UFOE_BASE+0x100)
  1648. #define DISP_REG_UFO_CFG_1B (DISPSYS_UFOE_BASE+0x104)
  1649. #define DISP_REG_UFO_CFG_2B (DISPSYS_UFOE_BASE+0x108)
  1650. #define DISP_REG_UFO_CFG_3B (DISPSYS_UFOE_BASE+0x10C)
  1651. #define DISP_REG_UFO_CFG_4B (DISPSYS_UFOE_BASE+0x110)
  1652. #define DISP_REG_UFO_RO_0B (DISPSYS_UFOE_BASE+0x120)
  1653. #define DISP_REG_UFO_RO_1B (DISPSYS_UFOE_BASE+0x124)
  1654. #define DISP_REG_UFO_RO_2B (DISPSYS_UFOE_BASE+0x128)
  1655. #define DISP_REG_UFO_RO_3B (DISPSYS_UFOE_BASE+0x12C)
  1656. #define DISP_REG_UFO_RO_4B (DISPSYS_UFOE_BASE+0x130)
  1657. #define START_FLD_DISP_UFO_START REG_FLD(1, 0)
  1658. #define START_FLD_DISP_UFO_OUT_SEL REG_FLD(1, 1)
  1659. #define START_FLD_DISP_UFO_BYPASS REG_FLD(1, 2)
  1660. #define START_FLD_DISP_UFO_LR_EN REG_FLD(1, 3)
  1661. #define START_FLD_DISP_UFO_SW_RST_ENGINE REG_FLD(1, 8)
  1662. #define START_FLD_DISP_UFO_DBG_SEL REG_FLD(8, 16)
  1663. #define CFG_0B_FLD_DISP_UFO_CFG_VLC_EN REG_FLD(1, 0)
  1664. #define CFG_0B_FLD_DISP_UFO_CFG_COM_RATIO REG_FLD(2, 1)
  1665. #define CFG_1B_FLD_DISP_UFO_CFG_1B REG_FLD(32, 0)
  1666. #define CFG_2B_FLD_DISP_UFO_CFG_2B REG_FLD(32, 0)
  1667. #define CFG_3B_FLD_DISP_UFO_CFG_3B REG_FLD(32, 0)
  1668. #define CFG_4B_FLD_DISP_UFO_CFG_4B REG_FLD(32, 0)
  1669. #define RO_0B_FLD_DISP_UFO_RO_0B REG_FLD(32, 0)
  1670. #define RO_1B_FLD_DISP_UFO_RO_1B REG_FLD(32, 0)
  1671. #define RO_2B_FLD_DISP_UFO_RO_2B REG_FLD(32, 0)
  1672. #define RO_3B_FLD_DISP_UFO_RO_3B REG_FLD(32, 0)
  1673. #define RO_4B_FLD_DISP_UFO_RO_4B REG_FLD(32, 0)
  1674. #define CR0P6_PAD_FLD_DISP_UFO_STR_PAD_NUM REG_FLD(3, 0)
  1675. #define INTEN_FLD_DISP_UFO_INTEN_FR_UNDERRUN REG_FLD(1, 2)
  1676. #define INTEN_FLD_DISP_UFO_INTEN_FR_DONE REG_FLD(1, 1)
  1677. #define INTEN_FLD_DISP_UFO_INTEN_FR_COMPLETE REG_FLD(1, 0)
  1678. #define INTSTA_FLD_DISP_UFO_INTSTA_FR_UNDERRUN REG_FLD(1, 2)
  1679. #define INTSTA_FLD_DISP_UFO_INTSTA_FR_DONE REG_FLD(1, 1)
  1680. #define INTSTA_FLD_DISP_UFO_INTSTA_FR_COMPLETE REG_FLD(1, 0)
  1681. #define DBUF_FLD_DISP_UFO_DBUF_DIS REG_FLD(5, 0)
  1682. #define CRC_FLD_DISP_UFO_CRC_CLR REG_FLD(1, 2)
  1683. #define CRC_FLD_DISP_UFO_CRC_START REG_FLD(1, 1)
  1684. #define CRC_FLD_DISP_UFO_CRC_CEN REG_FLD(1, 0)
  1685. #define SW_SCRATCH_FLD_DISP_UFO_SW_SCRATCH REG_FLD(32, 0)
  1686. #define CK_ON_FLD_DISP_UFO_CK_ON REG_FLD(1, 0)
  1687. #define FRAME_WIDTH_FLD_DISP_UFO_FRAME_WIDTH REG_FLD(12, 0)
  1688. #define FRAME_HEIGHT_FLD_DISP_UFO_FRAME_HEIGHT REG_FLD(13, 0)
  1689. #define R0_CRC_FLD_DISP_UFO_ENGINE_END REG_FLD(1, 17)
  1690. #define R0_CRC_FLD_DISP_UFO_CRC_RDY_0 REG_FLD(1, 16)
  1691. #define R0_CRC_FLD_DISP_UFO_CRC_OUT_0 REG_FLD(16, 0)
  1692. /* ------------------------------------------------------------- */
  1693. /* WDMA */
  1694. #define DISP_REG_WDMA_INTEN (DISPSYS_WDMA0_BASE+0x000)
  1695. #define DISP_REG_WDMA_INTSTA (DISPSYS_WDMA0_BASE+0x004)
  1696. #define DISP_REG_WDMA_EN (DISPSYS_WDMA0_BASE+0x008)
  1697. #define DISP_REG_WDMA_RST (DISPSYS_WDMA0_BASE+0x00C)
  1698. #define DISP_REG_WDMA_SMI_CON (DISPSYS_WDMA0_BASE+0x010)
  1699. #define DISP_REG_WDMA_CFG (DISPSYS_WDMA0_BASE+0x014)
  1700. #define DISP_REG_WDMA_SRC_SIZE (DISPSYS_WDMA0_BASE+0x018)
  1701. #define DISP_REG_WDMA_CLIP_SIZE (DISPSYS_WDMA0_BASE+0x01C)
  1702. #define DISP_REG_WDMA_CLIP_COORD (DISPSYS_WDMA0_BASE+0x020)
  1703. #define DISP_REG_WDMA_DST_W_IN_BYTE (DISPSYS_WDMA0_BASE+0x028)
  1704. #define DISP_REG_WDMA_ALPHA (DISPSYS_WDMA0_BASE+0x02C)
  1705. #define DISP_REG_WDMA_BUF_CON1 (DISPSYS_WDMA0_BASE+0x038)
  1706. #define DISP_REG_WDMA_BUF_CON2 (DISPSYS_WDMA0_BASE+0x03C)
  1707. #define DISP_REG_WDMA_C00 (DISPSYS_WDMA0_BASE+0x040)
  1708. #define DISP_REG_WDMA_C02 (DISPSYS_WDMA0_BASE+0x044)
  1709. #define DISP_REG_WDMA_C10 (DISPSYS_WDMA0_BASE+0x048)
  1710. #define DISP_REG_WDMA_C12 (DISPSYS_WDMA0_BASE+0x04C)
  1711. #define DISP_REG_WDMA_C20 (DISPSYS_WDMA0_BASE+0x050)
  1712. #define DISP_REG_WDMA_C22 (DISPSYS_WDMA0_BASE+0x054)
  1713. #define DISP_REG_WDMA_PRE_ADD0 (DISPSYS_WDMA0_BASE+0x058)
  1714. #define DISP_REG_WDMA_PRE_ADD2 (DISPSYS_WDMA0_BASE+0x05C)
  1715. #define DISP_REG_WDMA_POST_ADD0 (DISPSYS_WDMA0_BASE+0x060)
  1716. #define DISP_REG_WDMA_POST_ADD2 (DISPSYS_WDMA0_BASE+0x064)
  1717. #define DISP_REG_WDMA_DST_UV_PITCH (DISPSYS_WDMA0_BASE+0x078)
  1718. #define DISP_REG_WDMA_DST_ADDR_OFFSET0 (DISPSYS_WDMA0_BASE+0x080)
  1719. #define DISP_REG_WDMA_DST_ADDR_OFFSET1 (DISPSYS_WDMA0_BASE+0x084)
  1720. #define DISP_REG_WDMA_DST_ADDR_OFFSET2 (DISPSYS_WDMA0_BASE+0x088)
  1721. #define DISP_REG_WDMA_PROC_TRACK_CON_0 (DISPSYS_WDMA0_BASE+0x090)
  1722. #define DISP_REG_WDMA_PROC_TRACK_CON_1 (DISPSYS_WDMA0_BASE+0x094)
  1723. #define DISP_REG_WDMA_PROC_TRACK_CON_2 (DISPSYS_WDMA0_BASE+0x098)
  1724. #define DISP_REG_WDMA_FLOW_CTRL_DBG (DISPSYS_WDMA0_BASE+0x0A0)
  1725. #define DISP_REG_WDMA_EXEC_DBG (DISPSYS_WDMA0_BASE+0x0A4)
  1726. #define DISP_REG_WDMA_CT_DBG (DISPSYS_WDMA0_BASE+0x0A8)
  1727. #define DISP_REG_WDMA_SMI_TRAFFIC_DBG (DISPSYS_WDMA0_BASE+0x0AC)
  1728. #define DISP_REG_WDMA_PROC_TRACK_DBG_0 (DISPSYS_WDMA0_BASE+0x0B0)
  1729. #define DISP_REG_WDMA_PROC_TRACK_DBG_1 (DISPSYS_WDMA0_BASE+0x0B4)
  1730. #define DISP_REG_WDMA_DEBUG (DISPSYS_WDMA0_BASE+0x0B8)
  1731. #define DISP_REG_WDMA_DUMMY (DISPSYS_WDMA0_BASE+0x100)
  1732. #define DISP_REG_WDMA_DITHER_0 (DISPSYS_WDMA0_BASE+0xE00)
  1733. #define DISP_REG_WDMA_DITHER_5 (DISPSYS_WDMA0_BASE+0xE14)
  1734. #define DISP_REG_WDMA_DITHER_6 (DISPSYS_WDMA0_BASE+0xE18)
  1735. #define DISP_REG_WDMA_DITHER_7 (DISPSYS_WDMA0_BASE+0xE1C)
  1736. #define DISP_REG_WDMA_DITHER_8 (DISPSYS_WDMA0_BASE+0xE20)
  1737. #define DISP_REG_WDMA_DITHER_9 (DISPSYS_WDMA0_BASE+0xE24)
  1738. #define DISP_REG_WDMA_DITHER_10 (DISPSYS_WDMA0_BASE+0xE28)
  1739. #define DISP_REG_WDMA_DITHER_11 (DISPSYS_WDMA0_BASE+0xE2C)
  1740. #define DISP_REG_WDMA_DITHER_12 (DISPSYS_WDMA0_BASE+0xE30)
  1741. #define DISP_REG_WDMA_DITHER_13 (DISPSYS_WDMA0_BASE+0xE34)
  1742. #define DISP_REG_WDMA_DITHER_14 (DISPSYS_WDMA0_BASE+0xE38)
  1743. #define DISP_REG_WDMA_DITHER_15 (DISPSYS_WDMA0_BASE+0xE3C)
  1744. #define DISP_REG_WDMA_DITHER_16 (DISPSYS_WDMA0_BASE+0xE40)
  1745. #define DISP_REG_WDMA_DITHER_17 (DISPSYS_WDMA0_BASE+0xE44)
  1746. #define DISP_REG_WDMA_DST_ADDR0 (DISPSYS_WDMA0_BASE+0xF00)
  1747. #define DISP_REG_WDMA_DST_ADDR1 (DISPSYS_WDMA0_BASE+0xF04)
  1748. #define DISP_REG_WDMA_DST_ADDR2 (DISPSYS_WDMA0_BASE+0xF08)
  1749. #define INTEN_FLD_FRAME_UNDERRUN REG_FLD(1, 1)
  1750. #define INTEN_FLD_FRAME_COMPLETE REG_FLD(1, 0)
  1751. #define INTSTA_FLD_FRAME_UNDERRUN REG_FLD(1, 1)
  1752. #define INTSTA_FLD_FRAME_COMPLETE REG_FLD(1, 0)
  1753. #define EN_FLD_ENABLE REG_FLD(1, 0)
  1754. #define RST_FLD_SOFT_RESET REG_FLD(1, 0)
  1755. #define SMI_CON_FLD_SMI_V_REPEAT_NUM REG_FLD(4, 24)
  1756. #define SMI_CON_FLD_SMI_U_REPEAT_NUM REG_FLD(4, 20)
  1757. #define SMI_CON_FLD_SMI_Y_REPEAT_NUM REG_FLD(4, 16)
  1758. #define SMI_CON_FLD_SLOW_COUNT REG_FLD(8, 8)
  1759. #define SMI_CON_FLD_SLOW_LEVEL REG_FLD(3, 5)
  1760. #define SMI_CON_FLD_SLOW_ENABLE REG_FLD(1, 4)
  1761. #define SMI_CON_FLD_THRESHOLD REG_FLD(4, 0)
  1762. #define CFG_FLD_DEBUG_SEL REG_FLD(4, 28)
  1763. #define CFG_FLD_INT_MTX_SEL REG_FLD(4, 24)
  1764. #define CFG_FLD_SWAP REG_FLD(1, 16)
  1765. #define CFG_FLD_DNSP_SEL REG_FLD(1, 15)
  1766. #define CFG_FLD_EXT_MTX_EN REG_FLD(1, 13)
  1767. #define CFG_FLD_VERTICAL_AVG REG_FLD(1, 12)
  1768. #define CFG_FLD_CT_EN REG_FLD(1, 11)
  1769. #define CFG_FLD_OUT_FORMAT REG_FLD(4, 4)
  1770. #define SRC_SIZE_FLD_HEIGHT REG_FLD(14, 16)
  1771. #define SRC_SIZE_FLD_WIDTH REG_FLD(14, 0)
  1772. #define CLIP_SIZE_FLD_HEIGHT REG_FLD(14, 16)
  1773. #define CLIP_SIZE_FLD_WIDTH REG_FLD(14, 0)
  1774. #define CLIP_COORD_FLD_Y_COORD REG_FLD(14, 16)
  1775. #define CLIP_COORD_FLD_X_COORD REG_FLD(14, 0)
  1776. #define DST_W_IN_BYTE_FLD_DST_W_IN_BYTE REG_FLD(16, 0)
  1777. #define ALPHA_FLD_A_SEL REG_FLD(1, 31)
  1778. #define ALPHA_FLD_A_VALUE REG_FLD(8, 0)
  1779. #define BUF_CON1_FLD_ULTRA_ENABLE REG_FLD(1, 31)
  1780. #define BUF_CON1_FLD_PRE_ULTRA_ENABLE REG_FLD(1, 30)
  1781. #define BUF_CON1_FLD_FRAME_END_ULTRA REG_FLD(1, 28)
  1782. #define BUF_CON1_FLD_ISSUE_REQ_TH REG_FLD(9, 16)
  1783. #define BUF_CON1_FLD_FIFO_PSEUDO_SIZE REG_FLD(9, 0)
  1784. #define BUF_CON2_FLD_ULTRA_TH_HIGH_OFS REG_FLD(8, 24)
  1785. #define BUF_CON2_FLD_PRE_ULTRA_TH_HIGH_OFS REG_FLD(8, 16)
  1786. #define BUF_CON2_FLD_ULTRA_TH_LOW_OFS REG_FLD(8, 8)
  1787. #define BUF_CON2_FLD_PRE_ULTRA_TH_LOW REG_FLD(8, 0)
  1788. #define C00_FLD_C01 REG_FLD(13, 16)
  1789. #define C00_FLD_C00 REG_FLD(13, 0)
  1790. #define C02_FLD_C02 REG_FLD(13, 0)
  1791. #define C10_FLD_C11 REG_FLD(13, 16)
  1792. #define C10_FLD_C10 REG_FLD(13, 0)
  1793. #define C12_FLD_C12 REG_FLD(13, 0)
  1794. #define C20_FLD_C21 REG_FLD(13, 16)
  1795. #define C20_FLD_C20 REG_FLD(13, 0)
  1796. #define C22_FLD_C22 REG_FLD(13, 0)
  1797. #define PRE_ADD0_FLD_PRE_ADD_1 REG_FLD(9, 16)
  1798. #define PRE_ADD0_FLD_PRE_ADD_0 REG_FLD(9, 0)
  1799. #define PRE_ADD2_FLD_PRE_ADD_2 REG_FLD(9, 0)
  1800. #define POST_ADD0_FLD_POST_ADD_1 REG_FLD(9, 16)
  1801. #define POST_ADD0_FLD_POST_ADD_0 REG_FLD(9, 0)
  1802. #define POST_ADD2_FLD_POST_ADD_2 REG_FLD(9, 0)
  1803. #define DST_UV_PITCH_FLD_UV_DST_W_IN_BYTE REG_FLD(16, 0)
  1804. #define DST_ADDR_OFFSET0_FLD_WDMA_DESTINATION_ADDRESS_OFFSET0 REG_FLD(28, 0)
  1805. #define DST_ADDR_OFFSET1_FLD_WDMA_DESTINATION_ADDRESS_OFFSET1 REG_FLD(28, 0)
  1806. #define DST_ADDR_OFFSET2_FLD_WDMA_DESTINATION_ADDRESS_OFFSET2 REG_FLD(28, 0)
  1807. #define FLOW_CTRL_DBG_FLD_WDMA_STA_FLOW_CTRL REG_FLD(10, 0)
  1808. #define EXEC_DBG_FLD_WDMA_IN_REQ REG_FLD(1, 15)
  1809. #define EXEC_DBG_FLD_WDMA_IN_ACK REG_FLD(1, 14)
  1810. #define EXEC_DBG_FLD_WDMA_STA_EXEC REG_FLD(32, 0)
  1811. #define CT_DBG_FLD_WDMA_STA_CT REG_FLD(32, 0)
  1812. #define DEBUG_FLD_WDMA_STA_DEBUG REG_FLD(32, 0)
  1813. #define DUMMY_FLD_WDMA_DUMMY REG_FLD(32, 0)
  1814. #define DITHER_0_FLD_CRC_CLR REG_FLD(1, 24)
  1815. #define DITHER_0_FLD_CRC_START REG_FLD(1, 20)
  1816. #define DITHER_0_FLD_CRC_CEN REG_FLD(1, 16)
  1817. #define DITHER_0_FLD_FRAME_DONE_DEL REG_FLD(8, 8)
  1818. #define DITHER_0_FLD_OUT_SEL REG_FLD(1, 4)
  1819. #define DITHER_0_FLD_START REG_FLD(1, 0)
  1820. #define DITHER_5_FLD_W_DEMO REG_FLD(16, 0)
  1821. #define DITHER_6_FLD_WRAP_MODE REG_FLD(1, 16)
  1822. #define DITHER_6_FLD_LEFT_EN REG_FLD(2, 14)
  1823. #define DITHER_6_FLD_FPHASE_R REG_FLD(1, 13)
  1824. #define DITHER_6_FLD_FPHASE_EN REG_FLD(1, 12)
  1825. #define DITHER_6_FLD_FPHASE REG_FLD(6, 4)
  1826. #define DITHER_6_FLD_ROUND_EN REG_FLD(1, 3)
  1827. #define DITHER_6_FLD_RDITHER_EN REG_FLD(1, 2)
  1828. #define DITHER_6_FLD_LFSR_EN REG_FLD(1, 1)
  1829. #define DITHER_6_FLD_EDITHER_EN REG_FLD(1, 0)
  1830. #define DITHER_7_FLD_DRMOD_B REG_FLD(2, 8)
  1831. #define DITHER_7_FLD_DRMOD_G REG_FLD(2, 4)
  1832. #define DITHER_7_FLD_DRMOD_R REG_FLD(2, 0)
  1833. #define DITHER_8_FLD_INK_DATA_R REG_FLD(10, 16)
  1834. #define DITHER_8_FLD_INK REG_FLD(1, 0)
  1835. #define DITHER_9_FLD_INK_DATA_B REG_FLD(10, 16)
  1836. #define DITHER_9_FLD_INK_DATA_G REG_FLD(10, 0)
  1837. #define DITHER_10_FLD_FPHASE_BIT REG_FLD(3, 8)
  1838. #define DITHER_10_FLD_FPHASE_SEL REG_FLD(2, 4)
  1839. #define DITHER_10_FLD_FPHASE_CTRL REG_FLD(2, 0)
  1840. #define DITHER_11_FLD_SUB_B REG_FLD(2, 12)
  1841. #define DITHER_11_FLD_SUB_G REG_FLD(2, 8)
  1842. #define DITHER_11_FLD_SUB_R REG_FLD(2, 4)
  1843. #define DITHER_11_FLD_SUBPIX_EN REG_FLD(1, 0)
  1844. #define DITHER_12_FLD_H_ACTIVE REG_FLD(16, 16)
  1845. #define DITHER_12_FLD_TABLE_EN REG_FLD(2, 4)
  1846. #define DITHER_12_FLD_LSB_OFF REG_FLD(1, 0)
  1847. #define DITHER_13_FLD_RSHIFT_B REG_FLD(3, 8)
  1848. #define DITHER_13_FLD_RSHIFT_G REG_FLD(3, 4)
  1849. #define DITHER_13_FLD_RSHIFT_R REG_FLD(3, 0)
  1850. #define DITHER_14_FLD_DEBUG_MODE REG_FLD(2, 8)
  1851. #define DITHER_14_FLD_DIFF_SHIFT REG_FLD(3, 4)
  1852. #define DITHER_14_FLD_TESTPIN_EN REG_FLD(1, 0)
  1853. #define DITHER_15_FLD_LSB_ERR_SHIFT_R REG_FLD(3, 28)
  1854. #define DITHER_15_FLD_OVFLW_BIT_R REG_FLD(3, 24)
  1855. #define DITHER_15_FLD_ADD_lSHIFT_R REG_FLD(3, 20)
  1856. #define DITHER_15_FLD_INPUT_RSHIFT_R REG_FLD(3, 16)
  1857. #define DITHER_15_FLD_NEW_BIT_MODE REG_FLD(1, 0)
  1858. #define DITHER_16_FLD_LSB_ERR_SHIFT_B REG_FLD(3, 28)
  1859. #define DITHER_16_FLD_OVFLW_BIT_B REG_FLD(3, 24)
  1860. #define DITHER_16_FLD_ADD_lSHIFT_B REG_FLD(3, 20)
  1861. #define DITHER_16_FLD_INPUT_RSHIFT_B REG_FLD(3, 16)
  1862. #define DITHER_16_FLD_lSB_ERR_SHIFT_G REG_FLD(3, 12)
  1863. #define DITHER_16_FLD_OVFLW_BIT_G REG_FLD(3, 8)
  1864. #define DITHER_16_FLD_ADD_lSHIFT_G REG_FLD(3, 4)
  1865. #define DITHER_16_FLD_INPUT_RSHIFT_G REG_FLD(3, 0)
  1866. #define DITHER_17_FLD_CRC_RDY REG_FLD(1, 16)
  1867. #define DITHER_17_FLD_CRC_OUT REG_FLD(16, 0)
  1868. #define DST_ADDR0_FLD_ADDRESS0 REG_FLD(32, 0)
  1869. #define DST_ADDR1_FLD_ADDRESS1 REG_FLD(32, 0)
  1870. #define DST_ADDR2_FLD_ADDRESS2 REG_FLD(32, 0)
  1871. #include <platform/ddp_reg_mmsys.h>
  1872. #include <platform/ddp_reg_ovl.h>
  1873. #endif