[PATCH] ARM: stm32: Fix SoM and board coding strap GPIO handling on DHSOM

Patrice CHOTARD patrice.chotard at foss.st.com
Mon Nov 15 09:14:58 CET 2021


Hi Marek

On 11/13/21 3:26 AM, Marek Vasut wrote:
> The variables retaining the strap values have to be initialized, always,
> make it so. Moreover, free the requested GPIO list at the end to avoid
> wasting memory.
> 
> Signed-off-by: Marek Vasut <marex at denx.de>
> Cc: Patrice Chotard <patrice.chotard at foss.st.com>
> Cc: Patrick Delaunay <patrick.delaunay at foss.st.com>
> ---
>  board/dhelectronics/dh_stm32mp1/board.c | 14 ++++++++++----
>  1 file changed, 10 insertions(+), 4 deletions(-)
> 
> diff --git a/board/dhelectronics/dh_stm32mp1/board.c b/board/dhelectronics/dh_stm32mp1/board.c
> index a8402e24572..f44afb01e27 100644
> --- a/board/dhelectronics/dh_stm32mp1/board.c
> +++ b/board/dhelectronics/dh_stm32mp1/board.c
> @@ -212,34 +212,40 @@ static void board_get_coding_straps(void)
>  	ofnode node;
>  	int i, ret;
>  
> +	brdcode = 0;
> +	ddr3code = 0;
> +	somcode = 0;
> +
>  	node = ofnode_path("/config");
>  	if (!ofnode_valid(node)) {
>  		printf("%s: no /config node?\n", __func__);
>  		return;
>  	}
>  
> -	brdcode = 0;
> -	ddr3code = 0;
> -	somcode = 0;
> -
>  	ret = gpio_request_list_by_name_nodev(node, "dh,som-coding-gpios",
>  					      gpio, ARRAY_SIZE(gpio),
>  					      GPIOD_IS_IN);
>  	for (i = 0; i < ret; i++)
>  		somcode |= !!dm_gpio_get_value(&(gpio[i])) << i;
>  
> +	gpio_free_list_nodev(gpio, ret);
> +
>  	ret = gpio_request_list_by_name_nodev(node, "dh,ddr3-coding-gpios",
>  					      gpio, ARRAY_SIZE(gpio),
>  					      GPIOD_IS_IN);
>  	for (i = 0; i < ret; i++)
>  		ddr3code |= !!dm_gpio_get_value(&(gpio[i])) << i;
>  
> +	gpio_free_list_nodev(gpio, ret);
> +
>  	ret = gpio_request_list_by_name_nodev(node, "dh,board-coding-gpios",
>  					      gpio, ARRAY_SIZE(gpio),
>  					      GPIOD_IS_IN);
>  	for (i = 0; i < ret; i++)
>  		brdcode |= !!dm_gpio_get_value(&(gpio[i])) << i;
>  
> +	gpio_free_list_nodev(gpio, ret);
> +
>  	printf("Code:  SoM:rev=%d,ddr3=%d Board:rev=%d\n",
>  		somcode, ddr3code, brdcode);
>  }
> 
Reviewed-by: Patrice Chotard <patrice.chotard at foss.st.com>
Thanks
Patrice


More information about the U-Boot mailing list