
On 12/2/24 4:16 PM, Patrice CHOTARD wrote:
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@amd.com Reviewed-by: Marek Vasut marex@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@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.
Sigh ... thanks for testing.
Clearly this property is only needed for some devices, likely a boolean flag should be added to driver data to indicate a device requires this property ?
Please remind me if there is no fix by rc4 and I'll revert the series so it is not broken in 2025.01. Thank you!