MI PANEL API


1. API 参考


该功能模块提供以下 API:

API名 功能
MI_PANEL_Init 初始化PANEL
MI_PANEL_DeInit 去初始化PANEL
MI_PANEL_GetTotalNum 获取总的屏参个数
MI_PANEL_SetPowerOn 设置屏供电使能
MI_PANEL_GetPowerOn 获取屏供电状态
MI_PANEL_SetBacklight 设置背光使能
MI_PANEL_GetBacklight 获取背光使能状态
MI_PANEL_SetBacklightLevel 设置背光亮度值
MI_PANEL_GetBacklightLevel 获取背光亮度值
MI_PANEL_SetSscConfig 设置展频相关信息
MI_PANEL_SetMipiDsiConfig 设置MIPI相关信息
MI_PANEL_SetTimingConfig 设置Timing相关信息
MI_PANEL_SetDrvCurrentConfig 设置驱动能力
MI_PANEL_SetOutputPattern 设置PANEL输出pattern
MI_PANEL_SetPanelParam 设置PANEL 参数
MI_PANEL_GetPanelParam 获取PANEL 参数
MI_PANEL_GetTimingConfig 获取Timing相关信息
MI_PANEL_InitDev 初始化 PANEL 设备
MI_PANEL_DeInitDev 去初始化 PANEL 设备

1.1. MI_PANEL_Init

  • 功能

    初始化 PANEL模块。

  • 语法

    MI_S32 MI_PANEL_Init(MI_PANEL_IntfType_e eIntfType);
    
  • 形参

    表1-2

    参数名称 描述 输入/输出
    eIntfType PANEL接口类型 输入
  • 返回值

    • 0:成功。

    • 非0:失败,详情参照错误码

  • 依赖

    • 头文件:mi_panel.h、mi_panel_datatype.h

    • 库文件:libmi_panel.a / libmi_panel.so

  • 相关主题

    MI_PANEL_DeInit


1.2. MI_PANEL_DeInit

  • 功能

    去初始化 PANEL。

  • 语法

    MI_S32 MI_PANEL_DeInit(void);
    
  • 返回值

    • 0:成功。

    • 非0:失败,详情参照错误码

  • 依赖

    • 头文件:mi_panel.h、mi_panel_datatype.h

    • 库文件:libmi_panel.a / libmi_panel.so

  • 注意

    暂不支持。


1.3. MI_PANEL_GetTotalNum

  • 功能

    获取总的屏参个数。

  • 语法

    MI_S32 MI_PANEL_GetTotalNum(MI_U32 *pu32TotalNum);
    
  • 形参

    表1-5

    参数名称 描述 输入/输出
    pu32TotalNum 该指针接收屏参个数 输出
  • 返回值

    • 0:成功。

    • 非0:失败,详情参照错误码

  • 依赖

    • 头文件:mi_panel.h、mi_panel_datatype.h

    • 库文件:libmi_panel.a / libmi_panel.so

  • 注意

    暂不支持。


1.4. MI_PANEL_SetPowerOn

  • 功能

    设置屏供电使能。

  • 语法

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

    表1-6

    参数名称 描述 输入/输出
    eIntfType 接口类型 输入
    pstPowerCfg 屏供电使能状态 输入
  • 返回值

    • 0:成功。

    • 非0:失败,详情参照错误码

  • 依赖

    • 头文件:mi_panel.h、mi_panel_datatype.h

    • 库文件:libmi_panel.a / libmi_panel.so

  • 注意

    • 设置屏供电使能之前需要初始化PANEL。

    • 目前不支持,建议app直接控制GPIO。

  • 相关主题

    MI_PANEL_GetPowerOn


