ddp_hal.h 5.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196
  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 (10)
  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_OVL0_2L,
  44. DISP_MODULE_OVL0_2L_VIRTUAL0,
  45. DISP_MODULE_OVL0_VIRTUAL0,
  46. DISP_MODULE_RSZ0,
  47. DISP_MODULE_OVL1, /* 5 */
  48. DISP_MODULE_OVL1_2L,
  49. DISP_MODULE_OVL1_2L_VIRTUAL0,
  50. DISP_MODULE_OVL1_VIRTUAL0,
  51. DISP_MODULE_RSZ1,
  52. DISP_MODULE_RDMA0, /* 10 */
  53. DISP_MODULE_RDMA0_VIRTUAL0,
  54. DISP_MODULE_WDMA0,
  55. DISP_MODULE_COLOR0,
  56. DISP_MODULE_CCORR0,
  57. DISP_MODULE_RDMA1, /* 15 */
  58. DISP_MODULE_RDMA1_VIRTUAL0,
  59. DISP_MODULE_WDMA1,
  60. DISP_MODULE_COLOR1,
  61. DISP_MODULE_CCORR1,
  62. DISP_MODULE_AAL0, /* 20 */
  63. DISP_MODULE_MDP_AAL4,
  64. DISP_MODULE_GAMMA0,
  65. DISP_MODULE_POSTMASK0,
  66. DISP_MODULE_DITHER0,
  67. DISP_MODULE_DITHER0_VIRTUAL0,
  68. DISP_MODULE_AAL1, /* 25 */
  69. DISP_MODULE_MDP_AAL5,
  70. DISP_MODULE_GAMMA1,
  71. DISP_MODULE_POSTMASK1,
  72. DISP_MODULE_DITHER1,
  73. DISP_MODULE_SPLIT0, /* 30 */
  74. DISP_MODULE_DSI0,
  75. DISP_MODULE_DSI1,
  76. DISP_MODULE_DSIDUAL,
  77. DISP_MODULE_PWM0,
  78. DISP_MODULE_CONFIG, /* 35 */
  79. DISP_MODULE_MUTEX,
  80. DISP_MODULE_SMI_COMMON,
  81. DISP_MODULE_SMI_LARB0,
  82. DISP_MODULE_SMI_LARB1,
  83. DISP_MODULE_MIPI0, /* 40 */
  84. DISP_MODULE_MIPI1,
  85. DISP_MODULE_DPI,
  86. DISP_MODULE_OVL2_2L,
  87. DISP_MODULE_OVL3_2L,
  88. DISP_MODULE_RDMA4, /* 45 */
  89. DISP_MODULE_RDMA5,
  90. DISP_MODULE_MDP_RDMA4,
  91. DISP_MODULE_MDP_RDMA5,
  92. DISP_MODULE_MDP_RSZ4,
  93. DISP_MODULE_MDP_RSZ5, /* 50 */
  94. DISP_MODULE_MERGE0,
  95. DISP_MODULE_MERGE1,
  96. DISP_MODULE_DP_INTF,
  97. DISP_MODULE_DSC,
  98. DISP_MODULE_DSC_VIRTUAL0,
  99. DISP_MODULE_UNKNOWN, /* 55 */
  100. DISP_MODULE_NUM
  101. } DISP_MODULE_ENUM;
  102. enum dst_module_type {
  103. DST_MOD_REAL_TIME,
  104. DST_MOD_WDMA,
  105. };
  106. static inline int check_ddp_module(DISP_MODULE_ENUM module)
  107. {
  108. return module < DISP_MODULE_UNKNOWN;
  109. }
  110. typedef enum {
  111. DISP_REG_CONFIG,
  112. DISP_REG_OVL0,
  113. DISP_REG_OVL0_2L,
  114. DISP_REG_OVL1_2L,
  115. DISP_REG_RSZ,
  116. DISP_REG_RDMA0,
  117. DISP_REG_RDMA1,
  118. DISP_REG_WDMA0,
  119. DISP_REG_COLOR0,
  120. DISP_REG_CCORR0,
  121. DISP_REG_AAL0,
  122. DISP_REG_GAMMA0,
  123. DISP_REG_DITHER0,
  124. DISP_REG_SPLIT0,
  125. DISP_REG_DSI0,
  126. DISP_REG_DSI1,
  127. DISP_REG_PWM,
  128. DISP_REG_MUTEX,
  129. DISP_REG_SMI_LARB0,
  130. DISP_REG_SMI_LARB1,
  131. DISP_REG_SMI_COMMON,
  132. DISP_REG_MIPI0,
  133. DISP_REG_MIPI1,
  134. DISP_REG_NUM
  135. } DISP_REG_ENUM;
  136. enum OVL_LAYER_SOURCE {
  137. OVL_LAYER_SOURCE_MEM = 0,
  138. OVL_LAYER_SOURCE_RESERVED = 1,
  139. OVL_LAYER_SOURCE_SCL = 2,
  140. OVL_LAYER_SOURCE_PQ = 3,
  141. };
  142. enum OVL_LAYER_SECURE_MODE {
  143. OVL_LAYER_NORMAL_BUFFER = 0,
  144. OVL_LAYER_SECURE_BUFFER = 1,
  145. OVL_LAYER_PROTECTED_BUFFER = 2
  146. };
  147. typedef enum {
  148. CMDQ_DISABLE = 0,
  149. CMDQ_ENABLE
  150. } CMDQ_SWITCH;
  151. typedef enum {
  152. CMDQ_WAIT_LCM_TE,
  153. CMDQ_BEFORE_STREAM_SOF,
  154. CMDQ_WAIT_STREAM_EOF_EVENT,
  155. CMDQ_CHECK_IDLE_AFTER_STREAM_EOF,
  156. CMDQ_AFTER_STREAM_EOF,
  157. CMDQ_ESD_CHECK_READ,
  158. CMDQ_ESD_CHECK_CMP,
  159. CMDQ_ESD_ALLC_SLOT,
  160. CMDQ_ESD_FREE_SLOT,
  161. CMDQ_STOP_VDO_MODE,
  162. CMDQ_START_VDO_MODE,
  163. CMDQ_DSI_RESET,
  164. CMDQ_AFTER_STREAM_SOF,
  165. CMDQ_DSI_LFR_MODE,
  166. } CMDQ_STATE;
  167. typedef enum {
  168. DDP_IRQ_LEVEL_ALL = 0,
  169. DDP_IRQ_LEVEL_NONE,
  170. DDP_IRQ_LEVEL_ERROR
  171. } DDP_IRQ_LEVEL;
  172. #endif