mirror of
https://github.com/AsahiLinux/u-boot
synced 2024-11-10 15:14:43 +00:00
ARM: stm32: Fix SoM and board coding strap GPIO handling on DHSOM
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@denx.de> Cc: Patrice Chotard <patrice.chotard@foss.st.com> Cc: Patrick Delaunay <patrick.delaunay@foss.st.com> Reviewed-by: Patrice Chotard <patrice.chotard@foss.st.com> Reviewed-by: Patrick Delaunay <patrick.delaunay@foss.st.com>
This commit is contained in:
parent
5e3e882cf2
commit
525dd34535
1 changed files with 10 additions and 4 deletions
|
@ -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);
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue