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.

[参考译文] AM68A:使 WKUP_GPIO0_71 作为 GPIO 正常工作

Guru**** 2439670 points
Other Parts Discussed in Thread: SYSCONFIG

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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1533415/am68a-getting-wkup_gpio0_71-as-gpio-to-work

部件号:AM68A
主题:SysConfig 中讨论的其他器件

工具/软件:

我们使用 Linux、希望使用 WKUP_GPIO0_71 作为 GPIO 输入引脚(以及其他几个引脚)。

我们已经有 WKUP_GPIO0_07 工作、并对 WKUP_GPIO0_71 进行了相同的器件树更改。 但这是不起作用的。

在数据表中、我们看到 WKUP_GPIO0_07 默认为 GPIO 引脚、但 WKUP_GPIO0_71 不是。 这是否是主要区别、因此需要特殊处理、而我们可能会遗漏这一点?

此致、

Frank

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

    您好、Frank、

    我们能否从 wkup_GPIO_71 的引脚多路复用配置开始?

    您能否读出为工作 GPIO 与非工作 GPIO 配置的值?

    当你说它不工作是它不切换?

    此致、

    Keerthy  

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

    您好、 Keerthy、

    如何在 Linux 中读出价值? 在 u-boot 中更容易吗?

    是的、读取的引脚值始终保持零。

    Frank

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

    您好、

    Linux 中的“defmem2 reg_address_physical w“
      U-Boot 中的“md reg_address_physical 1“。

    如果要在 Linux 中进行切换、您需要 DTS 具有 PADCONFIG。

    https://e2e.ti.com/support/processors-group/processors/f/processors-forum/927526/faq-ccs-tda4vm-pinmux-guide-for-jacinto-processors

    - Keerthy

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

    我们使用 WKUP_GPIO0_7(正在正常工作)和 WKUP_GPIO0_71:

    WKUP_GPIO0_7    -> WKUP_PADCONFIG_55   -> 0x4301c0dc

    WKUP_GPIO0_71   -> WKUP_PADCONFIG_77   -> 0x4301c134

    u-boot 中的读取:

    => md 0x4301c0dc 1

    4301c0dc: 00050007

    => md 0x4301c134 1

    4301c134: 00000000

    在 Linux 中读取寄存器(从 busybox 中使用 devmem):

    ~ # devmem 0x4301c0dc w

    0x00050007

    ~ # devmem 0x4301c134 w

    0x00000000

    因此、我想不会为 WKUP_GPIO0_71 写入配置值。

    在器件树中、我们提供:

    J721S2_WKUP_IOPAD(0x074, PIN_INPUT, 7)

    J721S2_WKUP_IOPAD(0x0cc, PIN_INPUT, 7)

    彼此正下方的同一个块中。

    Frank

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

    Frank、

    [引述 userid=“632291" url="“ url="~“~/support/processors-group/processors/f/processors-forum/1533415/am68a-getting-wkup_gpio0_71-as-gpio-to-work/5900839 #5900839“]

    J721S2_WKUP_IOPAD(0x0cc, PIN_INPUT, 7)

    [/报价]

    您可以尝试以下操作:  

    J721S2_WKUP_IOPAD(0x134, PIN_INPUT, 7)

    - Keerthy

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

    没有任何变化。 仍然会读回相同的值、并且 GPIO 输入不起作用。

    如果您的建议应该可行、则 SysConfig 工具将是错误的、因为我们从该工具中获得了器件树语句。 对于WKUP_GPIO0_7器件树中的寄存器地址值、0x0dc该值不符合数据表中的规定。

    Frank

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

    Frank、

    我抬头看了一眼 DTS:

            wkup_pmx2: pinctrl@4301c068 {
                    compatible = "pinctrl-single";
                    /* Proxy 0 addressing */
                    reg = <0x00 0x4301c068 0x00 0x120>;
                    #pinctrl-cells = <1>;
                    pinctrl-single,register-width = <32>;
                    pinctrl-single,function-mask = <0xffffffff>;
            };
    
    

     0x134 偏移位于 wkup_pmx2 下。

    因此 0x134 - 0x68 = 0xCC。

    您使用的偏移正确。 因此、请分享您正在使用的完整补丁。 该偏移以 wkup_pmx2 为基准。 您是否使用过 wkup_pmx2 或 wkup_pmx0?

    哪个器件还使用上述引脚多路复用节点?

    例如:  

    &MAIN_uart8{
    状态=“正常“;
    pinctrl-names =“default";“;
    pinctrl-0 =<& MAIN_uart8_pins_default >;
    /*在此平台上与 TFA 共享*/
    电源域=<&K3_PDS 357 TI_SCI_PD_Shared>;
    全部引导;
    };

    如何连接 WKUP_GPIO0_71 引脚多路复用节点? 请分享完整的补丁、供我查看。

    - Keerthy

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

    IO 焊盘的 pinmux 节点在下配置wkup_pmx2 、将由使用wkup_gpio0

    很遗憾、我不能在这里共享任何代码。 甚至是器件树。

    Frank

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

    您能否仅分享与 GPIO71 相关的代码? 如何实现? 只是 DTS 更改要求分享。  

    如果不检查您在做什么、我无法评论太多。  

    此致、

    Keerthy  

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

    &wkup_pmx1 {
        drx6_wkup_pmx1_default: drx6-wkup-pmx1-default-0 {
            pinctrl-single,pins = <
                J721S2_WKUP_IOPAD(0x00c, PIN_OUTPUT, 7)
                J721S2_WKUP_IOPAD(0x010, PIN_OUTPUT, 7)
                J721S2_WKUP_IOPAD(0x020, PIN_OUTPUT, 7)
            >;
        };
    };

    &wkup_pmx2 {
        drx6_wkup_pmx2_default: drx6-wkup-pmx2-default-0 {
            pinctrl-single,pins = <
                J721S2_WKUP_IOPAD(0x054, PIN_INPUT, 7)
                J721S2_WKUP_IOPAD(0x068, PIN_INPUT, 7)
                J721S2_WKUP_IOPAD(0x06c, PIN_INPUT, 7)
                J721S2_WKUP_IOPAD(0x070, PIN_INPUT_PULLDOWN, 7)
                J721S2_WKUP_IOPAD(0x074, PIN_INPUT, 7)
                J721S2_WKUP_IOPAD(0x080, PIN_INPUT, 7)
                J721S2_WKUP_IOPAD(0x0cc, PIN_INPUT, 7)
                J721S2_WKUP_IOPAD(0x0d0, PIN_INPUT, 7)
                J721S2_WKUP_IOPAD(0x0d4, PIN_INPUT, 7)
                J721S2_WKUP_IOPAD(0x0d8, PIN_INPUT, 7)
                J721S2_WKUP_IOPAD(0x0dc, PIN_INPUT, 7)
                J721S2_WKUP_IOPAD(0x0e0, PIN_INPUT, 7)
                J721S2_WKUP_IOPAD(0x0e4, PIN_INPUT, 7)
                J721S2_WKUP_IOPAD(0x0e8, PIN_INPUT, 7)
            >;
        };

        poe_pins_default: poe-default-pins {
            pinctrl-single,pins = <
                J721S2_WKUP_IOPAD(0x118, PIN_INPUT, 7)
            >;
        };
    };

    &wkup_gpio0 {
        status = "okay";
        pinctrl-names = "default";
        pinctrl-0 = <&drx6_wkup_pmx1_default>, <&drx6_wkup_pmx2_default>, <&poe_pins_default>;
        gpio-init-names = "default";
    };

    这应该是器件树的相关部分。

    Frank

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

    设置正确。 您应该仔细看一下。

    [引述 userid=“632291" url="“ url="~“~/support/processors-group/processors/f/processors-forum/1533415/am68a-getting-wkup_gpio0_71-as-gpio-to-work/5900839 #5900839“]

    我们使用 WKUP_GPIO0_7(正在正常工作)和 WKUP_GPIO0_71:

    WKUP_GPIO0_7    -> WKUP_PADCONFIG_55   -> 0x4301c0dc

    [/报价]

    我的另一个疑问是要检查您的设置中是否有任何其他 DTS 节点将其设置为 0、还是任何远程核心固件将其设置为 0?

    您的设置中是否有可能使用 MCU_ADC0? 如果是、可以 在这里检查是否将其设置为 mode0。

    请告诉我。

    此致、
    Keerthy

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

    很抱歉这个问题的答案很晚、但我上周离开办公室了。

    我禁用了加载远程内核固件的功能、但这会使 GPIO 无法正常工作。 我还检查了 dts 并加载了内核驱动程序、但我们不使用 MDC_ADC0。 未加载驱动程序 (ti_am335x_tscadc.ko)。

    此致、

    Frank

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

    Frank、

    [引述 userid=“632291" url="“ url="~“~/support/processors-group/processors/f/processors-forum/1533415/am68a-getting-wkup_gpio0_71-as-gpio-to-work/5924415

    很抱歉这个问题的答案很晚、但我上周离开办公室了。

    [/报价]

    没问题。

    我禁用了远程内核的固件加载、但这会使 GPIO 无法正常工作。 我还检查了 dts 并加载了内核驱动程序、但我们不使用 MDC_ADC0。 未加载驱动程序 (ti_am335x_tscadc.ko)。

    复位值通常为非零。  我来尝试一下 EVM 上是否有不同的连接。

    此致、
    Keerthy

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    复位值通常为非零值。  让我在结束时尝试一下、看看 EVM 上是否不同。

    恐怕不支持 WKUP_PADCONFIG_77 (0x4301C134)。 根据寄存器表、它的复位值为零。

    Frank

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

    Frank、

    是的、您是对的。

    MD 0x4301C134 1.
    4301c134: 00000000

    => MW 0x4301C134 0x40007 1.
    => MD 0x4301C134 1
    4301c134: 00000000

    即使我尝试写入、也无法写入。 因此、如果无法修改、我将再次咨询硬件专家。 这可能是 DTS/Linux 无法像我在上述过程一样写入该寄存器的原因。

    其他 WKUP_GPIO0 引脚不是 ADC、我可以写入它。

    MD 0x4301C03c 1
    4301c03c: 08214007 .@.

    => MW 0x4301C03c 0x40007 1.
    => MD 0x4301C03c 1
    4301c03c:00040007

    我将咨询硬件团队、然后重新获得该特定的引脚。

    - Keerthy

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

    ADC 引脚不是标准 LVCMOS 引脚、因此没有所有相同的 PADCONFIG 支持其他标准 LVCMOS 引脚。  这在寄存器详细信息中显示 — 因为许多值是保留的(包括 MUXMODE)。

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

    感谢您的回答!

    但在数据表(SPRSP91B、第 49 页)中、我们可以看到多路复用模式可以是07。 因此、数据表是否不正确、多路复用模式7 (GPIO0_71) 是否不可行?

    此致、

    Frank

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

    我认为必须设置该位、才能指示 ADC 将 IO 视为 GPI

    40F0 40B0h CFG0 CTRL_MMR_MCU_ADC0_CTRL

    31:17 保留无 0h 保留
    16 MCU_ADC0_CTRL_GPI_MODE_EN R/W 0h 启用 MCU_ADC0 数据引脚在设置时用作通用输入。 此信号连接到 MCU_ADC0 的 en_DIG_TEST 输入
    15:5 保留无 0h 保留
    4:0 MCU_ADC0_CTRL_TRIG_SEL R/W 0h “选择 ADC 硬件事件触发源

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

    是的、就是这样!

    我很感激你! 感谢您的回答!

    似乎仍然无法设置 padconfig 寄存器(当我在 u-boot 中更改它时、我始终读回 0x0)、但 u-boot 和 Linux 系统中的 GPIO 命令可以正常工作。

    我希望这些信息能够写入芯片和系统的文档中。

    此致、

    Frank