Verdin iMX8MP - GPIO Power-Off

Hello!

We are using the Verdin iMX8MP SoM with a custom carrier board, which is largely based upon the Dahlia board. We are running a custom Yocto build with Boot 2 Qt.

We are attempting to use a GPIO to power down the system at shutdown. I stumbled upon the GPIO Power-Off tutorial located here: GPIO (Linux) | Toradex Developer Center

However, looking at the devices trees located within arch/arm64/boot/dts/freescale/, I’m unable to locate any that reference a “gpio-poweroff” node.

I was also attempting to see how it was done with CTRL_PWR_EN_MOCI (SODIMM 254), but I don’t see any references to that pin either within the device trees.

For what it’s worth, we are attempting to use pin MX8MP_IOMUXC_SAI2_TXD0__GPIO4_IO26. Could you help me understand what I’m missing? Is it possible to address this with a device tree overlay?

Thanks for your help!

Hi @Kyle.W,

In order to use this feature, it is necessary to enable kernel support for GPIO power off.

It is not enabled by default in our kernel. We use an IC controller for that. From the Dahlia datasheet 2.2.4
Power Control:

The circuit responsible for powering on and off the Dahlia Carrier Board is implemented using the
Linear LTC2954 Push-button ON/OFF controller. The signal CTRL_PWR_EN_MOCI is used to
enable the peripheral power supplies or power switches.

So in order to use it, you will need to compile a new kernel (using Yocto or manually) with this support enabled. The kernel config that needs to be enabled is

CONFIG_POWER_RESET_GPIO=y

Or you can search in the menu configuration:

After recompiling the kernel with that option enabled, you can enable this feature in your device tree as the article mentioned.

Check these guides about Yocto, custom layers, and kernel build:

After the configuration is enabled and the kernel has been recompiled, it is possible to do this using an overlay. Once you got the configuration enabled, I can help you with the overlay.

Let me know if you have any questions about it or if you need help compiling a new kernel.

Best Regards,
Hiago.