MI PANEL API


REVISION HISTORY

Revision No.
Description
Date
2.03
  • Initial release
  • 04/12/2018
    2.04
  • Added new API: MI_PANEL_SetSscConfig
  • 06/06/2019
    2.05
  • Added new mipi dsi config parameters: MI_U8 u8SyncCalibrate, MI_U16 u16VirHsyncSt, MI_U16 u16VirHsyncEnd, MI_U16 u16VsyncRef, MI_U16 u16DataClkSkew
  • 08/09/2019
    2.06
  • Added new mipi dsi config parameters: MI_U8 u8PolCh0, MI_U8 u8PolCh1, MI_U8 u8PolCh2, MI_U8 u8PolCh3, MI_U8 u8PolCh4
  • 10/14/2019
    2.07
  • Added output pixel format enum: E_MI_PNL_OUTPUT_565BIT_MODE
  • 12/09/2019
    2.08
  • Redefined SSC parameter: MI_PANEL_SscConfig_t
  • 03/13/2020
    2.09
  • Added new API: MI_PANEL_InitDev, MI_PANEL_DeInitDev
  • 04/26/2020
    2.10
  • Added interface type to API
  • Removed needless API
  • 06/18/2020
    2.11
  • Added BT656 interface enum
  • 07/03/2020
    2.12
  • Added new interface type
  • 09/03/2020
    2.13
  • Declare that these functions are not supported: MI_PANEL_SetPowerOn, MI_PANEL_GetPowerOn, MI_PANEL_SetBacklight, MI_PANEL_GetBacklight, MI_PANEL_SetBacklightLevel, MI_PANEL_GetBacklightLevel
  • 06/25/2021
    2.14
  • Added new interface type: E_MI_PNL_INTF_BT1120_DDR
  • 12/08/2021
    2.15
  • Modify MI_PANEL_DeInit and MI_PANEL_DeinitDev input param
  • 02/28/2022

    1. API LIST

    The panel module provides the following APIs:

    Name of API Function
    MI_PANEL_Init Initialize panel module
    MI_PANEL_DeInit Deinitialize panel module
    MI_PANEL_GetTotalNum Get total number of panel parameters
    MI_PANEL_SetPowerOn Set panel power on
    MI_PANEL_GetPowerOn Get panel power status
    MI_PANEL_SetBacklight Set backlight enable
    MI_PANEL_GetBacklight Get backlight enable status
    MI_PANEL_SetBacklightLevel Set backlight brightness value
    MI_PANEL_GetBacklightLevel Get backlight brightness value
    MI_PANEL_SetSscConfig Set spread spectrum related configuration
    MI_PANEL_SetMipiDsiConfig Set MIPI related configuration
    MI_PANEL_SetTimingConfig Set Timing related configuration
    MI_PANEL_SetDrvCurrentConfig Set driving current configuration
    MI_PANEL_SetOutputPattern Set panel output pattern
    MI_PANEL_SetPanelParam Set panel information
    MI_PANEL_GetPanelParam Get current panel configuration information
    MI_PANEL_GetTimingConfig Get Timing related configuration information
    MI_PANEL_InitDev Initialize panel device
    MI_PANEL_DeInitDev De-initialize panel device

    1.1. MI_PANEL_Init

    • Function

      Initialize panel module

    • Syntax

      MI_S32 MI_PANEL_Init(MI_PANEL_IntfType_e eIntfType);
      
    • Parameter

      Parameter Name Description Input/Output
      eIntfType PANEL type Input
    • Return Value

      • Zero: Successful

      • Non-zero: Failed, see error code for details

    • Requirement

      • Header: mi_panel.h, mi_panel_datatype.h

      • Library: libmi_panel.a / libmi_panel.so

    • Related API

      MI_PANEL_DeInit


    1.2. MI_PANEL_DeInit

    • Function

      Deinitialize panel module

    • Syntax

      MI_S32 MI_PANEL_DeInit(MI_PANEL_IntfType_e eIntfType);
      
    • Parameter

      Parameter Name Description Input/Output
      eIntfType PANEL type Input
    • Return Value

      • Zero: Successful

      • Non-zero: Failed, see error code for details

    • Requirement

      • Header: mi_panel.h, mi_panel_datatype.h

      • Library: libmi_panel.a / libmi_panel.so

    • Related API

      MI_PANEL_Init


    1.3. MI_PANEL_GetTotalNum

    • Function

      Get total number of panel parameters

    • Syntax

      MI_S32 MI_PANEL_GetTotalNum(MI_U32 *pu32TotalNum);
      
    • Parameter

      Parameter Name Description Input/Output
      pu32TotalNum Total number of panel parameters received by the pointer Output
    • Return Value

      • Zero: Successful

      • Non-zero: Failed, see error code for details

    • Requirement

      • Header: mi_panel.h, mi_panel_datatype.h

      • Library: libmi_panel.a / libmi_panel.so

    • Note

      Not supported yet


    1.4. MI_PANEL_SetPowerOn

    • Function

      Set panel power on

    • Syntax

      MI_S32 MI_PANEL_SetPowerOn(MI_PANEL_IntfType_e eIntfType , MI_PANEL_PowerConfig_t *pstPowerCfg);
      
    • Parameter

      Parameter Name Description Input/Output
      eIntfType PANEL type Input
      pstPowerCfg Panel power enable status Input
    • Return Value

      • Zero: Successful

      • Non-zero: Failed, see error code for details

    • Requirement

      • Header: mi_panel.h, mi_panel_datatype.h

      • Library: libmi_panel.a / libmi_panel.so

    • Note

      • Before setting the panel power enable, initialize panel first.

      • Currently not supported, it is recommended that the app directly control GPIO.

    • Related API

      MI_PANEL_GetPowerOn


    1.5. MI_PANEL_GetPowerOn

    • Function

      Get panel power enable status

    • Syntax

      MI_S32 MI_PANEL_GetPowerOn(MI_PANEL_IntfType_e eIntfType , MI_PANEL_PowerConfig_t *pstPowerCfg);
      
    • Syntax

      Parameter Name Description Input/Output
      eIntfType PANEL type Input
      pstPowerCfg Panel power enable status received by the pointer Output
    • Return Value

      • Zero: Successful

      • Non-zero: Failed, see error code for details

    • Requirement

      • Header: mi_panel.h, mi_panel_datatype.h

      • Library: libmi_panel.a / libmi_panel.so

    • Note

      • Currently not supported, it is recommended that the app directly control GPIO.
    • Related API

      MI_PANEL_SetPowerOn


    1.6. MI_PANEL_SetBacklight

    • Function

      Set panel backlight enable.

    • Syntax

      MI_S32 MI_PANEL_SetBacklight(MI_PANEL_IntfType_e eIntfType , MI_PANEL_BackLightConfig_t *pstBackLightCfg);
      
    • Parameter

      Parameter Name Description Input/Output
      eIntfType PANEL type Input
      pstBackLightCfg Panel backlight enable status Input
    • Return Value

      • Zero: Successful

      • Non-zero: Failed, see error code for details

    • Requirement

      • Header: mi_panel.h, mi_panel_datatype.h

      • Library: libmi_panel.a / libmi_panel.so

    • Note

      • Currently not supported, it is recommended that the app directly control GPIO.
    • Related API

      MI_PANEL_GetBacklight


    1.7. MI_PANEL_GetBacklight

    • Function

      Get panel backlight enable status

    • Syntax

      MI_S32 MI_PANEL_GetBacklight(MI_PANEL_IntfType_e eIntfType , MI_PANEL_BackLightConfig_t *pstBackLightCfg);
      
    • Parameter

      Parameter Name Description Input/Output
      eIntfType PANEL type Input
      pstBackLightCfg Panel backlight enable status received by the pointer Output
    • Return Value

      • Zero: Successful

      • Non-zero: Failed, see error code for details

    • Requirement

      • Header: mi_panel.h, mi_panel_datatype.h

      • Library: libmi_panel.a / libmi_panel.so

    • Note

      • Currently not supported, it is recommended that the app directly control GPIO.
    • Related API

      MI_PANEL_SetBacklight


    1.8. MI_PANEL_SetBacklightLevel

    • Function

      Set backlight brightness value

    • Syntax

      MI_S32 MI_PANEL_SetBacklightLevel(MI_PANEL_IntfType_e eIntfType , MI_PANEL_BackLightConfig_t *pstBackLightCfg);
      
    • Parameter

      Parameter Name Description Input/Output
      eIntfType PANEL type Input
      pstBackLightCfg Backlight brightness value Input
    • Return Value

      • Zero: Successful

      • Non-zero: Failed, see error code for details

    • Requirement

      • Header: mi_panel.h, mi_panel_datatype.h

      • Library: libmi_panel.a / libmi_panel.so

    • Note

      • Before calling this function, set the panel backlight enable first

      • Currently not supported, it is recommended that the app directly control PWM.

    • Related API

      MI_PANEL_GetBacklightLevel


    1.9. MI_PANEL_GetBacklightLevel

    • Function

      Get panel backlight brightness value

    • Syntax

      MI_S32 MI_PANEL_GetBacklightLevel(MI_PANEL_IntfType_e eIntfType , MI_PANEL_BackLightConfig_t *pstBackLightCfg);
      
    • Parameter

      Parameter Name Description Input/Output
      eIntfType PANEL type Input
      pstBackLightCfg Panel backlight brightness value received by the pointer Output
    • Return Value

      • Zero: Successful

      • Non-zero: Failed, see error code for details

    • Requirement

      • Header: mi_panel.h, mi_panel_datatype.h

      • Library: libmi_panel.a / libmi_panel.so

    • Note

      • Before calling this function, set the panel backlight enable first

      • Currently not supported, it is recommended that the app directly control PWM.

    • Related API

      MI_PANEL_SetBacklightLevel


    1.10. MI_PANEL_SetSscConfig

    • Function

      Set spread spectrum related configuration

    • Syntax

      MI_S32 MI_PANEL_SetSscConfig(MI_PANEL_IntfType_e eIntfType , MI_PANEL_SscConfig_t *pstSscCfg);
      
    • Parameter

      Parameter Name Description Input/Output
      eIntfType PANEL type Input
      pstSscCfg Spread spectrum related configuration Input
    • Return Value

      • Zero: Successful

      • Non-zero: Failed, see error code for details

    • Requirement

      • Header: mi_panel.h, mi_panel_datatype.h

      • Library: libmi_panel.a / libmi_panel.so


    1.11. MI_PANEL_SetMipiDsiConfig

    • Function

      Set MIPI interface related configuration

    • Syntax

      MI_S32 MI_PANEL_SetMipiDsiConfig(MI_PANEL_IntfType_e eIntfType , MI_PANEL_MipiDsiConfig_t *pstMipiDsiCfg);
      
    • Parameter

      Parameter Name Description Input/Output
      eIntfType PANEL type Input
      pstMipiDsiCfg MIPI interface related configuration Input
    • Return Value

      • Zero: Successful

      • Non-zero: Failed, see error code for details

    • Requirement

      • Header: mi_panel.h, mi_panel_datatype.h

      • Library: libmi_panel.a / libmi_panel.so

    • Note

      This function is for use with MIPI panel only. To use this function, MI_PANEL_SetPanelParam must be called as well.


    1.12. MI_PANEL_SetTimingConfig

    • Function

      Set Timing related configuration

    • Syntax

      MI_S32 MI_PANEL_SetTimingConfig(MI_PANEL_IntfType_e eIntfType , MI_PANEL_TimingConfig_t *pstTimingCfg);
      
    • Parameter

      Parameter Name Description Input/Output
      eIntfType PANEL type Input
      pstTimingCfg Timing related configuration Input
    • Return Value

      • Zero: Successful

      • Non-zero: Failed, see error code for details

    • Requirement

      • Header: mi_panel.h, mi_panel_datatype.h

      • Library: libmi_panel.a / libmi_panel.so

    • Related API

      MI_PANEL_GetTimingConfig


    1.13. MI_PANEL_SetDrvCurrentConfig

    • Function

      Set driving capability related configuration

    • Syntax

      MI_S32 MI_PANEL_SetDrvCurrentConfig(MI_PANEL_IntfType_e eIntfType , MI_PANEL_DrvCurrentConfig_t *pstDrvCurrentCfg);
      
    • Parameter

      Parameter Name Description Input/Output
      eIntfType PANEL type Input
      pstDrvCurrentCfg Driving capability related configuration Input
    • Return Value

      • Zero: Successful

      • Non-zero: Failed, see error code for details

    • Requirement

      • Header: mi_panel.h, mi_panel_datatype.h

      • Library: libmi_panel.a / libmi_panel.so


    1.14. MI_PANEL_SetOutputPattern

    • Function

      Set output pattern

    • Syntax

      MI_S32 MI_PANEL_SetOutputPattern(MI_PANEL_IntfType_e eIntfType , MI_PANEL_TestPatternConfig_t *pstTestPatternCfg);
      
    • Parameter

      Parameter Name Description Input/Output
      eIntfType PANEL type Input
      pstTestPatternCfg Output pattern related configuration Input
    • Return Value

      • Zero: Successful

      • Non-zero: Failed, see error code for details

    • Requirement

      • Header: mi_panel.h, mi_panel_datatype.h

      • Library: libmi_panel.a / libmi_panel.so

    • Note

      For debugging (against LVDS at the present)


    1.15. MI_PANEL_SetPanelParam

    • Function

      Set panel information

    • Syntax

      MI_S32 MI_PANEL_SetPanelParam(MI_PANEL_IntfType_e eIntfType , MI_PANEL_ParamConfig_t *pstParamCfg);
      
    • Parameter

      Parameter Name Description Input/Output
      eIntfType PANEL type Input
      pstParamCfg Panel parameter information Input
    • Return Value

      • Zero: Successful

      • Non-zero: Failed, see error code for details

    • Requirement

      • Header: mi_panel.h, mi_panel_datatype.h

      • Library: libmi_panel.a / libmi_panel.so

    • Related API

      MI_PANEL_GetPanelParam


    1.16. MI_PANEL_GetPanelParam

    • Function

      Get panel parameter

    • Syntax

      MI_S32 MI_PANEL_GetPanelParam(MI_PANEL_IntfType_e eIntfType , MI_PANEL_ParamConfig_t *pstParamCfg);
      
    • Parameter

      Parameter Name Description Input/Output
      eIntfType PANEL type Input
      pstParamCfg Panel parameter information Output
    • Return Value

      • Zero: Successful

      • Non-zero: Failed, see error code for details

    • Requirement

      • Header: mi_panel.h, mi_panel_datatype.h

      • Library: libmi_panel.a / libmi_panel.so

    • Note

      MI_PANEL_SetPanelParam must be called first

    • Related API

      MI_PANEL_SetPanelParam


    1.17. MI_PANEL_GetTimingConfig

    • Function

      Get Timing related configuration

    • Syntax

      MI_S32 MI_PANEL_GetTimingConfig(MI_PANEL_IntfType_e eIntfType , MI_PANEL_TimingConfig_t *pstTimingCfg);
      
    • Parameter

      Parameter Name Description Input/Output
      eIntfType PANEL type Input
      pstTimingCfg Timing related configuration Output
    • Return Value

      • Zero: Successful

      • Non-zero: Failed, see error code for details

    • Requirement

      • Header: mi_panel.h, mi_panel_datatype.h

      • Library: libmi_panel.a / libmi_panel.so

    • Related API

      MI_PANEL_SetTimingConfig


    1.18. MI_PANEL_InitDev

    • Function

      Initialize panel module

    • Syntax

      MI_S32 MI_PANEL_InitDev(MI_PANEL_InitParam_t *pstInitParam);
      
    • Parameter

      Parameter Name Description Input/Output
      pstInitParam Initialization Parameter Input
    • Return Value

      • Zero: Successful

      • Non-zero: Failed, see error code for details

    • Requirement

      • Header: mi_panel.h, mi_panel_datatype.h

      • Library: libmi_panel.a / libmi_panel.so

    • Note

      For Version 2.09 and above, we recommend using this interface to replace the original MI_PANEL_Init interface.

    • Related API

      MI _PANEL_DeInitDev


    1.19. MI_PANEL_DeInitDev

    • Function

      Deinitialize panel module

    • Syntax

      MI_S32 MI_PANEL_DeInitDev(MI_PANEL_InitParam_t *pstInitParam);
      
    • Parameter

      Parameter Name Description Input/Output
      pstInitParam Deinitialization Parameter Input
    • Return Value

      • Zero: Successful

      • Non-zero: Failed, see error code for details

    • Requirement

      • Header: mi_panel.h, mi_panel_datatype.h

      • Library: libmi_panel.a / libmi_panel.so

    • Note

      For Version 2.09 and above, we recommend using this interface to replace the original MI_PANEL_DeInit interface.

    • Related API

      MI_PANEL_InitDev


    2. PANEL DATA TYPE

    The table below lists the PANEL related data types:

    Data type Description
    MI_PANEL_PowerConfig_t Define panel power enable status structure
    MI_PANEL_BackLightConfig_t Define panel backlight structure
    MI_PANEL_SscConfig_t Define panel spread spectrum configuration structure
    MI_PANEL_MipiDsiConfig_t Define MIPI interface configuration structure
    MI_PANEL_MipiDsiLaneMode_e Define MIPI interface Lane mode enumeration
    MI_PANEL_MipiDsiFormat_e Define MIPI interface Format enumeration
    MI_PANEL_MipiDsiCtrlMode_e Define MIPI interface Ctrl Mode enumeration
    MI_PANEL_TimingConfig_t Define panel Timing information structure
    MI_PANEL_DrvCurrentConfig_t Define driving capability configuration structure
    MI_PANEL_TestPatternConfig_t Define output pattern information structure
    MI_PANEL_ParamConfig_t Define panel parameter information structure
    MI_PANEL_IntfType_e Define Link type enumeration
    MI_PANEL_AspectRatio_e Define Aspect Ratio enumeration
    MI_PANEL_TiBitMode_e Define TiBit Mode enumeration
    MI_PANEL_OutputFormatBitMode_e Define Output Format Bit Mode enumeration
    MI_PANEL_OutputTimingMode_e Define panel output timing change mode enumeration
    MI_PANEL_InitParam_t Define the initialized parameter of PANEL device

    NOTE: This section includes most of the key data types. For data types not listed here, please refer to mi_panel_datatype.h.


    2.1. MI_PANEL_PowerConfig_t

    • Description

      Define panel power enable status structure

    • Definition

      typedef struct
      
      {
      
          MI_BOOL bEn;
      
      }MI_PANEL_PowerConfig_t;
      
    • Related Data Type and Interface

      MI_PANEL_SetPowerOn

      MI_PANEL_GetPowerOn


    2.2. MI_PANEL_BackLightConfig_t


    2.3. MI_PANEL_SscConfig_t

    • Description

      Define panel spread spectrum configuration structure

    • Definition

      typedef struct
      
      {
      
          MI_BOOL bEn;
      
          MI_U16 u16Freq;
      
          MI_U16 u16Ratio;
      
      }MI_PANEL_SscConfig_t;
      
    • Member

      Member Description
      bEn Panel spread spectrum function enable status
      u16Freq Modulation rate
      u16Ratio Modulation depth
    • Note

      u16Freq should be greater than 15KHz.

    • Related Data Type and Interface

      MI_PANEL_SetSscConfig


    2.4. MI_PANEL_MipiDsiConfig_t

    • Description

      Define MIPI interface configuration structure

    • Definition

      typedef struct
      
      {
      
          MI_U8 u8HsTrail;
      
          MI_U8 u8HsPrpr;
      
          MI_U8 u8HsZero;
      
          MI_U8 u8ClkHsPrpr;
      
          MI_U8 u8ClkHsExit;
      
          MI_U8 u8ClkTrail;
      
          MI_U8 u8ClkZero;
      
          MI_U8 u8ClkHsPost;
      
          MI_U8 u8DaHsExit;
      
          MI_U8 u8ContDet;
      
          MI_U8 u8Lpx;
      
          MI_U8 u8TaGet;
      
          MI_U8 u8TaSure;
      
          MI_U8 u8TaGo;
      
          MI_U16 u16Hactive;
      
          MI_U16 u16Hpw;
      
          MI_U16 u16Hbp;
      
          MI_U16 u16Hfp;
      
          MI_U16 u16Vactive;
      
          MI_U16 u16Vpw;
      
          MI_U16 u16Vbp;
      
          MI_U16 u16Vfp;
      
          MI_U16 u16Bllp;
      
          MI_U16 u16Fps;
      
          MI_PANEL_MipiDsiLaneMode_e enLaneNum;
      
          MI_PANEL_MipiDsiFormat_e enformat;
      
          MI_PANEL_MipiDsiCtrlMode_e enCtrl;
      
          MI_U8 *pu8CmdBuf;
      
          MI_U32 u32CmdBufSize;
      
          MI_U8 u8SyncCalibrate;
      
          MI_U16 u16VirHsyncSt;
      
          MI_U16 u16VirHsyncEnd;
      
          MI_U16 u16VsyncRef;
      
          MI_U16 u16DataClkSkew;
      
          MI_U8 u8PolCh0;
      
          MI_U8 u8PolCh1;
      
          MI_U8 u8PolCh2;
      
          MI_U8 u8PolCh3;
      
          MI_U8 u8PolCh4;
      
      }MI_PANEL_MipiDsiConfig_t;
      
    • Related Data Type and Interface

      MI_PANEL_MipiDsiLaneMode_e

      MI_PANEL_MipiDsiFormat_e

      MI_PANEL_MipiDsiCtrlMode_e

      MI_PANEL_SetMipiDsiConfig


    2.5. MI_PANEL_MipiDsiLaneMode_e

    • Description

      Define MIPI interface Lane mode enumeration

    • Definition

      typedef enum
      
      {
      
          E_MI_PNL_MIPI_DSI_LANE_NONE = 0,
      
          E_MI_PNL_MIPI_DSI_LANE_1 = 1,
      
          E_MI_PNL_MIPI_DSI_LANE_2 = 2,
      
          E_MI_PNL_MIPI_DSI_LANE_3 = 3,
      
          E_MI_PNL_MIPI_DSI_LANE_4 = 4,
      
      } MI_PANEL_MipiDsiLaneMode_e;
      
    • Related Data Type and Interface

      MI_PANEL_MipiDsiConfig_t

      MI_PANEL_SetMipiDsiConfig


    2.6. MI_PANEL_MipiDsiFormat_e

    • Description

      Define MIPI interface Format enumeration

    • Definition

      typedef enum
      
      {
      
          E_MI_PNL_MIPI_DSI_RGB565 = 0,
      
          E_MI_PNL_MIPI_DSI_RGB666 = 1,
      
          E_MI_PNL_MIPI_DSI_LOOSELY_RGB666 = 2,
      
          E_MI_PNL_MIPI_DSI_RGB888 = 3,
      
      } MI_PANEL_MipiDsiFormat_e;
      
    • Related Data Type and Interface

      MI_PANEL_MipiDsiConfig_t

      MI_PANEL_SetMipiDsiConfig


    2.7. MI_PANEL_MipiDsiCtrlMode_e

    • Description

      Define MIPI interface Ctrl Mode enumeration

    • Definition

      typedef enum
      
      {
      
          E_MI_PNL_MIPI_DSI_CTRL_CMD_MODE = 0,
      
          E_MI_PNL_MIPI_DSI_CTRL_SYNC_PULSE = 1,
      
          E_MI_PNL_MIPI_DSI_CTRL_SYNC_EVENT = 2,
      
          E_MI_PNL_MIPI_DSI_BURST_MODE = 3,
      
      } MI_PANEL_MipiDsiCtrlMode_e;
      
    • Related Data Type and Interface

      MI_PANEL_MipiDsiConfig_t

      MI_PANEL_SetMipiDsiConfig


    2.8. MI_PANEL_TimingConfig_t

    • Description

      Define panel Timing information structure

    • Definition

      typedef struct
      
      {
      
          MI_U16 u16HSyncWidth;
      
          MI_U16 u16HSyncBackPorch;
      
          MI_U16 u16HSyncFrontPorch;
      
          MI_U16 u16VSyncWidth;
      
          MI_U16 u16VSyncBackPorch;
      
          MI_U16 u16VSyncFrontPorch;
      
          MI_U16 u16HStart;
      
          MI_U16 u16VStart;
      
          MI_U16 u16Height;
      
          MI_U16 u16Width;
      
          MI_U16 u16Htotal;
      
          MI_U16 u16Vtotal;
      
          MI_U16 u16Dclk;
      
      }MI_PANEL_TimingConfig_t;
      
    • Related Data Type and Interface

      MI_PANEL_SetTimingConfig

      MI_PANEL_GetTimingConfig


    2.9. MI_PANEL_DrvCurrentConfig_t

    • Description

      Define driving capability configuration structure

    • Definition

      typedef struct
      
      {
      
          MI_U16 u16DrvCurrent;
      
      }MI_PANEL_DrvCurrentConfig_t;
      
    • Related Data Type and Interface

      MI_PANEL_SetDrvCurrentConfig


    2.10. MI_PANEL_TestPatternConfig_t

    • Description

      Define output pattern structure

    • Definition

      typedef struct
      
      {
      
          MI_BOOL bEn;
      
          MI_U16 u16R;
      
          MI_U16 u16G;
      
          MI_U16 u16B;
      
      }MI_PANEL_TestPatternConfig_t;
      
    • Related Data Type and Interface

      MI_PANEL_SetOutputPattern


    2.11. MI_PANEL_ParamConfig_t

    • Description

      Define panel parameter structure

    • Definition

      typedef struct
      
      {
      
          const char *pPanelName; ///< PanelName
      
          MI_U8 u8Dither; ///< PANEL_DITHER, keep the setting
      
          MI_PANEL_IntfType_e eIntfType; ///< PANEL_LINK
      
          ///////////////////////////////////////////////
      
          // Board related setting
      
          ///////////////////////////////////////////////
      
          MI_U8 u8DualPort; ///< VOP_21[8], MOD_4A[1], PANEL_DUAL_PORT, refer to
          u8DoubleClk
      
          MI_U8 u8SwapPort; ///< MOD_4A[0], PANEL_SWAP_PORT, refer to "LVDS
          output app note" A/B channel swap
      
          MI_U8 u8SwapOdd_ML; ///< PANEL_SWAP_ODD_ML
      
          MI_U8 u8SwapEven_ML; ///< PANEL_SWAP_EVEN_ML
      
          MI_U8 u8SwapOdd_RB; ///< PANEL_SWAP_ODD_RB
      
          MI_U8 u8SwapEven_RB; ///< PANEL_SWAP_EVEN_RB
      
          MI_U8 u8SwapLVDS_POL; ///< MOD_40[5], PANEL_SWAP_LVDS_POL, for
          differential P/N swap
      
          MI_U8 u8SwapLVDS_CH; ///< MOD_40[6], PANEL_SWAP_LVDS_CH, for pair
          swap
      
          MI_U8 u8PDP10BIT; ///< MOD_40[3], PANEL_PDP_10BIT,for pair swap
      
          MI_U8 u8LVDS_TI_MODE; ///< MOD_40[2], PANEL_LVDS_TI_MODE, refer to
          "LVDS output app note"
      
          ///////////////////////////////////////////////
      
          // For TTL Only
      
          ///////////////////////////////////////////////
      
          MI_U8 u8DCLKDelay; ///< PANEL_DCLK_DELAY
      
          MI_U8 u8InvDCLK; ///< MOD_4A[4], PANEL_INV_DCLK
      
          MI_U8 u8InvDE; ///< MOD_4A[2], PANEL_INV_DE
      
          MI_U8 u8InvHSync; ///< MOD_4A[12], PANEL_INV_HSYNC
      
          MI_U8 u8InvVSync; ///< MOD_4A[3], PANEL_INV_VSYNC
      
          ///////////////////////////////////////////////
      
          // Output driving current setting
      
          ///////////////////////////////////////////////
      
          // driving current setting (0x00=4mA, 0x01=6mA, 0x02=8mA, 0x03=12mA)
      
          MI_U8 u8DCKLCurrent; ///< define PANEL_DCLK_CURRENT
      
          MI_U8 u8DECurrent; ///< define PANEL_DE_CURRENT
      
          MI_U8 u8ODDDataCurrent; ///< define PANEL_ODD_DATA_CURRENT
      
          MI_U8 u8EvenDataCurrent; ///< define PANEL_EVEN_DATA_CURRENT
      
          ///////////////////////////////////////////////
      
          // panel on/off timing
      
          ///////////////////////////////////////////////
      
          MI_U16 u16OnTiming1; ///< time between panel & data while turn on power
      
          MI_U16 u16OnTiming2; ///< time between data & back light while turn on
          power
      
          MI_U16 u16OffTiming1; ///< time between back light & data while turn off
          power
      
          MI_U16 u16OffTiming2; ///< time between data & panel while turn off power
      
          ///////////////////////////////////////////////
      
          // panel timing spec.
      
          ///////////////////////////////////////////////
      
          // sync related
      
          MI_U16 u16HSyncWidth; ///< VOP_01[7:0], PANEL_HSYNC_WIDTH
      
          MI_U16 u16HSyncBackPorch; ///< PANEL_HSYNC_BACK_PORCH, no register
          setting, provide value for query only
      
          MI_U16 u16VSyncWidth; ///< define PANEL_VSYNC_WIDTH
      
          MI_U16 u16VSyncBackPorch; ///< define PANEL_VSYNC_BACK_PORCH
      
          // DE related
      
          MI_U16 u16HStart; ///< VOP_04[11:0], PANEL_HSTART, DE H Start
          (PANEL_HSYNC_WIDTH + PANEL_HSYNC_BACK_PORCH)
      
          MI_U16 u16VStart; ///< VOP_06[11:0], PANEL_VSTART, DE V Start
      
          MI_U16 u16Width; ///< PANEL_WIDTH, DE width (VOP_05[11:0] = HEnd =
          HStart + Width - 1)
      
          MI_U16 u16Height; ///< PANEL_HEIGHT, DE height (VOP_07[11:0], = Vend =
          VStart + Height - 1)
      
          // DClk related
      
          MI_U16 u16MaxHTotal; ///< PANEL_MAX_HTOTAL. Reserved for future using.
      
          MI_U16 u16HTotal; ///< VOP_0C[11:0], PANEL_HTOTAL
      
          MI_U16 u16MinHTotal; ///< PANEL_MIN_HTOTAL. Reserved for future using.
      
          MI_U16 u16MaxVTotal; ///< PANEL_MAX_VTOTAL. Reserved for future using.
      
          MI_U16 u16VTotal; ///< VOP_0D[11:0], PANEL_VTOTAL
      
          MI_U16 u16MinVTotal; ///< PANEL_MIN_VTOTAL. Reserved for future using.
      
          MI_U16 u16MaxDCLK; ///< PANEL_MAX_DCLK. Reserved for future using.
      
          MI_U16 u16DCLK; ///< LPLL_0F[23:0], PANEL_DCLK
      
          MI_U16 u16MinDCLK; ///< PANEL_MIN_DCLK. Reserved for future using.
      
          ///< spread spectrum
      
          MI_U16 u16SpreadSpectrumStep; ///< move to board define, no use now.
      
          MI_U16 u16SpreadSpectrumSpan; ///< move to board define, no use now.
      
          MI_U8 u8DimmingCtl; ///< Initial Dimming Value
      
          MI_U8 u8MaxPWMVal; ///< Max Dimming Value
      
          MI_U8 u8MinPWMVal; ///< Min Dimming Value
      
          MI_U8 u8DeinterMode; ///< define PANEL_DEINTER_MODE, no use now
      
          MI_PANEL_AspectRatio_e ePanelAspectRatio; ///< Panel Aspect Ratio,
          provide information to upper layer application for aspect ratio setting.
      
          MI_U16 u16LVDSTxSwapValue;
      
          MI_PANEL_TiBitMode_e eTiBitMode; ///< MOD_4B[1:0], refer to "LVDS
          output app note"
      
          MI_PANEL_OutputFormatBitMode_e eOutputFormatBitMode;
      
          MI_U8 u8SwapOdd_RG; ///< define PANEL_SWAP_ODD_RG
      
          MI_U8 u8SwapEven_RG; ///< define PANEL_SWAP_EVEN_RG
      
          MI_U8 u8SwapOdd_GB; ///< define PANEL_SWAP_ODD_GB
      
          MI_U8 u8SwapEven_GB; ///< define PANEL_SWAP_EVEN_GB
      
          /**
      
          * Others
      
          */
      
          MI_U8 u8DoubleClk; ///< LPLL_03[7], define Double Clock,LVDS dual mode
      
          MI_U32 u32MaxSET; ///< define PANEL_MAX_SET
      
          MI_U32 u32MinSET; ///< define PANEL_MIN_SET
      
          MI_PANEL_OutputTimingMode_e eOutTimingMode; ///<Define which panel
          output timing change mode is used to change VFreq for same panel
      
          MI_U8 u8NoiseDith; ///< PAFRC mixed with noise dither disable
      
      }MI_PANEL_ParamConfig_t;
      
    • Related Data Type and Interface

      MI_PANEL_IntfType_e

      MI_PANEL_AspectRatio_e

      MI_PANEL_TiBitMode_e

      MI_PANEL_OutputFormatBitMode_e

      MI_PANEL_OutputTimingMode_e

      MI_PANEL_GetPanelParam


    2.12. MI_PANEL_IntfType_e

    • Description

      Define panel Interface Type enumeration

    • Definition

      typedef enum
      {
          E_MI_PNL_INTF_TTL,                              ///< TTL  type
          E_MI_PNL_INTF_LVDS,                             ///< LVDS type
          E_MI_PNL_INTF_RSDS,                             ///< RSDS type
          E_MI_PNL_INTF_MINILVDS,                         ///< TCON
          E_MI_PNL_INTF_ANALOG_MINILVDS,                  ///< Analog TCON
          E_MI_PNL_INTF_DIGITAL_MINILVDS,                 ///< Digital TCON
          E_MI_PNL_INTF_MFC,                              ///< Ursa (TTL output to Ursa)
          E_MI_PNL_INTF_DAC_I,                        ///< DAC output
          E_MI_PNL_INTF_DAC_P,                       ///< DAC output
          E_MI_PNL_INTF_PDPLVDS,                    ///< For PDP(Vsync use Manually MODE)
          E_MI_PNL_INTF_EXT,                              ///< EXT LPLL TYPE
          E_MI_PNL_INTF_MIPI_DSI,                         ///< Mipi DSI
          E_MI_PNL_INTF_BT656,                            //BT656 interface
          E_MI_PNL_INTF_BT601,                            ///< BT601
          E_MI_PNL_INTF_BT1120,                           ///< BT1120
          E_MI_PNL_INTF_MCU_TYPE,                         ///< MCU Type
          E_MI_PNL_INTF_SRGB,                             ///< sRGB
          E_MI_PNL_INTF_TTL_SPI_IF,                       ///< TTL with SPI init interface
          E_MI_PNL_INTF_BT1120_DDR,
      }MI_PANEL_IntfType_e;
      
    • Note

      • E_MI_PNL_INTF_BT1120 is single edge sampling; E_MI_PNL_INTF_BT1120_DDR is double edge sampling.

      • Panel supported interfaces: E_MI_DISP_INTF_TTL, E_MI_DISP_INTF_SRGB, E_MI_DISP_INTF_MCU.

    • Related Data Type and Interface

      MI_PANEL_ParamConfig_t

      MI_PANEL_GetPanelParam


    2.13. MI_PANEL_AspectRatio_e

    • Description

      Define panel Aspect Ratio enumeration

    • Definition

      typedef enum
      
      {
      
          E_MI_PNL_ASPECT_RATIO_4_3 = 0, ///< set aspect ratio to 4 : 3
      
          E_MI_PNL_ASPECT_RATIO_WIDE, ///< set aspect ratio to 16 : 9
      
          E_MI_PNL_ASPECT_RATIO_OTHER, ///< resvered for other aspect ratio
          other than 4:3/ 16:9
      
      }MI_PANEL_AspectRatio_e;
      
    • Related Data Type and Interface

      MI_PANEL_ParamConfig_t

      MI_PANEL_GetPanelParam


    2.14. MI_PANEL_TiBitMode_e

    • Description

      Define panel TiBit Mode enumeration

    • Definition

      typedef enum
      
      {
      
          E_MI_PNL_TI_10BIT_MODE = 0,
      
          E_MI_PNL_TI_8BIT_MODE = 2,
      
          E_MI_PNL_TI_6BIT_MODE = 3,
      
      } MI_PANEL_TiBitMode_e;
      
    • Related Data Type and Interface

      MI_PANEL_ParamConfig_t

      MI_PANEL_GetPanelParam


    2.15. MI_PANEL_OutputFormatBitMode_e

    • Description

      Define panel output format Bit Mode enumeration

    • Definition

      typedef enum
      
      {
      
          E_MI_PNL_OUTPUT_10BIT_MODE = 0, //default is 10bit, becasue 8bit panel
          can use 10bit config and 8bit config.
      
          E_MI_PNL_OUTPUT_6BIT_MODE = 1, //but 10bit panel(like PDP panel) can
          only use 10bit config.
      
          E_MI_PNL_OUTPUT_8BIT_MODE = 2, //and some PDA panel is 6bit.
      
          E_MI_PNL_OUTPUT_565BIT_MODE = 3,
      
      } MI_PANEL_OutputFormatBitMode_e;
      
    • Related Data Type and Interface

      MI_PANEL_ParamConfig_t

      MI_PANEL_GetPanelParam


    2.16. MI_PANEL_OutputTimingMode_e

    • Description

      Define panel output timing change mode

    • Definition

      typedef enum
      
      {
      
          E_MI_PNL_CHG_DCLK = 0, ///<change output DClk to change Vfreq.
      
          E_MI_PNL_CHG_HTOTAL = 1, ///<change H total to change Vfreq.
      
          E_MI_PNL_CHG_VTOTAL = 2, ///<change V total to change Vfreq.
      
      } MI_PANEL_OutputTimingMode_e;
      
    • Related Data Type and Interface

      MI_PANEL_ParamConfig_t

      MI_PANEL_GetPanelParam


    2.17. MI_PANEL_InitParam_t

    • Description

      Define panel device initialization parameter

    • Definition

      typedef struct MI_PANEL_InitParam_s
      
      {
      
          MI_PANEL_IntfType_e eIntfType;  ///PANEL Interface Type enumerate .
      
      } MI_PANEL_InitParam_t;
      
    • Related Data Type and Interface

      MI_PANEL_InitDev


    3. PANEL ERROR CODE

    Error Code Macro Definition Description
    0xA00B2011 MI_ERR_PANEL_INVALID_PARAM Invalid parameter
    0xA00B2006 MI_ERR_PANEL_NULL_PTR Null pointer
    0xA00B2001 MI_ERR_PANEL_INVALID_DEVID Invalid device ID
    0xA00B2018 MI_ERR_PANEL_DRV_FAILED PANEL driving failed
    0xA00B2015 MI_ERR_PANEL_NOT_INIT PANEL not initialized
    0xA00B2008 MI_ERR_PANEL_NOT_SUPPORT Unsupported operation