LVDS 背光控制问题排查与 DTS 修正文档

一、问题描述

在 i.MX8MP 平台的 LVDS 背光调试过程中,需要对背光使能(EN)和调光(PWM)两个信号进行设备树(DTS)配置。初始配置存在以下问题:

  1. 背光使能信号(LVDS0_BLT_EN)的 GPIO 编号不确定 :最初推测接在 SoC 的 GPIO1_IO09 上,但未在原理图中最终确认。

  2. 背光使能信号的有效电平不确定 :当前占位符写的是 GPIO_ACTIVE_HIGH,但需根据原理图中 Q9 MOSFET 的电路拓扑确认极性。

  3. 调光信号(LVDS0_BLT_PWM)的对应引脚存在分歧 :GPIO1_IO09、GPIO1_IO11、GPIO1_IO13 均可复用为 PWM2_OUT,需根据原理图确认 LVDS0 背光 PWM 实际接在哪个引脚。


二、排查过程

2.1 第一轮排查:原理图第 18 页(IO 扩展)

  • 发现 :LVDS0_BLT_EN 网络标号连接在型号为 PCAL6416AHF,128 的 I2C IO 扩展芯片(U59)的 P1_0引脚上。

  • 结论 :LVDS0_BLT_EN 不是 直接接在 i.MX8MP 的 GPIO 上,而是通过 I2C 扩展芯片控制。原推测的 &gpio1 9 不适用。

2.2 第二轮排查:原理图第 20 页(i.MX8MP Power/GND 引脚图)

  • 发现:该页仅包含电源和地引脚,无 GPIO 功能复用信息。

  • 结论:该页无法确认 GPIO 编号,需查看外设(Peri)引脚定义页。

2.3 第三轮排查:原理图第 6 页(i.MX8MP-Peri 引脚定义图)

  • 发现 :图中 GPIO1_IO09 旁边标注为 LVD S0_BLT_PWM(疑似 LVDS0_BLT_PWM),GPIO1_IO10 旁边标注为 LVDS0_BLT_PWM。

  • 初步结论 :LVDS0_BLT_PWM 可能接在 GPIO1_IO09 或 GPIO1_IO10,存在歧义,需进一步核对引脚表。

2.4 第四轮排查:引脚表(决定性确认)

通过查阅引脚表原始行号,得到决定性证据:

行号 信号 对应 GPIO / 扩展芯片
第 884 行 LVDS0_BLT_PWM GPIO1_IO10(PWM3)
第 889 行 LVDS1_BLT_PWM GPIO1_IO13(PWM2)
第 5053 行 LVDS0_BLT_EN I2C IO EXP P1_0(pcal6416 GPIO 8)
第 5055 行 LVDS1_BLT_EN I2C IO EXP P1_1(pcal6416 GPIO 9)
  • 最终结论:

    • LVDS0_BLT_PWM 实际接在 GPIO1_IO10 ,复用为 PWM3_OUT (不是 GPIO1_IO09)。

    • LVDS0_BLT_EN 接在 I2C 扩展芯片 PCAL6416A 的 P1_0(GPIO 8)。

    • 之前截图误看为 GPIO1_IO09,是因为图上的文字排版换行造成了视觉偏差。

2.5 第五轮排查:原理图第 24 页(Dimming CTRL 电路)

  • 发现 :LVDS0_BLT_EN 输入到 U30(74LV1T34GWH,同相缓冲器),输出 BLT0_ON 控制背光模块。

  • 结论 :因 U30 为同相缓冲器,有效电平为高电平有效 (GPIO_ACTIVE_HIGH)。


三、最终确认结果

3.1 硬件映射关系

信号 连接目标 对应 GPIO / PWM
LVDS0_BLT_EN I2C 扩展芯片 PCAL6416A 的 P1_0 pcal6416 GPIO 8
LVDS0_BLT_PWM GPIO1_IO10 PWM3_OUT
LVDS1_BLT_EN I2C 扩展芯片 PCAL6416A 的 P1_1 pcal6416 GPIO 9
LVDS1_BLT_PWM GPIO1_IO13 PWM2_OUT

3.2 有效电平

  • LVDS0_BLT_EN :GPIO_ACTIVE_HIGH(经同相缓冲器 U30,高电平使能)。

四、DTS 修正方案

4.1 修改内容

项目 修改前(错误) 修改后(正确)
enable-gpios &gpio1 9 GPIO_ACTIVE_HIGH &pcal6416 8 GPIO_ACTIVE_HIGH
pwms <&pwm3 ...> 保持不变(&pwm3 正确)
pinctrl_backlight 配置 GPIO1_IO09 为 GPIO 删除(不再使用)

