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]>