高通平台TE GPIO选择和配置说明

📅 2026/6/17 10:22:14
高通平台TE GPIO选择和配置说明
在Qualcomm平台进行Display Panel Bringup时TETearing Effect引脚的选择需要同时满足Linux/Android 阶段、XBL 阶段以及Panel XM 配置要求。若TE GPIO选择不符合平台限制可能导致显示同步异常、帧同步失败或屏幕刷新异常等问题。1. Linux/Android 阶段 TE GPIO 配置要求根据 Qualcomm 文档中关于TE配置的说明TE对应的GPIO需要支持类似以下类型的functionmdp_vsync_p_mriamdp_vsync_p_mribmdp_vsync_s_mria其他平台支持的 mdp_vsync_* function也就是说所选择的 GPIO 必须具备 MDP VSYNC 相关复用功能不能随意选择普通 GPIO 作为 TE 引脚。同时文档中也明确说明当在 .dtsi 文件中修改 TE 对应的 GPIO 时驱动中还需要同步配置 MDP 相关寄存器否则仅修改设备树可能无法使新的 TE GPIO 生效。示例配置如下/* * To select GPIO pin [X], configure qcom,platform-te-gpio * in vendor/qcom/proprietary/display-devicetree/display/ * parrot-sde-display-pinctrl.dtsi */ qcom,platform-te-gpio tlmm X 0; pmx_sde_te { sde_te_active: sde_te_active { mux { pins gpioX; function mdp_vsync_p; }; config { pins gpioX; drive-strength 2; bias-pull-down; }; }; sde_te_suspend: sde_te_suspend { mux { pins gpioX; function mdp_vsync_p; }; config { pins gpioX; drive-strength 2; bias-pull-down; }; }; };其中gpioX 需要替换为实际使用的 GPIO 编号function 需要根据平台支持情况选择对应的 mdp_vsync_* 功能。2. XBL 阶段 TE GPIO 配置要求根据 Qualcomm 文档每个芯片平台可用的 TLMM TE GPIO 会在如下路径中定义boot_images/QcomPkg/SocPkg/ChipsetName/Library/MDPPlatformLib/MDPPlatformLibPanelCommon.c在该文件中平台会通过 TE GPIO function table 定义当前芯片支持的 TE GPIO 范围/* Display TE gpio function table */ MDPPlatformTeGpioFunctionType gMDPTeGpioTable[MDP_TE_GPIO_MAX] { ... };主显示器和副显示器的 TE GPIO 引脚必须位于该表定义的有效范围内才能确保 XBL 阶段和后续显示驱动阶段功能正常。Qualcomm 平台中主显示器和副显示器通常会提供默认 GPIO 配置例如MDPPlatformPanelGpioType sDefaultMDPPanelGpio { 24, // uDispResetGpio MDP_TE_GPIO_82, // eDispTeGpio 26, // eDispModeGpio }; /* Secondary panel GPIO setting */ MDPPlatformPanelGpioType sSecondaryPanelGPIO { 25, // uDispResetGpio MDP_TE_GPIO_83, // eDispTeGpio 0, // eDispModeGpio };如果 OEM 项目需要使用不同的 TE GPIO需要修改对应结构体中的 eDispTeGpio 成员并确保所选择的 GPIO 已在 gMDPTeGpioTable 中定义。3. Panel XML 中的 DSI TE VSYNC 映射配置除 XBL 阶段的 GPIO 配置外还需要在 Panel XML 配置文件中通过 DSITEvSyncSelect 属性将 TLMM GPIO 映射到 Adreno DPU 的 mdp_vsync 信号。相关配置可参考 Qualcomm 文档如下配置格式如下DSITEvSyncSelectx/DSITEvSyncSelectDSITEvSyncSelect 的取值含义如下!--0: mdp_vsync_p1: mdp_vsync_s2: mdp_vsync_e--例如若需要将 MDP_TE_GPIO_84即 mdp_vsync_e配置为主显示器 TE 来源则 XBL 中可配置如下MDPPlatformPanelGpioType sDefaultMDPPanelGpio { 24, // uDispResetGpio MDP_TE_GPIO_84, // eDispTeGpio 26, // eDispModeGpio };同时Panel XML 中需要配置DSITEvSyncSelect2/DSITEvSyncSelect将 mdp_vsync_e 映射到主显示器的 mdp_vsync 信号。