Hi Markus,

On 22/1/2026 1:00 am, Markus Schneider-Pargmann wrote:
Hi Dinesh,

On Wed Jan 21, 2026 at 5:45 PM CET, Dinesh Maniyam wrote:
[...]
Previously, we were using glue/wrapper driver to support multiple drivers
with same compatibility.

For example:

In this file,
https://source.denx.de/u-boot/u-boot/-/blob/master/drivers/usb/dwc3/dwc3-generic.c

look for|dwc3_glue_bind_common, why not use the similar implementation? |Why 
does/core DM /need to know about USB role selection?

|lists_bind_fdt()| must remain simple and predictable
I can see dwc3 seems to use the parent devicetree node to bind the glue
driver, right?

Upstream am33xx.dtsi does not have a devicetree parent node that we
could bind to. The parent is of type ti,sysc which is not USB specific.
The uboot am33xx.dtsi did have a devicetree parent that was USB specific
and it was used before to bind the USB glue. But with OF_UPSTREAM I
can't use that anymore.

This is why I developed this patch, to be able let bind() return
-ENODEV. lists_bind_fdt() will remain predictable. Most drivers do not
return -ENODEV and will not be influenced by this change.

Best
Markus

I see your point now: with |CONFIG_OF_UPSTREAM|, the Linux |am33xx.dtsi|
no longer provides a USB-specific parent node for the dwc3 glue to bind against,
since the parent is a generic |ti,sysc|.
Given that, relying on the old U-Boot-specific hierarchy is no longer viable, and allowing |bind()| to return |-ENODEV| makes sense to keep the binding behavior predictable.

I also agree with your observation that most drivers do not return |-ENODEV|,
so the impact of this change should remain limited and well-contained.

Happy to understand the intention behind this new approach — thanks for clarifying.

Acked-by: Dinesh Maniyam <[email protected]>



Reply via email to