ddp_reg.h 112 KB

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