From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mx0b-0031df01.pphosted.com (mx0b-0031df01.pphosted.com [205.220.180.131]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 634BE313E31 for ; Tue, 11 Aug 2026 21:36:16 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=205.220.180.131 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1786484177; cv=none; b=dM11+BW/YmpFETHQugVQrLoSR4YZoZkAFdGrWyJzravQRIQxT2ruMh7DpOcY5AY/ufROfz1aU2qd1J+AFlA7JVqn1yezMZr+JvZzAljuEZkMelP5ecedK9NMFDoEKa9xPD1y8YO+nsQITrEg7JzBoTyvqgmUbICSNKXdwr4a+3o= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1786484177; c=relaxed/simple; bh=vMN9xFS7+UE4CpC8JHmwvxMa/ZHXGxw+m0BPvf48J2E=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=hXvPDs/BtYtRbphhILoLGaczNWT9qUbsmF5TBNhz9RRt5d6nFyq/XhcYrBNsUPWBtAtrPpDtYkrUTsJy2z7U503D8hKUxrOs+16yrVFa0DXfIdChWuw0O9ZCa0kGHA5bqQ3GdxMlwH7mdOxfD5DFO8Tpf4Ytx8NAKC8GI8rgdeE= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oss.qualcomm.com; spf=pass smtp.mailfrom=oss.qualcomm.com; dkim=pass (2048-bit key) header.d=qualcomm.com header.i=@qualcomm.com header.b=FEKvAmTo; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=EBh0TxS2; arc=none smtp.client-ip=205.220.180.131 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oss.qualcomm.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=oss.qualcomm.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=qualcomm.com header.i=@qualcomm.com header.b="FEKvAmTo"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="EBh0TxS2" Received: from pps.filterd (m0279870.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 67BLQRAI1835903 for ; Tue, 11 Aug 2026 21:36:15 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:date:from:in-reply-to:message-id :mime-version:references:subject:to; s=qcppdkim1; bh=Y6Vl3S9Ln2Q ++E5qKFv7377jV7NXuG93z+ypJQ+LQuw=; b=FEKvAmTobjJytMmB9Le3k1W4Elq mYQ60EH8zAZ2jda057ej2RJlmJUo1xpeBIfcqb7sg9AdBjb/u+JG/xgTwLG6vchu V7sM73cb3NpdQPdZCaGZsMMCwt68EzL9X/0w6PwT5fwJzwN4GRGl7UMzaAhaDQgl HHaC5WLuzuB6d6uhu29k06K7lsMNyqmliAnJWBZL/0qU8QUBS6l05glBr9qc+87Q tFU+BHpNaRWmoHWMOcCJUOxXlyPLG81s4/OIO5+Rla2j2vrQpaeH12y0WNHPbW0I N99bMInffo2ffSpL5wX3OfczJWgLe9MK7ag2GI298+QQS6bPLuvOcmQBwIA== Received: from mail-pl1-f198.google.com (mail-pl1-f198.google.com [209.85.214.198]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4g01nc2rmt-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Tue, 11 Aug 2026 21:36:14 +0000 (GMT) Received: by mail-pl1-f198.google.com with SMTP id d9443c01a7336-2cfca8558d2so4623075ad.2 for ; Tue, 11 Aug 2026 14:36:14 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1786484174; x=1787088974; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to:content-type; bh=Y6Vl3S9Ln2Q++E5qKFv7377jV7NXuG93z+ypJQ+LQuw=; b=EBh0TxS2Sx/akIIs9KeydtbJV8zhkFN7cuH68grGkGSW1hrg7UK0jcIZ4LWdcK4HpN tzyr8aVUSi0l3ywO7nNIIe2KRZVDB4y0Xw6W/pXg2b/oHsc95ShBPPDSjO0f87DIx2YI 2cdvVIx2zhKmHleMErNfjPvsp0mcg8zYJNcDO0awdywAr6MI2rTZxRzuvDcEEMTNe0uU sh1zG0O/1qMqKan0VdN6LYykZPFIIq5KJNbV8zYorW1r6NIuhc4TJl4irKGJNUgO+G2R K8U7sLeR22gUxjru9n8piXgiwGAv9dxQ5GqA7MF8nkklRVe/9LMogslMv3cVJYqktueF 3TPQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1786484174; x=1787088974; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to:content-type; bh=Y6Vl3S9Ln2Q++E5qKFv7377jV7NXuG93z+ypJQ+LQuw=; b=mvW9Mq3xnl5c+IKXhbtgbeVCGxPsu5OQn2Pz/9ivN+LqGMlzS6kKhNbG1D+P8RGvfs WQX3jfR5mk7F+023Alddk2YExpVaPSacR2Ic5/f3/S+hOqmJ861igTbmDmy7yyamr7/6 hJkcK1nZbRWs3WIUaSLbgfu3LXY5BMDlvckOejD3Kn7PI2EhQvK/7SynIJ21TiBRRNJ0 rA9lBD/hE32hWSaZ8bDg6ZGKegnKXA7rgPURiPeWcqK14R2c1dfhfVVjzCd1SYA+Aw21 PUcF2nDfIo/tDTxuv6NUcPMETgkDRIjL8CKGBLNzIy4mfLOZ+6Fv3WNFBzVvL7s5chjE xMYw== X-Forwarded-Encrypted: i=1; AHgh+RqwLYqwE+ZIh6JMSCLc7+7ifNQgSX9h1wrR4pXaDaKJzO1hHm2rb06MBmR3Gv7HgnPMd24cdIdtN+4IJt0=@vger.kernel.org X-Gm-Message-State: AOJu0Yxo3uDnyKCdbGioEreOAAbOymK9XP1PH4qusqHDlw24tgGcdqbJ VlRiSQg8KWaNi1kdo9cIsuI3XKkcQadZbi+VzoYOY/sX7EtCMnojmYY/FI38k62V9VZ1SEFeP74 lglylj2x5Fpk5+EIyUQK4g2wHOavFxgi+T6SOV8Uxtl6BD8SOHjYczdkdccNwJAO+lI2JVkG2Zu M= X-Gm-Gg: AR+sD12fucnhE8xDJVRGy72Dyvaz4FEjPIFomtcIQ64JeYdZBA/FrmLTugKCf4mQOCW DDaYjbn44T0H82N72GCdG34zBFSuySRXIRXu+wHS8oBy9VAjIn+OnHq0hW3kHi2pLDem+Fpt95b DkKxrar1i1avNpB13MUu90V+EYvjCyg3yF2IMln+iLCmijQ6ULNworRkywteWaF98wtZ6p970Sh BXyBB7lZ0f2DnjR/aOdc+1xaBZFkqP+9WH+3RtTClnmfiL8JhF792/RciZGbaO4XcqU+4OKqVm7 EO4fWzYhs8uGzTr+9DkqdF4jE5dcd8LM1tcEPQ1Wqa9mjaLflb1oahFlPOcqPEYifCsz4LuFnqr 6bz1ZB6Jrt0cFsHcOUH0uCiokvTQrrs3HcK+2QbgP5+NRV+bHH64ZDQ== X-Received: by 2002:a05:6a21:6014:b0:3c3:8d4c:6679 with SMTP id adf61e73a8af0-3cc2baf91c1mr9221715637.20.1786484173493; Tue, 11 Aug 2026 14:36:13 -0700 (PDT) X-Received: by 2002:a05:6a21:6014:b0:3c3:8d4c:6679 with SMTP id adf61e73a8af0-3cc2baf91c1mr9221656637.20.1786484172935; Tue, 11 Aug 2026 14:36:12 -0700 (PDT) Received: from hu-eserrao-lv.qualcomm.com (Global_NAT1.qualcomm.com. [129.46.96.20]) by smtp.gmail.com with ESMTPSA id 5a478bee46e88-31cf3c08163sm2713563eec.7.2026.08.11.14.36.12 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 11 Aug 2026 14:36:12 -0700 (PDT) From: Elson Serrao To: Bjorn Andersson , Dmitry Baryshkov , Greg Kroah-Hartman , Konrad Dybcio , Krzysztof Kozlowski , Peter Chen , Rob Herring , Conor Dooley Cc: linux-arm-msm@vger.kernel.org, devicetree@vger.kernel.org, linux-usb@vger.kernel.org, linux-kernel@vger.kernel.org, Krzysztof Kozlowski Subject: [PATCH v6 1/9] dt-bindings: soc: qcom: eud: Add per-path child nodes for UTMI routing Date: Tue, 11 Aug 2026 14:36:02 -0700 Message-Id: <20260811213610.2956147-2-elson.serrao@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260811213610.2956147-1-elson.serrao@oss.qualcomm.com> References: <20260811213610.2956147-1-elson.serrao@oss.qualcomm.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Proofpoint-Spam-Info: AW1haW4tMjYwODExMDE4MiBTYWx0ZWRfX5V2QOenJK5DI lnWTEpBS5N4Z60IG/gRAnnZ96ZUhYtflwqQP9iRJ21+e4or1cswZ0dub+bEvnB7TWd8jSX+5/t4 7Zf3rH5ZDsuWs1AV0iQ9jHS68kANgOc= X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwODExMDE4MiBTYWx0ZWRfX9KFRWqNgNqSk 477HOs/pqHCT8qZSlsDx2H/BHMqZpD54mor2Obp9Ji7aDwiJ0vbEaY+x8SUUSgEUbUHTaMR0IvX UnmRajM2R+itFj+1LtPm+5xfEmu0W++eTOktq0RI5YMoMyb4cXeSOizMTjjy9EqN4S8Hpz3INHq gLmsVBJGL+3GuuYoZCJaFHEsZcSpwdMy0NUJ4h3OAzkapcJiYDjOL5zDEY5EbJD2PNEcKE2HCPw cBtgvGNIOvO8A+EKCP+lyZoIHWVpIwJFaujra+NM63gZpHB3f9/NNq70aOxyaozysFJGb3CGpSh ceBe4fQvbq9icPm6CoP8ovr0kLCi9m5pPFf+CDQHxJcEvWw8xSM4zbJIWizlGYlPWVcrKX5OVVJ mBeXbuOG5nsPk7PdbsOOTt2mOzoaYZuV/mKTGGrC++/APiEKo9l5UR7Q9EhfUB1zNGCMwMYWiSL iZDOrcy3EqmUaQf4Hqw== X-Authority-Analysis: v=2.4 cv=RY6gzVtv c=1 sm=1 tr=0 ts=6a7b95ce cx=c_pps a=MTSHoo12Qbhz2p7MsH1ifg==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=Sv0fKeRqtYgA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=gowsoOTTUOVcmtlkKump:22 a=EUspDBNiAAAA:8 a=RJ9lep_nkaVUh_m6BXgA:9 a=GvdueXVYPmCkWapjIL-Q:22 X-Proofpoint-ORIG-GUID: RRaVPC80TXFbObsDn9_HpDVYWKuZGxdg X-Proofpoint-GUID: RRaVPC80TXFbObsDn9_HpDVYWKuZGxdg X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1176,Hydra:6.1.134,FMLib:17.12.100.49 definitions=2026-08-11_05,2026-08-10_03,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 impostorscore=0 phishscore=0 adultscore=0 suspectscore=0 spamscore=0 malwarescore=0 clxscore=1015 priorityscore=1501 bulkscore=0 lowpriorityscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2608110182 The Qualcomm Embedded USB Debugger (EUD) can intercept one or two High-Speed UTMI paths depending on the SoC. For example, SC7280 supports EUD on the primary UTMI path only, while SM8350 supports EUD on both primary and secondary UTMI paths. Each UTMI path connects an independent USB controller/connector pair and forms its own role-switch domain. EUD routes traffic based on USB role. In device role the debug hub is inserted, while in host role it is bypassed. The existing binding models EUD using a flattened ports representation. While sufficient for fixed device-role configurations, it cannot naturally associate a controller, connector, and role switch with a specific EUD-routable path. This is problematic for role-switch capable ports and becomes more pronounced on SoCs with multiple paths. In such cases, each path forms an independent role-switch domain and requires per-path role awareness. Model each UTMI path as a separate child node with its own OF graph. Add an SM8350 compatible for dual-path EUD topologies while retaining the legacy ports representation for backward compatibility. Reviewed-by: Krzysztof Kozlowski Signed-off-by: Elson Serrao --- .../bindings/soc/qcom/qcom,eud.yaml | 133 +++++++++++++++++- 1 file changed, 132 insertions(+), 1 deletion(-) diff --git a/Documentation/devicetree/bindings/soc/qcom/qcom,eud.yaml b/Documentation/devicetree/bindings/soc/qcom/qcom,eud.yaml index 84218636c0d8..0e35bc9a9d20 100644 --- a/Documentation/devicetree/bindings/soc/qcom/qcom,eud.yaml +++ b/Documentation/devicetree/bindings/soc/qcom/qcom,eud.yaml @@ -18,6 +18,7 @@ properties: items: - enum: - qcom,sc7280-eud + - qcom,sm8350-eud - const: qcom,eud reg: @@ -45,10 +46,87 @@ properties: $ref: /schemas/graph.yaml#/properties/port description: This port is to be attached to the type C connector. + '#address-cells': + const: 1 + + '#size-cells': + const: 0 + +patternProperties: + "^eud-path@[0-1]$": + type: object + description: + Represents one High-Speed UTMI path that EUD intercepts. Use eud-path nodes + to associate role-switching behavior with specific port connections, allowing + EUD to manage role transitions independently for each UTMI path. + + properties: + reg: + maxItems: 1 + description: Path number + + usb-role-switch: + type: boolean + description: + Indicates that EUD relays USB role-switch events for this path and + performs role-dependent UTMI routing accordingly. In device role, + the EUD hub is inserted into this path to enable debug + functionality. In host role, the EUD hub is bypassed and UTMI + traffic flows directly between the PHY and the USB controller. + + ports: + $ref: /schemas/graph.yaml#/properties/ports + description: + These ports are to be attached to the endpoint of the USB controller node + and USB connector node. + + properties: + port@0: + $ref: /schemas/graph.yaml#/properties/port + description: This port is to be attached to the USB controller. + + port@1: + $ref: /schemas/graph.yaml#/properties/port + description: This port is to be attached to the USB connector. + + required: + - reg + - ports + + additionalProperties: false + required: - compatible - reg - - ports + +oneOf: + - required: + - ports + properties: + eud-path@0: false + eud-path@1: false + - allOf: + - if: + properties: + compatible: + contains: + const: qcom,sc7280-eud + then: + required: + - eud-path@0 + properties: + eud-path@1: false + - if: + properties: + compatible: + contains: + const: qcom,sm8350-eud + then: + required: + - eud-path@0 + - eud-path@1 + properties: + ports: false additionalProperties: false @@ -77,3 +155,56 @@ examples: }; }; }; + - | + eud@88e0000 { + compatible = "qcom,sm8350-eud", "qcom,eud"; + reg = <0x88e0000 0x2000>, + <0x88e2000 0x1000>; + #address-cells = <1>; + #size-cells = <0>; + + eud-path@0 { + reg = <0>; + usb-role-switch; + + ports { + #address-cells = <1>; + #size-cells = <0>; + port@0 { + reg = <0>; + eud_usb0: endpoint { + remote-endpoint = <&usb_1_dwc3_hs>; + }; + }; + + port@1 { + reg = <1>; + eud_con0: endpoint { + remote-endpoint = <&pmic_glink_hs_in>; + }; + }; + }; + }; + + eud-path@1 { + reg = <1>; + + ports { + #address-cells = <1>; + #size-cells = <0>; + port@0 { + reg = <0>; + eud_usb1: endpoint { + remote-endpoint = <&usb_2_dwc3_hs>; + }; + }; + + port@1 { + reg = <1>; + eud_con1: endpoint { + remote-endpoint = <&conn_2_hs_in>; + }; + }; + }; + }; + }; -- 2.34.1