1.5. MI_PANEL_GetPowerOn

  • 功能

    获取屏供电使能状态。

  • 语法

    MI_S32 MI_PANEL_GetPowerOn(MI_PANEL_IntfType_e eIntfType, MI_PANEL_PowerConfig_t *pstPowerCfg);

  • 语法

    表1-7

    参数名称 描述 输入/输出
    eIntfType 接口类型 输入
    pstPowerCfg 该指针接收屏供电使能状态 输出
  • 返回值

    • 0:成功。

    • 非0:失败,详情参照错误码

  • 依赖

    • 头文件:mi_panel.h、mi_panel_datatype.h

    • 库文件:libmi_panel.a / libmi_panel.so

  • 注意

    • 目前不支持,建议app直接控制GPIO。
  • 相关主题

    MI_PANEL_SetPowerOn


1.6. MI_PANEL_SetBacklight

  • 功能

    设置屏背光使能。

  • 语法

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

    表1-8

    参数名称 描述 输入/输出
    eIntfType 接口类型 输入
    pstBackLightCfg 屏背光使能状态 输入
  • 返回值

    • 0:成功。

    • 非0:失败,详情参照错误码

  • 依赖

    • 头文件:mi_panel.h、mi_panel_datatype.h

    • 库文件:libmi_panel.a / libmi_panel.so

  • 注意

    • 目前不支持,建议app直接控制PWM。
  • 相关主题

    MI_PANEL_GetBackLight


1.7. MI_PANEL_GetBacklight

  • 功能

    获取屏背光使能状态。

  • 语法

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

    表1-9

    参数名称 描述 输入/输出
    eIntfType 接口类型 输入
    pstBackLightCfg 该指针接收屏背光使能状态 输出
  • 返回值

    • 0:成功。

    • 非0:失败,详情参照错误码

  • 依赖

    • 头文件:mi_panel.h、mi_panel_datatype.h

    • 库文件:libmi_panel.a / libmi_panel.so

  • 注意

    • 目前不支持,建议app直接控制PWM。
  • 相关主题

    MI_PANEL_SetBacklight


1.8. MI_PANEL_SetBacklightLevel

  • 功能

    设置背光亮度值。

  • 语法

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

    表1-10

    参数名称 描述 输入/输出
    eIntfType 接口类型 输入
    pstBackLightCfg 背光亮度值 输入
  • 返回值

    • 0:成功。

    • 非0:失败,详情参照错误码

  • 依赖

    • 头文件:mi_panel.h、mi_panel_datatype.h

    • 库文件:libmi_panel.a / libmi_panel.so

  • 注意

    • 调用前需先设置屏背光使能。

    • 目前不支持,建议app直接控制PWM。

  • 相关主题

    MI_PANEL_GetBacklightLevel


1.9. MI_PANEL_GetBacklightLevel

  • 功能

    获取屏背光亮度值。

  • 定义

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

    表1-11

    参数名称 描述 输入/输出
    eIntfType 接口类型 输入
    pstBackLightCfg 该指针接收屏背光亮度值 输出
  • 返回值

    • 0:成功。

    • 非0:失败,详情参照错误码

  • 依赖

    • 头文件:mi_panel.h、mi_panel_datatype.h

    • 库文件:libmi_panel.a / libmi_panel.so

  • 注意

    • 调用前需要先设置背光亮度值。

    • 目前不支持,建议app直接控制PWM。

  • 相关主题

    MI_PANEL_SetBacklightLevel


1.10. MI_PANEL_SetSscConfig

  • 功能

    设置展频相关信息。

  • 定义

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

    表1-12

    参数名称 描述 输入/输出
    eIntfType 接口类型 输入
    pstSscCfg 展频相关配置信息 输入
  • 返回值

    • 0:成功。

    • 非0:失败,详情参照错误码

  • 依赖

    • 头文件:mi_panel.h、mi_panel_datatype.h

    • 库文件:libmi_panel.a / libmi_panel.so


1.11. MI_PANEL_SetMipiDsiConfig

  • 功能

    设置MIPI接口相关配置

  • 定义

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

    表1-13

    参数名称 描述 输入/输出
    eIntfType 接口类型 输入
    pstMipiDsiCfg MIPI接口相关配置 输入
  • 返回值

    • 0:成功。

    • 非0:失败,详情参照错误码

  • 依赖

    • 头文件:mi_panel.h、mi_panel_datatype.h

    • 库文件:libmi_panel.a / libmi_panel.so

  • 注意

    只有mipi panel才需要调用,同时要调用MI_PANEL_SetPanelParam


