ddp_hal.h 2.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160
  1. #ifndef _H_DDP_HAL_
  2. #define _H_DDP_HAL_
  3. /* DISP Mutex */
  4. #define DISP_MUTEX_TOTAL (10)
  5. #define DISP_MUTEX_DDP_FIRST (0)
  6. #define DISP_MUTEX_DDP_LAST (3) /* modify from 4 to 3, cause 4 is used for OVL0/OVL1 SW trigger */
  7. #define DISP_MUTEX_DDP_COUNT (4)
  8. #define DISP_MUTEX_MDP_FIRST (5)
  9. #define DISP_MUTEX_MDP_COUNT (5)
  10. /* DISP MODULE */
  11. typedef enum {
  12. DISP_MODULE_OVL0 = 0,
  13. DISP_MODULE_OVL1,
  14. DISP_MODULE_RDMA0,
  15. DISP_MODULE_RDMA1,
  16. DISP_MODULE_WDMA0,
  17. DISP_MODULE_COLOR0,
  18. DISP_MODULE_CCORR,
  19. DISP_MODULE_AAL,
  20. DISP_MODULE_GAMMA,
  21. DISP_MODULE_DITHER,
  22. DISP_MODULE_UFOE, /* 10 */
  23. DISP_MODULE_PWM0,
  24. DISP_MODULE_WDMA1,
  25. DISP_MODULE_DSI0,
  26. DISP_MODULE_DPI,
  27. DISP_MODULE_SMI,
  28. DISP_MODULE_CONFIG,
  29. DISP_MODULE_CMDQ,
  30. DISP_MODULE_MUTEX,
  31. DISP_MODULE_COLOR1,
  32. DISP_MODULE_RDMA2,
  33. DISP_MODULE_PWM1,
  34. DISP_MODULE_OD,
  35. DISP_MODULE_MERGE,
  36. DISP_MODULE_SPLIT0,
  37. DISP_MODULE_SPLIT1,
  38. DISP_MODULE_DSI1,
  39. DISP_MODULE_DSIDUAL,
  40. DISP_MODULE_SMI_LARB0,
  41. DISP_MODULE_SMI_COMMON,
  42. DISP_MODULE_UNKNOWN, /* 20 */
  43. DISP_MODULE_NUM
  44. } DISP_MODULE_ENUM;
  45. typedef enum {
  46. DISP_REG_OVL0,
  47. DISP_REG_OVL1,
  48. DISP_REG_RDMA0,
  49. DISP_REG_RDMA1,
  50. DISP_REG_WDMA0,
  51. DISP_REG_COLOR,
  52. DISP_REG_CCORR,
  53. DISP_REG_AAL,
  54. DISP_REG_GAMMA,
  55. DISP_REG_DITHER,
  56. DISP_REG_UFOE,
  57. DISP_REG_PWM,
  58. DISP_REG_WDMA1,
  59. DISP_REG_MUTEX,
  60. DISP_REG_DSI0,
  61. DISP_REG_DPI0,
  62. DISP_REG_CONFIG,
  63. DISP_REG_SMI_LARB0,
  64. DISP_REG_SMI_COMMON,
  65. DISP_REG_MIPI,
  66. DISP_REG_CONFIG2,
  67. DISP_REG_CONFIG3,
  68. DISP_REG_IO_DRIVING1,
  69. DISP_REG_IO_DRIVING2,
  70. DISP_REG_IO_DRIVING3,
  71. DISP_REG_EFUSE,
  72. DISP_REG_EFUSE_PERMISSION,
  73. DISP_RGE_EFUSE_KEY,
  74. DISP_TVDPLL_CFG6,
  75. DISP_TVDPLL_CON0,
  76. DISP_TVDPLL_CON1,
  77. DISP_REG_OD,
  78. DISP_RGE_VENCPLL,
  79. DISP_REG_NUM
  80. } DISP_REG_ENUM;
  81. typedef enum {
  82. SOF_SINGLE = 0,
  83. SOF_DSI0,
  84. SOF_DSI1,
  85. SOF_DPI0,
  86. } MUTEX_SOF;
  87. enum OVL_LAYER_SOURCE {
  88. OVL_LAYER_SOURCE_MEM = 0,
  89. OVL_LAYER_SOURCE_RESERVED = 1,
  90. OVL_LAYER_SOURCE_SCL = 2,
  91. OVL_LAYER_SOURCE_PQ = 3,
  92. };
  93. enum OVL_LAYER_SECURE_MODE {
  94. OVL_LAYER_NORMAL_BUFFER = 0,
  95. OVL_LAYER_SECURE_BUFFER = 1,
  96. OVL_LAYER_PROTECTED_BUFFER = 2
  97. };
  98. typedef enum {
  99. CMDQ_DISABLE = 0,
  100. CMDQ_ENABLE
  101. } CMDQ_SWITCH;
  102. typedef enum {
  103. CMDQ_BEFORE_STREAM_SOF,
  104. CMDQ_WAIT_STREAM_EOF_EVENT,
  105. CMDQ_CHECK_IDLE_AFTER_STREAM_EOF,
  106. CMDQ_AFTER_STREAM_EOF,
  107. CMDQ_ESD_CHECK_READ,
  108. CMDQ_ESD_CHECK_CMP,
  109. CMDQ_ESD_ALLC_SLOT,
  110. CMDQ_ESD_FREE_SLOT,
  111. CMDQ_STOP_VDO_MODE,
  112. CMDQ_START_VDO_MODE,
  113. CMDQ_DSI_RESET
  114. } CMDQ_STATE;
  115. typedef enum {
  116. DDP_IRQ_LEVEL_ALL = 0,
  117. DDP_IRQ_LEVEL_NONE,
  118. DDP_IRQ_LEVEL_ERROR
  119. } DDP_IRQ_LEVEL;
  120. typedef struct module_map_s {
  121. DISP_MODULE_ENUM module;
  122. int bit;
  123. } module_map_t;
  124. typedef struct {
  125. int m;
  126. int v;
  127. } m_to_b;
  128. typedef struct mout_s {
  129. int id;
  130. m_to_b out_id_bit_map[5];
  131. volatile unsigned long *reg;
  132. unsigned int reg_val;
  133. } mout_t;
  134. typedef struct selection_s {
  135. int id;
  136. int id_bit_map[5];
  137. volatile unsigned long *reg;
  138. unsigned int reg_val;
  139. } sel_t;
  140. #endif