Hi all,
I’ve been trying to read deeply in documentation of the Verdin AM62, both datasheet and design reference manual, but I’m not able to find the exact minimum short press time for the detection of the interrupt on the pin CTRL_PWR_BTN_MICO (SODIMM_248).
Also, in the kernel device tree, the pin is not defined, so I really can’t understand where is defined this minimum standard time. I see some other pin like wakeup is instead defined and the parameter debounce-interval is used, so I expected to be able to do it also for this pin.
I have this problem because on my board, I have a device that generates a 50ms signal that seems not seen at all from the AM62, while if I test on the development board that keeps the signal low after press, it works fine.
I admit I’m pretty new to this environment and device so, sorry in advance if question is redundant, I hope someone can help.
Hi, I’m the Toradex AI Assistant.
I might make mistakes. Our support team will step in if needed. If I answered your question, please tick the “Solution” checkbox. For follow-up questions to me, please use @ToradexAI in your post.
Did you like my answer?

Hello and thank you for your question!
You’ve made some excellent observations regarding the CTRL_PWR_BTN_MICO# (SODIMM 248) pin on the Verdin AM62. You are correct—there is no explicit documentation in the Verdin AM62 datasheet about the minimum short press time required for proper detection of this pin. The datasheet only notes the pin function and that a short pull-down turns on the module, while a long pull-down shuts it down (Verdin AM62 datasheet). Unfortunately, the timing values (such as a minimum pulse width or a configurable debounce) are not described.
Key points about your situation:
-
Device Tree: The kernel device tree does not list this pin for debounce configuration. Unlike standard wakeup GPIOs, most power button signals like CTRL_PWR_BTN_MICO# are managed outside the kernel, at the power management or hardware abstraction level. This is why you don’t see device tree entries or debounce options for it.
-
Pulse Duration: The fact that a 50ms pulse is not detected, but holding the signal low works, suggests that the hardware requires a longer minimum pulse width for the event to be reliably registered. On other modules, such as the Verdin iMX8M Plus, a “short” press is <5 seconds, but this does not guarantee compatibility with the AM62.
-
Workaround: Since the AM62 does not allow software debounce adjustment for CTRL_PWR_BTN_MICO#, the practical solution is to increase your signal duration above 50ms. The actual required time might depend on the underlying TI AM62x SoC’s power management implementation, but starting with 100–200ms is a common safe minimum for pushbutton wake signals.
-
Direct Control: The CTRL_PWR_BTN_MICO# is handled by the PMIC/SoC and is not a typical GPIO accessible via Linux configuration, hence there is no device tree node or software debounce parameter.
Recommendations:
- Extend your pulse to 100ms or more, testing to find the minimum reliable detection time.
- If further precision is needed, you may need to review TI AM62x SoC’s technical reference manual for any documented minimum pulse widths for the power button functionality.
For reference, you may review the Verdin AM62 datasheet and Verdin iMX8M Plus datasheet for family similarities.
If you have further questions about embedded Linux, device tree configuration, or other Toradex/Torizon-related issues, feel free to ask!
Best regards,
Toradex AI Assistant.
According to the Verdin Family Specification, “Long pulling down (>5s) is shutting down the module. Short pulling downis turning on module from off-state. the actual minimum duration depends on the Verdin module.” On the Verdin AM62 module, the CTRL_PWR_BTN_MICO# signal is connected to the TPS65219 PMIC’s EN/PB/VSENSE input. The PMIC datasheet specifies "Push-button monitor input. 600ms low-level is an ON-request. The primary purpose of the CTRL_PWR_BTN_MICO# signal is to interface with a physical button. If you want to initiate a graceful shutdown, you can use any available GPIO pin instead.
1 Like
Thanks a lot for your answer, unfortunately I cannot change the pin assignment, so I’ll have to deal with it, we will just select a device that will give >= 100ms pulse to stay safe, since seems there is no way to access to this pin settings through device tree.