1.12. MI_PANEL_SetTimingConfig

  • 功能

    设置Timing相关信息

  • 定义

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

    表1-14

    参数名称 描述 输入/输出
    eIntfType 接口类型 输入
    pstTimingCfg Timing相关配置信息 输入
  • 返回值

    • 0:成功。

    • 非0:失败,详情参照错误码

  • 依赖

    • 头文件:mi_panel.h、mi_panel_datatype.h

    • 库文件:libmi_panel.a / libmi_panel.so

  • 相关主题

    MI_PANEL_GetTimingConfig


1.13. MI_PANEL_SetDrvCurrentConfig

  • 功能

    设置驱动能力相关信息

  • 定义

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

    表1-15

    参数名称 描述 输入/输出
    eIntfType 接口类型 输入
    pstDrvCurrentCfg 驱动能力相关配置信息 输入
  • 返回值

    • 0:成功。

    • 非0:失败,详情参照错误码

  • 依赖

    • 头文件:mi_panel.h、mi_panel_datatype.h

    • 库文件:libmi_panel.a / libmi_panel.so


1.14. MI_PANEL_SetOutputPattern

  • 功能

    设置输出pattern

  • 定义

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

    表1-16

    参数名称 描述 输入/输出
    eIntfType 接口类型 输入
    pstTestPatternCfg 输出pattern相关配置信息 输入
  • 返回值

    • 0:成功。

    • 非0:失败,详情参照错误码

  • 依赖

    • 头文件:mi_panel.h、mi_panel_datatype.h

    • 库文件:libmi_panel.a / libmi_panel.so

  • 注意

    调试使用(目前只针对LVDS)


1.15. MI_PANEL_SetPanelParam

  • 功能

    设置PANEL 参数。

  • 语法

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

    表1-17

    参数名称 描述 输入/输出
    eIntfType 接口类型 输入
    pstParamCfg 屏参信息 输入
  • 返回值

    • 0:成功。

    • 非0:失败,详情参照错误码

  • 依赖

    • 头文件:mi_panel.h、mi_panel_datatype.h

    • 库文件:libmi_panel.a / libmi_panel.so

  • 相关主题

    MI_PANEL_GetPanelParam


1.16. MI_PANEL_GetPanelParam

  • 功能

    获取PANEL 参数。

  • 定义

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

    表1-18

    参数名称 描述 输入/输出
    eIntfType 接口类型 输入
    pstParamCfg 屏参信息 输出
  • 返回值

    • 0:成功。

    • 非0:失败,详情参照错误码

  • 依赖

    • 头文件:mi_panel.h、mi_panel_datatype.h

    • 库文件:libmi_panel.a / libmi_panel.so

  • 注意

    需先调用MI_PANEL_SetPanelParam

  • 相关主题

    MI_PANEL_SetPanelParam


1.17. MI_PANEL_GetTimingConfig

  • 功能

    获取Timing相关信息

  • 定义

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

    表1-19

    参数名称 描述 输入/输出
    eIntfType 接口类型 输入
    pstTimingCfg Timing相关信息 输出
  • 返回值

    • 0:成功。

    • 非0:失败,详情参照错误码

  • 依赖

    • 头文件:mi_panel.h、mi_panel_datatype.h

    • 库文件:libmi_panel.a / libmi_panel.so

  • 相关主题

    MI_PANEL_SetTimingConfig


1.18. MI_PANEL_InitDev

  • 功能

    初始化 PANEL 设备。

  • 语法

    MI_S32 MI_PANEL_InitDev(MI_PANEL_InitParam_t *pstInitParam);
    
  • 形参

    参数名称 描述 输入/输出
    pstInitParam 设备初始化参数。 输入
  • 返回值

    • 0:成功。

    • 非0:失败,详情参照错误码

  • 依赖

    • 头文件:mi_panel.h、mi_panel_datatype.h

    • 库文件:libmi_panel.a / libmi_panel.so

  • 注意

    • 此接口在Version 2.09以上版本推荐使用,用于替换原有MI_PANEL_InitDev接口。
  • 相关主题

    MI_PANEL_DeInitDev


