Annoying 10ms startup pulse on Pin25 GPIO6.19

Hi all,

On my imx7d emmc I am using pin25 (MX7D_PAD_SAI2_TX_SYNC__GPIO6_IO19) to control something external. This pin also has UART CTS functionality.

What I have noticed is that at some point during boot I have a high pulse of around 10ms during booting.

The pin is configured in my device tree like this :

MX7D_PAD_SAI2_TX_SYNC__GPIO6_IO19       0 /* SODIMM 25  SWRST*/

I have noticed that in a u-boot file for this pin is mentioned in some kind of UART setup:

static iomux_v3_cfg_t const uart1_pads[] = {
	MX7D_PAD_UART1_RX_DATA__UART1_DTE_TX | MUX_PAD_CTRL(UART_PAD_CTRL),
	MX7D_PAD_UART1_TX_DATA__UART1_DTE_RX | MUX_PAD_CTRL(UART_PAD_CTRL),
	MX7D_PAD_SAI2_TX_BCLK__UART1_DTE_CTS | MUX_PAD_CTRL(UART_PAD_CTRL),
	MX7D_PAD_SAI2_TX_SYNC__UART1_DTE_RTS | MUX_PAD_CTRL(UART_PAD_CTRL),
};

Would this explain why I see the pin going high during boot?
How could I stop this happening?

Could you please specify Linux BSP version you are using?

Colibri modules modules feature full features UART_A used for debug messages and as a serial console for U-Boot and Linux. Pin 25 is used for a CTS signal.

You an either choose another pin for your purpose or disable flow control at U_Boot (by modifying
its source code and recompiling ) and at Linux device tree. Please check chapter 5.10 UART
of Colibri iMX7 datasheet for more details.

Thanks. I have already redefined the pins for uart a and I have removed rts and cts. Looks like I still need to do the uboot changes. Could you describe those please?

Bsp is 2.8 I think

Removal of MX7D_PAD_SAI2_TX_BCLK__UART1_DTE_CTS | MUX_PAD_CTRL(UART_PAD_CTRL) from uart1_pads[] should solve this issue.

If not please try to set bits UCR2_CTSC and UCR2_CTS of UCR2 control register to 1 - https://gitlab.int.toradex.com/rd/linux-bsp/u-boot-toradex/-/blob/2016.11-toradex/drivers/serial/serial_mxc.c#L195