Re: [PATCH 1/9] dt-bindings: soc: qcom: eud: Restructure to model multi-path hardware
From: Bjorn Andersson <andersson@kernel.org>
Date: 2026-01-21 02:21:34
Also in:
linux-arm-msm, linux-usb, lkml
On Tue, Jan 20, 2026 at 02:16:17PM -0800, Elson Serrao wrote:
On 1/19/2026 11:20 PM, Krzysztof Kozlowski wrote:quoted
On 19/01/2026 20:58, Bjorn Andersson wrote:quoted
On Sat, Jan 17, 2026 at 12:57:58PM +0100, Krzysztof Kozlowski wrote:quoted
On Fri, Jan 16, 2026 at 03:20:58PM -0800, Elson Serrao wrote:quoted
The Qualcomm Embedded USB Debugger (EUD) hardware can intercept up to two independent High-Speed UTMI data paths, depending on the SoC configuration. Each path operates independently with: - Dedicated PHY interface - Distinct USB connector and controller associations - Role dependent routing Model these hardware paths as separate eud-path nodes to accurately represent the physical topology and add below per-path properties: phys: EUD exposes a High-Speed debug hub that relies on HS-PHY for its operation. This property references the HS-PHY associated with the UTMI path. usb-role-switch: Indicates that the USB port on this UTMI path supports role switching. In device role, debug mode inserts the EUD hub into the UTMI path. In host role, the EUD hub is bypassed and UTMI traffic flows directly between the PHY and the USB controller. This change breaks backwards compatibility, but the previous binding omitted critical resources like PHY and did not describe per-path topology. Without these modifications EUD cannot be guaranteed to function.It was working for 3 years, so your guarantees are just imprecise. FUD is not an argument. Qualcomm task at 2022 was to post complete bindings. These were posted and accepted. Three years later you say that previous posting was bollocks and this cannot even work?That is correct. The description of the hardware that was provided when this was upstreamed and the binding that was accepted based on this description is wrong. There's absolutely a value in maintainting backwards compatibility in general, but is this one of those cases?quoted
Nah, take responsibility of what you did in the past.In my view the responsible thing is to accept that we got it wrong and make sure EUD is enabled end-to-end so people can actually use it.I would expect to see what is not working. This is in mainline for three years, so the assumption is that it was working for these three years. If it wasn't, this should be described and "cannot be guaranteed to function" is just imprecise.
I see, that I agree with.
Thanks, Bjorn and Krzysztof, for the feedback. Let me clarify what I meant by “cannot be guaranteed to work”, as I agree the phrasing can be improved to more precisely convey the intent. The concern is not that EUD did not or could not work historically. Rather, the issue is that the hardware description provided by the binding does not explicitly describe ownership and control of hardware resources that EUD depends on. As a result, correctness of EUD operation relies on behavior outside of what is expressed in the description. Concretely, the binding does not reference the HS-PHY. In practice, EUD may function because the USB controller (e.g. DWC3) keeps the PHY powered and configured. However, this relationship is not described as a contract in the binding. The USB controller may legitimately relinquish PHY control as part of its own power-management or low-power transitions. The EUD hardware is capable of operating independently, but doing so requires EUD to have explicit control of the PHY. The hardware specification lists the PHY as a required resource of the EUD debug hub. Not modeling it in the binding therefore leaves the description incomplete, because EUD resource requirements are being met implicitly through another hardware block (USB controller) rather than being described directly. In addition, the hardware can expose multiple UTMI paths (dual-port EUD), which the current binding cannot represent. The intent of this patch is therefore to correct and tighten the binding so that the hardware resources and topology EUD depends on are explicitly modeled, rather than relying on side effects of USB controller. I will update the backwards compatibility justification accordingly.
Please try to consolidate this whole explanation a bit and include it in the commit message. Regards, Bjorn
Thanks Elson