1.19. MI_PANEL_DeInitDev

  • 功能

    去初始化 PANEL 设备。

  • 语法

    MI_S32 MI_PANEL_DeInitDev(void);
    
  • 返回值

    • 0:成功。

    • 非0:失败,详情参照错误码

  • 依赖

    • 头文件:mi_panel.h、mi_panel_datatype.h

    • 库文件:libmi_panel.a / libmi_panel.so

  • 注意

    • 此接口在Version 2.09以上版本推荐使用,用于替换原有MI_PANEL_DeInit接口。
  • 相关主题

    MI_PANEL_InitDev


2. PANEL数据类型


PANEL相关数据类型定义如下:

数据类型 定义
MI_PANEL_PowerConfig_t 定义PANEL供电使能状态结构体
MI_PANEL_BackLightConfig_t 定义PANEL背光信息结构体
MI_PANEL_SscConfig_t 定义PANEL展频配置信息结构体
MI_PANEL_MipiDsiConfig_t 定义MIPI接口配置信息结构体
MI_PANEL_MipiDsiLaneMode_e 定义MIPI接口Lane mode枚举
MI_PANEL_MipiDsiFormat_e 定义MIPI接口Format枚举
MI_PANEL_MipiDsiCtrlMode_e 定义MIPI接口CtrlMode枚举
MI_PANEL_TimingConfig_t 定义PANEL Timing信息结构体
MI_PANEL_DrvCurrentConfig_t 定义驱动能力配置结构体
MI_PANEL_TestPatternConfig_t 定义输出pattern信息结构体
MI_PANEL_ParamConfig_t 定义屏参信息结构体
MI_PANEL_IntfType_e 定义接口类型枚举
MI_PANEL_AspectRatio_e 定义AspectRatio枚举
MI_PANEL_TiBitMode_e 定义TiBitMode枚举
MI_PANEL_OutputFormatBitMode_e 定义输出FormatBitMode枚举
MI_PANEL_OutputTimingMode_e 定义panel output timing change mode枚举
MI_PANEL_InitParam_t 定义panel设备初始化参数

注:本节已涵盖各重要的数据类型,部分未列出数据类型请参见 mi_panel_datatype.h


2.1. MI_PANEL_PowerConfig_t


2.2. MI_PANEL_BackLightConfig_t


2.3. MI_PANEL_SscConfig_t

  • 说明

    定义PANEL展频配置信息结构体

  • 定义

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

    表2-3

    成员名称 描述
    bEn panel展频功能使能状态
    u16Freq 展频频率(单位Khz)
    u16Ratio 展频幅度(单位1/1000)
  • 注意

    u16Freq不能小于15Khz.

  • 相关数据类型及接口

    MI_PANEL_SetSscConfig


2.4. MI_PANEL_MipiDsiConfig_t

  • 说明

    定义MIPI接口配置信息结构体

  • 定义

    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;
    
  • 相关数据类型及接口

    MI_PANEL_MipiDsiLaneMode_e

    MI_PANEL_MipiDsiFormat_e

    MI_PANEL_MipiDsiCtrlMode_e

    MI_PANEL_SetMipiDsiConfig


2.5. MI_PANEL_MipiDsiLaneMode_e

  • 说明

    定义MIPI接口Lane mode枚举

  • 定义

    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;
    
  • 相关数据类型及接口

    MI_PANEL_MipiDsiConfig_t

    MI_PANEL_SetMipiDsiConfig


2.6. MI_PANEL_MipiDsiFormat_e

  • 说明

    定义MIPI接口Format枚举

  • 定义

    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;
    
  • 相关数据类型及接口

    MI_PANEL_MipiDsiConfig_t

    MI_PANEL_SetMipiDsiConfig


