ddp_hal.h 4.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184
  1. /* Copyright Statement:
  2. *
  3. * This software/firmware and related documentation ("MediaTek Software") are
  4. * protected under relevant copyright laws. The information contained herein
  5. * is confidential and proprietary to MediaTek Inc. and/or its licensors.
  6. * Without the prior written permission of MediaTek inc. and/or its licensors,
  7. * any reproduction, modification, use or disclosure of MediaTek Software,
  8. * and information contained herein, in whole or in part, shall be strictly prohibited.
  9. */
  10. /* MediaTek Inc. (C) 2015. All rights reserved.
  11. *
  12. * BY OPENING THIS FILE, RECEIVER HEREBY UNEQUIVOCALLY ACKNOWLEDGES AND AGREES
  13. * THAT THE SOFTWARE/FIRMWARE AND ITS DOCUMENTATIONS ("MEDIATEK SOFTWARE")
  14. * RECEIVED FROM MEDIATEK AND/OR ITS REPRESENTATIVES ARE PROVIDED TO RECEIVER ON
  15. * AN "AS-IS" BASIS ONLY. MEDIATEK EXPRESSLY DISCLAIMS ANY AND ALL WARRANTIES,
  16. * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED WARRANTIES OF
  17. * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE OR NONINFRINGEMENT.
  18. * NEITHER DOES MEDIATEK PROVIDE ANY WARRANTY WHATSOEVER WITH RESPECT TO THE
  19. * SOFTWARE OF ANY THIRD PARTY WHICH MAY BE USED BY, INCORPORATED IN, OR
  20. * SUPPLIED WITH THE MEDIATEK SOFTWARE, AND RECEIVER AGREES TO LOOK ONLY TO SUCH
  21. * THIRD PARTY FOR ANY WARRANTY CLAIM RELATING THERETO. RECEIVER EXPRESSLY ACKNOWLEDGES
  22. * THAT IT IS RECEIVER'S SOLE RESPONSIBILITY TO OBTAIN FROM ANY THIRD PARTY ALL PROPER LICENSES
  23. * CONTAINED IN MEDIATEK SOFTWARE. MEDIATEK SHALL ALSO NOT BE RESPONSIBLE FOR ANY MEDIATEK
  24. * SOFTWARE RELEASES MADE TO RECEIVER'S SPECIFICATION OR TO CONFORM TO A PARTICULAR
  25. * STANDARD OR OPEN FORUM. RECEIVER'S SOLE AND EXCLUSIVE REMEDY AND MEDIATEK'S ENTIRE AND
  26. * CUMULATIVE LIABILITY WITH RESPECT TO THE MEDIATEK SOFTWARE RELEASED HEREUNDER WILL BE,
  27. * AT MEDIATEK'S OPTION, TO REVISE OR REPLACE THE MEDIATEK SOFTWARE AT ISSUE,
  28. * OR REFUND ANY SOFTWARE LICENSE FEES OR SERVICE CHARGE PAID BY RECEIVER TO
  29. * MEDIATEK FOR SUCH MEDIATEK SOFTWARE AT ISSUE.
  30. */
  31. #ifndef _H_DDP_HAL_
  32. #define _H_DDP_HAL_
  33. /* DISP Mutex */
  34. #define DISP_MUTEX_TOTAL (16)
  35. #define DISP_MUTEX_DDP_FIRST (0)
  36. #define DISP_MUTEX_DDP_LAST (3) /* modify from 4 to 3, cause 4 is used for OVL0/OVL1 SW trigger */
  37. #define DISP_MUTEX_DDP_COUNT (4)
  38. #define DISP_MUTEX_MDP_FIRST (5)
  39. #define DISP_MUTEX_MDP_COUNT (5)
  40. /* DISP MODULE */
  41. typedef enum {
  42. DISP_MODULE_OVL0 = 0, /* must start from 0 */
  43. DISP_MODULE_OVL1,
  44. DISP_MODULE_OVL0_2L,
  45. DISP_MODULE_OVL1_2L,
  46. DISP_MODULE_OVL0_VIRTUAL, /*not a real engine, only for path connection, OVL0_sel->OVL0_virtual->OVL0_MOUT */
  47. DISP_MODULE_RDMA0,
  48. DISP_MODULE_RDMA1,
  49. DISP_MODULE_RDMA2,
  50. DISP_MODULE_WDMA0,
  51. DISP_MODULE_WDMA1,
  52. DISP_MODULE_COLOR0, /*10 */
  53. DISP_MODULE_COLOR1,
  54. DISP_MODULE_CCORR0,
  55. DISP_MODULE_CCORR1,
  56. DISP_MODULE_AAL0,
  57. DISP_MODULE_AAL1,
  58. DISP_MODULE_GAMMA0,
  59. DISP_MODULE_GAMMA1,
  60. DISP_MODULE_OD,
  61. DISP_MODULE_DITHER0,
  62. DISP_MODULE_DITHER1, /*20 */
  63. DISP_PATH0,
  64. DISP_PATH1,
  65. DISP_MODULE_UFOE,
  66. DISP_MODULE_DSC,
  67. DISP_MODULE_SPLIT0,
  68. DISP_MODULE_DPI,
  69. DISP_MODULE_DSI0,
  70. DISP_MODULE_DSI1,
  71. DISP_MODULE_DSIDUAL,
  72. DISP_MODULE_PWM0, /*30 */
  73. DISP_MODULE_CONFIG,
  74. DISP_MODULE_MUTEX,
  75. DISP_MODULE_SMI_COMMON,
  76. DISP_MODULE_SMI_LARB0,
  77. DISP_MODULE_SMI_LARB4,
  78. DISP_MODULE_MIPI0,
  79. DISP_MODULE_MIPI1,
  80. DISP_MODULE_UNKNOWN,
  81. DISP_MODULE_NUM
  82. } DISP_MODULE_ENUM;
  83. enum dst_module_type {
  84. DST_MOD_REAL_TIME,
  85. DST_MOD_WDMA,
  86. };
  87. static inline int check_ddp_module(DISP_MODULE_ENUM module)
  88. {
  89. return module < DISP_MODULE_UNKNOWN;
  90. }
  91. typedef enum {
  92. DISP_REG_CONFIG,
  93. DISP_REG_OVL0,
  94. DISP_REG_OVL1,
  95. DISP_REG_OVL0_2L,
  96. DISP_REG_OVL1_2L,
  97. DISP_REG_RDMA0,
  98. DISP_REG_RDMA1,
  99. DISP_REG_RDMA2,
  100. DISP_REG_WDMA0,
  101. DISP_REG_WDMA1,
  102. DISP_REG_COLOR0,
  103. DISP_REG_COLOR1,
  104. DISP_REG_CCORR0,
  105. DISP_REG_CCORR1,
  106. DISP_REG_AAL0,
  107. DISP_REG_AAL1,
  108. DISP_REG_GAMMA0,
  109. DISP_REG_GAMMA1,
  110. DISP_REG_OD,
  111. DISP_REG_DITHER0,
  112. DISP_REG_DITHER1,
  113. DISP_REG_UFOE,
  114. DISP_REG_DSC,
  115. DISP_REG_SPLIT0,
  116. DISP_REG_DSI0,
  117. DISP_REG_DSI1,
  118. DISP_REG_DPI0,
  119. DISP_REG_PWM,
  120. DISP_REG_MUTEX,
  121. DISP_REG_SMI_LARB0,
  122. DISP_REG_SMI_LARB4,
  123. DISP_REG_SMI_COMMON,
  124. DISP_REG_MIPI0,
  125. DISP_REG_MIPI1,
  126. DISP_REG_NUM
  127. } DISP_REG_ENUM;
  128. enum OVL_LAYER_SOURCE {
  129. OVL_LAYER_SOURCE_MEM = 0,
  130. OVL_LAYER_SOURCE_RESERVED = 1,
  131. OVL_LAYER_SOURCE_SCL = 2,
  132. OVL_LAYER_SOURCE_PQ = 3,
  133. };
  134. enum OVL_LAYER_SECURE_MODE {
  135. OVL_LAYER_NORMAL_BUFFER = 0,
  136. OVL_LAYER_SECURE_BUFFER = 1,
  137. OVL_LAYER_PROTECTED_BUFFER = 2
  138. };
  139. typedef enum {
  140. CMDQ_DISABLE = 0,
  141. CMDQ_ENABLE
  142. } CMDQ_SWITCH;
  143. typedef enum {
  144. CMDQ_WAIT_LCM_TE,
  145. CMDQ_BEFORE_STREAM_SOF,
  146. CMDQ_WAIT_STREAM_EOF_EVENT,
  147. CMDQ_CHECK_IDLE_AFTER_STREAM_EOF,
  148. CMDQ_AFTER_STREAM_EOF,
  149. CMDQ_ESD_CHECK_READ,
  150. CMDQ_ESD_CHECK_CMP,
  151. CMDQ_ESD_ALLC_SLOT,
  152. CMDQ_ESD_FREE_SLOT,
  153. CMDQ_STOP_VDO_MODE,
  154. CMDQ_START_VDO_MODE,
  155. CMDQ_DSI_RESET,
  156. CMDQ_AFTER_STREAM_SOF,
  157. CMDQ_DSI_LFR_MODE,
  158. } CMDQ_STATE;
  159. typedef enum {
  160. DDP_IRQ_LEVEL_ALL = 0,
  161. DDP_IRQ_LEVEL_NONE,
  162. DDP_IRQ_LEVEL_ERROR
  163. } DDP_IRQ_LEVEL;
  164. #endif