ddp_dsi.h 2.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171
  1. #ifndef __DSI_DRV_H__
  2. #define __DSI_DRV_H__
  3. #include "lcm_drv.h"
  4. #ifdef __cplusplus
  5. extern "C" {
  6. #endif
  7. // ---------------------------------------------------------------------------
  8. #define DSI_CHECK_RET(expr) \
  9. do { \
  10. DSI_STATUS ret = (expr); \
  11. ASSERT(DSI_STATUS_OK == ret); \
  12. } while (0)
  13. // ---------------------------------------------------------------------------
  14. #define DSI_DCS_SHORT_PACKET_ID_0 0x05
  15. #define DSI_DCS_SHORT_PACKET_ID_1 0x15
  16. #define DSI_DCS_LONG_PACKET_ID 0x39
  17. #define DSI_DCS_READ_PACKET_ID 0x06
  18. #define DSI_GERNERIC_SHORT_PACKET_ID_1 0x13
  19. #define DSI_GERNERIC_SHORT_PACKET_ID_2 0x23
  20. #define DSI_GERNERIC_LONG_PACKET_ID 0x29
  21. #define DSI_GERNERIC_READ_LONG_PACKET_ID 0x14
  22. #define DSI_WMEM_CONTI (0x3C)
  23. #define DSI_RMEM_CONTI (0x3E)
  24. // ESD recovery method for video mode LCM
  25. #define METHOD_NONCONTINUOUS_CLK (0x1)
  26. #define METHOD_BUS_TURN_AROUND (0x2)
  27. // State of DSI engine
  28. #define DSI_VDO_VSA_VS_STATE (0x008)
  29. #define DSI_VDO_VSA_HS_STATE (0x010)
  30. #define DSI_VDO_VSA_VE_STATE (0x020)
  31. #define DSI_VDO_VBP_STATE (0x040)
  32. #define DSI_VDO_VACT_STATE (0x080)
  33. #define DSI_VDO_VFP_STATE (0x100)
  34. // ---------------------------------------------------------------------------
  35. typedef enum
  36. {
  37. DSI_STATUS_OK = 0,
  38. DSI_STATUS_ERROR,
  39. } DSI_STATUS;
  40. typedef enum
  41. {
  42. SHORT_PACKET_RW = 0,
  43. FB_WRITE = 1,
  44. LONG_PACKET_W = 2,
  45. FB_READ = 3,
  46. } DSI_INS_TYPE;
  47. typedef enum
  48. {
  49. DISABLE_BTA = 0,
  50. ENABLE_BTA = 1,
  51. } DSI_CMDQ_BTA;
  52. typedef enum
  53. {
  54. LOW_POWER = 0,
  55. HIGH_SPEED = 1,
  56. } DSI_CMDQ_HS;
  57. typedef enum
  58. {
  59. CL_8BITS = 0,
  60. CL_16BITS = 1,
  61. } DSI_CMDQ_CL;
  62. typedef enum
  63. {
  64. DISABLE_TE = 0,
  65. ENABLE_TE = 1,
  66. } DSI_CMDQ_TE;
  67. typedef enum
  68. {
  69. DISABLE_RPT = 0,
  70. ENABLE_RPT = 1,
  71. } DSI_CMDQ_RPT;
  72. typedef struct
  73. {
  74. unsigned type : 2;
  75. unsigned BTA : 1;
  76. unsigned HS : 1;
  77. unsigned CL : 1;
  78. unsigned TE : 1;
  79. unsigned Rsv : 1;
  80. unsigned RPT : 1;
  81. } DSI_CMDQ_CONFG, *PDSI_CMDQ_CONFIG;
  82. typedef struct
  83. {
  84. unsigned CONFG : 8;
  85. unsigned Data_ID : 8;
  86. unsigned Data0 : 8;
  87. unsigned Data1 : 8;
  88. } DSI_T0_INS, *PDSI_T0_INS;
  89. typedef struct
  90. {
  91. unsigned CONFG : 8;
  92. unsigned Data_ID : 8;
  93. unsigned mem_start0 : 8;
  94. unsigned mem_start1 : 8;
  95. } DSI_T1_INS, *PDSI_T1_INS;
  96. typedef struct
  97. {
  98. unsigned CONFG : 8;
  99. unsigned Data_ID : 8;
  100. unsigned WC16 : 16;
  101. unsigned int *pdata;
  102. } DSI_T2_INS, *PDSI_T2_INS;
  103. typedef struct
  104. {
  105. unsigned CONFG : 8;
  106. unsigned Data_ID : 8;
  107. unsigned mem_start0 : 8;
  108. unsigned mem_start1 : 8;
  109. } DSI_T3_INS, *PDSI_T3_INS;
  110. typedef struct
  111. {
  112. UINT8 TXDIV0;
  113. UINT8 TXDIV1;
  114. UINT32 SDM_PCW;
  115. UINT8 SSC_PH_INIT;
  116. UINT16 SSC_PRD;
  117. UINT16 SSC_DELTA1;
  118. UINT16 SSC_DELTA;
  119. }DSI_PLL_CONFIG;
  120. typedef enum
  121. {
  122. DSI_INTERFACE_0= 0,
  123. DSI_INTERFACE_1,
  124. DSI_INTERFACE_DUAL,
  125. DSI_INTERFACE_NUM,
  126. }DSI_INTERFACE_ID;
  127. #ifdef __cplusplus
  128. }
  129. #endif
  130. #endif // __DPI_DRV_H__