2.7. MI_PANEL_MipiDsiCtrlMode_e

  • 说明

    定义MIPI接口CtrlMode枚举

  • 定义

    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;
    
  • 相关数据类型及接口

    MI_PANEL_MipiDsiConfig_t

    MI_PANEL_SetMipiDsiConfig


2.8. MI_PANEL_TimingConfig_t

  • 说明

    定义PANEL Timing信息结构体

  • 定义

    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;
    
  • 相关数据类型及接口

    MI_PANEL_SetTimingConfig

    MI_PANEL_GetTimingConfig


2.9. MI_PANEL_DrvCurrentConfig_t

  • 说明

    定义驱动能力配置结构体

  • 定义

    typedef struct
    
    {
    
        MI_U16 u16DrvCurrent;
    
    }MI_PANEL_DrvCurrentConfig_t;
    
  • 相关数据类型及接口

    MI_PANEL_SetDrvCurrentConfig


2.10. MI_PANEL_TestPatternConfig_t

  • 说明

    定义输出pattern结构体

  • 定义

    typedef struct
    
    {
    
        MI_BOOL bEn;
    
        MI_U16 u16R;
    
        MI_U16 u16G;
    
        MI_U16 u16B;
    
    }MI_PANEL_TestPatternConfig_t;
    
  • 相关数据类型及接口

    MI_PANEL_SetOutputPattern


2.11. MI_PANEL_ParamConfig_t

  • 说明

    定义屏参结构体

  • 定义

    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;
    
  • 相关数据类型及接口

    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

  • 说明

    定义PANEL Interface Type枚举

  • 定义

    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
    
    }MI_PANEL_IntfType_e;
    
  • 相关数据类型及接口

    MI_PANEL_ParamConfig_t

    MI_PANEL_GetPanelParam


2.13. MI_PANEL_AspectRatio_e

  • 说明

    定义PANEL AspectRatio枚举

  • 定义

    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;
    
  • 相关数据类型及接口

    MI_PANEL_ParamConfig_t

    MI_PANEL_GetPanelParam


2.14. MI_PANEL_TiBitMode_e

  • 说明

    定义PANEL TiBitMode枚举

  • 定义

    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;
    
  • 相关数据类型及接口

    MI_PANEL_ParamConfig_t

    MI_PANEL_GetPanelParam


2.15. MI_PANEL_OutputFormatBitMode_e

  • 说明

    定义PANEL OutputFormatBitMode枚举

  • 定义

    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;
    
  • 相关数据类型及接口

    MI_PANEL_ParamConfig_t

    MI_PANEL_GetPanelParam


2.16. MI_PANEL_OutputTimingMode_e

  • 说明

    定义panel output timing change mode

  • 定义

    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;
    
  • 相关数据类型及接口

    MI_PANEL_ParamConfig_t

    MI_PANEL_GetPanelParam


2.17. MI_PANEL_InitParam_t

  • 说明

    定义panel设备初始化参数

  • 定义

    typedef struct MI_PANEL_InitParam_s
    
    {
    
        MI_PANEL_IntfType_e eIntfType;  //PANEL接口类型枚举
    
    } MI_PANEL_InitParam_t;
    
  • 相关数据类型及接口

    MI_PANEL_InitDev


3. PANEL错误码

错误代码 宏定义 描述
0xA00B2011 MI_ERR_PANEL_INVALID_PARAM 非法参数
0xA00B2006 MI_ERR_PANEL_NULL_PTR 空指针异常
0xA00B2001 MI_ERR_PANEL_INVALID_DEVID 无效设备ID
0xA00B2018 MI_ERR_PANEL_DRV_FAILED PANEL驱动返回失败
0xA00B2015 MI_ERR_PANEL_NOT_INIT PANEL未初始化
0xA00B2008 MI_ERR_PANEL_NOT_SUPPORT 不支持操作

4. PROCFS介绍

