You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过设备树自动导出XR17V358的Exar GPIO?

问题分析

你的观察完全正确:exar-gpio驱动目前不支持设备树绑定,核心原因如下:

  • gpio-exar.c驱动代码未实现设备树(OF)匹配逻辑,既没有声明用于设备树绑定的compatible字符串,也没有从设备树读取exar,first-pin、ngpios等属性的代码。
  • Exar的GPIO控制器实例并非由设备树节点触发创建,而是由8250_exar.c(Exar串口驱动)在初始化UART硬件时主动生成的,GPIO的基础参数(如引脚数量、起始编号)来自硬件寄存器或串口驱动的硬编码配置,与设备树无关。

你参考的内核文档gpio-exar.txt可能是早期规划文档,与当前驱动的实际实现不匹配。

替代解决方案

既然无法通过设备树自动绑定,你可以通过以下方式实现开机自动导出GPIO并配置为LED:

1. Sysfs脚本+Systemd服务

编写初始化脚本并通过systemd管理,实现开机自动配置:

步骤1:创建GPIO初始化脚本

创建/usr/local/bin/exar-gpio-init.sh:

#!/bin/bash
# XR17V358的gpiochip base为472,引脚2对应全局GPIO编号472+2=474
GPIO_NUM=474

# 导出GPIO(如果未导出)
if [ ! -d /sys/class/gpio/gpio$GPIO_NUM ]; then
    echo $GPIO_NUM > /sys/class/gpio/export
fi

# 设置为输出方向,默认关闭
echo out > /sys/class/gpio/gpio$GPIO_NUM/direction
echo 0 > /sys/class/gpio/gpio$GPIO_NUM/value

# (可选)映射到leds类统一管理
mkdir -p /sys/class/leds/led1
echo "gpio$GPIO_NUM" > /sys/class/leds/led1/trigger
echo 0 > /sys/class/leds/led1/brightness

添加执行权限:

chmod +x /usr/local/bin/exar-gpio-init.sh

步骤2:创建Systemd服务

创建/etc/systemd/system/exar-gpio-init.service:

[Unit]
Description=Initialize Exar XR17V358 GPIO LEDs
After=multi-user.target

[Service]
Type=oneshot
ExecStart=/usr/local/bin/exar-gpio-init.sh
RemainAfterExit=yes

[Install]
WantedBy=multi-user.target

启用并启动服务:

systemctl daemon-reload
systemctl enable exar-gpio-init.service
systemctl start exar-gpio-init.service

2. 使用libgpiod工具(推荐)

libgpiod是内核推荐的替代sysfs GPIO的用户空间工具,兼容性和可靠性更好:

安装libgpiod

根据发行版执行安装命令:

# Debian/Ubuntu系列
apt install gpiod
# RHEL/CentOS系列
yum install gpiod

编写初始化脚本

创建/usr/local/bin/exar-gpio-led-init.sh:

#!/bin/bash
# 控制gpiochip472的第2个引脚,设置为低电平(关闭LED)
gpioset gpiochip472 2=0

同样通过Systemd服务管理,步骤与方案1一致。

3. 修改内核驱动(进阶)

如果具备内核开发基础,可以修改驱动添加设备树支持:

  1. 在gpio-exar.c中添加OF匹配表,声明compatible字符串(如"exar,gpio-exar")。
  2. 修改8250_exar.c,让其优先从设备树读取exar,first-pin和ngpios参数。
  3. 重新编译内核及驱动模块。
    该方案门槛较高,不建议新手尝试。

内容的提问来源于stack exchange,提问作者ThKe93

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.26 04:57:23