From mboxrd@z Thu Jan 1 00:00:00 1970 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 2F59937C11E for ; Thu, 20 Aug 2026 14:51:00 +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=1787237462; cv=none; b=O9SFnXbaNMqqPIz7tbFjXhuJELE6fcOpX9A5PBBA7DLavb4CaEuAcRh8/zcXtnDXcGJEJkGOTtAdn5wND9h0NpWYqqIvFQjPDI8j61fjiCTY/myDAVE/ROLFZayrvQxetbljIN65LaZ8i4Z9dD4gmvk6inHKIE3aZyT/leNYGOY= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1787237462; c=relaxed/simple; bh=Lc4MX2W1gKBJynhVE7aaHv7egreYozMjsKsBGu8V3Ok=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=nK2RlPCvYAToapPYa/+ht//KfrNAknljAR4uQECT+kFw6lMCOYIdZV/SJTnrja9PdhM/FxF+1XluyI6/Tp3cBXVNXJcjlLECPUra7rBt9Gc4ZadgPNp2BVqRO0MYckSCSXkhBzRgY12JxDAWYHpvlq+Z6ZBEZskcoX78mPC23Mk= 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=ANWkOVVT; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=YUtOfJkR; 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="ANWkOVVT"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="YUtOfJkR" 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 67KE8Gns3146646 for ; Thu, 20 Aug 2026 14:50:59 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=wMrRjxFvV1c ygDeZj85BWpgzySly0rCdcgagEWM/Y7I=; b=ANWkOVVTa1e1MQ+0jh5xM0vND5p 47k82AuJqxbmxfJ2GStluUNsM+5r7yhgo66D2mGRiR51Ghke9DvKo6dPZXuHooAW /HkpJ/0ifx6BZdZA4aqOWxFGHhjRBxQedouODHfD59ippGupADbwM/N9AQNlpS2H 5e1X/YBqU3VtfA+6d/B/CcVx8lQuI3RGrrgfMLLkSS2/wjZ4gY0eiaswe33+ax4a V2R95GxEeCEwfFxiUdCPY6NRkNCQGyJequ3GrmDJSf7XBxfEDe+INUcTCpTH2m/q 0joPg+JIqAbxMwvV8G2XFaW6CHt4V3ccGnMkBz3umCmLtTs87Ip/7FQFzwQ== 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 4g5vh7swkj-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Thu, 20 Aug 2026 14:50:59 +0000 (GMT) Received: by mail-ot1-f71.google.com with SMTP id 46e09a7af769-7f1da5e5b06so3488598a34.2 for ; Thu, 20 Aug 2026 07:50:59 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1787237459; x=1787842259; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to:content-type; bh=wMrRjxFvV1cygDeZj85BWpgzySly0rCdcgagEWM/Y7I=; b=YUtOfJkRYtQlTdiy1/Om6RCjXuE2t5nWYwJGLDZ14qW265mJ5/HAM9GEkUs4uUhKFL HSdII38GZrotsiXLa4hAqPyx/V7cuyfJ1ezAOoNSYPK34wBbyNAvbT3Hx/jm5EwWxb5q kcZl0ZGCJSqGxIY6ZxC8JyTvqeU6g6bExXhE16HxRe9v6daRb8Kq/YS37/Lnopuy6dCi LZ34XFcK4J4bdtnFCIx11bPYs72l6F32IwMwjxNGpr/xj0p1/vw1XUzNNmCYh00utQ0f 4L5h5QdMcZ9hDCUTdku68jqNY8vDMaPjA/VQOEg2cCvReOrjH2qs/399DLxwK4Z73S1F DdpA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1787237459; x=1787842259; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to:content-type; bh=wMrRjxFvV1cygDeZj85BWpgzySly0rCdcgagEWM/Y7I=; b=aeJRBs6MIrzVEKuajlsEFesRqDQEpFspBQ1D2JrBRlGUTTaYAeIL9ChuHOYPtVKA6x wltLVaNv4oiPXXmePz6RA4DUKrx6iPP7bc3v9aFAeZFLkaqzj4vWZQ9sqZ66oVj4YyTu U1/dXbk8Py38lfjvgDsyg36LBbUPF1VFIj+NFAF8Xcaqx6+T40q74ZqnuvAxSCjw751/ j75E2z/wk3ojwHBgW5FL6i12rU0E9k3zNwjK4FdbRkLAadA6ehZ3KL685UipL1u6BPtN +aPwu3j2zofx532PsXD8f8PdYdPAJJnlcxkmP8/YYyLhihsdmymb0VFMkgS7NIUSrgYL a8nw== X-Forwarded-Encrypted: i=1; AHgh+Rra58CEnLWSfc8YXdnvNzq6uFVPhaya9TPpbzmZpUk5GtTUzfXziqs610wizNSVMBu+I9okI0g3Wxb/uKk=@vger.kernel.org X-Gm-Message-State: AOJu0YzDPbfZ56whOUSFIcq2u+QSUx9dSC7McDLs9A2b14mPT430T4Wn tWY6sVHnCIgqa6vbISSajlk52lsQP3xRqsZyU93qnFcIGNBUFtY2L6AGFhQsOGV4Cs7SFNT1EFP g+g3HdYQfqm9pdkIEqTRdtXkJKbXreE5/we6Y6VtY8oXwuQBs4rDnOoz5J4xxl8BkDyk= X-Gm-Gg: AR+sD12iI3LCBIZerTwX9Fx0wUssJz/fIvKgW8Xqplb8A1nsIcXe9z5Ht66WcSnB4eG CrhkgqfslLfdIJ/0E8dv/BywSNIs2Sx4iZh/8uEfaxiJ1Y8zgYSDGbMUefXXbBpfEbV2lD9MWD8 oMHaCHyfUkwKKsJqn9sG47EYBp7JLn8GxBgC6KWW+8hV2ZPyXpWRhO5jG69Kf8py/wxajVu6IXj Ywghr01ya05AdmZHeGc83EKwixOf9s60BMxNqIkCyoWe/NACst9l+VfWTPIMHW6AX18s69KuO+A f/G6KGVFd+4c9LA36lMo7wA0Fl1moFg5UUyreSvbef+nk3dMA9cjbGuMnGdszjzjW0r1jPclNTE g2rbwHmKG2CG0GIekYLwrBOxdwRYf X-Received: by 2002:a05:6830:4116:b0:7e6:efb8:fe66 with SMTP id 46e09a7af769-7f43fb210c0mr13978899a34.12.1787237458419; Thu, 20 Aug 2026 07:50:58 -0700 (PDT) X-Received: by 2002:a05:6830:4116:b0:7e6:efb8:fe66 with SMTP id 46e09a7af769-7f43fb210c0mr13978810a34.12.1787237457844; Thu, 20 Aug 2026 07:50:57 -0700 (PDT) Received: from hu-akakum-hyd.qualcomm.com ([202.46.23.25]) by smtp.gmail.com with ESMTPSA id 46e09a7af769-7f440056836sm5147383a34.20.2026.08.20.07.50.53 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 20 Aug 2026 07:50:57 -0700 (PDT) From: Akash Kumar To: Greg Kroah-Hartman , Bjorn Andersson , Konrad Dybcio , Rob Herring , Dmitry Baryshkov , Krzysztof Kozlowski , Conor Dooley Cc: linux-usb@vger.kernel.org, linux-kernel@vger.kernel.org, linux-arm-msm@vger.kernel.org, devicetree@vger.kernel.org Subject: [PATCH 3/3] arm64: dts: qcom: shikra: Wire up usb-role-switch for USB Type-C ports Date: Thu, 20 Aug 2026 20:17:38 +0530 Message-ID: <20260820145036.2035641-4-akash.kumar@oss.qualcomm.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260820145036.2035641-1-akash.kumar@oss.qualcomm.com> References: <20260820145036.2035641-1-akash.kumar@oss.qualcomm.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwODIwMDExMSBTYWx0ZWRfX3+FZao6ppDhW QX6KwWFH7ccgn5veyv3PZ8GjOnG1OCGMvm04gmdHMnSeATOEeY9iF4WQtNUfJlhoZjsgs/sZdI1 fCBXumhDD+kuua+TF/K1lD14ulsUOCnR9mdNzCIJtFuA9IReNp0zMHTB+OloXULUefHi5XHVAte xPAhkG5ebyyKDHSFrlDmfqtUY+wrxR0F4uXMAaJKGXbzpuNz1LD7vJOYBpQvCQPxDr4EaOIlwld ogWgbay/zljG0//F4SCngD3Ygm2psht14ire5y7nh02w5G5RO3JLVLLC1g3KESaII423gMh3iD5 gDnVGrjrgdO19MKAJXIwDD+ViWyQitm8iLlcxYYml3IKdEHfx3W1mkLWWI4ZXMcSPoPB54cHrJg SDK1+h7Pmimx7IBtTmM+GjeXMhot2b5IzDsmcLFvmNkKh1VUWp/aSVhFuxongxONU2pdAdZyI2+ HZnlVrYEbcMDKiGKtag== X-Proofpoint-ORIG-GUID: Q5LicpAF3aQ_Y76dXVhM4Gvai9-tjWa8 X-Authority-Analysis: v=2.4 cv=Y7fIdBeN c=1 sm=1 tr=0 ts=6a871453 cx=c_pps a=OI0sxtj7PyCX9F1bxD/puw==:117 a=ZePRamnt/+rB5gQjfz0u9A==:17 a=Sv0fKeRqtYgA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=YMgV9FUhrdKAYTUUvYB2:22 a=EUspDBNiAAAA:8 a=_pKR-zN_RmEM7jd2atcA:9 a=Z1Yy7GAxqfX1iEi80vsk:22 X-Proofpoint-Spam-Info: AW1haW4tMjYwODIwMDExMSBTYWx0ZWRfX3E6jM7nzdc89 DNin+F6f2DHe/oMKfV6/XIXNyqHMiX/O+XzpchjhH8tHExOD0ZsfsTXH3Sv0ThfcCn/rXX5BIsB A0MIo1L/ReQfchpSokdXslDmP/AFq5E= X-Proofpoint-GUID: Q5LicpAF3aQ_Y76dXVhM4Gvai9-tjWa8 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1176,Hydra:6.1.134,FMLib:17.12.100.49 definitions=2026-08-19_06,2026-08-20_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 suspectscore=0 bulkscore=0 clxscore=1015 malwarescore=0 impostorscore=0 lowpriorityscore=0 spamscore=0 adultscore=0 phishscore=0 priorityscore=1501 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2608200111 On Shikra CQS/CQM platforms, usb-role-switch is handled by PM4125 on the primary Type-C port and Cypress PD controller CYPD6129 on the second Type-C port. On Shikra IQS platform, usb-role-switch is handled by Cypress PD controller CYPD6129 on both Type-C ports. Add the CYPD6129 typec node under i2c3, wire its connector endpoints to the corresponding DWC3 controller ports via remote-endpoint phandles, and switch the associated USB controllers to OTG mode so role switching can take effect. Signed-off-by: Akash Kumar --- arch/arm64/boot/dts/qcom/shikra-cqm-evk.dts | 64 +++++++++++- arch/arm64/boot/dts/qcom/shikra-cqs-evk.dts | 64 +++++++++++- arch/arm64/boot/dts/qcom/shikra-iqs-evk.dts | 108 +++++++++++++++++++- 3 files changed, 223 insertions(+), 13 deletions(-) diff --git a/arch/arm64/boot/dts/qcom/shikra-cqm-evk.dts b/arch/arm64/boot/dts/qcom/shikra-cqm-evk.dts index 3866ab8b0faa..c92ab8e6cc0c 100644 --- a/arch/arm64/boot/dts/qcom/shikra-cqm-evk.dts +++ b/arch/arm64/boot/dts/qcom/shikra-cqm-evk.dts @@ -42,6 +42,43 @@ &remoteproc_mpss { status = "okay"; }; +&i2c3 { + status = "okay"; + + typec@40 { + compatible = "cypress,cypd6129"; + reg = <0x40>; + interrupts-extended = <&tlmm 136 IRQ_TYPE_LEVEL_LOW>; + pinctrl-0 = <&usb0_intr_state>; + pinctrl-names = "default"; + + #address-cells = <1>; + #size-cells = <0>; + + ccg_typec_con0: connector@0 { + compatible = "usb-c-connector"; + reg = <0>; + label = "USB-C"; + data-role = "dual"; + power-role = "dual"; + wakeup-source; + + ports { + #address-cells = <1>; + #size-cells = <0>; + + port@0 { + reg = <0>; + + ucsi_ccg_port: endpoint { + remote-endpoint = <&usb_1_dwc3_hs>; + }; + }; + }; + }; + }; +}; + &sdhc_1 { vmmc-supply = <&pm4125_l20>; vqmmc-supply = <&pm4125_l14>; @@ -58,6 +95,23 @@ &sdhc_1 { status = "okay"; }; +&tlmm { + usb0_intr_state: usb0-intr-state { + pins = "gpio136"; + function = "gpio"; + drive-strength = <2>; + bias-pull-up; + }; +}; + +&usb_1 { + /delete-property/ dr_mode; +}; + +&usb_1_dwc3_hs { + remote-endpoint = <&ucsi_ccg_port>; +}; + &usb_1_hsphy { vdd-supply = <&pm4125_l12>; vdda-pll-supply = <&pm4125_l13>; @@ -66,17 +120,17 @@ &usb_1_hsphy { status = "okay"; }; -&usb_qmpphy { - vdda-phy-supply = <&pm4125_l8>; +&usb_2_hsphy { + vdd-supply = <&pm4125_l12>; vdda-pll-supply = <&pm4125_l13>; + vdda-phy-dpdm-supply = <&pm4125_l21>; status = "okay"; }; -&usb_2_hsphy { - vdd-supply = <&pm4125_l12>; +&usb_qmpphy { + vdda-phy-supply = <&pm4125_l8>; vdda-pll-supply = <&pm4125_l13>; - vdda-phy-dpdm-supply = <&pm4125_l21>; status = "okay"; }; diff --git a/arch/arm64/boot/dts/qcom/shikra-cqs-evk.dts b/arch/arm64/boot/dts/qcom/shikra-cqs-evk.dts index 34568f1c7b63..8a3d173568a1 100644 --- a/arch/arm64/boot/dts/qcom/shikra-cqs-evk.dts +++ b/arch/arm64/boot/dts/qcom/shikra-cqs-evk.dts @@ -42,6 +42,43 @@ &remoteproc_mpss { status = "okay"; }; +&i2c3 { + status = "okay"; + + typec@40 { + compatible = "cypress,cypd6129"; + reg = <0x40>; + interrupts-extended = <&tlmm 136 IRQ_TYPE_LEVEL_LOW>; + pinctrl-0 = <&usb0_intr_state>; + pinctrl-names = "default"; + + #address-cells = <1>; + #size-cells = <0>; + + ccg_typec_con0: connector@0 { + compatible = "usb-c-connector"; + reg = <0>; + label = "USB-C"; + data-role = "dual"; + power-role = "dual"; + wakeup-source; + + ports { + #address-cells = <1>; + #size-cells = <0>; + + port@0 { + reg = <0>; + + ucsi_ccg_port: endpoint { + remote-endpoint = <&usb_1_dwc3_hs>; + }; + }; + }; + }; + }; +}; + &sdhc_1 { vmmc-supply = <&pm4125_l20>; vqmmc-supply = <&pm4125_l14>; @@ -58,6 +95,23 @@ &sdhc_1 { status = "okay"; }; +&tlmm { + usb0_intr_state: usb0-intr-state { + pins = "gpio136"; + function = "gpio"; + drive-strength = <2>; + bias-pull-up; + }; +}; + +&usb_1 { + /delete-property/ dr_mode; +}; + +&usb_1_dwc3_hs { + remote-endpoint = <&ucsi_ccg_port>; +}; + &usb_1_hsphy { vdd-supply = <&pm4125_l12>; vdda-pll-supply = <&pm4125_l13>; @@ -66,17 +120,17 @@ &usb_1_hsphy { status = "okay"; }; -&usb_qmpphy { - vdda-phy-supply = <&pm4125_l8>; +&usb_2_hsphy { + vdd-supply = <&pm4125_l12>; vdda-pll-supply = <&pm4125_l13>; + vdda-phy-dpdm-supply = <&pm4125_l21>; status = "okay"; }; -&usb_2_hsphy { - vdd-supply = <&pm4125_l12>; +&usb_qmpphy { + vdda-phy-supply = <&pm4125_l8>; vdda-pll-supply = <&pm4125_l13>; - vdda-phy-dpdm-supply = <&pm4125_l21>; status = "okay"; }; diff --git a/arch/arm64/boot/dts/qcom/shikra-iqs-evk.dts b/arch/arm64/boot/dts/qcom/shikra-iqs-evk.dts index 543d769125ef..bf09d199f2a3 100644 --- a/arch/arm64/boot/dts/qcom/shikra-iqs-evk.dts +++ b/arch/arm64/boot/dts/qcom/shikra-iqs-evk.dts @@ -42,6 +42,73 @@ &remoteproc_mpss { status = "okay"; }; +&i2c3 { + status = "okay"; + + typec@40 { + compatible = "cypress,cypd6229"; + reg = <0x40>; + interrupts-extended = <&tlmm 50 IRQ_TYPE_LEVEL_LOW>; + pinctrl-0 = <&usb0_intr_state>; + pinctrl-names = "default"; + + #address-cells = <1>; + #size-cells = <0>; + + ccg_typec_con0: connector@0 { + compatible = "usb-c-connector"; + reg = <0>; + label = "USB2-Type-C"; + data-role = "dual"; + power-role = "dual"; + wakeup-source; + + ports { + #address-cells = <1>; + #size-cells = <0>; + + port@0 { + reg = <0>; + + ucsi_ccg_port0_hs: endpoint { + remote-endpoint = <&usb_2_dwc3_hs>; + }; + }; + }; + }; + + ccg_typec_con1: connector@1 { + compatible = "usb-c-connector"; + reg = <1>; + label = "USB3-Type-C"; + data-role = "dual"; + power-role = "dual"; + wakeup-source; + + ports { + #address-cells = <1>; + #size-cells = <0>; + + port@0 { + reg = <0>; + + ucsi_ccg_port_1_hs: endpoint { + remote-endpoint = <&usb_1_dwc3_hs>; + }; + }; + + port@1 { + reg = <1>; + + ucsi_ccg_port_1_ss: endpoint { + remote-endpoint = <&usb_qmpphy_out>; + }; + }; + }; + }; + }; +}; + &sdhc_1 { vmmc-supply = <&pm8150_l17>; vqmmc-supply = <&pm8150_s4>; @@ -58,6 +125,25 @@ &sdhc_1 { status = "okay"; }; +&tlmm { + usb0_intr_state: usb0-intr-state { + pins = "gpio50"; + function = "gpio"; + drive-strength = <2>; + bias-pull-up; + }; +}; + +&usb_1 { + /delete-property/ dr_mode; + + status = "okay"; +}; + +&usb_1_dwc3_hs { + remote-endpoint = <&ucsi_ccg_port_1_hs>; +}; + &usb_1_hsphy { vdd-supply = <&pm8150_l4>; vdda-pll-supply = <&pm8150_l12>; @@ -66,11 +152,16 @@ &usb_1_hsphy { status = "okay"; }; -&usb_qmpphy { - vdda-phy-supply = <&pm8150_l6>; - vdda-pll-supply = <&pm8150_l12>; +&usb_2 { + /delete-property/ dr_mode; status = "okay"; + + port { + usb_2_dwc3_hs: endpoint { + remote-endpoint = <&ucsi_ccg_port0_hs>; + }; + }; }; &usb_2_hsphy { @@ -80,3 +171,14 @@ &usb_2_hsphy { status = "okay"; }; + +&usb_qmpphy { + vdda-phy-supply = <&pm8150_l6>; + vdda-pll-supply = <&pm8150_l12>; + + status = "okay"; +}; + +&usb_qmpphy_out { + remote-endpoint = <&ucsi_ccg_port_1_ss>; +}; -- 2.43.0