mt6768-gce.h 8.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239
  1. /*
  2. * Copyright (c) 2018 MediaTek Inc.
  3. * Author: Dennis YC Hsieh <dennis-yc.hsieh@mediatek.com>
  4. *
  5. * This program is free software; you can redistribute it and/or modify
  6. * it under the terms of the GNU General Public License version 2 as
  7. * published by the Free Software Foundation.
  8. *
  9. * This program is distributed in the hope that it will be useful,
  10. * but WITHOUT ANY WARRANTY; without even the implied warranty of
  11. * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
  12. * GNU General Public License for more details.
  13. */
  14. #ifndef _DT_BINDINGS_GCE_MT6768_H
  15. #define _DT_BINDINGS_GCE_MT6768_H
  16. /* assign timeout 0 also means default */
  17. #define CMDQ_NO_TIMEOUT 0xffffffff
  18. #define CMDQ_TIMEOUT_DEFAULT 1000
  19. /* GCE thread priority */
  20. #define CMDQ_THR_PRIO_LOWEST 0
  21. #define CMDQ_THR_PRIO_1 1
  22. #define CMDQ_THR_PRIO_2 2
  23. #define CMDQ_THR_PRIO_3 3
  24. #define CMDQ_THR_PRIO_4 4
  25. #define CMDQ_THR_PRIO_5 5
  26. #define CMDQ_THR_PRIO_6 6
  27. #define CMDQ_THR_PRIO_HIGHEST 7
  28. /* CPR count in 32bit register */
  29. #define GCE_CPR_COUNT 128
  30. /* GCE subsys table */
  31. #define SUBSYS_1300XXXX 0
  32. #define SUBSYS_1400XXXX 1
  33. #define SUBSYS_1401XXXX 2
  34. #define SUBSYS_1402XXXX 3
  35. #define SUBSYS_1502XXXX 4
  36. #define SUBSYS_1880XXXX 5
  37. #define SUBSYS_1881XXXX 6
  38. #define SUBSYS_1882XXXX 7
  39. #define SUBSYS_1883XXXX 8
  40. #define SUBSYS_1884XXXX 9
  41. #define SUBSYS_1000XXXX 10
  42. #define SUBSYS_1001XXXX 11
  43. #define SUBSYS_1002XXXX 12
  44. #define SUBSYS_1003XXXX 13
  45. #define SUBSYS_1004XXXX 14
  46. #define SUBSYS_1005XXXX 15
  47. #define SUBSYS_1020XXXX 16
  48. #define SUBSYS_1028XXXX 17
  49. #define SUBSYS_1700XXXX 18
  50. #define SUBSYS_1701XXXX 19
  51. #define SUBSYS_1702XXXX 20
  52. #define SUBSYS_1703XXXX 21
  53. #define SUBSYS_1800XXXX 22
  54. #define SUBSYS_1801XXXX 23
  55. #define SUBSYS_1802XXXX 24
  56. #define SUBSYS_1804XXXX 25
  57. #define SUBSYS_1805XXXX 26
  58. #define SUBSYS_1808XXXX 27
  59. #define SUBSYS_180aXXXX 28
  60. #define SUBSYS_180bXXXX 29
  61. /* GCE hardware events */
  62. #define CMDQ_EVENT_MDP_RDMA0_SOF 0
  63. #define CMDQ_EVENT_MDP_CCORR0_SOF 1
  64. #define CMDQ_EVENT_MDP_RSZ0_SOF 2
  65. #define CMDQ_EVENT_MDP_RSZ1_SOF 3
  66. #define CMDQ_EVENT_MDP_WDMA_SOF 4
  67. #define CMDQ_EVENT_MDP_WROT0_SOF 5
  68. #define CMDQ_EVENT_MDP_TDSHP0_SOF 6
  69. #define CMDQ_EVENT_DISP_OVL0_SOF 7
  70. #define CMDQ_EVENT_DISP_2L_OVL0_SOF 8
  71. #define CMDQ_EVENT_DISP_RDMA0_SOF 9
  72. #define CMDQ_EVENT_DISP_WDMA0_SOF 10
  73. #define CMDQ_EVENT_DISP_COLOR0_SOF 11
  74. #define CMDQ_EVENT_DISP_CCORR0_SOF 12
  75. #define CMDQ_EVENT_DISP_AAL0_SOF 13
  76. #define CMDQ_EVENT_DISP_GAMMA0_SOF 14
  77. #define CMDQ_EVENT_DISP_DITHER0_SOF 15
  78. #define CMDQ_EVENT_DISP_DSI0_SOF 16
  79. #define CMDQ_EVENT_DISP_RSZ0_SOF 17
  80. #define CMDQ_EVENT_IMG_DL_RELAY_SOF 18
  81. #define CMDQ_EVENT_DISP_PWM0_SOF 19
  82. #define CMDQ_EVENT_MDP_RDMA0_EOF 20
  83. #define CMDQ_EVENT_MDP_CCORR0_FRAME_DONE 21
  84. #define CMDQ_EVENT_MDP_RSZ0_EOF 22
  85. #define CMDQ_EVENT_MDP_RSZ1_EOF 23
  86. #define CMDQ_EVENT_MDP_WROT0_W_EOF 24
  87. #define CMDQ_EVENT_MDP_WDMA_EOF 25
  88. #define CMDQ_EVENT_MDP_TDSHP0_EOF 26
  89. #define CMDQ_EVENT_DISP_OVL0_EOF 27
  90. #define CMDQ_EVENT_DISP_2L_OVL0_EOF 28
  91. #define CMDQ_EVENT_DISP_RSZ0_EOF 29
  92. #define CMDQ_EVENT_DISP_RDMA0_EOF 30
  93. #define CMDQ_EVENT_DISP_WDMA0_EOF 31
  94. #define CMDQ_EVENT_DISP_COLOR0_EOF 32
  95. #define CMDQ_EVENT_DISP_CCORR0_EOF 33
  96. #define CMDQ_EVENT_DISP_AAL0_EOF 34
  97. #define CMDQ_EVENT_DISP_GAMMA0_EOF 35
  98. #define CMDQ_EVENT_DISP_DITHER0_EOF 36
  99. #define CMDQ_EVENT_DISP_DSI0_EOF 37
  100. #define CMDQ_EVENT_MUTEX0_STREAM_EOF 130
  101. #define CMDQ_EVENT_MUTEX1_STREAM_EOF 131
  102. #define CMDQ_EVENT_MUTEX2_STREAM_EOF 132
  103. #define CMDQ_EVENT_MUTEX3_STREAM_EOF 133
  104. #define CMDQ_EVENT_MUTEX4_STREAM_EOF 134
  105. #define CMDQ_EVENT_MUTEX5_STREAM_EOF 135
  106. #define CMDQ_EVENT_MUTEX6_STREAM_EOF 136
  107. #define CMDQ_EVENT_MUTEX7_STREAM_EOF 137
  108. #define CMDQ_EVENT_MUTEX8_STREAM_EOF 138
  109. #define CMDQ_EVENT_MUTEX9_STREAM_EOF 139
  110. #define CMDQ_EVENT_DISP_RDMA0_UNDERRUN 140
  111. #define CMDQ_EVENT_DSI0_TE 141
  112. #define CMDQ_EVENT_DSI0_IRQ_EVENT 142
  113. #define CMDQ_EVENT_DSI0_DONE_EVENT 143
  114. #define CMDQ_EVENT_DISP_WDMA0_RST_DONE 147
  115. #define CMDQ_EVENT_MDP_WDMA_RST_DONE 148
  116. #define CMDQ_EVENT_MDP_WROT0_RST_DONE 149
  117. #define CMDQ_EVENT_MDP_RDMA0_RST_DONE 151
  118. #define CMDQ_EVENT_DISP_OVL0_RST_DONE 152
  119. #define CMDQ_EVENT_DIP_CQ_THREAD0_EOF 257
  120. #define CMDQ_EVENT_DIP_CQ_THREAD1_EOF 258
  121. #define CMDQ_EVENT_DIP_CQ_THREAD2_EOF 259
  122. #define CMDQ_EVENT_DIP_CQ_THREAD3_EOF 260
  123. #define CMDQ_EVENT_DIP_CQ_THREAD4_EOF 261
  124. #define CMDQ_EVENT_DIP_CQ_THREAD5_EOF 262
  125. #define CMDQ_EVENT_DIP_CQ_THREAD6_EOF 263
  126. #define CMDQ_EVENT_DIP_CQ_THREAD7_EOF 264
  127. #define CMDQ_EVENT_DIP_CQ_THREAD8_EOF 265
  128. #define CMDQ_EVENT_DIP_CQ_THREAD9_EOF 266
  129. #define CMDQ_EVENT_DIP_CQ_THREAD10_EOF 267
  130. #define CMDQ_EVENT_DIP_CQ_THREAD11_EOF 268
  131. #define CMDQ_EVENT_DIP_CQ_THREAD12_EOF 269
  132. #define CMDQ_EVENT_DIP_CQ_THREAD13_EOF 270
  133. #define CMDQ_EVENT_DIP_CQ_THREAD14_EOF 271
  134. #define CMDQ_EVENT_DIP_CQ_THREAD15_EOF 272
  135. #define CMDQ_EVENT_DIP_CQ_THREAD16_EOF 273
  136. #define CMDQ_EVENT_DIP_CQ_THREAD17_EOF 274
  137. #define CMDQ_EVENT_DIP_CQ_THREAD18_EOF 275
  138. #define CMDQ_EVENT_DVE_EOF 276
  139. #define CMDQ_EVENT_WMF_EOF 277
  140. #define CMDQ_EVENT_RSC_EOF 278
  141. #define CMDQ_EVENT_VENC_FRAME_DONE 289
  142. #define CMDQ_EVENT_VENC_PAUSE_DONE 290
  143. #define CMDQ_EVENT_JPEG_ENC_EOF 291
  144. #define CMDQ_EVENT_VENC_MB_DONE 292
  145. #define CMDQ_EVENT_VENC_128BYTE_CNT_DONE 293
  146. #define CMDQ_EVENT_ISP_FRAME_DONE_B 322
  147. #define CMDQ_EVENT_ISP_CAMSV_0_PASS1_DONE 323
  148. #define CMDQ_EVENT_ISP_CAMSV_1_PASS1_DONE 324
  149. #define CMDQ_EVENT_ISP_CAMSV_2_PASS1_DONE 325
  150. #define CMDQ_EVENT_ISP_TSF_DONE 326
  151. #define CMDQ_EVENT_SENINF_0_FIFO_FULL 327
  152. #define CMDQ_EVENT_SENINF_1_FIFO_FULL 328
  153. #define CMDQ_EVENT_SENINF_2_FIFO_FULL 329
  154. #define CMDQ_EVENT_SENINF_3_FIFO_FULL 330
  155. #define CMDQ_EVENT_SENINF_4_FIFO_FULL 331
  156. #define CMDQ_EVENT_SENINF_5_FIFO_FULL 332
  157. #define CMDQ_EVENT_SENINF_6_FIFO_FULL 333
  158. #define CMDQ_EVENT_SENINF_7_FIFO_FULL 334
  159. #define CMDQ_EVENT_DSI0_TE_INFRA 898
  160. /* CMDQ sw tokens
  161. * Following definitions are gce sw token which may use by clients
  162. * event operation API.
  163. * Note that token 512 to 639 may set secure
  164. */
  165. /* end of hw event and begin of sw token */
  166. #define CMDQ_MAX_HW_EVENT 512
  167. /* Config thread notify trigger thread */
  168. #define CMDQ_SYNC_TOKEN_CONFIG_DIRTY 640
  169. /* Trigger thread notify config thread */
  170. #define CMDQ_SYNC_TOKEN_STREAM_EOF 641
  171. /* Block Trigger thread until the ESD check finishes. */
  172. #define CMDQ_SYNC_TOKEN_ESD_EOF 642
  173. #define CMDQ_SYNC_TOKEN_STREAM_BLOCK 643
  174. /* check CABC setup finish */
  175. #define CMDQ_SYNC_TOKEN_CABC_EOF 644
  176. /* Notify normal CMDQ there are some secure task done
  177. * MUST NOT CHANGE, this token sync with secure world
  178. */
  179. #define CMDQ_SYNC_SECURE_THR_EOF 647
  180. /* CMDQ use sw token */
  181. #define CMDQ_SYNC_TOKEN_USER_0 649
  182. #define CMDQ_SYNC_TOKEN_USER_1 650
  183. #define CMDQ_SYNC_TOKEN_POLL_MONITOR 651
  184. #define CMDQ_SYNC_TOKEN_TPR_LOCK 652
  185. /* ISP sw token */
  186. #define CMDQ_SYNC_TOKEN_MSS 665
  187. #define CMDQ_SYNC_TOKEN_MSF 666
  188. /* GPR access tokens (for HW register backup)
  189. * There are 15 32-bit GPR, 3 GPR form a set
  190. * (64-bit for address, 32-bit for value)
  191. * MUST NOT CHANGE, these tokens sync with MDP
  192. */
  193. #define CMDQ_SYNC_TOKEN_GPR_SET_0 700
  194. #define CMDQ_SYNC_TOKEN_GPR_SET_1 701
  195. #define CMDQ_SYNC_TOKEN_GPR_SET_2 702
  196. #define CMDQ_SYNC_TOKEN_GPR_SET_3 703
  197. #define CMDQ_SYNC_TOKEN_GPR_SET_4 704
  198. /* Resource lock event to control resource in GCE thread */
  199. #define CMDQ_SYNC_RESOURCE_WROT0 710
  200. #define CMDQ_SYNC_RESOURCE_WROT1 711
  201. /* event for gpr timer, used in sleep and poll with timeout */
  202. #define CMDQ_TOKEN_GPR_TIMER_R0 994
  203. #define CMDQ_TOKEN_GPR_TIMER_R1 995
  204. #define CMDQ_TOKEN_GPR_TIMER_R2 996
  205. #define CMDQ_TOKEN_GPR_TIMER_R3 997
  206. #define CMDQ_TOKEN_GPR_TIMER_R4 998
  207. #define CMDQ_TOKEN_GPR_TIMER_R5 999
  208. #define CMDQ_TOKEN_GPR_TIMER_R6 1000
  209. #define CMDQ_TOKEN_GPR_TIMER_R7 1001
  210. #define CMDQ_TOKEN_GPR_TIMER_R8 1002
  211. #define CMDQ_TOKEN_GPR_TIMER_R9 1003
  212. #define CMDQ_TOKEN_GPR_TIMER_R10 1004
  213. #define CMDQ_TOKEN_GPR_TIMER_R11 1005
  214. #define CMDQ_TOKEN_GPR_TIMER_R12 1006
  215. #define CMDQ_TOKEN_GPR_TIMER_R13 1007
  216. #define CMDQ_TOKEN_GPR_TIMER_R14 1008
  217. #define CMDQ_TOKEN_GPR_TIMER_R15 1009
  218. #define CMDQ_EVENT_MAX 0x3FF
  219. /* CMDQ sw tokens END */
  220. #endif