This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[参考译文] Linux:GPIO 问题

Guru**** 2616675 points

Other Parts Discussed in Thread: DRA726

请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/658594/linux-gpio-question

主题中讨论的其他器件:DRA726

工具/软件:Linux

我在创建新线程时遇到问题、根据本站点、DRA726显然不再是有效的器件型号。

我的 GPIO 有一个小问题、需要一些帮助。 我们有一个协处理器来查看 GPIO、如果它处于关闭状态、则如果线路从高电平变为低电平、并且点火开关打开、则会打开电源。 加电时、它将忽略点火状态并以任意方式打开 PMIC 的电源。 当 Linux 关闭时、GPIO 通常应该会关闭。 我在 GPIO 上有一个下拉电阻器。 在某些电路板上、GPIO 保持高电平、直到我们用探针(示波器或万用表)触碰线路。

我对 GPIO 使用 LED 设置、是否可以在不使用 LED 模式的情况下在 devicetree 中使用 GPIO 条目? 我想先关闭线路并发出关断、然后再更改断电。 协处理器可能会有较小的延迟、以便我执行干净的关断。 一旦它看到线路下降、它将使控制线路变为低电平、然后在进入停止模式之前进入三态。 在 Linux 关闭之前执行此操作将不会有干净的关闭。

我希望在关断之前将该线路断电可以修复问题。 我在尝试之前不知道、但使用 GPIO 作为 LED 时、我无法将其作为 GPIO 进行访问。

为什么 LED 的默认状态仅在内核全部加载后才完成? 是否要尽早打开 GPIO? 协处理器的编程器告诉我、大约需要10秒、他才能看到线路变为高电平。

Michel Catudal

ACTIA Corp.

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好、Michel、

    我已将您的问题转交给 GPIO 专家。

    此致、
    Yordan
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    尊敬的 Mike:

    您不必使用 LED 器件。
    您可以使用 Linux sysfs 从用户空间控制 GPIO。
    请参阅 www.kernel.org/.../sysfs.txt

    此致、
    Nikhil D
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    Nikhil、

    无论通过哪种方式、我都会得到相同的结果。 设置正确的值大约需要10秒钟。 应用程序需要大约30秒才能设置端口、因此使用 GPIO 太晚了。 我正在寻找一种方法、将 GPIO 设置正确为 Linux 启动、而不是10秒后的启动。

    我解决了此问题:

    GPIO2{
    TI、空闲;
    TI、无空闲启动;
    TI、no-reset-on-init;
    };

    我担心它可能会影响该端口上的其他 GPIO 位。 该端口上的大多数 GPIO 由 M4中的 TI-RTOS 代码使用。 我需要仔细检查 Linux 上使用的软件、以确保它们可以访问。

    我在 u-boot 中强制为协处理器启用运行状况 GPIO。 如果未设置该线路、协处理器将关闭 PMIC 的电源、从而在我使用 J-tag 擦除协处理器中的代码之前切断电路板的电源。 当我使用 Linux 执行关断操作时、线路变为低电平、协处理器在关闭 DRA726的电源后进入停止模式。

    Michel Catudal
    ACTIA Corp.
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    尊敬的 Mike: 理想情况下、不建议使用 Linux 中的几条 GPIO 线路、BIOS 中的几条 GPIO 线路 。我们不希望多个驱动程序控制同一个 IP。 如果您已经设计了需要在 Linux 和 BIOS 之间共享 GPIO IP 的电路板 、则您已经在 DTS 中添加了正确的属性。 这可确保 Linux 不会将 GPIO 复位/空闲。 现在、如果希望 Linux 在加载驱动程序后立即设置某些 GPIO 线路、则可以使用 GPIO-hog 节点。 一旦 GPIO 驱动程序被载入、它将把线路设定为高电平/低电平。 但是、请注意、如果使用 hog、您将无法从任何其他驱动程序、用户空间更改 GPIO。 如果您希望以后能够更改它、但仍希望尽快更新、则应使用 GPIO 节点的线路初始状态属性 设置 ACTIVE_LOW 极性 相关的位 、Nikhil D