Dhalia-Verdin IMX8MP Bootup pin state fluctuation

Hi Team,

I am using Dhalia-Verdin IMX8MP combination.When i poweron the board, some of the GPIO pins are going high for 3 to 4 seconds until the console appears on the LCD(Uboot loads the build) and then the GPIO state comes back to the original status of Low.

For example, Pin11 of secondary header in Dhalia (GPIO 80) is connected to the Audio in our system.As the pins are pulled high during powerup, audio starts beeping for 3 to 4 seconds and stops.I wanted to get rid of this state and it should always start from Low. Will i have to do some board configurations or the build configurations?

Thanks in advance

Regards
Vijay Richard

Hi @VijayRichard,

It is not clear which exactly pin you are referring to. As per schematics below, is it pin 11 on X19, QSPI_1_CS2#?

Best regards,
Andrejs Cainikovs.

Yes this is on the secondary header pin

Problem origin

This particular pin you are referring to (among others) is reset to its default state after reset as GPIO with internal pull-up enabled. Which means it will be driven high until you reconfigure or otherwise use it.

Solution

Drive this and any other required pins low via gpio-hog from U-Boot device tree, so that it would stay low until Linux reconfigures it.

Any particular command/steps to drive the pin low via gpio-hog from U-Boot device tree?

Hi @VijayRichard,

Sorry for the delay. You can find more information about gpio-hog inside uBoot GPIO documentation: gpio.txt « gpio « device-tree-bindings « doc - u-boot-toradex.git - U-Boot bootloader for Apalis and Colibri modules

To customize your device tree, please follow this guide: Build U-Boot and Linux Kernel from Source Code | Toradex Developer Center

The device tree for the Verdin iMX8M Plus is inside ./arch/arm/dts/imx8mp-verdin.dts, after you clone the uboot repo.

Feel free to ask any questions about this customization.

Best regards,
Hiago.