From nobody Tue Jun 16 09:00:25 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 CE5E53AEF59 for ; Thu, 30 Apr 2026 14:20:50 +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=1777558852; cv=none; b=iov2JuhG7PKj/QkFbneVwUbkBfM7FwfYbmNPKWMHI/BO0sRMZ4QtIIw+owWTyVoVzERYoiUobfcGp2gtaEcyvYGPzqen1u3/p/X1sNsXWzI80UlauvBNY5aj7CCQNYJTI2WV5e8Db8Ssi3Qd8CAm2fXD7ES2t/X3jBOB/lJPhBY= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1777558852; c=relaxed/simple; bh=ylV3TuCPVKskmzdgXHVoBHI9m2SHCKprMb4v0qcQIT0=; h=From:To:Cc:Subject:Date:Message-Id:MIME-Version:Content-Type; b=fNxIstji/h7wfpukYRbv6/xWFuLTcK398mRD43w9IG5zy/wsNAenHUpWfUcsQc0mAunkghcHPPvbbbh7WkSTv8xwho/kVxnbDfpgd48dupe3Gz0eXGmHC2bPFgaOe2ooG3eUOgOprgqr5rKvWN8tPxde5pImY2HAzSjrgZzTnMQ= 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=UB65K0mw; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=hPi/abOz; 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="UB65K0mw"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="hPi/abOz" Received: from pps.filterd (m0279869.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 63UANWqb2943404 for ; Thu, 30 Apr 2026 14:20:50 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:content-type:date:from:message-id :mime-version:subject:to; s=qcppdkim1; bh=dekvHp+VR67gHTc5/sW8T9 bG0fmDifvtGTewZf2gTHk=; b=UB65K0mwAcaShHPv/bpH6XQBmuCFK6EOpKY4TY EyufFWUUdIcgMcP9NSHdc4ySGXhm3AHZe5jFb4vGO+ofAGtoRsbKDeCIxYiDxnlF 1fI2d9vUt1GR9rx6Gle4PMH4FTF1OdEhoOKI6IFYp+7R1eWD7/XgCa7uHq+wcbly 2Y94E898P7d014sDZZhjcT8+Hp/vIAOCWxzti3VDtZ4k3dcIENaCayQOui0ARNP4 N2RIvpLQrf4VNMkhnnkvDSeHbxw4sIpTavICUeD3dRrazjiCQJVMHZrHaSdniWtY JXJWf4GUPrhoewEwkeU4FJo9hEs1dx+NpkFOlvL78P1B+RYw== Received: from mail-pf1-f197.google.com (mail-pf1-f197.google.com [209.85.210.197]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4duyr42f8h-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Thu, 30 Apr 2026 14:20:49 +0000 (GMT) Received: by mail-pf1-f197.google.com with SMTP id d2e1a72fcca58-82fa1c94b37so1670467b3a.0 for ; Thu, 30 Apr 2026 07:20:49 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1777558848; x=1778163648; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:from:to:cc:subject:date:message-id:reply-to; bh=dekvHp+VR67gHTc5/sW8T9bG0fmDifvtGTewZf2gTHk=; b=hPi/abOzSZYRBHgYTnKYWMHNioMARCsp4La/6UdPNpv1xBdFohimuXM5Q+0kJ3SyOz 4zWonFIExtj4CSERBlJQCBUWuul2TJWS3hLw5AMlHMfic0nC9HSTKI0Ck8I63kBYy0GC k0JHeVpBV3XxbirTB4xkdgIqxNXIH6NmIZk+jR913xTb9ojPOadzuQi18c0ayH+cPse7 4pvFaNBqBIdKNG/KMWBpeR3CxQCIrPOfYyiSKbb23FHk42VpCbJNx1xRqyNPnrLwqL6I ihrdmnlr/R2gQiSItUs7NU/aA5IIGHdiFpdv43zvV1pPpdX1y/zw5wksMtYcuV4pTOdK w1lw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1777558848; x=1778163648; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:x-gm-gg:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=dekvHp+VR67gHTc5/sW8T9bG0fmDifvtGTewZf2gTHk=; b=dj2wQGkRxz6qIVF63TEGw/U5cyibSurEQiJkVzYdQkLXqtoYVEl5syBoAvD/L7g57Z szBOENuezDUnJHsCN77BGLGPLNLXIVfa8WnUwjnwO9o6DXFW2xmwld3Ge8ckGJxiGhgh h5aW3NrvVTbrjpvmOG13U1XFa3L054RBp55X0w9UzEWXjkCW21ZtuxjSxzovNgI5VVtz ClmCaPy+HFiJ5h5BR0zMsKnOyFp00AupwOxHYjAhG8V2lmAkTs7sBhYGrTIFJrFgeZcm zUzUUhUdzp5f9CIiyZTs+vhILx4mqg4EqN+3v0gwCduG/RR9V4VFkqFU9Wu/dQHMeW8o vk7Q== X-Forwarded-Encrypted: i=1; AFNElJ9eR+zB4ld74eHfak+RUFQF1xOn/3mi6bgzXy8oIYombs+VAYuriX9Hb0qC0XaZPHlWHPghpxhOqOFVzCQ=@vger.kernel.org X-Gm-Message-State: AOJu0YzLmExkA9CbZEZPAff8WxjM8PV+h+MSP7pSAJMHIFuDtpVd2VL/ t7d6LTzwM2o8KO+rNJ4K+pR4bsM94RR6Yc3EcA7k2X/az+z97fRY4+a92/kDbHsewlalZZOWJuQ gi0dN3ZOmt9ALdNldNs6N+IllEoXwd0nKBUBUyy5XfFsleFPJOIxZJnw3ZQLhN5fAvMlk01g2gr Y= X-Gm-Gg: AeBDietWR6W0nSrUfOooacUSn/bYUNgUYWcVYWAoRIgrGUSWDYpSqAiL+fzeO9e/Rc5 MWqC2TGvxnHgeOGe/7PSzMzW9ff4XpkdVMyxaHJs7V1uQ+Bq7g9d824uyxdblkv7RaVunggAwhO bVdmWK94kVopxDANSO4zimmkixMOXDFR08NSEOF87aIxKxmB+GPzjOto9MoD5+8uh+8t/M0bP9P P9EHAMRQEXs3A1OGXLkKfMW4AktMhE2hJaG0HrEbu2mYB4eCJ8DcxiGAmyF0Bg5OOI/C12uCGpf PsvZxYRNzCY9ui9ly1KK+u3mUrz7gRSX8bzHRJJ6wZBp58+6JWYvUjJ9vu+JHZ6ALruOLU5izdF FTkLbTFKDTz0/clPai9Ntkx5u+OQVk51zmFYw2GczeI3DlsdXY1/sNkxOAHBEse2cmA== X-Received: by 2002:a05:6a20:918a:b0:3a3:21db:8ef1 with SMTP id adf61e73a8af0-3a3d1c9e209mr2672105637.4.1777558848152; Thu, 30 Apr 2026 07:20:48 -0700 (PDT) X-Received: by 2002:a05:6a20:918a:b0:3a3:21db:8ef1 with SMTP id adf61e73a8af0-3a3d1c9e209mr2672054637.4.1777558847520; Thu, 30 Apr 2026 07:20:47 -0700 (PDT) Received: from hu-swatagar-hyd.qualcomm.com ([202.46.23.25]) by smtp.gmail.com with ESMTPSA id d2e1a72fcca58-834ed5ccb05sm6024073b3a.15.2026.04.30.07.20.44 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 30 Apr 2026 07:20:46 -0700 (PDT) From: Swati Agarwal To: Bjorn Andersson , Konrad Dybcio , Rob Herring , Krzysztof Kozlowski , Conor Dooley Cc: linux-arm-msm@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, Swati Agarwal Subject: [PATCH v2] arm64: dts: qcom: monaco-evk: Enable primary USB controller in host mode Date: Thu, 30 Apr 2026 19:50:00 +0530 Message-Id: <20260430142000.3707614-1-swati.agarwal@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-Authority-Analysis: v=2.4 cv=bJcm5v+Z c=1 sm=1 tr=0 ts=69f36541 cx=c_pps a=rEQLjTOiSrHUhVqRoksmgQ==:117 a=ZePRamnt/+rB5gQjfz0u9A==:17 a=IkcTkHD0fZMA:10 a=A5OVakUREuEA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=_glEPmIy2e8OvE2BGh3C:22 a=VwQbUJbxAAAA:8 a=EUspDBNiAAAA:8 a=8yLi3zvD0uxwaS-m9nYA:9 a=3ZKOabzyN94A:10 a=QEXdDO2ut3YA:10 a=2VI0MkxyNR6bbpdq8BZq:22 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNDMwMDE0NyBTYWx0ZWRfX9DH+WwPbqLO3 sKzCce7TytAJjhdS5oikzA0AgTT8JJ+ZkvqiblPmYKQDykzj2djN0qoKfchP74oJcS+C63QEVLb t1PJdVma9JksS3nYohmE2jShmrVV6xe9rdEOJKkJ4yEddj7RetFITOCMF28h75vH3+G21KZBCTw boIIlPmkjt6EvnssoU7j28ZXOxqLfNkuSJ5Wg38+VR04IA+67qs7/FZdThRSOAKQaRLOn0KCmhK Hc9kjtvvKrcbtINcxqyXNjQgqOR7EYo4GLu3YYB5f+UsnjI2DV3JmXbFeUgaECXYMsO0w4E2aYX 8Pdy56mZiIXWNRDsa9EiaqoLyUaJR8B6zJEfIoUVGjk/TSZ1k5/QffbT976GEWTaAkuAvqVpC/E XHZUinxJgrAkIc7nm3RVWhansSNtSz+IlKsGyin6zY6HvgdqsDDkfhaZ4qdLJkwhcTIMCzQAPu3 g/GqnXWjg8Vn3gJkp4Q== X-Proofpoint-GUID: 5W37T1mCx7nyN3VYemBzt0W4QqwuCD_o X-Proofpoint-ORIG-GUID: 5W37T1mCx7nyN3VYemBzt0W4QqwuCD_o 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-04-30_04,2026-04-30_02,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 spamscore=0 bulkscore=0 clxscore=1015 suspectscore=0 adultscore=0 lowpriorityscore=0 impostorscore=0 phishscore=0 malwarescore=0 priorityscore=1501 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2604200000 definitions=main-2604300147 Enable primary USB controller in host mode on monaco EVK Platform. Primary USB controller is connected to a Genesys Logic USB HUB GL3590 having 4 ports. The ports of hub that are present on lemans EVK standalone board are used as follows:- 1) port-1 is connected to HD3SS3220 Type-C port controller. 2) port-4 is used for the M.2 E key on corekit. Standard core kit uses UART for Bluetooth. This port is to be used only if user optionally replaces the WiFi card with the NFA765 chip which uses USB for Bluetooth. Remaining 2 ports will become functional when the interface plus mezzanine board is stacked on top of corekit: 3) port-2 is connected to another hub which is present on the mezz through which 4 type-A ports are connected. 4) port-3 is used for the M.2 B key for a 5G card when the mezz is connected. Primary USB Controller =E2=86=93 GL3590 USB Hub (4 ports) | |-- Port 1 =E2=86=92 HD3SS3220 Type=E2=80=91C Port Controller =E2=86=92= USB=E2=80=91C Connector | |-- Port 2 =E2=86=92 Mezzanine USB Hub (when mezz attached) | |-- Port 3 =E2=86=92 M.2 B=E2=80=91Key Slot (when mezz attached) | |-- Port 4 =E2=86=92 M.2 E=E2=80=91Key Slot (Default: BT via UART; USB only if NFA765 module is installed) Mark the primary USB controller as host only capable and add the HD3SS3220 Type-C port controller along with Type-c connector for controlling vbus supply. In hardware, DIP switches are present to select between USB0 and USB1 ports for the primary Type=E2=80=91C USB controller. By default, the switches are= in the OFF state, selecting the USB0 port. Add software support for both HS and SS switches to eliminate the need for manually changing the DIP switch position for USB1 operation. Add a USB1 hub reset pin to reset and activate the hub after boot, ensuring proper detection from its pre=E2=80=91boot ina= ctive state. Signed-off-by: Swati Agarwal --- Changes in v2: Split DT binding and DT patch. Use gpio hog instead of pinctrl for usb hub reset and HS switch sel. Link to v1: https://lore.kernel.org/all/20260417152014.3000797-1-swati.agarwal@oss.qual= comm.com/ This patch depends on: https://lore.kernel.org/all/20260427170505.1494703-1-umang.chheda@oss.qualc= omm.com/ --- .../boot/dts/qcom/monaco-evk-common.dtsi | 166 +++++++++++++++++- 1 file changed, 165 insertions(+), 1 deletion(-) diff --git a/arch/arm64/boot/dts/qcom/monaco-evk-common.dtsi b/arch/arm64/b= oot/dts/qcom/monaco-evk-common.dtsi index 12c847c03757..2d4ef8666822 100644 --- a/arch/arm64/boot/dts/qcom/monaco-evk-common.dtsi +++ b/arch/arm64/boot/dts/qcom/monaco-evk-common.dtsi @@ -23,6 +23,37 @@ chosen { stdout-path =3D "serial0:115200n8"; }; =20 + connector-1 { + compatible =3D "usb-c-connector"; + label =3D "USB1-Type-C"; + data-role =3D "host"; + power-role =3D "source"; + + vbus-supply =3D <&usb1_vbus>; + + ports { + #address-cells =3D <1>; + #size-cells =3D <0>; + + port@0 { + reg =3D <0>; + + usb1_con_hs_ep: endpoint { + remote-endpoint =3D <&usb_hub_2_1>; + }; + }; + + port@1 { + reg =3D <1>; + + usb1_con_ss_ep: endpoint { + remote-endpoint =3D <&hd3ss3220_1_in_ep>; + }; + + }; + }; + }; + connector-2 { compatible =3D "gpio-usb-b-connector", "usb-b-connector"; label =3D "micro-USB"; @@ -77,6 +108,15 @@ dp1_connector_in: endpoint { }; }; =20 + usb1_vbus: regulator-usb1-vbus { + compatible =3D "regulator-fixed"; + regulator-name =3D "usb1_vbus"; + gpio =3D <&expander1 3 GPIO_ACTIVE_HIGH>; + regulator-min-microvolt =3D <5000000>; + regulator-max-microvolt =3D <5000000>; + enable-active-high; + }; + usb2_vbus: regulator-usb2-vbus { compatible =3D "regulator-fixed"; regulator-name =3D "usb2_vbus"; @@ -445,6 +485,39 @@ lt8713sx_dp1_out: endpoint { }; }; }; + + usb-typec@47 { + compatible =3D "ti,hd3ss3220"; + reg =3D <0x47>; + + interrupts-extended =3D <&tlmm 45 IRQ_TYPE_EDGE_FALLING>; + + id-gpios =3D <&tlmm 13 GPIO_ACTIVE_HIGH>; + + pinctrl-0 =3D <&usb1_id>, <&usb1_intr>; + pinctrl-names =3D "default"; + + ports { + #address-cells =3D <1>; + #size-cells =3D <0>; + + port@0 { + reg =3D <0>; + + hd3ss3220_1_in_ep: endpoint { + remote-endpoint =3D <&usb1_con_ss_ep>; + }; + }; + + port@1 { + reg =3D <1>; + + hd3ss3220_1_out_ep: endpoint { + remote-endpoint =3D <&usb_hub_3_1>; + }; + }; + }; + }; }; =20 &i2c1 { @@ -556,6 +629,12 @@ expander5: gpio@3d { interrupts-extended =3D <&tlmm 3 IRQ_TYPE_LEVEL_LOW>; pinctrl-0 =3D <&expander5_int>; pinctrl-names =3D "default"; + + usb1_ss_sel_switch_hog: usb1-ss-sel-switch-hog { + gpio-hog; + gpios =3D <5 GPIO_ACTIVE_HIGH>; + output-high; + }; }; =20 expander6: gpio@3e { @@ -742,6 +821,24 @@ expander5_int: expander5-int-state { bias-pull-up; }; =20 + usb1_hub_reset_hog: usb1-hub-reset-hog { + gpio-hog; + gpios =3D <7 GPIO_ACTIVE_HIGH>; + output-high; + }; + + usb1_id: usb1-id-state { + pins =3D "gpio13"; + function =3D "gpio"; + bias-pull-up; + }; + + usb1_hs_sel_switch_hog: usb1-hs-sel-switch-hog { + gpio-hog; + gpios =3D <14 GPIO_ACTIVE_HIGH>; + output-high; + }; + expander1_int: expander1-int-state { pins =3D "gpio16"; function =3D "gpio"; @@ -784,6 +881,13 @@ expander3_int: expander3-int-state { bias-pull-up; }; =20 + usb1_intr: usb1-intr-state { + pins =3D "gpio45"; + function =3D "gpio"; + bias-pull-up; + drive-strength =3D <2>; + }; + expander6_int: expander6-int-state { pins =3D "gpio52"; function =3D "gpio"; @@ -863,9 +967,69 @@ &ufs_mem_phy { }; =20 &usb_1 { - dr_mode =3D "peripheral"; + dr_mode =3D "host"; + + #address-cells =3D <1>; + #size-cells =3D <0>; =20 status =3D "okay"; + + usb_hub_2_x: hub@1 { + compatible =3D "usb5e3,610"; + reg =3D <1>; + + peer-hub =3D <&usb_hub_3_x>; + + ports { + #address-cells =3D <1>; + #size-cells =3D <0>; + + port@1 { + reg =3D <1>; + + usb_hub_2_1: endpoint { + remote-endpoint =3D <&usb1_con_hs_ep>; + }; + }; + + /* + * Port-4 is connected to M.2 E key connector on corekit. + */ + port@4 { + reg =3D <4>; + + usb_hub_2_4: endpoint { + }; + }; + }; + }; + + usb_hub_3_x: hub@2 { + compatible =3D "usb5e3,625"; + reg =3D <2>; + + peer-hub =3D <&usb_hub_2_x>; + + ports { + #address-cells =3D <1>; + #size-cells =3D <0>; + + port@1 { + reg =3D <1>; + + usb_hub_3_1: endpoint { + remote-endpoint =3D <&hd3ss3220_1_out_ep>; + }; + }; + + port@4 { + reg =3D <4>; + + usb_hub_3_4: endpoint { + }; + }; + }; + }; }; =20 &usb_1_hsphy { --=20 2.34.1