ax_mipi_api.h 4.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172
  1. /**********************************************************************************
  2. *
  3. * Copyright (c) 2019-2020 Beijing AXera Technology Co., Ltd. All Rights Reserved.
  4. *
  5. * This source file is the property of Beijing AXera Technology Co., Ltd. and
  6. * may not be copied or distributed in any isomorphic form without the prior
  7. * written consent of Beijing AXera Technology Co., Ltd.
  8. *
  9. **********************************************************************************/
  10. #ifndef __AX_MIPI_API__
  11. #define __AX_MIPI_API__
  12. #include "ax_base_type.h"
  13. #ifdef __cplusplus
  14. extern "C"
  15. {
  16. #endif
  17. typedef enum {
  18. AX_MIPI_TX_DEV_0 = 0,
  19. AX_MIPI_TX_DEV_1,
  20. AX_MIPI_TX_DEV_2,
  21. AX_MIPI_TX_DEV_MAX
  22. } AX_MIPI_TX_DEV_E;
  23. typedef enum {
  24. AX_MIPI_RX_DEV_0 = 0,
  25. AX_MIPI_RX_DEV_1,
  26. AX_MIPI_RX_DEV_2,
  27. AX_MIPI_RX_DEV_3,
  28. AX_MIPI_RX_DEV_MAX
  29. } AX_MIPI_RX_DEV_E;
  30. typedef enum {
  31. AX_MIPI_TX_SRC_SNS_0,
  32. AX_MIPI_TX_SRC_SNS_1,
  33. AX_MIPI_TX_SRC_SNS_2,
  34. AX_MIPI_TX_SRC_RAW_SCALAR_2,
  35. AX_MIPI_TX_SRC_RAW_SCALAR_3,
  36. AX_MIPI_TX_SRC_RLTM,
  37. AX_MIPI_TX_SRC_RLTM_INFO,
  38. } AX_MIPI_TX_SRC_E;
  39. typedef enum {
  40. AX_MIPI_DATA_RATE_80M = 0,
  41. AX_MIPI_DATA_RATE_100M,
  42. AX_MIPI_DATA_RATE_200M,
  43. AX_MIPI_DATA_RATE_300M,
  44. AX_MIPI_DATA_RATE_400M,
  45. AX_MIPI_DATA_RATE_500M,
  46. AX_MIPI_DATA_RATE_600M,
  47. AX_MIPI_DATA_RATE_700M,
  48. AX_MIPI_DATA_RATE_800M,
  49. AX_MIPI_DATA_RATE_900M,
  50. AX_MIPI_DATA_RATE_1000M,
  51. AX_MIPI_DATA_RATE_1100M,
  52. AX_MIPI_DATA_RATE_1200M,
  53. AX_MIPI_DATA_RATE_1300M,
  54. AX_MIPI_DATA_RATE_1400M,
  55. AX_MIPI_DATA_RATE_1500M,
  56. AX_MIPI_DATA_RATE_1600M,
  57. AX_MIPI_DATA_RATE_1700M,
  58. AX_MIPI_DATA_RATE_1800M,
  59. AX_MIPI_DATA_RATE_1900M,
  60. AX_MIPI_DATA_RATE_2000M,
  61. AX_MIPI_DATA_RATE_2100M,
  62. AX_MIPI_DATA_RATE_2200M,
  63. AX_MIPI_DATA_RATE_2300M,
  64. AX_MIPI_DATA_RATE_2400M,
  65. AX_MIPI_DATA_RATE_2500M,
  66. } AX_MIPI_DATA_RATE_E;
  67. typedef enum {
  68. AX_MIPI_RX_PHY0_SEL_LANE_0_1_2_3 = 0,
  69. AX_MIPI_RX_PHY0_SEL_LANE_2_3,
  70. AX_MIPI_RX_PHY1_SEL_LANE_0_1_2_3,
  71. AX_MIPI_RX_PHY1_SEL_LANE_2_3,
  72. AX_MIPI_RX_PHY2_SEL_LANE_0_1_2_3,
  73. AX_MIPI_RX_PHY2_SEL_LANE_2_3,
  74. } AX_MIPI_RX_PHY_SEL_E;
  75. typedef enum {
  76. AX_MIPI_LANE_1 = 1,
  77. AX_MIPI_LANE_2 = 2,
  78. AX_MIPI_LANE_4 = 4,
  79. } AX_MIPI_LANE_NUM_E;
  80. typedef enum {
  81. AX_MIPI_VC_0 = 0,
  82. AX_MIPI_VC_1,
  83. AX_MIPI_VC_2,
  84. AX_MIPI_VC_3,
  85. AX_MIPI_VC_4,
  86. AX_MIPI_VC_5,
  87. AX_MIPI_VC_6,
  88. AX_MIPI_VC_7,
  89. AX_MIPI_VC_8,
  90. AX_MIPI_VC_9,
  91. AX_MIPI_VC_10,
  92. AX_MIPI_VC_11,
  93. AX_MIPI_VC_12,
  94. AX_MIPI_VC_13,
  95. AX_MIPI_VC_14,
  96. AX_MIPI_VC_15,
  97. AX_MIPI_VC_MAX
  98. } AX_MIPI_VC_NUM_E;
  99. typedef enum {
  100. AX_MIPI_DT_RAW8 = 8,
  101. AX_MIPI_DT_RAW10 = 10,
  102. AX_MIPI_DT_RAW12 = 12,
  103. AX_MIPI_DT_RAW14 = 14,
  104. AX_MIPI_DT_RAW16 = 16,
  105. AX_MIPI_DT_YUV420 = 20,
  106. AX_MIPI_DT_MAX
  107. } AX_MIPI_DT_E;
  108. typedef enum {
  109. AX_MIPI_DOL_1 = 1,
  110. AX_MIPI_DOL_2,
  111. AX_MIPI_DOL_3,
  112. AX_MIPI_DOL_MAX
  113. } AX_MIPI_DOL_NUM_E;
  114. typedef struct {
  115. AX_MIPI_LANE_NUM_E eLaneNum;
  116. AX_MIPI_DATA_RATE_E eDataRate;
  117. AX_MIPI_RX_PHY_SEL_E ePhySel;
  118. AX_U8 nLaneMap[5];
  119. } AX_MIPI_RX_ATTR_S;
  120. typedef struct {
  121. AX_BOOL bIspBypass;
  122. AX_MIPI_TX_SRC_E eInputSrc;
  123. AX_MIPI_LANE_NUM_E eLaneNum; /*only 4*/
  124. AX_MIPI_DATA_RATE_E eDataRate; /*dphy datarate(Mbps)*/
  125. AX_MIPI_DOL_NUM_E eDolSplitNum; /*val(1, 2, 3)*/
  126. AX_U32 nImgWidth;
  127. AX_U32 nImgHeight;
  128. AX_MIPI_DT_E eImgDataType; /*val(8, 10, 12, 14)*/
  129. AX_MIPI_VC_NUM_E eImgVC;
  130. AX_U32 nNonImgWidth;
  131. AX_U32 nNonImgHeight;
  132. AX_U32 eNonImgDataType;
  133. AX_MIPI_DT_E eNonImgDT; /*val(8)*/
  134. AX_MIPI_VC_NUM_E eNonImgVC;
  135. AX_U8 nLaneMap[5];
  136. } AX_MIPI_TX_ATTR_S;
  137. AX_S32 AX_MIPI_TX_Init();
  138. AX_S32 AX_MIPI_TX_DeInit();
  139. AX_S32 AX_MIPI_TX_Reset(AX_MIPI_TX_DEV_E eMipiDev);
  140. AX_S32 AX_MIPI_TX_SetAttr(AX_MIPI_TX_DEV_E eMipiDev, AX_MIPI_TX_ATTR_S *pMipiAttr);
  141. AX_S32 AX_MIPI_TX_GetAttr(AX_MIPI_TX_DEV_E eMipiDev, AX_MIPI_TX_ATTR_S *pMipiAttr);
  142. AX_S32 AX_MIPI_TX_Start(AX_MIPI_TX_DEV_E eMipiDev);
  143. AX_S32 AX_MIPI_TX_Stop(AX_MIPI_TX_DEV_E eMipiDev);
  144. AX_S32 AX_MIPI_RX_Init();
  145. AX_S32 AX_MIPI_RX_DeInit();
  146. AX_S32 AX_MIPI_RX_Reset(AX_MIPI_RX_DEV_E eMipiDev);
  147. AX_S32 AX_MIPI_RX_SetAttr(AX_MIPI_RX_DEV_E eMipiDev, AX_MIPI_RX_ATTR_S *pMipiAttr);
  148. AX_S32 AX_MIPI_RX_GetAttr(AX_MIPI_RX_DEV_E eMipiDev, AX_MIPI_RX_ATTR_S *pMipiAttr);
  149. AX_S32 AX_MIPI_RX_Start(AX_MIPI_RX_DEV_E eMipiDev);
  150. AX_S32 AX_MIPI_RX_Stop(AX_MIPI_RX_DEV_E eMipiDev);
  151. #ifdef __cplusplus
  152. }
  153. #endif
  154. #endif // __AX_MIPI_API__