4.1. cat

  • 调试信息

    # cat /proc/mi_modules/mi_panel/mi_panel0
    

  • 调试信息分析

    主要记录用户配置的timing相关信息和mipi dsi相关信息。可用于检查用户设置是否正确,便于debug。

  • 参数说明

    参数 描述
    PANEL_NAME 屏的名字
    LINK_TYPE 屏的类型(TTL、LVDS、BT656、B61120、MIPI-DSI…)
    tgen timing H_Total 单位时间行扫描的次数
    V_Total 单位时间列扫描的次数
    Width 屏的尺寸
    Height
    H_Start 影像行方向和场方向的起始位置
    V_Start
    hbp hsync back porch
    hspw hsync width
    hfp hsync front porch
    vbp vsync back porch
    vspw vsync width
    vfp vsync front porch
    dclk Pixel clk
    fdclk Fix dclk
    fps 帧率
    tgen polarity INV_DCLK Dclk极性反转
    INV_DE DE信号极性反转
    InvHSync Hsync信号极性反转
    InvVSync Vsync信号极性反转
    tgen ssc SSC_Step 调变幅度
    SSC_Span 调变频率范围
    tgen rgb swap chnR R分量通道切换
    chnG G分量通道切换
    chnB B分量通道切换
    ML_swap MSB/LSB数据切换
    tgen out format OutPutFormat 屏输出的位宽模式
    srgb RgbDtype RGB格式数据类型
    OddLine RGB奇数行通道模式
    EvenLine RGB偶数行通道模式
    ttl backlight ctrl PwGpioNum 电源GPIO编号
    PwmNum PWM编号
    DutyVal PWM占空比
    DlyTmPw2Data 电源上电延时时间
    DlyTmData2Bl PWM延时时间
    PeriodVal PWM周期

4.2. echo

功能
动态设置Timing相关属性
命令 echo settiming [IntfType] [param] [value] > /proc/mi_modules/mi_panel/mi_panel0
参数说明 [IntfType] Link type,0:TTL;1:MIPI-DSI;2:SPI_TTL
[param] 需要动态设置的timing属性,可以动态设置hstart/width/hbp/hpw/htotal/vstart/height/vbp/vpw/vtotal
[value] 对应的值
举例 echo settiming 0 width 800ss > /proc/mi_modules/mi_panel/mi_panel0
功能
动态设置mipi相关属性
命令 echo setmipidsi [IntfType] [param] [value] > /proc/mi_modules/mi_panel/mi_panel0
参数说明 [IntfType] Link type,0:TTL;1:MIPI-DSI;2:SPI_TTL
[param] 需要动态设置的mipi的属性,可以动态设置width/hpw/hbp/hfp/sssheight/vpw/vbp/vfp/lanenum/format/ctlmode
[value] 对应的值
举例 echo setmipidsi 1 width 800 > /proc/mi_modules/mi_panel/mi_panel0
功能
设置test pattern
命令 echo pattern [IntfType] [R] [G] [B] > /proc/mi_modules/mi_panel/mi_panel0
参数说明 [IntfType] Link type,0:TTL;1:MIPI-DSI;2:SPI_TTL
[R] test pattern的R分量值
[G] test pattern的G分量值
[B] test pattern的B分量值
举例 echo pattern 0 10 10 10 > /proc/mi_modules/mi_panel/mi_panel0
功能
动态设置展频
命令 echo setssc [IntfType] [status] [span] [step] > /proc/mi_modules/mi_panel/mi_panel0
参数说明 [IntfType] Link type,0:TTL;1:MIPI-DSI;2:SPI_TTL
[status] 是否使能展频。enable:使能,disable:失能
[span] 调变频率范围
[step] 调变幅度
举例 echo setssc 0 enable 100 100 > /proc/mi_modules/mi_panel/mi_panel0
功能
Dump mipi cmd buf
命令 echo dumpcmd > /proc/mi_modules/mi_panel/mi_panel0
参数说明 NA
举例 echo dumpcmd > /proc/mi_modules/mi_panel/mi_panel0