4.2 修正后的 DTS 片段

dts

复制代码
/* 1. 删除不再使用的 pinctrl_backlight */
// &iomuxc {
//     pinctrl_backlight: backlightgrp {
//         fsl,pins = <
//             MX8MP_IOMUXC_GPIO1_IO09__GPIO1_IO09 0x19
//         >;
//     };
// };

/* 2. 确保 I2C1 下已正确注册 pcal6416 为 GPIO 控制器 */
&i2c1 {
    pcal6416: gpio@20 {
        compatible = "nxp,pcal6416";
        reg = <0x20>;
        gpio-controller;
        #gpio-cells = <2>;
        /* ... 其他属性按实际配置 ... */
    };
};

/* 3. 背光节点修正 */
backlight: backlight {
    compatible = "pwm-backlight";
    pwms = <&pwm3 0 100000 0>;                     /* 对应 GPIO1_IO10 → PWM3 */
    enable-gpios = <&pcal6416 8 GPIO_ACTIVE_HIGH>;  /* P1_0 → gpio 8,高电平有效 */
    /* ... 其他属性保持不变 ... */
};

/* 4. 确保 PWM3 的引脚复用配置正确 */
&iomuxc {
    pinctrl_pwm3: pwm3grp {
        fsl,pins = <
            MX8MP_IOMUXC_GPIO1_IO10__PWM3_OUT 0x6
        >;
    };
};

4.3 注意事项

  1. 确认 pcal6416 节点已存在:若 DTS 中尚未添加该 I2C 扩展芯片节点,需先补充完整配置。

  2. GPIO 编号映射 :PCAL6416A 有 16 个 GPIO,P1_0 通常映射为第 8 号(P0_0~P0_7 为 0~7,P1_0~P1_7 为 8~15),需确认驱动实际映射关系。

  3. PWM 通道确认 :GPIO1_IO10 复用为 PWM3_OUT,务必确认所用 PWM 控制器为 &pwm3。

  4. 极性验证 :理论分析为高电平有效,建议上电实测。若背光默认状态异常,可将 GPIO_ACTIVE_HIGH 改为 GPIO_ACTIVE_LOW 再验证。


五、验证步骤

  1. 编译 DTS:修改后重新编译设备树,确保无语法错误。

  2. 烧录并启动:将新 DTS 部署到目标板。

  3. 检查背光状态 :上电后观察背光是否默认点亮(若 GPIO_ACTIVE_HIGH 正确);若背光不亮,尝试改为 GPIO_ACTIVE_LOW。

  4. PWM 调光测试:调整 PWM 占空比,验证背光亮度是否随之变化。

  5. I2C 通信验证 :通过 i2cget/i2cset 直接读写 PCAL6416A 的 P1_0,确认使能信号可控。


六、总结

项目 最终结论
LVDS0_BLT_EN 控制方式 I2C 扩展芯片 PCAL6416A 的 P1_0(GPIO 8)
LVDS0_BLT_PWM 控制方式 GPIO1_IO10 复用为 PWM3_OUT
使能有效电平 GPIO_ACTIVE_HIGH(同相缓冲器,高电平有效)
DTS 核心修改 enable-gpios 改为 &pcal6416 8;删除 pinctrl_backlight

按此文档在 BSP 服务器上直接修改 DTS 并重新生成 patch 即可。

相关推荐
有毒的教程1 小时前
Linux底层存储路由配置
linux·运维·网络
瑞克-桑切斯1 小时前
2、Shell 条件语句
java·linux·服务器
梦帮科技2 小时前
Linux 内存取证学与 Rootkit 猎杀——Volatility 核心剖析与内核隐藏模块逆向清除
linux·运维·服务器·神经网络·算法·网络安全
无足鸟ICT2 小时前
【RHCA+】软件包
linux·运维·服务器
海盗12342 小时前
微软技术日报 2026-10-15:Defender 下到 Linux 桌面,Copilot 订阅明天改名
linux·人工智能·microsoft·机器人·aigc·copilot
梦帮科技3 小时前
Web 漏洞攻防深度:WAF 规则逃逸技术(畸形分块传输、双重编码)与对抗加固
linux·前端·网络安全·ssl·web
for_ever_love__3 小时前
忠实度(Faithfulness):怎么判断 RAG 的答案有没有瞎编
linux·rag·评估·答案·faithfulness·原文·忠实度
程序员-Benothing3 小时前
Linux系统监控工具全家桶:sar、dstat、glances、Prometheus
linux·运维·prometheus
瑞克-桑切斯4 小时前
13、DNS、DHCP 与 FTP 协议详解
linux·运维·云计算