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.

[参考译文] PROCESSOR-SDK-AM62A:无法使用 gpioset 命令控制 SDK10.0.0中的某些 GPIO

Guru**** 2483435 points


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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1439659/processor-sdk-am62a-cant-control-some-gpio-in-sdk10-0-0-with-gpioset-command

器件型号:PROCESSOR-SDK-AM62A

工具与软件:

root@am62axx-evm:/dev# uname -a
Linux am62axx-evm 6.6.32-gdb8871293143-dirty #2 SMP PREEMPT Fri Nov 15 04:36:08 EST 2024 aarch64 aarch64 aarch64 GNU/Linux
root@am62axx-evm:/dev# gpiodetect
gpiochip0 [4201000.gpio] (24 lines)
gpiochip1 [600000.gpio] (92 lines)
gpiochip2 [601000.gpio] (52 lines)
gpiochip3 [0-0048] (11 lines)

我使用的 AM62芯片具有 SDK 版本10.0.0。


我曾尝试在应用层使用 GPIO 工具将 GPIO0_89控制为高电平、然后将其拉低、以手动复位芯片。 当我尝试使用 gpioset 和 gpioget 等配置此引脚的输出时,它不能正确配置,当我用万用表测量它时,它仍然保持低电平。

root@am62axx-evm:/dev# gpioset /dev/gpiochip1 89=1
root@am62axx-evm:/dev# gpioget /dev/gpiochip1 89
0

同时、当我配置另一个引脚 GPIO1_23时、我可以使用该说明正常控制它、我可以使用万用表对其进行测试。

root@am62axx-evm:/dev# gpioget /dev/gpiochip2 23
1
root@am62axx-evm:/dev# gpioset /dev/gpiochip2 23=0
root@am62axx-evm:/dev# gpioget /dev/gpiochip2 23
0

dmesg 打印以下内容

[ 1321.003665] gpio gpiochip1: Persistence not supported for GPIO 89
[ 1321.003690] gpio gpiochip1: registered chardev handle for line 89
[ 1321.003713] gpio gpiochip1: registered chardev handle for 1 lines
[ 1772.929431] gpio gpiochip1: Persistence not supported for GPIO 89
[ 1772.929456] gpio gpiochip1: registered chardev handle for line 89
[ 1772.929476] gpio gpiochip1: registered chardev handle for 1 lines
[ 1779.010352] gpio gpiochip1: Persistence not supported for GPIO 89
[ 1779.010376] gpio gpiochip1: registered chardev handle for line 89
[ 1779.010397] gpio gpiochip1: registered chardev handle for 1 lines
[ 1927.101133] gpio gpiochip2: Persistence not supported for GPIO 23
[ 1927.101157] gpio gpiochip2: registered chardev handle for line 23
[ 1927.101177] gpio gpiochip2: registered chardev handle for 1 lines
[ 1932.502128] gpio gpiochip2: Persistence not supported for GPIO 23
[ 1932.502153] gpio gpiochip2: registered chardev handle for line 23
[ 1932.502172] gpio gpiochip2: registered chardev handle for 1 lines
[ 1933.760519] gpio gpiochip2: Persistence not supported for GPIO 23
[ 1933.760544] gpio gpiochip2: registered chardev handle for line 23
[ 1933.760563] gpio gpiochip2: registered chardev handle for 1 lines

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

    您好!

    正如您知道的那样、调用 gpioset 然后 gpioget 将改变 GPIO 的方向、并将丢失先前值的上下文。 就像 gpioset X=0一样、gpioget X 可能会返回1或0、具体取决于默认值。

    您使用的是 TI EVM 还是定制硬件?

    您能否共享器件树的 GPIO 节点?

    "Persistence Not Supported"日志指向此 gpiaolib.c 驱动程序: https://git.ti.com/cgit/ti-linux-kernel/ti-linux-kernel/tree/drivers/gpio/gpiolib.c?h=ti-linux-6.6.y#n2381

    "registered chardev handle"日志指向 gpipolib-cdev.c 驱动程序: https://git.ti.com/cgit/ti-linux-kernel/ti-linux-kernel/tree/drivers/gpio/gpiolib-cdev.c?h=ti-linux-6.6.y

    此致、

    Anshu

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

    尊敬的 TWL:

    GPIO0_89没有引脚多路复用。 为了进行简单的测试、您可以尝试添加它吗?

    &main_pmx0 {
    	gpio0_pins_default: gpio0-default-pins {
    		pinctrl-single,pins = <
    			AM62AX_IOPAD(0x016c, PIN_INPUT, 7) /* (AA19) RGMII2_TD0.GPIO0_89 */
    		>;
    	};
    };
    
    &main_gpio0 { 
        status = "okay";
        pinctrl-names = "default";
        pinctrl-0 = <&gpio0_pins_default>;
    };


    然后尝试使用 gpioset 命令。 让确保您可以执行基本功能、然后尝试将其集成。

    谢谢!

    Anshu

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

    尊敬的  Anshu:  

    您的方法是有效的。 我现在可以控制引脚的输出。

    但我有一个问题、当我将 GPIO0_89控制为高电平时、 我在应用中使用 GPIO 工具来获取 GPIO、然而、如果我测量硬件为高电平、它仍然为低电平、ENN。 GPIO 工具有些问题?

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

    尊敬的 TWL:

    进展如何? 我遇到了你的同样的问题。

    在我的板上、"gpioset"不可用。  当我发出命令"gpioset -c gpiochip1 5=1"时、它将挂起。 仅此问题与以下链接相同:

    https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1416431/processor-sdk-am62p-how-to-control-gpio-in-sdk10-kernel-6-6

    因此、我使用 GPIO_SET_VALUE/GPIO_GET_VALUE 来测试相关 GPIO。

    GPIO_SET_VALUE 1/0正常、但  GPIO_GET_VALUE 始终为0。 与使用 gpioget 工具相同。

     

    你这边有什么更新吗? 希望您已解决此问题。

    此致、

    TAO