From nobody Fri Apr 3 04:41:06 2026 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 31AC3262FF8 for ; Mon, 9 Mar 2026 20:33:42 +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=1773088423; cv=none; b=j4+hj+FqqXuKEx1WIAw0yIYJazCqDo5Xa9W8/myMDO/CnVog+FaK6MiMyE1r60oCFcfZ3fcHXQR7A2UKxvf0M7BNoXWNb7iFtks9dSykN86Hkq77cqR45u07k7o1qyHaaQIRm5d2aKFrhoAHI5qsvUBrz3XxAt2XlEjB9qMGGYw= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1773088423; c=relaxed/simple; bh=aCDVTUxh9JogQ1hy2Lkd6pHJ7gHWpePVPTc1pZmzoL4=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=MnThBEgTsqqMTBTu/I18dgLS2ZtV3ZggBbBWiO01EHMu9kkqKFB0qb0e+miwNJ/FwNmcfSrsX8SWtS5cwM2nXOAn0pEWf4fHw/jbinawpCojPPhrZCKqq0ZA/Txx5qtAwns4UJdQTHYcnivErpg4ssB+PxOQ8J1sXHtDuGnJY4A= 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=JjPS25cO; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=euZEayw4; 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="JjPS25cO"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="euZEayw4" Received: from pps.filterd (m0279871.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 629HCEOX1212183 for ; Mon, 9 Mar 2026 20:33:41 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=Pn8uTGxSK3j IfZEqYoCdq5gvAWFHg5kvAAHa3xK37G4=; b=JjPS25cOSsYrrBx669DzL7wnJ+B b6xgQ7WlB+CRk7mwwuD6Gh+rdyA8kES0OHsC9w5w2yylFlvkx5UbAACtq03KBSZI nG7gev9sAjeZ+BeYrkz7xwyoThpVWTJqSR3NArHypAdgmsKdADETEe8NPpOCFnn7 de8qP9vXvudVzJ3PeRkjpnnzltH/1Eo7y7zr9WkdrIAIjz3de0UmDzSKHnsRJviG lS6ebhndz6gHzlpCMCMZ27sm9ZNu5/UTX7j615wy1hk2NJs+XAsCuo0+BWwa07uD +z3pD4vJqBEqJnKZ0zSqBIZZLkrHhJj1dF3oUGPCCT4JLZBy2DuAEZlxyLQ== Received: from mail-ot1-f70.google.com (mail-ot1-f70.google.com [209.85.210.70]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4cswwkhmd3-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Mon, 09 Mar 2026 20:33:41 +0000 (GMT) Received: by mail-ot1-f70.google.com with SMTP id 46e09a7af769-7d7438fc7f0so6393469a34.0 for ; Mon, 09 Mar 2026 13:33:41 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1773088420; x=1773693220; 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; bh=Pn8uTGxSK3jIfZEqYoCdq5gvAWFHg5kvAAHa3xK37G4=; b=euZEayw4xsITrHPMBN5vaso+cnQxhOvPKjVwU6i4/d1MxkWm2zCS6iUVAOFXG8935B nYCLdt5BDQiJ1pac55rHoroADe6/FA5L7hF9Ipv8fBkDiIvQhHUaGDNjoet4Lyw5ilPY DmTQEW7RQK6amyfddeFN2kDbOQNCXidB49LTsXnPfLtaEp0urCWXQGAZudZ3P/wfIJE5 BL2XvdpWiwjHMK7X6Ygs8QocZSX2T/j1ad9ogT+XZF66GypED36GRYObia0R9UscJbDx Jq6t5YnyvjPZWfpzbWobiZas2dbj/GYlgKdmCpPAUBd7iA9ipmR7uzV0BTcWR9MyoJS4 /Rlw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1773088420; x=1773693220; 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; bh=Pn8uTGxSK3jIfZEqYoCdq5gvAWFHg5kvAAHa3xK37G4=; b=rf4zvI+Fce2ekGLECekB41rAM4Q4q18CfNSXkg+02KNuY0lYCVVLS4bEQfyjGE8s7u XR4iXCE8edr+8qh4qPM0qBA6588UdnayNrlImPmaBy0XrhtMlcJT3wBiu/2qeZU9YAcP hRJRTaQ4JNSolZPiyv1VbGJbXByScqpkIiY6O896uLr6p6IjQeIwxFQgqzayAe24XVEB P34lvXcYPfv5ZSTI+JzGJr5KEsYHV7Mswxi/o8daUsFN5Wy15I8ETaZpdzoLHYFXn+hS i8c2q6Z1wy0ZgHKwTDryW0N1OKaJRs79otla0E9OcdWE1a1nTjPC8uTmg+UFJjioqYP1 rZ9A== X-Forwarded-Encrypted: i=1; AJvYcCVvxY+tSyYnhTnRACF2kX/Z5FBFbPUyis9DTUk8Uj9Yl/0IB1zDd1A/PLXxk/2J0NGjT2cgAv0tZLrDqKE=@vger.kernel.org X-Gm-Message-State: AOJu0Yw/TtxplQUqVmcniL9lB8aqf5RiP/KoCHJr146rToxxmeTxtNd4 Z2SpDbssw/UIgZq2wp3dM1KkztIDkRWlzLM2kGw8kOJLNW3R2n4fny8v7x4VpbpJiz0hidSBwT/ qgp24eQ6MEpjsCsB/krHFKPAb854b1arOdgbQ1lofIAD/Nny2eNmIdD9KsqmxPZWrbVg= X-Gm-Gg: ATEYQzwOuiaMylHhERGpxWQPvRfsg0k/zjCcQBjkMaGghGeoKIJP2K90r1/ZXZcVaqb NnjQw3WjdjuPuBEIoyLTOkIzLInp93odDi3GPgzISH5FFG5dJmnbFMk7k9KrRfZ7XXNyEIbrBH9 O/fIot+jiEUtL76pM1DtOqsWC+p2DhlHFydIa/CDyXmK45eL5m6qUsB/MYLkeD9MrDAOaZQhGJT Yi7XN/7EJ1Y+3JGWw53JwofOKdqiAt9u2yAP6TC6Ru3x22TwrwFlppOxutM0yKFL0ype8OLJIXd p/fuod7eUvDv57hSKhVBMZkuymv7qBHLrE/2t95Zt49gJIEuekx9Bme5fQa//XTd3oPCrx9z19c QAGIrvdViCerzvMSLvZ7MWwJQLdKDECMdCuNr1Q055pjJ1ZhLSqouJCqpKEQe+YeAv7UbZc1mb6 M= X-Received: by 2002:a05:6830:6001:b0:7cf:db31:1b7d with SMTP id 46e09a7af769-7d726e75a8dmr7897572a34.5.1773088420555; Mon, 09 Mar 2026 13:33:40 -0700 (PDT) X-Received: by 2002:a05:6830:6001:b0:7cf:db31:1b7d with SMTP id 46e09a7af769-7d726e75a8dmr7897560a34.5.1773088420207; Mon, 09 Mar 2026 13:33:40 -0700 (PDT) Received: from hu-eserrao-lv.qualcomm.com (Global_NAT1.qualcomm.com. [129.46.96.20]) by smtp.gmail.com with ESMTPSA id 46e09a7af769-7d74885b5a4sm3036494a34.23.2026.03.09.13.33.38 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 09 Mar 2026 13:33:39 -0700 (PDT) From: Elson Serrao To: Greg Kroah-Hartman , Bjorn Andersson , Konrad Dybcio , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Souradeep Chowdhury Cc: linux-arm-msm@vger.kernel.org, devicetree@vger.kernel.org, linux-usb@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH RFC v3 01/10] dt-bindings: soc: qcom: eud: Add support for dual-port configuration Date: Mon, 9 Mar 2026 13:33:28 -0700 Message-Id: <20260309203337.803986-2-elson.serrao@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260309203337.803986-1-elson.serrao@oss.qualcomm.com> References: <20260309203337.803986-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: quoted-printable X-Authority-Analysis: v=2.4 cv=cZ/fb3DM c=1 sm=1 tr=0 ts=69af2ea5 cx=c_pps a=7uPEO8VhqeOX8vTJ3z8K6Q==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=Yq5XynenixoA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=3WHJM1ZQz_JShphwDgj5:22 a=EUspDBNiAAAA:8 a=COdb67ocejTnp4Lj0MIA:9 a=EXS-LbY8YePsIyqnH6vw:22 X-Proofpoint-ORIG-GUID: WrXY4Hxes2kCUBA25bQa9-X9SNxGGdax X-Proofpoint-GUID: WrXY4Hxes2kCUBA25bQa9-X9SNxGGdax X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwMzA5MDE4MiBTYWx0ZWRfX2lizu6074bOG VXGih3gZq3ZgjRUS6lhCj7GYQ85VSW0Ff3UByp19jY6fMjP7yhLUGZGcQKM80V/qiHe6NC3HU2w P6ZtQ5w9qG6rePVl+6rqVJAtP2E29Fe7Wo9IgTZfPGlipLHpBlAxO17rPb4VJkldO1HinALQ7L9 7iCRx/ijyMbLFomglsCkDsV6LCLBv5KQ4+3oJ0DvnZVc3UB+ILeUXla5duQO5SDU+M+GUOuEgfD sH1YR4gUdsqqLgWm09aWtC7Ha9uN8NTWW7SMmbuIDUR0gW4bBoD5ZDLXJiYUAqwYIwpaHrHdg/l tmcwySTeeq+xZBlnNOZ+tA95wiFIGf9FGBe6XpaH2BscBf2g9e/cHBprGDT/10nM3b3C4iASkJ7 hJuQtkF+wciByYPsPaECaMWU2hEFyWd21dyUozBLGUXuvhvHCfzfDk8SMcsok5tmXECRYoPh8EI RrtDka+QMM51N52T3pw== X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.51,FMLib:17.12.100.49 definitions=2026-03-09_05,2026-03-09_02,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 spamscore=0 suspectscore=0 impostorscore=0 adultscore=0 priorityscore=1501 phishscore=0 malwarescore=0 lowpriorityscore=0 clxscore=1015 bulkscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2602130000 definitions=main-2603090182 Content-Type: text/plain; charset="utf-8" EUD hardware supports debugging on up to two USB ports depending on the SoC configuration. Debugging can be selected on either the primary or secondary USB port as controlled by the EUD_PORT_SELECT register. Extend the binding to support dual-port configurations by adding port@2 and port@3 for secondary USB controller and Type-C connector connections. Signed-off-by: Elson Serrao --- .../bindings/soc/qcom/qcom,eud.yaml | 19 ++++++++++++++----- 1 file changed, 14 insertions(+), 5 deletions(-) diff --git a/Documentation/devicetree/bindings/soc/qcom/qcom,eud.yaml b/Doc= umentation/devicetree/bindings/soc/qcom/qcom,eud.yaml index 84218636c0d8..af89b9e0be6f 100644 --- a/Documentation/devicetree/bindings/soc/qcom/qcom,eud.yaml +++ b/Documentation/devicetree/bindings/soc/qcom/qcom,eud.yaml @@ -32,18 +32,27 @@ properties: ports: $ref: /schemas/graph.yaml#/properties/ports description: - These ports is to be attached to the endpoint of the DWC3 controller= node - and type C connector node. The controller has the "usb-role-switch" - property. + These ports attach to endpoints of DWC3 controller nodes and Type-C + connector nodes. The controller has the "usb-role-switch" property. + EUD supports up to 2 USB ports. For single-port configurations, use + port@0 and port@1. For dual-port configurations, use all four ports. =20 properties: port@0: $ref: /schemas/graph.yaml#/properties/port - description: This port is to be attached to the DWC3 controller. + description: This port is to be attached to the primary DWC3 contr= oller. =20 port@1: $ref: /schemas/graph.yaml#/properties/port - description: This port is to be attached to the type C connector. + description: This port is to be attached to the primary Type-C con= nector. + + port@2: + $ref: /schemas/graph.yaml#/properties/port + description: This port is to be attached to the secondary DWC3 con= troller. + + port@3: + $ref: /schemas/graph.yaml#/properties/port + description: This port is to be attached to the secondary Type-C c= onnector. =20 required: - compatible --=20 2.34.1 From nobody Fri Apr 3 04:41:06 2026 Received: from mx0a-0031df01.pphosted.com (mx0a-0031df01.pphosted.com [205.220.168.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 322AD36C0BC for ; Mon, 9 Mar 2026 20:33:44 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=205.220.168.131 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1773088425; cv=none; b=es6V/Ewnj9b6OKlAVIOx1lYL5b3j9v5cg8x2+AQ/zfaMbLyn+GflE7n1ITthaikoZzI7EvNmd4SZhMrC7iA3W3I2n3EomddBKYl9dMkyrKqMc/8GVKtVNViZAxH3adMLChf2tHvwkQvYkKE7kkQBm0f86Thn4QzxFc5TzRU5iME= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1773088425; c=relaxed/simple; bh=xMUCXc+T1mxqitUAHJsbyD7zN0MBtP33MxPyki89jC0=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=ocDBB+9gV0UsiN6TpfXOYf3V5ggFPzgkyok5Hewt624TWW7T6yY1UdcW69HAKtOvCD1NqJYaCC7kzpTCcDJ2mOGidGFZqcCz4DQnVM7dpUVhjluzmORFKa2fB6x5AAjYP/7L7owUUfIBE3CyBsJpaI/PYnZ0GZP8qH0PKTI+yXE= 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=gXD56n7V; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=Ylx/nzZr; arc=none smtp.client-ip=205.220.168.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="gXD56n7V"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="Ylx/nzZr" Received: from pps.filterd (m0279864.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 629HBtgD2427754 for ; Mon, 9 Mar 2026 20:33:43 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=X71iaS2pCQJ 5JwChEZnH7egZFDTUof/Ft5BQu4Wr5X8=; b=gXD56n7Vltq1K63b/yIvvsdXdTe wXrivOOGduoNWvIEzfy1D+wHWr88P2cUE2hQFEHWWOdh0POHnVLlm2tagvKSYyXx KysRy2+Z66iOyureCLTI0AVkQ9JFoKDw8v7Vsj+mOi6BaQ1BTOV/WvS7wXBqAl2c TGERFdPwkr9XKwev0Id50LrABQdGIP0dl9rup0NjHTBNgBf/reTF7+Kcyr/0QRHF hqqWMKJ02rQPQKkf46/PflBO4kpgMJhX2QHd4uFox9AyrySEjBA7mO2AKzVHjuKp WDejcFiKaJhUEIwILZAo/baju8Mcnk/6o7MV2uIBud+XEVQ9mJSkvaR1uIQ== Received: from mail-ot1-f70.google.com (mail-ot1-f70.google.com [209.85.210.70]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4ct1ekrwjj-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Mon, 09 Mar 2026 20:33:43 +0000 (GMT) Received: by mail-ot1-f70.google.com with SMTP id 46e09a7af769-7d73bcdba71so23257222a34.3 for ; Mon, 09 Mar 2026 13:33:42 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1773088422; x=1773693222; 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; bh=X71iaS2pCQJ5JwChEZnH7egZFDTUof/Ft5BQu4Wr5X8=; b=Ylx/nzZr5An7A4NqV5k7V/7DlEklPxHyvYtG0AD9+7dcERIQXgk97pUr3RlMRBV36M 4tNFH8zBCQ4cMO89Bch1/mKtVn6UbfF86gPt4KZepUIJPp/Z5qELeyCMxpN0M3hOnG59 71RQEUy/Sybwj6GO169k/Ln1llaYmR6XOPrXSDvVm7vwn+006J9A6lDoZusYcKfDLVTm 9rR2u527A5IvdRLvjWHgx7ifLTK86TfImh/oZEGmA7adgXZDiP1Bn8jdWU9KL9EDyaBs kLWwl4IepVA6907IW/e1VeJaqPxhvYTHWFqq3sgd6kVvNJxl9HC291yZiR9JZvLHJssJ d7hg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1773088422; x=1773693222; 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; bh=X71iaS2pCQJ5JwChEZnH7egZFDTUof/Ft5BQu4Wr5X8=; b=KUMLWIAolvgwdQDrgi9140FF+f8cHtTJWD5GsmhQ8yBDC1MBlExjB2csBjRiv2G5QF mETTw2jG27BFP/c2j63qYzuTDL/3YE8sAg7AggzTy0eJpV/OinKQiRRsDk+xpWngJRep 2Q15pduSPY84Y4BPz/MwxOnDmGxpCQwUV02it05qO6B+4xkXvPbpSAcCTb3y7MLLrwKO q4n+JFV/VSo2+FAYRppAESXzdCqBPXJP/JTYcgHe45+dIEFPQCU/zdgeJ8EO4POSxhOX 3YPIBiZtYp/Y9hnc3C6iPCydcs67bNLbDeLVSJzTcMj7JhccEEM60QYIGvX4Nbjz9WCd FI5w== X-Forwarded-Encrypted: i=1; AJvYcCXm/m5Odoa+XLhHAw5UqPPeAxPeVtamC8r8x7iChRZFPvvAuN2jT5rtuEIu62GcNsWK2yu+BkM+fipaUkY=@vger.kernel.org X-Gm-Message-State: AOJu0YznLzGZ5Kat+UkT4vLluMam7Ll+UjrGiDHSXiGJqXO753DAbFsj 2vK7KWjKTIkcvCXQ7GHUGlvrIw011PJojCjBhhkIS96xeIu1rPTL8PKU25xFD6aRMmv5QvL/MLs IdGcfS6BR4TCogGTEghihG0wFxFHNHgL4oAtBJAT66iLgZzXCkJeH0FtNfmnQv6njMxw= X-Gm-Gg: ATEYQzyKnsGThDu+dBqvLkuGpoDpd1i59M6u+M42DO5S6z0s6cEl/2OuSsCLmPgfr9j ExDgGS5c5cvfJYQA2BX68+H6SONM9gomO++k5UnYiRKpm2/3aahom6komrNU8x0yVp14xcRC0sF OvgrAyM6hjITPj3AbIoXSQ1YGb/I1pIGXphYLbLAFyStMCYo2hZVOODXs9IPhFB51lANPCyo7Yb i6+e++9SnrYcTe9Z6lwqKTLSkrL9M1lLIyb/PmiWcMbOyR/4yi/7r2cQuLFq52SLB/XKJqwDPDX MEbR8M0x9lH2F5xbIhCy3FNFhdDxSbFxqKM0TebRXiylmkUahIczW45MvyxEuN7M2ybIDGlnUEN 4HuI/d8Cd8LtJ1dxraIv4ktbvFqdoE7EmoUgwCd2XCqFWojlkCt3yTQiT100PEyWSLCqeGs24gw A= X-Received: by 2002:a05:6830:3987:b0:7cf:d05f:3e57 with SMTP id 46e09a7af769-7d727028e32mr8409068a34.25.1773088421992; Mon, 09 Mar 2026 13:33:41 -0700 (PDT) X-Received: by 2002:a05:6830:3987:b0:7cf:d05f:3e57 with SMTP id 46e09a7af769-7d727028e32mr8409048a34.25.1773088421620; Mon, 09 Mar 2026 13:33:41 -0700 (PDT) Received: from hu-eserrao-lv.qualcomm.com (Global_NAT1.qualcomm.com. [129.46.96.20]) by smtp.gmail.com with ESMTPSA id 46e09a7af769-7d74885b5a4sm3036494a34.23.2026.03.09.13.33.40 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 09 Mar 2026 13:33:41 -0700 (PDT) From: Elson Serrao To: Greg Kroah-Hartman , Bjorn Andersson , Konrad Dybcio , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Souradeep Chowdhury Cc: linux-arm-msm@vger.kernel.org, devicetree@vger.kernel.org, linux-usb@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH RFC v3 02/10] usb: misc: qcom_eud: add sysfs attribute for port selection Date: Mon, 9 Mar 2026 13:33:29 -0700 Message-Id: <20260309203337.803986-3-elson.serrao@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260309203337.803986-1-elson.serrao@oss.qualcomm.com> References: <20260309203337.803986-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: quoted-printable X-Proofpoint-GUID: mqqSXpB2bBUmF54e5mBh3H5HcG4I9ntY X-Proofpoint-ORIG-GUID: mqqSXpB2bBUmF54e5mBh3H5HcG4I9ntY X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwMzA5MDE4MiBTYWx0ZWRfX8bVheNSsmdH8 APSwLin1suY7Nh3IxN6f1CULeE+G8k5voRlbngUa/P7pnN61Dmp+uE2+MBjFP9HPplg+FWI4PzK EN911VORGp64RYL0U5G7T+Dk+jZoZKudJLt2/S/D2V5VFXalpC5r1qlkKkFqXHvsRDy5t6RD/fG PE7So00HAcX7Bfr7Tc4KUaHEkKF5X64bQBfVGuX9eD+fXkQ3tFsLCGoWTiaFjsHxU6GgsPbTj7+ GMo+AmD0P1xAWM/3uVaAKOliUH7uzHWFNiW4FlEKiu5baUqD4bzlcaObb7W+k5tH9XTeOfXk9KG ECFzY1haxeg+G/gjLdbOjQNKA8AB2E7QdJSbF1s/8xlTAkibRwve5jyPRDIYhiB21N+iB/bRINE InVfDpN8oIBi5VVNHWiEpKeFvGzBFChPoIDdWbll+UAe1AMnY3cYE8VTcUgcPMvrjfEjh6FMzOW rLKtfXZxHJmCofmYQHg== X-Authority-Analysis: v=2.4 cv=eIEeTXp1 c=1 sm=1 tr=0 ts=69af2ea7 cx=c_pps a=7uPEO8VhqeOX8vTJ3z8K6Q==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=Yq5XynenixoA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=DJpcGTmdVt4CTyJn9g5Z:22 a=EUspDBNiAAAA:8 a=un400R04Xmhap_XYEvQA:9 a=EXS-LbY8YePsIyqnH6vw:22 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.51,FMLib:17.12.100.49 definitions=2026-03-09_05,2026-03-09_02,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 impostorscore=0 bulkscore=0 lowpriorityscore=0 adultscore=0 suspectscore=0 spamscore=0 priorityscore=1501 malwarescore=0 clxscore=1015 phishscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2602130000 definitions=main-2603090182 Content-Type: text/plain; charset="utf-8" EUD can be mapped to either the primary USB port or the secondary USB port depending on the value of the EUD_PORT_SEL register. Add a 'port' sysfs attribute to allow userspace to select which port EUD should operate on and update the ABI documentation. This is needed for systems with dual USB ports where EUD needs to be accessible on either port depending on the system configuration and use case. Signed-off-by: Elson Serrao --- Documentation/ABI/testing/sysfs-driver-eud | 16 ++++++++ drivers/usb/misc/qcom_eud.c | 43 ++++++++++++++++++++++ 2 files changed, 59 insertions(+) diff --git a/Documentation/ABI/testing/sysfs-driver-eud b/Documentation/ABI= /testing/sysfs-driver-eud index 2bab0db2d2f0..67223f73ee60 100644 --- a/Documentation/ABI/testing/sysfs-driver-eud +++ b/Documentation/ABI/testing/sysfs-driver-eud @@ -7,3 +7,19 @@ Description: EUD based on a 1 or a 0 value. By enabling EUD, the user is able to activate the mini-usb hub of EUD for debug and trace capabilities. + +What: /sys/bus/platform/drivers/qcom_eud/.../port +Date: January 2026 +Contact: Elson Serrao +Description: + Selects which USB port the Embedded USB Debugger (EUD) + is mapped to on platforms providing multiple High-Speed + USB ports. + + Valid values: + 0 - Primary USB port + 1 - Secondary USB port + + The attribute is writable only while EUD is disabled. + Reading the attribute returns the currently selected + USB port number. diff --git a/drivers/usb/misc/qcom_eud.c b/drivers/usb/misc/qcom_eud.c index 926419ca560f..1a136f8f1ae5 100644 --- a/drivers/usb/misc/qcom_eud.c +++ b/drivers/usb/misc/qcom_eud.c @@ -23,8 +23,11 @@ #define EUD_REG_VBUS_INT_CLR 0x0080 #define EUD_REG_CSR_EUD_EN 0x1014 #define EUD_REG_SW_ATTACH_DET 0x1018 +#define EUD_REG_PORT_SEL 0x1028 #define EUD_REG_EUD_EN2 0x0000 =20 +#define EUD_MAX_PORTS 2 + #define EUD_ENABLE BIT(0) #define EUD_INT_PET_EUD BIT(0) #define EUD_INT_VBUS BIT(2) @@ -40,6 +43,7 @@ struct eud_chip { int irq; bool enabled; bool usb_attached; + u8 port_idx; }; =20 static int enable_eud(struct eud_chip *priv) @@ -104,8 +108,47 @@ static ssize_t enable_store(struct device *dev, =20 static DEVICE_ATTR_RW(enable); =20 +static ssize_t port_show(struct device *dev, + struct device_attribute *attr, char *buf) +{ + struct eud_chip *chip =3D dev_get_drvdata(dev); + + return sysfs_emit(buf, "%u\n", chip->port_idx); +} + +static ssize_t port_store(struct device *dev, + struct device_attribute *attr, + const char *buf, size_t count) +{ + struct eud_chip *chip =3D dev_get_drvdata(dev); + u8 port; + int ret; + + ret =3D kstrtou8(buf, 0, &port); + if (ret) + return ret; + + /* Only port 0 and port 1 are valid */ + if (port >=3D EUD_MAX_PORTS) + return -EINVAL; + + /* Port selection must be done before enabling EUD */ + if (chip->enabled) { + dev_err(chip->dev, "Cannot change port while EUD is enabled\n"); + return -EBUSY; + } + + writel(port, chip->base + EUD_REG_PORT_SEL); + chip->port_idx =3D port; + + return count; +} + +static DEVICE_ATTR_RW(port); + static struct attribute *eud_attrs[] =3D { &dev_attr_enable.attr, + &dev_attr_port.attr, NULL, }; ATTRIBUTE_GROUPS(eud); --=20 2.34.1 From nobody Fri Apr 3 04:41:06 2026 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 7264336C9ED for ; Mon, 9 Mar 2026 20:33:45 +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=1773088427; cv=none; b=RzyATlul65Pdw1U27b3BqyOqSCOrPl+T8OUixjECdUd8kaCagTUGcci8ZLD3wvqCbxEs53+Dxa3CV1GKBOkSZRy0mmekK2DDvehJ6LQ4Z7MppAajcvgAPdnd5HgEBQ0AbMq11XehWtsxNLJh6WJRukU+82oPZuXcwRkqbkQY0FQ= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1773088427; c=relaxed/simple; bh=K5zCrwyUodQrO/S0E+Ed2/TLcRf4SRw+FFja5CQCvCY=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=CLmfpZRs7v/U+kx4Au76Cv5kYOR4s7P9coFZyAb9lgsKT9QRN9iQ+l3rTAFmmWk+j1Dv0YkCWgIyR1RAzOqmCii0OmP36uOSKxspmSA04f3yiMTQ7/cZBnKdXdG8Ez/4UHMDGfulIQeioW/u+XcjwjhVm2xiMh1hpFiSbkfQYI4= 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=VamMzwDA; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=WvAoScaM; 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="VamMzwDA"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="WvAoScaM" Received: from pps.filterd (m0279872.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 629HBhOg1659813 for ; Mon, 9 Mar 2026 20:33:44 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=Tv7zku8qccC AqWcffUyfjdmURlu+0i433EEONBaxuaw=; b=VamMzwDA4934SEWfsBbgJPTLxAU m2+5vpQON3WbyzlrGRKlFK7Z/2FbIxML/TrQ9Fd5wlld8FlXd8pKmC8vZ6GjwJ/N VM7nFtK5tUl2soDLrGM67xObgukCVoygvsgIqSJeRIWlsIZF+iphSVy4ndvMOkn7 zJKD6iIqh0DXFJtMNyfqv20xzzYzRg0bN5bl3OG0PWWcZ4+O8EwlAlK0gKhqP+9R tJH2AMIte3/KqJdwWwKT4TkoQut07ip+Rhe2u3mmguHfIwXdEbnqade0EmTKuxgA 4lxQ7nSgH1/Izf4gx29C5NqvWD52kWb5b1vz46JrQyDcejRl2XYkhgtvMbA== Received: from mail-ot1-f72.google.com (mail-ot1-f72.google.com [209.85.210.72]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4csyr417nx-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Mon, 09 Mar 2026 20:33:44 +0000 (GMT) Received: by mail-ot1-f72.google.com with SMTP id 46e09a7af769-7d73e3cf94eso8149938a34.2 for ; Mon, 09 Mar 2026 13:33:44 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1773088423; x=1773693223; 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; bh=Tv7zku8qccCAqWcffUyfjdmURlu+0i433EEONBaxuaw=; b=WvAoScaMRDaZzX0ubVDr1DU7NFM05AVQM3hHAj3PD3V3Z2QybuojE5ru4/ehAyMkRS sZ9mo9wax5CNF3+ZTsepQngDC0ikuOOAb1bf4xBHwJ3RArl+j0ZwSbgfrVeARPuGoELC 71un3YGwVpQrjEmneCWhnfLRXscDqIxeU8vVttjwnU962p2J+hk52EWxRxjf9n5Uca/w oTboU8LFdyMHs/pktYDQR6lfj4tTxlDBsAeamOlxMut3p5rzAXY1PkobhxPF1KeeIWZF hhivFdGovXc/+lmZx2yDTsE9lkJPEjS5E+25YyJrVgiOOkY7vnzPwp2fli2d/A8WzW9u 3J1w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1773088423; x=1773693223; 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; bh=Tv7zku8qccCAqWcffUyfjdmURlu+0i433EEONBaxuaw=; b=fa+VhT6NZQIR8Tu+XiRQZYHr1ovwKrW6tDhM8jZxr71Otk/DVaYNTPwlGgk7G5DDjV 1SWTXYANCC4tgbgAVjGYAxkZODR395m1dbOgInsZseDJnXtJq4KnlaJgu9SNiYSNgbns 2Q4jCg/ot0Juk58bDFytapNESt4PL7hpzONCLrb45l2zAhKTuUqS7HPwNn2qUg9KYFRK KlEAIny0No3qAZ8alZ+MFpXs6ADRWkB1XcZPoqkLhrDOHHuL98+aX4GL+k3+PP/sV9L2 eUVIiyopob88xbQx1AmnONYjsFw1EzsgH3hoLwSAN97xtFNSyqp56qpWoP5ANoa11cyh N/og== X-Forwarded-Encrypted: i=1; AJvYcCVmsJJ2XWOYnghI/DvEmF4lTFIzaKgdxwxrgy3yvq31US0tDy6X+yEP1qz3xx84kOweHONhCeMnrs3Ab7I=@vger.kernel.org X-Gm-Message-State: AOJu0Yxtcnt5Nv9+b7CA13uaSxhwki5yIjpDq1Abo9E3eqmZjynoIugu kaCB7RclE0G5MjRIxm8a0b9SbDoc8nFzptXz946txSil9FHZSuZwG9iFi6r5epBRAzX0aatJa0G NKessFXPR+n0B7HMXxxZWfn8iVGdTehj48Hb6CS0GzfkmURtJYAZLqEVbl5Lr0asgI/c= X-Gm-Gg: ATEYQzy342oPs6VkLErTIPToOY6QWtW7MOxuWDt1VYICckIL7vMY5MUeCV95I2vIPiI 5QUr0DJWcjUAqNPgkRLDLLMfh4UI03+P3swtbiufHCmoOQBgioYbHHae8JcFLob5v24wuvDPESE zgrypVDPUGT7sL+ZNg3ltKEFxBXjhLFQD3MhZjsf+9VSjqPN3l4j4obTkdY03gw81s8vOe7UH/C 0OiWnZGQqtAf9TpQvDFJhs7emm04UpzG7E+h2I0bNRUSMTOG97UH+kr/h51vmOVA9pm5EOmeS9g KmgwNLIucBEofSqj+jJRZfGVj9ExQA8vPuftoqmx1Fuz/jzMsDVLTVtsyhFxOnF2eslzZ68TwJN zWM+RSp5Rf+UxaKCdgYWZ+i0g8tH/KEJwUA+NQnSZV/7BnOW820g5F/6yMLq3Ek3r+Uotb2WIdJ Y= X-Received: by 2002:a05:6830:d18:b0:7ce:2b34:deca with SMTP id 46e09a7af769-7d72705979fmr7317833a34.28.1773088423471; Mon, 09 Mar 2026 13:33:43 -0700 (PDT) X-Received: by 2002:a05:6830:d18:b0:7ce:2b34:deca with SMTP id 46e09a7af769-7d72705979fmr7317804a34.28.1773088422943; Mon, 09 Mar 2026 13:33:42 -0700 (PDT) Received: from hu-eserrao-lv.qualcomm.com (Global_NAT1.qualcomm.com. [129.46.96.20]) by smtp.gmail.com with ESMTPSA id 46e09a7af769-7d74885b5a4sm3036494a34.23.2026.03.09.13.33.41 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 09 Mar 2026 13:33:42 -0700 (PDT) From: Elson Serrao To: Greg Kroah-Hartman , Bjorn Andersson , Konrad Dybcio , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Souradeep Chowdhury Cc: linux-arm-msm@vger.kernel.org, devicetree@vger.kernel.org, linux-usb@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH RFC v3 03/10] usb: misc: qcom_eud: add per-port High-Speed PHY control Date: Mon, 9 Mar 2026 13:33:30 -0700 Message-Id: <20260309203337.803986-4-elson.serrao@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260309203337.803986-1-elson.serrao@oss.qualcomm.com> References: <20260309203337.803986-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: quoted-printable X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwMzA5MDE4MiBTYWx0ZWRfX2yG4iFBrxOI3 0+vXCCM9mEXRtdVRsEjbDic3LTv8DfxkGh+bbQqbTZWjZmuVdffX/Wh+Pri2QBpwOnSHpXn8HxC IyY1CjUV5RUlw94i4fPaTXacWtUofLPngulYi2TiJYDqCHtCUCKKJvYcT6XWGT9KCmNIBDdrpma PTI0JvLwk8kivwkWjLFSp6fMx7xOOohJWXPBpDiSmJ44t75O+5ncEP+I1IzB2ZSc6itXpYVJQbU ynA8xHhzjiCSD4vGpw6ScnidbYoN2CWyDZMEDCrhFbvnL/IiBN2gKAKjaoqiKvFQjW7z8VvWZm4 46InsdjMbN4ZVtZJqTnOgyw2stKqfB2rHe20Tq8qJbVh1PMfINAY5GHBCWExov2ciuPdu1BAGAO KEixXmtuKuE8V+KLPGsQf4EGHew1/6dnB7rxTZD7SsJ2UjdnNJ6Z/IdjAlW1YmIMWO61hPu3DYi jIE/dfFFama5t5CXYDg== X-Proofpoint-GUID: Nvmoy-qwabB57HxqTI9mk6XCA3PiRX1U X-Proofpoint-ORIG-GUID: Nvmoy-qwabB57HxqTI9mk6XCA3PiRX1U X-Authority-Analysis: v=2.4 cv=KNRXzVFo c=1 sm=1 tr=0 ts=69af2ea8 cx=c_pps a=+3WqYijBVYhDct2f5Fivkw==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=Yq5XynenixoA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=yx91gb_oNiZeI1HMLzn7:22 a=EUspDBNiAAAA:8 a=U2yq5S0A3DoD2uQntOoA:9 a=eYe2g0i6gJ5uXG_o6N4q:22 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.51,FMLib:17.12.100.49 definitions=2026-03-09_05,2026-03-09_02,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 adultscore=0 impostorscore=0 spamscore=0 bulkscore=0 priorityscore=1501 suspectscore=0 clxscore=1015 lowpriorityscore=0 malwarescore=0 phishscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2602130000 definitions=main-2603090182 Content-Type: text/plain; charset="utf-8" EUD hardware can support multiple High-Speed USB ports, each routed through its own PHY. The active port is selected in hardware via the EUD_PORT_SEL register. As a High-Speed hub, EUD requires access to the High-Speed PHY associated with the active port. To support this multi-port capability, the driver must manage PHY resources on a per-port basis, ensuring that the PHY for the currently selected port is properly initialized and powered. This patch adds per-port PHY management to the driver. The driver now powers the appropriate PHY based on the selected and enabled port, ensuring correct operation when EUD is enabled. Historically, EUD appeared to work on single-port systems because the USB controller kept the PHY initialized. However, EUD is designed to operate independently of the USB controller and therefore requires explicit PHY control for proper operation. Signed-off-by: Elson Serrao --- drivers/usb/misc/Kconfig | 1 + drivers/usb/misc/qcom_eud.c | 103 +++++++++++++++++++++++++++++++++++- 2 files changed, 103 insertions(+), 1 deletion(-) diff --git a/drivers/usb/misc/Kconfig b/drivers/usb/misc/Kconfig index 0b56b773dbdf..2d9190c756f9 100644 --- a/drivers/usb/misc/Kconfig +++ b/drivers/usb/misc/Kconfig @@ -147,6 +147,7 @@ config USB_APPLEDISPLAY config USB_QCOM_EUD tristate "QCOM Embedded USB Debugger(EUD) Driver" depends on ARCH_QCOM || COMPILE_TEST + depends on OF select QCOM_SCM select USB_ROLE_SWITCH help diff --git a/drivers/usb/misc/qcom_eud.c b/drivers/usb/misc/qcom_eud.c index 1a136f8f1ae5..b042e01c6ca2 100644 --- a/drivers/usb/misc/qcom_eud.c +++ b/drivers/usb/misc/qcom_eud.c @@ -11,6 +11,8 @@ #include #include #include +#include +#include #include #include #include @@ -37,23 +39,75 @@ struct eud_chip { struct device *dev; struct usb_role_switch *role_sw; + struct phy *phy[EUD_MAX_PORTS]; void __iomem *base; phys_addr_t mode_mgr; unsigned int int_status; int irq; bool enabled; bool usb_attached; + bool phy_enabled; u8 port_idx; }; =20 +static int eud_phy_enable(struct eud_chip *chip) +{ + struct phy *phy; + int ret; + + if (chip->phy_enabled) + return 0; + + phy =3D chip->phy[chip->port_idx]; + + ret =3D phy_init(phy); + if (ret) { + dev_err(chip->dev, "Failed to initialize USB2 PHY for port %u: %d\n", + chip->port_idx, ret); + return ret; + } + + ret =3D phy_power_on(phy); + if (ret) { + dev_err(chip->dev, "Failed to power on USB2 PHY for port %u: %d\n", + chip->port_idx, ret); + phy_exit(phy); + return ret; + } + + chip->phy_enabled =3D true; + + return 0; +} + +static void eud_phy_disable(struct eud_chip *chip) +{ + struct phy *phy; + + if (!chip->phy_enabled) + return; + + phy =3D chip->phy[chip->port_idx]; + + phy_power_off(phy); + phy_exit(phy); + chip->phy_enabled =3D false; +} + static int enable_eud(struct eud_chip *priv) { int ret; =20 - ret =3D qcom_scm_io_writel(priv->mode_mgr + EUD_REG_EUD_EN2, 1); + ret =3D eud_phy_enable(priv); if (ret) return ret; =20 + ret =3D qcom_scm_io_writel(priv->mode_mgr + EUD_REG_EUD_EN2, 1); + if (ret) { + eud_phy_disable(priv); + return ret; + } + writel(EUD_ENABLE, priv->base + EUD_REG_CSR_EUD_EN); writel(EUD_INT_VBUS | EUD_INT_SAFE_MODE, priv->base + EUD_REG_INT1_EN_MASK); @@ -70,6 +124,8 @@ static int disable_eud(struct eud_chip *priv) return ret; =20 writel(0, priv->base + EUD_REG_CSR_EUD_EN); + eud_phy_disable(priv); + return 0; } =20 @@ -132,6 +188,11 @@ static ssize_t port_store(struct device *dev, if (port >=3D EUD_MAX_PORTS) return -EINVAL; =20 + if (!chip->phy[port]) { + dev_err(chip->dev, "EUD not supported on selected port\n"); + return -EOPNOTSUPP; + } + /* Port selection must be done before enabling EUD */ if (chip->enabled) { dev_err(chip->dev, "Cannot change port while EUD is enabled\n"); @@ -224,6 +285,35 @@ static irqreturn_t handle_eud_irq_thread(int irq, void= *data) return IRQ_HANDLED; } =20 +static int eud_parse_dt_port(struct eud_chip *chip, u8 port_id) +{ + struct device_node *controller_node; + struct phy *phy; + + /* + * Multiply port_id by 2 to get controller port number: + * port_id 0 -> port@0 (primary USB controller) + * port_id 1 -> port@2 (secondary USB controller) + */ + controller_node =3D of_graph_get_remote_node(chip->dev->of_node, + port_id * 2, -1); + if (!controller_node) + return dev_err_probe(chip->dev, -ENODEV, + "failed to get controller node for port %u\n", port_id); + + phy =3D devm_of_phy_get_by_index(chip->dev, controller_node, 0); + if (IS_ERR(phy)) { + of_node_put(controller_node); + return dev_err_probe(chip->dev, PTR_ERR(phy), + "failed to get HS PHY for port %u\n", port_id); + } + chip->phy[port_id] =3D phy; + + of_node_put(controller_node); + + return 0; +} + static void eud_role_switch_release(void *data) { struct eud_chip *chip =3D data; @@ -243,6 +333,17 @@ static int eud_probe(struct platform_device *pdev) =20 chip->dev =3D &pdev->dev; =20 + /* + * Parse the DT resources for primary port. + * This is the default EUD port and is mandatory. + */ + ret =3D eud_parse_dt_port(chip, 0); + if (ret) + return ret; + + /* Secondary port is optional */ + eud_parse_dt_port(chip, 1); + chip->role_sw =3D usb_role_switch_get(&pdev->dev); if (IS_ERR(chip->role_sw)) return dev_err_probe(chip->dev, PTR_ERR(chip->role_sw), --=20 2.34.1 From nobody Fri Apr 3 04:41:06 2026 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 338CC41C2EB for ; Mon, 9 Mar 2026 20:33:46 +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=1773088430; cv=none; b=C9c4Tfo+kxMFPUP5dQRM420R48JjnKFx7/3H/GqT2/T3x50fdCsVhIHaDptmd0fEw6P1UZZgU1NeaAczdDtLgKNkTP0JNodkYzy3uiGAS2wC4WQUDGEaLuu09ob8RPxNbzxu+tRHC4qPycZjdjHIowtPX99YHOWrLrjWPfw4RKY= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1773088430; c=relaxed/simple; bh=1hJpGqDTRFoURWmmoaEOGT/N7Gx5d5iN/Mc6404ctVQ=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=hzsgA9p1dtxeMSEIvPRJRfy+nQuBW/KprhbbOA1sQaKCuD1mKNz1CcQLpliaE3bmFB/Oer+cTATfSIj6he7P+3CEoUXZBzQ5fGg1ymsZO6Jp4CXaELo1xKYQPJI5hARCDqsOgLsYpvNsI6TQUdp7zmredrnYspILYJ75F3UKQ4I= 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=E1bIl3/Q; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=Gljdgckk; 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="E1bIl3/Q"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="Gljdgckk" Received: from pps.filterd (m0279871.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 629HDML71214071 for ; Mon, 9 Mar 2026 20:33:46 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=mBBMFcAvNte 4hAjDhm0HFRJcXN1506iQWGvqP070rO0=; b=E1bIl3/QQGzsX6K9vtGnsmBSPQD SjivA4NY43warjed/UycU71X4M49FkErpiZI6T0MK0Qj7KTdAfM14zVvP62oK1+A PO4jNjTKmPbX0//s+YgfsL3+H4H5rL6aaUFx4YGv5IlMBq2gBVLF7wtYl84c38iE too2SybTLm0+oV8xCq3Sa1aG3f7np+S84zYLRJAQYWmfhzmIU3BJwetyrPb3eC7B DBOfng0v3upR9mgMQqltjwccsWnC4xGiQyj0hYNYjI2JZfrD7eNtY7spLGQ5IXGH 8HmeEOA0N/gPOyg2AtYAiEtUM9bqJVpVQnX8GyQv/yrbqSm3F3EfLsUIkbw== Received: from mail-ot1-f70.google.com (mail-ot1-f70.google.com [209.85.210.70]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4cswwkhmdd-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Mon, 09 Mar 2026 20:33:45 +0000 (GMT) Received: by mail-ot1-f70.google.com with SMTP id 46e09a7af769-7d4be1dee67so123443991a34.1 for ; Mon, 09 Mar 2026 13:33:45 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1773088425; x=1773693225; 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; bh=mBBMFcAvNte4hAjDhm0HFRJcXN1506iQWGvqP070rO0=; b=GljdgckkLU41tV4DcuM0rrw3sAiYGOdNwMLa4vGqd7vhxmZlK6qdVz+ToEIZmDCmqh EVIKG0v4lAMjmbQ7xPqWxURKSbjMlifwbXFG6+PML3fTetY5xOm4SJf8cI4BrlPgBfQ0 s/MKPQnH2vnnXh7eCh4oSXf9ps96nney+pX4vWMQjDkpKG0D7bFGik8+3v6wg/c3uXqV 4fRhrFbTTjAbiuUBYALBC3+t083CQ3HIWXOfd76q+m/HGRAXAZCZa6t5/ZY+BIICSqip Q9YhvMqKG8loYIZNXn7mzzXe/gS6qAUcUo39RvcRRNRr7BhCqyMTJz415eHR+ovbZIkz 7sqA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1773088425; x=1773693225; 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; bh=mBBMFcAvNte4hAjDhm0HFRJcXN1506iQWGvqP070rO0=; b=mvNyZtGsHef55AagdId/bbVhimL3nundj2mX6p3U1TXF02Cp480t1aUTqY3tkUMIyy nPYNR02OYb9UpsEJnZRjHa9/p+ztb9yPs/MgkKr5gtHEMAU/k4gxnxmrJFfkKhDeFIRw F1Tvnr+RKQR4+OS+yNs1m7UATzmdaqFDab84B6Vwu6fY/54zykwL9SW7vrK28uxJdBrG f6cBddjdTgLgYRW3I9GmHAZRogMw9bVKlDWLb/SWQaOfuIiUwh00KCTZW70ioFzsKDoK VmO6wNymYn/esgqXrHes9SLBgLIHk+XFa5scaPc8wKP1ah2d4GekJoqsGvNiMU7QQVeo wqyQ== X-Forwarded-Encrypted: i=1; AJvYcCXpgsBpA45EUuzX5S1TUSpcjOcMm6h9Ensjw7v4brJVGJsuuuVRA7DUwJ9tbXE73miK/bSZyZjXmCfwTYQ=@vger.kernel.org X-Gm-Message-State: AOJu0Yxm+Q3wxaYY807QzqC8PE0QgbD1tUdiAnt1urGeBW2qyUFeDi+C WlweCwi94OxyhBKjrZ9Qe8kphSF78jN3JKbHFShLEZakbsCEe3Xmoh6XYEXp/Xh4hjV6FH+XF7r HKyZosK9nkJbaZLzV/YmwdfoZXkzFqhkTbyoZ+FtCTxL2Zk1Z016KrFuz/UHQcXomjy8= X-Gm-Gg: ATEYQzxxwwLmETcYhBn+53kpMDhVeL9YaEXIugKR5qUxVgHI9uoK3nHBUgL9EZmMzxI lnzAXMK84H44+snQCZpOfJDzZ91d8kLOktryj4jgZ0wzQxtfeIgvmGFdgSOtiYB/anp7rbmrB3B EvUaErmQbjYJgMbOju+B2IfwtarR5/x5B949OPBjVHTwYZfR6ghvS5Y1l2qpaQYr2FqZHAYWRbP ZlBiYUKLXz5q3DpOAgu9xz36IB9h8kGodFeCCQYLqNQTJuSb+UPfmZZ+yjzIpudcyVZNNMcwt6U 3lRlCKS9Vad+waF/VyGrgGB6N2AhVPkp+04fvGEyP3TISieqrYPaRwE3on9ZnGliMI2f2FeXQEA SATQj1HyeOCmCnceOA7wMbZJOte/LZ/7w9zs8A4app9K/JQ/edHstaynlOQgTuOZIbDi+cV9PGR s= X-Received: by 2002:a05:6830:610d:b0:7c7:b4e:edb4 with SMTP id 46e09a7af769-7d726f1520dmr8306672a34.8.1773088424719; Mon, 09 Mar 2026 13:33:44 -0700 (PDT) X-Received: by 2002:a05:6830:610d:b0:7c7:b4e:edb4 with SMTP id 46e09a7af769-7d726f1520dmr8306648a34.8.1773088424304; Mon, 09 Mar 2026 13:33:44 -0700 (PDT) Received: from hu-eserrao-lv.qualcomm.com (Global_NAT1.qualcomm.com. [129.46.96.20]) by smtp.gmail.com with ESMTPSA id 46e09a7af769-7d74885b5a4sm3036494a34.23.2026.03.09.13.33.43 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 09 Mar 2026 13:33:43 -0700 (PDT) From: Elson Serrao To: Greg Kroah-Hartman , Bjorn Andersson , Konrad Dybcio , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Souradeep Chowdhury Cc: linux-arm-msm@vger.kernel.org, devicetree@vger.kernel.org, linux-usb@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH RFC v3 04/10] usb: misc: qcom_eud: add per-port role switch support Date: Mon, 9 Mar 2026 13:33:31 -0700 Message-Id: <20260309203337.803986-5-elson.serrao@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260309203337.803986-1-elson.serrao@oss.qualcomm.com> References: <20260309203337.803986-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: quoted-printable X-Authority-Analysis: v=2.4 cv=cZ/fb3DM c=1 sm=1 tr=0 ts=69af2ea9 cx=c_pps a=7uPEO8VhqeOX8vTJ3z8K6Q==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=Yq5XynenixoA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=3WHJM1ZQz_JShphwDgj5:22 a=EUspDBNiAAAA:8 a=uchPniyQPeoRSj6hJMsA:9 a=EXS-LbY8YePsIyqnH6vw:22 X-Proofpoint-ORIG-GUID: EjXyDwk4b8ViKbaeAb61rmJpEU7oVYE1 X-Proofpoint-GUID: EjXyDwk4b8ViKbaeAb61rmJpEU7oVYE1 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwMzA5MDE4MiBTYWx0ZWRfX1ayH2riCUgMb iQiOmlMWrBxs++VyYtsUVuREQbberby+wIf2leF5iRhr7N1OTy1OfHRzKOzchw2P8RK2+f+iwRE IRX1rJaeAGRmQ0COP2Y/FqanG+dBKFQa5YuUCmRn2gX1HS01z5nHAdQ7mfGoyuNFT2tgY+Dek7F sCMQLEK7tWTEqCdvS4SDka5xJp97BjT39BmO64yqQvDkCGfQG4IGX6hQeRt84do3F3zf2/3En3m 3j2v0P0QGCS++Be4G5XaVbggd2g8n+l+YBKflFljESpx5KqUbCxp7GbhoL5uRTkb/tOavlZAtL6 7Lfcl0aterJIMA6LPJj5bJmt3OtDo+5Qh2ygp8Ic7W5qCzD1NTsTw/k3VKdYbTDP6h5HH7hjYh0 7CWAhWTvbWWSuewwPI5OCkxNNVqRgGsc7sh6NbZV0QOAWUFgokHn4dosLsdtL4HGuRRSQ7Sh5b4 Rw6C3UoL4q8QUhrDOpA== X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.51,FMLib:17.12.100.49 definitions=2026-03-09_05,2026-03-09_02,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 spamscore=0 suspectscore=0 impostorscore=0 adultscore=0 priorityscore=1501 phishscore=0 malwarescore=0 lowpriorityscore=0 clxscore=1015 bulkscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2602130000 definitions=main-2603090182 Content-Type: text/plain; charset="utf-8" The EUD hardware can support multiple High-Speed USB ports, each connected to different USB controllers. The current implementation uses a single chip-level role switch, which cannot properly handle multi-port configurations where each USB port can operate in different role. Restructure the driver to support per-port role switches. Additionally, remove the unnecessary role switch call from enable_eud() as EUD need not modify the USB role upon enabling. Signed-off-by: Elson Serrao --- drivers/usb/misc/qcom_eud.c | 31 +++++++++++++++++++++---------- 1 file changed, 21 insertions(+), 10 deletions(-) diff --git a/drivers/usb/misc/qcom_eud.c b/drivers/usb/misc/qcom_eud.c index b042e01c6ca2..1936b45791d2 100644 --- a/drivers/usb/misc/qcom_eud.c +++ b/drivers/usb/misc/qcom_eud.c @@ -38,7 +38,7 @@ =20 struct eud_chip { struct device *dev; - struct usb_role_switch *role_sw; + struct usb_role_switch *role_sw[EUD_MAX_PORTS]; struct phy *phy[EUD_MAX_PORTS]; void __iomem *base; phys_addr_t mode_mgr; @@ -112,7 +112,7 @@ static int enable_eud(struct eud_chip *priv) writel(EUD_INT_VBUS | EUD_INT_SAFE_MODE, priv->base + EUD_REG_INT1_EN_MASK); =20 - return usb_role_switch_set_role(priv->role_sw, USB_ROLE_DEVICE); + return 0; } =20 static int disable_eud(struct eud_chip *priv) @@ -272,9 +272,9 @@ static irqreturn_t handle_eud_irq_thread(int irq, void = *data) int ret; =20 if (chip->usb_attached) - ret =3D usb_role_switch_set_role(chip->role_sw, USB_ROLE_DEVICE); + ret =3D usb_role_switch_set_role(chip->role_sw[chip->port_idx], USB_ROLE= _DEVICE); else - ret =3D usb_role_switch_set_role(chip->role_sw, USB_ROLE_HOST); + ret =3D usb_role_switch_set_role(chip->role_sw[chip->port_idx], USB_ROLE= _HOST); if (ret) dev_err(chip->dev, "failed to set role switch\n"); =20 @@ -289,6 +289,7 @@ static int eud_parse_dt_port(struct eud_chip *chip, u8 = port_id) { struct device_node *controller_node; struct phy *phy; + struct usb_role_switch *role_sw; =20 /* * Multiply port_id by 2 to get controller port number: @@ -309,16 +310,31 @@ static int eud_parse_dt_port(struct eud_chip *chip, u= 8 port_id) } chip->phy[port_id] =3D phy; =20 + /* Only fetch role switch if usb-role-switch property exists */ + if (!of_property_read_bool(controller_node, "usb-role-switch")) { + of_node_put(controller_node); + return 0; + } + + role_sw =3D usb_role_switch_find_by_fwnode(of_fwnode_handle(controller_no= de)); of_node_put(controller_node); =20 + if (IS_ERR(role_sw)) + return dev_err_probe(chip->dev, PTR_ERR(role_sw), + "failed to get role switch for port %u\n", port_id); + + chip->role_sw[port_id] =3D role_sw; + return 0; } =20 static void eud_role_switch_release(void *data) { struct eud_chip *chip =3D data; + int i; =20 - usb_role_switch_put(chip->role_sw); + for (i =3D 0; i < EUD_MAX_PORTS; i++) + usb_role_switch_put(chip->role_sw[i]); } =20 static int eud_probe(struct platform_device *pdev) @@ -344,11 +360,6 @@ static int eud_probe(struct platform_device *pdev) /* Secondary port is optional */ eud_parse_dt_port(chip, 1); =20 - chip->role_sw =3D usb_role_switch_get(&pdev->dev); - if (IS_ERR(chip->role_sw)) - return dev_err_probe(chip->dev, PTR_ERR(chip->role_sw), - "failed to get role switch\n"); - ret =3D devm_add_action_or_reset(chip->dev, eud_role_switch_release, chip= ); if (ret) return ret; --=20 2.34.1 From nobody Fri Apr 3 04:41:06 2026 Received: from mx0a-0031df01.pphosted.com (mx0a-0031df01.pphosted.com [205.220.168.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 C2EB341C2F9 for ; Mon, 9 Mar 2026 20:33:47 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=205.220.168.131 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1773088431; cv=none; b=ThNWqYg45jn3rJ1ea44FdplOrW+HxH28AEI5yd4+M6EO8xNiyy/iEnQvflZ8oQmvK2+diLlQRVbLVCcgtTuL/9/n6vAGDpnnlnQ+SJHFYEmu1EQt3Ehrq0/R8iUebSXFgtW/kjPLTGqJfQsT7xWtlTuGV+3446rEG2usafiL1as= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1773088431; c=relaxed/simple; bh=royapcGosrFDfN1+WyvBjef85L3TpzNsrnUe+lEHvP4=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=UCwRyTzD0Q5wAyS1gs9AhzAOVsRtfjqYILUoErK65MVGp5o6Zm6JqNG9845uaBT35rAKYxStEaJ4gngwEutE7tBtYo2Qxg7hu8/H0oMSnlzCxscoAk9isZqPJ0BCdqfPdfEOfv8BiN2eaJLaizxb19EBdiqO1fb1pXBjmJXWTmA= 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=P9LnB6cu; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=QdfMZC70; arc=none smtp.client-ip=205.220.168.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="P9LnB6cu"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="QdfMZC70" Received: from pps.filterd (m0279863.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 629HBlNd1297345 for ; Mon, 9 Mar 2026 20:33:47 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=ZtqMZiiTPmW H7gYvculLjfwmF7B59MpYwDHoaL2++qE=; b=P9LnB6cupDYWUrtdb5ZvZBxvD9r VpT4BxSIFQDBplw3dumBaGDw1Va5RZhmHD9jYkuV53srS6x2/1AmwoUg1keywHUK vEwltS7mJ0xwmqJZACmwuwhjjCh8WGJ5j/UPXllkQ3VJ3DRAob4OTIPAtWtcFf5Z 0PQ1Wov1apcpw78xwsiqUAm6N8ytJSEsgbyWLbelmbv5lJE8xe60TkAY1kENX2Bq rOoSsXCpfbJPRvq0Vpx1wCWAwOTxwSYiP+KkyPTBnIzAGAjkDpYYxCGIq4I3qgsW r/9i+Rk/n/CkMRfnGvjJgzTresPsV6TIhyamt+QIM9TJ3onlnvQHGG01gxw== Received: from mail-ot1-f71.google.com (mail-ot1-f71.google.com [209.85.210.71]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4csyv19afj-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Mon, 09 Mar 2026 20:33:46 +0000 (GMT) Received: by mail-ot1-f71.google.com with SMTP id 46e09a7af769-7d74cd7b1e3so5490250a34.1 for ; Mon, 09 Mar 2026 13:33:46 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1773088426; x=1773693226; 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; bh=ZtqMZiiTPmWH7gYvculLjfwmF7B59MpYwDHoaL2++qE=; b=QdfMZC70baH1r/X9Bhm2/TUoZP1ZCT69XqkxCUwFVklhiq/ylNI26kfOCWpNV9Egkj bRxUPJRFCWgBIs+Ksh3FXu/gn3sUcAO59K1Y1lVMh4fDnlPYpxCfovjHV9r8SkEfI82C XM4o4qkVLDOYs0U9gbdwcLdi/YagP4QfWwseLevB2zY2P4S7vVt+d9Ebn1XDQ7vaqmhy +HaDUZibTNejtDFpo5qtwzJeP3lkX8DjitdUY3fiuv50qxNfFqcBdyXSgqivw4nZUW57 pOFX797xiT2eq2AzzmO1g3Yvqn5wUt8xX4UrbTXfgeECAG+ZOJ3ODDKieX8DC6C5gGXA XGeQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1773088426; x=1773693226; 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; bh=ZtqMZiiTPmWH7gYvculLjfwmF7B59MpYwDHoaL2++qE=; b=vJYzvcnIPplZe7xcssct0iojFYT5I2XtcYO9+TlWIFpMk0YqJiXQQQdZiXs4qC6xSq pky4EbwXi1+WUBn1t39pbCR/tkPs7dlOokEBkezOMjiF63VyYDaannpYP5ygmF9muL6c a54UQBuL42nj7ExtOvvMU2Nr7CukOCJB14HWxUKGVoMU2H/jzpWDx2JZWILgKvtgsNK/ K76haeyu79TuEtGn1zKqvLVGeAm2YvBbec0OcOOKXelvEe9kskMgdTRWlvQOavJDDazU 6bVwMWe7PCVio0sMtFpf3Q9qahE+i3Gf455jpVQRng5JNs503Agtn0VJApQx6yob5khq Zbfw== X-Forwarded-Encrypted: i=1; AJvYcCUtffskVqKZ0OQzJHxqpB7bGjUDQMBkyovDDIR1oZ31zXzDzTGkYhty8nZ8CQnnm8Nisd8s06vQipXZa+c=@vger.kernel.org X-Gm-Message-State: AOJu0YyLRZ2RpPEilPaIVcP/6Iz/0zvi8r9lm1yUU1jJ1ptQz4qZGuXS NZcuz47/yQGQgrviREjb22c/FVDvEaijpVwyg/zQIgaYI37SmpWIz0o7WT6udDtUhx74qe2kfbg zS51Uqzls9OML7XG2s8Xbedrd/OwXBWEUTi3tC6q8LPk/Zt/5h03jogn9i1DOHaoj+Jc= X-Gm-Gg: ATEYQzw9QQibxZZy0xfxzwy7PL3lt+4sDEF9VDDjdn9vjQu4FnMfLq7Dwf66toceOUI wnEH2uP6jKfOKh9DXGRwYMYCcRhBs3UaLd96PfLHl2b/89gJzNkUPSSZBhZy/rjU+cnfRmkGYn5 hQVqxbvtBZ85CQulx4OdJc0RtAQFTfq3i0wDmyuUAqwKjiBm6sYkscJDqSNiseCL68a+rP8Q1Sc JLMDXP28tvoPutvmYMuohCsd1e+gi2Rzb7cCg6S05KuDs1POi3pF4UPprXld+IqO1nMlU3Xg9os TL7ZIOOj0o8RU8TeTC5sdwCEG4yEQnTUAGWmml/3laW4Iq7zbMj5fHSkrS2spQFWGvp2T0vP5HM hTdgosz13RCjaObY43I2ZX56qE4+1zgbSuZRyKZbcamJVMFPaguqxztxJaLgOSJUNzBExEYklAt I= X-Received: by 2002:a05:6830:a8f:b0:7d7:5016:7ed1 with SMTP id 46e09a7af769-7d7501680a7mr1815253a34.33.1773088426003; Mon, 09 Mar 2026 13:33:46 -0700 (PDT) X-Received: by 2002:a05:6830:a8f:b0:7d7:5016:7ed1 with SMTP id 46e09a7af769-7d7501680a7mr1815235a34.33.1773088425634; Mon, 09 Mar 2026 13:33:45 -0700 (PDT) Received: from hu-eserrao-lv.qualcomm.com (Global_NAT1.qualcomm.com. [129.46.96.20]) by smtp.gmail.com with ESMTPSA id 46e09a7af769-7d74885b5a4sm3036494a34.23.2026.03.09.13.33.44 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 09 Mar 2026 13:33:45 -0700 (PDT) From: Elson Serrao To: Greg Kroah-Hartman , Bjorn Andersson , Konrad Dybcio , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Souradeep Chowdhury Cc: linux-arm-msm@vger.kernel.org, devicetree@vger.kernel.org, linux-usb@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH RFC v3 05/10] usb: misc: qcom_eud: improve enable_store API Date: Mon, 9 Mar 2026 13:33:32 -0700 Message-Id: <20260309203337.803986-6-elson.serrao@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260309203337.803986-1-elson.serrao@oss.qualcomm.com> References: <20260309203337.803986-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: quoted-printable X-Proofpoint-GUID: i3kUmNIkBXQVRTGsDxKpaLqkjeAkBdxu X-Proofpoint-ORIG-GUID: i3kUmNIkBXQVRTGsDxKpaLqkjeAkBdxu X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwMzA5MDE4MiBTYWx0ZWRfX/UmsIJSmEU58 x+EuyAGaMQfTREW8mTdqFtR/ifdfqHJw73QxTG3dASvMzKBL94TyKhF7LLAQe5xoDD2y04J5Zs8 u0yh4hYeJj6+oLtqzbNA/fJ9Rmtp27jMB0F46KEACO6M5/murU3Ka3IfX987cfVHZQInKpr/wfj CFvEqARL+cbhNWiEd+20iX7FlseFmsAW3Y+fRFGqjBOjC9ktN7KytUgd0WtdtUwWR9TpnRsi0xw 1XoNdzjeGTRF2RUlPhkORX/UGPTTNGa3uw99VXTHm8mrCCgTOD4k6EtCMiltWAr5oHSYpCetCCi v5DKioZSpE6OpnSvxQ2VgSkFsOuJTTxsifS+oV7GQ1g+xhuEVuwtP19xwpq9/0ddqzlyrikIJbA 7xwue6HzSHeNOdYkABaGqMAeqJeXpTO1lkuSg9vHJ1cA+3QsJnvaGs8zON5mm+Jj1NCmi9S2ibx SL3qObKq+OQjK5oYNhw== X-Authority-Analysis: v=2.4 cv=Cuays34D c=1 sm=1 tr=0 ts=69af2eaa cx=c_pps a=OI0sxtj7PyCX9F1bxD/puw==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=Yq5XynenixoA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=yOCtJkima9RkubShWh1s:22 a=EUspDBNiAAAA:8 a=iEam2xx7WbKG8qDqzoQA:9 a=Z1Yy7GAxqfX1iEi80vsk:22 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.51,FMLib:17.12.100.49 definitions=2026-03-09_05,2026-03-09_02,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 malwarescore=0 clxscore=1015 spamscore=0 adultscore=0 priorityscore=1501 phishscore=0 suspectscore=0 lowpriorityscore=0 bulkscore=0 impostorscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2602130000 definitions=main-2603090182 Content-Type: text/plain; charset="utf-8" Currently enable_store() allows operations irrespective of the EUD state, which can result in redundant operations. Avoid this by adding duplicate state checks to skip requests when EUD is already in the desired state. Additionally, improve error handling with explicit logging to provide better feedback. Signed-off-by: Elson Serrao --- drivers/usb/misc/qcom_eud.c | 21 +++++++++++++++------ 1 file changed, 15 insertions(+), 6 deletions(-) diff --git a/drivers/usb/misc/qcom_eud.c b/drivers/usb/misc/qcom_eud.c index 1936b45791d2..4fd08962d4fb 100644 --- a/drivers/usb/misc/qcom_eud.c +++ b/drivers/usb/misc/qcom_eud.c @@ -148,18 +148,27 @@ static ssize_t enable_store(struct device *dev, if (kstrtobool(buf, &enable)) return -EINVAL; =20 + /* Skip operation if already in desired state */ + if (chip->enabled =3D=3D enable) + return count; + if (enable) { ret =3D enable_eud(chip); - if (!ret) - chip->enabled =3D enable; - else - disable_eud(chip); - + if (ret) { + dev_err(chip->dev, "failed to enable eud\n"); + return ret; + } } else { ret =3D disable_eud(chip); + if (ret) { + dev_err(chip->dev, "failed to disable eud\n"); + return ret; + } } =20 - return ret < 0 ? ret : count; + chip->enabled =3D enable; + + return count; } =20 static DEVICE_ATTR_RW(enable); --=20 2.34.1 From nobody Fri Apr 3 04:41:06 2026 Received: from mx0a-0031df01.pphosted.com (mx0a-0031df01.pphosted.com [205.220.168.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 CCE4836A02F for ; Mon, 9 Mar 2026 20:33:48 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=205.220.168.131 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1773088433; cv=none; b=iT3dqVW9KqOL4ueGo2/2vKHJVIWcqtQcHozqQFz+y2IK9FxbzO5n52rl21XZHL/oWMPPmirh3N149JulXPjNpbVQFwpUefMgvtIhi/qWPbRd/RWKlfquneAoGf2a7G2HrzXNt6Uummmx0XYowEa7G820djaHJMS151Kr8gvgiOU= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1773088433; c=relaxed/simple; bh=iR9FBVRNdBPKUJuF0gdJRHocxr70Pd+iL3Ur6tNvyx8=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=Lkd3PxEA67rC6T22R/A2z/FKBP+B4Od/EABXcjIfjWHIkfGfEm9z06S8HZhDK47KcU3b5qkpobAyjX6B+MEsU1wlHeuadf2BpezCN3P0dj/IG01MZEduDQ0YSFzmAMJaoHNEaAAJ+8r5BH1GMCHGuXon71qV3SLk1K3jNv8zx7g= 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=kvlMvyGV; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=iDNRueHp; arc=none smtp.client-ip=205.220.168.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="kvlMvyGV"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="iDNRueHp" Received: from pps.filterd (m0279867.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 629HC6YT1203810 for ; Mon, 9 Mar 2026 20:33:48 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=6aSf9RIHhE0 ux1aAmM2DjF7m6jzh28AeMG4simH1BJ0=; b=kvlMvyGVnIOq2Nbqz48K1o+SloW 5bN4LqbAhvHIayeWjrUzduAq7bl+Pz5sa2QX4PbefpArctiPI+nArD1jpgjD75QG 6u27c8hEWsTJPgaI3+UEgUDQIwlBYSkZX8WgO9UDJCnglXOTEqoRPxzFGVUOdefm LC4tMrKgr+JLaXzPFhC1v8UJKXyr8QeeRiqwi5McBfGj1wA11wKvgGFrSqVgAH4j qyHohRHVGxAFSg4SVrpIfaaQ5SdLSmz/wcDpTmwQz3aidZ8GHxvP6i7tAokKDeOB lzldC75OhdApJeF357E4ZE1UhlUevWeBGUL77SJ7tY7JM1LYKKN3aasTokQ== Received: from mail-ot1-f72.google.com (mail-ot1-f72.google.com [209.85.210.72]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4ct03299bu-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Mon, 09 Mar 2026 20:33:48 +0000 (GMT) Received: by mail-ot1-f72.google.com with SMTP id 46e09a7af769-7d4d4db1523so54438511a34.1 for ; Mon, 09 Mar 2026 13:33:48 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1773088427; x=1773693227; 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; bh=6aSf9RIHhE0ux1aAmM2DjF7m6jzh28AeMG4simH1BJ0=; b=iDNRueHp49/krD9OgsUK5Pd6sDh0swG+xfpl2agIbFA5m2H70QKaOqEolX3c00uwe8 hhFbykPG4OUJ6RF6DQGmFOO8+iAWyh0/XPEyKsg/xXsoWyFSZj2pKMHmcCulD4kOqQNy B6zFsVMn0LAj/yOfiivtooKwlQutskUwXXQaITJKSvpHnWE9pxRjhySjS5N786CcmRiD Jl0cl917pZtkzDyE3BtGiS49o83IBnwbngwZ7FHjPxfkXQrAH5vgMER8V7gbiILUrWvD v0wupt3r2XeZfBvfQQhn0QNkSWICKP0bY1n96ro+yIdxk+lIHkXxnjBMr3kCLSFF8ILK gPIw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1773088427; x=1773693227; 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; bh=6aSf9RIHhE0ux1aAmM2DjF7m6jzh28AeMG4simH1BJ0=; b=INknzf8iJ+2TMsD9EutErClVDVmEEKZdGfXIuotuYwk8BjJpB6297XCJAu8Ex3kbdj Qq51Zu65N8BxNo5bHdDL8hJzxSBmDevNYm4tKysrz/+pu2scazZN1QxEbppM5bXJDzWv Nlr+MHoNsFdpptmI1QlqfZzRQRkK7YzfnISIUctieiA4UUpaDxaIoXwtqKtY1oV7entT zAkwrPfTz+pkBIw9J0OcF0to2+lk+WgiF39v6YlpReX4/myhqboSehMlD85cZ8VRtgwr uzUXybHKSdFnY0+P7p576Dnsy1y1NmpDJhGJmAeBG76MnRiIC5Os6Yh/BF0112MoTCAN bymQ== X-Forwarded-Encrypted: i=1; AJvYcCUQV2Fa1L/YOCwemG36wiPI+HvUIU2BLJblwdk0AhaHusP0u/Hqw/9zghavCR5lPPTPc6HpWC214jEYwoc=@vger.kernel.org X-Gm-Message-State: AOJu0YxkUrdKatHYcWShkQZSU9ewk56ZHqPe9t15taPK7c8Jo0TH1VvJ YTPb1OsXeHfdaKWNfAwoQSk11dxP9Utm6+yaRQBpDQcCPdrfhPJdcnM1T4dn5JxMtEs6rX/g5c7 3aHjiQBMBI5zSb7fkUkRmkUysPOAIZ/CHaUQe7IS8+/U4wMxhLFV5kRlerN1UZK9uGik= X-Gm-Gg: ATEYQzz3XdRJD0P7keFVPgm5kbI0Ts7VeNVdWyPkmNgjiXHDGDcY+n3RK29UB8PuaNR rRbEbq3Afmab02Ia7sFTsyuvRJ4SOcGJYA3J4Wzi1BNvrnOF5bHS/pt7ujx5XO9Qbnh9/LJF+Y9 nSY0Wpcp4FukDrNJDZ2f1iLVIFPPbZ227QNRmA9sXl+Q0tFnYEqQGJHYjP5KCWE3fv6TX92PT1D RReJN15X/ijiYwJhd8YW2cmuNtgugygiWilChmOPtF3tqfEomltou7c4JuyWv9nBTy8Yxh0NQVx xL66ted9OVE3FbD/frpLdDcGRRY3M9JkozwVJSIig5EU9a95e0NAulD5p3SviUbSiQ/zdO4hbNK hkIwL/DnCyVBX5oE22POtts5h1P6P11sMwPmQts9FOrPdfeGBhxzNP5kcVA0F0AgVU651FWxK2o s= X-Received: by 2002:a05:6830:411d:b0:7d7:4639:440d with SMTP id 46e09a7af769-7d7463947damr3864446a34.6.1773088427362; Mon, 09 Mar 2026 13:33:47 -0700 (PDT) X-Received: by 2002:a05:6830:411d:b0:7d7:4639:440d with SMTP id 46e09a7af769-7d7463947damr3864414a34.6.1773088426862; Mon, 09 Mar 2026 13:33:46 -0700 (PDT) Received: from hu-eserrao-lv.qualcomm.com (Global_NAT1.qualcomm.com. [129.46.96.20]) by smtp.gmail.com with ESMTPSA id 46e09a7af769-7d74885b5a4sm3036494a34.23.2026.03.09.13.33.45 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 09 Mar 2026 13:33:46 -0700 (PDT) From: Elson Serrao To: Greg Kroah-Hartman , Bjorn Andersson , Konrad Dybcio , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Souradeep Chowdhury Cc: linux-arm-msm@vger.kernel.org, devicetree@vger.kernel.org, linux-usb@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH RFC v3 06/10] usb: misc: qcom_eud: fix virtual attach/detach event handling Date: Mon, 9 Mar 2026 13:33:33 -0700 Message-Id: <20260309203337.803986-7-elson.serrao@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260309203337.803986-1-elson.serrao@oss.qualcomm.com> References: <20260309203337.803986-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: quoted-printable X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwMzA5MDE4MiBTYWx0ZWRfXwmshwPAUhxw4 CI3gOUtLdpc8GnEgriERoYu5ybXnVYrcTdA6maoPxukbj0iKwUufIijV6+J2/9HhilNrpHrJact lHTfzEZPL7aedp77GI2nwV+XO8om0hToQMiZ8MvoSy+j5ctnWVXXgh6yBFh7M93StsnoKFcXTwy Z+p0YNxb+xuGnMdieiIbPttXxoQSSi1+GWxc8nnsxC7dFJsDU0HpHkycPSuLlKVAv7sSgMG5zbS Z1W67dElgm9SoO5SPB1HgA8C+rl9QYNpNRNlNkri7Koml99uJQgCdO3D4mVAhzE3cinFp7+SteN W3sEIMN0Udp1XJmWuemW0pUi+OFc6UFj3eFzvFUqqkuXeczQ9muU37GVmimsaLiaXs9MdmGXD9q bQ14rbG2HW5QyE3qVg4mBsvH1OTrI8LQc8ZxantWzZ1YRoiTzppflCa6TY5nlCl8V0UYUpAXvdj 7omkgGDORu8001DsvAA== X-Proofpoint-ORIG-GUID: Wfo0ZUuJFj120BpMcSqSxtheRPiCVPwo X-Proofpoint-GUID: Wfo0ZUuJFj120BpMcSqSxtheRPiCVPwo X-Authority-Analysis: v=2.4 cv=WtEm8Nfv c=1 sm=1 tr=0 ts=69af2eac cx=c_pps a=+3WqYijBVYhDct2f5Fivkw==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=Yq5XynenixoA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=eoimf2acIAo5FJnRuUoq:22 a=EUspDBNiAAAA:8 a=oDIJ3hVRoRHbvujwG_AA:9 a=eYe2g0i6gJ5uXG_o6N4q:22 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.51,FMLib:17.12.100.49 definitions=2026-03-09_05,2026-03-09_02,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 clxscore=1015 impostorscore=0 spamscore=0 bulkscore=0 priorityscore=1501 lowpriorityscore=0 malwarescore=0 phishscore=0 adultscore=0 suspectscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2602130000 definitions=main-2603090182 Content-Type: text/plain; charset="utf-8" EUD provides virtual USB attach/detach events to simulate cable plug/unplug while maintaining the physical debug connection. However, the current implementation incorrectly sets the USB role to HOST on virtual detach, which doesn't represent the disconnected state. Fix the virtual detach handling by setting the USB role to NONE instead of HOST, correctly representing the disconnected state. Signed-off-by: Elson Serrao --- drivers/usb/misc/qcom_eud.c | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) diff --git a/drivers/usb/misc/qcom_eud.c b/drivers/usb/misc/qcom_eud.c index 4fd08962d4fb..3a71a0d27b5e 100644 --- a/drivers/usb/misc/qcom_eud.c +++ b/drivers/usb/misc/qcom_eud.c @@ -280,10 +280,26 @@ static irqreturn_t handle_eud_irq_thread(int irq, voi= d *data) struct eud_chip *chip =3D data; int ret; =20 + /* + * EUD virtual attach/detach event handling for low power debugging: + * + * When EUD is enabled in debug mode, the device remains physically + * connected to the PC throughout the debug session, keeping the USB + * controller active. This prevents testing of low power scenarios that + * require USB disconnection. + * + * EUD solves this by providing virtual USB attach/detach events while + * maintaining the physical connection. These events are triggered from + * the Host PC via the enumerated EUD control interface and delivered + * to the EUD driver as interrupts. + * + * These notifications are forwarded to the USB controller through role + * switch framework. + */ if (chip->usb_attached) ret =3D usb_role_switch_set_role(chip->role_sw[chip->port_idx], USB_ROLE= _DEVICE); else - ret =3D usb_role_switch_set_role(chip->role_sw[chip->port_idx], USB_ROLE= _HOST); + ret =3D usb_role_switch_set_role(chip->role_sw[chip->port_idx], USB_ROLE= _NONE); if (ret) dev_err(chip->dev, "failed to set role switch\n"); =20 --=20 2.34.1 From nobody Fri Apr 3 04:41:06 2026 Received: from mx0a-0031df01.pphosted.com (mx0a-0031df01.pphosted.com [205.220.168.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 DB5B0421890 for ; Mon, 9 Mar 2026 20:33:50 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=205.220.168.131 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1773088432; cv=none; b=F0wgXwXlnOy8sKRNT3Q+JwmNurap3kksBaTQdn/+Zm0G0NnZHBdVfgFt2ZY+Ntlb3ArduLAx7P7JzZbtWSLx8OoZi900n18e2IaqQN60lRgJNDPsoaKlM+cw/gj4qC7agOVA15gl432KoAIKVQLqDzXSCGoGrINgo4Kbnv0ka6M= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1773088432; c=relaxed/simple; bh=61qZa5oPb5FYhnLtNGgCYyVGAuKr4dTLYSSjg3McuLM=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=D0+Im4nd6fS6aF/jZmO3MPsCGuSk23RlTOGVxZA9eQyUj1zHDCfwCsjUZ9uY6Tp7riDKN/HWW7HrV/ufIYkCfI30e3h2Rrr7clPzhrimiGZkN2qDzfnVxQgELZzGTFe36/vpNVDnhjRipoGyZkDCPXzgIyXpNKHY9hKiJrljK5k= 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=QxPlxkFG; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=Oita/X5G; arc=none smtp.client-ip=205.220.168.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="QxPlxkFG"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="Oita/X5G" Received: from pps.filterd (m0279864.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 629HCN6X2428827 for ; Mon, 9 Mar 2026 20:33:50 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=Vm8K1x7aKvC TkjAgk/WSBFUkXkkqg22NG+Ug1hXiRPg=; b=QxPlxkFGkNe4ktku4RmDEu69bww VXpqXA3bSn9fwcF43Y3mqlunHUGTqjetTsblclnLh9bh9ynYQBZe/zQXDDyn00H+ C/6SXRRsS4XWPoJTaW8H3qhjVATATAqeXrScNMOfuh/mZi2426KVKFFnicQHrVWR de3/vl5nTtNPYpU5syHgCAo4tBiuBsrafVc80qtKpf0vh9aN7St4TQI/KhKgnMAX a3aEyxKFSP1hguIlTumNUHU6xa0kutsWfHSpX2bTv2/bOVPJcoILXCvvAKOBK1Qo 8CTtCSHaZugORWoe/VrhCTG+Fb5KOapqgkCu1fYsg+y1MlvjNMJOrzRv65g== Received: from mail-ot1-f70.google.com (mail-ot1-f70.google.com [209.85.210.70]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4ct1ekrwjx-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Mon, 09 Mar 2026 20:33:49 +0000 (GMT) Received: by mail-ot1-f70.google.com with SMTP id 46e09a7af769-7d73c71f9faso17688121a34.3 for ; Mon, 09 Mar 2026 13:33:49 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1773088429; x=1773693229; 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; bh=Vm8K1x7aKvCTkjAgk/WSBFUkXkkqg22NG+Ug1hXiRPg=; b=Oita/X5GeZBxP2YTLqVdECm1WpEBVLdFu8bR7tA+ayV6QUkLvDiR6GAMl10GczX4lj ELaKsO+FR5dI8qg3eImAyYT7X/CBfD0vzAUcEgv0zA1yGeH20E237U8lk3Fh7+eH30SH +uy0nD7yAxoZe8RnO1Q2sXGEs+4iHl8+hz+9acgV9nSsWYVXk8eG1G1PNMqyp/O3Mb5f h6B8leNjAyollH+6lk4UVHHADGv009IkdYXvQY9mwTPsE4vwbu4dLj5CM3nEWvOigpae BQBWaNIQqD7X27BXF16KA6bkS/vm8+VllBFBiyqHijiOu97R102DD8nwuXBllsnb6fXq Vb2Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1773088429; x=1773693229; 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; bh=Vm8K1x7aKvCTkjAgk/WSBFUkXkkqg22NG+Ug1hXiRPg=; b=tt2u62W7zPeHlGoVOzP8VkHV/m4mCi1ygLY9I+Y+KAREZtPzd8NmZx266yAW56H+08 Fir8JKMaMAlLPyvkqwXAzSW6UqorpVfmHHYDA95ILnBs8+J7HTypeoN7DyqjSkjg/6cZ pDvC6VynJC0e80dIrG70qey08Esr1eE+UAp5hzj/9r6d4WfYBip1Gy1pNRZd4hrVFjUE jTuXFcFJdRslUPU7a8UeXquQ6HejpEmQIiWRsKaJFSRrUAbmgtrL7XPdv4ISKCv4bYVk ldjt+IW0l4AbT6+W2Nu3cC1F9hHnpgYUOo/DM22BVLRjX9C5q6138mc0tH77fUxuCBAO fzCQ== X-Forwarded-Encrypted: i=1; AJvYcCUvrK8HNPJwn3cBMoRQjeMPnYQ1G/a7JTZkI4F0tx8Y8HH17kceixEQAlGCTIdIg2sn5W8G3GQ0xIaMBX0=@vger.kernel.org X-Gm-Message-State: AOJu0YxcqVYDDGf5UQLNKn4fM2Tg/2eXKbB3P3UpprE6ckapHQ3uEK6O tN03UI5TA8/NXVBvLirkxSTcS4t22SlAx5MbEXC1YkTaa1iz0tkmnAVMnGWeGruSgalxv082PB6 6PA+Cj4OaxsCheY9JrktW+8ldyO9OaaoQnE+AoXBdlmOIbwDirhPCyy6dEmuj5qDG3ho= X-Gm-Gg: ATEYQzwc9MES2njhb+Ui9rJZidQVc16v9756FD5sj7ZFGUKZkLqWVXMsh3y+0J/66UY el98pkVf41Ge/f2Ac+axR3t4IZHHrszGgy612e62/sATRzFEmJQwrSisYmaWmN6RTms1IH0qbqQ 4fO2LD/ahQLt5vOtzrJPPkAmWo1Wh/7hbWgyw0vESz0S9khsySVnc+c54Ow4p5zch/fBT7zktgZ vfotQ6DKi0Vaqp8zq79quqSjBoy1sxPF4XFVx1dIJgCS5AsZtl3IvzDkbtVHq8l4DyeXZ3T8NTG SwptmE/Y0noCJYES4EX6dBXO276Kjtz0j2GG/gJcgCa12NZOwJP2XM+i+U8xmW25NvSRsqFjPH+ +fs5+IG6hue+3Z/g4BH029dKCAAtfeBM5MKIx0kZ12ZeZsoa9MWQH2RcxGwIH8NLDTdz8XXtSTI A= X-Received: by 2002:a05:6830:f97:b0:7d7:57c4:367b with SMTP id 46e09a7af769-7d757c445b5mr1048635a34.28.1773088428643; Mon, 09 Mar 2026 13:33:48 -0700 (PDT) X-Received: by 2002:a05:6830:f97:b0:7d7:57c4:367b with SMTP id 46e09a7af769-7d757c445b5mr1048615a34.28.1773088428186; Mon, 09 Mar 2026 13:33:48 -0700 (PDT) Received: from hu-eserrao-lv.qualcomm.com (Global_NAT1.qualcomm.com. [129.46.96.20]) by smtp.gmail.com with ESMTPSA id 46e09a7af769-7d74885b5a4sm3036494a34.23.2026.03.09.13.33.47 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 09 Mar 2026 13:33:47 -0700 (PDT) From: Elson Serrao To: Greg Kroah-Hartman , Bjorn Andersson , Konrad Dybcio , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Souradeep Chowdhury Cc: linux-arm-msm@vger.kernel.org, devicetree@vger.kernel.org, linux-usb@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH RFC v3 07/10] usb: misc: qcom_eud: add host mode coordination Date: Mon, 9 Mar 2026 13:33:34 -0700 Message-Id: <20260309203337.803986-8-elson.serrao@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260309203337.803986-1-elson.serrao@oss.qualcomm.com> References: <20260309203337.803986-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: quoted-printable X-Proofpoint-GUID: dwWvhCH1c9LUYN70xsG0QHKXxBNklJHB X-Proofpoint-ORIG-GUID: dwWvhCH1c9LUYN70xsG0QHKXxBNklJHB X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwMzA5MDE4MiBTYWx0ZWRfX64tOECE6JHnW dTZdREZkBUZaxnIBzCC2JnUuvHBLFF51hetf5T5suM5q9vLg8W6IEMg3hv2Dy7YheUp/Fai5x0h wRxRubc1A/NbzVYJGBoTOBadyBJRjgNJcP3444QCsE5Vze/+XeiegdAhrfSrkfgGTkJdrTBp06a gBa/PW2yC/hSc5W4oAgPJ71e3YA7E6/1zc5FR2Fyr5mM6j/CO7W3WsVhaDt9x/2b+5/mkQKm7W7 tg1C0/PdtKEQN5rxEaCfpVrBewZ+EAECBsngLE1T7MsTZ2+5vQ9uY0NpPJiLbqLtVMSqmOMlbN+ jUktgVkGlg9VmXsYAFmGzDDd40XpUX7uCSJuosX+nOfiOPOnxxSVlpUR1/n/2Z+lqhsUqz/91qi 7sLy5tDHvXfT9vxlu9P+SKrP75Vx3EK7asnsrAZW8kPYTTDp2CHflZ9ynfrt08uXdExvvw2mj2+ bj7M2Qv268/wH5U7Bqg== X-Authority-Analysis: v=2.4 cv=eIEeTXp1 c=1 sm=1 tr=0 ts=69af2ead cx=c_pps a=7uPEO8VhqeOX8vTJ3z8K6Q==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=Yq5XynenixoA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=DJpcGTmdVt4CTyJn9g5Z:22 a=EUspDBNiAAAA:8 a=TY8paCK9AY_MSZsb9aIA:9 a=EXS-LbY8YePsIyqnH6vw:22 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.51,FMLib:17.12.100.49 definitions=2026-03-09_05,2026-03-09_02,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 impostorscore=0 bulkscore=0 lowpriorityscore=0 adultscore=0 suspectscore=0 spamscore=0 priorityscore=1501 malwarescore=0 clxscore=1015 phishscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2602130000 definitions=main-2603090182 Content-Type: text/plain; charset="utf-8" EUD functions by presenting itself as a USB device to the host PC for debugging, making it incompatible with USB host mode configurations. Handle below two scenarios to prevent these conflicts: 1. Prevent user from enabling EUD via sysfs when the USB port is in host mode. 2. Automatically disable EUD when USB port switches to host mode and re-enable it when exiting host mode. This is achieved via the exported qcom_eud_usb_role_notify() API that allows the USB controller driver to notify EUD of role changes. This ensures consistent state management without creating conflicts between the EUD debug hub and the USB controller. Signed-off-by: Elson Serrao --- drivers/usb/misc/qcom_eud.c | 110 ++++++++++++++++++++++++++++++++++- include/linux/usb/qcom_eud.h | 21 +++++++ 2 files changed, 130 insertions(+), 1 deletion(-) create mode 100644 include/linux/usb/qcom_eud.h diff --git a/drivers/usb/misc/qcom_eud.c b/drivers/usb/misc/qcom_eud.c index 3a71a0d27b5e..e01605e1dac8 100644 --- a/drivers/usb/misc/qcom_eud.c +++ b/drivers/usb/misc/qcom_eud.c @@ -12,11 +12,13 @@ #include #include #include +#include #include #include #include #include #include +#include #include =20 #define EUD_REG_INT1_EN_MASK 0x0024 @@ -42,11 +44,14 @@ struct eud_chip { struct phy *phy[EUD_MAX_PORTS]; void __iomem *base; phys_addr_t mode_mgr; + /* serializes EUD control operations */ + struct mutex state_lock; unsigned int int_status; int irq; bool enabled; bool usb_attached; bool phy_enabled; + bool eud_disabled_for_host; u8 port_idx; }; =20 @@ -142,17 +147,43 @@ static ssize_t enable_store(struct device *dev, const char *buf, size_t count) { struct eud_chip *chip =3D dev_get_drvdata(dev); + enum usb_role role; bool enable; int ret; =20 if (kstrtobool(buf, &enable)) return -EINVAL; =20 + guard(mutex)(&chip->state_lock); + /* Skip operation if already in desired state */ if (chip->enabled =3D=3D enable) return count; =20 + /* + * Handle double-disable scenario: User is disabling EUD that was already + * disabled due to host mode. Since the hardware is already disabled, we + * only need to clear the host-disabled flag to prevent unwanted re-enabl= ing + * when exiting host mode. This respects the user's explicit disable requ= est. + */ + if (!enable && chip->eud_disabled_for_host) { + chip->eud_disabled_for_host =3D false; + chip->enabled =3D false; + return count; + } + if (enable) { + /* + * EUD functions by presenting itself as a USB device to the host PC for + * debugging, making it incompatible with USB host mode configuration. + * Prevent enabling EUD in this configuration to avoid hardware conflict= s. + */ + role =3D usb_role_switch_get_role(chip->role_sw[chip->port_idx]); + if (role =3D=3D USB_ROLE_HOST) { + dev_err(chip->dev, "Cannot enable EUD: USB port is in host mode\n"); + return -EBUSY; + } + ret =3D enable_eud(chip); if (ret) { dev_err(chip->dev, "failed to enable eud\n"); @@ -353,6 +384,75 @@ static int eud_parse_dt_port(struct eud_chip *chip, u8= port_id) return 0; } =20 +/** + * qcom_eud_usb_role_notify - Notify EUD of USB role change + * @eud_node: Device node of the EUD device + * @phy: HSUSB PHY of the port changing role + * @role: New role being set + * + * Notifies EUD that a USB port is changing roles. EUD will disable itself + * if the port is switching to HOST mode, as EUD is incompatible with host + * mode operation. This API should be called by the USB controller driver + * when it switches the USB role. + * + * The PHY parameter is used to identify which physical USB port is changi= ng + * roles. This is important in multi-port systems where EUD may be active = on + * one port while another port changes roles. + * + * This is a best-effort notification - failures are logged but do not aff= ect + * the role change operation. + */ +void qcom_eud_usb_role_notify(struct device_node *eud_node, struct phy *ph= y, + enum usb_role role) +{ + struct platform_device *pdev; + struct eud_chip *chip; + int ret; + + if (!of_device_is_compatible(eud_node, "qcom,eud")) + return; + + pdev =3D of_find_device_by_node(eud_node); + if (!pdev) + return; + + chip =3D platform_get_drvdata(pdev); + if (!chip) + goto put_dev; + + mutex_lock(&chip->state_lock); + + /* Only act if this notification is for the currently active EUD port */ + if (!chip->enabled || chip->phy[chip->port_idx] !=3D phy) { + mutex_unlock(&chip->state_lock); + goto put_dev; + } + + /* + * chip->enabled preserves user's sysfs configuration and is not modified + * during host mode transitions to preserve user intent. + */ + if (role =3D=3D USB_ROLE_HOST && !chip->eud_disabled_for_host) { + ret =3D disable_eud(chip); + if (ret) + dev_err(chip->dev, "Failed to disable EUD for host mode: %d\n", ret); + else + chip->eud_disabled_for_host =3D true; + } else if (role !=3D USB_ROLE_HOST && chip->eud_disabled_for_host) { + ret =3D enable_eud(chip); + if (ret) + dev_err(chip->dev, "Failed to re-enable EUD after host mode: %d\n", ret= ); + else + chip->eud_disabled_for_host =3D false; + } + + mutex_unlock(&chip->state_lock); + +put_dev: + platform_device_put(pdev); +} +EXPORT_SYMBOL_GPL(qcom_eud_usb_role_notify); + static void eud_role_switch_release(void *data) { struct eud_chip *chip =3D data; @@ -374,6 +474,8 @@ static int eud_probe(struct platform_device *pdev) =20 chip->dev =3D &pdev->dev; =20 + mutex_init(&chip->state_lock); + /* * Parse the DT resources for primary port. * This is the default EUD port and is mandatory. @@ -418,8 +520,14 @@ static void eud_remove(struct platform_device *pdev) { struct eud_chip *chip =3D platform_get_drvdata(pdev); =20 - if (chip->enabled) + platform_set_drvdata(pdev, NULL); + + mutex_lock(&chip->state_lock); + if (chip->enabled) { disable_eud(chip); + chip->enabled =3D false; + } + mutex_unlock(&chip->state_lock); =20 device_init_wakeup(&pdev->dev, false); disable_irq_wake(chip->irq); diff --git a/include/linux/usb/qcom_eud.h b/include/linux/usb/qcom_eud.h new file mode 100644 index 000000000000..57e86056303c --- /dev/null +++ b/include/linux/usb/qcom_eud.h @@ -0,0 +1,21 @@ +/* SPDX-License-Identifier: GPL-2.0 */ +/* + * Copyright (c) Qualcomm Technologies, Inc. and/or its subsidiaries. + */ + +#ifndef __LINUX_USB_QCOM_EUD_H +#define __LINUX_USB_QCOM_EUD_H + +#include + +#if IS_ENABLED(CONFIG_USB_QCOM_EUD) +void qcom_eud_usb_role_notify(struct device_node *eud_node, struct phy *ph= y, + enum usb_role role); +#else +static inline void qcom_eud_usb_role_notify(struct device_node *eud_node, = struct phy *phy, + enum usb_role role) +{ +} +#endif + +#endif /* __LINUX_USB_QCOM_EUD_H */ --=20 2.34.1 From nobody Fri Apr 3 04:41:06 2026 Received: from mx0a-0031df01.pphosted.com (mx0a-0031df01.pphosted.com [205.220.168.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 623B536D4E6 for ; Mon, 9 Mar 2026 20:33:51 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=205.220.168.131 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1773088435; cv=none; b=VunN7EGPq9ae+pxhnixKfCFSxVNfn81up0THN2RoY71vMOgs+23X8FwaP0Fkg6UaENPFJtU9nwjqpVJmuEGEpvMp1Ao/oj1BaLPBPJsXJCrPnLgbni5x20ghDdeSxZQ3CE1ELbiYgFvCyIEjUplwgq+detwWeLExzGcf52LT/Nw= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1773088435; c=relaxed/simple; bh=hBRDrGzZyzQbp0j3/9wGZbipBYnsHW9DmPOsNcq9U+E=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=Rn9QHJ4la/KecNAh19S4pl1kjlynyuJe1RWKtF6Y/lXhG6iogmHPj/RiqloEfkP28N565lHqyc4WfQP7p8o8W/UExmqVtld7hlJ8uey8wL6KnpQXi1d+tApd+EHJxTyEYVaNipclfDDfMuhatxf5YmXuBfFOC8+kPRE5koatmXI= 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=l+K3cJ8C; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=MJ+toy+Y; arc=none smtp.client-ip=205.220.168.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="l+K3cJ8C"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="MJ+toy+Y" Received: from pps.filterd (m0279863.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 629HBsZh1298074 for ; Mon, 9 Mar 2026 20:33:51 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=m0r0f2DWKHm 8QlM7U3TX0AkmaU2aSB7RsqthJ3TDCeI=; b=l+K3cJ8Ch3Dz53H6KR3LliIDqTN eFWdjHWJpglzmHPhtOetJznivFa88hupgxeKWJNS/b1GaiTNsU61kHmbRTZ7Ok/S 0s0Y4qihHhb/7OsJkpeMVD441Fc0RXVuX52e1OHlAS9WIyXYuA7w+GfdjZNqqgQM zTuGwlPQLAVY2/OYOKg9EAd0/tU3t+xpV8+VHY+yTn4x6vAc1+YEf7PXLyKpOEyQ LJagbzQpRqjSdM/RuW/ecsiT0x/ThgNNATqTI0VDKjI5A/orx3pZSnuwCznYzcVF m67DVmDVpTq1bJDnno6jNnT2eF1FUf7sSiC3o47KEwjOaYm7YekgF3IgUbw== Received: from mail-ot1-f69.google.com (mail-ot1-f69.google.com [209.85.210.69]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4csyv19afq-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Mon, 09 Mar 2026 20:33:50 +0000 (GMT) Received: by mail-ot1-f69.google.com with SMTP id 46e09a7af769-7d742da766aso7253868a34.2 for ; Mon, 09 Mar 2026 13:33:50 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1773088430; x=1773693230; 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; bh=m0r0f2DWKHm8QlM7U3TX0AkmaU2aSB7RsqthJ3TDCeI=; b=MJ+toy+Yhy0FOsHEvHFNrKwVWvedyICxzwcc4X8UxeO8a+VXi6cRkauviuO2TeVZzi Uj7GHJCpf72l3VzaYjtfyI+7yS0Qp5BIhR396rWTte8n2st7ihrhYMDQ9eQXnWrE+wOO 0dlVrds97+rL3uOBOO9Yw6HEAo+D3Uh1OwvAzr455oa0XcBfumgerGlMQbTUWYJFYOn+ Tvz3lKK86nnYv/VDwhGoVnlCnD6LbUAHiE2jhUQngf/mHuNdj7lQDVQha+yck3f0uJ/g yLrfa0PM0ZyTSPn19uAf5q6RfD3i/XSNEJyIuOS9TQZcksjC15MVE9AqN1OhZ3rSC0Vn 5EQg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1773088430; x=1773693230; 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; bh=m0r0f2DWKHm8QlM7U3TX0AkmaU2aSB7RsqthJ3TDCeI=; b=kWzV/xKH1r2K9OMfomeaJXkmlilOiMJnJ1BaPuFYZIq+AKcFbu2eIGvl8l4WVq7T4l QiZIf2X3nEgk/EivgyZa73hh1WG0IbnYr+je3quTvxwQUK3itiEgxMqA49TrNPayTjL/ iU5IOukvOeiGNF57Jy2t3dvUL9GeuGGepE0DZyz33muVSgoLDNB7+tVJ49F/7uPuTmQ7 13P1xYZoJu2YhBGafwxEXI4rf/DvGt7UYIQDspnU5N3NqK5CLLbhhsmZFZKimCIN7/pv HnEJicpZmJuQu7kF9mEmJtCrLRmYr+xN9U0LVQR/BJiMgucPD4RmCBrw6wwbD6wVjnnS dSfQ== X-Forwarded-Encrypted: i=1; AJvYcCV/+w+7E4exInnR2Z4B0DMV3pmOYBV9BWOH+059tpcrMz1ldIYMWTQW8vkf5VyhRx+6ZtQQADln0R3t/L4=@vger.kernel.org X-Gm-Message-State: AOJu0YyKkHlmLe4GD8dXKxHeyEPuJLK0aTP51xTo2JjYXKCAT5G2vEEj HE/bIHiKV3NR/kz9ACMYaq3Oqq/2XuWcyQKBxkzvPyZGdqnnLpDL3RihSBZdxuUP0uBBgDk838e jj5+oc+6Uocspa+XTwkz+AdDhJ6YdgLi8UB7Leii2mAwy3wltrJOBPaKpEOwg+HW3SVo= X-Gm-Gg: ATEYQzwcU6Djsb/AvsraFzUQtCUKS+1IU6FY+vXmFJ8dcRbeaICrSZtqzxCoFMeiGUS fzCV8/V+stZxNQh4GVHRcDur+97gHC7r2y1trthnWaidkdm82UXC6IWUXBTca5+bE45iaQn137J 1cu0LdojUpIhW6uvGq+6at6I1tR7vH0KZyeuKvSMjcPBXhEqahlxtwYJVlmKms/fLOEhDDB+YaD fmf0xEOUuSXP1NRUyVeCyUnFL8LfRYoDk/us8GLk7+9Ohe0jojJ/1DO/CejW2ypdZjTA6Wo6vsn t1QAGpY9C/KPu/2bYAeD8UuKvOe3uMGc9hg2jv/fAXzZrdcdQCpxztct+B10E/A8sy38CtyBlh7 Q399mXHzf/Ms9q2kgeVjIIEBlcqoLQhkZO8OwL4CJ2MEVJj1Uga9BR1ALCOVgp0Wlkulf31axdP o= X-Received: by 2002:a05:6830:67f5:b0:7d7:5113:f83a with SMTP id 46e09a7af769-7d751142e6fmr1974643a34.25.1773088429987; Mon, 09 Mar 2026 13:33:49 -0700 (PDT) X-Received: by 2002:a05:6830:67f5:b0:7d7:5113:f83a with SMTP id 46e09a7af769-7d751142e6fmr1974620a34.25.1773088429634; Mon, 09 Mar 2026 13:33:49 -0700 (PDT) Received: from hu-eserrao-lv.qualcomm.com (Global_NAT1.qualcomm.com. [129.46.96.20]) by smtp.gmail.com with ESMTPSA id 46e09a7af769-7d74885b5a4sm3036494a34.23.2026.03.09.13.33.48 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 09 Mar 2026 13:33:48 -0700 (PDT) From: Elson Serrao To: Greg Kroah-Hartman , Bjorn Andersson , Konrad Dybcio , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Souradeep Chowdhury Cc: linux-arm-msm@vger.kernel.org, devicetree@vger.kernel.org, linux-usb@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH RFC v3 08/10] usb: dwc3: qcom: notify EUD driver of role changes Date: Mon, 9 Mar 2026 13:33:35 -0700 Message-Id: <20260309203337.803986-9-elson.serrao@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260309203337.803986-1-elson.serrao@oss.qualcomm.com> References: <20260309203337.803986-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: quoted-printable X-Proofpoint-GUID: 4TwAxleJueJo0JI_AMCvN5vD8Z3zyhb4 X-Proofpoint-ORIG-GUID: 4TwAxleJueJo0JI_AMCvN5vD8Z3zyhb4 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwMzA5MDE4MiBTYWx0ZWRfX0PkG5QVTQAsw qQtUs4nEj6Ai/sIb+f5cGKdGl5gF7xCK5xt5RYKLbOd2CnS1uuadq9f+ZGCvep103BLQ1XJDW0l IBbicBcLFkwCshmgRI9294eCs9AWi9FfKtJ0hbw+tbBqcVNTtJIWusTyxgnoa7IinfWXCgmMYRO voij0VN1z1ISmm9b3KGWqE2fh0qbh3vDuF5vSfxriJZhFTTNGiT8OK83CMwSUHhV8v/HVFtaD6Q 46h881nCA3OAIxuTmis0RWgFljoqO1Yt4GbQ1KeLzlwl5Q++tarA677R090XO02NP+PJpJwbgTP 11tSXUtoGoSEsmWGtXKStQnzLDzG8DFZt/E6IjQflz85zHwjAKe4PhPgBGYZHV+rAFG2Hje6h9Y SAFXm8euk8sjSmYMbTI38Fdu2QaqLti+fubIiUILNb3BXHlpGZzD2yJuEVpdiltxvUTu3sCeUj1 +ieBafnNKITVmItTC8w== X-Authority-Analysis: v=2.4 cv=Cuays34D c=1 sm=1 tr=0 ts=69af2eae cx=c_pps a=z9lCQkyTxNhZyzAvolXo/A==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=Yq5XynenixoA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=yOCtJkima9RkubShWh1s:22 a=EUspDBNiAAAA:8 a=D7RZ5MMOI3w-WYzWcLoA:9 a=EyFUmsFV_t8cxB2kMr4A:22 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.51,FMLib:17.12.100.49 definitions=2026-03-09_05,2026-03-09_02,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 malwarescore=0 clxscore=1015 spamscore=0 adultscore=0 priorityscore=1501 phishscore=0 suspectscore=0 lowpriorityscore=0 bulkscore=0 impostorscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2602130000 definitions=main-2603090182 Content-Type: text/plain; charset="utf-8" The EUD driver needs USB role information to control its operation as it is incompatible with host mode. Notify the EUD driver when role changes occur so it can manage its state accordingly. Signed-off-by: Elson Serrao --- drivers/usb/dwc3/Kconfig | 1 + drivers/usb/dwc3/dwc3-qcom.c | 10 ++++++++++ 2 files changed, 11 insertions(+) diff --git a/drivers/usb/dwc3/Kconfig b/drivers/usb/dwc3/Kconfig index 240b15bc52cb..1a2d7c883b50 100644 --- a/drivers/usb/dwc3/Kconfig +++ b/drivers/usb/dwc3/Kconfig @@ -132,6 +132,7 @@ config USB_DWC3_QCOM depends on ARCH_QCOM || COMPILE_TEST depends on EXTCON || !EXTCON depends on OF + depends on USB_QCOM_EUD || !USB_QCOM_EUD default USB_DWC3 help Some Qualcomm SoCs use DesignWare Core IP for USB2/3 diff --git a/drivers/usb/dwc3/dwc3-qcom.c b/drivers/usb/dwc3/dwc3-qcom.c index 9ac75547820d..b51fd97521df 100644 --- a/drivers/usb/dwc3/dwc3-qcom.c +++ b/drivers/usb/dwc3/dwc3-qcom.c @@ -9,6 +9,7 @@ #include #include #include +#include #include #include #include @@ -19,6 +20,7 @@ #include #include #include +#include #include "core.h" #include "glue.h" =20 @@ -561,6 +563,7 @@ static int dwc3_qcom_setup_irq(struct dwc3_qcom *qcom, = struct platform_device *p static void dwc3_qcom_set_role_notifier(struct dwc3 *dwc, enum usb_role ne= xt_role) { struct dwc3_qcom *qcom =3D to_dwc3_qcom(dwc); + struct device_node *eud_node; =20 if (qcom->current_role =3D=3D next_role) return; @@ -570,6 +573,13 @@ static void dwc3_qcom_set_role_notifier(struct dwc3 *d= wc, enum usb_role next_rol return; } =20 + /* Notify EUD of role change */ + eud_node =3D of_graph_get_remote_node(qcom->dev->of_node, 0, -1); + if (eud_node) { + qcom_eud_usb_role_notify(eud_node, dwc->usb2_generic_phy[0], next_role); + of_node_put(eud_node); + } + if (qcom->current_role =3D=3D USB_ROLE_DEVICE) dwc3_qcom_vbus_override_enable(qcom, false); else if (qcom->current_role !=3D USB_ROLE_DEVICE) --=20 2.34.1 From nobody Fri Apr 3 04:41:06 2026 Received: from mx0a-0031df01.pphosted.com (mx0a-0031df01.pphosted.com [205.220.168.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 9FAAD410D24 for ; Mon, 9 Mar 2026 20:33:52 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=205.220.168.131 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1773088435; cv=none; b=kpofwF+ts9VPPNQepZeMOC4xBmKvb16lLDVzCPXTPC/pGOFoD6NXji6Cqp0g7isxeFN3gsNtGIMyfGhfn5DhPt9J2FjtFygnR7OP9oTEC6zc1kmMt4wrIbbmAfcm7nYlJ4hXqB0jr+mSbouW98y3our+10XP19Aq1aMpmARDKPM= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1773088435; c=relaxed/simple; bh=0VJZGhuJkCUeAQcIHJgXxy7OZKjeOwICNMRpVoee1d0=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=n9P1FlOt9+clhl9brRv+Rr+hVb+dZBLGHKEN/7rKBhzF6CbZEB2sBk2hetcHhuyqhsZn0LZ+J5gazQvmosI28Cq7/QzTei6Fze/gbbBQfY73qDLVK0LUkfi/HGItLXBF+JydM0xrBGe8nkNv+6FNgY0cFSXFaXEEVF3Q5WeTqU4= 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=YbsU/+qv; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=hRvxRUr7; arc=none smtp.client-ip=205.220.168.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="YbsU/+qv"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="hRvxRUr7" Received: from pps.filterd (m0279866.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 629HBlU2296216 for ; Mon, 9 Mar 2026 20:33:52 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=kDE0gB5xYQL YngO7rvczlFLJwy5YaiWj5eLZwnq0DQk=; b=YbsU/+qvILRwve8u8+iW0soNsTR Egm1dx1k5gCuLiNfIu8N8Qgow+EZIkLhf4icvrtjGPAmDQHG1IEbg4QqYbBREO3s mqKz6iyUFr1P78sKLbYgKimQMGD9a7OBd7+8WxbGAyOHRZmqe8ouOGA810JsFetm QT/TE6Q1udq4TLUP3YPMZl3xKcKHQvTq7IQlehwQklb//vutVoNs0NT3KCg9WCVe dKph9LzP0AGECqxh3ieNBHL+UMoVGp7ngu7HBZ9k9FpmQF55XmIt9sUdojucPpaF 80kpy5AN9tzGfOex9qAQO6ncIkzltI1Nji8Tdw/hGnm6Vbwnz7Z00RHzGmg== Received: from mail-ot1-f71.google.com (mail-ot1-f71.google.com [209.85.210.71]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4csyfy1de1-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Mon, 09 Mar 2026 20:33:51 +0000 (GMT) Received: by mail-ot1-f71.google.com with SMTP id 46e09a7af769-7d742da766aso7253951a34.2 for ; Mon, 09 Mar 2026 13:33:51 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1773088431; x=1773693231; 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; bh=kDE0gB5xYQLYngO7rvczlFLJwy5YaiWj5eLZwnq0DQk=; b=hRvxRUr7NQdTYX6f/xSAzQcfMCqGxnHVXCacFYUF8nAohINORgp0Yiy+1EP8rcjkXv 287ijsT5dHuCnEheP8omNqkCZsyJUItN0M0U06vkXoioozZE/DYjZd3kRaSvP8HWJHGS eKZQXjFWp7oGGDPCYwOKeivH/yJiz6K+DZTqTyFNGrwoVUtqFi8+E+RoxZoigkAb4w4a AoczxnxciTnSIeLYZ+W4mmgAB9D9Q/CXIZ4IvjXsRZjJMsfhZ7qTKXs4Z97KqzgE/3f+ Lw1V0q/iq1mcW7LT3IvRGyOL8+7IKfnmudisTS30f1HM5xyw+Xv8NiZGmOJG/FUQSlZn q4Qw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1773088431; x=1773693231; 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; bh=kDE0gB5xYQLYngO7rvczlFLJwy5YaiWj5eLZwnq0DQk=; b=dy3uxSp0IL5wLO/P/SlMsfZjm0F6hpstyXzukcFS1RdUFqfd27hUtzWCRtC1C0FYf9 OiA4vyVCbIlMd8pGlygWSd4B84ouCFEffbfN3xa34veLmKEuTcGB4sg5P2a8rOiM0zsB /c6aNkGO36qLFXBRgBqKiD58xJ1pIOl1Xn6/fGBdScEqO9UhoL25D2MZ19VoWPL/bmYy Xsn0YOP3ZhfDWIFcXAYkf2Xa86t/XgEYZi3kLEMPZlFJ2lxm1N6FznkBax0ZIBDrFRtT t2/ASClqdJp6wdN1XWfnvYcTApVlwmbjh38adIvLLrGcNAhfp88nXnmLyXnWjIdo5GyP zwvg== X-Forwarded-Encrypted: i=1; AJvYcCWcONK1yb1eTDQ2GL3R5XRPl8FFYg3wL3fnrOw2fg2TKZR1wbjsbRpH5HgTI/mCw76fiau64Zixx6PMJHA=@vger.kernel.org X-Gm-Message-State: AOJu0Yxjz21jErM9su8l3kQTb3kYgvZNJ5B30jPnQUtBYNg1Ev6JXOxn liL+cukeO9F0itsPiDD6iuWJIk0NQR0V9pr+LtYh87W/eJKTwKTR867g1QEnihNC2nYIjDT2Qiz et22dy3+mQSff9pMyac+931MjZ79A6i2BEf8GyKDZQXA6XqvGDbFuWeP/McMJ04sSa/k= X-Gm-Gg: ATEYQzxTFACEesgVkHW0b6U6JfLUZvQSOKzDr2MFgQFDKAllFdkq3V6JwEYCo+HRONq lak7VR+xwkK6z7MsKJlbOYWu0sIgHJ2XypVpgrSTzo53mIx9+7Ofcxj9nQ4VM872XzHjlhBpksK wVoImjRI5IM8mLTf1lro8QObK3xvJDh4NQ5LMzpJrU+EIupM82lkyUQNvSbJOQLFXvaLpIyJ8EB njN8lOhQ8LErCqDruMGbot51u6g42g2QjElKA643J0G28xETRHTTnqdvXWMElq4EwkBsDNT2C/q wyEEVIQEU/we6L64LZZg4JJcfc1GGhB/UssCQ2N35VG5NjlYH/b66L17rqysU2aZRR0piduaSsP lxbsazz+ky1OlFpB+oGMkviV0FhqAFVzbgteJoVpsCFSXfPYOPXzBX+f0NoJfePt6knVo38wFw2 E= X-Received: by 2002:a05:6830:6185:b0:7d5:17fb:6af6 with SMTP id 46e09a7af769-7d726e754femr7914802a34.2.1773088431235; Mon, 09 Mar 2026 13:33:51 -0700 (PDT) X-Received: by 2002:a05:6830:6185:b0:7d5:17fb:6af6 with SMTP id 46e09a7af769-7d726e754femr7914783a34.2.1773088430855; Mon, 09 Mar 2026 13:33:50 -0700 (PDT) Received: from hu-eserrao-lv.qualcomm.com (Global_NAT1.qualcomm.com. [129.46.96.20]) by smtp.gmail.com with ESMTPSA id 46e09a7af769-7d74885b5a4sm3036494a34.23.2026.03.09.13.33.49 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 09 Mar 2026 13:33:50 -0700 (PDT) From: Elson Serrao To: Greg Kroah-Hartman , Bjorn Andersson , Konrad Dybcio , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Souradeep Chowdhury Cc: linux-arm-msm@vger.kernel.org, devicetree@vger.kernel.org, linux-usb@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH RFC v3 09/10] arm64: dts: qcom: kodiak: Fix EUD USB controller connection Date: Mon, 9 Mar 2026 13:33:36 -0700 Message-Id: <20260309203337.803986-10-elson.serrao@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260309203337.803986-1-elson.serrao@oss.qualcomm.com> References: <20260309203337.803986-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: quoted-printable X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwMzA5MDE4MiBTYWx0ZWRfX0q9xiVhXDPYz M4naRSM8lisFhqqI78yaJdgVlSW1earU5/0QXneW7is6Wa5vEGp9/IIa7/RMBuTwKlrZlicAd3c nF8yuB1wiIZNBiRmWXg1vB0vzk9WyJreqQYoNI5HiU42a/r5F++pkTnUmc8bNoC8ttF1jplzW92 zGi0v25hFv1qJOmg+5nyyaoVwcaTB4mtNc85MAgmbs1P1CcZrBQrYEp6iSW9FpxSGC9FuohNkhZ nONIFWu3taUGPv6JEcJiv0Y7gFr3Wc9kCx79JzKGd8lc8tvSYHr7SdLsE2GUXyRK6bE045T3XPN IdNubbDMcZ8QG49eImxTpXJFhWBs56AJKgZmyjf9Zdkm1oiJ5wb7+noATs1XsUdSIdrfJJlBXpt zwojM4cfgrzPdST4lgSpl4n3/VFH/a1WQM0q47budojQDgiV2Zx8NHcRBKnxvAiDFcdWVUjAqOf e9Rpahyy4yUtCjvt6qA== X-Authority-Analysis: v=2.4 cv=OcmVzxTY c=1 sm=1 tr=0 ts=69af2eb0 cx=c_pps a=OI0sxtj7PyCX9F1bxD/puw==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=Yq5XynenixoA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=YMgV9FUhrdKAYTUUvYB2:22 a=EUspDBNiAAAA:8 a=BgTZCx5PUbG0OLn4eFUA:9 a=Z1Yy7GAxqfX1iEi80vsk:22 X-Proofpoint-GUID: NqyDv0S-E8lAi6Yl8BWdvbg5UbgKme2r X-Proofpoint-ORIG-GUID: NqyDv0S-E8lAi6Yl8BWdvbg5UbgKme2r X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.51,FMLib:17.12.100.49 definitions=2026-03-09_05,2026-03-09_02,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 impostorscore=0 malwarescore=0 phishscore=0 clxscore=1015 adultscore=0 bulkscore=0 suspectscore=0 priorityscore=1501 lowpriorityscore=0 spamscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2602130000 definitions=main-2603090182 Content-Type: text/plain; charset="utf-8" The EUD node is currently mapped to the secondary USB controller. This SoC only supports EUD on the primary High-Speed USB path. Fix the graph connections to properly map EUD to the primary USB controller. Add an empty connector endpoint for board DTS files to complete the connection. Also enable EUD so debug is available by default on this SoC. Signed-off-by: Elson Serrao --- arch/arm64/boot/dts/qcom/kodiak.dtsi | 19 ++++++++++--------- 1 file changed, 10 insertions(+), 9 deletions(-) diff --git a/arch/arm64/boot/dts/qcom/kodiak.dtsi b/arch/arm64/boot/dts/qco= m/kodiak.dtsi index 6079e67ea829..24483ff2d5ce 100644 --- a/arch/arm64/boot/dts/qcom/kodiak.dtsi +++ b/arch/arm64/boot/dts/qcom/kodiak.dtsi @@ -4294,12 +4294,6 @@ usb_2: usb@8c00000 { phy-names =3D "usb2-phy"; maximum-speed =3D "high-speed"; usb-role-switch; - - port { - usb2_role_switch: endpoint { - remote-endpoint =3D <&eud_ep>; - }; - }; }; =20 qspi: spi@88dc000 { @@ -4623,16 +4617,22 @@ eud: eud@88e0000 { <0 0x88e2000 0 0x1000>; interrupts-extended =3D <&pdc 11 IRQ_TYPE_LEVEL_HIGH>; =20 - status =3D "disabled"; - ports { #address-cells =3D <1>; #size-cells =3D <0>; =20 port@0 { reg =3D <0>; + eud_ep: endpoint { - remote-endpoint =3D <&usb2_role_switch>; + remote-endpoint =3D <&usb_1_dwc3_hs>; + }; + }; + + port@1 { + reg =3D <1>; + + eud_con: endpoint { }; }; }; @@ -4858,6 +4858,7 @@ port@0 { reg =3D <0>; =20 usb_1_dwc3_hs: endpoint { + remote-endpoint =3D <&eud_ep>; }; }; =20 --=20 2.34.1 From nobody Fri Apr 3 04:41:06 2026 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 7010E421A1C for ; Mon, 9 Mar 2026 20:33:54 +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=1773088436; cv=none; b=aSZM1MQFmMxV8aIEhrIGjEUMVPa3o/b3+ANzAKGhgPdAWc/sXgcJXb+WGMymsweUsHnBTA4X66kFpc6GnIqU2mvnepn1uk7Xkipp0GzJprHxDne4ebQTunYCudwmBzhPA0JrqkgI4PakWr2x6SV1qcRRIkrrNQhoiATj24PaJgY= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1773088436; c=relaxed/simple; bh=72e0odVrIypjYR4ieuCMj9dOvSQ7+aSIR3Eg3bckx20=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=kI9MlH2KksErGhtUo81kX8ZTG0wp5GjSzVqCIhN4u81YMIrvlewbSNwZx9lw6Ic7TxALUIw/j3Uv8CRI3DV3c67RTEhUYKsdM8A89H7cZlgDSLitrkkPQHFPcYq5Wlvz/vCtcipfNL3UzvRekqAzqCE09J0PaAhp3Pvz5VPsZVE= 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=NRuhVHHO; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=eO38a0Mx; 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="NRuhVHHO"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="eO38a0Mx" Received: from pps.filterd (m0279868.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 629HC0DE744386 for ; Mon, 9 Mar 2026 20:33:53 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=KQayAJr7e80 Xbo/ao7ZL1zptdQcZkdn0wbNdIDaamnc=; b=NRuhVHHOTo7H0/6cCUDoii8+gAD FYopBP4tY84Xn5h11Zvy6ugSafyhDkolIrOG3FUMdy1EiteAFOppO92xcnBqxuuW nFYC0wgQSj+jgWd62t1+1e719Yj6+wvSyT4a5X2yj+FbuJHkgT97BhxBNfb4/fde lRCu/OnZnUiI1GpIbBebivFZo8mYZgvnimXsF/FN4apUA+8xakBxaUZf/3aQPZDh j7eFEfk1DDA9K6DcVMraGaxNVq4r5u46/C45h2vJOC+YQBI8b+HEan7ETJReIwfS PetEGNoI5LyzC7bxTqGJ43M5NE7weSQzDIPkEeLRGRoOracnnnYD0vFxRxA== Received: from mail-ot1-f71.google.com (mail-ot1-f71.google.com [209.85.210.71]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4cstsaad4u-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Mon, 09 Mar 2026 20:33:53 +0000 (GMT) Received: by mail-ot1-f71.google.com with SMTP id 46e09a7af769-7d7400fd1f9so15234273a34.2 for ; Mon, 09 Mar 2026 13:33:53 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1773088433; x=1773693233; 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; bh=KQayAJr7e80Xbo/ao7ZL1zptdQcZkdn0wbNdIDaamnc=; b=eO38a0MxVfQsum+lFRd/T5N4qcmEx6g9TTK82Xn2ZG1PUOVpXgaSvop9mcqr1/E4PC lKAXrNdie9Q7xFITDQDZ1FFp8YNZY+8n2wyQdWxVtqr+eBJ6F+sG1DD/3LEp4+VevnhS OuGN70yNBhF5XQ3haG/C3BivYIDOB/M3NwYFqyRnZVxhOqr82ALakmF+L0kMXa8mlTHs raAIViagX+TUnNQpHb7CW97XyRQYx+iG8pv5grJ1paUcsR0xiZ6HYI5j3v/8WudoWBSD v5KC9hK9inmVd3/4zbrTYjm2DThG+2cKt9RUpzcSfNBGnCZ2SXIX4uTKfdsZxqJFFZA3 y0Yw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1773088433; x=1773693233; 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; bh=KQayAJr7e80Xbo/ao7ZL1zptdQcZkdn0wbNdIDaamnc=; b=LstRhiC728B4PaRL3sv93fOFibgpLM9nvayob819NGwjFpyAwS0GuDW9qW1yWIt/eJ h5KqTr60n65s/ZNF49ri0S1AccrYBopF7/YfOr+EQG+NfnvMXRpXzTeJUMSud9tS7Uxt Wt9tOmLiDrYuYmjNRIlJwrqt6kyON1AYfLd/X3I+0YQtcCy8IkBtFWbjgyAMH82vUMXw Buxujm5a207J9yuwla4FNi6Ofv/iGYN/rMJxYpsLFXBal3kiYP1rqZMLAYJF1L6ffzlK /3HEu6H+F24+ZzYxIBSWnV2loRsQTfHUt3iso3vA4pTBt27eMm7WHLCNF6L67WEuMNi8 HOlQ== X-Forwarded-Encrypted: i=1; AJvYcCVcL7u1lX7W6jw9hwTIWnSg8zagAeJhY1uVew4HNiKhYOoO8vI3/bisYMHVo9vqkylSq89lzaXalrNlAuQ=@vger.kernel.org X-Gm-Message-State: AOJu0YzAi2fx79N4BtJmbdVKuFTImR3egwCQbcflFNsBaExFcRe5QNLP qdQFGFiml8No817LVJ/RvtcY5j0HUv8Lm422iPc9K0q66Kvg1M3gyCpGwohdZzjD+XX2TlyDG1p GV4FSVgOk9eQ9BBFUDTMv8VpZJjyDFKMTMyVdaamxGy0J0r3rNXsDbfAfMBj+HJ4zouA= X-Gm-Gg: ATEYQzzBYXKsjIIgI93I4TBTJKTEObbmuYy1MDFIaBtoJ/5/rRhZEEpu2eqZWh2R9Jc /JAdjxzc3v9X/WWDAkh/IInB4HiWwLpofL28bCP+eGEPspYCZEFiEsOmfKBtW5rIsFp6qWILR3F Mus9dV96cu9M2kzKWM1PNBCoMUDJ6BTiFNDvCi5oAli22ZsrLa5fIevJXMuw1RF7mxrNOjs5Zjf d7d+bgyjGSDvjBv05u6m/XWaWdtVY6yOamIJD9+WMkJ6apPvGyYaRqUhzR4s6lSL29l+rNaDnK7 XTI1FA1dU+qx2YtsvsR+icMSyW7EFKMiJi8QYRH5xOstDGGO5VhMYsLHbjYkBCwIazhsUYeyVJo mZVw2jJgCrlrBEqGBy4+3d/REN9hao+eJfSdpX6Mp0HYFvj5WGJRtUPbTB9IvtfKT35n1SU9n7J Q= X-Received: by 2002:a05:6830:719c:b0:7d7:496f:c001 with SMTP id 46e09a7af769-7d7496fc174mr4132899a34.29.1773088432545; Mon, 09 Mar 2026 13:33:52 -0700 (PDT) X-Received: by 2002:a05:6830:719c:b0:7d7:496f:c001 with SMTP id 46e09a7af769-7d7496fc174mr4132878a34.29.1773088432112; Mon, 09 Mar 2026 13:33:52 -0700 (PDT) Received: from hu-eserrao-lv.qualcomm.com (Global_NAT1.qualcomm.com. [129.46.96.20]) by smtp.gmail.com with ESMTPSA id 46e09a7af769-7d74885b5a4sm3036494a34.23.2026.03.09.13.33.50 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 09 Mar 2026 13:33:51 -0700 (PDT) From: Elson Serrao To: Greg Kroah-Hartman , Bjorn Andersson , Konrad Dybcio , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Souradeep Chowdhury Cc: linux-arm-msm@vger.kernel.org, devicetree@vger.kernel.org, linux-usb@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH RFC v3 10/10] arm64: dts: qcom: Map USB connector to EUD for kodiak boards Date: Mon, 9 Mar 2026 13:33:37 -0700 Message-Id: <20260309203337.803986-11-elson.serrao@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260309203337.803986-1-elson.serrao@oss.qualcomm.com> References: <20260309203337.803986-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: quoted-printable X-Proofpoint-GUID: FsLmDW1h51N9o-ZwOVrWmiiDZyuZ3kv_ X-Authority-Analysis: v=2.4 cv=I+Vohdgg c=1 sm=1 tr=0 ts=69af2eb1 cx=c_pps a=OI0sxtj7PyCX9F1bxD/puw==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=Yq5XynenixoA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=ZpdpYltYx_vBUK5n70dp:22 a=EUspDBNiAAAA:8 a=a8XcMGiI3xzrQgkoEZ4A:9 a=Z1Yy7GAxqfX1iEi80vsk:22 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwMzA5MDE4MiBTYWx0ZWRfX3iH0ckTZQafd w9lnsbAvhW1WKIgvNPLVJTaoMQN8CtZOzaJS3F1W1EvPsV7/Q0b2EI7Z8d9NtITF0W30HDUEJ1O BPXIOXAgz13Ri3cWcufKXLaPOHjvJBqEARQ6O6nGQuYH5M6c4Cn2gz8j/kU/Jb9n10ZORaBZ7CD m3Ste65h2nc2DTfmuZACWbvkGbc3BW2Qu6fiFIdpPnfVHKfNfqFcGxjhus3jgu5CzfPRNQHQc+L 2jtoylilqbo2oJQWSFuuDXCo7nnFTJf4Y/hJBRgyGqz7fHOaBk4z7Fs2k/FiWRUZPkeKtcqcZ5Y Vgl6l5jHcreC3IqorRluwFIGmL0X14lqzecLP7D2KvIErmag0+ZtKwOMljz2pYR3XLjv3QIrFPm fblrVeJ47rnaU9aN+pG+W7jXFt50EKddXp41q1geDQj2TIO5dqCbBNhttNeBeZyVSgUY/m0pXNO yk+Nd/y6iIZOCSRmCsg== X-Proofpoint-ORIG-GUID: FsLmDW1h51N9o-ZwOVrWmiiDZyuZ3kv_ X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.51,FMLib:17.12.100.49 definitions=2026-03-09_05,2026-03-09_02,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 phishscore=0 impostorscore=0 spamscore=0 malwarescore=0 suspectscore=0 bulkscore=0 lowpriorityscore=0 clxscore=1015 priorityscore=1501 adultscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2602130000 definitions=main-2603090182 Content-Type: text/plain; charset="utf-8" Map the USB connector HS endpoint to EUD for debug functionality on all boards using kodiak.dtsi. Since the controller is no longer a direct neighbor of the connector, add usb-role-switch phandle to map the USB role switch provider for this connector. Depends-on: 20260223191042.825136-2-elson.serrao@oss.qualcomm.com Signed-off-by: Elson Serrao --- arch/arm64/boot/dts/qcom/qcm6490-fairphone-fp5.dts | 11 ++++++----- arch/arm64/boot/dts/qcom/qcm6490-particle-tachyon.dts | 11 ++++++----- arch/arm64/boot/dts/qcom/qcm6490-shift-otter.dts | 11 ++++++----- arch/arm64/boot/dts/qcom/qcs6490-rb3gen2.dts | 11 ++++++----- .../boot/dts/qcom/qcs6490-thundercomm-rubikpi3.dts | 11 ++++++----- arch/arm64/boot/dts/qcom/sm7325-nothing-spacewar.dts | 11 ++++++----- 6 files changed, 36 insertions(+), 30 deletions(-) diff --git a/arch/arm64/boot/dts/qcom/qcm6490-fairphone-fp5.dts b/arch/arm6= 4/boot/dts/qcom/qcm6490-fairphone-fp5.dts index 455e5c9bb072..dbd968967dd5 100644 --- a/arch/arm64/boot/dts/qcom/qcm6490-fairphone-fp5.dts +++ b/arch/arm64/boot/dts/qcom/qcm6490-fairphone-fp5.dts @@ -88,6 +88,7 @@ connector@0 { reg =3D <0>; power-role =3D "dual"; data-role =3D "dual"; + usb-role-switch =3D <&usb_1>; =20 ports { #address-cells =3D <1>; @@ -97,7 +98,7 @@ port@0 { reg =3D <0>; =20 pmic_glink_hs_in: endpoint { - remote-endpoint =3D <&usb_1_dwc3_hs>; + remote-endpoint =3D <&eud_con>; }; }; =20 @@ -1433,10 +1434,6 @@ &usb_1 { status =3D "okay"; }; =20 -&usb_1_dwc3_hs { - remote-endpoint =3D <&pmic_glink_hs_in>; -}; - &usb_1_hsphy { vdda-pll-supply =3D <&vreg_l10c>; vdda18-supply =3D <&vreg_l1c>; @@ -1476,3 +1473,7 @@ &wifi { qcom,calibration-variant =3D "Fairphone_5"; status =3D "okay"; }; + +&eud_con { + remote-endpoint =3D <&pmic_glink_hs_in>; +}; diff --git a/arch/arm64/boot/dts/qcom/qcm6490-particle-tachyon.dts b/arch/a= rm64/boot/dts/qcom/qcm6490-particle-tachyon.dts index bf18c4852081..ca9c1a09ca73 100644 --- a/arch/arm64/boot/dts/qcom/qcm6490-particle-tachyon.dts +++ b/arch/arm64/boot/dts/qcom/qcm6490-particle-tachyon.dts @@ -65,6 +65,7 @@ connector@0 { reg =3D <0>; power-role =3D "dual"; data-role =3D "dual"; + usb-role-switch =3D <&usb_1>; =20 ports { #address-cells =3D <1>; @@ -74,7 +75,7 @@ port@0 { reg =3D <0>; =20 pmic_glink_hs_in: endpoint { - remote-endpoint =3D <&usb_1_dwc3_hs>; + remote-endpoint =3D <&eud_con>; }; }; =20 @@ -826,10 +827,6 @@ &usb_1 { status =3D "okay"; }; =20 -&usb_1_dwc3_hs { - remote-endpoint =3D <&pmic_glink_hs_in>; -}; - &usb_1_hsphy { vdda-pll-supply =3D <&vreg_l10c_0p88>; vdda33-supply =3D <&vreg_l2b_3p072>; @@ -862,3 +859,7 @@ &usb_2_hsphy { &usb_dp_qmpphy_out { remote-endpoint =3D <&pmic_glink_ss_in>; }; + +&eud_con { + remote-endpoint =3D <&pmic_glink_hs_in>; +}; diff --git a/arch/arm64/boot/dts/qcom/qcm6490-shift-otter.dts b/arch/arm64/= boot/dts/qcom/qcm6490-shift-otter.dts index 797f37596bf1..eb7e228787c2 100644 --- a/arch/arm64/boot/dts/qcom/qcm6490-shift-otter.dts +++ b/arch/arm64/boot/dts/qcom/qcm6490-shift-otter.dts @@ -75,6 +75,7 @@ connector@0 { reg =3D <0>; power-role =3D "dual"; data-role =3D "dual"; + usb-role-switch =3D <&usb_1>; =20 ports { #address-cells =3D <1>; @@ -84,7 +85,7 @@ port@0 { reg =3D <0>; =20 pmic_glink_hs_in: endpoint { - remote-endpoint =3D <&usb_1_dwc3_hs>; + remote-endpoint =3D <&eud_con>; }; }; =20 @@ -952,10 +953,6 @@ &usb_1 { status =3D "okay"; }; =20 -&usb_1_dwc3_hs { - remote-endpoint =3D <&pmic_glink_hs_in>; -}; - &usb_1_hsphy { vdda-pll-supply =3D <&vreg_l10c>; vdda18-supply =3D <&vreg_l1c>; @@ -986,6 +983,10 @@ &usb_dp_qmpphy_out { remote-endpoint =3D <&pmic_glink_ss_in>; }; =20 +&eud_con { + remote-endpoint =3D <&pmic_glink_hs_in>; +}; + &venus { firmware-name =3D "qcom/qcm6490/SHIFT/otter/venus.mbn"; =20 diff --git a/arch/arm64/boot/dts/qcom/qcs6490-rb3gen2.dts b/arch/arm64/boot= /dts/qcom/qcs6490-rb3gen2.dts index e3d2f01881ae..3cb7494b16f7 100644 --- a/arch/arm64/boot/dts/qcom/qcs6490-rb3gen2.dts +++ b/arch/arm64/boot/dts/qcom/qcs6490-rb3gen2.dts @@ -185,6 +185,7 @@ connector@0 { reg =3D <0>; power-role =3D "dual"; data-role =3D "dual"; + usb-role-switch =3D <&usb_1>; =20 ports { #address-cells =3D <1>; @@ -194,7 +195,7 @@ port@0 { reg =3D <0>; =20 pmic_glink_hs_in: endpoint { - remote-endpoint =3D <&usb_1_dwc3_hs>; + remote-endpoint =3D <&eud_con>; }; }; =20 @@ -1303,14 +1304,14 @@ &usb_1 { status =3D "okay"; }; =20 -&usb_1_dwc3_hs { - remote-endpoint =3D <&pmic_glink_hs_in>; -}; - &usb_1_dwc3_ss { remote-endpoint =3D <&usb_dp_qmpphy_usb_ss_in>; }; =20 +&eud_con { + remote-endpoint =3D <&pmic_glink_hs_in>; +}; + &usb_1_hsphy { vdda-pll-supply =3D <&vreg_l10c_0p88>; vdda33-supply =3D <&vreg_l2b_3p072>; diff --git a/arch/arm64/boot/dts/qcom/qcs6490-thundercomm-rubikpi3.dts b/ar= ch/arm64/boot/dts/qcom/qcs6490-thundercomm-rubikpi3.dts index 0b64a0b91202..a75b8e118deb 100644 --- a/arch/arm64/boot/dts/qcom/qcs6490-thundercomm-rubikpi3.dts +++ b/arch/arm64/boot/dts/qcom/qcs6490-thundercomm-rubikpi3.dts @@ -84,6 +84,7 @@ connector@0 { reg =3D <0>; power-role =3D "dual"; data-role =3D "dual"; + usb-role-switch =3D <&usb_1>; =20 ports { #address-cells =3D <1>; @@ -93,7 +94,7 @@ port@0 { reg =3D <0>; =20 pmic_glink_hs_in: endpoint { - remote-endpoint =3D <&usb_1_dwc3_hs>; + remote-endpoint =3D <&eud_con>; }; }; =20 @@ -1090,10 +1091,6 @@ &usb_1 { status =3D "okay"; }; =20 -&usb_1_dwc3_hs { - remote-endpoint =3D <&pmic_glink_hs_in>; -}; - &usb_1_hsphy { vdda-pll-supply =3D <&vreg_l10c_0p88>; vdda33-supply =3D <&vreg_l2b_3p072>; @@ -1127,6 +1124,10 @@ &usb_dp_qmpphy_out { remote-endpoint =3D <&pmic_glink_ss_in>; }; =20 +&eud_con { + remote-endpoint =3D <&pmic_glink_hs_in>; +}; + &ufs_mem_hc { reset-gpios =3D <&tlmm 175 GPIO_ACTIVE_LOW>; vcc-supply =3D <&vreg_l7b_2p952>; diff --git a/arch/arm64/boot/dts/qcom/sm7325-nothing-spacewar.dts b/arch/ar= m64/boot/dts/qcom/sm7325-nothing-spacewar.dts index cb59c122f6f6..f99a47334452 100644 --- a/arch/arm64/boot/dts/qcom/sm7325-nothing-spacewar.dts +++ b/arch/arm64/boot/dts/qcom/sm7325-nothing-spacewar.dts @@ -90,6 +90,7 @@ connector@0 { reg =3D <0>; power-role =3D "dual"; data-role =3D "dual"; + usb-role-switch =3D <&usb_1>; =20 ports { #address-cells =3D <1>; @@ -99,7 +100,7 @@ port@0 { reg =3D <0>; =20 pmic_glink_hs_in: endpoint { - remote-endpoint =3D <&usb_1_dwc3_hs>; + remote-endpoint =3D <&eud_con>; }; }; =20 @@ -1440,10 +1441,6 @@ &usb_1 { status =3D "okay"; }; =20 -&usb_1_dwc3_hs { - remote-endpoint =3D <&pmic_glink_hs_in>; -}; - &usb_1_hsphy { vdda-pll-supply =3D <&vdd_a_usbhs_core>; vdda18-supply =3D <&vdd_a_usbhs_1p8>; @@ -1459,3 +1456,7 @@ &venus { &wifi { status =3D "okay"; }; + +&eud_con { + remote-endpoint =3D <&pmic_glink_hs_in>; +}; --=20 2.34.1