From nobody Sun Feb 8 14:56:08 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 D80EB2D9497 for ; Sun, 2 Nov 2025 16:48:33 +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=1762102115; cv=none; b=Mf+npB0x7ucIIvJdcdRWfqynfgaszkzKwNzb4AKB/OmJo60fCmM8UTeLFyEQQ72BaElqdUz8H42DANBr4Qf1VXUB7ZfkdHBTWZYVXQI5h5J2mbhQk46Itadau1rt/UlEAfQwuVWaRIsBSr01xXQx7EZ9yD+AvsAvv9t9f070mHs= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1762102115; c=relaxed/simple; bh=TpiTxJW1Bz3YKEyohqJFyPy/4FKxAmL8LRUVMUuk+JM=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=H3dAmWV886qI4jKF9CVdhxE1kpCJOTaCb9Viu8FAXwHpSgzJh6sp39RBUbzh2BOukS6IpAZwZzKZKqi/ZxTuHPQzRGafrI+4tZFNzQ53nqdfpxE77HytzA5XnBGRkLEBkG1RN5DoA4qnzqP7F9B6JOL7+OMzGsZbEl0+mjZFc3M= 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=ouQCr/7p; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=Z39OL/wa; 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="ouQCr/7p"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="Z39OL/wa" 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 5A2Gfgp4591486 for ; Sun, 2 Nov 2025 16:48:33 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=JBOvaCbH4Qv gqPmGhscoPlHjn3V3P8Ah+9WTpPAoTAQ=; b=ouQCr/7ptlEWiywzxOCJq5SUrv2 yRj/HFJaVwVFkaAAKLHSTDcRSi9bmpwCrIDtmTL4I2pOWMJAChOyMPBYjJ9v8ELc Yo36c1sTnYnUbnNScTZvYEg7X70Zsbh8T910nEJJt3NNWPcswUWnJdE1Ofh5MoWW 2eKQjmGFbqPH0ICLACifhgqAqwBhg2yXyOc8hFOMRlZOhVCUMbjpAA6IQDc9V7Hm eyRmFp9MUeBW6DTwm+S9fZvuJJfS+e6mvodKZw14qomDJCT/EaXil0jkfM7C5gDW YDIyRccCP+BbWZMC1JH7saRVw2J3bAp2XAGN2DBm0JtDA0J2hY6vHQbL+iQ== Received: from mail-pj1-f69.google.com (mail-pj1-f69.google.com [209.85.216.69]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4a5ae32ccf-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Sun, 02 Nov 2025 16:48:33 +0000 (GMT) Received: by mail-pj1-f69.google.com with SMTP id 98e67ed59e1d1-33d75897745so9522716a91.0 for ; Sun, 02 Nov 2025 08:48:33 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1762102112; x=1762706912; 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=JBOvaCbH4QvgqPmGhscoPlHjn3V3P8Ah+9WTpPAoTAQ=; b=Z39OL/wafRLvmAbdAPLS2jRBLchnB7p0yXimurE7tvTeyFult9GdKmFfLg4+TpscLF R6FhvLm6uRNXp7tyXwxrKWiHZPm2hJg0ipz37LfkZJOzfRzUEDAFZ4g28rwQhTbW1L6p JEJnaxgfOLPMDWFjn9YwH805wgaYhtiD4P2m44iq3SZss+Z9sGNTUFvYCjyn07+fQQAe 3rn7TW6VMk2Q2p2mnHsNzDUW5xV7Uz+q8f7KzTU4ahZGxBEYnPWk7WlMrQFiL4kj8Z3F IKDluo7j87FrZqYxeipLp6wLKwjg1P8M7iE5ENXAvDzYDKMiIe549TMHHC0tpicFCAxG zv+A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1762102112; x=1762706912; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=JBOvaCbH4QvgqPmGhscoPlHjn3V3P8Ah+9WTpPAoTAQ=; b=hXOePfmN7cISPwD5wxy6qkO4+n7tWyQX0BObO18mMhQBmaPCMa1s05GGaUCE4wfILF MyTLCWD0B/K1kFz1sRVdgX6+RzdGkc29Geq2j22VL0kug0Mtjm7jiU0RL924MKQ3rnXQ tNUjZ7kixJzyddU9suXgDogWQLUqSkfPga3oCU95WgyUfM5rudpzmyAchXwYUfOLDGux 3zJTM6POUp1XYvHuAvfVAMSCG/X63N1Iot4VeaeUgVfbLZawGR1EDG83MAEnNIXvh5mJ //TG6RSvgrxotC/fFD4+34hzZ+wcdltILKCd4NsH5wQMMXs8wfeDHWFfQlrmQUZsMIaf sleg== X-Forwarded-Encrypted: i=1; AJvYcCVYygYTx+1DgH74C85xK2IUUlqn9nYahbIA4f5qTCM17TvxgGGjkfLj/KyupQS4Ohg7ui7HiYogWj7/tRY=@vger.kernel.org X-Gm-Message-State: AOJu0YxmQu906Jz354gG5XW7Mmn4EGBag0zjCHQc1RcDVAksZ7NUp7WF xS13kKiWmiNRuJBUWXdbmXVPF0P+/Kk6BQ26YJh2R7HUUpjUqY6gtPSvN0p2LZBPEIyrLsIsGIg +PmX1BoolQk2kQhxkvOuHaDHYhC4Z1gtA0GcfGq4Cx/cnOOMJbLtrMCQ5a3ruC8KcO6U= X-Gm-Gg: ASbGncsj8wAqTRi/+a0skInenZZfcshvH7mx0QPSfZWbQE/VNuTd09JKn7kGcxUcMe+ fQB5o7UF5GQZTuV8bx+YclpHd781GqhcnO5NdBhb/yWBShxOzRO0KBrjLUaK08LMlsAn4lGkBaf JJS1C/sSA288sqwwiIlkCzQ2C4lYQGFtcFenhr6RlGd2wmox9vhY7Q1Xj8hXealUigda/k9dcGd R7bx7N2Z/pxnRn4lvh+OmLE5ebqoaeXCoK2bbjlB/SsnsvIwGs1XXGIWxQr5HlD3LOstkVonLL6 43RxENYdzqq8Ce1zxORIr4sQHM+3nYxR+0Tm9Y6HBJEmZioM9yMgTRG5Pa4QViTzxvnVcDs1Y4N LHLfKXo0LPRUmnRLrYCiKdgGi04c8CxE8Py+W X-Received: by 2002:a17:90b:2cc6:b0:32e:7bbc:bf13 with SMTP id 98e67ed59e1d1-34083088f88mr13211506a91.34.1762102112402; Sun, 02 Nov 2025 08:48:32 -0800 (PST) X-Google-Smtp-Source: AGHT+IEML+rLFkUQskJw5HVlAhpdyqKOC52Uv4UQprVOYlNSEbl5x1DeFwYSHp4i0sTovR3MvbEruQ== X-Received: by 2002:a17:90b:2cc6:b0:32e:7bbc:bf13 with SMTP id 98e67ed59e1d1-34083088f88mr13211473a91.34.1762102111882; Sun, 02 Nov 2025 08:48:31 -0800 (PST) Received: from hu-kriskura-hyd.qualcomm.com ([202.46.22.19]) by smtp.gmail.com with ESMTPSA id 41be03b00d2f7-b93bda55f74sm7708125a12.19.2025.11.02.08.48.28 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 02 Nov 2025 08:48:31 -0800 (PST) From: Krishna Kurapati To: Greg Kroah-Hartman , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Heikki Krogerus , Biju Das , Dmitry Baryshkov Cc: linux-usb@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, Krishna Kurapati Subject: [PATCH v6 1/2] dt-bindings: usb: ti,hd3ss3220: Add support for VBUS based on ID state Date: Sun, 2 Nov 2025 22:18:18 +0530 Message-Id: <20251102164819.2798754-2-krishna.kurapati@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20251102164819.2798754-1-krishna.kurapati@oss.qualcomm.com> References: <20251102164819.2798754-1-krishna.kurapati@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-ORIG-GUID: l_dHtXKujwngp-pNzNA4vrtf4SKJUk1y X-Proofpoint-GUID: l_dHtXKujwngp-pNzNA4vrtf4SKJUk1y X-Proofpoint-Spam-Details-Enc: AW1haW4tMjUxMTAyMDE1NiBTYWx0ZWRfXzvSkcONvUd5s iDuPhkpAL/GFUHWc5pjJdCRbu6hr4F7HmwXjYGlQKkEghj4CxhBgzRmwQu515D6i/KnmJj5Cb7N 4Qn2tZG5Qm0WuqHBYmvGeoiymJ/sRdyItr8yFu0DVkx9x8w5EK71+8UsakK2YHi5tVo+Wq19yNF ho1qXsiQCNFjoFAhQSuQasTCO2WlqayXazE66swKEHT7Ag4FOq7oF7cfxzikox0Zfdt5jxAb6PC 5jHD1T17Sr+yhdcW6dVTlbFh8S3KuRZXZN/94L2YIBkCOQbDVcTvhNw9pt3liOZYFm1+HADcxxT Tj9t4NQ/VPujnwlgSSdCS1QKo6Ep4+JfRV3Osks5GvfIUxwwEMQDM1IX7GZ5AQl+q1+TjRrNHY2 FnRnv0Y37w66X9N6/yNBXshd8ShVSw== X-Authority-Analysis: v=2.4 cv=CfUFJbrl c=1 sm=1 tr=0 ts=69078b61 cx=c_pps a=vVfyC5vLCtgYJKYeQD43oA==:117 a=fChuTYTh2wq5r3m49p7fHw==:17 a=6UeiqGixMTsA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=VwQbUJbxAAAA:8 a=EUspDBNiAAAA:8 a=UO34u3PHWDRxg_ly3EkA:9 a=rl5im9kqc5Lf4LNbBjHf:22 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1121,Hydra:6.1.9,FMLib:17.12.100.49 definitions=2025-11-02_02,2025-10-29_03,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 malwarescore=0 suspectscore=0 impostorscore=0 spamscore=0 bulkscore=0 adultscore=0 phishscore=0 lowpriorityscore=0 priorityscore=1501 clxscore=1015 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2510240001 definitions=main-2511020156 Content-Type: text/plain; charset="utf-8" Update the bindings to support reading ID state and VBUS, as per the HD3SS3220 data sheet. The ID pin is kept high if VBUS is not at VSafe0V and asserted low once VBUS is at VSafe0V, enforcing the Type-C requirement that VBUS must be at VSafe0V before re-enabling VBUS. Add id-gpios property to describe the input gpio for USB ID pin. Reviewed-by: Rob Herring (Arm) Signed-off-by: Krishna Kurapati --- Documentation/devicetree/bindings/usb/ti,hd3ss3220.yaml | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/Documentation/devicetree/bindings/usb/ti,hd3ss3220.yaml b/Docu= mentation/devicetree/bindings/usb/ti,hd3ss3220.yaml index bec1c8047bc0..06099e93c6c3 100644 --- a/Documentation/devicetree/bindings/usb/ti,hd3ss3220.yaml +++ b/Documentation/devicetree/bindings/usb/ti,hd3ss3220.yaml @@ -25,6 +25,14 @@ properties: interrupts: maxItems: 1 =20 + id-gpios: + description: + An input gpio for USB ID pin. Upon detecting a UFP device, HD3SS3220 + will keep ID pin high if VBUS is not at VSafe0V. Once VBUS is at VSa= fe0V, + the HD3SS3220 will assert ID pin low. This is done to enforce Type-C + requirement that VBUS must be at VSafe0V before re-enabling VBUS. + maxItems: 1 + ports: $ref: /schemas/graph.yaml#/properties/ports description: OF graph bindings (specified in bindings/graph.txt) that = model --=20 2.34.1 From nobody Sun Feb 8 14:56:08 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 E24BD26B973 for ; Sun, 2 Nov 2025 16:48:39 +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=1762102121; cv=none; b=b/WhxZVnIEMfs3YqYm7HzFCo3B+x/4OpFqoB68QVoG90slvYasG273+490YC0uZenEkDu6gaZgdwrvecv0F7r/f4j/8Gnf5WN1DYYr7mk/4I9D7GuqPt/SoAxTtjlXVOQPK9x2AXIIIX+hmiulGIT68LOzy+AtuQ3GagmDAwksc= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1762102121; c=relaxed/simple; bh=VUhk5tIVS9kKX6hvNn1Es93BtcU8P+wTv3tQ6hnUW+c=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=ADMtsWvSpJULh1tcE8atultL1jnGHfWK5qkR/yopx+huPZ3EF2Y+rI75y1ZuP3wvzQp7Djnzr0SSEb5Zlx6VUftY2yOAslUqyqFM5LXOigdRErkKujepK1JW0eOu6UEpM79QEzrOJKPeAV9+SR+ioSMggw3RoqJMyYK5ZBYpCoQ= 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=O7BYyLfP; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=GVZKAk57; 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="O7BYyLfP"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="GVZKAk57" 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 5A2GfbNG690431 for ; Sun, 2 Nov 2025 16:48:38 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=ITtX/QM07dZ 9B4EGpnJ4gs20tfWjA0oXsFBww9pw5kg=; b=O7BYyLfPtInSv5eSXiLgdq5EhJP 0c3zeYQC2voS0vB33mvcKCSVLPedBHKRjJjIH6Pvye+y4jWD9X7Uf8LP2oaJiWdP wFd8EkRqRtmQW9FZ7Eg9rGYsE+lLKHc4FxBGImQabNSANan262vW5oVyYAEXPEPr Nm1RCHy433dxFXC4zB5EN3ExX/fTVp5jPfBHBRGOU0KtT3BxIeK5oZfpudqs8TKU 2kKqs5XE/7SE9j/wwOEzAabw164PPXtRoWQg1jKadYBTC8OcDa106Zgt2pXL34Bb Q2picvBCSgQZaCSIjm8dDotkgxA0ivsJ73WcyalwuUFqTV2SZdYsAO1pLVw== Received: from mail-pf1-f198.google.com (mail-pf1-f198.google.com [209.85.210.198]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4a59hhjddk-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Sun, 02 Nov 2025 16:48:38 +0000 (GMT) Received: by mail-pf1-f198.google.com with SMTP id d2e1a72fcca58-7a28961ab86so3055344b3a.2 for ; Sun, 02 Nov 2025 08:48:38 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1762102117; x=1762706917; 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=ITtX/QM07dZ9B4EGpnJ4gs20tfWjA0oXsFBww9pw5kg=; b=GVZKAk57MJf+4PKhYDimVLXOfWlqPq8KgZmnL7PIGzvH7QCeYoBc9Q7jifJaZFlQzJ Rs4CsH68tUU3LBkDfR4p7vRJzJjL8SOpUqW8aq2bfvrZGRGDqvfp6QQO3krzZOzXBRSw JShWKhsh96Ya661e3VhPgCb0qWbbLM/oKGnU2EYx4yruO0M0Tirm2dg7rvLJ2SF9MGQM C3DZeD76Ojf2DleG/JMr0O6VGZnt6vzrOjMW08m464APqF1WsW0TMfNSOxLJuKajbZWR zi4rrf3thENwc2hzggrOfuHwswLushazTu3X6gkzNM+xj8IbGi70nWreKjghqqvcI63d 26yg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1762102117; x=1762706917; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=ITtX/QM07dZ9B4EGpnJ4gs20tfWjA0oXsFBww9pw5kg=; b=dpsk1Qn9s2dxOLigJauHMhsVAcuOaBDg3heESUDrEEJZ4L6a/VXPUW+bnuy4Hb7IIC YkXBI/v+yuncq1ts1CI4uscQuOr+ZBObrc2ScJIC+0wmOBGgXTKZ6/VUIAQQYXFfJ2Lz qbzqbbvpjLcVKynZSfEgOhz2/wZv5I5pLzX/cuwyXwrKXuhHZlTJNKVfj3AkiSeHFjaL QgkDyzHrr4wLF66tr8jhLpBFertdNgTOSbTRMPssqq2FJLLTWxoZ/RQs074v4dWRjQaG WXg1q5PM4tt3xFovADvpM0sFY0rX1aaTBmlgFxJplhDTZdXuMoWF2t525pEuagDB+R8R NhBA== X-Forwarded-Encrypted: i=1; AJvYcCVrSVss2NwIP6A+gGkeQVS1fWMNRMiCJGNrpwFhIpKW93uDlIrnmYIf5YJO4huOqxS5jZlTLxl97gBz3qg=@vger.kernel.org X-Gm-Message-State: AOJu0YzcQF4GDFqUAjVnMHg6obeJA4nQe8/QlIFmgRZIxzjepUPSdTAg vx84ai3DgjceSHB2ngv7vZT+aDz6etHfA935K95WocgrNnvrYBHoXU6dIgAi+zqE40L6HaNHuNw gbMyvAMqlfZfT6Ic+VddV63RocRBwrkrGpC0dH9IdBMR7Yi2GUoOe8MrGWV49SnMN5CgThKLQOp o= X-Gm-Gg: ASbGncvVB8K5PmFv6p1jR4qK7Ga7eIBdLQrTeaVIxm5fx3NDvdBJbZDN91Ps7NgQbj2 BjtML1mhuZi9R/SOba1WYoju5/uh9SM21i3MhG/NnzgCTPFlvghqTYhbeuQCRb5ORceNDRidJqD YgjDREolirsxPT0g7QPIWOzEAzQg6o3c3jNtE0ffovONRb+5kSgPPvCTpo7IHXIincVwAzafwF0 ssMZ1EJhgKq2kUElt0tfu93f32BNz5hHSZjKS30EbndATSuNLvotUiuuYlcLzPTiJWAmGrz+vcM iXQwDGQXoX99DUYZSmJAoQdUdW/uUaGih4IFMWTLr7IwwJ3pcSNXYQDrJoNDFvzJgTr7ErXGS1c Nd736GlHi1Z2phyAwdrRG66jNTIJjbthkol7J X-Received: by 2002:a05:6a21:999c:b0:2e3:a914:aab7 with SMTP id adf61e73a8af0-348cc6ed95bmr12421585637.47.1762102117261; Sun, 02 Nov 2025 08:48:37 -0800 (PST) X-Google-Smtp-Source: AGHT+IG4nhNS7nlqb2YAi5SG0s0Ji9IjMUZXRJ64Vy+PMlEEPlTIQJRkSfTGlck3/uwqMo4IbTmG2g== X-Received: by 2002:a05:6a21:999c:b0:2e3:a914:aab7 with SMTP id adf61e73a8af0-348cc6ed95bmr12421562637.47.1762102116700; Sun, 02 Nov 2025 08:48:36 -0800 (PST) Received: from hu-kriskura-hyd.qualcomm.com ([202.46.22.19]) by smtp.gmail.com with ESMTPSA id 41be03b00d2f7-b93bda55f74sm7708125a12.19.2025.11.02.08.48.33 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 02 Nov 2025 08:48:36 -0800 (PST) From: Krishna Kurapati To: Greg Kroah-Hartman , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Heikki Krogerus , Biju Das , Dmitry Baryshkov Cc: linux-usb@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, Krishna Kurapati Subject: [PATCH v6 2/2] usb: typec: hd3ss3220: Enable VBUS based on ID pin state Date: Sun, 2 Nov 2025 22:18:19 +0530 Message-Id: <20251102164819.2798754-3-krishna.kurapati@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20251102164819.2798754-1-krishna.kurapati@oss.qualcomm.com> References: <20251102164819.2798754-1-krishna.kurapati@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=V6lwEOni c=1 sm=1 tr=0 ts=69078b66 cx=c_pps a=m5Vt/hrsBiPMCU0y4gIsQw==:117 a=fChuTYTh2wq5r3m49p7fHw==:17 a=6UeiqGixMTsA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=EUspDBNiAAAA:8 a=3eHL1KmHa9FwJ4YL2wMA:9 a=IoOABgeZipijB_acs4fv:22 X-Proofpoint-GUID: jmDX517W8B4I0yTMpoEkDQdpVzOwSF79 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjUxMTAyMDE1NiBTYWx0ZWRfX/DSlSqQymMLA s6ogoxJ7FujqWCyp98zvdQVh/PslBVfWcwQEZw1eSz/yDKIP5ujVVHz5l9DVm/aw3YbMlE+yLgw dfCO9JmGXRzu+NHKaI4egyy2T00M6dfB0VKtRuistIIvioPAZe0ruGn8MPhsOUtymzDBalrdLUf vUFiwNIwBOKbvZrBQ/yqZWOxINlOVmKTmfiephM1MLlUfydAha2YPeGDe6zp6J9+jfSxxJCW7SC 5BVsWyPpSBGt868BTmVCV+zBgiTGrAUyoojhYDdCx6LRh8dboInpaRR+F8BNTxIWjXg2arDgbDJ VLE202qf2z12oU9cqvK9gRqefTixUOw3oXG2eRFHqeNcjSgJ1/6izRjz6sxfEnehn2wj3cn/HLd Fq57H5YPXOJpUzl+qfYiZ4+dbuWoEg== X-Proofpoint-ORIG-GUID: jmDX517W8B4I0yTMpoEkDQdpVzOwSF79 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1121,Hydra:6.1.9,FMLib:17.12.100.49 definitions=2025-11-02_02,2025-10-29_03,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 phishscore=0 priorityscore=1501 clxscore=1015 adultscore=0 spamscore=0 bulkscore=0 lowpriorityscore=0 suspectscore=0 impostorscore=0 malwarescore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2510240001 definitions=main-2511020156 Content-Type: text/plain; charset="utf-8" There is a ID pin present on HD3SS3220 controller that can be routed to SoC. As per the datasheet: "Upon detecting a UFP device, HD3SS3220 will keep ID pin high if VBUS is not at VSafe0V. Once VBUS is at VSafe0V, the HD3SS3220 will assert ID pin low. This is done to enforce Type-C requirement that VBUS must be at VSafe0V before re-enabling VBUS" Add support to read the ID pin state and enable VBUS accordingly. Signed-off-by: Krishna Kurapati --- drivers/usb/typec/hd3ss3220.c | 72 +++++++++++++++++++++++++++++++++++ 1 file changed, 72 insertions(+) diff --git a/drivers/usb/typec/hd3ss3220.c b/drivers/usb/typec/hd3ss3220.c index 3ecc688dda82..75fbda42eaf4 100644 --- a/drivers/usb/typec/hd3ss3220.c +++ b/drivers/usb/typec/hd3ss3220.c @@ -15,6 +15,9 @@ #include #include #include +#include +#include +#include =20 #define HD3SS3220_REG_CN_STAT 0x08 #define HD3SS3220_REG_CN_STAT_CTRL 0x09 @@ -54,6 +57,11 @@ struct hd3ss3220 { struct delayed_work output_poll_work; enum usb_role role_state; bool poll; + + struct gpio_desc *id_gpiod; + int id_irq; + + struct regulator *vbus; }; =20 static int hd3ss3220_set_power_opmode(struct hd3ss3220 *hd3ss3220, int pow= er_opmode) @@ -319,6 +327,44 @@ static const struct regmap_config config =3D { .max_register =3D 0x0A, }; =20 +static irqreturn_t hd3ss3220_id_isr(int irq, void *dev_id) +{ + struct hd3ss3220 *hd3ss3220 =3D dev_id; + int ret; + int id; + + if (!hd3ss3220->vbus) + return IRQ_HANDLED; + + id =3D hd3ss3220->id_gpiod ? gpiod_get_value_cansleep(hd3ss3220->id_gpiod= ) : 1; + + if (!id) { + ret =3D regulator_enable(hd3ss3220->vbus); + if (ret) + dev_err(hd3ss3220->dev, "enable vbus regulator failed\n"); + } else { + regulator_disable(hd3ss3220->vbus); + } + + return IRQ_HANDLED; +} + +static int hd3ss3220_get_vbus_supply(struct hd3ss3220 *hd3ss3220, + struct fwnode_handle *connector) +{ + int ret =3D 0; + + hd3ss3220->vbus =3D devm_of_regulator_get_optional(hd3ss3220->dev, + to_of_node(connector), + "vbus"); + if (PTR_ERR(hd3ss3220->vbus) =3D=3D -ENODEV) + hd3ss3220->vbus =3D NULL; + else if (IS_ERR(hd3ss3220->vbus)) + ret =3D PTR_ERR(hd3ss3220->vbus); + + return ret; +} + static int hd3ss3220_probe(struct i2c_client *client) { struct typec_capability typec_cap =3D { }; @@ -354,11 +400,37 @@ static int hd3ss3220_probe(struct i2c_client *client) hd3ss3220->role_sw =3D usb_role_switch_get(hd3ss3220->dev); } =20 + hd3ss3220->id_gpiod =3D devm_gpiod_get_optional(hd3ss3220->dev, "id", GPI= OD_IN); + if (IS_ERR(hd3ss3220->id_gpiod)) + return PTR_ERR(hd3ss3220->id_gpiod); + + if (hd3ss3220->id_gpiod) { + hd3ss3220->id_irq =3D gpiod_to_irq(hd3ss3220->id_gpiod); + if (hd3ss3220->id_irq < 0) + return dev_err_probe(hd3ss3220->dev, hd3ss3220->id_irq, + "failed to get ID gpio\n"); + + ret =3D devm_request_threaded_irq(hd3ss3220->dev, + hd3ss3220->id_irq, NULL, + hd3ss3220_id_isr, + IRQF_TRIGGER_RISING | + IRQF_TRIGGER_FALLING | IRQF_ONESHOT, + dev_name(hd3ss3220->dev), hd3ss3220); + if (ret < 0) + return dev_err_probe(hd3ss3220->dev, ret, "failed to get ID irq\n"); + } + if (IS_ERR(hd3ss3220->role_sw)) { ret =3D PTR_ERR(hd3ss3220->role_sw); goto err_put_fwnode; } =20 + ret =3D hd3ss3220_get_vbus_supply(hd3ss3220, connector); + if (ret) { + dev_err(hd3ss3220->dev, "failed to get vbus: %d\n", ret); + goto err_put_fwnode; + } + typec_cap.prefer_role =3D TYPEC_NO_PREFERRED_ROLE; typec_cap.driver_data =3D hd3ss3220; typec_cap.type =3D TYPEC_PORT_DRP; --=20 2.34.1