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**** 2894990 points

Other Parts Discussed in Thread: DM385

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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/662276/linux-gpio-output-pin

Thread 中讨论的其他器件:DM385

工具/软件:Linux

您好、Sirs、

我 的环境是 DM385 IPNC 3.5、内核2.6.37

我们要 将 GPIO 2[30]配置为输出引脚。以下是我们的修改

===================================================================================================

在 ti_tools/ipev_spp_arago/u-boot/board/ti/dm385_ipnC/mux.h 中

/*-204 */位(0)、位(0)、位(0)、位(2)、
/*-208 */位(2)、 位(7)、位(2)、位(2)、

在 board-dm385ipnc.c 中、我们添加了控制函数

GPIO_Is_VALID (94);
GPIO_REQUEST (94、"GPIO_OUTP");
GPIO_DIRECT_OUTPUT (94、1);
GPIO_SET_VALUE (94、1);
mbleep (5000);
GPIO_SET_VALUE (94、0);
mbleep (5000);

================================================================================================

但我们在设备启动时检查了这个硬件引脚。 >无任何更改。

我们更改了/sys/class/gpio/gpio94/value 中的值并 检查了这个硬件引脚--- >无任何更改。

如果我们失去了一些控制权、请提供帮助。

此致、

拜伦

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

    请检查以下 wiki 页面是否能帮助您解决问题:

    processors.wiki.ti.com/.../TI81XX_PSP_GPIO_Driver_User_Guide

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

    是的、我们已经参考了本用户指南。但这个硬件引脚仍然没有改变。您能向我们展示如何调试这个问题吗。谢谢。

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

    在 DM385数据表中、我看到 GPIO 编号不是连续的。 我们有125个 GPIO 引脚(0至124)、GP0[0:28]、GP1[0:31]、GP2[0:31]和 GP3[0:31]。 因此、GP2[30]看起来映射到 gpio91 (而不是 gpio94)。 请尝试 gpio91。 如果不起作用、也可以尝试使用 gpio92、如果我们还对 GP2[02]进行计数、这是有效的。


    运行这些命令以了解驱动程序中已请求的 GPIO。
    $mount -t debugfs debugfs /sys/kernel/debug
    $cat /sys/kernel/debug/gpio

    另请参见以下 e2e 线程:

    e2e.ti.com/.../651317

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

    您好、Pavel、

    为什么 GPIO 管脚编号 是91而不是94?不是2*32+30=94?

    我刚刚添加 了"omap_mux_init_signal ("gpio2_30"、TI814X_PIN_output_pull_up)"的函数。这个 GPIO 似乎正常工作。所以、我们之前使用 GPIO 时是否需要初始化多路复用器?

    我们要 通过 GPMC_A[12]和 GPMC_A[13]从 UART2连接 UART1?我们能否按如下方式修改初始化?

    静态空 dm38x_uart2_pin_mux (空)

    //sprintf (mux_name、"uart2_RxD_mux2");
    //omap_mux_init_signal ("uart2_RxD_mux2"、TI814X_PULL_DIS | TI814X_INPUT_EN);
    omap_mux_init_signal ("uart1_RxD_mux1"、TI814X_PULL_DIS | TI814X_INPUT_EN); //修改


    //sprintf (mux_name、"uart2_TXD_mux2");
    //omap_mux_init_signal ("uart2_TXD_mux2"、TI814X_PULL_UP);
    omap_mux_init_signal ("uart1_TXD_mux1"、TI814X_PULL_UP);//修改

    此致、

    拜伦

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

    [引用用户="Byron Tian"]为什么 GPIO 引脚编号 是91而不是94?

    因为 GPIO0有29个引脚、而不是32个引脚。

    [引用用户="Byron Tian"]不是2*32+30=94?

    否 GPIO0有29个引脚、而不是32个引脚。

    [引用 user="Byron Tian]2.I 刚刚添加 了"omap_mux_init_signal ("gpio2_30"、TI814X_PIN_output_pull_up")的函数。该 GPIO 似乎正常工作。因此、我们之前使用 GPIO 时是否需要初始化多路复用器?

    是的、您需要为 GP2[30]设置正确的引脚多路复用器

    [引用 USER="Byron Tian]3..我们想 通过 GPMC_A[12]和 GPMC_A[13]从 UART2连接 UART1吗?我们是否可以按如下方式修改初始化?

    我看不到这与 GP2[30]使用问题有何关系。 请澄清一下?

    此致、
    帕维尔

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

    抱歉、GPMC_A[12]和 GPMA_A[13]是另一个问题。
    最初、我们通过 UART2_TXD/I2C[3]_SDA 和 UART2_RXD/I2C[3]_SCL 连接 UART2。
    现在、我们要通过 GPMC_A[12]/UART1_RXD 和 GPMC_A[13]/UART1_TXD 更改为 UART1
    如果我们修改初始函数、它是否正确?

    静态空 dm38x_uart2_pin_mux (空)

    //sprintf (mux_name、"uart2_RxD_mux2");
    //omap_mux_init_signal ("uart2_RxD_mux2"、TI814X_PULL_DIS | TI814X_INPUT_EN);
    omap_mux_init_signal ("uart1_RxD_mux1"、TI814X_PULL_DIS | TI814X_INPUT_EN);//修改


    //sprintf (mux_name、"uart2_TXD_mux2");
    //omap_mux_init_signal ("uart2_TXD_mux2"、TI814X_PULL_UP);
    omap_mux_init_signal ("uart1_TXD_mux1"、TI814X_PULL_UP);//修改


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

    [引用用户="Byron Tian"]抱歉,GPMC_A[12]和 GPMA_A[13]是另一个问题。

    抱歉、这适用于另一个线程。 请将此 e2e 主题保留为主题中的问题(Linux:GPIO 输出引脚)、并打开新的 e2e 主题以了解新问题。

    此致、
    帕维尔

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

    拜伦

    我看到您的新问题、我看到另一位工程师正在处理该问题。

    关于 GP2[30]问题、为 GPIO 引脚的使用设置引脚多路复用配置、PSP 用户指南中提到了引脚多路复用配置的详细信息。 如果 pinmux 设置不正确、则无法获得预期的功能。



    您是否最终修复了 GPIO 引脚问题? 如果是、请关闭/解决/验证此主题。

    此致、
    帕维尔

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

    您好、Pavel、

    这很奇怪。如果使用 gpio91,我无法控制它。但是 gpio94。 它发挥了作用。 它看起来是32位而不是29位。

    此致、

    拜伦

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

    Linux 内核可能会将 GP2[30]映射到 gpio94、因为您现在可以对其进行控制。 因此、主要问题是 gpio94的 pinmux、现在已修复。

    此致、
    帕维尔