From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mx0b-0031df01.pphosted.com (mx0b-0031df01.pphosted.com [205.220.180.131]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 0A9CC27AC48 for ; Mon, 23 Mar 2026 09:36:59 +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=1774258621; cv=none; b=LSm2+JVyMLH+786mwtAqrYxbuP0ndQohguXmFygbGtJHUUULez/keNlDMVqinnHk61xhgr4WuVEeMYWkI3l6LM/YfyeOtbSI3pNUxh42TFEvObJ/L37KrkmA1p+BO7SmKTcG3QcqAyR8NPbc9XFqvt/dCvvxBeumeeSw9aktxxw= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1774258621; c=relaxed/simple; bh=PTdS4DuNCC8UIouhKxz1ZsGRjCcZsuhaZkWZ2JoRdmU=; h=Message-ID:Date:MIME-Version:Subject:To:Cc:References:From: In-Reply-To:Content-Type; b=vD52lkDUoRb+kuS/zvs1wfkVaKilENoL+n83X8TgKR5sdENfYekV61ES4O85qe58Zt088shyipA1D0swu09ehl+BKVaXwX9iWx1RKH0WUH1bZbwAcSZFXi8bTV1QiFcYfiHw8RfJsNjNElkBV60Z5sGhFHJF9PlIZZiproetTAU= 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=Lah6QYiP; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=N5EKjvrf; 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="Lah6QYiP"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="N5EKjvrf" 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 62N72GXn472378 for ; Mon, 23 Mar 2026 09:36:59 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=qcppdkim1; bh= UiE/km1+jrCkPgOrNnhX8dW5D3wRm7Tbxq+ZiX5Sohk=; b=Lah6QYiPhzPhyACK NOSY2gBGTsA2/naYdWt54OtVOhgX6PRPIJPcJkg4CMWttdxzmiJkVBT+RUo1uWa3 q4x45HJgm8n8nDXuVie/fTq0MpkSVDPYiz/CNIQ2BEROQ/EHhMwCsLGTzSk0eP0h bOkoC8u3X87dSv/qFqmvgfy7bxr06mWSyYzxQlRfoWBsCAqnYvkrmQUrkHh3e8ZJ WPxDONXiOBpBbbkg8NeM2wPVyIfAyL2jPyQC/ykAuezQdxHn0m8mcKZP2HsX/yfx TBkzh3n0bymDDeK37QVh4cQG56AAGeqsoLlqTWMmjHfp6E+tNdK7w1F4T/8Xyxug BanZhg== Received: from mail-qt1-f197.google.com (mail-qt1-f197.google.com [209.85.160.197]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4d1jwvms4y-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Mon, 23 Mar 2026 09:36:59 +0000 (GMT) Received: by mail-qt1-f197.google.com with SMTP id d75a77b69052e-50b317c4041so26867931cf.1 for ; Mon, 23 Mar 2026 02:36:58 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1774258618; x=1774863418; darn=vger.kernel.org; h=content-transfer-encoding:in-reply-to:from:content-language :references:cc:to:subject:user-agent:mime-version:date:message-id :from:to:cc:subject:date:message-id:reply-to; bh=UiE/km1+jrCkPgOrNnhX8dW5D3wRm7Tbxq+ZiX5Sohk=; b=N5EKjvrf8h/4uTplLUlmwWoWQMgnPwevugf1dd6Y7qWSz9R5f/zh9G2vf+9ZZK+p4+ uS+wDmDGtBo7gYo9e/Y4HwTfYO/nhICXA9b6lITgt1BU6tzrcpVDOZbIzgXzgheuruji 9x/Gdt+cpC0w44dxzoRMKd1CC+YP3e8XK+qQbYVsdqOz/4IR8/JYLs2N+sYNWkPn71Ne mQzQcL1GmyWa/nDqsmt1oc5DZSTfUTetfCM4aXYSX7GzQ3ethjYDVHOfuot2nkSBYg7D NPdMZhL7H1JPtabtX0Hzx+FcQpVEedwCRlwIrq2vB9biijsHrphIfzaQ6v451jgZCGjh evew== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1774258618; x=1774863418; h=content-transfer-encoding:in-reply-to:from:content-language :references:cc:to:subject:user-agent:mime-version:date:message-id :x-gm-gg:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=UiE/km1+jrCkPgOrNnhX8dW5D3wRm7Tbxq+ZiX5Sohk=; b=gkfhmJ0t0jdo2G8r86k08T4kD1l842Cj2JKq5W9t0agNFlpTEkQJD2rYWTne/54XVu C7qkmJabBswComZ44n9lRJSifInjGpR/0B4CUvoFZ8vtpJ/oS1AdVhKzt22GhbKLEAce 6MW0HqDjbAVMf/HxDVz3VWspWbsVEiWkHVz8v1aFEw5/pj9aT9vq7UoW2H/VcdFT1m5c gHK+ocStjuzCN69+MklIjAp/5T3GT4p+fXiPcrUlajC2kc3yExHHJSajrPJoDV29xu7X NWPPQaR2pi0c2xr1TXXMzvTaLdZ1Nixrmsnug1h1yac0u1FW5nUeDNYhOBOQ8sPjfaXx KJrA== X-Forwarded-Encrypted: i=1; AJvYcCX5cNbhaTkXqtzbuT+4WIupb4udxKXnT5mjT5uzhIbayTGMdP6OmtpE2hEUck6XuIhwqKDtBF8k/2pwqlY=@vger.kernel.org X-Gm-Message-State: AOJu0YzHABE/4gAFH+3e7J4DEDc40kzgUI6kTbD51PXyUtFFU0LJVaU4 K1I1O4cxn1x3bmp6TnZfK2+AMixUslY/M5KaHqG/YVJejsvo/si116/i2yFl8I1VJTRS2YCP1Ah EpC6Q+FplINu/D/lbD0TIR3z2DTDm6VDyi5AmYCbkmOMDfWlV1Ex3cwWGR2ojmx66DYs= X-Gm-Gg: ATEYQzweXt6n7wPwI3eey9O+mLkjjYTpe2TDV7b7kIRz90Mjf7CVW3d/8ApVDCo6n+x 0fPjdTqlexNLdOlzvp7uCOUTIqjYtHxC3BhSe6+RdRy4eZ2+1EPT5/mf1Le7tsr3iIZazE5yeq5 fV/yXmh4yiwOBRZ1qvuDMtnPXmjxdN+zVTzvSvxUjE+5ctkRfb08dZFmX12VHV0KfT2oUFWyqAd MsL5ySVPlH62nUEPnqaVzJC/ITHoPhTnTc4KXfvfy2nhDeGjyGslLbU8CB/9cXFW5yfTY+8amhV LiS1c8GXsRTc6YrJsryarRZkJDKTmUvQbJP9YJYq3NoUvC8qZx2xV+FZKAsmAaHf1PkJ0e4tD4y 2rt+DIh/Y3d3AaBt1mbQlwdaZYpVr3RtNZBhyeMLBv0nLQaKKRWsj1tGlWUtMkoHW7aJ4MXG1rH pJtfo= X-Received: by 2002:a05:622a:5a11:b0:50b:2275:8c1f with SMTP id d75a77b69052e-50b37215c43mr130730411cf.0.1774258618352; Mon, 23 Mar 2026 02:36:58 -0700 (PDT) X-Received: by 2002:a05:622a:5a11:b0:50b:2275:8c1f with SMTP id d75a77b69052e-50b37215c43mr130730231cf.0.1774258617936; Mon, 23 Mar 2026 02:36:57 -0700 (PDT) Received: from [192.168.119.254] (078088045245.garwolin.vectranet.pl. [78.88.45.245]) by smtp.gmail.com with ESMTPSA id a640c23a62f3a-b9832beecf4sm477756366b.0.2026.03.23.02.36.55 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Mon, 23 Mar 2026 02:36:57 -0700 (PDT) Message-ID: Date: Mon, 23 Mar 2026 10:36:55 +0100 Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: [PATCH v2] usb: typec: qcom: Add support for per port VBUS detection To: Bryan O'Donoghue , Dmitry Baryshkov Cc: Alexander Koskovich , Greg Kroah-Hartman , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Heikki Krogerus , linux-arm-msm@vger.kernel.org, linux-usb@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org References: <20260312-qcom-typec-shared-vbus-v2-1-99ed9e500947@pm.me> <1fd9048c-b0c0-451a-a6f7-e5474352d118@oss.qualcomm.com> <90dc434a-42a7-4719-8006-0b141d281ac7@linaro.org> Content-Language: en-US From: Konrad Dybcio In-Reply-To: <90dc434a-42a7-4719-8006-0b141d281ac7@linaro.org> Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwMzIzMDA3NCBTYWx0ZWRfX8n6nVfKA8g0I a9j8VcBPA+/6UrJ5Mkz+vdLSCBzCvsgaoMTmI/9QTNJC2el3jvQiftUAaLX0sDbrlHd1Sj931hu VQQCtuU4Jaazhi66fCwKEz1sloZLdY/gacACLrVAOo5arUaYvQ9tUzT8d9j5HMTg+tuALjhLRtn ChOZRTEXC9fpdZ+ZiyYEG6MgGkklEGP2VFhk4ZeTgp1KTtSdkzsgMy22AUGUXtpzPude3eaToJa QwBnaivLPjuhFxHzr5+Zmlutytc+PFPkGct8xefUBOxBJQjVgRFr/JtDws0GjORu7MXZLHbYnJv OMMWHBWL2zkrz3Rv4ydWoqs3o2D8gfCjtnnJTogedohUi/ipPZuJUMnmrFNxWpBSqq/5stC7ly+ gPzp33ZgTTTSN6S0TGGh0OCaD+odm2QM7M9//jXyg9Biu+JvuJLZrjTCQ4XPZaINCLUbTDNBv4g tbz4QH4/thyeKc2DJrg== X-Authority-Analysis: v=2.4 cv=bcdmkePB c=1 sm=1 tr=0 ts=69c109bb cx=c_pps a=EVbN6Ke/fEF3bsl7X48z0g==:117 a=FpWmc02/iXfjRdCD7H54yg==:17 a=IkcTkHD0fZMA:10 a=Yq5XynenixoA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=3WHJM1ZQz_JShphwDgj5:22 a=VwQbUJbxAAAA:8 a=uUS1cO11Uey-smSlg-cA:9 a=3ZKOabzyN94A:10 a=QEXdDO2ut3YA:10 a=a_PwQJl-kcHnX1M80qC6:22 X-Proofpoint-ORIG-GUID: muCr6tVx2gaGmvQBE892xR90_nXjTfrj X-Proofpoint-GUID: muCr6tVx2gaGmvQBE892xR90_nXjTfrj 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-23_03,2026-03-20_02,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 suspectscore=0 impostorscore=0 clxscore=1015 spamscore=0 lowpriorityscore=0 priorityscore=1501 malwarescore=0 phishscore=0 adultscore=0 bulkscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2603050001 definitions=main-2603230074 On 3/20/26 11:03 AM, Bryan O'Donoghue wrote: > On 19/03/2026 19:57, Dmitry Baryshkov wrote: >> On Thu, Mar 19, 2026 at 02:26:00PM +0100, Konrad Dybcio wrote: >>> On 3/12/26 7:16 AM, Alexander Koskovich wrote: >>>> This is required for devices (e.g. ASUS ROG Phone 3) where more than >>>> one USB port can act as a sink and both share a single USBIN input on >>>> the PMIC. >>>> >>>> Because the PM8150B uses USBIN to determine VBUS presence, a charger >>>> connected to one port causes the PMIC to falsely detect VBUS on the >>>> other port, preventing it from entering source mode. >>>> >>>> For example, plugging a charger into one port prevents using the other >>>> port for a flash drive. >>>> >>>> Fix this by adding support for the vbus-gpios connector binding so the >>>> driver can use an external GPIO for per-port VBUS presence detection >>>> instead of the shared USBIN register. >>>> >>>> Signed-off-by: Alexander Koskovich >>>> --- >>>> Changes in v2: >>>> - Dropped RFC prefix >>>> - Remove redundant vbus-detect-gpios, instead use existing vbus-gpios from usb-connector (Dmitry) >>>> - Updated cover to better describe scenario where this change is relevant >>>> - Update comment for EN_TRY_SRC to make more sense >>>> - Skip vSafe5V poll too not just vSafe0V >>>> - return gpiod_get_value_cansleep (Konrad) >>>> - regmap_update_bits -> regmap_set_bits (Konrad) >>>> - Get vbus-gpios per connector (Konrad) >>>> - Add bracket to if (IS_ERR(pmic_typec_port->vbus_detect_gpio)) (Bryan) >>>> - Link to v1: https://lore.kernel.org/r/20260308-qcom-typec-shared-vbus-v1-0-7d574b91052a@pm.me >>>> --- >>>>   drivers/usb/typec/tcpm/qcom/qcom_pmic_typec_port.c | 53 +++++++++++++++++++++- >>>>   1 file changed, 52 insertions(+), 1 deletion(-) >>>> >>>> diff --git a/drivers/usb/typec/tcpm/qcom/qcom_pmic_typec_port.c b/drivers/usb/typec/tcpm/qcom/qcom_pmic_typec_port.c >>>> index 8051eaa46991..a8f6687a3522 100644 >>>> --- a/drivers/usb/typec/tcpm/qcom/qcom_pmic_typec_port.c >>>> +++ b/drivers/usb/typec/tcpm/qcom/qcom_pmic_typec_port.c >>>> @@ -5,6 +5,7 @@ >>>>     #include >>>>   #include >>>> +#include >>>>   #include >>>>   #include >>>>   #include >>>> @@ -176,6 +177,8 @@ struct pmic_typec_port { >>>>       bool                vbus_enabled; >>>>       struct mutex            vbus_lock;        /* VBUS state serialization */ >>>>   +    struct gpio_desc        *vbus_detect_gpio; >>> >>> I'd like for this to include the word 'secondary', since it's not obvious >>> that if an external GPIO is at play, we have two ports connected in this >>> uhh non-standard fashion >>> >>> perhaps just secondary_vbus_detect_gpio >> >> In theory it can be used even if we have one port. >> > > That's true. > > Its quite common in OTG devices to have VBUS detect GPIOs. Sure, that's true for the qcom_pmic_typec_port_vbus_detect() part, but this also triggers the 'TRY_SRC/TRY_SNK' and 'bypass VSAFE0V' workarounds which I would assume would not necessary in that case Konrad