Gpio state during power and reset sequence

Hi
On our Colibri iMX6dl design we see an unexpected behavior of the GPIO status during reset and power cycle.

Our GPIO (labeled SaboLED) rises to 2.5V after switch on the board power 3.3V. The GPIO is pulled to 3.3V with a 100kOhm resistor.
A short peek to 3.3V occurs then the level goes back to 2.5V until the Pin nResetExt (labeled SysReset_n) is de-asserted.
We expect that the GPIO level rise directly to 3.3V and stay there until the u-boot takes over board_init() setup_io_mux_gpio().
What we have to do, to have well defined and reliable startup-behavior for our external circuitry?

Best Regards
Stefan

I’m sorry I uploaded the wrong picture, this is the correct one.

Could you please specify which exactly GPIO you are using as a “SaboLED” ?

We are using the GPIO DISP0_DAT21_GPIO5_IO15, with default ALT5. We have seen this behavior with other GPIOs with default ALT5.

Could you share the schematic of the circuit at the output of this pin? What changes have you done in device tree?

hi @StefanB

The behaviour of GPIO (labeled SaboLED) is normal. As described in the Section 4.3 of the Datasheet, the pins can be in different modes after a reset of the CPU. Most of them have a 100k pull up resistor enabled. So depending on default configuration of Pins and the output circuit, the voltage levels at the startup can be different as expected.

When the bootloader (uboot) takes over, then the GPIOs are in a well defined state.
If you want that the GPIO level rise directly to 3.3V after enabling the 3.3V, then you need an external circuit, which keeps this voltage level to 3.3V till uboot takes over. If you don’t want to switch the led on/off, there is also no need of connecting this LED to a GPIO, connect it directly to 3.3V.

Best regards, Jaski

The Pin is pulled up with 100kOhm. We disconnected all other devices to simplify.
The dts is not relevant for this early time in boot up. The u-boot takes control over the pin at the very end of the show picture (50ms before the end) in board_init() setup_io_mux_gpio().
But our concern is the time when +3.3V comes up until board_init() runs.

Thanks for these Information. Below I already gave the answer to your question.