Questions About CTRL_PWR_BTN_MICO (#248) Behavior on Verdin AM62 Solo

Hello,

I have a couple of questions regarding the behavior of the CTRL_PWR_BTN_MICO (#248) pin.

According to the Verdin Family Specification, the pin is described as follows:

Long pulling down (>5s*) is shutting down the module. Short pulling
down is turning on module from off-state. A more detailed function
description can be found in section 5.3 Opendrain input with 100k
pull-up resistor to the 1.8V RTC rail is on the module. This signal can
be left floating on carrier boards. (* the actual minimum duration
depends on the Verdin module)

Based on this, I would like to clarify the following:

Question 1:
What is the required button press duration to properly trigger a shutdown on the Verdin AM62 Solo?

Question 2:
The documentation mentions that a short press wakes the device. How does the SoM behave when a short press occurs while the system is already running?

Question 3:
Is it possible to configure or customize the duration required for a long press to initiate a shutdown?

Question 4:
Can short button press (pulse) events on this pin be detected and handled within Linux?

Thank you.

Hi, I’m the Toradex AI Assistant.

I might make mistakes or occasionally get you wrong. Our support team will step in if needed.


I’d be happy to help with your questions about the CTRL_PWR_BTN_MICO# pin behavior! To provide you with the most accurate information for the Verdin AM62 Solo, could you let me know which OS and version you are running on your device?

For reference, you can use the tdx-info command to get detailed information about your system configuration. You can find more details about this tool at this link.

Common platforms include:

  • Hardware: Verdin AM62, Verdin i.MX8M Plus, Aquila AM69, Apalis i.MX8QP, Colibri i.MX8X
  • Operating System: Yocto 7.2.0, Torizon 6.8.2, Torizon OS 6, BSP 7, BSP 6, Torizon OS 7.2.0-build.13

While I have information about CTRL_PWR_BTN_MICO# behavior from the Verdin iMX8M Plus documentation that shows a long press (>5s) initiates power-down sequence independent of the operating system (force off) (1), and that short press (<5s) creates an interrupt when the module is running (1), the specific timing and behavior can vary between different Verdin modules.

Once you provide your specific OS and version details, I can give you precise answers tailored to your Verdin AM62 Solo configuration.

Best regards, Toradex AI Assistant.


Did you like my answer? :+1: :-1:

If I answered your question, please tick the “Solution” checkbox.

For follow-up questions to me, please use @ToradexAI in your post.

Hello @Fide,

In the Verdin AM62, the CTRL_PWR_BTN_MICO (SODIMM_248) pin is connected directly to the TPS65219 PMIC.
This means that:

  • A short press needs to last at least 600 ms
  • A long press needs to last at least 8 seconds

The above is not configurable.

When a system is already running, a short press will trigger a software shutdown.

As this pin is connected to the PMIC, the configurability of its behavior is somewhat limited and dependant on the PMIC driver.
You can have a look here:

What behavior would you like this button to have?

Best Regards,
Bruno

Hi Bruno,

Thank you very much for your detailed explanation — it is a very helpful starting point for understanding the behavior.

Based on the device tree you shared, specifically the following:

/* PMIC_EXTINT# */
pinctrl_pmic_extint: main-system-extint-default-pins {
    pinctrl-single,pins = <
        AM62X_IOPAD(0x01f4, PIN_INPUT, 0) /* (D16) EXTINTn */
    >;
};

I understand that this signal is physically connected to the processor pin D16 (GPIO1_31), and it appears to be a standard input. (Probably shared between the PMIC and the AM62 at the same time) Does this mean it could also be used as a regular GPIO input, or am I misunderstanding something?

Our intended behavior is as follows:

  • When the device is in the power-off state, pressing the button should power the device on.

  • When the system is running, a long press (~8 seconds) triggering a hard shutdown is also acceptable.

However, what we would like to achieve during the power-on state is:

  • a short press detected by our user-space application (written in C on Linux), so that it can trigger a custom action,

  • a double-click detected as a separate event,

  • and a press of around 3 seconds triggering a software/graceful shutdown.

Regarding the 600 ms short-press threshold you mentioned:

Is this filtering implemented in hardware (for example by a capacitor on the PCB), or is it handled internally by the PMIC? I could not find any related timing parameter in the TPS65219 driver.

Also, one more question:
If I remove the following connection from the pmic@30 node in the device tree:

pinctrl-0 = <&pinctrl_pmic_extint>;

and then bind this pin to a standard GPIO driver instead, would that cause any issue? Or is this pin functionally dedicated to the PMIC path and therefore not safe to repurpose in that way?

Do you think the behavior we want is achievable with this pin, or would you recommend using a separate GPIO for this functionality? Please also note that, in our product we don’t need sleep or wakeup functionality. For us, the power is either on or off.

Best regards,

Fide.

Hello @Fide,

This pin is the interrupt output from the PMIC.
It gets triggered when the PMIC needs to notify the system of something, including in the event of a power button.
This pin is not connected to SODIMM_248.

I would also not recommend removing this pinctrl from the PMIC node, as the power button is just one of the IRQs handled by the PMIC driver: Making sure you're not a bot!


This is defined by the PMIC itself.
Checking on this, it can actually be configured for 200ms.
From table 7-41 of the TPS65219 datasheet:

However, it seems the driver does not implement support to configure this.


I think a hardware solution would be more adequate here.
Using both a GPIO and this signal with some logic in between may be needed to implement this exact behavior.
The main difficult scenarios are being able to maintain the behavior of the hard shutdown and powering on from a power off state.
However, there may be a creative hardware solution to achieve this.

Best Regards,
Bruno

Hi Bruno,

I think I’m starting to see the full picture now.

Based on the image below, can you confirm whether SODIMM_248 corresponds to the PMIC.EN/PB/VSENSE pin, and whether the D16 pin input on the AM62 is connected to the PMIC’s nINT output?

In your previous message, you mentioned:

When a system is already running, a short press will trigger a software shutdown.

We would like to disable this behavior. Specifically, when the system is powered off, a short press should still turn it on—that’s fine. However, when the system is already running, a short press should not trigger a shutdown.

Since this is a software-initiated shutdown, I assume it might be handled by the TPS65216 driver. Would it be possible to disable this functionality?

Thank you.

Hello @Fide,

Yes, that is how these signals are wired in the SoM.


You could try to remove the ti,power-button; property from the pmic node.
The behavior it would have without this property is unclear to me, but would be worth testing.

Further customization could be attempted at a PMIC driver level as well, but this would generally not be recommended.

Best Regards,
Bruno

Hi Bruno, thank you for your help, now all clear for me.

1 Like