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.

[参考译文] AM625:GPIO 无法控制输入和输出

Guru**** 2463330 points


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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1476994/am625-gpio-has-no-control-over-input-and-output

器件型号:AM625

工具与软件:

问题说明:

   尝试测试 GPIO N20、M21和 V25时出现问题。

   GPIO 设置输出模式、设置0/1、测量发现电平没有变化;

   GPIO 设置为输入模式、外部干预高/低电平、读取值不会改变。

我的 操作:

 我的 DTS:

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

    您好!

    在器件中、您将需要一个参考节点。 请参阅该主题的示例:  https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1268671/sk-am62-using-the-gpios-in-the-40-pin-user-expansion-port/4804378

    或者看到如下所示的内容:

    diff --git a/arch/arm64/boot/dts/ti/k3-am62x-sk-common.dtsi b/arch/arm64/boot/dts/ti/k3-am62x-sk-common.dtsi
    index b1980b85c..6a34c9eeb 100644
    --- a/arch/arm64/boot/dts/ti/k3-am62x-sk-common.dtsi
    +++ b/arch/arm64/boot/dts/ti/k3-am62x-sk-common.dtsi
    @@ -186,6 +186,20 @@ AM62X_IOPAD(0x1cc, PIN_OUTPUT, 0) /* (E14/E11) UART0_TXD */
     		>;
     	};
     
    +	main_gpio0_pins_default: main-gpio0-default-pins {
    +		pinctrl-single,pins = <
    +			AM62X_IOPAD(0x009c, PIN_INPUT, 7) /* (V25) GPMC0_WAIT1.GPIO0_38 */
    +			AM62X_IOPAD(0x00ac, PIN_INPUT, 7) /* (L21) GPMC0_CSn1.GPIO0_42 */
    +		>;
    +	};
    +
    +	main_gpio1_pins_default: main-gpio1-default-pins {
    +		pinctrl-single,pins = <
    +			AM62X_IOPAD(0x01b4, PIN_INPUT, 7) /* (A13) SPI0_CS0.GPIO1_15 */
    +			AM62X_IOPAD(0x01d0, PIN_INPUT, 7) /* (A15) UART0_CTSn.GPIO1_22 */
    +		>;
    +	};
    +
     	main_i2c0_pins_default: main-i2c0-pins-default {
     		pinctrl-single,pins = <
     			AM62X_IOPAD(0x1e0, PIN_INPUT_PULLUP, 0) /* (B16/E12) I2C0_SCL */
    @@ -329,6 +343,29 @@ AM62X_IOPAD(0x0078, PIN_OUTPUT, 1) /* (U24) GPMC0_AD15.VOUT0_DATA23 */
     	};
     };
     
    +&mcu_pmx0 {
    +	mcugpio0_pins_default: mcugpio0-default-pins {
    +		pinctrl-single,pins = <
    +			AM62X_MCU_IOPAD(0x003c, PIN_INPUT, 7) /* (E5) MCU_MCAN1_TX.MCU_GPIO0_15 */
    +			AM62X_MCU_IOPAD(0x0040, PIN_INPUT, 7) /* (D4) MCU_MCAN1_RX.MCU_GPIO0_16 */
    +		>;
    +	};
    +};
    +
    +&main_gpio0 {
    +	status = "okay";
    +	pinctrl-names = "default";
    +	pinctrl-0 = <&main_gpio0_pins_default>;
    +
    +};
    +
    +&main_gpio1 {
    +	status = "okay";
    +	pinctrl-names = "default";
    +	pinctrl-0 = <&main_gpio1_pins_default>;
    +
    +};
    +
     &wkup_uart0 {
     	/* WKUP UART0 is used by DM firmware */
     	status = "reserved";
    @@ -578,11 +615,13 @@ dpi1_out: endpoint {
     	};
     };
     
    -/* mcu_gpio0 and mcu_gpio_intr are reserved for mcu firmware usage */
    +/* mcu_gpio0 and mcu_gpio_intr are reserved for mcu firmware usage  */
     &mcu_gpio0 {
    -	status = "reserved";
    +	status = "okay";
    +	pinctrl-names = "default";
    +	pinctrl-0 = <&mcugpio0_pins_default>;
     };
     
     &mcu_gpio_intr {
    -	status = "reserved";
    +	status = "okay";
     };
    

    此致、

    Anshu

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

    你(们)好  

     非常感谢您的答复

     我认为这不是设备树的问题。 器件树的枚举方式与现在 LED 节点中的操作相同。 引脚编号的计算应该是错误的。例如、我想上拉 M21引脚、echo 0 >/ sys/class/Gpio440 gpio440 / value 的实现方案、但这可能不是 M21引脚、因此我想知道如何计算 GPIO 编号

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    • 的确、我的引脚编号计算错误、因此现在问题已经解决