ddp_reg.h 112 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566156715681569157015711572157315741575157615771578157915801581158215831584158515861587158815891590159115921593159415951596159715981599160016011602160316041605160616071608160916101611161216131614161516161617161816191620162116221623162416251626162716281629163016311632163316341635163616371638163916401641164216431644164516461647164816491650165116521653165416551656165716581659166016611662166316641665166616671668166916701671167216731674167516761677167816791680168116821683168416851686168716881689169016911692169316941695169616971698169917001701170217031704170517061707170817091710171117121713171417151716171717181719172017211722172317241725172617271728172917301731173217331734173517361737173817391740174117421743174417451746174717481749175017511752175317541755175617571758175917601761176217631764176517661767176817691770177117721773177417751776177717781779178017811782178317841785178617871788178917901791179217931794179517961797179817991800180118021803180418051806180718081809181018111812181318141815181618171818181918201821182218231824182518261827182818291830183118321833183418351836183718381839184018411842184318441845184618471848184918501851185218531854185518561857185818591860186118621863186418651866186718681869187018711872187318741875187618771878187918801881188218831884188518861887188818891890189118921893189418951896189718981899190019011902190319041905190619071908190919101911191219131914191519161917191819191920192119221923192419251926192719281929193019311932193319341935193619371938193919401941194219431944194519461947194819491950195119521953195419551956195719581959196019611962196319641965196619671968196919701971197219731974197519761977197819791980198119821983198419851986198719881989199019911992199319941995199619971998199920002001200220032004200520062007200820092010201120122013201420152016201720182019202020212022202320242025202620272028202920302031203220332034203520362037203820392040204120422043204420452046204720482049205020512052205320542055205620572058205920602061206220632064206520662067206820692070207120722073207420752076207720782079208020812082208320842085208620872088208920902091209220932094209520962097209820992100210121022103210421052106210721082109211021112112211321142115211621172118211921202121212221232124212521262127212821292130213121322133213421352136213721382139214021412142214321442145214621472148214921502151215221532154215521562157215821592160216121622163216421652166216721682169217021712172217321742175217621772178217921802181218221832184218521862187218821892190219121922193219421952196219721982199220022012202220322042205220622072208220922102211221222132214221522162217221822192220222122222223222422252226222722282229223022312232223322342235223622372238223922402241224222432244224522462247224822492250225122522253225422552256225722582259226022612262226322642265226622672268226922702271227222732274227522762277227822792280228122822283228422852286228722882289229022912292229322942295229622972298229923002301230223032304230523062307230823092310231123122313231423152316231723182319232023212322232323242325232623272328232923302331233223332334233523362337233823392340234123422343234423452346234723482349235023512352235323542355235623572358235923602361236223632364236523662367236823692370237123722373237423752376237723782379238023812382238323842385238623872388238923902391239223932394239523962397239823992400240124022403240424052406240724082409241024112412241324142415241624172418241924202421242224232424242524262427242824292430243124322433243424352436243724382439244024412442244324442445244624472448244924502451245224532454245524562457245824592460246124622463246424652466246724682469247024712472247324742475247624772478247924802481248224832484248524862487248824892490249124922493249424952496249724982499250025012502250325042505250625072508250925102511251225132514251525162517251825192520252125222523252425252526252725282529253025312532253325342535253625372538253925402541254225432544254525462547254825492550255125522553255425552556255725582559256025612562256325642565256625672568256925702571257225732574257525762577257825792580258125822583258425852586258725882589259025912592259325942595259625972598259926002601260226032604260526062607260826092610261126122613261426152616261726182619262026212622262326242625262626272628262926302631263226332634263526362637263826392640264126422643264426452646264726482649265026512652265326542655265626572658265926602661266226632664266526662667266826692670267126722673267426752676267726782679268026812682268326842685268626872688268926902691269226932694269526962697269826992700270127022703270427052706270727082709271027112712271327142715271627172718271927202721272227232724272527262727272827292730273127322733273427352736273727382739274027412742
  1. #ifndef _DDP_REG_H_
  2. #define _DDP_REG_H_
  3. #include <mt-plat/sync_write.h>
  4. /* #include <mach/mt_reg_base.h> */
  5. #include <linux/types.h>
  6. #include "display_recorder.h"
  7. #include "cmdq_record.h"
  8. #include "cmdq_core.h"
  9. #include "ddp_hal.h"
  10. #include "ddp_log.h"
  11. #include "ddp_path.h"
  12. /* MIPITX and DSI */
  13. #define ENABLE_CLK_MGR
  14. #define DDP_ENING_NUM (13)
  15. #define DDP_MOUT_NUM 4
  16. #define DDP_SEL_OUT_NUM 2
  17. #define DDP_SEL_IN_NUM 5
  18. #define DDP_MUTEX_MAX 5
  19. #ifdef DISP_LIST_SCENARIO
  20. static unsigned int module_list_scenario[DDP_SCENARIO_MAX][DDP_ENING_NUM] = {
  21. /*PRIMARY_DISP*/
  22. {DISP_MODULE_OVL0, DISP_MODULE_COLOR0, DISP_MODULE_CCORR, DISP_MODULE_AAL,
  23. DISP_MODULE_GAMMA, DISP_MODULE_OD,
  24. DISP_MODULE_DITHER, DISP_MODULE_RDMA0, DISP_MODULE_PWM0, DISP_MODULE_DSI0, -1, -1, -1},
  25. /*PRIMARY_RDMA0_COLOR0_DISP*/
  26. {DISP_MODULE_RDMA0, DISP_MODULE_COLOR0, DISP_MODULE_CCORR, DISP_MODULE_AAL,
  27. DISP_MODULE_GAMMA, DISP_MODULE_OD,
  28. DISP_MODULE_DITHER, DISP_MODULE_UFOE, DISP_MODULE_PWM0, DISP_MODULE_DSI0, -1, -1, -1},
  29. /*PRIMARY_RDMA0_DISP*/
  30. {DISP_MODULE_RDMA0, DISP_MODULE_PWM0, DISP_MODULE_DSI0, -1, -1,
  31. -1, -1, -1, -1, -1, -1, -1},
  32. /*PRIMARY_BYPASS_RDMA*/
  33. {DISP_MODULE_OVL0, DISP_MODULE_COLOR0, DISP_MODULE_CCORR, DISP_MODULE_AAL,
  34. DISP_MODULE_GAMMA, DISP_MODULE_OD,
  35. DISP_MODULE_DITHER, DISP_MODULE_UFOE, DISP_MODULE_PWM0, DISP_MODULE_DSI0, -1, -1, -1},
  36. /*PRIMARY_OVL_MEMOUT*/
  37. {DISP_MODULE_OVL0, DISP_MODULE_WDMA0, -1, -1, -1,
  38. -1, -1, -1, -1, -1, -1, -1},
  39. /*PRIMARY_DITHER_MEMOUT*/
  40. {DISP_MODULE_OVL0, DISP_MODULE_COLOR0, DISP_MODULE_CCORR, DISP_MODULE_AAL,
  41. DISP_MODULE_GAMMA, DISP_MODULE_OD,
  42. DISP_MODULE_DITHER, DISP_MODULE_WDMA0, -1, -1, -1, -1, -1},
  43. /*PRIMARY_UFOE_MEMOUT*/
  44. {DISP_MODULE_OVL0, DISP_MODULE_COLOR0, DISP_MODULE_CCORR, DISP_MODULE_AAL,
  45. DISP_MODULE_GAMMA, DISP_MODULE_OD,
  46. DISP_MODULE_DITHER, DISP_MODULE_RDMA0, DISP_MODULE_UFOE, DISP_MODULE_WDMA0, -1, -1, -1},
  47. /*SUB_DISP*/
  48. {DISP_MODULE_OVL1, DISP_MODULE_RDMA1, DISP_MODULE_DPI, -1, -1,
  49. -1, -1, -1, -1, -1, -1, -1},
  50. #ifndef CONFIG_FPGA_EARLY_PORTING
  51. /*SUB_RDMA1_DISP*/
  52. {DISP_MODULE_RDMA1, DISP_MODULE_DPI, -1, -1, -1,
  53. -1, -1, -1, -1, -1, -1, -1},
  54. #else
  55. /*SUB_RDMA1_DISP*/
  56. {DISP_MODULE_RDMA1, DISP_MODULE_DSI0, -1, -1, -1,
  57. -1, -1, -1, -1, -1, -1, -1},
  58. #endif
  59. /*SUB_OVL_MEMOUT*/
  60. {DISP_MODULE_OVL1, DISP_MODULE_WDMA1, -1, -1, -1,
  61. -1, -1, -1, -1, -1, -1, -1},
  62. /*PRIMARY_ALL*/
  63. {DISP_MODULE_OVL0, DISP_MODULE_WDMA0, DISP_MODULE_COLOR0, DISP_MODULE_CCORR,
  64. DISP_MODULE_AAL, DISP_MODULE_GAMMA,
  65. DISP_MODULE_OD, DISP_MODULE_DITHER, DISP_MODULE_RDMA0, DISP_MODULE_PWM0,
  66. DISP_MODULE_DSI0, -1, -1},
  67. /*SUB_ALL*/
  68. {DISP_MODULE_OVL1, DISP_MODULE_WDMA1, DISP_MODULE_RDMA1, DISP_MODULE_DPI, -1,
  69. -1, -1, -1, -1, -1, -1, -1},
  70. /*MULTIPLE_OVL*/
  71. {DISP_MODULE_OVL1, DISP_MODULE_OVL0, -1, -1, -1,
  72. -1, -1, -1, -1, -1, -1, -1},
  73. };
  74. #endif
  75. /* 1st para is mout's input, 2nd para is mout's output */
  76. extern mout_t mout_map[DDP_MOUT_NUM];
  77. extern sel_t sel_out_map[DDP_SEL_OUT_NUM];
  78. /* 1st para is sout's output, 2nd para is sout's input */
  79. extern sel_t sel_in_map[DDP_SEL_IN_NUM];
  80. /* from DTS, for debug */
  81. static const unsigned int ddp_reg_pa_base[DISP_REG_NUM] = {
  82. 0x14007000, 0x14008000, 0x14009000, 0x1400A000,
  83. 0x1400B000, 0x1400C000, 0x1400D000, 0x1400E000,
  84. 0x1400F000, 0x14010000, 0, 0x1100E000,
  85. 0, 0x14015000, 0x14013000, 0x14014000,
  86. 0x14000000, 0x14016000, 0x14017000, 0x14018000,
  87. 0x10206000, 0x10210000, 0x10211A70, 0x10211974,
  88. 0x10211B70, 0x10206044, 0x10206514, 0x10206558,
  89. 0x102100A0, 0x10209270, 0x10209274, 0x14012000,
  90. 0x10209000
  91. };
  92. static const unsigned int ddp_irq_num[DISP_REG_NUM] = {
  93. 193, 211, 194, 195,
  94. 196, 197, 198, 199,
  95. 200, 201, 0, 117,
  96. 0, 186, 203, 204,
  97. 205, 176, 0, 0,
  98. 0, 0, 0, 0,
  99. 0, 0, 0, 0,
  100. 0, 0, 0, 210,
  101. 0
  102. };
  103. /* module bit in mutex */
  104. static const module_map_t module_mutex_map[DISP_MODULE_NUM] = {
  105. {DISP_MODULE_OVL0, 6},
  106. {DISP_MODULE_OVL1, 7},
  107. {DISP_MODULE_RDMA0, 8},
  108. {DISP_MODULE_RDMA1, 9},
  109. {DISP_MODULE_WDMA0, 10},
  110. {DISP_MODULE_COLOR0, 12},
  111. {DISP_MODULE_CCORR, 11},
  112. {DISP_MODULE_AAL, 13},
  113. {DISP_MODULE_GAMMA, 14},
  114. {DISP_MODULE_DITHER, 15},
  115. {DISP_MODULE_UFOE, -1},
  116. {DISP_MODULE_PWM0, 17},
  117. {DISP_MODULE_WDMA1, -1},
  118. {DISP_MODULE_DSI0, -1},
  119. {DISP_MODULE_DPI, -1},
  120. {DISP_MODULE_SMI, -1},
  121. {DISP_MODULE_CONFIG, -1},
  122. {DISP_MODULE_CMDQ, -1},
  123. {DISP_MODULE_MUTEX, -1},
  124. {DISP_MODULE_COLOR1, -1},
  125. {DISP_MODULE_RDMA2, -1},
  126. {DISP_MODULE_PWM1, -1},
  127. {DISP_MODULE_OD, 18},
  128. };
  129. /* module can be connect if 1 */
  130. static const module_map_t module_can_connect[DISP_MODULE_NUM] = {
  131. {DISP_MODULE_OVL0, 1},
  132. {DISP_MODULE_OVL1, 1},
  133. {DISP_MODULE_RDMA0, 1},
  134. {DISP_MODULE_RDMA1, 1},
  135. {DISP_MODULE_WDMA0, 1},
  136. {DISP_MODULE_COLOR0, 1},
  137. {DISP_MODULE_CCORR, 1},
  138. {DISP_MODULE_AAL, 1},
  139. {DISP_MODULE_GAMMA, 1},
  140. {DISP_MODULE_DITHER, 1},
  141. {DISP_MODULE_UFOE, 1},
  142. {DISP_MODULE_PWM0, 0},
  143. {DISP_MODULE_WDMA1, 0},
  144. {DISP_MODULE_DSI0, 1},
  145. {DISP_MODULE_DPI, 1},
  146. {DISP_MODULE_SMI, 0},
  147. {DISP_MODULE_CONFIG, 0},
  148. {DISP_MODULE_CMDQ, 0},
  149. {DISP_MODULE_MUTEX, 0},
  150. {DISP_MODULE_COLOR1, 0},
  151. {DISP_MODULE_RDMA2, 0},
  152. {DISP_MODULE_PWM1, 0},
  153. {DISP_MODULE_OD, 1},
  154. {DISP_MODULE_MERGE, 0},
  155. {DISP_MODULE_SPLIT0, 0},
  156. {DISP_MODULE_SPLIT1, 0},
  157. {DISP_MODULE_DSI1, 0},
  158. {DISP_MODULE_DSIDUAL, 0},
  159. {DISP_MODULE_SMI_LARB0, 0},
  160. {DISP_MODULE_SMI_COMMON, 0},
  161. {DISP_MODULE_UNKNOWN, 0},
  162. };
  163. struct MIPITX_DSI_CON_REG {
  164. unsigned RG_DSI_LDOCORE_EN:1;
  165. unsigned RG_DSI_CKG_LDOOUT_EN:1;
  166. unsigned RG_DSI_BCLK_SEL:2;
  167. unsigned RG_DSI_LD_IDX_SEL:3;
  168. unsigned rsv_7:1;
  169. unsigned RG_DSI_PHYCLK_SEL:2;
  170. unsigned RG_DSI_DSICLK_FREQ_SEL:1;
  171. unsigned RG_DSI_LPTX_CLMP_EN:1;
  172. unsigned rsv_12:20;
  173. };
  174. struct MIPITX_DSI_CLOCK_LANE_REG {
  175. unsigned RG_DSI_LNTC_LDOOUT_EN:1;
  176. unsigned RG_DSI_LNTC_LOOPBACK_EN:1;
  177. unsigned RG_DSI_LNTC_LPTX_IPLUS1:1;
  178. unsigned RG_DSI_LNTC_LPTX_IPLUS2:1;
  179. unsigned RG_DSI_LNTC_LPTX_IMINUS:1;
  180. unsigned RG_DSI_LNTC_PHY_SEL:1;
  181. unsigned rsv_6:2;
  182. unsigned RG_DSI_LNTC_RT_CODE:4;
  183. unsigned rsv_12:20;
  184. };
  185. struct MIPITX_DSI_DATA_LANE0_REG {
  186. unsigned RG_DSI_LNT0_LDOOUT_EN:1;
  187. unsigned RG_DSI_LNT0_LOOPBACK_EN:1;
  188. unsigned RG_DSI_LNT0_LPTX_IPLUS1:1;
  189. unsigned RG_DSI_LNT0_LPTX_IPLUS2:1;
  190. unsigned RG_DSI_LNT0_LPTX_IMINUS:1;
  191. unsigned RG_DSI_LNT0_LPCD_IPLUS:1;
  192. unsigned RG_DSI_LNT0_LPCD_IMINUS:1;
  193. unsigned RG_DSI_LNT0_RT_CODE:4;
  194. unsigned rsv_11:21;
  195. };
  196. struct MIPITX_DSI_DATA_LANE1_REG {
  197. unsigned RG_DSI_LNT1_LDOOUT_EN:1;
  198. unsigned RG_DSI_LNT1_LOOPBACK_EN:1;
  199. unsigned RG_DSI_LNT1_LPTX_IPLUS1:1;
  200. unsigned RG_DSI_LNT1_LPTX_IPLUS2:1;
  201. unsigned RG_DSI_LNT1_LPTX_IMINUS:1;
  202. unsigned RG_DSI_LNT1_RT_CODE:4;
  203. unsigned rsv_9:23;
  204. };
  205. struct MIPITX_DSI_DATA_LANE2_REG {
  206. unsigned RG_DSI_LNT2_LDOOUT_EN:1;
  207. unsigned RG_DSI_LNT2_LOOPBACK_EN:1;
  208. unsigned RG_DSI_LNT2_LPTX_IPLUS1:1;
  209. unsigned RG_DSI_LNT2_LPTX_IPLUS2:1;
  210. unsigned RG_DSI_LNT2_LPTX_IMINUS:1;
  211. unsigned RG_DSI_LNT2_RT_CODE:4;
  212. unsigned rsv_9:23;
  213. };
  214. struct MIPITX_DSI_DATA_LANE3_REG {
  215. unsigned RG_DSI_LNT3_LDOOUT_EN:1;
  216. unsigned RG_DSI_LNT3_LOOPBACK_EN:1;
  217. unsigned RG_DSI_LNT3_LPTX_IPLUS1:1;
  218. unsigned RG_DSI_LNT3_LPTX_IPLUS2:1;
  219. unsigned RG_DSI_LNT3_LPTX_IMINUS:1;
  220. unsigned RG_DSI_LNT3_RT_CODE:4;
  221. unsigned rsv_9:23;
  222. };
  223. struct MIPITX_DSI_TOP_CON_REG {
  224. unsigned RG_DSI_LNT_INTR_EN:1;
  225. unsigned RG_DSI_LNT_HS_BIAS_EN:1;
  226. unsigned RG_DSI_LNT_IMP_CAL_EN:1;
  227. unsigned RG_DSI_LNT_TESTMODE_EN:1;
  228. unsigned RG_DSI_LNT_IMP_CAL_CODE:4;
  229. unsigned RG_DSI_LNT_AIO_SEL:3;
  230. unsigned RG_DSI_PAD_TIE_LOW_EN:1;
  231. unsigned RG_DSI_DEBUG_INPUT_EN:1;
  232. unsigned RG_DSI_PRESERVE:3;
  233. unsigned rsv_16:16;
  234. };
  235. struct MIPITX_DSI_BG_CON_REG {
  236. unsigned RG_DSI_BG_CORE_EN:1;
  237. unsigned RG_DSI_BG_CKEN:1;
  238. unsigned RG_DSI_BG_DIV:2;
  239. unsigned RG_DSI_BG_FAST_CHARGE:1;
  240. unsigned RG_DSI_V12_SEL:3;
  241. unsigned RG_DSI_V10_SEL:3;
  242. unsigned RG_DSI_V072_SEL:3;
  243. unsigned RG_DSI_V04_SEL:3;
  244. unsigned RG_DSI_V032_SEL:3;
  245. unsigned RG_DSI_V02_SEL:3;
  246. unsigned rsv_23:1;
  247. unsigned RG_DSI_BG_R1_TRIM:4;
  248. unsigned RG_DSI_BG_R2_TRIM:4;
  249. };
  250. struct MIPITX_DSI_PLL_CON0_REG {
  251. unsigned RG_DSI0_MPPLL_PLL_EN:1;
  252. unsigned RG_DSI0_MPPLL_PREDIV:2;
  253. unsigned RG_DSI0_MPPLL_TXDIV0:2;
  254. unsigned RG_DSI0_MPPLL_TXDIV1:2;
  255. unsigned RG_DSI0_MPPLL_POSDIV:3;
  256. unsigned RG_DSI0_MPPLL_MONVC_EN:1;
  257. unsigned RG_DSI0_MPPLL_MONREF_EN:1;
  258. unsigned RG_DSI0_MPPLL_VDO_EN:1;
  259. unsigned rsv_13:19;
  260. };
  261. struct MIPITX_DSI_PLL_CON1_REG {
  262. unsigned RG_DSI0_MPPLL_SDM_FRA_EN:1;
  263. unsigned RG_DSI0_MPPLL_SDM_SSC_PH_INIT:1;
  264. unsigned RG_DSI0_MPPLL_SDM_SSC_EN:1;
  265. unsigned rsv_3:13;
  266. unsigned RG_DSI0_MPPLL_SDM_SSC_PRD:16;
  267. };
  268. struct MIPITX_DSI_PLL_CON2_REG {
  269. unsigned RG_DSI0_MPPLL_SDM_PCW_0_7:8;
  270. unsigned RG_DSI0_MPPLL_SDM_PCW_8_15:8;
  271. unsigned RG_DSI0_MPPLL_SDM_PCW_16_23:8;
  272. unsigned RG_DSI0_MPPLL_SDM_PCW_H:7;
  273. unsigned rsv_31:1;
  274. };
  275. struct MIPITX_DSI_PLL_CON3_REG {
  276. unsigned RG_DSI0_MPPLL_SDM_SSC_DELTA1:16;
  277. unsigned RG_DSI0_MPPLL_SDM_SSC_DELTA:16;
  278. };
  279. struct MIPITX_DSI_PLL_CHG_REG {
  280. unsigned RG_DSI0_MPPLL_SDM_PCW_CHG:1;
  281. unsigned rsv_1:31;
  282. };
  283. struct MIPITX_DSI_PLL_TOP_REG {
  284. unsigned RG_MPPLL_TST_EN:1;
  285. unsigned RG_MPPLL_TSTCK_EN:1;
  286. unsigned RG_MPPLL_TSTSEL:2;
  287. unsigned RG_MPPLL_S2QDIV:2;
  288. unsigned RG_MPPLL_PLLOUT_EN:1;
  289. unsigned RG_MPPLL_PRESERVE:5;
  290. unsigned rsv_12:20;
  291. };
  292. struct MIPITX_DSI_PLL_PWR_REG {
  293. unsigned DA_DSI_MPPLL_SDM_PWR_ON:1;
  294. unsigned DA_DSI_MPPLL_SDM_ISO_EN:1;
  295. unsigned rsv_2:6;
  296. unsigned AD_DSI0_MPPLL_SDM_PWR_ACK:1;
  297. unsigned rsv_9:23;
  298. };
  299. struct MIPITX_DSI_RGS_REG {
  300. unsigned RGS_DSI_LNT_IMP_CAL_OUTPUT:1;
  301. unsigned rsv_1:31;
  302. };
  303. struct MIPITX_DSI_GPI_EN_REG {
  304. unsigned RG_DSI0_GPI0_EN:1;
  305. unsigned RG_DSI0_GPI1_EN:1;
  306. unsigned RG_DSI0_GPI2_EN:1;
  307. unsigned RG_DSI0_GPI3_EN:1;
  308. unsigned RG_DSI0_GPI4_EN:1;
  309. unsigned RG_DSI0_GPI5_EN:1;
  310. unsigned RG_DSI0_GPI6_EN:1;
  311. unsigned RG_DSI0_GPI7_EN:1;
  312. unsigned RG_DSI0_GPI8_EN:1;
  313. unsigned RG_DSI0_GPI9_EN:1;
  314. unsigned RG_DSI0_GPI_SMT_EN:1;
  315. unsigned RG_DSI0_GPI_DRIVE_EN:1;
  316. unsigned rsv_12:20;
  317. };
  318. struct MIPITX_DSI_GPI_PULL_REG {
  319. unsigned RG_DSI0_GPI0_PD:1;
  320. unsigned RG_DSI0_GPI1_PD:1;
  321. unsigned RG_DSI0_GPI2_PD:1;
  322. unsigned RG_DSI0_GPI3_PD:1;
  323. unsigned RG_DSI0_GPI4_PD:1;
  324. unsigned RG_DSI0_GPI5_PD:1;
  325. unsigned RG_DSI0_GPI6_PD:1;
  326. unsigned RG_DSI0_GPI7_PD:1;
  327. unsigned RG_DSI0_GPI8_PD:1;
  328. unsigned RG_DSI0_GPI9_PD:1;
  329. unsigned rsv_10:6;
  330. unsigned RG_DSI0_GPI0_PU:1;
  331. unsigned RG_DSI0_GPI1_PU:1;
  332. unsigned RG_DSI0_GPI2_PU:1;
  333. unsigned RG_DSI0_GPI3_PU:1;
  334. unsigned RG_DSI0_GPI4_PU:1;
  335. unsigned RG_DSI0_GPI5_PU:1;
  336. unsigned RG_DSI0_GPI6_PU:1;
  337. unsigned RG_DSI0_GPI7_PU:1;
  338. unsigned RG_DSI0_GPI8_PU:1;
  339. unsigned RG_DSI0_GPI9_PU:1;
  340. unsigned rsv_26:6;
  341. };
  342. struct MIPITX_DSI_PHY_SEL_REG {
  343. unsigned MIPI_TX_PHY0_SEL:3;
  344. unsigned rsv_3:1;
  345. unsigned MIPI_TX_PHY1_SEL:3;
  346. unsigned rsv_7:1;
  347. unsigned MIPI_TX_PHY2_SEL:3;
  348. unsigned rsv_11:1;
  349. unsigned MIPI_TX_PHY3_SEL:3;
  350. unsigned rsv_15:1;
  351. unsigned MIPI_TX_PHYC_SEL:3;
  352. unsigned rsv_19:1;
  353. unsigned MIPI_TX_LPRX_SEL:3;
  354. unsigned rsv_23:9;
  355. };
  356. struct MIPITX_DSI_SW_CTRL_REG {
  357. unsigned SW_CTRL_EN:1;
  358. unsigned rsv_1:31;
  359. };
  360. struct MIPITX_DSI_SW_CTRL_CON0_REG {
  361. unsigned SW_LNTC_LPTX_PRE_OE:1;
  362. unsigned SW_LNTC_LPTX_OE:1;
  363. unsigned SW_LNTC_LPTX_DP:1;
  364. unsigned SW_LNTC_LPTX_DN:1;
  365. unsigned SW_LNTC_HSTX_PRE_OE:1;
  366. unsigned SW_LNTC_HSTX_OE:1;
  367. unsigned SW_LNTC_HSTX_RDY:1;
  368. unsigned SW_LNTC_LPRX_EN:1;
  369. unsigned SW_LNTC_HSTX_DATA:8;
  370. unsigned rsv_16:16;
  371. };
  372. struct MIPITX_DSI_SW_CTRL_CON1_REG {
  373. unsigned SW_LNT0_LPTX_PRE_OE:1;
  374. unsigned SW_LNT0_LPTX_OE:1;
  375. unsigned SW_LNT0_LPTX_DP:1;
  376. unsigned SW_LNT0_LPTX_DN:1;
  377. unsigned SW_LNT0_HSTX_PRE_OE:1;
  378. unsigned SW_LNT0_HSTX_OE:1;
  379. unsigned SW_LNT0_HSTX_RDY:1;
  380. unsigned SW_LNT0_LPRX_EN:1;
  381. unsigned SW_LNT1_LPTX_PRE_OE:1;
  382. unsigned SW_LNT1_LPTX_OE:1;
  383. unsigned SW_LNT1_LPTX_DP:1;
  384. unsigned SW_LNT1_LPTX_DN:1;
  385. unsigned SW_LNT1_HSTX_PRE_OE:1;
  386. unsigned SW_LNT1_HSTX_OE:1;
  387. unsigned SW_LNT1_HSTX_RDY:1;
  388. unsigned SW_LNT1_LPRX_EN:1;
  389. unsigned SW_LNT2_LPTX_PRE_OE:1;
  390. unsigned SW_LNT2_LPTX_OE:1;
  391. unsigned SW_LNT2_LPTX_DP:1;
  392. unsigned SW_LNT2_LPTX_DN:1;
  393. unsigned SW_LNT2_HSTX_PRE_OE:1;
  394. unsigned SW_LNT2_HSTX_OE:1;
  395. unsigned SW_LNT2_HSTX_RDY:1;
  396. unsigned SW_LNT2_LPRX_EN:1;
  397. unsigned SW_LNT3_LPTX_PRE_OE:1;
  398. unsigned SW_LNT3_LPTX_OE:1;
  399. unsigned SW_LNT3_LPTX_DP:1;
  400. unsigned SW_LNT3_LPTX_DN:1;
  401. unsigned SW_LNT3_HSTX_PRE_OE:1;
  402. unsigned SW_LNT3_HSTX_OE:1;
  403. unsigned SW_LNT3_HSTX_RDY:1;
  404. unsigned SW_LNT3_LPRX_EN:1;
  405. };
  406. struct MIPITX_DSI_SW_CTRL_CON2_REG {
  407. unsigned SW_LNT_HSTX_DATA:8;
  408. unsigned rsv_8:24;
  409. };
  410. struct MIPITX_DSI_DBG_CON_REG {
  411. unsigned MIPI_TX_DBG_SEL:4;
  412. unsigned MIPI_TX_DBG_OUT_EN:1;
  413. unsigned MIPI_TX_GPIO_MODE_EN:1;
  414. unsigned MIPI_TX_APB_ASYNC_CNT_EN:1;
  415. unsigned rsv_7:25;
  416. };
  417. struct MIPITX_DSI_APB_ASYNC_STA_REG {
  418. unsigned MIPI_TX_APB_ASYNC_ERR:1;
  419. unsigned MIPI_TX_APB_ASYNC_ERR_ADDR:10;
  420. unsigned rsv_11:21;
  421. };
  422. struct DSI_START_REG {
  423. unsigned DSI_START:1;
  424. unsigned rsv_1:1;
  425. unsigned SLEEPOUT_START:1;
  426. unsigned SKEWCAL_START:1;
  427. unsigned rsv_4:12;
  428. unsigned VM_CMD_START:1;
  429. unsigned rsv_17:15;
  430. };
  431. struct DSI_STATUS_REG {
  432. unsigned rsv_0:1;
  433. unsigned BUF_UNDERRUN:1;
  434. unsigned rsv_2:2;
  435. unsigned ESC_ENTRY_ERR:1;
  436. unsigned ESC_SYNC_ERR:1;
  437. unsigned CTRL_ERR:1;
  438. unsigned CONTENT_ERR:1;
  439. unsigned rsv_8:24;
  440. };
  441. struct DSI_INT_ENABLE_REG {
  442. unsigned RD_RDY:1;
  443. unsigned CMD_DONE:1;
  444. unsigned TE_RDY:1;
  445. unsigned VM_DONE:1;
  446. unsigned FRAME_DONE_INT_EN:1;
  447. unsigned VM_CMD_DONE:1;
  448. unsigned SLEEPOUT_DONE:1;
  449. unsigned TE_TIMEOUT_INT_EN:1;
  450. unsigned VM_VBP_STR_INT_EN:1;
  451. unsigned VM_VACT_STR_INT_EN:1;
  452. unsigned VM_VFP_STR_INT_EN:1;
  453. unsigned SKEWCAL_DONE_INT_EN:1;
  454. unsigned rsv_12:20;
  455. };
  456. struct DSI_INT_STATUS_REG {
  457. unsigned RD_RDY:1;
  458. unsigned CMD_DONE:1;
  459. unsigned TE_RDY:1;
  460. unsigned VM_DONE:1;
  461. unsigned FRAME_DONE_INT_EN:1;
  462. unsigned VM_CMD_DONE:1;
  463. unsigned SLEEPOUT_DONE:1;
  464. unsigned TE_TIMEOUT_INT_EN:1;
  465. unsigned VM_VBP_STR_INT_EN:1;
  466. unsigned VM_VACT_STR_INT_EN:1;
  467. unsigned VM_VFP_STR_INT_EN:1;
  468. unsigned SKEWCAL_DONE_INT_EN:1;
  469. unsigned rsv_12:19;
  470. unsigned BUSY:1;
  471. };
  472. struct DSI_COM_CTRL_REG {
  473. unsigned DSI_RESET:1;
  474. unsigned rsv_1:1;
  475. unsigned DPHY_RESET:1;
  476. unsigned rsv_3:1;
  477. unsigned DSI_DUAL_EN:1;
  478. unsigned rsv_5:27;
  479. };
  480. enum DSI_MODE_CTRL {
  481. DSI_CMD_MODE = 0,
  482. DSI_SYNC_PULSE_VDO_MODE = 1,
  483. DSI_SYNC_EVENT_VDO_MODE = 2,
  484. DSI_BURST_VDO_MODE = 3
  485. };
  486. struct DSI_MODE_CTRL_REG {
  487. unsigned MODE:2;
  488. unsigned rsv_2:14;
  489. unsigned FRM_MODE:1;
  490. unsigned MIX_MODE:1;
  491. unsigned V2C_SWITCH_ON:1;
  492. unsigned C2V_SWITCH_ON:1;
  493. unsigned SLEEP_MODE:1;
  494. unsigned rsv_21:11;
  495. };
  496. enum DSI_LANE_NUM {
  497. ONE_LANE = 1,
  498. TWO_LANE = 2,
  499. THREE_LANE = 3,
  500. FOUR_LANE = 4
  501. };
  502. struct DSI_TXRX_CTRL_REG {
  503. unsigned VC_NUM:2;
  504. unsigned LANE_NUM:4;
  505. unsigned DIS_EOT:1;
  506. unsigned BLLP_EN:1;
  507. unsigned TE_FREERUN:1;
  508. unsigned EXT_TE_EN:1;
  509. unsigned EXT_TE_EDGE:1;
  510. unsigned TE_AUTO_SYNC:1;
  511. unsigned MAX_RTN_SIZE:4;
  512. unsigned HSTX_CKLP_EN:1;
  513. unsigned TYPE1_BTA_SEL:1;
  514. unsigned TE_WITH_CMD_EN:1;
  515. unsigned TE_TIMEOUT_CHK_EN:1;
  516. unsigned rsv_20:12;
  517. };
  518. enum DSI_PS_TYPE {
  519. PACKED_PS_16BIT_RGB565 = 0,
  520. LOOSELY_PS_18BIT_RGB666 = 1,
  521. PACKED_PS_24BIT_RGB888 = 2,
  522. PACKED_PS_18BIT_RGB666 = 3
  523. };
  524. struct DSI_PSCTRL_REG {
  525. unsigned DSI_PS_WC:14;
  526. unsigned rsv_14:2;
  527. unsigned DSI_PS_SEL:2;
  528. unsigned rsv_18:6;
  529. unsigned RGB_SWAP:1;
  530. unsigned BYTE_SWAP:1;
  531. unsigned rsv_26:6;
  532. };
  533. struct DSI_VSA_NL_REG {
  534. unsigned VSA_NL:10;
  535. unsigned rsv_11:22;
  536. };
  537. struct DSI_VBP_NL_REG {
  538. unsigned VBP_NL:10;
  539. unsigned rsv_11:22;
  540. };
  541. struct DSI_VFP_NL_REG {
  542. unsigned VFP_NL:10;
  543. unsigned rsv_11:22;
  544. };
  545. struct DSI_VACT_NL_REG {
  546. unsigned VACT_NL:12;
  547. unsigned rsv_12:20;
  548. };
  549. struct DSI_LFR_CON_REG {
  550. unsigned LFR_MODE:2;
  551. unsigned LFR_TYPE:2;
  552. unsigned LFR_EN:1;
  553. unsigned LFR_UPDATE:1;
  554. unsigned LFR_VSE_DIS:1;
  555. unsigned rsv_7:1;
  556. unsigned LFR_SKIP_NUM:6;
  557. unsigned rsv_14:18;
  558. };
  559. struct DSI_LFR_STA_REG {
  560. unsigned LFR_SKIP_STA:6;
  561. unsigned rsv_6:2;
  562. unsigned LFR_SKIP_CNT:24;
  563. };
  564. struct DSI_HSA_WC_REG {
  565. unsigned HSA_WC:12;
  566. unsigned rsv_12:20;
  567. };
  568. struct DSI_HBP_WC_REG {
  569. unsigned HBP_WC:12;
  570. unsigned rsv_12:20;
  571. };
  572. struct DSI_HFP_WC_REG {
  573. unsigned HFP_WC:12;
  574. unsigned rsv_12:20;
  575. };
  576. struct DSI_BLLP_WC_REG {
  577. unsigned BLLP_WC:12;
  578. unsigned rsv_12:20;
  579. };
  580. struct DSI_CMDQ_CTRL_REG {
  581. unsigned CMDQ_SIZE:8;
  582. unsigned rsv_8:24;
  583. };
  584. struct DSI_RX_DATA_REG {
  585. unsigned char byte0;
  586. unsigned char byte1;
  587. unsigned char byte2;
  588. unsigned char byte3;
  589. };
  590. struct DSI_RACK_REG {
  591. unsigned DSI_RACK:1;
  592. unsigned DSI_RACK_BYPASS:1;
  593. unsigned rsv2:30;
  594. };
  595. struct DSI_TRIG_STA_REG {
  596. unsigned TRIG0:1; /* remote rst */
  597. unsigned TRIG1:1; /* TE */
  598. unsigned TRIG2:1; /* ack */
  599. unsigned TRIG3:1; /* rsv */
  600. unsigned RX_ULPS:1;
  601. unsigned DIRECTION:1;
  602. unsigned RX_LPDT:1;
  603. unsigned rsv7:1;
  604. unsigned RX_POINTER:4;
  605. unsigned rsv12:20;
  606. };
  607. struct DSI_MEM_CONTI_REG {
  608. unsigned RWMEM_CONTI:16;
  609. unsigned rsv16:16;
  610. };
  611. struct DSI_FRM_BC_REG {
  612. unsigned FRM_BC:21;
  613. unsigned rsv21:11;
  614. };
  615. struct DSI_PHY_CON_REG {
  616. unsigned PHY_RST:1;
  617. unsigned rsv1:4;
  618. unsigned HTXTO_RST:1;
  619. unsigned LRXTO_RST:1;
  620. unsigned BTATO_RST:1;
  621. unsigned rsv8:24;
  622. };
  623. struct DSI_PHY_LCCON_REG {
  624. unsigned LC_HS_TX_EN:1;
  625. unsigned LC_ULPM_EN:1;
  626. unsigned LC_WAKEUP_EN:1;
  627. unsigned rsv3:29;
  628. };
  629. struct DSI_PHY_LD0CON_REG {
  630. unsigned L0_RM_TRIG_EN:1;
  631. unsigned L0_ULPM_EN:1;
  632. unsigned L0_WAKEUP_EN:1;
  633. unsigned Lx_ULPM_AS_L0:1;
  634. unsigned L0_RX_FILTER_EN:1;
  635. unsigned rsv3:27;
  636. };
  637. struct DSI_PHY_TIMCON0_REG {
  638. unsigned char LPX;
  639. unsigned char HS_PRPR;
  640. unsigned char HS_ZERO;
  641. unsigned char HS_TRAIL;
  642. };
  643. struct DSI_PHY_TIMCON1_REG {
  644. unsigned char TA_GO;
  645. unsigned char TA_SURE;
  646. unsigned char TA_GET;
  647. unsigned char DA_HS_EXIT;
  648. };
  649. struct DSI_PHY_TIMCON2_REG {
  650. unsigned char CONT_DET;
  651. unsigned char DA_HS_SYNC;
  652. unsigned char CLK_ZERO;
  653. unsigned char CLK_TRAIL;
  654. };
  655. struct DSI_PHY_TIMCON3_REG {
  656. unsigned char CLK_HS_PRPR;
  657. unsigned char CLK_HS_POST;
  658. unsigned char CLK_HS_EXIT;
  659. unsigned rsv24:8;
  660. };
  661. struct DSI_PHY_TIMCON4_REG {
  662. unsigned ULPS_WAKEUP:20;
  663. unsigned rsv20:12;
  664. };
  665. struct DSI_PHY_TIMCON_REG {
  666. struct DSI_PHY_TIMCON0_REG CTRL0;
  667. struct DSI_PHY_TIMCON1_REG CTRL1;
  668. struct DSI_PHY_TIMCON2_REG CTRL2;
  669. struct DSI_PHY_TIMCON3_REG CTRL3;
  670. };
  671. struct DSI_CKSM_OUT_REG {
  672. unsigned PKT_CHECK_SUM:16;
  673. unsigned ACC_CHECK_SUM:16;
  674. };
  675. struct DSI_STATE_DBG0_REG {
  676. unsigned DPHY_CTL_STATE_C:9;
  677. unsigned rsv9:7;
  678. unsigned DPHY_HS_TX_STATE_C:5;
  679. unsigned rsv21:11;
  680. };
  681. struct DSI_STATE_DBG1_REG {
  682. unsigned CTL_STATE_C:15;
  683. unsigned rsv15:1;
  684. unsigned HS_TX_STATE_0:5;
  685. unsigned rsv21:3;
  686. unsigned ESC_STATE_0:8;
  687. };
  688. struct DSI_STATE_DBG2_REG {
  689. unsigned RX_ESC_STATE:10;
  690. unsigned rsv10:6;
  691. unsigned TA_T2R_STATE:5;
  692. unsigned rsv21:3;
  693. unsigned TA_R2T_STATE:5;
  694. unsigned rsv29:3;
  695. };
  696. struct DSI_STATE_DBG3_REG {
  697. unsigned CTL_STATE_1:5;
  698. unsigned rsv5:3;
  699. unsigned HS_TX_STATE_1:5;
  700. unsigned rsv13:3;
  701. unsigned CTL_STATE_2:5;
  702. unsigned rsv21:3;
  703. unsigned HS_TX_STATE_2:5;
  704. unsigned rsv29:3;
  705. };
  706. struct DSI_STATE_DBG4_REG {
  707. unsigned CTL_STATE_3:5;
  708. unsigned rsv5:3;
  709. unsigned HS_TX_STATE_3:5;
  710. unsigned rsv13:19;
  711. };
  712. struct DSI_STATE_DBG5_REG {
  713. unsigned TIMER_COUNTER:16;
  714. unsigned TIMER_BUSY:1;
  715. unsigned rsv17:11;
  716. unsigned WAKEUP_STATE:4;
  717. };
  718. struct DSI_STATE_DBG6_REG {
  719. unsigned CMTRL_STATE:14;
  720. unsigned rsv14:2;
  721. unsigned CMDQ_STATE:8;
  722. unsigned rsv24:8;
  723. };
  724. struct DSI_STATE_DBG7_REG {
  725. unsigned VMCTL_STATE:11;
  726. unsigned rsv11:1;
  727. unsigned VFP_PERIOD:1;
  728. unsigned VACT_PERIOD:1;
  729. unsigned VBP_PERIOD:1;
  730. unsigned VSA_PERIOD:1;
  731. unsigned rsv16:16;
  732. };
  733. struct DSI_STATE_DBG8_REG {
  734. unsigned WORD_COUNTER:14;
  735. unsigned rsv14:18;
  736. };
  737. struct DSI_STATE_DBG9_REG {
  738. unsigned LINE_COUNTER:22;
  739. unsigned rsv22:10;
  740. };
  741. struct DSI_DEBUG_SEL_REG {
  742. unsigned DEBUG_OUT_SEL:5;
  743. unsigned rsv5:3;
  744. unsigned CHKSUM_REC_EN:1;
  745. unsigned rsv9:23;
  746. };
  747. struct DSI_BIST_CON_REG {
  748. unsigned BIST_MODE:1;
  749. unsigned BIST_ENABLE:1;
  750. unsigned BIST_FIX_PATTERN:1;
  751. unsigned BIST_SPC_PATTERN:1;
  752. unsigned BIST_HS_FREE:1;
  753. unsigned rsv_05:1;
  754. unsigned SELF_PAT_MODE:1;
  755. unsigned rsv_07:1;
  756. unsigned BIST_LANE_NUM:4;
  757. unsigned rsv12:4;
  758. unsigned BIST_TIMING:8;
  759. unsigned rsv24:8;
  760. };
  761. struct DSI_VM_CMD_CON_REG {
  762. unsigned VM_CMD_EN:1;
  763. unsigned LONG_PKT:1;
  764. unsigned TIME_SEL:1;
  765. unsigned TS_VSA_EN:1;
  766. unsigned TS_VBP_EN:1;
  767. unsigned TS_VFP_EN:1;
  768. unsigned rsv6:2;
  769. unsigned CM_DATA_ID:8;
  770. unsigned CM_DATA_0:8;
  771. unsigned CM_DATA_1:8;
  772. };
  773. struct DSI_3D_CON_REG {
  774. unsigned _3D_MODE:2;
  775. unsigned _3D_FMT:2;
  776. unsigned _3D_VSYNC:1;
  777. unsigned _3D_LR:1;
  778. unsigned _3D_EN:1;
  779. unsigned rsv08:25;
  780. };
  781. struct DSI_TIME_CON0_REG {
  782. unsigned UPLS_WAKEUP_PRD:16;
  783. unsigned SKEWCALL_PRD:16;
  784. };
  785. struct DSI_TIME_CON1_REG {
  786. unsigned UPLS_WAKEUP_PRD:16;
  787. unsigned rsv16:16;
  788. };
  789. struct DSI_REGS {
  790. struct DSI_START_REG DSI_START; /* 0000 */
  791. struct DSI_STATUS_REG DSI_STA; /* 0004 */
  792. struct DSI_INT_ENABLE_REG DSI_INTEN; /* 0008 */
  793. struct DSI_INT_STATUS_REG DSI_INTSTA; /* 000C */
  794. struct DSI_COM_CTRL_REG DSI_COM_CTRL; /* 0010 */
  795. struct DSI_MODE_CTRL_REG DSI_MODE_CTRL; /* 0014 */
  796. struct DSI_TXRX_CTRL_REG DSI_TXRX_CTRL; /* 0018 */
  797. struct DSI_PSCTRL_REG DSI_PSCTRL; /* 001C */
  798. struct DSI_VSA_NL_REG DSI_VSA_NL; /* 0020 */
  799. struct DSI_VBP_NL_REG DSI_VBP_NL; /* 0024 */
  800. struct DSI_VFP_NL_REG DSI_VFP_NL; /* 0028 */
  801. struct DSI_VACT_NL_REG DSI_VACT_NL; /* 002C */
  802. struct DSI_LFR_CON_REG DSI_LFR_CON; /* 0030 */
  803. struct DSI_LFR_STA_REG DSI_LFR_STA; /* 0034 */
  804. uint32_t rsv_38[6]; /* 0038..004C */
  805. struct DSI_HSA_WC_REG DSI_HSA_WC; /* 0050 */
  806. struct DSI_HBP_WC_REG DSI_HBP_WC; /* 0054 */
  807. struct DSI_HFP_WC_REG DSI_HFP_WC; /* 0058 */
  808. struct DSI_BLLP_WC_REG DSI_BLLP_WC; /* 005C */
  809. struct DSI_CMDQ_CTRL_REG DSI_CMDQ_SIZE; /* 0060 */
  810. uint32_t DSI_HSTX_CKL_WC; /* 0064 */
  811. uint32_t DSI_HSTX_CKL_WC_AUTO_RESULT; /* 0068 */
  812. uint32_t rsv_006C[2]; /* 006c..0070 */
  813. struct DSI_RX_DATA_REG DSI_RX_DATA0; /* 0074 */
  814. struct DSI_RX_DATA_REG DSI_RX_DATA1; /* 0078 */
  815. struct DSI_RX_DATA_REG DSI_RX_DATA2; /* 007c */
  816. struct DSI_RX_DATA_REG DSI_RX_DATA3; /* 0080 */
  817. struct DSI_RACK_REG DSI_RACK; /* 0084 */
  818. struct DSI_TRIG_STA_REG DSI_TRIG_STA; /* 0088 */
  819. uint32_t rsv_008C; /* 008C */
  820. struct DSI_MEM_CONTI_REG DSI_MEM_CONTI; /* 0090 */
  821. struct DSI_FRM_BC_REG DSI_FRM_BC; /* 0094 */
  822. struct DSI_3D_CON_REG DSI_3D_CON; /* 0098 */
  823. uint32_t rsv_009C; /* 009c */
  824. struct DSI_TIME_CON0_REG DSI_TIME_CON0; /* 00A0 */
  825. struct DSI_TIME_CON1_REG DSI_TIME_CON1; /* 00A4 */
  826. uint32_t rsv_00A8[22]; /* 0A8..0FC */
  827. uint32_t DSI_PHY_PCPAT; /* 00100 */
  828. struct DSI_PHY_LCCON_REG DSI_PHY_LCCON; /* 0104 */
  829. struct DSI_PHY_LD0CON_REG DSI_PHY_LD0CON; /* 0108 */
  830. uint32_t rsv_010C; /* 010C */
  831. struct DSI_PHY_TIMCON0_REG DSI_PHY_TIMECON0; /* 0110 */
  832. struct DSI_PHY_TIMCON1_REG DSI_PHY_TIMECON1; /* 0114 */
  833. struct DSI_PHY_TIMCON2_REG DSI_PHY_TIMECON2; /* 0118 */
  834. struct DSI_PHY_TIMCON3_REG DSI_PHY_TIMECON3; /* 011C */
  835. struct DSI_PHY_TIMCON4_REG DSI_PHY_TIMECON4; /* 0120 */
  836. uint32_t rsv_0124[3]; /* 0124..012c */
  837. struct DSI_VM_CMD_CON_REG DSI_VM_CMD_CON; /* 0130 */
  838. uint32_t DSI_VM_CMD_DATA0; /* 0134 */
  839. uint32_t DSI_VM_CMD_DATA4; /* 0138 */
  840. uint32_t DSI_VM_CMD_DATA8; /* 013C */
  841. uint32_t DSI_VM_CMD_DATAC; /* 0140 */
  842. struct DSI_CKSM_OUT_REG DSI_CKSM_OUT; /* 0144 */
  843. struct DSI_STATE_DBG0_REG DSI_STATE_DBG0; /* 0148 */
  844. struct DSI_STATE_DBG1_REG DSI_STATE_DBG1; /* 014C */
  845. struct DSI_STATE_DBG2_REG DSI_STATE_DBG2; /* 0150 */
  846. struct DSI_STATE_DBG3_REG DSI_STATE_DBG3; /* 0154 */
  847. struct DSI_STATE_DBG4_REG DSI_STATE_DBG4; /* 0158 */
  848. struct DSI_STATE_DBG5_REG DSI_STATE_DBG5; /* 015C */
  849. struct DSI_STATE_DBG6_REG DSI_STATE_DBG6; /* 0160 */
  850. struct DSI_STATE_DBG7_REG DSI_STATE_DBG7; /* 0164 */
  851. struct DSI_STATE_DBG8_REG DSI_STATE_DBG8; /* 0168 */
  852. struct DSI_STATE_DBG9_REG DSI_STATE_DBG9; /* 016C */
  853. struct DSI_DEBUG_SEL_REG DSI_DEBUG_SEL; /* 0170 */
  854. uint32_t rsv174; /* 0174 */
  855. uint32_t DSI_BIST_PATTERN; /* 0178 */
  856. struct DSI_BIST_CON_REG DSI_BIST_CON; /* 017C */
  857. };
  858. struct DSI_CMDQ {
  859. unsigned char byte0;
  860. unsigned char byte1;
  861. unsigned char byte2;
  862. unsigned char byte3;
  863. };
  864. struct DSI_CMDQ_REGS {
  865. struct DSI_CMDQ data[128];
  866. };
  867. struct DSI_VM_CMDQ {
  868. unsigned char byte0;
  869. unsigned char byte1;
  870. unsigned char byte2;
  871. unsigned char byte3;
  872. };
  873. struct DSI_VM_CMDQ_REGS {
  874. struct DSI_VM_CMDQ data[4];
  875. };
  876. struct DSI_PHY_REGS {
  877. struct MIPITX_DSI_CON_REG MIPITX_DSI_CON; /* 0000 */
  878. struct MIPITX_DSI_CLOCK_LANE_REG MIPITX_DSI_CLOCK_LANE; /* 0004 */
  879. struct MIPITX_DSI_DATA_LANE0_REG MIPITX_DSI_DATA_LANE0; /* 0008 */
  880. struct MIPITX_DSI_DATA_LANE1_REG MIPITX_DSI_DATA_LANE1; /* 000C */
  881. struct MIPITX_DSI_DATA_LANE2_REG MIPITX_DSI_DATA_LANE2; /* 0010 */
  882. struct MIPITX_DSI_DATA_LANE3_REG MIPITX_DSI_DATA_LANE3; /* 0014 */
  883. uint32_t rsv_18[10]; /* 0018..003C */
  884. struct MIPITX_DSI_TOP_CON_REG MIPITX_DSI_TOP_CON; /* 0040 */
  885. struct MIPITX_DSI_BG_CON_REG MIPITX_DSI_BG_CON; /* 0044 */
  886. uint32_t rsv_48[2]; /* 0048..004C */
  887. struct MIPITX_DSI_PLL_CON0_REG MIPITX_DSI_PLL_CON0; /* 0050 */
  888. struct MIPITX_DSI_PLL_CON1_REG MIPITX_DSI_PLL_CON1; /* 0054 */
  889. struct MIPITX_DSI_PLL_CON2_REG MIPITX_DSI_PLL_CON2; /* 0058 */
  890. struct MIPITX_DSI_PLL_CON3_REG MIPITX_DSI_PLL_CON3; /* 005C */
  891. struct MIPITX_DSI_PLL_CHG_REG MIPITX_DSI_PLL_CHG; /* 0060 */
  892. struct MIPITX_DSI_PLL_TOP_REG MIPITX_DSI_PLL_TOP; /* 0064 */
  893. struct MIPITX_DSI_PLL_PWR_REG MIPITX_DSI_PLL_PWR; /* 0068 */
  894. uint32_t rsv_6C; /* 006C */
  895. struct MIPITX_DSI_RGS_REG MIPITX_DSI_RGS; /* 0070 */
  896. struct MIPITX_DSI_GPI_EN_REG MIPITX_DSI_GPI_EN; /* 0074 */
  897. struct MIPITX_DSI_GPI_PULL_REG MIPITX_DSI_GPI_PULL; /* 0078 */
  898. struct MIPITX_DSI_PHY_SEL_REG MIPITX_DSI_PHY_SEL; /* 007C */
  899. struct MIPITX_DSI_SW_CTRL_REG MIPITX_DSI_SW_CTRL_EN; /* 0080 */
  900. struct MIPITX_DSI_SW_CTRL_CON0_REG MIPITX_DSI_SW_CTRL_CON0; /* 0084 */
  901. struct MIPITX_DSI_SW_CTRL_CON1_REG MIPITX_DSI_SW_CTRL_CON1; /* 0088 */
  902. struct MIPITX_DSI_SW_CTRL_CON2_REG MIPITX_DSI_SW_CTRL_CON2; /* 008C */
  903. struct MIPITX_DSI_DBG_CON_REG MIPITX_DSI_DBG_CON; /* 0090 */
  904. uint32_t MIPITX_DSI_DBG_OUT; /* 0084 */
  905. struct MIPITX_DSI_APB_ASYNC_STA_REG MIPITX_DSI_APB_ASYNC_STA; /* 0098 */
  906. };
  907. #ifndef BUILD_LK
  908. /*
  909. STATIC_ASSERT(0x0050 == offsetof(struct DSI_PHY_REGS, MIPITX_DSI_PLL_CON0));
  910. STATIC_ASSERT(0x0070 == offsetof(struct DSI_PHY_REGS, MIPITX_DSI_RGS));
  911. STATIC_ASSERT(0x0080 == offsetof(struct DSI_PHY_REGS, MIPITX_DSI_SW_CTRL_EN));
  912. STATIC_ASSERT(0x0090 == offsetof(struct DSI_PHY_REGS, MIPITX_DSI_DBG_CON));
  913. STATIC_ASSERT(0x002C == offsetof(struct DSI_REGS, DSI_VACT_NL));
  914. STATIC_ASSERT(0x0104 == offsetof(struct DSI_REGS, DSI_PHY_LCCON));
  915. STATIC_ASSERT(0x011C == offsetof(struct DSI_REGS, DSI_PHY_TIMECON3));
  916. STATIC_ASSERT(0x017C == offsetof(struct DSI_REGS, DSI_BIST_CON));
  917. STATIC_ASSERT(0x0100 == offsetof(struct DSI_REGS, DSI_PHY_PCPAT));
  918. STATIC_ASSERT(0x0098 == offsetof(struct DSI_REGS, DSI_3D_CON));
  919. */
  920. #endif
  921. extern unsigned long dispsys_reg[DISP_REG_NUM];
  922. extern unsigned long mipi_tx_reg;
  923. extern unsigned long dsi_reg_va;
  924. /* DTS will assign reigister address dynamically, so can not define to 0x1000 */
  925. /* #define DISP_INDEX_OFFSET 0x1000 */
  926. #define DISP_RDMA_INDEX_OFFSET (dispsys_reg[DISP_REG_RDMA1] - dispsys_reg[DISP_REG_RDMA0])
  927. #define DISP_OVL_INDEX_OFFSET (dispsys_reg[DISP_REG_OVL1] - dispsys_reg[DISP_REG_OVL0])
  928. #define DISP_WDMA_INDEX_OFFSET (0)
  929. #define DDP_REG_BASE_MMSYS_CONFIG dispsys_reg[DISP_REG_CONFIG]
  930. #define DDP_REG_BASE_DISP_OVL0 dispsys_reg[DISP_REG_OVL0]
  931. #define DDP_REG_BASE_DISP_OVL1 dispsys_reg[DISP_REG_OVL1]
  932. #define DDP_REG_BASE_DISP_RDMA0 dispsys_reg[DISP_REG_RDMA0]
  933. #define DDP_REG_BASE_DISP_RDMA1 dispsys_reg[DISP_REG_RDMA1]
  934. #define DDP_REG_BASE_DISP_WDMA0 dispsys_reg[DISP_REG_WDMA0]
  935. #define DDP_REG_BASE_DISP_WDMA1 0
  936. #define DDP_REG_BASE_DISP_COLOR0 dispsys_reg[DISP_REG_COLOR]
  937. #define DDP_REG_BASE_DISP_COLOR1 0
  938. #define DDP_REG_BASE_DISP_AAL dispsys_reg[DISP_REG_AAL]
  939. #define DDP_REG_BASE_DISP_GAMMA dispsys_reg[DISP_REG_GAMMA]
  940. #define DDP_REG_BASE_DISP_MERGE 0
  941. #define DDP_REG_BASE_DISP_SPLIT0 0
  942. #define DDP_REG_BASE_DISP_SPLIT1 0
  943. #define DDP_REG_BASE_DISP_UFOE 0
  944. #define DDP_REG_BASE_DSI0 dispsys_reg[DISP_REG_DSI0]
  945. #define DDP_REG_BASE_DSI1 0
  946. #define DDP_REG_BASE_DPI dispsys_reg[DISP_REG_DPI0]
  947. #define DDP_REG_BASE_DISP_PWM0 dispsys_reg[DISP_REG_PWM]
  948. #define DDP_REG_BASE_DISP_PWM1 0
  949. #define DDP_REG_BASE_MM_MUTEX dispsys_reg[DISP_REG_MUTEX]
  950. #define DDP_REG_BASE_SMI_LARB0 dispsys_reg[DISP_REG_SMI_LARB0]
  951. #define DDP_REG_BASE_SMI_COMMON dispsys_reg[DISP_REG_SMI_COMMON]
  952. #define DDP_REG_BASE_DISP_OD dispsys_reg[DISP_REG_OD]
  953. #define DDP_REG_BASE_DISP_CCORR dispsys_reg[DISP_REG_CCORR]
  954. #define DDP_REG_BASE_DISP_DITHER dispsys_reg[DISP_REG_DITHER]
  955. #define DDP_REG_BASE_MMSYS_CONFIG2 dispsys_reg[DISP_REG_CONFIG2]
  956. #define DDP_REG_BASE_MMSYS_CONFIG3 dispsys_reg[DISP_REG_CONFIG3]
  957. #define DDP_REG_IO_DRIVING1 dispsys_reg[DISP_REG_IO_DRIVING1]
  958. #define DDP_REG_IO_DRIVING2 dispsys_reg[DISP_REG_IO_DRIVING2]
  959. #define DDP_REG_IO_DRIVING3 dispsys_reg[DISP_REG_IO_DRIVING3]
  960. #define DDP_REG_EFUSE dispsys_reg[DISP_REG_EFUSE]
  961. #define DDP_REG_EFUSE_PERMISSION dispsys_reg[DISP_REG_EFUSE_PERMISSION]
  962. #define DDP_REG_EFUSE_KEY dispsys_reg[DISP_RGE_EFUSE_KEY]
  963. #define DDP_REG_BASE_VENCPLL dispsys_reg[DISP_RGE_VENCPLL]
  964. #define DDP_REG_TVDPLL_CON6 dispsys_reg[DISP_TVDPLL_CFG6]
  965. #define DDP_REG_TVDPLL_CON0 dispsys_reg[DISP_TVDPLL_CON0]
  966. #define DDP_REG_TVDPLL_CON1 dispsys_reg[DISP_TVDPLL_CON1]
  967. #define MIPI_TX_REG_BASE (mipi_tx_reg)
  968. #if 0
  969. #define DDP_REG_BASE_MMSYS_CONFIG MMSYS_CONFIG_BASE /* 0xf4000000 */
  970. #define DDP_REG_BASE_DISP_OVL0 OVL0_BASE /* 0xf400C000 */
  971. #define DDP_REG_BASE_DISP_OVL1 OVL1_BASE /* 0xf400D000 */
  972. #define DDP_REG_BASE_DISP_RDMA0 DISP_RDMA0_BASE /* 0xf400E000 */
  973. #define DDP_REG_BASE_DISP_RDMA1 DISP_RDMA1_BASE /* 0xf400F000 */
  974. #define DDP_REG_BASE_DISP_RDMA2 DISP_RDMA2_BASE /* 0xf4010000 */
  975. #define DDP_REG_BASE_DISP_WDMA0 DISP_WDMA0_BASE /* 0xf4011000 */
  976. #define DDP_REG_BASE_DISP_WDMA1 DISP_WDMA1_BASE /* 0xf4012000 */
  977. #define DDP_REG_BASE_DISP_COLOR0 COLOR0_BASE /* 0xf4013000 */
  978. #define DDP_REG_BASE_DISP_COLOR1 COLOR1_BASE /* 0xf4014000 */
  979. #define DDP_REG_BASE_DISP_AAL DISP_AAL_BASE /* 0xf4015000 */
  980. #define DDP_REG_BASE_DISP_GAMMA DISP_GAMMA_BASE /* 0xf4016000 */
  981. #define DDP_REG_BASE_DISP_MERGE DISP_MERGE_BASE /* 0xf4017000 */
  982. #define DDP_REG_BASE_DISP_SPLIT0 DISP_SPLIT0_BASE /* 0xf4018000 */
  983. #define DDP_REG_BASE_DISP_SPLIT1 DISP_SPLIT1_BASE /* 0xf4019000 */
  984. #define DDP_REG_BASE_DISP_UFOE DISP_UFOE_BASE /* 0xf401A000 */
  985. #define DDP_REG_BASE_DSI0 DSI0_BASE /* 0xf401B000 */
  986. #define DDP_REG_BASE_DSI1 DSI1_BASE /* 0xf401C000 */
  987. #define DDP_REG_BASE_DPI DPI_BASE /* 0xf401D000 */
  988. #define DDP_REG_BASE_DISP_PWM0 DISP_PWM0_BASE /* 0xf401E000 */
  989. #define DDP_REG_BASE_DISP_PWM1 DISP_PWM1_BASE /* 0xf401F000 */
  990. #define DDP_REG_BASE_MM_MUTEX MM_MUTEX_BASE /* 0xf4020000 */
  991. #define DDP_REG_BASE_SMI_LARB0 SMI_LARB0_BASE /* 0xf4021000 */
  992. #define DDP_REG_BASE_SMI_COMMON SMI_COMMON_BASE /* 0xf4022000 */
  993. #define DDP_REG_BASE_DISP_OD DISP_OD_BASE /* 0xf4023000 */
  994. #endif
  995. #define DISPSYS_REG_ADDR_MIN 0 /* dispsys_reg[0] */
  996. #define DISPSYS_REG_ADDR_MAX 0xffffffffffffffff /* (dispsys_reg[0]+0x200000) */
  997. #define DISPSYS_CONFIG_BASE DDP_REG_BASE_MMSYS_CONFIG
  998. #define DISPSYS_OVL0_BASE DDP_REG_BASE_DISP_OVL0
  999. #define DISPSYS_OVL1_BASE DDP_REG_BASE_DISP_OVL1
  1000. #define DISPSYS_RDMA0_BASE DDP_REG_BASE_DISP_RDMA0
  1001. #define DISPSYS_RDMA1_BASE DDP_REG_BASE_DISP_RDMA1
  1002. #define DISPSYS_WDMA0_BASE DDP_REG_BASE_DISP_WDMA0
  1003. #define DISPSYS_WDMA1_BASE DDP_REG_BASE_DISP_WDMA1
  1004. #define DISPSYS_COLOR0_BASE DDP_REG_BASE_DISP_COLOR0
  1005. #define DISPSYS_COLOR1_BASE DDP_REG_BASE_DISP_COLOR1
  1006. #define DISPSYS_AAL_BASE DDP_REG_BASE_DISP_AAL
  1007. #define DISPSYS_GAMMA_BASE DDP_REG_BASE_DISP_GAMMA
  1008. #define DISPSYS_MERGE_BASE DDP_REG_BASE_DISP_MERGE
  1009. #define DISPSYS_SPLIT0_BASE DDP_REG_BASE_DISP_SPLIT0
  1010. #define DISPSYS_SPLIT1_BASE DDP_REG_BASE_DISP_SPLIT1
  1011. #define DISPSYS_UFOE_BASE DDP_REG_BASE_DISP_UFOE
  1012. #define DISPSYS_DSI0_BASE DDP_REG_BASE_DSI0
  1013. #define DISPSYS_DSI1_BASE DDP_REG_BASE_DSI1
  1014. #define DISPSYS_DPI_BASE DDP_REG_BASE_DPI
  1015. #define DISPSYS_PWM0_BASE DDP_REG_BASE_DISP_PWM0
  1016. #define DISPSYS_PWM1_BASE DDP_REG_BASE_DISP_PWM1
  1017. #define DISPSYS_MUTEX_BASE DDP_REG_BASE_MM_MUTEX
  1018. #define DISPSYS_SMI_LARB0_BASE DDP_REG_BASE_SMI_LARB0
  1019. #define DISPSYS_SMI_COMMON_BASE DDP_REG_BASE_SMI_COMMON
  1020. #define DISPSYS_OD_BASE DDP_REG_BASE_DISP_OD
  1021. #define DISPSYS_CCORR_BASE DDP_REG_BASE_DISP_CCORR
  1022. #define DISPSYS_DITHER_BASE DDP_REG_BASE_DISP_DITHER
  1023. #define DISPSYS_CONFIG2_BASE DDP_REG_BASE_MMSYS_CONFIG2
  1024. #define DISPSYS_CONFIG3_BASE DDP_REG_BASE_MMSYS_CONFIG3
  1025. #define DISPSYS_IO_DRIVING1 DDP_REG_IO_DRIVING1
  1026. #define DISPSYS_IO_DRIVING2 DDP_REG_IO_DRIVING2
  1027. #define DISPSYS_IO_DRIVING3 DDP_REG_IO_DRIVING3
  1028. #define DISPSYS_EFUSE DDP_REG_EFUSE
  1029. #define DISPSYS_EFUSE_PERMISSION DDP_REG_EFUSE_PERMISSION
  1030. #define DISPSYS_EFUSE_KEY DDP_REG_EFUSE_KEY
  1031. #define DISPSYS_VENCPLL_BASE DDP_REG_BASE_VENCPLL
  1032. #define MIPITX_BASE MIPI_TX_REG_BASE
  1033. /* --------------------------------------------------------------------------- */
  1034. /* Type Casting */
  1035. /* --------------------------------------------------------------------------- */
  1036. #if 0
  1037. #define AS_INT32(x) (*(INT32 *)(x))
  1038. #define AS_INT16(x) (*(INT16 *)(x))
  1039. #define AS_INT8(x) (*(INT8 *)(x))
  1040. #define AS_UINT32(x) __raw_readl(x)
  1041. #define AS_UINT16(x) (*(uint16_t *)(x))
  1042. #define AS_UINT8(x) (*(uint8_t *)(x))
  1043. /* --------------------------------------------------------------------------- */
  1044. /* Register Manipulations */
  1045. /* --------------------------------------------------------------------------- */
  1046. #define READ_REGISTER_UINT32(reg) \
  1047. (*(volatile unsigned long * const)(reg))
  1048. #define WRITE_REGISTER_UINT32(reg, val) \
  1049. ((*(volatile unsigned long * const)(reg)) = (val))
  1050. #define READ_REGISTER_UINT16(reg) \
  1051. (*(volatile uint16_t * const)(reg))
  1052. #define WRITE_REGISTER_UINT16(reg, val) \
  1053. ((*(volatile uint16_t * const)(reg)) = (val))
  1054. #define READ_REGISTER_UINT8(reg) \
  1055. (*(volatile uint8_t * const)(reg))
  1056. #define WRITE_REGISTER_UINT8(reg, val) \
  1057. ((*(volatile uint8_t * const)(reg)) = (val))
  1058. #endif
  1059. #if 0
  1060. #define INREG8(x) READ_REGISTER_UINT8((uint8_t *)(x))
  1061. #define OUTREG8(x, y) WRITE_REGISTER_UINT8((uint8_t *)(x), (uint8_t)(y))
  1062. #define SETREG8(x, y) OUTREG8(x, INREG8(x)|(y))
  1063. #define CLRREG8(x, y) OUTREG8(x, INREG8(x)&~(y))
  1064. #define MASKREG8(x, y, z) OUTREG8(x, (INREG8(x)&~(y))|(z))
  1065. #define INREG16(x) READ_REGISTER_UINT16((uint16_t *)(x))
  1066. #define OUTREG16(x, y) WRITE_REGISTER_UINT16((uint16_t *)(x), (uint16_t)(y))
  1067. #define SETREG16(x, y) OUTREG16(x, INREG16(x)|(y))
  1068. #define CLRREG16(x, y) OUTREG16(x, INREG16(x)&~(y))
  1069. #define MASKREG16(x, y, z) OUTREG16(x, (INREG16(x)&~(y))|(z))
  1070. #define INREG32(x) (__raw_readl((unsigned long *)(x)))
  1071. #define OUTREG32(x, y) WRITE_REGISTER_UINT32((unsigned long *)(x), (uint32_t)(y))
  1072. #define SETREG32(x, y) OUTREG32(x, INREG32(x)|(y))
  1073. #define CLRREG32(x, y) OUTREG32(x, INREG32(x)&~(y))
  1074. #define MASKREG32(x, y, z) OUTREG32(x, (INREG32(x)&~(y))|(z))
  1075. #endif
  1076. #ifdef INREG32
  1077. #undef INREG32
  1078. #define INREG32(x) (__raw_readl((unsigned long *)(x)))
  1079. #endif
  1080. /* --------------------------------------------------------------------------- */
  1081. /* Register Field Access */
  1082. /* --------------------------------------------------------------------------- */
  1083. #define READ_REGISTER_UINT32(reg) (*(volatile uint32_t *const)(reg))
  1084. #define INREG32(x) READ_REGISTER_UINT32((uint32_t *)((void *)(x)))
  1085. #define WRITE_REGISTER_UINT32(reg, val) ((*(volatile uint32_t *const)(reg)) = (val))
  1086. #define OUTREG32(x, y) WRITE_REGISTER_UINT32((uint32_t *)((void *)(x)), (uint32_t)(y))
  1087. #define AS_UINT32(x) (*(uint32_t *)((void *)x))
  1088. #define REG_FLD(width, shift) \
  1089. ((unsigned int)((((width) & 0xFF) << 16) | ((shift) & 0xFF)))
  1090. #define REG_FLD_WIDTH(field) \
  1091. ((unsigned int)(((field) >> 16) & 0xFF))
  1092. #define REG_FLD_SHIFT(field) \
  1093. ((unsigned int)((field) & 0xFF))
  1094. #define REG_FLD_MASK(field) \
  1095. (((unsigned int)(1 << REG_FLD_WIDTH(field)) - 1) << REG_FLD_SHIFT(field))
  1096. #define REG_FLD_VAL(field, val) \
  1097. (((val) << REG_FLD_SHIFT(field)) & REG_FLD_MASK(field))
  1098. #define DISP_REG_GET(reg32) __raw_readl((unsigned long *)(reg32))
  1099. #define DISP_REG_GET_FIELD(field, reg32) ((__raw_readl((void *)(reg32)) & REG_FLD_MASK(field)) >> REG_FLD_SHIFT(field))
  1100. /* polling register until masked bit is 1 */
  1101. #define DDP_REG_POLLING(reg32, mask) \
  1102. do { \
  1103. while (!((DISP_REG_GET(reg32))&mask)) \
  1104. ; \
  1105. } while (0)
  1106. /* Polling register until masked bit is 0 */
  1107. #define DDP_REG_POLLING_NEG(reg32, mask) \
  1108. do { \
  1109. while ((DISP_REG_GET(reg32))&mask) \
  1110. ; \
  1111. } while (0)
  1112. #define DISP_CPU_REG_SET(reg32, val) \
  1113. do {\
  1114. if (0) \
  1115. dprec_reg_op(NULL, reg32, val, 0x00000000);\
  1116. mt_reg_sync_writel(val, (volatile unsigned long *)(reg32));\
  1117. } while (0)
  1118. #define DISP_CPU_REG_SET_FIELD(field, reg32, val) \
  1119. do { \
  1120. if (0) \
  1121. dprec_reg_op(NULL, (unsigned long)(reg32),\
  1122. val<<REG_FLD_SHIFT(field), REG_FLD_MASK(field));\
  1123. mt_reg_sync_writel(((unsigned int)(*(volatile unsigned long *)(reg32)) & ~REG_FLD_MASK(field))\
  1124. | REG_FLD_VAL((field), (val)), (volatile unsigned long *)reg32); \
  1125. } while (0)
  1126. /* after apply device tree va/pa is not mapped by a fixed offset */
  1127. static inline unsigned long disp_addr_convert(unsigned long va)
  1128. {
  1129. unsigned int i = 0;
  1130. for (i = 0; i < DISP_REG_NUM; i++) {
  1131. if (dispsys_reg[i] == (va & (~0xfffl))) {
  1132. /* pr_err("DDP " "va=0x%x, pa=0x%x!\n", va, (ddp_reg_pa_base[i]+(va&0xfffl))); */
  1133. return ddp_reg_pa_base[i] + (va & 0xfffl);
  1134. }
  1135. }
  1136. DDPERR("can not find reg addr for va=0x%lx!\n", va);
  1137. return 0;
  1138. }
  1139. #define DISP_REG_MASK(handle, reg32, val, mask) \
  1140. do { \
  1141. dprec_reg_op((void *)handle, (unsigned long)reg32, val, mask);\
  1142. if (handle == NULL) \
  1143. mt_reg_sync_writel((unsigned int)(INREG32(reg32)&~(mask))|(val), \
  1144. (volatile unsigned long *)(reg32));\
  1145. else \
  1146. cmdqRecWrite((cmdqRecHandle)handle, disp_addr_convert((unsigned long)reg32), val, mask); \
  1147. } while (0)
  1148. /* #define DISP_ENABLE_TOP_CLK_CLOSE */
  1149. #ifdef DISP_ENABLE_TOP_CLK_CLOSE
  1150. extern unsigned int isIdlePowerOff;
  1151. extern void _disp_primary_path_exit_idle(const char *caller, unsigned int need_primary_lock);
  1152. #define DISP_REG_SET(handle, reg32, val) \
  1153. do { \
  1154. if (isIdlePowerOff == 1) { \
  1155. DDPAEE("ddp clk error");\
  1156. _disp_primary_path_exit_idle("ddp_reg", 0); \
  1157. } \
  1158. if (handle == 0) {\
  1159. mt_reg_sync_writel(val, (volatile unsigned long *)(reg32));\
  1160. } \
  1161. else {\
  1162. dprec_reg_op((void *)handle, reg32, val, 0x00000000);\
  1163. cmdqRecWrite((cmdqRecHandle)handle, disp_addr_convert(reg32), val, ~0); \
  1164. } \
  1165. } while (0)
  1166. #define DISP_REG_SET_FIELD(handle, field, reg32, val) \
  1167. do { \
  1168. if (isIdlePowerOff == 1) {\
  1169. DDPAEE("ddp clk error");\
  1170. _disp_primary_path_exit_idle("ddp_reg", 0); \
  1171. } \
  1172. if (handle == 0) { \
  1173. mt_reg_sync_writel((__raw_readl(reg32) & ~REG_FLD_MASK(field)) | REG_FLD_VAL((field), (val)),\
  1174. (reg32)); \
  1175. } \
  1176. else { \
  1177. dprec_reg_op((void *)handle, (unsigned long)(reg32), val << REG_FLD_SHIFT(field),\
  1178. REG_FLD_MASK(field));\
  1179. cmdqRecWrite((cmdqRecHandle)handle, disp_addr_convert((unsigned long)reg32), \
  1180. val<<REG_FLD_SHIFT(field), REG_FLD_MASK(field)); \
  1181. } \
  1182. } while (0)
  1183. #else
  1184. #define DISP_REG_SET_PA(handle, reg32, val) \
  1185. do { \
  1186. if (handle == 0) {\
  1187. mt_reg_sync_writel(val, (volatile unsigned long *)(reg32));\
  1188. } \
  1189. else {\
  1190. cmdqRecWrite((cmdqRecHandle)handle, reg32, val, ~0); \
  1191. } \
  1192. } while (0)
  1193. #define DISP_REG_SET(handle, reg32, val) \
  1194. do { \
  1195. if (handle == 0) {\
  1196. mt_reg_sync_writel(val, (volatile unsigned long *)(reg32));\
  1197. } \
  1198. else {\
  1199. dprec_reg_op((void *)handle, (unsigned long)reg32, val, 0x00000000);\
  1200. cmdqRecWrite((cmdqRecHandle)handle, disp_addr_convert((unsigned long)reg32), val, ~0); \
  1201. } \
  1202. } while (0)
  1203. #define DISP_REG_SET_FIELD(handle, field, reg32, val) \
  1204. do { \
  1205. if (handle == 0) { \
  1206. mt_reg_sync_writel((__raw_readl((void *)(reg32)) & ~REG_FLD_MASK(field))|REG_FLD_VAL((field), \
  1207. (val)), (reg32)); \
  1208. } \
  1209. else{ \
  1210. dprec_reg_op((void *)handle, (unsigned long)(reg32), val << REG_FLD_SHIFT(field),\
  1211. REG_FLD_MASK(field));\
  1212. cmdqRecWrite((cmdqRecHandle)handle, disp_addr_convert((unsigned long)reg32),\
  1213. val << REG_FLD_SHIFT(field), REG_FLD_MASK(field));\
  1214. } \
  1215. } while (0)
  1216. #endif
  1217. #define DISP_REG_CMDQ_POLLING(handle, reg32, val, mask) \
  1218. do { \
  1219. if (handle == 0) {\
  1220. while (!((DISP_REG_GET(reg32))&val))\
  1221. ; \
  1222. } \
  1223. else {\
  1224. dprec_reg_op((void *)handle, (unsigned long)reg32, val, 0x00000000);\
  1225. cmdqRecPoll((cmdqRecHandle)handle, disp_addr_convert((unsigned long)reg32), val, mask); \
  1226. } \
  1227. } while (0)
  1228. /* write to reg only if the value is different from reg value */
  1229. extern unsigned int gEnableReduceRegWrite;
  1230. #define DISP_REG_SET_DIRTY(handle, reg32, val) \
  1231. do { \
  1232. if (gEnableReduceRegWrite == 0 || DISP_REG_GET(reg32) != (val)) { \
  1233. if (handle == 0) { \
  1234. mt_reg_sync_writel(val, (volatile unsigned long *)(reg32));\
  1235. } \
  1236. else { \
  1237. if (0)\
  1238. dprec_reg_op((void *)handle, (unsigned long)reg32, val, 0x00000000);\
  1239. cmdqRecWrite((cmdqRecHandle)handle, disp_addr_convert((unsigned long)reg32), val, ~0); \
  1240. } \
  1241. } \
  1242. } while (0)
  1243. #define DISP_REG_SET_CMDQ(handle, reg32, val) \
  1244. do { \
  1245. dprec_reg_op((void *)handle, (unsigned long)reg32, val, 0x00000000);\
  1246. cmdqRecWrite((cmdqRecHandle)handle, disp_addr_convert((unsigned long)reg32), val, ~0); \
  1247. } while (0)
  1248. #define DISP_REG_SET_FIELD_CMDQ(handle, field, reg32, val) \
  1249. do { \
  1250. dprec_reg_op((void *)handle, (unsigned long)(reg32), val<<REG_FLD_SHIFT(field), REG_FLD_MASK(field));\
  1251. cmdqRecWrite((cmdqRecHandle)handle, disp_addr_convert((unsigned long)reg32),\
  1252. val << REG_FLD_SHIFT(field), REG_FLD_MASK(field)); \
  1253. } while (0)
  1254. #define DISP_REG_SET_CMDQ_MODULE(handle, reg32, val, module) \
  1255. do { \
  1256. dprec_reg_op((void *)handle, (unsigned long)reg32, val, 0x00000000);\
  1257. cmdqRecWrite((cmdqRecHandle)handle, ddp_reg_pa_base[module]+(reg32&0xfffl), val, ~0); \
  1258. } while (0)
  1259. #define DISP_REG_SET_FIELD_CMDQ_MODULE(handle, field, reg32, val, module) \
  1260. do { \
  1261. dprec_reg_op((void *)handle, (unsigned long)(reg32), val<<REG_FLD_SHIFT(field), REG_FLD_MASK(field));\
  1262. cmdqRecWrite((cmdqRecHandle)handle, ddp_reg_pa_base[module]+(reg32&0xfffl), \
  1263. val<<REG_FLD_SHIFT(field), REG_FLD_MASK(field)); \
  1264. } while (0)
  1265. #define DISP_REG_BACKUP(handle, hSlot, idx, reg32) \
  1266. do { \
  1267. if (handle != 0) { \
  1268. if (hSlot)\
  1269. cmdqRecBackupRegisterToSlot(handle, hSlot, \
  1270. idx, disp_addr_convert((unsigned long)reg32));\
  1271. } \
  1272. } while (0)
  1273. /* TODO: waiting for CMDQ enabled */
  1274. #if 1
  1275. /* Helper macros for local command queue */
  1276. #define DISP_CMDQ_BEGIN(__cmdq, scenario) \
  1277. do { \
  1278. cmdqRecCreate(scenario, &__cmdq);\
  1279. cmdqRecReset(__cmdq);\
  1280. ddp_insert_config_allow_rec(__cmdq); \
  1281. } while (0)
  1282. #define DISP_CMDQ_REG_SET(__cmdq, reg32, val, mask) DISP_REG_MASK(__cmdq, reg32, val, mask)
  1283. #define DISP_CMDQ_CONFIG_STREAM_DIRTY(__cmdq) ddp_insert_config_dirty_rec(__cmdq)
  1284. #define DISP_CMDQ_END(__cmdq) \
  1285. do { \
  1286. cmdqRecFlush(__cmdq); \
  1287. cmdqRecDestroy(__cmdq); \
  1288. } while (0)
  1289. #endif
  1290. /* field definition */
  1291. /* ------------------------------------------------------------- */
  1292. /* AAL */
  1293. #define DISP_AAL_EN (DISPSYS_AAL_BASE + 0x000)
  1294. #define DISP_AAL_RESET (DISPSYS_AAL_BASE + 0x004)
  1295. #define DISP_AAL_INTEN (DISPSYS_AAL_BASE + 0x008)
  1296. #define DISP_AAL_INTSTA (DISPSYS_AAL_BASE + 0x00c)
  1297. #define DISP_AAL_STATUS (DISPSYS_AAL_BASE + 0x010)
  1298. #define DISP_AAL_CFG (DISPSYS_AAL_BASE + 0x020)
  1299. #define DISP_AAL_IN_CNT (DISPSYS_AAL_BASE + 0x024)
  1300. #define DISP_AAL_OUT_CNT (DISPSYS_AAL_BASE + 0x028)
  1301. #define DISP_AAL_CHKSUM (DISPSYS_AAL_BASE + 0x02c)
  1302. #define DISP_AAL_SIZE (DISPSYS_AAL_BASE + 0x030)
  1303. #define DISP_AAL_DUMMY_REG (DISPSYS_AAL_BASE + 0x0c0)
  1304. #define DISP_AAL_MAX_HIST_CONFIG_00 (DISPSYS_AAL_BASE + 0x204)
  1305. #define DISP_AAL_CABC_00 (DISPSYS_AAL_BASE + 0x20c)
  1306. #define DISP_AAL_CABC_02 (DISPSYS_AAL_BASE + 0x214)
  1307. #define DISP_AAL_CABC_04 (DISPSYS_AAL_BASE + 0x21c)
  1308. #define DISP_AAL_STATUS_00 (DISPSYS_AAL_BASE + 0x224)
  1309. /* 00 ~ 32: max histogram */
  1310. #define DISP_AAL_STATUS_32 (DISPSYS_AAL_BASE + 0x2a4)
  1311. /* bit 8: dre_gain_force_en */
  1312. #define DISP_AAL_DRE_FLT_FORCE(idx) (DISPSYS_AAL_BASE + 0x358 + (idx) * 4)
  1313. #define DISP_AAL_DRE_MAPPING_00 (DISPSYS_AAL_BASE + 0x3b0)
  1314. #define DISP_AAL_CABC_GAINLMT_TBL(idx) (DISPSYS_AAL_BASE + 0x40c + (idx) * 4)
  1315. #define DISP_PWM_EN_OFF (0x00)
  1316. #define DISP_PWM_COMMIT_OFF (0x08)
  1317. #define DISP_PWM_CON_0_OFF (0x10)
  1318. #define DISP_PWM_CON_1_OFF (0x14)
  1319. /* field definition */
  1320. /* ------------------------------------------------------------- */
  1321. /* DISP OD */
  1322. #define DISP_OD_EN (DISPSYS_OD_BASE + 0x000)
  1323. #define DISP_OD_RESET (DISPSYS_OD_BASE + 0x004)
  1324. #define DISP_OD_INTEN (DISPSYS_OD_BASE + 0x008)
  1325. #define DISP_OD_INTS (DISPSYS_OD_BASE + 0x00C)
  1326. #define DISP_OD_STATUS (DISPSYS_OD_BASE + 0x010)
  1327. #define DISP_OD_CFG (DISPSYS_OD_BASE + 0x020)
  1328. #define DISP_OD_INPUT_COUNT (DISPSYS_OD_BASE + 0x024)
  1329. #define DISP_OD_OUTPUT_COUNT (DISPSYS_OD_BASE + 0x028)
  1330. #define DISP_OD_CHKS_UM (DISPSYS_OD_BASE + 0x02c)
  1331. #define DISP_OD_SIZE (DISPSYS_OD_BASE + 0x030)
  1332. #define DISP_OD_HSYNC_WIDTH (DISPSYS_OD_BASE + 0x040)
  1333. #define DISP_OD_VSYNC_WIDTH (DISPSYS_OD_BASE + 0x044)
  1334. #define DISP_OD_MISC (DISPSYS_OD_BASE + 0x048)
  1335. /* ------------------------------------------------------------- */
  1336. /* COLOR */
  1337. #define CFG_MAIN_FLD_M_REG_RESET REG_FLD(1, 31)
  1338. #define CFG_MAIN_FLD_M_DISP_RESET REG_FLD(1, 30)
  1339. #define CFG_MAIN_FLD_COLOR_DBUF_EN REG_FLD(1, 29)
  1340. #define CFG_MAIN_FLD_C_PP_CM_DBG_SEL REG_FLD(4, 16)
  1341. #define CFG_MAIN_FLD_SEQ_SEL REG_FLD(1, 13)
  1342. #define CFG_MAIN_FLD_ALLBP REG_FLD(1, 7)
  1343. #define CFG_MAIN_FLD_HEBP REG_FLD(1, 4)
  1344. #define CFG_MAIN_FLD_SEBP REG_FLD(1, 3)
  1345. #define CFG_MAIN_FLD_YEBP REG_FLD(1, 2)
  1346. #define CFG_MAIN_FLD_P2CBP REG_FLD(1, 1)
  1347. #define CFG_MAIN_FLD_C2PBP REG_FLD(1, 0)
  1348. #define START_FLD_DISP_COLOR_START REG_FLD(1, 0)
  1349. #define DISP_COLOR_CFG_MAIN (DISPSYS_COLOR0_BASE+0x400)
  1350. #define DISP_COLOR_PXL_CNT_MAIN (DISPSYS_COLOR0_BASE+0x404)
  1351. #define DISP_COLOR_LINE_CNT_MAIN (DISPSYS_COLOR0_BASE+0x408)
  1352. #define DISP_COLOR_WIN_X_MAIN (DISPSYS_COLOR0_BASE+0x40C)
  1353. #define DISP_COLOR_WIN_Y_MAIN (DISPSYS_COLOR0_BASE+0x410)
  1354. #define DISP_COLOR_TIMING_DETECTION_0 (DISPSYS_COLOR0_BASE+0x418)
  1355. #define DISP_COLOR_TIMING_DETECTION_1 (DISPSYS_COLOR0_BASE+0x41c)
  1356. #define DISP_COLOR_DBG_CFG_MAIN (DISPSYS_COLOR0_BASE+0x420)
  1357. #define DISP_COLOR_C_BOOST_MAIN (DISPSYS_COLOR0_BASE+0x428)
  1358. #define DISP_COLOR_C_BOOST_MAIN_2 (DISPSYS_COLOR0_BASE+0x42C)
  1359. #define DISP_COLOR_LUMA_ADJ (DISPSYS_COLOR0_BASE+0x430)
  1360. #define DISP_COLOR_G_PIC_ADJ_MAIN_1 (DISPSYS_COLOR0_BASE+0x434)
  1361. #define DISP_COLOR_G_PIC_ADJ_MAIN_2 (DISPSYS_COLOR0_BASE+0x438)
  1362. #define DISP_COLOR_POS_MAIN (DISPSYS_COLOR0_BASE+0x484)
  1363. #define DISP_COLOR_INK_DATA_MAIN (DISPSYS_COLOR0_BASE+0x488)
  1364. #define DISP_COLOR_INK_DATA_MAIN_CR (DISPSYS_COLOR0_BASE+0x48c)
  1365. #define DISP_COLOR_CAP_IN_DATA_MAIN (DISPSYS_COLOR0_BASE+0x490)
  1366. #define DISP_COLOR_CAP_IN_DATA_MAIN_CR (DISPSYS_COLOR0_BASE+0x494)
  1367. #define DISP_COLOR_CAP_OUT_DATA_MAIN (DISPSYS_COLOR0_BASE+0x498)
  1368. #define DISP_COLOR_CAP_OUT_DATA_MAIN_CR (DISPSYS_COLOR0_BASE+0x49c)
  1369. #define DISP_COLOR_Y_SLOPE_1_0_MAIN (DISPSYS_COLOR0_BASE+0x4A0)
  1370. #define DISP_COLOR_LOCAL_HUE_CD_0 (DISPSYS_COLOR0_BASE+0x620)
  1371. #define DISP_COLOR_TWO_D_WINDOW_1 (DISPSYS_COLOR0_BASE+0x740)
  1372. #define DISP_COLOR_TWO_D_W1_RESULT (DISPSYS_COLOR0_BASE+0x74C)
  1373. #define DISP_COLOR_SAT_HIST_X_CFG_MAIN (DISPSYS_COLOR0_BASE+0x768)
  1374. #define DISP_COLOR_SAT_HIST_Y_CFG_MAIN (DISPSYS_COLOR0_BASE+0x76c)
  1375. #define DISP_COLOR_BWS_2 (DISPSYS_COLOR0_BASE+0x79c)
  1376. #define DISP_COLOR_CRC_0 (DISPSYS_COLOR0_BASE+0x7e0)
  1377. #define DISP_COLOR_PART_SAT_GAIN1_0 (DISPSYS_COLOR0_BASE+0x7FC)
  1378. #define DISP_COLOR_PART_SAT_GAIN1_1 (DISPSYS_COLOR0_BASE+0x800)
  1379. #define DISP_COLOR_PART_SAT_GAIN1_2 (DISPSYS_COLOR0_BASE+0x804)
  1380. #define DISP_COLOR_PART_SAT_GAIN1_3 (DISPSYS_COLOR0_BASE+0x808)
  1381. #define DISP_COLOR_PART_SAT_GAIN1_4 (DISPSYS_COLOR0_BASE+0x80C)
  1382. #define DISP_COLOR_PART_SAT_GAIN2_0 (DISPSYS_COLOR0_BASE+0x810)
  1383. #define DISP_COLOR_PART_SAT_GAIN2_1 (DISPSYS_COLOR0_BASE+0x814)
  1384. #define DISP_COLOR_PART_SAT_GAIN2_2 (DISPSYS_COLOR0_BASE+0x818)
  1385. #define DISP_COLOR_PART_SAT_GAIN2_3 (DISPSYS_COLOR0_BASE+0x81C)
  1386. #define DISP_COLOR_PART_SAT_GAIN2_4 (DISPSYS_COLOR0_BASE+0x820)
  1387. #define DISP_COLOR_PART_SAT_GAIN3_0 (DISPSYS_COLOR0_BASE+0x824)
  1388. #define DISP_COLOR_PART_SAT_GAIN3_1 (DISPSYS_COLOR0_BASE+0x828)
  1389. #define DISP_COLOR_PART_SAT_GAIN3_2 (DISPSYS_COLOR0_BASE+0x82C)
  1390. #define DISP_COLOR_PART_SAT_GAIN3_3 (DISPSYS_COLOR0_BASE+0x830)
  1391. #define DISP_COLOR_PART_SAT_GAIN3_4 (DISPSYS_COLOR0_BASE+0x834)
  1392. #define DISP_COLOR_PART_SAT_POINT1_0 (DISPSYS_COLOR0_BASE+0x838)
  1393. #define DISP_COLOR_PART_SAT_POINT1_1 (DISPSYS_COLOR0_BASE+0x83C)
  1394. #define DISP_COLOR_PART_SAT_POINT1_2 (DISPSYS_COLOR0_BASE+0x840)
  1395. #define DISP_COLOR_PART_SAT_POINT1_3 (DISPSYS_COLOR0_BASE+0x844)
  1396. #define DISP_COLOR_PART_SAT_POINT1_4 (DISPSYS_COLOR0_BASE+0x848)
  1397. #define DISP_COLOR_PART_SAT_POINT2_0 (DISPSYS_COLOR0_BASE+0x84C)
  1398. #define DISP_COLOR_PART_SAT_POINT2_1 (DISPSYS_COLOR0_BASE+0x850)
  1399. #define DISP_COLOR_PART_SAT_POINT2_2 (DISPSYS_COLOR0_BASE+0x854)
  1400. #define DISP_COLOR_PART_SAT_POINT2_3 (DISPSYS_COLOR0_BASE+0x858)
  1401. #define DISP_COLOR_PART_SAT_POINT2_4 (DISPSYS_COLOR0_BASE+0x85C)
  1402. #define DISP_COLOR_START (DISPSYS_COLOR0_BASE+0xC00)
  1403. #define DISP_COLOR_INTEN (DISPSYS_COLOR0_BASE+0xC04)
  1404. #define DISP_COLOR_OUT_SEL (DISPSYS_COLOR0_BASE+0xC08)
  1405. #define DISP_COLOR_FRAME_DONE_DEL (DISPSYS_COLOR0_BASE+0xC10)
  1406. #define DISP_COLOR_CRC (DISPSYS_COLOR0_BASE+0xC14)
  1407. #define DISP_COLOR_SW_SCRATCH (DISPSYS_COLOR0_BASE+0xC18)
  1408. #define DISP_COLOR_CK_ON (DISPSYS_COLOR0_BASE+0xC28)
  1409. #define DISP_COLOR_INTERNAL_IP_WIDTH (DISPSYS_COLOR0_BASE+0xC50)
  1410. #define DISP_COLOR_INTERNAL_IP_HEIGHT (DISPSYS_COLOR0_BASE+0xC54)
  1411. #define DISP_COLOR_CM1_EN (DISPSYS_COLOR0_BASE+0xC60)
  1412. #define DISP_COLOR_CM2_EN (DISPSYS_COLOR0_BASE+0xCA0)
  1413. /* ------------------------------------------------------------- */
  1414. /* Config */
  1415. #define DISP_REG_CONFIG_MMSYS_INTEN (DISPSYS_CONFIG_BASE + 0x0)
  1416. #define DISP_REG_CONFIG_MMSYS_INTSTA (DISPSYS_CONFIG_BASE + 0x4)
  1417. #define DISP_REG_CONFIG_PWM_APB_ERR_ADDR (DISPSYS_CONFIG_BASE + 0xc)
  1418. #define DISP_REG_CONFIG_ISP_MOUT_EN (DISPSYS_CONFIG_BASE + 0x01c)
  1419. #define DISP_REG_CONFIG_MDP_RDMA0_MOUT_EN (DISPSYS_CONFIG_BASE + 0x020)
  1420. #define DISP_REG_CONFIG_MDP_PRZ0_MOUT_EN (DISPSYS_CONFIG_BASE + 0x024)
  1421. #define DISP_REG_CONFIG_MDP_PRZ1_MOUT_EN (DISPSYS_CONFIG_BASE + 0x028)
  1422. #define DISP_REG_CONFIG_MDP_TDSHP0_MOUT_EN (DISPSYS_CONFIG_BASE + 0x02C)
  1423. #define DISP_REG_CONFIG_DISP_OVL0_MOUT_EN (DISPSYS_CONFIG_BASE + 0x030)
  1424. #define DISP_REG_CONFIG_DISP_OVL1_MOUT_EN (DISPSYS_CONFIG_BASE + 0x034)
  1425. #define DISP_REG_CONFIG_DISP_DITHER_MOUT_EN (DISPSYS_CONFIG_BASE + 0x038)
  1426. #define DISP_REG_CONFIG_DISP_UFOE_MOUT_EN (DISPSYS_CONFIG_BASE + 0x03C)
  1427. #define DISP_REG_CONFIG_MMSYS_MOUT_RST (DISPSYS_CONFIG_BASE + 0x040)
  1428. #define DISP_REG_CONFIG_MDP_PRZ0_SEL_IN (DISPSYS_CONFIG_BASE + 0x044)
  1429. #define DISP_REG_CONFIG_MDP_PRZ1_SEL_IN (DISPSYS_CONFIG_BASE + 0x048)
  1430. #define DISP_REG_CONFIG_MDP_TDSHP0_SEL_IN (DISPSYS_CONFIG_BASE + 0x04C)
  1431. #define DISP_REG_CONFIG_MDP_WDMA0_SEL_IN (DISPSYS_CONFIG_BASE + 0x050)
  1432. #define DISP_REG_CONFIG_MDP_WROT0_SEL_IN (DISPSYS_CONFIG_BASE + 0x054)
  1433. #define DISP_REG_CONFIG_DISP_COLOR0_SEL_IN (DISPSYS_CONFIG_BASE + 0x058)
  1434. #define DISP_REG_CONFIG_DISP_WDMA0_SEL_IN (DISPSYS_CONFIG_BASE + 0x05C)
  1435. #define DISP_REG_CONFIG_DISP_UFOE_SEL_IN (DISPSYS_CONFIG_BASE + 0x060)
  1436. #define DISP_REG_CONFIG_DSI0_SEL_IN (DISPSYS_CONFIG_BASE + 0x064)
  1437. #define DISP_REG_CONFIG_DPI0_SEL_IN (DISPSYS_CONFIG_BASE + 0x068)
  1438. #define DISP_REG_CONFIG_DISP_RDMA0_SOUT_SEL_IN (DISPSYS_CONFIG_BASE + 0x06C)
  1439. #define DISP_REG_CONFIG_DISP_RDMA1_SOUT_SEL_IN (DISPSYS_CONFIG_BASE + 0x070)
  1440. #define DISP_REG_CONFIG_MMSYS_MISC (DISPSYS_CONFIG_BASE + 0x0F0)
  1441. #define DISP_REG_CONFIG_MMSYS_CG_CON0 (DISPSYS_CONFIG_BASE + 0x100)
  1442. #define DISP_REG_CONFIG_MMSYS_CG_SET0 (DISPSYS_CONFIG_BASE + 0x104)
  1443. #define DISP_REG_CONFIG_MMSYS_CG_CLR0 (DISPSYS_CONFIG_BASE + 0x108)
  1444. #define DISP_REG_CONFIG_MMSYS_CG_CON1 (DISPSYS_CONFIG_BASE + 0x110)
  1445. #define DISP_REG_CONFIG_MMSYS_CG_SET1 (DISPSYS_CONFIG_BASE + 0x114)
  1446. #define DISP_REG_CONFIG_MMSYS_CG_CLR1 (DISPSYS_CONFIG_BASE + 0x118)
  1447. #define DISP_REG_CONFIG_MMSYS_HW_DCM_DIS0 (DISPSYS_CONFIG_BASE + 0x120)
  1448. #define DISP_REG_CONFIG_MMSYS_HW_DCM_DIS_SET0 (DISPSYS_CONFIG_BASE + 0x124)
  1449. #define DISP_REG_CONFIG_MMSYS_HW_DCM_DIS_CLR0 (DISPSYS_CONFIG_BASE + 0x128)
  1450. #define DISP_REG_CONFIG_MMSYS_SW0_RST_B (DISPSYS_CONFIG_BASE + 0x140)
  1451. #define DISP_REG_CONFIG_MMSYS_SW1_RST_B (DISPSYS_CONFIG_BASE + 0x144)
  1452. #define DISP_REG_CONFIG_MMSYS_LCM_RST_B (DISPSYS_CONFIG_BASE + 0x150)
  1453. #define DISP_REG_CONFIG_DISP_FAKE_ENG_EN (DISPSYS_CONFIG_BASE + 0x200)
  1454. #define DISP_REG_CONFIG_DISP_FAKE_ENG_RST (DISPSYS_CONFIG_BASE + 0x204)
  1455. #define DISP_REG_CONFIG_DISP_FAKE_ENG_CON0 (DISPSYS_CONFIG_BASE + 0x208)
  1456. #define DISP_REG_CONFIG_DISP_FAKE_ENG_CON1 (DISPSYS_CONFIG_BASE + 0x20c)
  1457. #define DISP_REG_CONFIG_DISP_FAKE_ENG_RD_ADDR (DISPSYS_CONFIG_BASE + 0x210)
  1458. #define DISP_REG_CONFIG_DISP_FAKE_ENG_WR_ADDR (DISPSYS_CONFIG_BASE + 0x214)
  1459. #define DISP_REG_CONFIG_DISP_FAKE_ENG_STATE (DISPSYS_CONFIG_BASE + 0x218)
  1460. #define DISP_REG_CONFIG_MMSYS_MBIST_CON (DISPSYS_CONFIG_BASE + 0x800)
  1461. #define DISP_REG_CONFIG_MMSYS_MBIST_DONE (DISPSYS_CONFIG_BASE + 0x804)
  1462. #define DISP_REG_CONFIG_MMSYS_MBIST_HOLDB (DISPSYS_CONFIG_BASE + 0x808)
  1463. #define DISP_REG_CONFIG_MMSYS_MBIST_MODE (DISPSYS_CONFIG_BASE + 0x80c)
  1464. #define DISP_REG_CONFIG_MMSYS_MBIST_FAIL0 (DISPSYS_CONFIG_BASE + 0x810)
  1465. #define DISP_REG_CONFIG_MMSYS_MBIST_FAIL1 (DISPSYS_CONFIG_BASE + 0x814)
  1466. #define DISP_REG_CONFIG_MMSYS_MBIST_BSEL0 (DISPSYS_CONFIG_BASE + 0x820)
  1467. #define DISP_REG_CONFIG_MMSYS_MBIST_BSEL1 (DISPSYS_CONFIG_BASE + 0x824)
  1468. #define DISP_REG_CONFIG_MMSYS_MEM_DELSEL0 (DISPSYS_CONFIG_BASE + 0x830)
  1469. #define DISP_REG_CONFIG_MMSYS_MEM_DELSEL1 (DISPSYS_CONFIG_BASE + 0x834)
  1470. #define DISP_REG_CONFIG_MMSYS_MEM_DELSEL2 (DISPSYS_CONFIG_BASE + 0x838)
  1471. #define DISP_REG_CONFIG_MMSYS_MEM_DELSEL3 (DISPSYS_CONFIG_BASE + 0x83c)
  1472. #define DISP_REG_CONFIG_MMSYS_DEBUG_OUT_SEL (DISPSYS_CONFIG_BASE + 0x880)
  1473. #define DISP_REG_CONFIG_MMSYS_DUMMY (DISPSYS_CONFIG_BASE + 0x890)
  1474. #define DISP_REG_CONFIG_DISP_DL_VALID_0 (DISPSYS_CONFIG_BASE + 0x8a0)
  1475. #define DISP_REG_CONFIG_DISP_DL_READY_0 (DISPSYS_CONFIG_BASE + 0x8a4)
  1476. #define DISP_REG_CONFIG_MDP_DL_VALID_0 (DISPSYS_CONFIG_BASE + 0x8a8)
  1477. #define DISP_REG_CONFIG_MDP_DL_READY_0 (DISPSYS_CONFIG_BASE + 0x8ac)
  1478. #define DISP_REG_CONFIG_SMI_LARB0_GREQ (DISPSYS_CONFIG_BASE + 0x8d0)
  1479. #define DISP_REG_CONFIG_C08 (DISPSYS_CONFIG_BASE + 0xc08)
  1480. #define DISP_REG_CONFIG_C09 (DISPSYS_CONFIG2_BASE + 0x40) /* 0x10206040 */
  1481. #define DISP_REG_CONFIG_C10 (DISPSYS_CONFIG2_BASE + 0x44) /* 0x10206044 */
  1482. #define DISP_REG_CONFIG_C11 (DISPSYS_CONFIG3_BASE + 0x40) /* 0x10210040 */
  1483. #define DISP_REG_CONFIG_C12 (DISPSYS_CONFIG3_BASE + 0x44) /* 0x10210044 */
  1484. #define DISP_REG_CONFIG_C13 (DISPSYS_CONFIG3_BASE + 0x48) /* 0x10210048 */
  1485. #define DISP_REG_CLK_CFG_0_MM_CLK (DISPSYS_CONFIG_BASE+0x40) /* BIT31 0 */
  1486. #define DISP_REG_CLK_CFG_0_CLR (DISPSYS_CONFIG_BASE+0x48) /* BIT31 1 clear for mms */
  1487. #define DISP_REG_CLK_CFG_1_CLR (DISPSYS_CONFIG_BASE+0x58) /* bit7 1 clear for pwm */
  1488. #define DISP_REG_CLK_CFG_6_DPI (DISPSYS_CONFIG_BASE+0xA0) /* bit7 0 */
  1489. #define DISP_REG_CLK_CFG_6_CLR (DISPSYS_CONFIG_BASE+0xA8) /* bit7 1 clear for dpi */
  1490. /* #define DISP_REG_VENCPLL_CON0 0xf0209260 // bit0 1 */
  1491. #define DISP_REG_VENCPLL_CON1 (DISPSYS_VENCPLL_BASE + 0x254) /* 0x10209254 */
  1492. #define MMSYS_INTEN_FLD_MMSYS_INTEN REG_FLD(8, 0)
  1493. #define MMSYS_INSTA_FLD_MMSYS_INSTA REG_FLD(2, 0)
  1494. #define MFG_APB_TX_CON_FLD_MFG_APB_COUNTER_EN REG_FLD(1, 31)
  1495. #define MJC_APB_TX_CON_FLD_MJC_APB_COUNTER_EN REG_FLD(1, 31)
  1496. #define MMSYS_TO_MFG_TX_ERROR REG_FLD(1, 0)
  1497. #define MMSYS_TO_MJC_TX_ERROR REG_FLD(1, 1)
  1498. #define PWM0_APB_TX_ERROR REG_FLD(1, 2)
  1499. #define MFG_APB_TX_CON_FLD_MFG_APB_ERR_ADDR REG_FLD(16, 0)
  1500. #define PWM_APB_ERR_ADDR_FLD_PWM0_APB_ERR_ADDR REG_FLD(12, 0)
  1501. #define ISP_MOUT_EN_FLD_ISP_MOUT_EN REG_FLD(2, 0)
  1502. #define MDP_RDMA0_MOUT_EN_FLD_MDP_RDMA0_MOUT_EN REG_FLD(2, 0)
  1503. #define MDP_PRZ0_MOUT_EN_FLD_MDP_PRZ0_MOUT_EN REG_FLD(3, 0)
  1504. #define MDP_PRZ1_MOUT_EN_FLD_MDP_PRZ1_MOUT_EN REG_FLD(3, 0)
  1505. #define MDP_TDSHP0_MOUT_EN_FLD_MDP_TDSHP0_MOUT_EN REG_FLD(2, 0)
  1506. #define DISP_OVL0_MOUT_EN_FLD_DISP_OVL0_MOUT_EN REG_FLD(2, 0)
  1507. #define DISP_OVL1_MOUT_EN_FLD_DISP_OVL1_MOUT_EN REG_FLD(2, 0)
  1508. #define DISP_DITHER_MOUT_EN_FLD_DISP_DITHER_MOUT_EN REG_FLD(3, 0)
  1509. #define DISP_UFOE_MOUT_EN_FLD_DISP_UFOE_MOUT_EN REG_FLD(3, 0)
  1510. #define MMSYS_MOUT_RST_FLD_MMSYS_MOUT_RST REG_FLD(9, 0)
  1511. #define MDP_PRZ0_SEL_IN_FLD_MDP_PRZ0_SEL_IN REG_FLD(1, 0)
  1512. #define MDP_PRZ1_SEL_IN_FLD_MDP_PRZ1_SEL_IN REG_FLD(2, 0)
  1513. #define MDP_TDSHP0_SEL_IN_FLD_MDP_TDSHP0_SEL_IN REG_FLD(1, 0)
  1514. #define MDP_WDMA0_SEL_IN_FLD_MDP_WDMA0_SEL_IN REG_FLD(2, 0)
  1515. #define MDP_WROT0_SEL_IN_FLD_MDP_WROT0_SEL_IN REG_FLD(2, 0)
  1516. #define DISP_COLOR0_SEL_IN_FLD_DISP_COLOR0_SEL_IN REG_FLD(1, 0)
  1517. #define DISP_WDMA0_SEL_IN_FLD_DISP_WDMA0_SEL_IN REG_FLD(2, 0)
  1518. #define DISP_UFO_SEL_IN_FLD_DISP_UFO_SEL_IN REG_FLD(1, 0)
  1519. #define DSI0_SEL_IN_FLD_DSI0_SEL_IN REG_FLD(1, 0)
  1520. #define DPI0_SEL_IN_FLD_DPI0_SEL_IN REG_FLD(1, 0)
  1521. #define DISP_RDMA0_SOUT_SEL_IN_FLD_DISP_RDMA0_SOUT_SEL_IN REG_FLD(1, 0)
  1522. #define DISP_RDMA1_SOUT_SEL_IN_FLD_DISP_RDMA1_SOUT_SEL_IN REG_FLD(1, 0)
  1523. #define MMSYS_MISC_FLD_SMI_LARB0_TEST_MODE REG_FLD(1, 0)
  1524. #define MMSYS_CG_CON0_FLD_CG0 REG_FLD(32, 0)
  1525. #define MMSYS_CG_SET0_FLD_CG0 REG_FLD(32, 0)
  1526. #define MMSYS_CG_CLR0_FLD_CG0 REG_FLD(32, 0)
  1527. #define MMSYS_CG_CON1_FLD_CG1 REG_FLD(32, 0)
  1528. #define MMSYS_CG_SET1_FLD_CG1 REG_FLD(32, 0)
  1529. #define MMSYS_CG_CLR1_FLD_CG0 REG_FLD(32, 0)
  1530. #define MMSYS_HW_DCM_DIS0_FLD_DCM_DIS0 REG_FLD(32, 0)
  1531. #define MMSYS_HW_DCM_DIS_SET0_FLD_DCM_DIS0 REG_FLD(32, 0)
  1532. #define MMSYS_HW_DCM_DIS_CLR0_FLD_DCM_DIS0 REG_FLD(32, 0)
  1533. #define MMSYS_HW_DCM_DIS1_FLD_DCM_DIS1 REG_FLD(32, 0)
  1534. #define MMSYS_HW_DCM_DIS_SET0_FLD_DCM_DIS1 REG_FLD(32, 0)
  1535. #define MMSYS_HW_DCM_DIS_CLR0_FLD_DCM_DIS1 REG_FLD(32, 0)
  1536. #define MMSYS_SW0_RST_B_FLD_SW0_RST_B REG_FLD(32, 0)
  1537. #define MMSYS_SW1_RST_B_FLD_SW1_RST_B REG_FLD(32, 0)
  1538. #define MMSYS_LCM_RST_B_FLD_LCM_RST_B REG_FLD(1, 0)
  1539. #define MM_VDEC_SLICE_CFG_FLD_MM_VDEC_SLICE_CFG_WD REG_FLD(3, 0)
  1540. #define MM_VDEC_SLICE_CFG_FLD_MM_VDEC_SLICE_CFG_RD REG_FLD(4, 4)
  1541. #define SMI_N21MUX_CFG_WR_FLD_SMI_N21MUX_CFG_WR REG_FLD(32, 0)
  1542. #define SMI_N21MUX_CFG_RD_FLD_SMI_N21MUX_CFG_RD REG_FLD(32, 0)
  1543. #define ELA2GMC_BASE_ADDR_FLD_ELA2GMC_BASE_ADDR REG_FLD(32, 0)
  1544. #define ELA2GMC_BASE_ADDR_END_FLD_ELA2GMC_BASE_ADDR_END REG_FLD(32, 0)
  1545. #define ELA2GMC_FINAL_ADDR_FLD_ELA2GMC_FINAL_ADDR REG_FLD(32, 0)
  1546. #define ELA2GMC_STATUS_FLD_ELA2GMC_STATUS REG_FLD(1, 0)
  1547. #define LARB4_AXI_ASIF_CFG_WD_FLD_LARB4_AXI_ASIF_CFG_WD REG_FLD(32, 0)
  1548. #define LARB4_AXI_ASIF_CFG_RD_FLD_LARB4_AXI_ASIF_CFG_RD REG_FLD(32, 0)
  1549. #define DISP_FAKE_ENG_EN_FLD_DFE_START REG_FLD(1, 1)
  1550. #define DISP_FAKE_ENG_EN_FLD_DFE_MUX_SEL REG_FLD(1, 0)
  1551. #define DISP_FAKE_ENG_RST_FLD_DISP_FAKE_ENG_RST REG_FLD(1, 0)
  1552. #define DISP_FAKE_ENG_CON0_FLD_DFE_DRE_EN REG_FLD(1, 23)
  1553. #define DISP_FAKE_ENG_CON0_FLD_DFE_LOOP_MODE REG_FLD(1, 22)
  1554. #define DISP_FAKE_ENG_CON0_FLD_DFE_TEST_LEN REG_FLD(20, 0)
  1555. #define DISP_FAKE_ENG_CON1_FLD_DFE_WR_DIS REG_FLD(1, 11)
  1556. #define DISP_FAKE_ENG_CON1_FLD_DFE_RD_DIS REG_FLD(1, 10)
  1557. #define DISP_FAKE_ENG_CON1_FLD_DFE_SLOW_DOWN REG_FLD(10, 0)
  1558. #define DISP_FAKE_ENG_RD_ADDR_FLD_DISP_FAKE_ENG_RD_ADDR REG_FLD(32, 0)
  1559. #define DISP_FAKE_ENG_WR_ADDR_FLD_DISP_FAKE_ENG_WR_ADDR REG_FLD(32, 0)
  1560. #define DISP_FAKE_ENG_STATE_FLD_DFE_RD_ST REG_FLD(3, 12)
  1561. #define DISP_FAKE_ENG_STATE_FLD_DFE_WR_ST REG_FLD(4, 8)
  1562. #define DISP_FAKE_ENG_STATE_FLD_DFE_BUSY REG_FLD(1, 0)
  1563. #define MMSYS_MBIST_CON_FLD_MMSYS_MBIST_BACKGROUND REG_FLD(3, 16)
  1564. #define MMSYS_MBIST_CON_FLD_MMSYS_MBIST_RSTB REG_FLD(1, 15)
  1565. #define MMSYS_MBIST_CON_FLD_MMSYS_MBIST_SCANOUT_SEL REG_FLD(4, 8)
  1566. #define MMSYS_MBIST_CON_FLD_MMSYS_MBIST_DEBUG REG_FLD(1, 7)
  1567. #define MMSYS_MBIST_CON_FLD_MMSYS_MBIST_FAILOUT_SEL REG_FLD(6, 0)
  1568. #define MMSYS_MBIST_DONE_FLD_MMSYS_MBIST_DONE REG_FLD(14, 0)
  1569. #define MMSYS_MBIST_HOLDB_FLD_MMSYS_MBIST_HOLDB REG_FLD(14, 0)
  1570. #define MMSYS_MBIST_MODE_FLD_MMSYS_MBIST_MODE REG_FLD(14, 0)
  1571. #define MMSYS_MBIST_FAIL0_FLD_MMSYS_MBIST_FAIL0 REG_FLD(32, 0)
  1572. #define MMSYS_MBIST_FAIL1_FLD_MMSYS_MBIST_FAIL1 REG_FLD(32, 0)
  1573. #define MMSYS_MBIST_FAIL2_FLD_MMSYS_MBIST_FAIL2 REG_FLD(24, 0)
  1574. #define MMSYS_MBIST_BSEL0_FLD_MDP_TDSHP_MBIST_BSEL REG_FLD(16, 0)
  1575. #define MMSYS_MBIST_BSEL0_FLD_MDP_RDMA_MBIST_BSEL REG_FLD(8, 16)
  1576. #define MMSYS_MBIST_BSEL0_FLD_MDP_WROT_MBIST_BSEL REG_FLD(8, 24)
  1577. #define MMSYS_MBIST_BSEL1_FLD_MDP_RSZ0_MBIST_BSEL REG_FLD(12, 0)
  1578. #define MMSYS_MBIST_BSEL1_FLD_MDP_RSZ1_MBIST_BSEL REG_FLD(12, 12)
  1579. #define MMSYS_MBIST_BSEL1_FLD_DISP_UFOE_MBIST_BSEL REG_FLD(6, 24)
  1580. #define MMSYS_MEM_DELSEL0_FLD_MDP_RSZ_MEM_DELSEL REG_FLD(16, 0)
  1581. #define MMSYS_MEM_DELSEL0_FLD_MDP_RDMA_MEM_DELSEL REG_FLD(14, 16)
  1582. #define MMSYS_MEM_DELSEL1_FLD_MDP_WROT_MEM_DELSEL REG_FLD(22, 0)
  1583. #define MMSYS_MEM_DELSEL1_FLD_MDP_WDMA_MEM_DELSEL REG_FLD(6, 22)
  1584. #define MMSYS_MEM_DELSEL1_FLD_MDP_TDSHP_MEM_DELSEL REG_FLD(4, 28)
  1585. #define MMSYS_MEM_DELSEL2_FLD_DISP_OVL_MEM_DELSEL REG_FLD(4, 0)
  1586. #define MMSYS_MEM_DELSEL2_FLD_DISP_RDMA_MEM_DELSEL REG_FLD(4, 4)
  1587. #define MMSYS_MEM_DELSEL2_FLD_DISP_WDMA_MEM_DELSEL REG_FLD(6, 8)
  1588. #define MMSYS_MEM_DELSEL2_FLD_DISP_GAMM_MEM_DELSEL REG_FLD(4, 14)
  1589. #define MMSYS_MEM_DELSEL2_FLD_DISP_UFOE_MEM_DELSEL REG_FLD(12, 18)
  1590. #define MMSYS_MEM_DELSEL3_FLD_DSI_MEM_DELSEL REG_FLD(4, 0)
  1591. #define MMSYS_DEBUG_OUT_SEL_FLD_MMSYS_DEBUG_OUT_SEL REG_FLD(5, 0)
  1592. #define MMSYS_DUMMY0_FLD_MMSYS_DUMMY0 REG_FLD(32, 0)
  1593. #define MMSYS_DUMMY1_FLD_MMSYS_DUMMY1 REG_FLD(32, 0)
  1594. #define MMSYS_DUMMY2_FLD_MMSYS_DUMMY2 REG_FLD(32, 0)
  1595. #define MMSYS_DUMMY3_FLD_MMSYS_DUMMY3 REG_FLD(32, 0)
  1596. #define DISP_DL_VALID_0_FLD_DISP_DL_VALID_0 REG_FLD(32, 0)
  1597. #define DISP_DL_READY_0_FLD_DISP_DL_READY_0 REG_FLD(32, 0)
  1598. #define MDP_DL_VALID_0_FLD_MDP_DL_VALID_0 REG_FLD(32, 0)
  1599. #define MDP_DL_READY_0_FLD_MDP_DL_READY_0 REG_FLD(32, 0)
  1600. #define SMI_LARB0_GREQ_FLD_SMI_LARB0_GREQ REG_FLD(14, 0)
  1601. /* ------------------------------------------------------------- */
  1602. /* SMI_LARB */
  1603. #define DISP_REG_SMI_LARB_MMU_EN (DISPSYS_SMI_LARB0_BASE+0xfc0)
  1604. /* ------------------------------------------------------------- */
  1605. /* DSI */
  1606. #define DISP_REG_DSI_STATE (DISPSYS_DSI0_BASE + 0x004)
  1607. /* ------------------------------------------------------------- */
  1608. /* DPI */
  1609. #define DISP_REG_DPI_EN (DISPSYS_DPI_BASE + 0x000)
  1610. #define DISP_REG_DPI_RST (DISPSYS_DPI_BASE + 0x004)
  1611. #define DISP_REG_DPI_INTEN (DISPSYS_DPI_BASE + 0x008)
  1612. #define DISP_REG_DPI_INSTA (DISPSYS_DPI_BASE + 0x00C)
  1613. #define DISP_REG_DPI_CON (DISPSYS_DPI_BASE + 0x010)
  1614. #define DISP_REG_DPI_OUTPUT_SETTING (DISPSYS_DPI_BASE + 0x014)
  1615. #define DISP_REG_DPI_SIZE (DISPSYS_DPI_BASE + 0x018)
  1616. #define DISP_REG_DPI_DDR_SETTING (DISPSYS_DPI_BASE + 0x01c)
  1617. #define DISP_REG_DPI_TGEN_HWIDTH (DISPSYS_DPI_BASE + 0x020)
  1618. #define DISP_REG_DPI_TGEN_HPORCH (DISPSYS_DPI_BASE + 0x024)
  1619. #define DISP_REG_DPI_TGEN_VWIDTH (DISPSYS_DPI_BASE + 0x028)
  1620. #define DISP_REG_DPI_TGEN_VPORCH (DISPSYS_DPI_BASE + 0x02C)
  1621. #define DISP_REG_DPI_BG_HCNTL (DISPSYS_DPI_BASE + 0x030)
  1622. #define DISP_REG_DPI_BG_VCNTL (DISPSYS_DPI_BASE + 0x034)
  1623. #define DISP_REG_DPI_BG_COLOR (DISPSYS_DPI_BASE + 0x038)
  1624. #define DISP_REG_DPI_FIFO_CTL (DISPSYS_DPI_BASE + 0x03C)
  1625. #define DISP_REG_DPI_STATUS (DISPSYS_DPI_BASE + 0x040)
  1626. #define DISP_REG_DPI_TMODE (DISPSYS_DPI_BASE + 0x044)
  1627. #define DISP_REG_DPI_CHKSUM (DISPSYS_DPI_BASE + 0x048)
  1628. #define DISP_REG_DPI_DUMMY (DISPSYS_DPI_BASE + 0x050)
  1629. #define DISP_REG_DPI_TGEN_VWIDTH_LEVEN (DISPSYS_DPI_BASE + 0x068)
  1630. #define DISP_REG_DPI_TGEN_VPORCH_LEVEN (DISPSYS_DPI_BASE + 0x06c)
  1631. #define DISP_REG_DPI_TGEN_VWIDTH_RODD (DISPSYS_DPI_BASE + 0x070)
  1632. #define DISP_REG_DPI_TGEN_VPORCH_RODD (DISPSYS_DPI_BASE + 0x074)
  1633. #define DISP_REG_DPI_TGEN_VWIDTH_REVEN (DISPSYS_DPI_BASE + 0x078)
  1634. #define DISP_REG_DPI_TGEN_VPORCH_REVEN (DISPSYS_DPI_BASE + 0x07c)
  1635. #define DISP_REG_DPI_ESAV_VTIM_LODD (DISPSYS_DPI_BASE + 0x080)
  1636. #define DISP_REG_DPI_ESAV_VTIM_LEVEN (DISPSYS_DPI_BASE + 0x084)
  1637. #define DISP_REG_DPI_ESAV_VTIM_RODD (DISPSYS_DPI_BASE + 0x088)
  1638. #define DISP_REG_DPI_ESAV_VTIM_REVEN (DISPSYS_DPI_BASE + 0x08C)
  1639. #define DISP_REG_DPI_ESAV_FTIM (DISPSYS_DPI_BASE + 0x090)
  1640. #define DISP_REG_DPI_CLPF_SETTING (DISPSYS_DPI_BASE + 0x094)
  1641. #define DISP_REG_DPI_Y_LIMIT (DISPSYS_DPI_BASE + 0x098)
  1642. #define DISP_REG_DPI_C_LIMIT (DISPSYS_DPI_BASE + 0x09C)
  1643. #define DISP_REG_DPI_YUV422_SETTING (DISPSYS_DPI_BASE + 0x0A0)
  1644. #define DISP_REG_DPI_EMBSYNC_SETTING (DISPSYS_DPI_BASE + 0x0A4)
  1645. #define DISP_REG_DPI_ESAV_CODE_SET0 (DISPSYS_DPI_BASE + 0x0A8)
  1646. #define DISP_REG_DPI_ESAV_CODE_SET1 (DISPSYS_DPI_BASE + 0x0AC)
  1647. #define EN_FLD_EN REG_FLD(1, 0)
  1648. #define RST_FLD_RST REG_FLD(1, 0)
  1649. #define INTEN_FLD_INT_UNDERFLOW_EN REG_FLD(1, 2)
  1650. #define INTEN_FLD_INT_VDE_EN REG_FLD(1, 1)
  1651. #define INTEN_FLD_INT_VSYNC_EN REG_FLD(1, 0)
  1652. #define INSTA_FLD_INTSTA_UNDERFLOW_EN REG_FLD(1, 2)
  1653. #define INSTA_FLD_INTSTA_VDE_EN REG_FLD(1, 1)
  1654. #define INSTA_FLD_INTSTA_VSYNC_EN REG_FLD(1, 0)
  1655. #define CON_FLD_IN_RB_SWAP REG_FLD(1, 1)
  1656. #define CON_FLD_BG_ENABLE REG_FLD(1, 0)
  1657. #define OUTPUT_SETTING_FLD_EDGE_SEL REG_FLD(1, 17)
  1658. #define OUTPUT_SETTING_FLD_OEN_OFF REG_FLD(1, 16)
  1659. #define OUTPUT_SETTING_FLD_CK_POL REG_FLD(1, 15)
  1660. #define OUTPUT_SETTING_FLD_VSYNC_POL REG_FLD(1, 14)
  1661. #define OUTPUT_SETTING_FLD_HSYNC_POL REG_FLD(1, 13)
  1662. #define OUTPUT_SETTING_FLD_DE_POL REG_FLD(1, 12)
  1663. #define OUTPUT_SETTING_FLD_VS_MASK REG_FLD(1, 10)
  1664. #define OUTPUT_SETTING_FLD_HS_MASK REG_FLD(1, 9)
  1665. #define OUTPUT_SETTING_FLD_DE_MASK REG_FLD(1, 8)
  1666. #define OUTPUT_SETTING_FLD_R_MASK REG_FLD(1, 6)
  1667. #define OUTPUT_SETTING_FLD_G_MASK REG_FLD(1, 5)
  1668. #define OUTPUT_SETTING_FLD_B_MASK REG_FLD(1, 4)
  1669. #define OUTPUT_SETTING_FLD_BIT_SWAP REG_FLD(1, 3)
  1670. #define OUTPUT_SETTING_FLD_CH_SWAP REG_FLD(3, 0)
  1671. #define DPI_SIZE_FLD_HSIZE REG_FLD(11, 16)
  1672. #define DPI_SIZE_FLD_VSIZE REG_FLD(11, 0)
  1673. #define TGEN_HWIDTH_FLD_HPW REG_FLD(12, 0)
  1674. #define TGEN_HPORCH_FLD_HFP REG_FLD(12, 16)
  1675. #define TGEN_HPORCH_FLD_HBP REG_FLD(12, 0)
  1676. #define TGEN_VWIDTH_FLD_VPW REG_FLD(8, 0)
  1677. #define TGEN_VPORCH_FLD_VFP REG_FLD(8, 16)
  1678. #define TGEN_VPORCH_FLD_VBP REG_FLD(8, 0)
  1679. #define BG_HCNTL_FLD_BG_LEFT REG_FLD(11, 16)
  1680. #define BG_HCNTL_FLD_BG_RIGHT REG_FLD(11, 0)
  1681. #define BG_VCNTL_FLD_BG_TOP REG_FLD(11, 16)
  1682. #define BG_VCNTL_FLD_BG_BOT REG_FLD(11, 0)
  1683. #define BG_COLOR_FLD_BG_R REG_FLD(8, 16)
  1684. #define BG_COLOR_FLD_BG_G REG_FLD(8, 8)
  1685. #define BG_COLOR_FLD_BG_B REG_FLD(8, 0)
  1686. #define FIFO_CTL_FLD_FIFO_RST_SEL REG_FLD(1, 8)
  1687. #define FIFO_CTL_FLD_FIFO_VALID_SET REG_FLD(5, 0)
  1688. #define STATUS_FLD_OUTEN REG_FLD(1, 17)
  1689. #define STATUS_FLD_DPI_BUSY REG_FLD(1, 16)
  1690. #define STATUS_FLD_V_COUNTER REG_FLD(13, 0)
  1691. #define TMODE_FLD_DPI_OEN_ON REG_FLD(1, 0)
  1692. #define CHKSUM_FLD_DPI_CHKSUM_EN REG_FLD(1, 31)
  1693. #define CHKSUM_FLD_DPI_CHKSUM_READY REG_FLD(1, 30)
  1694. #define CHKSUM_FLD_DPI_CHKSUM REG_FLD(24, 0)
  1695. #define PATTERN_FLD_PAT_R_MAN REG_FLD(8, 24)
  1696. #define PATTERN_FLD_PAT_G_MAN REG_FLD(8, 16)
  1697. #define PATTERN_FLD_PAT_B_MAN REG_FLD(8, 8)
  1698. #define PATTERN_FLD_PAT_SEL REG_FLD(3, 4)
  1699. #define PATTERN_FLD_PAT_EN REG_FLD(1, 0)
  1700. /* CCORR */
  1701. #define DISP_REG_CCORR_EN (DISPSYS_CCORR_BASE + 0x000)
  1702. #define DISP_REG_CCORR_RESET (DISPSYS_CCORR_BASE + 0x004)
  1703. #define DISP_REG_CCORR_INTEN (DISPSYS_CCORR_BASE + 0x008)
  1704. #define DISP_REG_CCORR_INTSTA (DISPSYS_CCORR_BASE + 0x00c)
  1705. #define DISP_REG_CCORR_STATUS (DISPSYS_CCORR_BASE + 0x010)
  1706. #define DISP_REG_CCORR_CFG (DISPSYS_CCORR_BASE + 0x020)
  1707. #define DISP_REG_CCORR_IN_CNT (DISPSYS_CCORR_BASE + 0x024)
  1708. #define DISP_REG_CCORR_OUT_CNT (DISPSYS_CCORR_BASE + 0x028)
  1709. #define DISP_REG_CCORR_CHKSUM (DISPSYS_CCORR_BASE + 0x02c)
  1710. #define DISP_REG_CCORR_SIZE (DISPSYS_CCORR_BASE + 0x030)
  1711. #define DISP_REG_CCORR_COEF_0 (DISPSYS_CCORR_BASE + 0x080)
  1712. #define DISP_REG_CCORR_DUMMY_REG (DISPSYS_CCORR_BASE + 0x0c0)
  1713. #define CCORR_SIZE_FLD_HSIZE REG_FLD(13, 16)
  1714. #define CCORR_SIZE_FLD_VSIZE REG_FLD(13, 0)
  1715. #define CCORR_CFG_FLD_CHKSUM_SEL REG_FLD(3, 29)
  1716. #define CCORR_CFG_FLD_CHKSUM_EN REG_FLD(1, 28)
  1717. #define CCORR_CFG_FLD_CCORR_GAMMA_OFF REG_FLD(1, 2)
  1718. #define CCORR_CFG_FLD_CCORR_ENGINE_EN REG_FLD(1, 1)
  1719. /* ------------------------------------------------------------- */
  1720. /* GAMMA */
  1721. #define DISP_REG_GAMMA_EN (DISPSYS_GAMMA_BASE + 0x000)
  1722. #define DISP_REG_GAMMA_RESET (DISPSYS_GAMMA_BASE + 0x004)
  1723. #define DISP_REG_GAMMA_INTEN (DISPSYS_GAMMA_BASE + 0x008)
  1724. #define DISP_REG_GAMMA_INTSTA (DISPSYS_GAMMA_BASE + 0x00c)
  1725. #define DISP_REG_GAMMA_STATUS (DISPSYS_GAMMA_BASE + 0x010)
  1726. #define DISP_REG_GAMMA_CFG (DISPSYS_GAMMA_BASE + 0x020)
  1727. #define DISP_REG_GAMMA_INPUT_COUNT (DISPSYS_GAMMA_BASE + 0x024)
  1728. #define DISP_REG_GAMMA_OUTPUT_COUNT (DISPSYS_GAMMA_BASE + 0x028)
  1729. #define DISP_REG_GAMMA_CHKSUM (DISPSYS_GAMMA_BASE + 0x02c)
  1730. #define DISP_REG_GAMMA_SIZE (DISPSYS_GAMMA_BASE + 0x030)
  1731. #define DISP_REG_GAMMA_DUMMY_REG (DISPSYS_GAMMA_BASE + 0x0c0)
  1732. #define DISP_REG_GAMMA_LUT (DISPSYS_GAMMA_BASE + 0x700)
  1733. #define EN_FLD_GAMMA_EN REG_FLD(1, 0)
  1734. #define RESET_FLD_GAMMA_RESET REG_FLD(1, 0)
  1735. #define INTEN_FLD_OF_END_INT_EN REG_FLD(1, 1)
  1736. #define INTEN_FLD_IF_END_INT_EN REG_FLD(1, 0)
  1737. #define INTSTA_FLD_OF_END_INT REG_FLD(1, 1)
  1738. #define INTSTA_FLD_IF_END_INT REG_FLD(1, 0)
  1739. #define STATUS_FLD_IN_VALID REG_FLD(1, 7)
  1740. #define STATUS_FLD_IN_READY REG_FLD(1, 6)
  1741. #define STATUS_FLD_OUT_VALID REG_FLD(1, 5)
  1742. #define STATUS_FLD_OUT_READY REG_FLD(1, 4)
  1743. #define STATUS_FLD_OF_UNFINISH REG_FLD(1, 1)
  1744. #define STATUS_FLD_IF_UNFINISH REG_FLD(1, 0)
  1745. #define CFG_FLD_CHKSUM_SEL REG_FLD(2, 29)
  1746. #define CFG_FLD_CHKSUM_EN REG_FLD(1, 28)
  1747. #define CFG_FLD_CCORR_GAMMA_OFF REG_FLD(1, 5)
  1748. #define CFG_FLD_CCORR_EN REG_FLD(1, 4)
  1749. #define CFG_FLD_DITHER_EN REG_FLD(1, 2)
  1750. #define CFG_FLD_GAMMA_LUT_EN REG_FLD(1, 1)
  1751. #define CFG_FLD_RELAY_MODE REG_FLD(1, 0)
  1752. #define INPUT_COUNT_FLD_INP_LINE_CNT REG_FLD(13, 16)
  1753. #define INPUT_COUNT_FLD_INP_PIX_CNT REG_FLD(13, 0)
  1754. #define OUTPUT_COUNT_FLD_OUTP_LINE_CNT REG_FLD(13, 16)
  1755. #define OUTPUT_COUNT_FLD_OUTP_PIX_CNT REG_FLD(13, 0)
  1756. #define CHKSUM_FLD_CHKSUM REG_FLD(30, 0)
  1757. #define SIZE_FLD_HSIZE REG_FLD(13, 16)
  1758. #define SIZE_FLD_VSIZE REG_FLD(13, 0)
  1759. #define CCORR_0_FLD_CCORR_C00 REG_FLD(12, 16)
  1760. #define CCORR_0_FLD_CCORR_C01 REG_FLD(12, 0)
  1761. #define CCORR_1_FLD_CCORR_C02 REG_FLD(12, 16)
  1762. #define CCORR_1_FLD_CCORR_C10 REG_FLD(12, 0)
  1763. #define CCORR_2_FLD_CCORR_C11 REG_FLD(12, 16)
  1764. #define CCORR_2_FLD_CCORR_C12 REG_FLD(12, 0)
  1765. #define CCORR_3_FLD_CCORR_C20 REG_FLD(12, 16)
  1766. #define CCORR_3_FLD_CCORR_C21 REG_FLD(12, 0)
  1767. #define CCORR_4_FLD_CCORR_C22 REG_FLD(12, 16)
  1768. #define DUMMY_REG_FLD_DUMMY_REG REG_FLD(32, 0)
  1769. #define DITHER_0_FLD_CRC_CLR REG_FLD(1, 24)
  1770. #define DITHER_0_FLD_CRC_START REG_FLD(1, 20)
  1771. #define DITHER_0_FLD_CRC_CEN REG_FLD(1, 16)
  1772. #define DITHER_0_FLD_FRAME_DONE_DEL REG_FLD(8, 8)
  1773. #define DITHER_0_FLD_OUT_SEL REG_FLD(1, 4)
  1774. #define DITHER_5_FLD_W_DEMO REG_FLD(16, 0)
  1775. #define DITHER_6_FLD_WRAP_MODE REG_FLD(1, 16)
  1776. #define DITHER_6_FLD_LEFT_EN REG_FLD(2, 14)
  1777. #define DITHER_6_FLD_FPHASE_R REG_FLD(1, 13)
  1778. #define DITHER_6_FLD_FPHASE_EN REG_FLD(1, 12)
  1779. #define DITHER_6_FLD_FPHASE REG_FLD(6, 4)
  1780. #define DITHER_6_FLD_ROUND_EN REG_FLD(1, 3)
  1781. #define DITHER_6_FLD_RDITHER_EN REG_FLD(1, 2)
  1782. #define DITHER_6_FLD_LFSR_EN REG_FLD(1, 1)
  1783. #define DITHER_6_FLD_EDITHER_EN REG_FLD(1, 0)
  1784. #define DITHER_7_FLD_DRMOD_B REG_FLD(2, 8)
  1785. #define DITHER_7_FLD_DRMOD_G REG_FLD(2, 4)
  1786. #define DITHER_7_FLD_DRMOD_R REG_FLD(2, 0)
  1787. #define GAMMA_DITHER_8_FLD_INK_DATA_R REG_FLD(12, 16)
  1788. #define DITHER_8_FLD_INK REG_FLD(1, 0)
  1789. #define GAMMA_DITHER_9_FLD_INK_DATA_B REG_FLD(12, 16)
  1790. #define GAMMA_DITHER_9_FLD_INK_DATA_G REG_FLD(12, 0)
  1791. #define DITHER_10_FLD_FPHASE_BIT REG_FLD(3, 8)
  1792. #define DITHER_10_FLD_FPHASE_SEL REG_FLD(2, 4)
  1793. #define DITHER_10_FLD_FPHASE_CTRL REG_FLD(2, 0)
  1794. #define DITHER_11_FLD_SUB_B REG_FLD(2, 12)
  1795. #define DITHER_11_FLD_SUB_G REG_FLD(2, 8)
  1796. #define DITHER_11_FLD_SUB_R REG_FLD(2, 4)
  1797. #define DITHER_11_FLD_SUBPIX_EN REG_FLD(1, 0)
  1798. #define DITHER_12_FLD_H_ACTIVE REG_FLD(16, 16)
  1799. #define DITHER_12_FLD_TABLE_EN REG_FLD(2, 4)
  1800. #define DITHER_12_FLD_LSB_OFF REG_FLD(1, 0)
  1801. #define DITHER_13_FLD_RSHIFT_B REG_FLD(3, 8)
  1802. #define DITHER_13_FLD_RSHIFT_G REG_FLD(3, 4)
  1803. #define DITHER_13_FLD_RSHIFT_R REG_FLD(3, 0)
  1804. #define DITHER_14_FLD_DEBUG_MODE REG_FLD(2, 8)
  1805. #define DITHER_14_FLD_DIFF_SHIFT REG_FLD(3, 4)
  1806. #define DITHER_14_FLD_TESTPIN_EN REG_FLD(1, 0)
  1807. #define DITHER_15_FLD_LSB_ERR_SHIFT_R REG_FLD(3, 28)
  1808. #define DITHER_15_FLD_LSB_OVFLW_BIT_R REG_FLD(3, 24)
  1809. #define DITHER_15_FLD_LSB_ADD_LSHIFT_R REG_FLD(3, 20)
  1810. #define DITHER_15_FLD_LSB_INPUT_RSHIFT_R REG_FLD(3, 16)
  1811. #define DITHER_15_FLD_LSB_NEW_BIT_MODE REG_FLD(1, 0)
  1812. #define DITHER_16_FLD_LSB_ERR_SHIFT_B REG_FLD(3, 28)
  1813. #define DITHER_16_FLD_OVFLW_BIT_B REG_FLD(3, 24)
  1814. #define DITHER_16_FLD_ADD_LSHIFT_B REG_FLD(3, 20)
  1815. #define DITHER_16_FLD_INPUT_RSHIFT_B REG_FLD(3, 16)
  1816. #define DITHER_16_FLD_LSB_ERR_SHIFT_G REG_FLD(3, 12)
  1817. #define DITHER_16_FLD_OVFLW_BIT_G REG_FLD(3, 8)
  1818. #define DITHER_16_FLD_ADD_LSHIFT_G REG_FLD(3, 4)
  1819. #define DITHER_16_FLD_INPUT_RSHIFT_G REG_FLD(3, 0)
  1820. #define DITHER_17_FLD_CRC_RDY REG_FLD(1, 16)
  1821. #define DITHER_17_FLD_CRC_OUT REG_FLD(16, 0)
  1822. #define LUT_FLD_GAMMA_LUT_R REG_FLD(10, 20)
  1823. #define LUT_FLD_GAMMA_LUT_G REG_FLD(10, 10)
  1824. #define LUT_FLD_GAMMA_LUT_B REG_FLD(10, 0)
  1825. /* ------------------------------------------------------------- */
  1826. /* Dither */
  1827. #define DISP_REG_DITHER_EN (DISPSYS_DITHER_BASE + 0x000)
  1828. #define DISP_REG_DITHER_RESET (DISPSYS_DITHER_BASE + 0x004)
  1829. #define DISP_REG_DITHER_INTEN (DISPSYS_DITHER_BASE + 0x008)
  1830. #define DISP_REG_DITHER_INTSTA (DISPSYS_DITHER_BASE + 0x00c)
  1831. #define DISP_REG_DITHER_STATUS (DISPSYS_DITHER_BASE + 0x010)
  1832. #define DISP_REG_DITHER_CFG (DISPSYS_DITHER_BASE + 0x020)
  1833. #define DISP_REG_DITHER_IN_CNT (DISPSYS_DITHER_BASE + 0x024)
  1834. #define DISP_REG_DITHER_OUT_CNT (DISPSYS_DITHER_BASE + 0x028)
  1835. #define DISP_REG_DITHER_CHKSUM (DISPSYS_DITHER_BASE + 0x02c)
  1836. #define DISP_REG_DITHER_SIZE (DISPSYS_DITHER_BASE + 0x030)
  1837. #define DISP_REG_DITHER_DUMMY_REG (DISPSYS_DITHER_BASE + 0x0c0)
  1838. #define DISP_REG_DITHER_0 (DISPSYS_DITHER_BASE + 0x100)
  1839. #define DISP_REG_DITHER_5 (DISPSYS_DITHER_BASE + 0x114)
  1840. #define DISP_REG_DITHER_6 (DISPSYS_DITHER_BASE + 0x118)
  1841. #define DISP_REG_DITHER_7 (DISPSYS_DITHER_BASE + 0x11c)
  1842. #define DISP_REG_DITHER_8 (DISPSYS_DITHER_BASE + 0x120)
  1843. #define DISP_REG_DITHER_9 (DISPSYS_DITHER_BASE + 0x124)
  1844. #define DISP_REG_DITHER_10 (DISPSYS_DITHER_BASE + 0x128)
  1845. #define DISP_REG_DITHER_11 (DISPSYS_DITHER_BASE + 0x12c)
  1846. #define DISP_REG_DITHER_12 (DISPSYS_DITHER_BASE + 0x130)
  1847. #define DISP_REG_DITHER_13 (DISPSYS_DITHER_BASE + 0x134)
  1848. #define DISP_REG_DITHER_14 (DISPSYS_DITHER_BASE + 0x138)
  1849. #define DISP_REG_DITHER_15 (DISPSYS_DITHER_BASE + 0x13c)
  1850. #define DISP_REG_DITHER_16 (DISPSYS_DITHER_BASE + 0x140)
  1851. #define DISP_REG_DITHER_17 (DISPSYS_DITHER_BASE + 0x144)
  1852. #define DITHER_CFG_FLD_CHKSUM_SEL REG_FLD(2, 29)
  1853. #define DITHER_CFG_FLD_CHKSUM_EN REG_FLD(1, 28)
  1854. #define DITHER_CFG_FLD_DITHER_ENGINE_EN REG_FLD(1, 1)
  1855. #define DITHER_CFG_FLD_RELAY_MODE REG_FLD(1, 0)
  1856. #define DITHER_SIZE_FLD_HSIZE REG_FLD(13, 16)
  1857. #define DITHER_SIZE_FLD_VSIZE REG_FLD(13, 0)
  1858. /* ------------------------------------------------------------- */
  1859. /* MERGE */
  1860. #define DISP_REG_MERGE_ENABLE (DISPSYS_MERGE_BASE + 0x000)
  1861. #define DISP_REG_MERGE_SW_RESET (DISPSYS_MERGE_BASE + 0x004)
  1862. #define DISP_REG_MERGE_DEBUG (DISPSYS_MERGE_BASE + 0x008)
  1863. #define ENABLE_FLD_MERGE_EN REG_FLD(1, 0)
  1864. #define SW_RESET_FLD_MERGE_SW_RST REG_FLD(1, 0)
  1865. #define DEBUG_FLD_MERGE_FSM REG_FLD(3, 29)
  1866. #define DEBUG_FLD_OUT_PIXEL_CNT REG_FLD(24, 0)
  1867. /* ------------------------------------------------------------- */
  1868. /* MUTEX */
  1869. #define DISP_OVL_SEPARATE_MUTEX_ID (DISP_MUTEX_DDP_LAST+1) /* other disp will not see mutex 4 */
  1870. #define DISP_REG_CONFIG_MUTEX_INTEN (DISPSYS_MUTEX_BASE + 0x000)
  1871. #define DISP_REG_CONFIG_MUTEX_INTSTA (DISPSYS_MUTEX_BASE + 0x004)
  1872. #define DISP_REG_CONFIG_MUTEX_HW_DCM (DISPSYS_MUTEX_BASE + 0x008)
  1873. #define DISP_REG_CONFIG_MUTEX0_EN (DISPSYS_MUTEX_BASE + 0x020)
  1874. #define DISP_REG_CONFIG_MUTEX0_RST (DISPSYS_MUTEX_BASE + 0x028)
  1875. #define DISP_REG_CONFIG_MUTEX0_MOD (DISPSYS_MUTEX_BASE + 0x02C)
  1876. #define DISP_REG_CONFIG_MUTEX0_SOF (DISPSYS_MUTEX_BASE + 0x030)
  1877. #define DISP_REG_CONFIG_MUTEX1_EN (DISPSYS_MUTEX_BASE + 0x040)
  1878. #define DISP_REG_CONFIG_MUTEX1_RST (DISPSYS_MUTEX_BASE + 0x048)
  1879. #define DISP_REG_CONFIG_MUTEX1_MOD (DISPSYS_MUTEX_BASE + 0x04C)
  1880. #define DISP_REG_CONFIG_MUTEX1_SOF (DISPSYS_MUTEX_BASE + 0x050)
  1881. #define DISP_REG_CONFIG_MUTEX2_EN (DISPSYS_MUTEX_BASE + 0x060)
  1882. #define DISP_REG_CONFIG_MUTEX2_RST (DISPSYS_MUTEX_BASE + 0x068)
  1883. #define DISP_REG_CONFIG_MUTEX2_MOD (DISPSYS_MUTEX_BASE + 0x06C)
  1884. #define DISP_REG_CONFIG_MUTEX2_SOF (DISPSYS_MUTEX_BASE + 0x070)
  1885. #define DISP_REG_CONFIG_MUTEX3_EN (DISPSYS_MUTEX_BASE + 0x080)
  1886. #define DISP_REG_CONFIG_MUTEX3_RST (DISPSYS_MUTEX_BASE + 0x088)
  1887. #define DISP_REG_CONFIG_MUTEX3_MOD (DISPSYS_MUTEX_BASE + 0x08C)
  1888. #define DISP_REG_CONFIG_MUTEX3_SOF (DISPSYS_MUTEX_BASE + 0x090)
  1889. #define DISP_REG_CONFIG_MUTEX4_EN (DISPSYS_MUTEX_BASE + 0x0A0)
  1890. #define DISP_REG_CONFIG_MUTEX4_RST (DISPSYS_MUTEX_BASE + 0x0A8)
  1891. #define DISP_REG_CONFIG_MUTEX4_MOD (DISPSYS_MUTEX_BASE + 0x0AC)
  1892. #define DISP_REG_CONFIG_MUTEX4_SOF (DISPSYS_MUTEX_BASE + 0x0B0)
  1893. #define DISP_REG_CONFIG_MUTEX5_EN (DISPSYS_MUTEX_BASE + 0x0C0)
  1894. #define DISP_REG_CONFIG_MUTEX5_RST (DISPSYS_MUTEX_BASE + 0x0C8)
  1895. #define DISP_REG_CONFIG_MUTEX5_MOD (DISPSYS_MUTEX_BASE + 0x0CC)
  1896. #define DISP_REG_CONFIG_MUTEX5_SOF (DISPSYS_MUTEX_BASE + 0x0D0)
  1897. #define DISP_REG_CONFIG_DEBUG_OUT_SEL (DISPSYS_MUTEX_BASE + 0x200)
  1898. #define DISP_REG_CONFIG_MUTEX_EN(n) (DISP_REG_CONFIG_MUTEX0_EN + (0x20 * n))
  1899. #define DISP_REG_CONFIG_MUTEX_RST(n) (DISP_REG_CONFIG_MUTEX0_RST + (0x20 * n))
  1900. #define DISP_REG_CONFIG_MUTEX_MOD(n) (DISP_REG_CONFIG_MUTEX0_MOD + (0x20 * n))
  1901. #define DISP_REG_CONFIG_MUTEX_SOF(n) (DISP_REG_CONFIG_MUTEX0_SOF + (0x20 * n))
  1902. #define INTEN_FLD_MUTEX_INTEN REG_FLD(12, 0)
  1903. #define INTSTA_FLD_MUTEX_INTSTA REG_FLD(12, 0)
  1904. #define EN_FLD_MUTEX0_EN REG_FLD(1, 0)
  1905. #define RST_FLD_MUTEX0_RST REG_FLD(1, 0)
  1906. #define MOD_FLD_MUTEX0_MOD REG_FLD(26, 0)
  1907. #define SOF_FLD_MUTEX0_SOF_TIMING REG_FLD(1, 3)
  1908. #define SOF_FLD_MUTEX0_SOF REG_FLD(3, 0)
  1909. #define EN_FLD_MUTEX1_EN REG_FLD(1, 0)
  1910. #define RST_FLD_MUTEX1_RST REG_FLD(1, 0)
  1911. #define MOD_FLD_MUTEX0_MOD REG_FLD(26, 0)
  1912. #define SOF_FLD_MUTEX1_SOF_TIMING REG_FLD(1, 3)
  1913. #define SOF_FLD_MUTEX1_SOF REG_FLD(3, 0)
  1914. #define EN_FLD_MUTEX2_EN REG_FLD(1, 0)
  1915. #define RST_FLD_MUTEX2_RST REG_FLD(1, 0)
  1916. #define MOD_FLD_MUTEX0_MOD REG_FLD(26, 0)
  1917. #define SOF_FLD_MUTEX2_SOF_TIMING REG_FLD(1, 3)
  1918. #define SOF_FLD_MUTEX2_SOF REG_FLD(3, 0)
  1919. #define EN_FLD_MUTEX3_EN REG_FLD(1, 0)
  1920. #define RST_FLD_MUTEX3_RST REG_FLD(1, 0)
  1921. #define MOD_FLD_MUTEX0_MOD REG_FLD(26, 0)
  1922. #define SOF_FLD_MUTEX3_SOF_TIMING REG_FLD(1, 3)
  1923. #define SOF_FLD_MUTEX3_SOF REG_FLD(3, 0)
  1924. #define EN_FLD_MUTEX4_EN REG_FLD(1, 0)
  1925. #define RST_FLD_MUTEX4_RST REG_FLD(1, 0)
  1926. #define MOD_FLD_MUTEX0_MOD REG_FLD(26, 0)
  1927. #define SOF_FLD_MUTEX4_SOF_TIMING REG_FLD(1, 3)
  1928. #define SOF_FLD_MUTEX4_SOF REG_FLD(3, 0)
  1929. #define EN_FLD_MUTEX5_EN REG_FLD(1, 0)
  1930. #define RST_FLD_MUTEX5_RST REG_FLD(1, 0)
  1931. #define MOD_FLD_MUTEX0_MOD REG_FLD(26, 0)
  1932. #define SOF_FLD_MUTEX5_SOF_TIMING REG_FLD(1, 3)
  1933. #define SOF_FLD_MUTEX5_SOF REG_FLD(3, 0)
  1934. #define DEBUG_OUT_SEL_FLD_DEBUG_OUT_SEL REG_FLD(2, 0)
  1935. /* ------------------------------------------------------------- */
  1936. /* OD */
  1937. #define DISP_REG_OD_EN (DISPSYS_OD_BASE+0x000)
  1938. #define DISP_REG_OD_RESET (DISPSYS_OD_BASE+0x004)
  1939. #define DISP_REG_OD_INTEN (DISPSYS_OD_BASE+0x008)
  1940. #define DISP_REG_OD_INTSTA (DISPSYS_OD_BASE+0x00C)
  1941. #define DISP_REG_OD_STATUS (DISPSYS_OD_BASE+0x010)
  1942. #define DISP_REG_OD_CFG (DISPSYS_OD_BASE+0x020)
  1943. #define DISP_REG_OD_INPUT_COUNT (DISPSYS_OD_BASE+0x024)
  1944. #define DISP_REG_OD_OUTPUT_COUNT (DISPSYS_OD_BASE+0x028)
  1945. #define DISP_REG_OD_CHKSUM (DISPSYS_OD_BASE+0x02C)
  1946. #define DISP_REG_OD_SIZE (DISPSYS_OD_BASE+0x030)
  1947. #define DISP_REG_OD_HSYNC_WIDTH (DISPSYS_OD_BASE+0x040)
  1948. #define DISP_REG_OD_VSYNC_WIDTH (DISPSYS_OD_BASE+0x044)
  1949. #define DISP_REG_OD_MISC (DISPSYS_OD_BASE+0x048)
  1950. #define DISP_REG_OD_DUMMY_REG (DISPSYS_OD_BASE+0x0C0)
  1951. #define DISP_REG_OD_DITHER_0 (DISPSYS_OD_BASE+0x100)
  1952. #define DISP_REG_OD_DITHER_5 (DISPSYS_OD_BASE+0x114)
  1953. #define DISP_REG_OD_DITHER_6 (DISPSYS_OD_BASE+0x118)
  1954. #define DISP_REG_OD_DITHER_7 (DISPSYS_OD_BASE+0x11C)
  1955. #define DISP_REG_OD_DITHER_8 (DISPSYS_OD_BASE+0x120)
  1956. #define DISP_REG_OD_DITHER_9 (DISPSYS_OD_BASE+0x124)
  1957. #define DISP_REG_OD_DITHER_10 (DISPSYS_OD_BASE+0x128)
  1958. #define DISP_REG_OD_DITHER_11 (DISPSYS_OD_BASE+0x12C)
  1959. #define DISP_REG_OD_DITHER_12 (DISPSYS_OD_BASE+0x130)
  1960. #define DISP_REG_OD_DITHER_13 (DISPSYS_OD_BASE+0x134)
  1961. #define DISP_REG_OD_DITHER_14 (DISPSYS_OD_BASE+0x138)
  1962. #define DISP_REG_OD_DITHER_15 (DISPSYS_OD_BASE+0x13C)
  1963. #define DISP_REG_OD_DITHER_16 (DISPSYS_OD_BASE+0x140)
  1964. #define DISP_REG_OD_DITHER_17 (DISPSYS_OD_BASE+0x144)
  1965. /* ------------------------------------------------------------- */
  1966. /* OVL */
  1967. #define OVL_STATUS_IDLE 0
  1968. #define DISP_REG_OVL0_STATE_PA 0x14007240
  1969. #define DISP_REG_OVL1_STATE_PA 0x14008240
  1970. #define DISP_REG_OVL0_STATUS_PA 0x14007000
  1971. #define DISP_REG_OVL1_STATUS_PA 0x14008000
  1972. #define DISP_REG_OVL_STA (DISPSYS_OVL0_BASE + 0x000)
  1973. #define DISP_REG_OVL_INTEN (DISPSYS_OVL0_BASE + 0x004)
  1974. #define DISP_REG_OVL_INTSTA (DISPSYS_OVL0_BASE + 0x008)
  1975. #define DISP_REG_OVL_EN (DISPSYS_OVL0_BASE + 0x00C)
  1976. #define DISP_REG_OVL_TRIG (DISPSYS_OVL0_BASE + 0x010)
  1977. #define DISP_REG_OVL_RST (DISPSYS_OVL0_BASE + 0x014)
  1978. #define DISP_REG_OVL_ROI_SIZE (DISPSYS_OVL0_BASE + 0x020)
  1979. #define DISP_REG_OVL_DATAPATH_CON (DISPSYS_OVL0_BASE + 0x024)
  1980. #define DISP_REG_OVL_ROI_BGCLR (DISPSYS_OVL0_BASE + 0x028)
  1981. #define DISP_REG_OVL_SRC_CON (DISPSYS_OVL0_BASE + 0x02C)
  1982. #define DISP_REG_OVL_L0_CON (DISPSYS_OVL0_BASE + 0x030)
  1983. #define DISP_REG_OVL_L0_SRCKEY (DISPSYS_OVL0_BASE + 0x034)
  1984. #define DISP_REG_OVL_L0_SRC_SIZE (DISPSYS_OVL0_BASE + 0x038)
  1985. #define DISP_REG_OVL_L0_OFFSET (DISPSYS_OVL0_BASE + 0x03C)
  1986. #define DISP_REG_OVL_L0_ADDR (DISPSYS_OVL0_BASE + 0xf40)
  1987. #define DISP_REG_OVL_L0_PITCH (DISPSYS_OVL0_BASE + 0x044)
  1988. #define DISP_REG_OVL_L0_TILE (DISPSYS_OVL0_BASE + 0x048)
  1989. #define DISP_REG_OVL_L1_CON (DISPSYS_OVL0_BASE + 0x050)
  1990. #define DISP_REG_OVL_L1_SRCKEY (DISPSYS_OVL0_BASE + 0x054)
  1991. #define DISP_REG_OVL_L1_SRC_SIZE (DISPSYS_OVL0_BASE + 0x058)
  1992. #define DISP_REG_OVL_L1_OFFSET (DISPSYS_OVL0_BASE + 0x05C)
  1993. #define DISP_REG_OVL_L1_ADDR (DISPSYS_OVL0_BASE + 0xf60)
  1994. #define DISP_REG_OVL_L1_PITCH (DISPSYS_OVL0_BASE + 0x064)
  1995. #define DISP_REG_OVL_L1_TILE (DISPSYS_OVL0_BASE + 0x068)
  1996. #define DISP_REG_OVL_L2_CON (DISPSYS_OVL0_BASE + 0x070)
  1997. #define DISP_REG_OVL_L2_SRCKEY (DISPSYS_OVL0_BASE + 0x074)
  1998. #define DISP_REG_OVL_L2_SRC_SIZE (DISPSYS_OVL0_BASE + 0x078)
  1999. #define DISP_REG_OVL_L2_OFFSET (DISPSYS_OVL0_BASE + 0x07C)
  2000. #define DISP_REG_OVL_L2_ADDR (DISPSYS_OVL0_BASE + 0xf80)
  2001. #define DISP_REG_OVL_L2_PITCH (DISPSYS_OVL0_BASE + 0x084)
  2002. #define DISP_REG_OVL_L2_TILE (DISPSYS_OVL0_BASE + 0x088)
  2003. #define DISP_REG_OVL_L3_CON (DISPSYS_OVL0_BASE + 0x090)
  2004. #define DISP_REG_OVL_L3_SRCKEY (DISPSYS_OVL0_BASE + 0x094)
  2005. #define DISP_REG_OVL_L3_SRC_SIZE (DISPSYS_OVL0_BASE + 0x098)
  2006. #define DISP_REG_OVL_L3_OFFSET (DISPSYS_OVL0_BASE + 0x09C)
  2007. #define DISP_REG_OVL_L3_ADDR (DISPSYS_OVL0_BASE + 0xfA0)
  2008. #define DISP_REG_OVL_L3_PITCH (DISPSYS_OVL0_BASE + 0x0A4)
  2009. #define DISP_REG_OVL_L3_TILE (DISPSYS_OVL0_BASE + 0x0A8)
  2010. #define DISP_REG_OVL_RDMA0_CTRL (DISPSYS_OVL0_BASE + 0x0C0)
  2011. #define DISP_REG_OVL_RDMA0_MEM_GMC_SETTING (DISPSYS_OVL0_BASE + 0x0C8)
  2012. #define DISP_REG_OVL_RDMA0_MEM_SLOW_CON (DISPSYS_OVL0_BASE + 0x0CC)
  2013. #define DISP_REG_OVL_RDMA0_FIFO_CTRL (DISPSYS_OVL0_BASE + 0x0D0)
  2014. #define DISP_REG_OVL_RDMA1_CTRL (DISPSYS_OVL0_BASE + 0x0E0)
  2015. #define DISP_REG_OVL_RDMA1_MEM_GMC_SETTING (DISPSYS_OVL0_BASE + 0x0E8)
  2016. #define DISP_REG_OVL_RDMA1_MEM_SLOW_CON (DISPSYS_OVL0_BASE + 0x0EC)
  2017. #define DISP_REG_OVL_RDMA1_FIFO_CTRL (DISPSYS_OVL0_BASE + 0x0F0)
  2018. #define DISP_REG_OVL_RDMA2_CTRL (DISPSYS_OVL0_BASE + 0x100)
  2019. #define DISP_REG_OVL_RDMA2_MEM_GMC_SETTING (DISPSYS_OVL0_BASE + 0x108)
  2020. #define DISP_REG_OVL_RDMA2_MEM_SLOW_CON (DISPSYS_OVL0_BASE + 0x10C)
  2021. #define DISP_REG_OVL_RDMA2_FIFO_CTRL (DISPSYS_OVL0_BASE + 0x110)
  2022. #define DISP_REG_OVL_RDMA3_CTRL (DISPSYS_OVL0_BASE + 0x120)
  2023. #define DISP_REG_OVL_RDMA3_MEM_GMC_SETTING (DISPSYS_OVL0_BASE + 0x128)
  2024. #define DISP_REG_OVL_RDMA3_MEM_SLOW_CON (DISPSYS_OVL0_BASE + 0x12C)
  2025. #define DISP_REG_OVL_RDMA3_FIFO_CTRL (DISPSYS_OVL0_BASE + 0x130)
  2026. #define DISP_REG_OVL_L0_Y2R_PARA_R0 (DISPSYS_OVL0_BASE + 0x134)
  2027. #define DISP_REG_OVL_L0_Y2R_PARA_R1 (DISPSYS_OVL0_BASE + 0x138)
  2028. #define DISP_REG_OVL_L0_Y2R_PARA_G0 (DISPSYS_OVL0_BASE + 0x13C)
  2029. #define DISP_REG_OVL_L0_Y2R_PARA_G1 (DISPSYS_OVL0_BASE + 0x140)
  2030. #define DISP_REG_OVL_L0_Y2R_PARA_B0 (DISPSYS_OVL0_BASE + 0x144)
  2031. #define DISP_REG_OVL_L0_Y2R_PARA_B1 (DISPSYS_OVL0_BASE + 0x148)
  2032. #define DISP_REG_OVL_L0_Y2R_PARA_YUV_A_0 (DISPSYS_OVL0_BASE + 0x14C)
  2033. #define DISP_REG_OVL_L0_Y2R_PARA_YUV_A_1 (DISPSYS_OVL0_BASE + 0x150)
  2034. #define DISP_REG_OVL_L0_Y2R_PARA_RGB_A_0 (DISPSYS_OVL0_BASE + 0x154)
  2035. #define DISP_REG_OVL_L0_Y2R_PARA_RGB_A_1 (DISPSYS_OVL0_BASE + 0x158)
  2036. #define DISP_REG_OVL_L1_Y2R_PARA_R0 (DISPSYS_OVL0_BASE + 0x15C)
  2037. #define DISP_REG_OVL_L1_Y2R_PARA_R1 (DISPSYS_OVL0_BASE + 0x160)
  2038. #define DISP_REG_OVL_L1_Y2R_PARA_G0 (DISPSYS_OVL0_BASE + 0x164)
  2039. #define DISP_REG_OVL_L1_Y2R_PARA_G1 (DISPSYS_OVL0_BASE + 0x168)
  2040. #define DISP_REG_OVL_L1_Y2R_PARA_B0 (DISPSYS_OVL0_BASE + 0x16C)
  2041. #define DISP_REG_OVL_L1_Y2R_PARA_B1 (DISPSYS_OVL0_BASE + 0x170)
  2042. #define DISP_REG_OVL_L1_Y2R_PARA_YUV_A_0 (DISPSYS_OVL0_BASE + 0x174)
  2043. #define DISP_REG_OVL_L1_Y2R_PARA_YUV_A_1 (DISPSYS_OVL0_BASE + 0x178)
  2044. #define DISP_REG_OVL_L1_Y2R_PARA_RGB_A_0 (DISPSYS_OVL0_BASE + 0x17C)
  2045. #define DISP_REG_OVL_L1_Y2R_PARA_RGB_A_1 (DISPSYS_OVL0_BASE + 0x180)
  2046. #define DISP_REG_OVL_L2_Y2R_PARA_R0 (DISPSYS_OVL0_BASE + 0x184)
  2047. #define DISP_REG_OVL_L2_Y2R_PARA_R1 (DISPSYS_OVL0_BASE + 0x188)
  2048. #define DISP_REG_OVL_L2_Y2R_PARA_G0 (DISPSYS_OVL0_BASE + 0x18C)
  2049. #define DISP_REG_OVL_L2_Y2R_PARA_G1 (DISPSYS_OVL0_BASE + 0x190)
  2050. #define DISP_REG_OVL_L2_Y2R_PARA_B0 (DISPSYS_OVL0_BASE + 0x194)
  2051. #define DISP_REG_OVL_L2_Y2R_PARA_B1 (DISPSYS_OVL0_BASE + 0x198)
  2052. #define DISP_REG_OVL_L2_Y2R_PARA_YUV_A_0 (DISPSYS_OVL0_BASE + 0x19C)
  2053. #define DISP_REG_OVL_L2_Y2R_PARA_YUV_A_1 (DISPSYS_OVL0_BASE + 0x1A0)
  2054. #define DISP_REG_OVL_L2_Y2R_PARA_RGB_A_0 (DISPSYS_OVL0_BASE + 0x1A4)
  2055. #define DISP_REG_OVL_L2_Y2R_PARA_RGB_A_1 (DISPSYS_OVL0_BASE + 0x1A8)
  2056. #define DISP_REG_OVL_L3_Y2R_PARA_R0 (DISPSYS_OVL0_BASE + 0x1AC)
  2057. #define DISP_REG_OVL_L3_Y2R_PARA_R1 (DISPSYS_OVL0_BASE + 0x1B0)
  2058. #define DISP_REG_OVL_L3_Y2R_PARA_G0 (DISPSYS_OVL0_BASE + 0x1B4)
  2059. #define DISP_REG_OVL_L3_Y2R_PARA_G1 (DISPSYS_OVL0_BASE + 0x1B8)
  2060. #define DISP_REG_OVL_L3_Y2R_PARA_B0 (DISPSYS_OVL0_BASE + 0x1BC)
  2061. #define DISP_REG_OVL_L3_Y2R_PARA_B1 (DISPSYS_OVL0_BASE + 0x1C0)
  2062. #define DISP_REG_OVL_L3_Y2R_PARA_YUV_A_0 (DISPSYS_OVL0_BASE + 0x1C4)
  2063. #define DISP_REG_OVL_L3_Y2R_PARA_YUV_A_1 (DISPSYS_OVL0_BASE + 0x1C8)
  2064. #define DISP_REG_OVL_L3_Y2R_PARA_RGB_A_0 (DISPSYS_OVL0_BASE + 0x1CC)
  2065. #define DISP_REG_OVL_L3_Y2R_PARA_RGB_A_1 (DISPSYS_OVL0_BASE + 0x1D0)
  2066. #define DISP_REG_OVL_DEBUG_MON_SEL (DISPSYS_OVL0_BASE + 0x1D4)
  2067. #define DISP_REG_OVL_RDMA0_MEM_GMC_S2 (DISPSYS_OVL0_BASE + 0x1E0)
  2068. #define DISP_REG_OVL_RDMA1_MEM_GMC_S2 (DISPSYS_OVL0_BASE + 0x1E4)
  2069. #define DISP_REG_OVL_RDMA2_MEM_GMC_S2 (DISPSYS_OVL0_BASE + 0x1E8)
  2070. #define DISP_REG_OVL_RDMA3_MEM_GMC_S2 (DISPSYS_OVL0_BASE + 0x1EC)
  2071. #define DISP_REG_OVL_DUMMY_REG (DISPSYS_OVL0_BASE + 0x200)
  2072. #define DISP_REG_OVL_SMI_DBG (DISPSYS_OVL0_BASE + 0x230)
  2073. #define DISP_REG_OVL_GREQ_LAYER_CNT (DISPSYS_OVL0_BASE + 0x234)
  2074. #define DISP_REG_OVL_FLOW_CTRL_DBG (DISPSYS_OVL0_BASE + 0x240)
  2075. #define DISP_REG_OVL_ADDCON_DBG (DISPSYS_OVL0_BASE + 0x244)
  2076. #define DISP_REG_OVL_RDMA0_DBG (DISPSYS_OVL0_BASE + 0x24C)
  2077. #define DISP_REG_OVL_RDMA1_DBG (DISPSYS_OVL0_BASE + 0x250)
  2078. #define DISP_REG_OVL_RDMA2_DBG (DISPSYS_OVL0_BASE + 0x254)
  2079. #define DISP_REG_OVL_RDMA3_DBG (DISPSYS_OVL0_BASE + 0x258)
  2080. #define DISP_REG_OVL_L0_CLR (DISPSYS_OVL0_BASE + 0x25c)
  2081. #define DISP_REG_OVL_L1_CLR (DISPSYS_OVL0_BASE + 0x260)
  2082. #define DISP_REG_OVL_L2_CLR (DISPSYS_OVL0_BASE + 0x264)
  2083. #define DISP_REG_OVL_L3_CLR (DISPSYS_OVL0_BASE + 0x268)
  2084. #define STA_FLD_RDMA3_IDLE REG_FLD(1, 4)
  2085. #define STA_FLD_RDMA2_IDLE REG_FLD(1, 3)
  2086. #define STA_FLD_RDMA1_IDLE REG_FLD(1, 2)
  2087. #define STA_FLD_RDMA0_IDLE REG_FLD(1, 1)
  2088. #define STA_FLD_RUN REG_FLD(1, 0)
  2089. #define INTEN_FLD_RDMA3_FIFO_UNDERFLOW_INTEN REG_FLD(1, 12)
  2090. #define INTEN_FLD_RDMA2_FIFO_UNDERFLOW_INTEN REG_FLD(1, 11)
  2091. #define INTEN_FLD_RDMA1_FIFO_UNDERFLOW_INTEN REG_FLD(1, 10)
  2092. #define INTEN_FLD_RDMA0_FIFO_UNDERFLOW_INTEN REG_FLD(1, 9)
  2093. #define INTEN_FLD_RDMA3_EOF_ABNORMAL_INTEN REG_FLD(1, 8)
  2094. #define INTEN_FLD_RDMA2_EOF_ABNORMAL_INTEN REG_FLD(1, 7)
  2095. #define INTEN_FLD_RDMA1_EOF_ABNORMAL_INTEN REG_FLD(1, 6)
  2096. #define INTEN_FLD_RDMA0_EOF_ABNORMAL_INTEN REG_FLD(1, 5)
  2097. #define INTEN_FLD_FME_HWRST_DONE_INTEN REG_FLD(1, 4)
  2098. #define INTEN_FLD_FME_SWRST_DONE_INTEN REG_FLD(1, 3)
  2099. #define INTEN_FLD_FME_UND_INTEN REG_FLD(1, 2)
  2100. #define INTEN_FLD_FME_CPL_INTEN REG_FLD(1, 1)
  2101. #define INTEN_FLD_REG_CMT_INTEN REG_FLD(1, 0)
  2102. #define INTSTA_FLD_RDMA3_FIFO_UNDERFLOW_INTSTA REG_FLD(1, 12)
  2103. #define INTSTA_FLD_RDMA2_FIFO_UNDERFLOW_INTSTA REG_FLD(1, 11)
  2104. #define INTSTA_FLD_RDMA1_FIFO_UNDERFLOW_INTSTA REG_FLD(1, 10)
  2105. #define INTSTA_FLD_RDMA0_FIFO_UNDERFLOW_INTSTA REG_FLD(1, 9)
  2106. #define INTSTA_FLD_RDMA3_EOF_ABNORMAL_INTSTA REG_FLD(1, 8)
  2107. #define INTSTA_FLD_RDMA2_EOF_ABNORMAL_INTSTA REG_FLD(1, 7)
  2108. #define INTSTA_FLD_RDMA1_EOF_ABNORMAL_INTSTA REG_FLD(1, 6)
  2109. #define INTSTA_FLD_RDMA0_EOF_ABNORMAL_INTSTA REG_FLD(1, 5)
  2110. #define INTSTA_FLD_FME_HWRST_DONE_INTSTA REG_FLD(1, 4)
  2111. #define INTSTA_FLD_FME_SWRST_DONE_INTSTA REG_FLD(1, 3)
  2112. #define INTSTA_FLD_FME_UND_INTSTA REG_FLD(1, 2)
  2113. #define INTSTA_FLD_FME_CPL_INTSTA REG_FLD(1, 1)
  2114. #define INTSTA_FLD_REG_CMT_INTSTA REG_FLD(1, 0)
  2115. #define EN_FLD_EN REG_FLD(1, 0)
  2116. #define TRIG_FLD_SW_TRIG REG_FLD(1, 0)
  2117. #define RST_FLD_RST REG_FLD(1, 0)
  2118. #define RST_FLD_FORCE_RST REG_FLD(1, 31)
  2119. #define ROI_SIZE_FLD_ROI_H REG_FLD(12, 16)
  2120. #define ROI_SIZE_FLD_ROI_W REG_FLD(12, 0)
  2121. #define DATAPATH_CON_FLD_LAYER_GREQ_NUM REG_FLD(3, 29)
  2122. #define DATAPATH_CON_FLD_RDMA3_OUT_SEL REG_FLD(1, 23)
  2123. #define DATAPATH_CON_FLD_RDMA2_OUT_SEL REG_FLD(1, 22)
  2124. #define DATAPATH_CON_FLD_RDMA1_OUT_SEL REG_FLD(1, 21)
  2125. #define DATAPATH_CON_FLD_RDMA0_OUT_SEL REG_FLD(1, 20)
  2126. #define DATAPATH_CON_FLD_PQ_OUT_SEL REG_FLD(2, 16)
  2127. #define DATAPATH_CON_FLD_OVL_GAMMA_OUT REG_FLD(1, 15)
  2128. #define DATAPATH_CON_FLD_ADOBE_LAYER REG_FLD(2, 13)
  2129. #define DATAPATH_CON_FLD_ADOBE_MODE REG_FLD(1, 12)
  2130. #define DATAPATH_CON_FLD_L3_GPU_MODE REG_FLD(1, 11)
  2131. #define DATAPATH_CON_FLD_L2_GPU_MODE REG_FLD(1, 10)
  2132. #define DATAPATH_CON_FLD_L1_GPU_MODE REG_FLD(1, 9)
  2133. #define DATAPATH_CON_FLD_L0_GPU_MODE REG_FLD(1, 8)
  2134. #define DATAPATH_CON_FLD_BGCLR_IN_SEL REG_FLD(1, 2)
  2135. #define DATAPATH_CON_FLD_RANDOM_BGCLR_EN REG_FLD(1, 1)
  2136. #define DATAPATH_CON_FLD_LAYER_SMI_ID_EN REG_FLD(1, 0)
  2137. #define ROI_BGCLR_FLD_ALPHA REG_FLD(8, 24)
  2138. #define ROI_BGCLR_FLD_RED REG_FLD(8, 16)
  2139. #define ROI_BGCLR_FLD_GREEN REG_FLD(8, 8)
  2140. #define ROI_BGCLR_FLD_BLUE REG_FLD(8, 0)
  2141. #define SRC_CON_FLD_L3_EN REG_FLD(1, 3)
  2142. #define SRC_CON_FLD_L2_EN REG_FLD(1, 2)
  2143. #define SRC_CON_FLD_L1_EN REG_FLD(1, 1)
  2144. #define SRC_CON_FLD_L0_EN REG_FLD(1, 0)
  2145. #define L_CON_FLD_SKEN REG_FLD(1, 30)
  2146. #define L_CON_FLD_LARC REG_FLD(2, 28) /* layer source 0:mem, 1:constant color */
  2147. #define L_CON_FLD_RGB_SWAP REG_FLD(1, 25)
  2148. #define L_CON_FLD_BTSW REG_FLD(1, 24)
  2149. #define L_CON_FLD_MTX REG_FLD(4, 16)
  2150. #define L_CON_FLD_CFMT REG_FLD(4, 12)
  2151. #define L_CON_FLD_HORI_FLIP REG_FLD(1, 10)
  2152. #define L_CON_FLD_VIRTICAL_FLIP REG_FLD(1, 9)
  2153. #define L_CON_FLD_AEN REG_FLD(1, 8)
  2154. #define L_CON_FLD_APHA REG_FLD(8, 0)
  2155. #define L_PITCH_FLD_LSP REG_FLD(16, 0)
  2156. #define L_PITCH_FLD_SUR_ALFA REG_FLD(16, 16)
  2157. #define ADDCON_DBG_FLD_L3_WIN_HIT REG_FLD(1, 31)
  2158. #define ADDCON_DBG_FLD_L2_WIN_HIT REG_FLD(1, 30)
  2159. #define ADDCON_DBG_FLD_ROI_Y REG_FLD(13, 16)
  2160. #define ADDCON_DBG_FLD_L1_WIN_HIT REG_FLD(1, 15)
  2161. #define ADDCON_DBG_FLD_L0_WIN_HIT REG_FLD(1, 14)
  2162. #define ADDCON_DBG_FLD_ROI_X REG_FLD(13, 0)
  2163. #define RDMA0_DBG_FLD_RDMA0_SMI_GREQ REG_FLD(1, 29)
  2164. #define RDMA0_DBG_FLD_RDMA0_SMI_BUSY REG_FLD(1, 28)
  2165. #define RDMA0_DBG_FLD_RDMA0_OUT_VALID REG_FLD(1, 29)
  2166. #define RDMA0_DBG_FLD_RDMA0_OUT_READY REG_FLD(1, 28)
  2167. #define RDMA0_DBG_FLD_RDMA0_OUT_DATA REG_FLD(24, 4)
  2168. #define RDMA0_DBG_FLD_RDMA0_WRAM_RST_CS REG_FLD(3, 0)
  2169. #define RDMA0_DBG_FLD_RDMA0_LAYER_GREQ REG_FLD(1, 29)
  2170. /* ------------------------------------------------------------- */
  2171. /* RDMA */
  2172. #define DISP_REG_RDMA_INT_ENABLE (DISPSYS_RDMA0_BASE+0x000)
  2173. #define DISP_REG_RDMA_INT_STATUS (DISPSYS_RDMA0_BASE+0x004)
  2174. #define DISP_REG_RDMA_GLOBAL_CON (DISPSYS_RDMA0_BASE+0x010)
  2175. #define DISP_REG_RDMA_SIZE_CON_0 (DISPSYS_RDMA0_BASE+0x014)
  2176. #define DISP_REG_RDMA_SIZE_CON_1 (DISPSYS_RDMA0_BASE+0x018)
  2177. #define DISP_REG_RDMA_TARGET_LINE (DISPSYS_RDMA0_BASE+0x01C)
  2178. #define DISP_REG_RDMA_MEM_CON (DISPSYS_RDMA0_BASE+0x024)
  2179. #define DISP_REG_RDMA_MEM_SRC_PITCH (DISPSYS_RDMA0_BASE+0x02C)
  2180. #define DISP_REG_RDMA_MEM_GMC_SETTING_0 (DISPSYS_RDMA0_BASE+0x030)
  2181. #define DISP_REG_RDMA_MEM_SLOW_CON (DISPSYS_RDMA0_BASE+0x034)
  2182. #define DISP_REG_RDMA_MEM_GMC_SETTING_1 (DISPSYS_RDMA0_BASE+0x038)
  2183. #define DISP_REG_RDMA_FIFO_CON (DISPSYS_RDMA0_BASE+0x040)
  2184. #define DISP_REG_RDMA_FIFO_LOG (DISPSYS_RDMA0_BASE+0x044)
  2185. #define DISP_REG_RDMA_C00 (DISPSYS_RDMA0_BASE+0x054)
  2186. #define DISP_REG_RDMA_C01 (DISPSYS_RDMA0_BASE+0x058)
  2187. #define DISP_REG_RDMA_C02 (DISPSYS_RDMA0_BASE+0x05C)
  2188. #define DISP_REG_RDMA_C10 (DISPSYS_RDMA0_BASE+0x060)
  2189. #define DISP_REG_RDMA_C11 (DISPSYS_RDMA0_BASE+0x064)
  2190. #define DISP_REG_RDMA_C12 (DISPSYS_RDMA0_BASE+0x068)
  2191. #define DISP_REG_RDMA_C20 (DISPSYS_RDMA0_BASE+0x06C)
  2192. #define DISP_REG_RDMA_C21 (DISPSYS_RDMA0_BASE+0x070)
  2193. #define DISP_REG_RDMA_C22 (DISPSYS_RDMA0_BASE+0x074)
  2194. #define DISP_REG_RDMA_PRE_ADD_0 (DISPSYS_RDMA0_BASE+0x078)
  2195. #define DISP_REG_RDMA_PRE_ADD_1 (DISPSYS_RDMA0_BASE+0x07C)
  2196. #define DISP_REG_RDMA_PRE_ADD_2 (DISPSYS_RDMA0_BASE+0x080)
  2197. #define DISP_REG_RDMA_POST_ADD_0 (DISPSYS_RDMA0_BASE+0x084)
  2198. #define DISP_REG_RDMA_POST_ADD_1 (DISPSYS_RDMA0_BASE+0x088)
  2199. #define DISP_REG_RDMA_POST_ADD_2 (DISPSYS_RDMA0_BASE+0x08C)
  2200. #define DISP_REG_RDMA_DUMMY (DISPSYS_RDMA0_BASE+0x090)
  2201. #define DISP_REG_RDMA_IN_P_CNT (DISPSYS_RDMA0_BASE+0x0f0)
  2202. #define DISP_REG_RDMA_IN_LINE_CNT (DISPSYS_RDMA0_BASE+0x0f4)
  2203. #define DISP_REG_RDMA_OUT_P_CNT (DISPSYS_RDMA0_BASE+0x0f8)
  2204. #define DISP_REG_RDMA_OUT_LINE_CNT (DISPSYS_RDMA0_BASE+0x0fc)
  2205. #define DISP_REG_RDMA_DEBUG_OUT_SEL (DISPSYS_RDMA0_BASE+0x094)
  2206. #define DISP_REG_RDMA_THRESHOLD_FOR_SODI (DISPSYS_RDMA0_BASE+0x0a8)
  2207. #define DISP_REG_RDMA_MEM_START_ADDR (DISPSYS_RDMA0_BASE+0xf00)
  2208. #define INT_ENABLE_FLD_TARGET_LINE_INT_EN REG_FLD(1, 5)
  2209. #define INT_ENABLE_FLD_FIFO_UNDERFLOW_INT_EN REG_FLD(1, 4)
  2210. #define INT_ENABLE_FLD_EOF_ABNORMAL_INT_EN REG_FLD(1, 3)
  2211. #define INT_ENABLE_FLD_FRAME_END_INT_EN REG_FLD(1, 2)
  2212. #define INT_ENABLE_FLD_FRAME_START_INT_EN REG_FLD(1, 1)
  2213. #define INT_ENABLE_FLD_REG_UPDATE_INT_EN REG_FLD(1, 0)
  2214. #define INT_STATUS_FLD_TARGET_LINE_INT_FLAG REG_FLD(1, 5)
  2215. #define INT_STATUS_FLD_FIFO_UNDERFLOW_INT_FLAG REG_FLD(1, 4)
  2216. #define INT_STATUS_FLD_EOF_ABNORMAL_INT_FLAG REG_FLD(1, 3)
  2217. #define INT_STATUS_FLD_FRAME_END_INT_FLAG REG_FLD(1, 2)
  2218. #define INT_STATUS_FLD_FRAME_START_INT_FLAG REG_FLD(1, 1)
  2219. #define INT_STATUS_FLD_REG_UPDATE_INT_FLAG REG_FLD(1, 0)
  2220. #define GLOBAL_CON_FLD_SMI_BUSY REG_FLD(1, 12)
  2221. #define GLOBAL_CON_FLD_RESET_STATE REG_FLD(3, 8)
  2222. #define GLOBAL_CON_FLD_SOFT_RESET REG_FLD(1, 4)
  2223. #define GLOBAL_CON_FLD_MODE_SEL REG_FLD(1, 1)
  2224. #define GLOBAL_CON_FLD_ENGINE_EN REG_FLD(1, 0)
  2225. #define SIZE_CON_0_FLD_MATRIX_INT_MTX_SEL REG_FLD(4, 20)
  2226. #define SIZE_CON_0_FLD_MATRIX_WIDE_GAMUT_EN REG_FLD(1, 18)
  2227. #define SIZE_CON_0_FLD_MATRIX_ENABLE REG_FLD(1, 17)
  2228. #define SIZE_CON_0_FLD_MATRIX_EXT_MTX_EN REG_FLD(1, 16)
  2229. #define SIZE_CON_0_FLD_OUTPUT_FRAME_WIDTH REG_FLD(13, 0)
  2230. #define SIZE_CON_1_FLD_OUTPUT_FRAME_HEIGHT REG_FLD(20, 0)
  2231. #define TARGET_LINE_FLD_TARGET_LINE REG_FLD(20, 0)
  2232. #define MEM_CON_FLD_MEM_MODE_HORI_BLOCK_NUM REG_FLD(8, 24)
  2233. #define MEM_CON_FLD_MEM_MODE_INPUT_COSITE REG_FLD(1, 13)
  2234. #define MEM_CON_FLD_MEM_MODE_INPUT_UPSAMPLE REG_FLD(1, 12)
  2235. #define MEM_CON_FLD_MEM_MODE_INPUT_SWAP REG_FLD(1, 8)
  2236. #define MEM_CON_FLD_MEM_MODE_INPUT_FORMAT REG_FLD(4, 4)
  2237. #define MEM_CON_FLD_MEM_MODE_TILE_INTERLACE REG_FLD(1, 1)
  2238. #define MEM_CON_FLD_MEM_MODE_TILE_EN REG_FLD(1, 0)
  2239. #define MEM_SRC_PITCH_FLD_MEM_MODE_SRC_PITCH REG_FLD(16, 0)
  2240. #define MEM_GMC_SETTING_0_FLD_PRE_ULTRA_THRESHOLD_HIGH_OFS REG_FLD(8, 24)
  2241. #define MEM_GMC_SETTING_0_FLD_ULTRA_THRESHOLD_HIGH_OFS REG_FLD(8, 16)
  2242. #define MEM_GMC_SETTING_0_FLD_PRE_ULTRA_THRESHOLD_LOW_OFS REG_FLD(8, 8)
  2243. #define MEM_GMC_SETTING_0_FLD_ULTRA_THRESHOLD_LOW REG_FLD(8, 0)
  2244. #define MEM_SLOW_CON_FLD_MEM_MODE_SLOW_COUNT REG_FLD(16, 16)
  2245. #define MEM_SLOW_CON_FLD_MEM_MODE_SLOW_EN REG_FLD(1, 0)
  2246. #define MEM_GMC_SETTING_1_FLD_ISSUE_REQ_THRESHOLD REG_FLD(8, 0)
  2247. #define FIFO_CON_FLD_FIFO_UNDERFLOW_EN REG_FLD(1, 31)
  2248. #define FIFO_CON_FLD_FIFO_PSEUDO_SIZE REG_FLD(10, 16)
  2249. #define FIFO_CON_FLD_OUTPUT_VALID_FIFO_THRESHOLD REG_FLD(10, 0)
  2250. #define FIFO_LOG_FLD_RDMA_FIFO_LOG REG_FLD(10, 0)
  2251. #define C00_FLD_DISP_RDMA_C00 REG_FLD(13, 0)
  2252. #define C01_FLD_DISP_RDMA_C01 REG_FLD(13, 0)
  2253. #define C02_FLD_DISP_RDMA_C02 REG_FLD(13, 0)
  2254. #define C10_FLD_DISP_RDMA_C10 REG_FLD(13, 0)
  2255. #define C11_FLD_DISP_RDMA_C11 REG_FLD(13, 0)
  2256. #define C12_FLD_DISP_RDMA_C12 REG_FLD(13, 0)
  2257. #define C20_FLD_DISP_RDMA_C20 REG_FLD(13, 0)
  2258. #define C21_FLD_DISP_RDMA_C21 REG_FLD(13, 0)
  2259. #define C22_FLD_DISP_RDMA_C22 REG_FLD(13, 0)
  2260. #define PRE_ADD_0_FLD_DISP_RDMA_PRE_ADD_0 REG_FLD(9, 0)
  2261. #define PRE_ADD_1_FLD_DISP_RDMA_PRE_ADD_1 REG_FLD(9, 0)
  2262. #define PRE_ADD_2_FLD_DISP_RDMA_PRE_ADD_2 REG_FLD(9, 0)
  2263. #define POST_ADD_0_FLD_DISP_RDMA_POST_ADD_0 REG_FLD(9, 0)
  2264. #define POST_ADD_1_FLD_DISP_RDMA_POST_ADD_1 REG_FLD(9, 0)
  2265. #define POST_ADD_2_FLD_DISP_RDMA_POST_ADD_2 REG_FLD(9, 0)
  2266. #define DUMMY_FLD_DISP_RDMA_DUMMY REG_FLD(32, 0)
  2267. #define DEBUG_OUT_SEL_FLD_DISP_RDMA_DEBUG_OUT_SEL REG_FLD(4, 0)
  2268. #define MEM_START_ADDR_FLD_MEM_MODE_START_ADDR REG_FLD(32, 0)
  2269. /* ------------------------------------------------------------- */
  2270. /* SPLIT */
  2271. #define DISP_REG_SPLIT_ENABLE (DISPSYS_SPLIT0_BASE+0x00)
  2272. #define DISP_REG_SPLIT_SW_RESET (DISPSYS_SPLIT0_BASE+0x04)
  2273. #define DISP_REG_SPLIT_DEBUG (DISPSYS_SPLIT0_BASE+0x08)
  2274. #define ENABLE_FLD_SPLIT_EN REG_FLD(1, 0)
  2275. #define W_RESET_FLD_SPLIT_SW_RST REG_FLD(1, 0)
  2276. #define DEBUG_FLD_SPLIT_FSM REG_FLD(3, 29)
  2277. #define DEBUG_FLD_IN_PIXEL_CNT REG_FLD(24, 0)
  2278. /* ------------------------------------------------------------- */
  2279. /* UFO */
  2280. #define DISP_REG_UFO_START 0
  2281. /* ------------------------------------------------------------- */
  2282. /* WDMA */
  2283. #define DISP_REG_WDMA_INTEN (DISPSYS_WDMA0_BASE+0x000)
  2284. #define DISP_REG_WDMA_INTSTA (DISPSYS_WDMA0_BASE+0x004)
  2285. #define DISP_REG_WDMA_EN (DISPSYS_WDMA0_BASE+0x008)
  2286. #define DISP_REG_WDMA_RST (DISPSYS_WDMA0_BASE+0x00C)
  2287. #define DISP_REG_WDMA_SMI_CON (DISPSYS_WDMA0_BASE+0x010)
  2288. #define DISP_REG_WDMA_CFG (DISPSYS_WDMA0_BASE+0x014)
  2289. #define DISP_REG_WDMA_SRC_SIZE (DISPSYS_WDMA0_BASE+0x018)
  2290. #define DISP_REG_WDMA_CLIP_SIZE (DISPSYS_WDMA0_BASE+0x01C)
  2291. #define DISP_REG_WDMA_CLIP_COORD (DISPSYS_WDMA0_BASE+0x020)
  2292. #define DISP_REG_WDMA_DST_W_IN_BYTE (DISPSYS_WDMA0_BASE+0x028)
  2293. #define DISP_REG_WDMA_ALPHA (DISPSYS_WDMA0_BASE+0x02C)
  2294. #define DISP_REG_WDMA_BUF_CON1 (DISPSYS_WDMA0_BASE+0x038)
  2295. #define DISP_REG_WDMA_BUF_CON2 (DISPSYS_WDMA0_BASE+0x03C)
  2296. #define DISP_REG_WDMA_C00 (DISPSYS_WDMA0_BASE+0x040)
  2297. #define DISP_REG_WDMA_C02 (DISPSYS_WDMA0_BASE+0x044)
  2298. #define DISP_REG_WDMA_C10 (DISPSYS_WDMA0_BASE+0x048)
  2299. #define DISP_REG_WDMA_C12 (DISPSYS_WDMA0_BASE+0x04C)
  2300. #define DISP_REG_WDMA_C20 (DISPSYS_WDMA0_BASE+0x050)
  2301. #define DISP_REG_WDMA_C22 (DISPSYS_WDMA0_BASE+0x054)
  2302. #define DISP_REG_WDMA_PRE_ADD0 (DISPSYS_WDMA0_BASE+0x058)
  2303. #define DISP_REG_WDMA_PRE_ADD2 (DISPSYS_WDMA0_BASE+0x05C)
  2304. #define DISP_REG_WDMA_POST_ADD0 (DISPSYS_WDMA0_BASE+0x060)
  2305. #define DISP_REG_WDMA_POST_ADD2 (DISPSYS_WDMA0_BASE+0x064)
  2306. #define DISP_REG_WDMA_DST_UV_PITCH (DISPSYS_WDMA0_BASE+0x078)
  2307. #define DISP_REG_WDMA_DST_ADDR_OFFSET0 (DISPSYS_WDMA0_BASE+0x080)
  2308. #define DISP_REG_WDMA_DST_ADDR_OFFSET1 (DISPSYS_WDMA0_BASE+0x084)
  2309. #define DISP_REG_WDMA_DST_ADDR_OFFSET2 (DISPSYS_WDMA0_BASE+0x088)
  2310. #define DISP_REG_WDMA_PROC_TRACK_CON_0 (DISPSYS_WDMA0_BASE+0x090)
  2311. #define DISP_REG_WDMA_PROC_TRACK_CON_1 (DISPSYS_WDMA0_BASE+0x094)
  2312. #define DISP_REG_WDMA_PROC_TRACK_CON_2 (DISPSYS_WDMA0_BASE+0x098)
  2313. #define DISP_REG_WDMA_FLOW_CTRL_DBG (DISPSYS_WDMA0_BASE+0x0A0)
  2314. #define DISP_REG_WDMA_EXEC_DBG (DISPSYS_WDMA0_BASE+0x0A4)
  2315. #define DISP_REG_WDMA_CT_DBG (DISPSYS_WDMA0_BASE+0x0A8)
  2316. #define DISP_REG_WDMA_SMI_TRAFFIC_DBG (DISPSYS_WDMA0_BASE+0x0AC)
  2317. #define DISP_REG_WDMA_PROC_TRACK_DBG_0 (DISPSYS_WDMA0_BASE+0x0b0)
  2318. #define DISP_REG_WDMA_PROC_TRACK_DBG_1 (DISPSYS_WDMA0_BASE+0x0b4)
  2319. #define DISP_REG_WDMA_DEBUG (DISPSYS_WDMA0_BASE+0x0b8)
  2320. #define DISP_REG_WDMA_DUMMY (DISPSYS_WDMA0_BASE+0x100)
  2321. #define DISP_REG_WDMA_DITHER_0 (DISPSYS_WDMA0_BASE+0xE00)
  2322. #define DISP_REG_WDMA_DITHER_5 (DISPSYS_WDMA0_BASE+0xE14)
  2323. #define DISP_REG_WDMA_DITHER_6 (DISPSYS_WDMA0_BASE+0xE18)
  2324. #define DISP_REG_WDMA_DITHER_7 (DISPSYS_WDMA0_BASE+0xE1C)
  2325. #define DISP_REG_WDMA_DITHER_8 (DISPSYS_WDMA0_BASE+0xE20)
  2326. #define DISP_REG_WDMA_DITHER_9 (DISPSYS_WDMA0_BASE+0xE24)
  2327. #define DISP_REG_WDMA_DITHER_10 (DISPSYS_WDMA0_BASE+0xE28)
  2328. #define DISP_REG_WDMA_DITHER_11 (DISPSYS_WDMA0_BASE+0xE2C)
  2329. #define DISP_REG_WDMA_DITHER_12 (DISPSYS_WDMA0_BASE+0xE30)
  2330. #define DISP_REG_WDMA_DITHER_13 (DISPSYS_WDMA0_BASE+0xE34)
  2331. #define DISP_REG_WDMA_DITHER_14 (DISPSYS_WDMA0_BASE+0xE38)
  2332. #define DISP_REG_WDMA_DITHER_15 (DISPSYS_WDMA0_BASE+0xE3C)
  2333. #define DISP_REG_WDMA_DITHER_16 (DISPSYS_WDMA0_BASE+0xE40)
  2334. #define DISP_REG_WDMA_DITHER_17 (DISPSYS_WDMA0_BASE+0xE44)
  2335. #define DISP_REG_WDMA_DST_ADDR0 (DISPSYS_WDMA0_BASE+0xF00)
  2336. #define DISP_REG_WDMA_DST_ADDR1 (DISPSYS_WDMA0_BASE+0xF04)
  2337. #define DISP_REG_WDMA_DST_ADDR2 (DISPSYS_WDMA0_BASE+0xF08)
  2338. #define INTEN_FLD_FRAME_UNDERRUN REG_FLD(1, 1)
  2339. #define INTEN_FLD_FRAME_COMPLETE REG_FLD(1, 0)
  2340. #define INTSTA_FLD_FRAME_UNDERRUN REG_FLD(1, 1)
  2341. #define INTSTA_FLD_FRAME_COMPLETE REG_FLD(1, 0)
  2342. #define EN_FLD_ENABLE REG_FLD(1, 0)
  2343. #define RST_FLD_SOFT_RESET REG_FLD(1, 0)
  2344. #define SMI_CON_FLD_SMI_V_REPEAT_NUM REG_FLD(4, 24)
  2345. #define SMI_CON_FLD_SMI_U_REPEAT_NUM REG_FLD(4, 20)
  2346. #define SMI_CON_FLD_SMI_Y_REPEAT_NUM REG_FLD(4, 16)
  2347. #define SMI_CON_FLD_SLOW_COUNT REG_FLD(8, 8)
  2348. #define SMI_CON_FLD_SLOW_LEVEL REG_FLD(3, 5)
  2349. #define SMI_CON_FLD_SLOW_ENABLE REG_FLD(1, 4)
  2350. #define SMI_CON_FLD_THRESHOLD REG_FLD(4, 0)
  2351. #define CFG_FLD_DEBUG_SEL REG_FLD(4, 28)
  2352. #define CFG_FLD_INT_MTX_SEL REG_FLD(4, 24)
  2353. #define CFG_FLD_SWAP REG_FLD(1, 16)
  2354. #define CFG_FLD_DNSP_SEL REG_FLD(1, 15)
  2355. #define CFG_FLD_EXT_MTX_EN REG_FLD(1, 13)
  2356. #define CFG_FLD_VERTICAL_AVG REG_FLD(1, 12)
  2357. #define CFG_FLD_CT_EN REG_FLD(1, 11)
  2358. #define CFG_FLD_OUT_FORMAT REG_FLD(4, 4)
  2359. #define SRC_SIZE_FLD_HEIGHT REG_FLD(14, 16)
  2360. #define SRC_SIZE_FLD_WIDTH REG_FLD(14, 0)
  2361. #define CLIP_SIZE_FLD_HEIGHT REG_FLD(14, 16)
  2362. #define CLIP_SIZE_FLD_WIDTH REG_FLD(14, 0)
  2363. #define CLIP_COORD_FLD_Y_COORD REG_FLD(14, 16)
  2364. #define CLIP_COORD_FLD_X_COORD REG_FLD(14, 0)
  2365. #define DST_W_IN_BYTE_FLD_DST_W_IN_BYTE REG_FLD(16, 0)
  2366. #define ALPHA_FLD_A_SEL REG_FLD(1, 31)
  2367. #define ALPHA_FLD_A_VALUE REG_FLD(8, 0)
  2368. #define BUF_CON1_FLD_ULTRA_ENABLE REG_FLD(1, 31)
  2369. #define BUF_CON1_FLD_FRAME_END_ULTRA REG_FLD(1, 28)
  2370. #define BUF_CON1_FLD_ISSUE_REQ_TH REG_FLD(9, 16)
  2371. #define BUF_CON1_FLD_FIFO_PSEUDO_SIZE REG_FLD(9, 0)
  2372. #define BUF_CON2_FLD_ULTRA_TH_HIGH_OFS REG_FLD(8, 24)
  2373. #define BUF_CON2_FLD_PRE_ULTRA_TH_HIGH_OFS REG_FLD(8, 16)
  2374. #define BUF_CON2_FLD_ULTRA_TH_LOW_OFS REG_FLD(8, 8)
  2375. #define BUF_CON2_FLD_PRE_ULTRA_TH_LOW REG_FLD(8, 0)
  2376. #define C00_FLD_C01 REG_FLD(13, 16)
  2377. #define C00_FLD_C00 REG_FLD(13, 0)
  2378. #define C02_FLD_C02 REG_FLD(13, 0)
  2379. #define C10_FLD_C11 REG_FLD(13, 16)
  2380. #define C10_FLD_C10 REG_FLD(13, 0)
  2381. #define C12_FLD_C12 REG_FLD(13, 0)
  2382. #define C20_FLD_C21 REG_FLD(13, 16)
  2383. #define C20_FLD_C20 REG_FLD(13, 0)
  2384. #define C22_FLD_C22 REG_FLD(13, 0)
  2385. #define PRE_ADD0_FLD_PRE_ADD_1 REG_FLD(9, 16)
  2386. #define PRE_ADD0_FLD_PRE_ADD_0 REG_FLD(9, 0)
  2387. #define PRE_ADD2_FLD_PRE_ADD_2 REG_FLD(9, 0)
  2388. #define POST_ADD0_FLD_POST_ADD_1 REG_FLD(9, 16)
  2389. #define POST_ADD0_FLD_POST_ADD_0 REG_FLD(9, 0)
  2390. #define POST_ADD2_FLD_POST_ADD_2 REG_FLD(9, 0)
  2391. #define DST_UV_PITCH_FLD_UV_DST_W_IN_BYTE REG_FLD(16, 0)
  2392. #define DST_ADDR_OFFSET0_FLD_WDMA_DESTINATION_ADDRESS_OFFSET0 REG_FLD(28, 0)
  2393. #define DST_ADDR_OFFSET1_FLD_WDMA_DESTINATION_ADDRESS_OFFSET1 REG_FLD(28, 0)
  2394. #define DST_ADDR_OFFSET2_FLD_WDMA_DESTINATION_ADDRESS_OFFSET2 REG_FLD(28, 0)
  2395. #define FLOW_CTRL_DBG_FLD_WDMA_STA_FLOW_CTRL REG_FLD(10, 0)
  2396. #define EXEC_DBG_FLD_WDMA_IN_REQ REG_FLD(1, 15)
  2397. #define EXEC_DBG_FLD_WDMA_IN_ACK REG_FLD(1, 14)
  2398. #define EXEC_DBG_FLD_WDMA_STA_EXEC REG_FLD(32, 0)
  2399. #define CT_DBG_FLD_WDMA_STA_CT REG_FLD(32, 0)
  2400. #define DEBUG_FLD_WDMA_STA_DEBUG REG_FLD(32, 0)
  2401. #define DUMMY_FLD_WDMA_DUMMY REG_FLD(32, 0)
  2402. #define DITHER_0_FLD_CRC_CLR REG_FLD(1, 24)
  2403. #define DITHER_0_FLD_CRC_START REG_FLD(1, 20)
  2404. #define DITHER_0_FLD_CRC_CEN REG_FLD(1, 16)
  2405. #define DITHER_0_FLD_FRAME_DONE_DEL REG_FLD(8, 8)
  2406. #define DITHER_0_FLD_OUT_SEL REG_FLD(1, 4)
  2407. #define DITHER_0_FLD_START REG_FLD(1, 0)
  2408. #define DITHER_5_FLD_W_DEMO REG_FLD(16, 0)
  2409. #define DITHER_6_FLD_WRAP_MODE REG_FLD(1, 16)
  2410. #define DITHER_6_FLD_LEFT_EN REG_FLD(2, 14)
  2411. #define DITHER_6_FLD_FPHASE_R REG_FLD(1, 13)
  2412. #define DITHER_6_FLD_FPHASE_EN REG_FLD(1, 12)
  2413. #define DITHER_6_FLD_FPHASE REG_FLD(6, 4)
  2414. #define DITHER_6_FLD_ROUND_EN REG_FLD(1, 3)
  2415. #define DITHER_6_FLD_RDITHER_EN REG_FLD(1, 2)
  2416. #define DITHER_6_FLD_LFSR_EN REG_FLD(1, 1)
  2417. #define DITHER_6_FLD_EDITHER_EN REG_FLD(1, 0)
  2418. #define DITHER_7_FLD_DRMOD_B REG_FLD(2, 8)
  2419. #define DITHER_7_FLD_DRMOD_G REG_FLD(2, 4)
  2420. #define DITHER_7_FLD_DRMOD_R REG_FLD(2, 0)
  2421. #define DITHER_8_FLD_INK_DATA_R REG_FLD(10, 16)
  2422. #define DITHER_8_FLD_INK REG_FLD(1, 0)
  2423. #define DITHER_9_FLD_INK_DATA_B REG_FLD(10, 16)
  2424. #define DITHER_9_FLD_INK_DATA_G REG_FLD(10, 0)
  2425. #define DITHER_10_FLD_FPHASE_BIT REG_FLD(3, 8)
  2426. #define DITHER_10_FLD_FPHASE_SEL REG_FLD(2, 4)
  2427. #define DITHER_10_FLD_FPHASE_CTRL REG_FLD(2, 0)
  2428. #define DITHER_11_FLD_SUB_B REG_FLD(2, 12)
  2429. #define DITHER_11_FLD_SUB_G REG_FLD(2, 8)
  2430. #define DITHER_11_FLD_SUB_R REG_FLD(2, 4)
  2431. #define DITHER_11_FLD_SUBPIX_EN REG_FLD(1, 0)
  2432. #define DITHER_12_FLD_H_ACTIVE REG_FLD(16, 16)
  2433. #define DITHER_12_FLD_TABLE_EN REG_FLD(2, 4)
  2434. #define DITHER_12_FLD_LSB_OFF REG_FLD(1, 0)
  2435. #define DITHER_13_FLD_RSHIFT_B REG_FLD(3, 8)
  2436. #define DITHER_13_FLD_RSHIFT_G REG_FLD(3, 4)
  2437. #define DITHER_13_FLD_RSHIFT_R REG_FLD(3, 0)
  2438. #define DITHER_14_FLD_DEBUG_MODE REG_FLD(2, 8)
  2439. #define DITHER_14_FLD_DIFF_SHIFT REG_FLD(3, 4)
  2440. #define DITHER_14_FLD_TESTPIN_EN REG_FLD(1, 0)
  2441. #define DITHER_15_FLD_LSB_ERR_SHIFT_R REG_FLD(3, 28)
  2442. #define DITHER_15_FLD_OVFLW_BIT_R REG_FLD(3, 24)
  2443. #define DITHER_15_FLD_ADD_lSHIFT_R REG_FLD(3, 20)
  2444. #define DITHER_15_FLD_INPUT_RSHIFT_R REG_FLD(3, 16)
  2445. #define DITHER_15_FLD_NEW_BIT_MODE REG_FLD(1, 0)
  2446. #define DITHER_16_FLD_LSB_ERR_SHIFT_B REG_FLD(3, 28)
  2447. #define DITHER_16_FLD_OVFLW_BIT_B REG_FLD(3, 24)
  2448. #define DITHER_16_FLD_ADD_lSHIFT_B REG_FLD(3, 20)
  2449. #define DITHER_16_FLD_INPUT_RSHIFT_B REG_FLD(3, 16)
  2450. #define DITHER_16_FLD_lSB_ERR_SHIFT_G REG_FLD(3, 12)
  2451. #define DITHER_16_FLD_OVFLW_BIT_G REG_FLD(3, 8)
  2452. #define DITHER_16_FLD_ADD_lSHIFT_G REG_FLD(3, 4)
  2453. #define DITHER_16_FLD_INPUT_RSHIFT_G REG_FLD(3, 0)
  2454. #define DITHER_17_FLD_CRC_RDY REG_FLD(1, 16)
  2455. #define DITHER_17_FLD_CRC_OUT REG_FLD(16, 0)
  2456. #define DST_ADDR0_FLD_ADDRESS0 REG_FLD(32, 0)
  2457. #define DST_ADDR1_FLD_ADDRESS1 REG_FLD(32, 0)
  2458. #define DST_ADDR2_FLD_ADDRESS2 REG_FLD(32, 0)
  2459. #endif