[PATCH v14 5/5] usb: onboard-hub: Bail out if peer hub is already probed
Patrice CHOTARD
patrice.chotard at foss.st.com
Mon Dec 2 16:16:16 CET 2024
On 11/25/24 05:12, Venkatesh Yadav Abbarapu wrote:
> The .bind function is implemented to bind the correct
> "half" of the hub that the driver wants to bind,
> and returning -ENODEV for the other "half".
>
> Signed-off-by: Venkatesh Yadav Abbarapu <venkatesh.abbarapu at amd.com>
> Reviewed-by: Marek Vasut <marex at denx.de>
> ---
> common/usb_onboard_hub.c | 21 +++++++++++++++++++++
> 1 file changed, 21 insertions(+)
>
> diff --git a/common/usb_onboard_hub.c b/common/usb_onboard_hub.c
> index bf71266272..6f28036e09 100644
> --- a/common/usb_onboard_hub.c
> +++ b/common/usb_onboard_hub.c
> @@ -176,6 +176,26 @@ err:
> return ret;
> }
>
> +static int usb_onboard_hub_bind(struct udevice *dev)
> +{
> + struct ofnode_phandle_args phandle;
> + const void *fdt = gd->fdt_blob;
> + int ret, off;
> +
> + ret = dev_read_phandle_with_args(dev, "peer-hub", NULL, 0, 0, &phandle);
> + if (ret) {
> + dev_err(dev, "peer-hub not specified\n");
> + return ret;
> + }
> +
> + off = ofnode_to_offset(phandle.node);
> + ret = fdt_node_check_compatible(fdt, off, "usb424,5744");
> + if (!ret)
> + return 0;
> +
> + return -ENODEV;
> +}
> +
> static int usb_onboard_hub_remove(struct udevice *dev)
> {
> struct onboard_hub *hub = dev_get_priv(dev);
> @@ -218,6 +238,7 @@ static const struct udevice_id usb_onboard_hub_ids[] = {
> U_BOOT_DRIVER(usb_onboard_hub) = {
> .name = "usb_onboard_hub",
> .id = UCLASS_USB_HUB,
> + .bind = usb_onboard_hub_bind,
> .probe = usb_onboard_hub_probe,
> .remove = usb_onboard_hub_remove,
> .of_match = usb_onboard_hub_ids,
Hi All
This patch has been merged in v2025.01-rc3 (sha1 57e30b09fcfc88da72c310f979b35ed99a9b277c)
and it avoids the STM32MP157c-DK2 board to boot:
U-Boot 2025.01-rc3 (Dec 02 2024 - 16:10:28 +0100)
CPU: STM32MP157CAC Rev.B
Model: STMicroelectronics STM32MP157C-DK2 Discovery Board
Board: stm32mp1 in trusted mode (st,stm32mp157c-dk2)
Board: MB1272 Var2.0 Rev.C-01
DRAM: 512 MiB
usb_onboard_hub hub at 1: peer-hub not specified
initcall failed at call c0123da5 (err=-2: No such file or directory)
### ERROR ### Please RESET the board ###
This boards embeds a "usb424,2514" hub, regarding the Documentation/devicetree/bindings/usb/microchip,usb2514.yaml,
this kind of hub doesn't need the "peer-hub" property.
Patrice
More information about the U-Boot
mailing list