gpt4 book ai didi

linux - DeviceTree 中的命名 GPIO

转载 作者:IT王子 更新时间:2023-10-29 00:37:17 24 4
gpt4 key购买 nike

我正在尝试为嵌入式系统创 build 备树,并想向用户空间公开一些 GPIO。这些不是也不应该被内核驱动程序使用。例如,有一个 USB 设备焊接到由用户空间驱动程序控制的板上。它有一个 GPIO 复位线,用户空间库需要访问它。

我希望这些在 sysfs 中的某个地方按名称公开,以便用户空间可以访问 /sys/class/gpio/usbreset 而不是需要知道神奇的 gpio 编号并需要专门“导出” “它。我试过设置为GPIO hog,初始化GPIO,但是在sysfs中没有出现它的名字,而且gpio被hogg后无法导出。我知道我可以选择另一种内核驱动程序类型,例如 LED,但它不是 LED,这对我来说似乎不太干净。

在 sysfs 中导出命名 GPIO 的正确方法是什么?

最佳答案

您可以在开发树中使用“gpio-leds”类型。确保你的内核中有 CONFIG_LEDS_GPIO。按照 Documentation/devicetree/bindings/leds/leds-gpio.txt 中的描述设置您的开发树.我知道,它说的是“LED”,但驱动程序只是摆动 GPIO,并不关心连接到它的是什么。

示例 devtree 条目(从文档中复制):

run-control {
compatible = "gpio-leds";
red {
gpios = <&mpc8572 6 GPIO_ACTIVE_HIGH>;
default-state = "off";
};
green {
gpios = <&mpc8572 7 GPIO_ACTIVE_HIGH>;
default-state = "on";
};
};

这些条目可以在 sysfs 中通过名称访问,您可以从那里的用户空间操作它们。

关于linux - DeviceTree 中的命名 GPIO,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36803143/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com