Verdin i.MX8MP ONOFF

Hi

I have a custom baseboard for the Verdin i.MX8MP and I’m trying to figure out the behaviour of the ONOFF signal.

The docs say that a press of any duration will turn it on, but a (configurable) long press will turn it off. When I press the power button, I find I need a longish (500ms+) to turn it on, but a very short press to turn it off.

Is this expected?
How can I configure the turn off time?

Hi, I’m the Toradex AI Assistant. I’m in early beta, and I would appreciate your feedback.
The Toradex Support team will follow up with you shortly!

Did you like my answer?

:+1: :-1:


Hello,

The behavior you’re observing with the ONOFF signal on your custom baseboard for the Verdin i.MX8MP module is influenced by the module’s power management configuration and the specific implementation on your baseboard. Typically, the ONOFF signal is indeed used to control the power state of the module, with a short press to turn it on and a longer press to initiate a shutdown or turn it off.

The discrepancy in the required press duration for turning the device on and off might be due to how the power management circuitry is implemented on your custom baseboard or the default settings configured in the module’s firmware or software.

To configure the turn-off time, you would typically need to adjust settings within the module’s software, specifically within the U-Boot or Linux kernel configuration, depending on where the power management control is implemented for your application. For the Verdin i.MX8MP, this configuration might involve modifying the behavior of the PMIC (Power Management Integrated Circuit) or adjusting the software debouncing settings related to the ONOFF signal.

  1. U-Boot Configuration: Check if there’s an environment variable or a configuration option in U-Boot that controls the ONOFF signal behavior. You might need to modify the U-Boot source code and recompile it if there’s no readily available configuration option.

  2. Linux Kernel Configuration: Within the Linux kernel, the behavior of the ONOFF signal can be managed by device tree settings or kernel module parameters related to the PMIC or GPIO handling. You would need to locate the relevant device tree file (.dts) for your module and custom baseboard and adjust the settings for the ONOFF signal handling. This might involve configuring the debounce time or specifying the behavior for different press durations.

  3. PMIC Configuration: If the ONOFF signal handling is managed directly by the PMIC, you might need to modify the PMIC settings through I2C commands or through a configuration interface provided by the Linux kernel (e.g., sysfs entries or a specific utility tool). This approach would require consulting the PMIC documentation for the specific registers or settings that control the ONOFF signal behavior.

Please note that making these adjustments requires a good understanding of the module’s hardware and software architecture, as well as the specifics of your custom baseboard design. Care should be taken to ensure that any changes do not affect the stability or functionality of the system.

Best regards,
Toradex AI Assistant

Please, also check if these links can help you solve your problem:

Application Development - .NET Example | Toradex Developer Center.

Yes, if the Verdin i.MX8MP module is in the Off state, pulling the CTRL_PWR_BTN_MICO# line for any duration will immediately turn on the internal module’s power supply. However, this only works if the module already has a stable Vcc voltage provided on the related module’s pins. If your power button is also involved in powering on your custom carrier board’s power supply, it may be the reason for the observed behavior. Please double-check if your custom carrier board power supply is designed according to the recommendations listed in Chapter 3.1, Power Supply Design, of the Verdin Carrier Board Design Guide.

Thanks for this. We have a couple of other issues on the board and are working through those as some are power related.

I’ve just tried a Mallow board and it behaves the same as our board. A very short press of the power button will shut it down, and a longer press is required to wake it up.
Is that expected?

Hi

Are you able to confirm what I see on the Mallow board?
We have fixed our power issues, so I’m keen to get this one figured out before our release.
Our board is based on the Mallow design, so the main VCC supply is always on.

I have 2 issues:

  1. Power off. Is there some software in the BSP handing an interrupt from the button that is calling powerdown? If so, can we disable it?
  2. Power on again. The docs all say any length of press will re-start the board, but that is not what we see on our board or Mallow.

OR, is there a better way to wake the board up from an external source?

Thanks
Martin

Hi @msmith

Could you please clarify which document states that the power button (CTRL_PWR_BTN_MICO#) “will restart the board with any length of press”? Perhaps you are confusing it with CTRL_RESET_MICO#? According to the Verdin Family Specification

" The CTRL_PWR_BTN_MICO# allows implementing a power button behavior like the ones used on regular personal computers and smartphones. Short pressing the power button is powering up the system from the “Module OFF” state or wakes the system from the sleep state. If the module is running, short pressing the power button generates a software interrupt. Depending on the operating system settings, this starts a software shut down or opens a menu that lets the customer decide what to do. Pressing the power button longer than 5 seconds shuts down the system immediately (without software interaction).

The CTRL_PWR_BTN_MICO# signal on the Verdin i.MX8MP module is directly connected to the i.MX8MP SOC ball G22 (OnOff). If the system is running, pressing this button generates an interrupt that initiates a shutdown. In sleep mode, it can act as a wake-up source.
To disable wake-up or shut down you can modify a Device Tree node snvs_pwrkey.

In systems using systemd, the behavior of the KEY_POWER event can be configured in the /etc/systemd/logind.conf file. Here are some key configurations:

HandlePowerKey: This setting defines what action to take when the power key is pressed. Possible values include poweroff, reboot, halt, ignore, etc.

The module can be woken up by an RTC event, a wake capable on-module peripherals, the
CTRL_PWR_BTN_MICO# (power button), the CTRL_WAKE1_MICO#, or a wake-enabled GPIO

Hi Alex

That is helpful.
None of the docs (i.MX8MP RM, Verdin i.MX8 docs or general Verdin design docs) mention a minimum time for powering on.
I’m going to adjust my pulse to be long enough to work, and configure the interrupt as suggested so it doesn’t power off if it gets hit again.

Thanks
Martin