概述

本主板通过 40Pin 排针引出了多个空闲引脚,供用户作为普通 GPIO 使用。

注意⚠️
严禁将已被 UART、TWI、SPI 等控制器占用的引脚强制用作 GPIO,否则会导致板载功能失效。

40Pin 排针原理图


请避开已被引用的引脚,自由选择未被使用的引脚进行扩展。

排查引脚状态(设备树层,可选但推荐)

1.在确定使用某个引脚(如 PK0)后,可在设备树中确认其是否已被占用:

打开设备树文件:device/config/chips/t153/configs/t153_nand_base/linux-5.10-origin/board.dts
搜索 PK0。

情况 A:搜索不到任何结果
说明该引脚未被任何控制器引用。为了能通过应用层控制它,仍需在设备树中添加一个简单的 GPIO 节点(参见第 2 步)。

情况 B:搜索到了,且状态为 status = “okay”
说明该引脚已被板载外设占用,请立即更换其他引脚,严禁修改该控制器配置。

情况 C:搜索到了,但状态为 status = “disabled”
说明该引脚曾被配置但当前未启用。可直接在第 3 步使用,或新增节点覆盖。

2. 添加设备树节点(情况 A 必做)

在设备树文件的 &pio 节点下,新增一个属于你自己的 GPIO 节点(不要修改原有节点):

&pio {
    my_custom_gpio: my_custom_gpio {
        pins = "PK0";
        function = "gpio_out";    /* 配置为输出 */
        drive-strength = <10>;
    };
};

修改后,按照平台流程重新编译内核/设备树并烧录。

3.应用层控制(以 PK0 为例)

系统启动后,在终端中通过 sysfs 接口控制 PK0。

获取全局 GPIO 编号

在终端执行:

cat /sys/kernel/debug/gpio | grep -i "PK0"

输出结果中的数字(例如 gpio-320 中的 320)就是它的全局编号。假设为 320。

导出并控制

echo 320 > /sys/class/gpio/export
echo out > /sys/class/gpio/gpio320/direction
echo 1 > /sys/class/gpio/gpio320/value  # 输出高电平 (3.3V)
echo 0 > /sys/class/gpio/gpio320/value  # 输出低电平 (0V)
# 使用完毕后取消导出
echo 320 > /sys/class/gpio/unexport
作者:林晓燕  创建时间:2026-09-11 10:37
最后编辑:林晓燕  更新时间:2026-10-12 11:13