全志 GPIO BUG

一、问题背景

在调试T527 屏幕显示的时候,主板另外添加了PK 组gpio口去控制屏幕的背光,软件上面需要在内核运行的时候将gpio口设置输出高电平,拉高背光点亮屏幕。但是一直背光不亮,

通过命令cat /sys/kernel/debug/gpio查看驱动申请的gpio设置状态,一直是输出高电平的,出现问题的时候,实际量电平是低电平。

二、排查过程

1、查看PK引脚复用状态:

复制代码
cat /sys/kernel/debug/pinctrl/pinctrl-maps > /root/pinctrl

查看root目录下的pinctrl文件,正常,PK引脚无复用关系

2、硬件排查

通过GPIO导出配置value值测量是否符合预期

echo 0/1 >value 时,测量该GPIO 状态不会变化

3、产看引脚组 GPIO寄存器:正常

三、解决办法:

针对 sun55iw3 系列产品,若需要使用 PD、PK、PJ 作为普通 GPIO 使用,需要在 dts 中加上以下配置。具体操作如下:

在 board.dts 中增加节点:

复制代码
&pd1 {
/* pk */
pd1_vi@A523_PCK_VI {
ppu-always-on;
};

/* pd */
pd1_vo0@A523_PCK_VO0 {
    ppu-always-on;
};

/* pj */
pd1_vo1@A523_PCK_VO1 {
    ppu-always-on;
};

};

也可直接修改sun55iw3p1.dtsi中pd1的设备树节点

路径:/bsp/configs/linux-5.15/sun55iw3p1.dtsi

内核解析is_always_on参数

路径:bsp/drivers/pm_domain/pm_domains.c

读取设备树的 ppu-always-on 属性

is_always_on = of_property_read_bool(node, "ppu-always-on");

核心作用:检查当前电源域节点是否有 ppu-always-on 属性(就是你设备树里加的配置);

返回值:

true:节点有该属性 → 这个电源域始终保持供电(不休眠);

false:无该属性 → 电源域可按需休眠(节省功耗);

对于T527产品:PD/PK/PJ 引脚关联的 VI/VO0/VO1 电源域需要始终供电,才能作为普通 GPIO 使用(否则会被内核休眠,引脚失效)。

相关推荐
刚入门的大一新生几秒前
Linux-线程封装
linux·运维·服务器
god_cvz4 分钟前
实践:Linux环境构建CTB工具(cesium-terrain-builder)
linux·gis·ctb
Android系统攻城狮19 分钟前
Linux FFmpeg深度解析之av_dump_format调用流程与实战(十一)
linux·运维·服务器·ffmpeg·1024程序员节·音视频进阶
Android系统攻城狮34 分钟前
Linux FFmpeg深度解析之avcodec_find_decoder调用流程与实战(十二)
linux·运维·服务器·ffmpeg·1024程序员节·音视频进阶
小白的码BUG之路43 分钟前
K8s -- 启动一主二从节点
linux·运维·服务器
Escalating_xu1 小时前
【Linux 网络编程】IP 分片与重组:3000 字节的数据报,怎样拆开又拼回来?
linux·网络·tcp/ip
小相会自律1 小时前
全平台远程控制软件推荐2026:Win/Mac/Linux/手机/鸿蒙互通哪款好
linux·macos·智能手机·todesk·teamviewer·向日葵
风娜1 小时前
【Linux网络】UDP 服务器怎么写?从 socket、bind 到 recvfrom/sendto,手写完整回显服务器
linux·服务器·网络
静以修身zzz1 小时前
OpenStack对象存储-Swift、OpenStack编排管理-heat、OpenStack网络管理-neutron
linux·运维·服务器·架构·openstack·swift
sg_knight1 小时前
Bug 定位实战:把报错丢给 Codex,它是怎么修的
chatgpt·llm·bug·openai·agent·ai编程·codex