STM32F4xx_HAL_Driver  1.8.3
stm32f4xx_hal_dsi.h
Go to the documentation of this file.
1 
19 /* Define to prevent recursive inclusion -------------------------------------*/
20 #ifndef STM32F4xx_HAL_DSI_H
21 #define STM32F4xx_HAL_DSI_H
22 
23 #ifdef __cplusplus
24 extern "C" {
25 #endif
26 
27 /* Includes ------------------------------------------------------------------*/
28 #include "stm32f4xx_hal_def.h"
29 
30 #if defined(DSI)
31 
41 /* Exported types ------------------------------------------------------------*/
48 typedef struct
49 {
53  uint32_t TXEscapeCkdiv;
56  uint32_t NumberOfLanes;
60 
64 typedef struct
65 {
66  uint32_t PLLNDIV;
69  uint32_t PLLIDF;
72  uint32_t PLLODF;
76 
80 typedef struct
81 {
82  uint32_t VirtualChannelID;
84  uint32_t ColorCoding;
87  uint32_t LooselyPacked;
91  uint32_t Mode;
94  uint32_t PacketSize;
96  uint32_t NumberOfChunks;
98  uint32_t NullPacketSize;
100  uint32_t HSPolarity;
103  uint32_t VSPolarity;
106  uint32_t DEPolarity;
113  uint32_t HorizontalLine;
117  uint32_t VerticalBackPorch;
121  uint32_t VerticalActive;
123  uint32_t LPCommandEnable;
154 
158 typedef struct
159 {
160  uint32_t VirtualChannelID;
162  uint32_t ColorCoding;
165  uint32_t CommandSize;
174  uint32_t HSPolarity;
177  uint32_t VSPolarity;
180  uint32_t DEPolarity;
183  uint32_t VSyncPol;
186  uint32_t AutomaticRefresh;
193 
197 typedef struct
198 {
208  uint32_t LPGenShortReadNoP;
217  uint32_t LPGenLongWrite;
226  uint32_t LPDcsShortReadNoP;
229  uint32_t LPDcsLongWrite;
232  uint32_t LPMaxReadPacket;
239 
243 typedef struct
244 {
251  uint32_t DataLaneHS2LPTime;
254  uint32_t DataLaneLP2HSTime;
259  uint32_t StopWaitTime;
263 
267 typedef struct
268 {
269  uint32_t TimeoutCkdiv;
286  uint32_t BTATimeout;
289 
293 typedef enum
294 {
295  HAL_DSI_STATE_RESET = 0x00U,
296  HAL_DSI_STATE_READY = 0x01U,
297  HAL_DSI_STATE_ERROR = 0x02U,
298  HAL_DSI_STATE_BUSY = 0x03U,
299  HAL_DSI_STATE_TIMEOUT = 0x04U
301 
305 #if (USE_HAL_DSI_REGISTER_CALLBACKS == 1)
306 typedef struct __DSI_HandleTypeDef
307 #else
308 typedef struct
309 #endif /* USE_HAL_DSI_REGISTER_CALLBACKS */
310 {
311  DSI_TypeDef *Instance;
313  HAL_LockTypeDef Lock;
315  __IO uint32_t ErrorCode;
316  uint32_t ErrorMsk;
318 #if (USE_HAL_DSI_REGISTER_CALLBACKS == 1)
319  void (* TearingEffectCallback)(struct __DSI_HandleTypeDef *hdsi);
320  void (* EndOfRefreshCallback)(struct __DSI_HandleTypeDef *hdsi);
321  void (* ErrorCallback)(struct __DSI_HandleTypeDef *hdsi);
323  void (* MspInitCallback)(struct __DSI_HandleTypeDef *hdsi);
324  void (* MspDeInitCallback)(struct __DSI_HandleTypeDef *hdsi);
326 #endif /* USE_HAL_DSI_REGISTER_CALLBACKS */
327 
329 
330 #if (USE_HAL_DSI_REGISTER_CALLBACKS == 1)
334 typedef enum
335 {
341  HAL_DSI_ERROR_CB_ID = 0x04U
344 
348 typedef void (*pDSI_CallbackTypeDef)(DSI_HandleTypeDef *hdsi);
350 #endif /* USE_HAL_DSI_REGISTER_CALLBACKS */
355 /* Exported constants --------------------------------------------------------*/
362 #define DSI_ENTER_IDLE_MODE 0x39U
363 #define DSI_ENTER_INVERT_MODE 0x21U
364 #define DSI_ENTER_NORMAL_MODE 0x13U
365 #define DSI_ENTER_PARTIAL_MODE 0x12U
366 #define DSI_ENTER_SLEEP_MODE 0x10U
367 #define DSI_EXIT_IDLE_MODE 0x38U
368 #define DSI_EXIT_INVERT_MODE 0x20U
369 #define DSI_EXIT_SLEEP_MODE 0x11U
370 #define DSI_GET_3D_CONTROL 0x3FU
371 #define DSI_GET_ADDRESS_MODE 0x0BU
372 #define DSI_GET_BLUE_CHANNEL 0x08U
373 #define DSI_GET_DIAGNOSTIC_RESULT 0x0FU
374 #define DSI_GET_DISPLAY_MODE 0x0DU
375 #define DSI_GET_GREEN_CHANNEL 0x07U
376 #define DSI_GET_PIXEL_FORMAT 0x0CU
377 #define DSI_GET_POWER_MODE 0x0AU
378 #define DSI_GET_RED_CHANNEL 0x06U
379 #define DSI_GET_SCANLINE 0x45U
380 #define DSI_GET_SIGNAL_MODE 0x0EU
381 #define DSI_NOP 0x00U
382 #define DSI_READ_DDB_CONTINUE 0xA8U
383 #define DSI_READ_DDB_START 0xA1U
384 #define DSI_READ_MEMORY_CONTINUE 0x3EU
385 #define DSI_READ_MEMORY_START 0x2EU
386 #define DSI_SET_3D_CONTROL 0x3DU
387 #define DSI_SET_ADDRESS_MODE 0x36U
388 #define DSI_SET_COLUMN_ADDRESS 0x2AU
389 #define DSI_SET_DISPLAY_OFF 0x28U
390 #define DSI_SET_DISPLAY_ON 0x29U
391 #define DSI_SET_GAMMA_CURVE 0x26U
392 #define DSI_SET_PAGE_ADDRESS 0x2BU
393 #define DSI_SET_PARTIAL_COLUMNS 0x31U
394 #define DSI_SET_PARTIAL_ROWS 0x30U
395 #define DSI_SET_PIXEL_FORMAT 0x3AU
396 #define DSI_SET_SCROLL_AREA 0x33U
397 #define DSI_SET_SCROLL_START 0x37U
398 #define DSI_SET_TEAR_OFF 0x34U
399 #define DSI_SET_TEAR_ON 0x35U
400 #define DSI_SET_TEAR_SCANLINE 0x44U
401 #define DSI_SET_VSYNC_TIMING 0x40U
402 #define DSI_SOFT_RESET 0x01U
403 #define DSI_WRITE_LUT 0x2DU
404 #define DSI_WRITE_MEMORY_CONTINUE 0x3CU
405 #define DSI_WRITE_MEMORY_START 0x2CU
413 #define DSI_VID_MODE_NB_PULSES 0U
414 #define DSI_VID_MODE_NB_EVENTS 1U
415 #define DSI_VID_MODE_BURST 2U
423 #define DSI_COLOR_MODE_FULL 0x00000000U
424 #define DSI_COLOR_MODE_EIGHT DSI_WCR_COLM
432 #define DSI_DISPLAY_ON 0x00000000U
433 #define DSI_DISPLAY_OFF DSI_WCR_SHTDN
441 #define DSI_LP_COMMAND_DISABLE 0x00000000U
442 #define DSI_LP_COMMAND_ENABLE DSI_VMCR_LPCE
450 #define DSI_LP_HFP_DISABLE 0x00000000U
451 #define DSI_LP_HFP_ENABLE DSI_VMCR_LPHFPE
459 #define DSI_LP_HBP_DISABLE 0x00000000U
460 #define DSI_LP_HBP_ENABLE DSI_VMCR_LPHBPE
468 #define DSI_LP_VACT_DISABLE 0x00000000U
469 #define DSI_LP_VACT_ENABLE DSI_VMCR_LPVAE
477 #define DSI_LP_VFP_DISABLE 0x00000000U
478 #define DSI_LP_VFP_ENABLE DSI_VMCR_LPVFPE
486 #define DSI_LP_VBP_DISABLE 0x00000000U
487 #define DSI_LP_VBP_ENABLE DSI_VMCR_LPVBPE
495 #define DSI_LP_VSYNC_DISABLE 0x00000000U
496 #define DSI_LP_VSYNC_ENABLE DSI_VMCR_LPVSAE
504 #define DSI_FBTAA_DISABLE 0x00000000U
505 #define DSI_FBTAA_ENABLE DSI_VMCR_FBTAAE
513 #define DSI_TE_DSILINK 0x00000000U
514 #define DSI_TE_EXTERNAL DSI_WCFGR_TESRC
522 #define DSI_TE_RISING_EDGE 0x00000000U
523 #define DSI_TE_FALLING_EDGE DSI_WCFGR_TEPOL
531 #define DSI_VSYNC_FALLING 0x00000000U
532 #define DSI_VSYNC_RISING DSI_WCFGR_VSPOL
540 #define DSI_AR_DISABLE 0x00000000U
541 #define DSI_AR_ENABLE DSI_WCFGR_AR
549 #define DSI_TE_ACKNOWLEDGE_DISABLE 0x00000000U
550 #define DSI_TE_ACKNOWLEDGE_ENABLE DSI_CMCR_TEARE
558 #define DSI_ACKNOWLEDGE_DISABLE 0x00000000U
559 #define DSI_ACKNOWLEDGE_ENABLE DSI_CMCR_ARE
567 #define DSI_LP_GSW0P_DISABLE 0x00000000U
568 #define DSI_LP_GSW0P_ENABLE DSI_CMCR_GSW0TX
576 #define DSI_LP_GSW1P_DISABLE 0x00000000U
577 #define DSI_LP_GSW1P_ENABLE DSI_CMCR_GSW1TX
585 #define DSI_LP_GSW2P_DISABLE 0x00000000U
586 #define DSI_LP_GSW2P_ENABLE DSI_CMCR_GSW2TX
594 #define DSI_LP_GSR0P_DISABLE 0x00000000U
595 #define DSI_LP_GSR0P_ENABLE DSI_CMCR_GSR0TX
603 #define DSI_LP_GSR1P_DISABLE 0x00000000U
604 #define DSI_LP_GSR1P_ENABLE DSI_CMCR_GSR1TX
612 #define DSI_LP_GSR2P_DISABLE 0x00000000U
613 #define DSI_LP_GSR2P_ENABLE DSI_CMCR_GSR2TX
621 #define DSI_LP_GLW_DISABLE 0x00000000U
622 #define DSI_LP_GLW_ENABLE DSI_CMCR_GLWTX
630 #define DSI_LP_DSW0P_DISABLE 0x00000000U
631 #define DSI_LP_DSW0P_ENABLE DSI_CMCR_DSW0TX
639 #define DSI_LP_DSW1P_DISABLE 0x00000000U
640 #define DSI_LP_DSW1P_ENABLE DSI_CMCR_DSW1TX
648 #define DSI_LP_DSR0P_DISABLE 0x00000000U
649 #define DSI_LP_DSR0P_ENABLE DSI_CMCR_DSR0TX
657 #define DSI_LP_DLW_DISABLE 0x00000000U
658 #define DSI_LP_DLW_ENABLE DSI_CMCR_DLWTX
666 #define DSI_LP_MRDP_DISABLE 0x00000000U
667 #define DSI_LP_MRDP_ENABLE DSI_CMCR_MRDPS
675 #define DSI_HS_PM_DISABLE 0x00000000U
676 #define DSI_HS_PM_ENABLE DSI_TCCR3_PM
685 #define DSI_AUTO_CLK_LANE_CTRL_DISABLE 0x00000000U
686 #define DSI_AUTO_CLK_LANE_CTRL_ENABLE DSI_CLCR_ACR
694 #define DSI_ONE_DATA_LANE 0U
695 #define DSI_TWO_DATA_LANES 1U
703 #define DSI_FLOW_CONTROL_CRC_RX DSI_PCR_CRCRXE
704 #define DSI_FLOW_CONTROL_ECC_RX DSI_PCR_ECCRXE
705 #define DSI_FLOW_CONTROL_BTA DSI_PCR_BTAE
706 #define DSI_FLOW_CONTROL_EOTP_RX DSI_PCR_ETRXE
707 #define DSI_FLOW_CONTROL_EOTP_TX DSI_PCR_ETTXE
708 #define DSI_FLOW_CONTROL_ALL (DSI_FLOW_CONTROL_CRC_RX | DSI_FLOW_CONTROL_ECC_RX | \
709  DSI_FLOW_CONTROL_BTA | DSI_FLOW_CONTROL_EOTP_RX | \
710  DSI_FLOW_CONTROL_EOTP_TX)
718 #define DSI_RGB565 0x00000000U
719 #define DSI_RGB666 0x00000003U
720 #define DSI_RGB888 0x00000005U
728 #define DSI_LOOSELY_PACKED_ENABLE DSI_LCOLCR_LPE
729 #define DSI_LOOSELY_PACKED_DISABLE 0x00000000U
737 #define DSI_HSYNC_ACTIVE_HIGH 0x00000000U
738 #define DSI_HSYNC_ACTIVE_LOW DSI_LPCR_HSP
746 #define DSI_VSYNC_ACTIVE_HIGH 0x00000000U
747 #define DSI_VSYNC_ACTIVE_LOW DSI_LPCR_VSP
755 #define DSI_DATA_ENABLE_ACTIVE_HIGH 0x00000000U
756 #define DSI_DATA_ENABLE_ACTIVE_LOW DSI_LPCR_DEP
764 #define DSI_PLL_IN_DIV1 0x00000001U
765 #define DSI_PLL_IN_DIV2 0x00000002U
766 #define DSI_PLL_IN_DIV3 0x00000003U
767 #define DSI_PLL_IN_DIV4 0x00000004U
768 #define DSI_PLL_IN_DIV5 0x00000005U
769 #define DSI_PLL_IN_DIV6 0x00000006U
770 #define DSI_PLL_IN_DIV7 0x00000007U
778 #define DSI_PLL_OUT_DIV1 0x00000000U
779 #define DSI_PLL_OUT_DIV2 0x00000001U
780 #define DSI_PLL_OUT_DIV4 0x00000002U
781 #define DSI_PLL_OUT_DIV8 0x00000003U
789 #define DSI_FLAG_TE DSI_WISR_TEIF
790 #define DSI_FLAG_ER DSI_WISR_ERIF
791 #define DSI_FLAG_BUSY DSI_WISR_BUSY
792 #define DSI_FLAG_PLLLS DSI_WISR_PLLLS
793 #define DSI_FLAG_PLLL DSI_WISR_PLLLIF
794 #define DSI_FLAG_PLLU DSI_WISR_PLLUIF
795 #define DSI_FLAG_RRS DSI_WISR_RRS
796 #define DSI_FLAG_RR DSI_WISR_RRIF
804 #define DSI_IT_TE DSI_WIER_TEIE
805 #define DSI_IT_ER DSI_WIER_ERIE
806 #define DSI_IT_PLLL DSI_WIER_PLLLIE
807 #define DSI_IT_PLLU DSI_WIER_PLLUIE
808 #define DSI_IT_RR DSI_WIER_RRIE
816 #define DSI_DCS_SHORT_PKT_WRITE_P0 0x00000005U
817 #define DSI_DCS_SHORT_PKT_WRITE_P1 0x00000015U
818 #define DSI_GEN_SHORT_PKT_WRITE_P0 0x00000003U
819 #define DSI_GEN_SHORT_PKT_WRITE_P1 0x00000013U
820 #define DSI_GEN_SHORT_PKT_WRITE_P2 0x00000023U
828 #define DSI_DCS_LONG_PKT_WRITE 0x00000039U
829 #define DSI_GEN_LONG_PKT_WRITE 0x00000029U
837 #define DSI_DCS_SHORT_PKT_READ 0x00000006U
838 #define DSI_GEN_SHORT_PKT_READ_P0 0x00000004U
839 #define DSI_GEN_SHORT_PKT_READ_P1 0x00000014U
840 #define DSI_GEN_SHORT_PKT_READ_P2 0x00000024U
848 #define HAL_DSI_ERROR_NONE 0U
849 #define HAL_DSI_ERROR_ACK 0x00000001U
850 #define HAL_DSI_ERROR_PHY 0x00000002U
851 #define HAL_DSI_ERROR_TX 0x00000004U
852 #define HAL_DSI_ERROR_RX 0x00000008U
853 #define HAL_DSI_ERROR_ECC 0x00000010U
854 #define HAL_DSI_ERROR_CRC 0x00000020U
855 #define HAL_DSI_ERROR_PSE 0x00000040U
856 #define HAL_DSI_ERROR_EOT 0x00000080U
857 #define HAL_DSI_ERROR_OVF 0x00000100U
858 #define HAL_DSI_ERROR_GEN 0x00000200U
859 #if (USE_HAL_DSI_REGISTER_CALLBACKS == 1)
860 #define HAL_DSI_ERROR_INVALID_CALLBACK 0x00000400U
861 #endif /* USE_HAL_DSI_REGISTER_CALLBACKS */
869 #define DSI_CLOCK_LANE 0x00000000U
870 #define DSI_DATA_LANES 0x00000001U
878 #define DSI_SLEW_RATE_HSTX 0x00000000U
879 #define DSI_SLEW_RATE_LPTX 0x00000001U
880 #define DSI_HS_DELAY 0x00000002U
888 #define DSI_SWAP_LANE_PINS 0x00000000U
889 #define DSI_INVERT_HS_SIGNAL 0x00000001U
897 #define DSI_CLK_LANE 0x00000000U
898 #define DSI_DATA_LANE0 0x00000001U
899 #define DSI_DATA_LANE1 0x00000002U
907 #define DSI_TCLK_POST 0x00000000U
908 #define DSI_TLPX_CLK 0x00000001U
909 #define DSI_THS_EXIT 0x00000002U
910 #define DSI_TLPX_DATA 0x00000003U
911 #define DSI_THS_ZERO 0x00000004U
912 #define DSI_THS_TRAIL 0x00000005U
913 #define DSI_THS_PREPARE 0x00000006U
914 #define DSI_TCLK_ZERO 0x00000007U
915 #define DSI_TCLK_PREPARE 0x00000008U
925 /* Exported macros -----------------------------------------------------------*/
935 #if (USE_HAL_DSI_REGISTER_CALLBACKS == 1)
936 #define __HAL_DSI_RESET_HANDLE_STATE(__HANDLE__) do{ \
937  (__HANDLE__)->State = HAL_DSI_STATE_RESET; \
938  (__HANDLE__)->MspInitCallback = NULL; \
939  (__HANDLE__)->MspDeInitCallback = NULL; \
940  } while(0)
941 #else
942 #define __HAL_DSI_RESET_HANDLE_STATE(__HANDLE__) ((__HANDLE__)->State = HAL_DSI_STATE_RESET)
943 #endif /*USE_HAL_DSI_REGISTER_CALLBACKS */
944 
950 #define __HAL_DSI_ENABLE(__HANDLE__) do { \
951  __IO uint32_t tmpreg = 0x00U; \
952  SET_BIT((__HANDLE__)->Instance->CR, DSI_CR_EN);\
953  /* Delay after an DSI Host enabling */ \
954  tmpreg = READ_BIT((__HANDLE__)->Instance->CR, DSI_CR_EN);\
955  UNUSED(tmpreg); \
956  } while(0U)
957 
963 #define __HAL_DSI_DISABLE(__HANDLE__) do { \
964  __IO uint32_t tmpreg = 0x00U; \
965  CLEAR_BIT((__HANDLE__)->Instance->CR, DSI_CR_EN);\
966  /* Delay after an DSI Host disabling */ \
967  tmpreg = READ_BIT((__HANDLE__)->Instance->CR, DSI_CR_EN);\
968  UNUSED(tmpreg); \
969  } while(0U)
970 
976 #define __HAL_DSI_WRAPPER_ENABLE(__HANDLE__) do { \
977  __IO uint32_t tmpreg = 0x00U; \
978  SET_BIT((__HANDLE__)->Instance->WCR, DSI_WCR_DSIEN);\
979  /* Delay after an DSI wrapper enabling */ \
980  tmpreg = READ_BIT((__HANDLE__)->Instance->WCR, DSI_WCR_DSIEN);\
981  UNUSED(tmpreg); \
982  } while(0U)
983 
989 #define __HAL_DSI_WRAPPER_DISABLE(__HANDLE__) do { \
990  __IO uint32_t tmpreg = 0x00U; \
991  CLEAR_BIT((__HANDLE__)->Instance->WCR, DSI_WCR_DSIEN);\
992  /* Delay after an DSI wrapper disabling*/ \
993  tmpreg = READ_BIT((__HANDLE__)->Instance->WCR, DSI_WCR_DSIEN);\
994  UNUSED(tmpreg); \
995  } while(0U)
996 
1002 #define __HAL_DSI_PLL_ENABLE(__HANDLE__) do { \
1003  __IO uint32_t tmpreg = 0x00U; \
1004  SET_BIT((__HANDLE__)->Instance->WRPCR, DSI_WRPCR_PLLEN);\
1005  /* Delay after an DSI PLL enabling */ \
1006  tmpreg = READ_BIT((__HANDLE__)->Instance->WRPCR, DSI_WRPCR_PLLEN);\
1007  UNUSED(tmpreg); \
1008  } while(0U)
1009 
1015 #define __HAL_DSI_PLL_DISABLE(__HANDLE__) do { \
1016  __IO uint32_t tmpreg = 0x00U; \
1017  CLEAR_BIT((__HANDLE__)->Instance->WRPCR, DSI_WRPCR_PLLEN);\
1018  /* Delay after an DSI PLL disabling */ \
1019  tmpreg = READ_BIT((__HANDLE__)->Instance->WRPCR, DSI_WRPCR_PLLEN);\
1020  UNUSED(tmpreg); \
1021  } while(0U)
1022 
1028 #define __HAL_DSI_REG_ENABLE(__HANDLE__) do { \
1029  __IO uint32_t tmpreg = 0x00U; \
1030  SET_BIT((__HANDLE__)->Instance->WRPCR, DSI_WRPCR_REGEN);\
1031  /* Delay after an DSI regulator enabling */ \
1032  tmpreg = READ_BIT((__HANDLE__)->Instance->WRPCR, DSI_WRPCR_REGEN);\
1033  UNUSED(tmpreg); \
1034  } while(0U)
1035 
1041 #define __HAL_DSI_REG_DISABLE(__HANDLE__) do { \
1042  __IO uint32_t tmpreg = 0x00U; \
1043  CLEAR_BIT((__HANDLE__)->Instance->WRPCR, DSI_WRPCR_REGEN);\
1044  /* Delay after an DSI regulator disabling */ \
1045  tmpreg = READ_BIT((__HANDLE__)->Instance->WRPCR, DSI_WRPCR_REGEN);\
1046  UNUSED(tmpreg); \
1047  } while(0U)
1048 
1064 #define __HAL_DSI_GET_FLAG(__HANDLE__, __FLAG__) ((__HANDLE__)->Instance->WISR & (__FLAG__))
1065 
1078 #define __HAL_DSI_CLEAR_FLAG(__HANDLE__, __FLAG__) ((__HANDLE__)->Instance->WIFCR = (__FLAG__))
1079 
1092 #define __HAL_DSI_ENABLE_IT(__HANDLE__, __INTERRUPT__) ((__HANDLE__)->Instance->WIER |= (__INTERRUPT__))
1093 
1106 #define __HAL_DSI_DISABLE_IT(__HANDLE__, __INTERRUPT__) ((__HANDLE__)->Instance->WIER &= ~(__INTERRUPT__))
1107 
1120 #define __HAL_DSI_GET_IT_SOURCE(__HANDLE__, __INTERRUPT__) ((__HANDLE__)->Instance->WIER & (__INTERRUPT__))
1121 
1126 /* Exported functions --------------------------------------------------------*/
1134 HAL_StatusTypeDef HAL_DSI_Init(DSI_HandleTypeDef *hdsi, DSI_PLLInitTypeDef *PLLInit);
1135 HAL_StatusTypeDef HAL_DSI_DeInit(DSI_HandleTypeDef *hdsi);
1138 HAL_StatusTypeDef HAL_DSI_ConfigErrorMonitor(DSI_HandleTypeDef *hdsi, uint32_t ActiveErrors);
1139 /* Callbacks Register/UnRegister functions ***********************************/
1140 #if (USE_HAL_DSI_REGISTER_CALLBACKS == 1)
1141 HAL_StatusTypeDef HAL_DSI_RegisterCallback(DSI_HandleTypeDef *hdsi, HAL_DSI_CallbackIDTypeDef CallbackID,
1142  pDSI_CallbackTypeDef pCallback);
1143 HAL_StatusTypeDef HAL_DSI_UnRegisterCallback(DSI_HandleTypeDef *hdsi, HAL_DSI_CallbackIDTypeDef CallbackID);
1144 #endif /* USE_HAL_DSI_REGISTER_CALLBACKS */
1165 HAL_StatusTypeDef HAL_DSI_SetGenericVCID(DSI_HandleTypeDef *hdsi, uint32_t VirtualChannelID);
1166 HAL_StatusTypeDef HAL_DSI_ConfigVideoMode(DSI_HandleTypeDef *hdsi, DSI_VidCfgTypeDef *VidCfg);
1167 HAL_StatusTypeDef HAL_DSI_ConfigAdaptedCommandMode(DSI_HandleTypeDef *hdsi, DSI_CmdCfgTypeDef *CmdCfg);
1168 HAL_StatusTypeDef HAL_DSI_ConfigCommand(DSI_HandleTypeDef *hdsi, DSI_LPCmdTypeDef *LPCmd);
1169 HAL_StatusTypeDef HAL_DSI_ConfigFlowControl(DSI_HandleTypeDef *hdsi, uint32_t FlowControl);
1170 HAL_StatusTypeDef HAL_DSI_ConfigPhyTimer(DSI_HandleTypeDef *hdsi, DSI_PHY_TimerTypeDef *PhyTimers);
1171 HAL_StatusTypeDef HAL_DSI_ConfigHostTimeouts(DSI_HandleTypeDef *hdsi, DSI_HOST_TimeoutTypeDef *HostTimeouts);
1172 HAL_StatusTypeDef HAL_DSI_Start(DSI_HandleTypeDef *hdsi);
1173 HAL_StatusTypeDef HAL_DSI_Stop(DSI_HandleTypeDef *hdsi);
1174 HAL_StatusTypeDef HAL_DSI_Refresh(DSI_HandleTypeDef *hdsi);
1175 HAL_StatusTypeDef HAL_DSI_ColorMode(DSI_HandleTypeDef *hdsi, uint32_t ColorMode);
1176 HAL_StatusTypeDef HAL_DSI_Shutdown(DSI_HandleTypeDef *hdsi, uint32_t Shutdown);
1177 HAL_StatusTypeDef HAL_DSI_ShortWrite(DSI_HandleTypeDef *hdsi,
1178  uint32_t ChannelID,
1179  uint32_t Mode,
1180  uint32_t Param1,
1181  uint32_t Param2);
1182 HAL_StatusTypeDef HAL_DSI_LongWrite(DSI_HandleTypeDef *hdsi,
1183  uint32_t ChannelID,
1184  uint32_t Mode,
1185  uint32_t NbParams,
1186  uint32_t Param1,
1187  const uint8_t *ParametersTable);
1188 HAL_StatusTypeDef HAL_DSI_Read(DSI_HandleTypeDef *hdsi,
1189  uint32_t ChannelNbr,
1190  uint8_t *Array,
1191  uint32_t Size,
1192  uint32_t Mode,
1193  uint32_t DCSCmd,
1194  uint8_t *ParametersTable);
1195 HAL_StatusTypeDef HAL_DSI_EnterULPMData(DSI_HandleTypeDef *hdsi);
1196 HAL_StatusTypeDef HAL_DSI_ExitULPMData(DSI_HandleTypeDef *hdsi);
1197 HAL_StatusTypeDef HAL_DSI_EnterULPM(DSI_HandleTypeDef *hdsi);
1198 HAL_StatusTypeDef HAL_DSI_ExitULPM(DSI_HandleTypeDef *hdsi);
1199 
1200 HAL_StatusTypeDef HAL_DSI_PatternGeneratorStart(DSI_HandleTypeDef *hdsi, uint32_t Mode, uint32_t Orientation);
1201 HAL_StatusTypeDef HAL_DSI_PatternGeneratorStop(DSI_HandleTypeDef *hdsi);
1202 
1203 HAL_StatusTypeDef HAL_DSI_SetSlewRateAndDelayTuning(DSI_HandleTypeDef *hdsi, uint32_t CommDelay, uint32_t Lane,
1204  uint32_t Value);
1205 HAL_StatusTypeDef HAL_DSI_SetLowPowerRXFilter(DSI_HandleTypeDef *hdsi, uint32_t Frequency);
1206 HAL_StatusTypeDef HAL_DSI_SetSDD(DSI_HandleTypeDef *hdsi, FunctionalState State);
1207 HAL_StatusTypeDef HAL_DSI_SetLanePinsConfiguration(DSI_HandleTypeDef *hdsi, uint32_t CustomLane, uint32_t Lane,
1208  FunctionalState State);
1209 HAL_StatusTypeDef HAL_DSI_SetPHYTimings(DSI_HandleTypeDef *hdsi, uint32_t Timing, FunctionalState State,
1210  uint32_t Value);
1211 HAL_StatusTypeDef HAL_DSI_ForceTXStopMode(DSI_HandleTypeDef *hdsi, uint32_t Lane, FunctionalState State);
1212 HAL_StatusTypeDef HAL_DSI_ForceRXLowPower(DSI_HandleTypeDef *hdsi, FunctionalState State);
1213 HAL_StatusTypeDef HAL_DSI_ForceDataLanesInRX(DSI_HandleTypeDef *hdsi, FunctionalState State);
1214 HAL_StatusTypeDef HAL_DSI_SetPullDown(DSI_HandleTypeDef *hdsi, FunctionalState State);
1215 HAL_StatusTypeDef HAL_DSI_SetContentionDetectionOff(DSI_HandleTypeDef *hdsi, FunctionalState State);
1216 
1225 uint32_t HAL_DSI_GetError(const DSI_HandleTypeDef *hdsi);
1227 
1236 /* Private types -------------------------------------------------------------*/
1237 /* Private defines -----------------------------------------------------------*/
1238 /* Private variables ---------------------------------------------------------*/
1239 /* Private constants ---------------------------------------------------------*/
1243 #define DSI_MAX_RETURN_PKT_SIZE (0x00000037U)
1248 /* Private macros ------------------------------------------------------------*/
1252 #define IS_DSI_PLL_NDIV(NDIV) ((10U <= (NDIV)) && ((NDIV) <= 125U))
1253 #define IS_DSI_PLL_IDF(IDF) (((IDF) == DSI_PLL_IN_DIV1) || \
1254  ((IDF) == DSI_PLL_IN_DIV2) || \
1255  ((IDF) == DSI_PLL_IN_DIV3) || \
1256  ((IDF) == DSI_PLL_IN_DIV4) || \
1257  ((IDF) == DSI_PLL_IN_DIV5) || \
1258  ((IDF) == DSI_PLL_IN_DIV6) || \
1259  ((IDF) == DSI_PLL_IN_DIV7))
1260 #define IS_DSI_PLL_ODF(ODF) (((ODF) == DSI_PLL_OUT_DIV1) || \
1261  ((ODF) == DSI_PLL_OUT_DIV2) || \
1262  ((ODF) == DSI_PLL_OUT_DIV4) || \
1263  ((ODF) == DSI_PLL_OUT_DIV8))
1264 #define IS_DSI_AUTO_CLKLANE_CONTROL(AutoClkLane) (((AutoClkLane) == DSI_AUTO_CLK_LANE_CTRL_DISABLE)\
1265  || ((AutoClkLane) == DSI_AUTO_CLK_LANE_CTRL_ENABLE))
1266 #define IS_DSI_NUMBER_OF_LANES(NumberOfLanes) (((NumberOfLanes) == DSI_ONE_DATA_LANE)\
1267  || ((NumberOfLanes) == DSI_TWO_DATA_LANES))
1268 #define IS_DSI_FLOW_CONTROL(FlowControl) (((FlowControl) | DSI_FLOW_CONTROL_ALL) == DSI_FLOW_CONTROL_ALL)
1269 #define IS_DSI_COLOR_CODING(ColorCoding) ((ColorCoding) <= 5U)
1270 #define IS_DSI_LOOSELY_PACKED(LooselyPacked) (((LooselyPacked) == DSI_LOOSELY_PACKED_ENABLE)\
1271  || ((LooselyPacked) == DSI_LOOSELY_PACKED_DISABLE))
1272 #define IS_DSI_DE_POLARITY(DataEnable) (((DataEnable) == DSI_DATA_ENABLE_ACTIVE_HIGH)\
1273  || ((DataEnable) == DSI_DATA_ENABLE_ACTIVE_LOW))
1274 #define IS_DSI_VSYNC_POLARITY(Vsync) (((Vsync) == DSI_VSYNC_ACTIVE_HIGH)\
1275  || ((Vsync) == DSI_VSYNC_ACTIVE_LOW))
1276 #define IS_DSI_HSYNC_POLARITY(Hsync) (((Hsync) == DSI_HSYNC_ACTIVE_HIGH)\
1277  || ((Hsync) == DSI_HSYNC_ACTIVE_LOW))
1278 #define IS_DSI_VIDEO_MODE_TYPE(VideoModeType) (((VideoModeType) == DSI_VID_MODE_NB_PULSES) || \
1279  ((VideoModeType) == DSI_VID_MODE_NB_EVENTS) || \
1280  ((VideoModeType) == DSI_VID_MODE_BURST))
1281 #define IS_DSI_COLOR_MODE(ColorMode) (((ColorMode) == DSI_COLOR_MODE_FULL)\
1282  || ((ColorMode) == DSI_COLOR_MODE_EIGHT))
1283 #define IS_DSI_SHUT_DOWN(ShutDown) (((ShutDown) == DSI_DISPLAY_ON) || ((ShutDown) == DSI_DISPLAY_OFF))
1284 #define IS_DSI_LP_COMMAND(LPCommand) (((LPCommand) == DSI_LP_COMMAND_DISABLE)\
1285  || ((LPCommand) == DSI_LP_COMMAND_ENABLE))
1286 #define IS_DSI_LP_HFP(LPHFP) (((LPHFP) == DSI_LP_HFP_DISABLE) || ((LPHFP) == DSI_LP_HFP_ENABLE))
1287 #define IS_DSI_LP_HBP(LPHBP) (((LPHBP) == DSI_LP_HBP_DISABLE) || ((LPHBP) == DSI_LP_HBP_ENABLE))
1288 #define IS_DSI_LP_VACTIVE(LPVActive) (((LPVActive) == DSI_LP_VACT_DISABLE)\
1289  || ((LPVActive) == DSI_LP_VACT_ENABLE))
1290 #define IS_DSI_LP_VFP(LPVFP) (((LPVFP) == DSI_LP_VFP_DISABLE) || ((LPVFP) == DSI_LP_VFP_ENABLE))
1291 #define IS_DSI_LP_VBP(LPVBP) (((LPVBP) == DSI_LP_VBP_DISABLE) || ((LPVBP) == DSI_LP_VBP_ENABLE))
1292 #define IS_DSI_LP_VSYNC(LPVSYNC) (((LPVSYNC) == DSI_LP_VSYNC_DISABLE)\
1293  || ((LPVSYNC) == DSI_LP_VSYNC_ENABLE))
1294 #define IS_DSI_FBTAA(FrameBTAAcknowledge) (((FrameBTAAcknowledge) == DSI_FBTAA_DISABLE)\
1295  || ((FrameBTAAcknowledge) == DSI_FBTAA_ENABLE))
1296 #define IS_DSI_TE_SOURCE(TESource) (((TESource) == DSI_TE_DSILINK) || ((TESource) == DSI_TE_EXTERNAL))
1297 #define IS_DSI_TE_POLARITY(TEPolarity) (((TEPolarity) == DSI_TE_RISING_EDGE)\
1298  || ((TEPolarity) == DSI_TE_FALLING_EDGE))
1299 #define IS_DSI_AUTOMATIC_REFRESH(AutomaticRefresh) (((AutomaticRefresh) == DSI_AR_DISABLE)\
1300  || ((AutomaticRefresh) == DSI_AR_ENABLE))
1301 #define IS_DSI_VS_POLARITY(VSPolarity) (((VSPolarity) == DSI_VSYNC_FALLING)\
1302  || ((VSPolarity) == DSI_VSYNC_RISING))
1303 #define IS_DSI_TE_ACK_REQUEST(TEAcknowledgeRequest) (((TEAcknowledgeRequest) == DSI_TE_ACKNOWLEDGE_DISABLE)\
1304  || ((TEAcknowledgeRequest) == DSI_TE_ACKNOWLEDGE_ENABLE))
1305 #define IS_DSI_ACK_REQUEST(AcknowledgeRequest) (((AcknowledgeRequest) == DSI_ACKNOWLEDGE_DISABLE)\
1306  || ((AcknowledgeRequest) == DSI_ACKNOWLEDGE_ENABLE))
1307 #define IS_DSI_LP_GSW0P(LP_GSW0P) (((LP_GSW0P) == DSI_LP_GSW0P_DISABLE)\
1308  || ((LP_GSW0P) == DSI_LP_GSW0P_ENABLE))
1309 #define IS_DSI_LP_GSW1P(LP_GSW1P) (((LP_GSW1P) == DSI_LP_GSW1P_DISABLE)\
1310  || ((LP_GSW1P) == DSI_LP_GSW1P_ENABLE))
1311 #define IS_DSI_LP_GSW2P(LP_GSW2P) (((LP_GSW2P) == DSI_LP_GSW2P_DISABLE)\
1312  || ((LP_GSW2P) == DSI_LP_GSW2P_ENABLE))
1313 #define IS_DSI_LP_GSR0P(LP_GSR0P) (((LP_GSR0P) == DSI_LP_GSR0P_DISABLE)\
1314  || ((LP_GSR0P) == DSI_LP_GSR0P_ENABLE))
1315 #define IS_DSI_LP_GSR1P(LP_GSR1P) (((LP_GSR1P) == DSI_LP_GSR1P_DISABLE)\
1316  || ((LP_GSR1P) == DSI_LP_GSR1P_ENABLE))
1317 #define IS_DSI_LP_GSR2P(LP_GSR2P) (((LP_GSR2P) == DSI_LP_GSR2P_DISABLE)\
1318  || ((LP_GSR2P) == DSI_LP_GSR2P_ENABLE))
1319 #define IS_DSI_LP_GLW(LP_GLW) (((LP_GLW) == DSI_LP_GLW_DISABLE)\
1320  || ((LP_GLW) == DSI_LP_GLW_ENABLE))
1321 #define IS_DSI_LP_DSW0P(LP_DSW0P) (((LP_DSW0P) == DSI_LP_DSW0P_DISABLE)\
1322  || ((LP_DSW0P) == DSI_LP_DSW0P_ENABLE))
1323 #define IS_DSI_LP_DSW1P(LP_DSW1P) (((LP_DSW1P) == DSI_LP_DSW1P_DISABLE)\
1324  || ((LP_DSW1P) == DSI_LP_DSW1P_ENABLE))
1325 #define IS_DSI_LP_DSR0P(LP_DSR0P) (((LP_DSR0P) == DSI_LP_DSR0P_DISABLE)\
1326  || ((LP_DSR0P) == DSI_LP_DSR0P_ENABLE))
1327 #define IS_DSI_LP_DLW(LP_DLW) (((LP_DLW) == DSI_LP_DLW_DISABLE)\
1328  || ((LP_DLW) == DSI_LP_DLW_ENABLE))
1329 #define IS_DSI_LP_MRDP(LP_MRDP) (((LP_MRDP) == DSI_LP_MRDP_DISABLE)\
1330  || ((LP_MRDP) == DSI_LP_MRDP_ENABLE))
1331 #define IS_DSI_SHORT_WRITE_PACKET_TYPE(MODE) (((MODE) == DSI_DCS_SHORT_PKT_WRITE_P0) || \
1332  ((MODE) == DSI_DCS_SHORT_PKT_WRITE_P1) || \
1333  ((MODE) == DSI_GEN_SHORT_PKT_WRITE_P0) || \
1334  ((MODE) == DSI_GEN_SHORT_PKT_WRITE_P1) || \
1335  ((MODE) == DSI_GEN_SHORT_PKT_WRITE_P2))
1336 #define IS_DSI_LONG_WRITE_PACKET_TYPE(MODE) (((MODE) == DSI_DCS_LONG_PKT_WRITE) || \
1337  ((MODE) == DSI_GEN_LONG_PKT_WRITE))
1338 #define IS_DSI_READ_PACKET_TYPE(MODE) (((MODE) == DSI_DCS_SHORT_PKT_READ) || \
1339  ((MODE) == DSI_GEN_SHORT_PKT_READ_P0) || \
1340  ((MODE) == DSI_GEN_SHORT_PKT_READ_P1) || \
1341  ((MODE) == DSI_GEN_SHORT_PKT_READ_P2))
1342 #define IS_DSI_COMMUNICATION_DELAY(CommDelay) (((CommDelay) == DSI_SLEW_RATE_HSTX) || \
1343  ((CommDelay) == DSI_SLEW_RATE_LPTX) || \
1344  ((CommDelay) == DSI_HS_DELAY))
1345 #define IS_DSI_LANE_GROUP(Lane) (((Lane) == DSI_CLOCK_LANE) || ((Lane) == DSI_DATA_LANES))
1346 #define IS_DSI_CUSTOM_LANE(CustomLane) (((CustomLane) == DSI_SWAP_LANE_PINS)\
1347  || ((CustomLane) == DSI_INVERT_HS_SIGNAL))
1348 #define IS_DSI_LANE(Lane) (((Lane) == DSI_CLOCK_LANE) || \
1349  ((Lane) == DSI_DATA_LANE0) || ((Lane) == DSI_DATA_LANE1))
1350 #define IS_DSI_PHY_TIMING(Timing) (((Timing) == DSI_TCLK_POST ) || \
1351  ((Timing) == DSI_TLPX_CLK ) || \
1352  ((Timing) == DSI_THS_EXIT ) || \
1353  ((Timing) == DSI_TLPX_DATA ) || \
1354  ((Timing) == DSI_THS_ZERO ) || \
1355  ((Timing) == DSI_THS_TRAIL ) || \
1356  ((Timing) == DSI_THS_PREPARE ) || \
1357  ((Timing) == DSI_TCLK_ZERO ) || \
1358  ((Timing) == DSI_TCLK_PREPARE))
1359 
1371 #endif /* DSI */
1372 
1373 #ifdef __cplusplus
1374 }
1375 #endif
1376 
1377 #endif /* STM32F4xx_HAL_DSI_H */
DSI_InitTypeDef Init
DSI_TypeDef * Instance
__IO HAL_DSI_StateTypeDef State
uint32_t ErrorMsk
ADC handle Structure definition.
uint32_t LPVerticalBackPorchEnable
uint32_t TearingEffectPolarity
uint32_t LPHorizontalBackPorchEnable
uint32_t LPVerticalSyncActiveEnable
uint32_t LPDcsShortWriteOneP
uint32_t FrameBTAAcknowledgeEnable
uint32_t LPVerticalFrontPorchEnable
uint32_t LPVerticalActiveEnable
uint32_t AutomaticClockLaneControl
uint32_t LPGenShortWriteOneP
uint32_t LPGenShortWriteTwoP
uint32_t LPVACTLargestPacketSize
uint32_t LPHorizontalFrontPorchEnable
HAL_DSI_StateTypeDef
DSI States Structure definition.
HAL_DSI_CallbackIDTypeDef
HAL DSI Callback ID enumeration definition.
void(* pDSI_CallbackTypeDef)(DSI_HandleTypeDef *hdsi)
HAL DSI Callback pointer definition.
struct __DSI_HandleTypeDef else typedef struct endif DSI_HandleTypeDef
DSI Handle Structure definition.
@ HAL_DSI_ENDOF_REFRESH_CB_ID
@ HAL_DSI_MSPINIT_CB_ID
@ HAL_DSI_TEARING_EFFECT_CB_ID
@ HAL_DSI_MSPDEINIT_CB_ID
@ HAL_DSI_ERROR_CB_ID
DSI Adapted command mode configuration.
DSI HOST Timeouts definition.
DSI Init Structure definition.
DSI command transmission mode configuration.
DSI PHY Timings definition.
DSI PLL Clock structure definition.
DSI Video mode configuration.
HAL_StatusTypeDef HAL_DSI_Init(DSI_HandleTypeDef *hdsi, DSI_PLLInitTypeDef *PLLInit)
Initializes the DSI according to the specified parameters in the DSI_InitTypeDef and create the assoc...
HAL_StatusTypeDef HAL_DSI_DeInit(DSI_HandleTypeDef *hdsi)
De-initializes the DSI peripheral registers to their default reset values.
HAL_StatusTypeDef HAL_DSI_ConfigErrorMonitor(DSI_HandleTypeDef *hdsi, uint32_t ActiveErrors)
Enable the error monitor flags.
HAL_StatusTypeDef HAL_DSI_RegisterCallback(DSI_HandleTypeDef *hdsi, HAL_DSI_CallbackIDTypeDef CallbackID, pDSI_CallbackTypeDef pCallback)
Register a User DSI Callback To be used instead of the weak predefined callback.
void HAL_DSI_MspDeInit(DSI_HandleTypeDef *hdsi)
De-initializes the DSI MSP.
void HAL_DSI_MspInit(DSI_HandleTypeDef *hdsi)
Initializes the DSI MSP.
HAL_StatusTypeDef HAL_DSI_UnRegisterCallback(DSI_HandleTypeDef *hdsi, HAL_DSI_CallbackIDTypeDef CallbackID)
Unregister a DSI Callback DSI callback is redirected to the weak predefined callback.
void HAL_DSI_IRQHandler(DSI_HandleTypeDef *hdsi)
Handles DSI interrupt request.
void HAL_DSI_ErrorCallback(DSI_HandleTypeDef *hdsi)
Operation Error DSI callback.
void HAL_DSI_TearingEffectCallback(DSI_HandleTypeDef *hdsi)
Tearing Effect DSI callback.
void HAL_DSI_EndOfRefreshCallback(DSI_HandleTypeDef *hdsi)
End of Refresh DSI callback.
HAL_StatusTypeDef HAL_DSI_ForceRXLowPower(DSI_HandleTypeDef *hdsi, FunctionalState State)
Force LP Receiver in Low-Power Mode.
HAL_StatusTypeDef HAL_DSI_ForceDataLanesInRX(DSI_HandleTypeDef *hdsi, FunctionalState State)
Force Data Lanes in RX Mode after a BTA.
HAL_StatusTypeDef HAL_DSI_Shutdown(DSI_HandleTypeDef *hdsi, uint32_t Shutdown)
Control the display shutdown in Video mode.
HAL_StatusTypeDef HAL_DSI_ShortWrite(DSI_HandleTypeDef *hdsi, uint32_t ChannelID, uint32_t Mode, uint32_t Param1, uint32_t Param2)
write short DCS or short Generic command
HAL_StatusTypeDef HAL_DSI_LongWrite(DSI_HandleTypeDef *hdsi, uint32_t ChannelID, uint32_t Mode, uint32_t NbParams, uint32_t Param1, const uint8_t *ParametersTable)
write long DCS or long Generic command
HAL_StatusTypeDef HAL_DSI_EnterULPMData(DSI_HandleTypeDef *hdsi)
Enter the ULPM (Ultra Low Power Mode) with the D-PHY PLL running (only data lanes are in ULPM)
HAL_StatusTypeDef HAL_DSI_SetSDD(DSI_HandleTypeDef *hdsi, FunctionalState State)
Activate an additional current path on all lanes to meet the SDDTx parameter defined in the MIPI D-PH...
HAL_StatusTypeDef HAL_DSI_ConfigHostTimeouts(DSI_HandleTypeDef *hdsi, DSI_HOST_TimeoutTypeDef *HostTimeouts)
Configure the DSI HOST timeout parameters.
HAL_StatusTypeDef HAL_DSI_ExitULPMData(DSI_HandleTypeDef *hdsi)
Exit the ULPM (Ultra Low Power Mode) with the D-PHY PLL running (only data lanes are in ULPM)
HAL_StatusTypeDef HAL_DSI_EnterULPM(DSI_HandleTypeDef *hdsi)
Enter the ULPM (Ultra Low Power Mode) with the D-PHY PLL turned off (both data and clock lanes are in...
HAL_StatusTypeDef HAL_DSI_SetPHYTimings(DSI_HandleTypeDef *hdsi, uint32_t Timing, FunctionalState State, uint32_t Value)
Set custom timing for the PHY.
HAL_StatusTypeDef HAL_DSI_ConfigVideoMode(DSI_HandleTypeDef *hdsi, DSI_VidCfgTypeDef *VidCfg)
Select video mode and configure the corresponding parameters.
HAL_StatusTypeDef HAL_DSI_ExitULPM(DSI_HandleTypeDef *hdsi)
Exit the ULPM (Ultra Low Power Mode) with the D-PHY PLL turned off (both data and clock lanes are in ...
HAL_StatusTypeDef HAL_DSI_ConfigPhyTimer(DSI_HandleTypeDef *hdsi, DSI_PHY_TimerTypeDef *PhyTimers)
Configure the DSI PHY timer parameters.
HAL_StatusTypeDef HAL_DSI_ForceTXStopMode(DSI_HandleTypeDef *hdsi, uint32_t Lane, FunctionalState State)
Force the Clock/Data Lane in TX Stop Mode.
HAL_StatusTypeDef HAL_DSI_ConfigCommand(DSI_HandleTypeDef *hdsi, DSI_LPCmdTypeDef *LPCmd)
Configure command transmission mode: High-speed or Low-power and enable/disable acknowledge request a...
HAL_StatusTypeDef HAL_DSI_SetContentionDetectionOff(DSI_HandleTypeDef *hdsi, FunctionalState State)
Switch off the contention detection on data lanes.
HAL_StatusTypeDef HAL_DSI_SetLowPowerRXFilter(DSI_HandleTypeDef *hdsi, uint32_t Frequency)
Low-Power Reception Filter Tuning.
HAL_StatusTypeDef HAL_DSI_PatternGeneratorStart(DSI_HandleTypeDef *hdsi, uint32_t Mode, uint32_t Orientation)
Start test pattern generation.
HAL_StatusTypeDef HAL_DSI_SetSlewRateAndDelayTuning(DSI_HandleTypeDef *hdsi, uint32_t CommDelay, uint32_t Lane, uint32_t Value)
Set Slew-Rate And Delay Tuning.
HAL_StatusTypeDef HAL_DSI_PatternGeneratorStop(DSI_HandleTypeDef *hdsi)
Stop test pattern generation.
HAL_StatusTypeDef HAL_DSI_SetGenericVCID(DSI_HandleTypeDef *hdsi, uint32_t VirtualChannelID)
Configure the Generic interface read-back Virtual Channel ID.
HAL_StatusTypeDef HAL_DSI_Start(DSI_HandleTypeDef *hdsi)
Start the DSI module.
HAL_StatusTypeDef HAL_DSI_Stop(DSI_HandleTypeDef *hdsi)
Stop the DSI module.
HAL_StatusTypeDef HAL_DSI_SetLanePinsConfiguration(DSI_HandleTypeDef *hdsi, uint32_t CustomLane, uint32_t Lane, FunctionalState State)
Custom lane pins configuration.
HAL_StatusTypeDef HAL_DSI_Refresh(DSI_HandleTypeDef *hdsi)
Refresh the display in command mode.
HAL_StatusTypeDef HAL_DSI_ConfigFlowControl(DSI_HandleTypeDef *hdsi, uint32_t FlowControl)
Configure the flow control parameters.
HAL_StatusTypeDef HAL_DSI_ConfigAdaptedCommandMode(DSI_HandleTypeDef *hdsi, DSI_CmdCfgTypeDef *CmdCfg)
Select adapted command mode and configure the corresponding parameters.
HAL_StatusTypeDef HAL_DSI_SetPullDown(DSI_HandleTypeDef *hdsi, FunctionalState State)
Enable a pull-down on the lanes to prevent from floating states when unused.
HAL_StatusTypeDef HAL_DSI_ColorMode(DSI_HandleTypeDef *hdsi, uint32_t ColorMode)
Controls the display color mode in Video mode.
HAL_StatusTypeDef HAL_DSI_Read(DSI_HandleTypeDef *hdsi, uint32_t ChannelNbr, uint8_t *Array, uint32_t Size, uint32_t Mode, uint32_t DCSCmd, uint8_t *ParametersTable)
Read command (DCS or generic)
uint32_t HAL_DSI_GetError(const DSI_HandleTypeDef *hdsi)
Return the DSI error code.
HAL_DSI_StateTypeDef HAL_DSI_GetState(const DSI_HandleTypeDef *hdsi)
Return the DSI state.
This file contains HAL common defines, enumeration, macros and structures definitions.
HAL_LockTypeDef
HAL Lock structures definition