From nobody Mon May 25 00:11:20 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 29B623B9930 for ; Wed, 20 May 2026 09:07:31 +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=1779268053; cv=none; b=eOV5JrGY7fIwE2CXYc473Y3M0HQnVe6yWbBw0Fj8z70lfvtezo/TxHNtkB+GhjMv2nD4u5oqgZta0/BtB4wwQTiMJD6fbchjFWkJJaF/JtbH8lCPcnkymXJQWwVHCmVYXijd1bKMjRP8tC/iqROyYJ4zfdafI9iIiKGpYT4/ZX0= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1779268053; c=relaxed/simple; bh=YX58XETFNrFK6fPHF1U0S0cwb54Jv2xjL5zfxBSQE9A=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=OpsstbquKoZjSfb71NUWSqdmTsu3olHIhsfQkoukOhUSccAmSvpXGplbi9NmUtHYa1hjKkHQXxAaE6Yn3p1zTbgNL6xh9Iey4rM4+7AzoNVdMGuNnTIghAeshWHDGXXlXfhXWQaFKq3jGVyEnwtv8cXaJVOOZA+6t1x7Hb9vkKg= 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=giY5nvR/; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=hmyVu73I; 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="giY5nvR/"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="hmyVu73I" Received: from pps.filterd (m0279873.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 64K7jGvE1637009 for ; Wed, 20 May 2026 09:07:30 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= MpJzTEmNOgzw3NFClHoM7kG4QCGYRRJbTUYE5H6k9EE=; b=giY5nvR/8n/ACJa8 EvrW1R9FhSoOeuT9UfuwSvCM/mG9+gL+0PokUrV7hmcawC4Ogalwr3yyUs8oEKd8 TjSg+pDYo3xU8UaxBCfrH+wL6g2IwoB4VTuKXaU3f3QLbuOAij0EffrCOejLPK2C uzAurM90Gp/9cfmhmFO6KZxxbrTAlLMxJYYitpHA8FEKdBo0vz3mWRzIdgxWBoRU zUPu9qZPWPOdA7kWv4pMBeCC2PsxrmEL5byu522TZcMEdSvnY/nHQeBPdadH9Kvv LSE+u8jrFtadrxoR1IoKCsUSXyCPAkGC2yylyEyj8+9JUqa+yuZgcbvEUPM9FS4d j/2nVQ== Received: from mail-pj1-f70.google.com (mail-pj1-f70.google.com [209.85.216.70]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4e8t3sbu8d-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Wed, 20 May 2026 09:07:29 +0000 (GMT) Received: by mail-pj1-f70.google.com with SMTP id 98e67ed59e1d1-367bb9caa54so4223886a91.2 for ; Wed, 20 May 2026 02:07:29 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1779268048; x=1779872848; darn=vger.kernel.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:from:to:cc:subject:date:message-id :reply-to; bh=MpJzTEmNOgzw3NFClHoM7kG4QCGYRRJbTUYE5H6k9EE=; b=hmyVu73Iom8pLD5yvzmlaVnjWNW58r1vm6kZ+Fe1jiS3LEPFTBS1Q/Rpm9QYxyFw01 AEtcXva4Sl1r7ylfM88/Resh/skCptcqkCXMliiAlOhmTqqrVCrwgvwH5nWDPDrv0Q5O yxdHRHoiAlRq3/1oooNCkku1mEZaxXwB2MCWtP5HPCY/jgfqY+bLUyaV/z0NTmIKHGuV 8sbN+Z/Giltd4q/Ov2PGU2b/8bnacCrNXpCioyicxQF+4M4g1T7p/uMvpGooSPYNlJ5y WMD29VPIZxDW/LEAQyfyR3I4i7HttvuRs4+vQplxytsBlRN0JC2G+0Xitp/eMqruwiGC 7YyA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1779268048; x=1779872848; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-gg:x-gm-message-state:from:to :cc:subject:date:message-id:reply-to; bh=MpJzTEmNOgzw3NFClHoM7kG4QCGYRRJbTUYE5H6k9EE=; b=rueyCEZYtIwDewLt3HxdJ+PjC9jDVqNYv0Vbe9QChHu1Zkzmd+d2LJuLwj8Y09Krrr hJva0M8arbDGSbfZCRtDs3Jn1vgIhHfopnmK5Z/6DzmHyR0S5JaIGlbftxoChnqaL5/f gh/a7OUaGsS5mcWD66E7f+N9vWr9r/qMIo12c49C9SBLcQNF4VmWJsvzgIpwjMenxZoX m/KUpkhjtRbJ+UD8UQ+IbO6EaecaqXW0b/7LX4Hc/0rzEFqNrcMM5f54FRgCp/R7x51M 9dTjXN9lrFRc0Z4nWSvJkVOm5mgVnnH8tgcf4u8dU4q2r69xXXQktImN6l9HaLsC2MTP IXcg== X-Forwarded-Encrypted: i=1; AFNElJ/fSYhP+4wQGgReF+Uv0XFLzsyQPYHjy6G0kPcRjndTAGHpuca7jYEKm6L5r3UwCFLBDwBus4qsvU7pdnA=@vger.kernel.org X-Gm-Message-State: AOJu0YyITA9vgl4hZzKaZA7K2MlOTZrXr1XTctXvGdcJKGAes9dYl86h Jbmq8qFYMcSIeF3gbUMLWgfW1dNoUBIyzteXuHNp6rSvPhb4DQDwDB4CQ75zLwHHx/csJbiuIv2 65ox60LFiAF7lTEExdKpEw/fr6RJdvUECt9QPvHJoDx4ynD+Hs3tAUUtA6/YwJm3qXQ== X-Gm-Gg: Acq92OHEtR8UbouqYuPtrtf17yJS5Lz3ofuV8UcuL9dBjUL5PVX8DpI4wKXVGt8N1kS JlfqjbjxvtEYXMxs/Cvf+DS3nAiOmxdnE5uvvMC86IE3FxzVoLBSvOh1Y804wVtx/QtkSAnrUgp J1w3Ff8PUepmpISpf6CuFkGw3WAZg6GP+ut3hu5w4/PIJYjrjJS2ra+cacqZB7OtqeJV67e+tdQ VtsjTZnWKLnJs/bkKrrXDuDQAeGbXqVMyeFKH/HGWWqK9RlA1Lz1bE5z7VoHb2Q8lWzspfYz2GO gIUgfTPO0llLKI1c24AYvGFcBeyghe6Q4YUMKkOHuPw6vsSdK62cA3hhMVGjj8qYpiRj0Wy/jmy ADWhBKR4zdZscIcmebthe5k4ADuPycYu65ENtGM01vmwhGsXYcLBZ0/aBcBJI/g== X-Received: by 2002:a17:90b:5290:b0:35c:30a8:32a with SMTP id 98e67ed59e1d1-369519ffc97mr22994540a91.9.1779268048006; Wed, 20 May 2026 02:07:28 -0700 (PDT) X-Received: by 2002:a17:90b:5290:b0:35c:30a8:32a with SMTP id 98e67ed59e1d1-369519ffc97mr22994507a91.9.1779268047522; Wed, 20 May 2026 02:07:27 -0700 (PDT) Received: from hu-kotarake-hyd.qualcomm.com ([202.46.23.25]) by smtp.gmail.com with ESMTPSA id 98e67ed59e1d1-369517a8612sm17079903a91.12.2026.05.20.02.07.23 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 20 May 2026 02:07:27 -0700 (PDT) From: Rakesh Kota Date: Wed, 20 May 2026 14:37:11 +0530 Subject: [PATCH 1/2] dt-bindings: regulator: qcom,usb-vbus-regulator: add qcom,pm4125-vbus-reg 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 Message-Id: <20260520-add_pm4125-vbus-reg-v1-1-f6d15d7dbbe8@oss.qualcomm.com> References: <20260520-add_pm4125-vbus-reg-v1-0-f6d15d7dbbe8@oss.qualcomm.com> In-Reply-To: <20260520-add_pm4125-vbus-reg-v1-0-f6d15d7dbbe8@oss.qualcomm.com> To: Liam Girdwood , Mark Brown , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Wesley Cheng Cc: linux-arm-msm@vger.kernel.org, linux-kernel@vger.kernel.org, devicetree@vger.kernel.org, jishnu.prakash@oss.qualcomm.com, kamal.wadhwa@oss.qualcomm.com, Rakesh Kota X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=ed25519-sha256; t=1779268039; l=3411; i=rakesh.kota@oss.qualcomm.com; s=20250919; h=from:subject:message-id; bh=YX58XETFNrFK6fPHF1U0S0cwb54Jv2xjL5zfxBSQE9A=; b=FYO6JZIg/E+L4Ms/oyS6kYiq2jeQdFBLSlRnhvDrv7p0M2iNQFPuv8zj8HFdGJ1Zw9+hhAfZe mtOg4ctn9lzAYNngoNoCD5MMN1y/7tbD1kVd0kupDc6QsSWA0NkQZ1s X-Developer-Key: i=rakesh.kota@oss.qualcomm.com; a=ed25519; pk=dFhv9yPC8egZglsSLDMls08cOvZKZkG6QQn1a/ofwNU= X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNTIwMDA4NyBTYWx0ZWRfX85WVGksmQxMo ivFzzBsKiFZk9hHIzwt3EouzUFBCmq54/tP9nT8h8OL89x+eC0aJWrc8PguPQWm7ahqUqOocKTl JO8MBnUV4eK0549vy1ATi6Qy4RCFNaw6yADblskuKCbTOlGv261XB1nojdm6Dw0Es2tCSHehrC3 Aq96HFfdo2CcVC3ZKnMp7mGSf9uBwooIzf1v5hF1pOHuSP9NHo1UgL1aL3A/qfzc2RK/v5yo/43 gcJHIEEYNO6mzKjyhIE0zddtU1CDGPY5nx2XTnrLHqUa2svu1lQXqtjOQ22gj1k+V+ey9RGWF+9 52SEmyUFtjHUFA5UUbyoqMQc2y8I4bsSormnA0LEHwNv8Hs/UtY+S5Ybk6oGzH148CkUX/9DNLf HG4vL7hC+XFezj+iTbr26h2w8YLE0d+TNIlozmzQHoJGGxsQ5rq3rqOqGp2WRgDnkWOSpZvZJLQ 8DgAc0yZPKhXcpRqzdQ== X-Authority-Analysis: v=2.4 cv=Oc6oyBTY c=1 sm=1 tr=0 ts=6a0d79d1 cx=c_pps a=0uOsjrqzRL749jD1oC5vDA==:117 a=ZePRamnt/+rB5gQjfz0u9A==:17 a=IkcTkHD0fZMA:10 a=NGcC8JguVDcA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=rJkE3RaqiGZ5pbrm-msn:22 a=EUspDBNiAAAA:8 a=nDMmG0lKkFKFsl1axvUA:9 a=QEXdDO2ut3YA:10 a=mQ_c8vxmzFEMiUWkPHU9:22 X-Proofpoint-GUID: j5R1jbjqPW_9RlIYBbop_rLXeFmIAPiM X-Proofpoint-ORIG-GUID: j5R1jbjqPW_9RlIYBbop_rLXeFmIAPiM 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-05-20_01,2026-05-18_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 suspectscore=0 adultscore=0 clxscore=1015 bulkscore=0 malwarescore=0 priorityscore=1501 impostorscore=0 lowpriorityscore=0 phishscore=0 spamscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2605130000 definitions=main-2605200087 The pm4125 PMIC uses a different USB VBUS register layout than pm8150b. It uses a 2-bit VBOOST voltage selector supporting output voltages of 4.25 V, 4.5 V, 4.75 V and 5.0 V, instead of a current-limit selector. Move qcom,pm4125-vbus-reg from the pm8150b fallback items list into the standalone enum since the driver handles it with its own match-data and register layout. Make regulator-min/max-microamp conditional so they are only required for current-limit variants (pm8150b, pm6150, pm7250b, pmi632). Add an if/then condition for qcom,pm4125-vbus-reg requiring regulator-min/ max-microvolt instead, and update the pm4125 example accordingly. Signed-off-by: Rakesh Kota --- .../regulator/qcom,usb-vbus-regulator.yaml | 50 ++++++++++++++++++= +--- 1 file changed, 45 insertions(+), 5 deletions(-) diff --git a/Documentation/devicetree/bindings/regulator/qcom,usb-vbus-regu= lator.yaml b/Documentation/devicetree/bindings/regulator/qcom,usb-vbus-regu= lator.yaml index fcefc722ee2a495837fedba026669de97350c566..7c74573848bcdafbf6260f69cfc= d7a9b58bc9f2d 100644 --- a/Documentation/devicetree/bindings/regulator/qcom,usb-vbus-regulator.y= aml +++ b/Documentation/devicetree/bindings/regulator/qcom,usb-vbus-regulator.y= aml @@ -14,17 +14,21 @@ description: | regulator will be enabled in situations where the device is required to provide power to the connected peripheral. =20 -allOf: - - $ref: regulator.yaml# + The pm8150b variant uses an OTG current-limit selector, supporting limits + of 500 mA, 1000 mA, 1500 mA, 2000 mA, 2500 mA and 3000 mA. + + The pm4125 variant uses a different register layout with a 2-bit VBOOST + voltage selector supporting output voltages of 4.25 V, 4.5 V, 4.75 V + and 5.0 V. =20 properties: compatible: oneOf: - enum: - qcom,pm8150b-vbus-reg + - qcom,pm4125-vbus-reg - items: - enum: - - qcom,pm4125-vbus-reg - qcom,pm6150-vbus-reg - qcom,pm7250b-vbus-reg - qcom,pmi632-vbus-reg @@ -34,11 +38,35 @@ properties: maxItems: 1 description: VBUS output base address =20 +allOf: + - $ref: regulator.yaml# + - if: + properties: + compatible: + contains: + enum: + - qcom,pm8150b-vbus-reg + - qcom,pm6150-vbus-reg + - qcom,pm7250b-vbus-reg + - qcom,pmi632-vbus-reg + then: + required: + - regulator-min-microamp + - regulator-max-microamp + + - if: + properties: + compatible: + contains: + const: qcom,pm4125-vbus-reg + then: + required: + - regulator-min-microvolt + - regulator-max-microvolt + required: - compatible - reg - - regulator-min-microamp - - regulator-max-microamp =20 unevaluatedProperties: false =20 @@ -55,4 +83,16 @@ examples: regulator-max-microamp =3D <3000000>; }; }; + - | + pmic { + #address-cells =3D <1>; + #size-cells =3D <0>; + + usb-vbus-regulator@5000 { + compatible =3D "qcom,pm4125-vbus-reg"; + reg =3D <0x1100>; + regulator-min-microvolt =3D <4250000>; + regulator-max-microvolt =3D <5000000>; + }; + }; ... --=20 2.34.1 From nobody Mon May 25 00:11:20 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 7E33C3BAD91 for ; Wed, 20 May 2026 09:07:35 +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=1779268059; cv=none; b=MsAuqPIGDBfImAayUT6CTEbqKp5nRsFjdcg79sSGSYhStOKNP6TU0/IvmKz+CBr7Fwlylh+kfBhFszJnb7LgIc6GJiq7rrxRuUsu1mnl9NNDdUSRS4Ve8ChXrvw8G14H0e9JgJ5ysl4fL1bai+vCg3qR2l4kOo38j7sm8unyvKg= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1779268059; c=relaxed/simple; bh=vo9QszaRVCVBLynmMk2Tlo0NH6xJ4ftEm46gUfYlE+w=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=t9KsDIGaxik6KhoX5qOBRjiEo93Y6Z6WOk7FZvbUIzhSKLQcaUSajaaZdsuHVISgtrtH0o7XaBxPUF/tKB2hLiQjVusUtGnRcLa/C3QxbW6zVjzoOlAkKLoEYdnpXsgzHkNL3t2red7sMiJ9dC89XeUUwlWpqEV96DmNgpIXTQI= 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=pyYLx734; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=XjyiShJG; 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="pyYLx734"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="XjyiShJG" Received: from pps.filterd (m0279873.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 64K7Vs1l1636919 for ; Wed, 20 May 2026 09:07:33 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= PhUsGD2Ij6JrjuwQpUKSKSZDLzGC8nTynYmL00kksfY=; b=pyYLx734wvdTDEjn eapAre0PHFOkv0lyBh10TmY+vlamvFnytEFBhxHUZginb1a0U7sEaHDpMVu1c+FE F28+ojGyfRyIi6mMnpvANYltcNm8OSQhLn/yUUryEQyELv2EkDD/qFF4NEUSCQl/ Gcn4Oh99ytDgD5ZT/D8Fmb/PMp3bxSe1ecMpY4FpA3QHoyYvEPk721ROtBAuWf8H iAEdiVh8M3jYR93HIlf112nvegmU+mYJtauGgsJZNre25b6DtGbWWD2uRfcBmgh+ fIFa0HmqoJWnmGGbqfnP2h9yu7SJW/fuY9EGwZyaJo3pig4JY4TVzbJiZFpgO/UM oLIZmQ== Received: from mail-pj1-f70.google.com (mail-pj1-f70.google.com [209.85.216.70]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4e8t3sbu8n-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Wed, 20 May 2026 09:07:33 +0000 (GMT) Received: by mail-pj1-f70.google.com with SMTP id 98e67ed59e1d1-368b01f8adeso6534047a91.0 for ; Wed, 20 May 2026 02:07:33 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1779268052; x=1779872852; darn=vger.kernel.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:from:to:cc:subject:date:message-id :reply-to; bh=PhUsGD2Ij6JrjuwQpUKSKSZDLzGC8nTynYmL00kksfY=; b=XjyiShJGIPIxRirJKuAN6fmP+Mk2sYSuvWItqGyZDUm5F/89Rg9TfNe1Jh4uv09EcG 6chLmD6YjrGzQg9233vKPBra1zy/cQxSAlvCPT2v+gU/0hVmhCJlOK5TXxkjiThHWHNk mMp+i794ZF6kM86VMcusbeAPp+DTbIhimx7ZIarLyNZaJo24jSDIIkYWwbGAlacqYxy3 JxUy9z+nxaNNh7lssMOARarY72Eocewqg0A1sBaCBQ4fBg05jMB2xpWHu96zW2Z3K8mW IDMeLx6P6HShr2SZRPpYEOexrx0E9BrLk54lOaNIi4OH3glhGuafkFxX7r2yEN9AUBkr +B3A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1779268052; x=1779872852; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-gg:x-gm-message-state:from:to :cc:subject:date:message-id:reply-to; bh=PhUsGD2Ij6JrjuwQpUKSKSZDLzGC8nTynYmL00kksfY=; b=izAaTQEDjT8TIdaFo9RJnD7KJdhEZGsESJ3+p4RWhRNQoce2dHCEmCzHWY9i0j5JDt KF2J8QLuD+XaNho1bUPeOmK2PXE/Czz7kJDUsXqgbDgxK6V0i/75VEIwJOjkMXvqHPbY GWyoLy9dJN1mPZiGqOGM2NKNcYPyCBiTByEjDTXk8dwnnyTWWe2fkjitj604uDuPxhlt doIrDt+48gDhS4OH5vo3sG6iaJv1F8jrI7jNh7faL3Z6w5MZUK52hEv7+bOlXueTPYiI gfDy8xG6/EotqYr8q+hpUFbq2DLs2YRg3jGTUGWZFyrtugtWZFQvQrhMxpQfKZ4sMFiq mKRg== X-Forwarded-Encrypted: i=1; AFNElJ8tr+hZpboFJBpzkoDfijp5SXnfWpgY8NJx51MfU7VTpGnmegKa2mJw9sMC5quyV3++b4zXJgXrHqlwu4I=@vger.kernel.org X-Gm-Message-State: AOJu0YyRHaYnGCoCZDmyDNjGhxV9Ivi+IwsQQ8j9QNh0tAtcLv/VuYge gZR/Kyvp6Wf+4XqUQJBHVUIypjthbZC7PM05itoQ6WQgOXQbUvLpTYWbvbwAkHqGnZwfM/wsvjL loiMA6DP08zzpZfAlHbqBTTxrJsruVfc3V/M1wQdNmkzox41C3q8Jj7SQMv7yKq+MNw== X-Gm-Gg: Acq92OG36hg0aAKr+Hpw+HBKT07qcw5ph+TCcG2zsWyzdBbjvrO0d5fyoCceZCzMefl cqR7TIfhrvL5jUSoQpZF8CYuHRGKbcZhcculJ5+rno+YJ+AK5Dim2mvQ0vowC4J2dlqUYcNkOvQ Eq8MmKKOHnRN7riXgPctygAzbswVEyEyE6wKBpwW3eZ3ad4tUFeqTGRau4zrfjQPhYSis9Mf626 gG8jEnGGFhM2Js6K509EqWRVfqhUL7ca3xGP8V5mpqOJboNdr2D2w8czMW126bmkjoZXNL41YeU tBfXJYLbzY9qZ82GS/CVY54T1WxgmN4AWLp1HYfxTjAL2lSKgjjLzJH/nh6mHv2i4/O4NF6wTsO TaDNA+nGPNOl1aXoE9FEupHafWxc8oHS81mP3QDlSzazY5bLb5/UfqUWCTvhg9w== X-Received: by 2002:a17:90b:4c:b0:366:19da:832f with SMTP id 98e67ed59e1d1-36951b75e31mr23314348a91.17.1779268052171; Wed, 20 May 2026 02:07:32 -0700 (PDT) X-Received: by 2002:a17:90b:4c:b0:366:19da:832f with SMTP id 98e67ed59e1d1-36951b75e31mr23314303a91.17.1779268051647; Wed, 20 May 2026 02:07:31 -0700 (PDT) Received: from hu-kotarake-hyd.qualcomm.com ([202.46.23.25]) by smtp.gmail.com with ESMTPSA id 98e67ed59e1d1-369517a8612sm17079903a91.12.2026.05.20.02.07.27 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 20 May 2026 02:07:31 -0700 (PDT) From: Rakesh Kota Date: Wed, 20 May 2026 14:37:12 +0530 Subject: [PATCH 2/2] regulator: qcom_usb_vbus: add support for qcom,pm4125-vbus-reg 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 Message-Id: <20260520-add_pm4125-vbus-reg-v1-2-f6d15d7dbbe8@oss.qualcomm.com> References: <20260520-add_pm4125-vbus-reg-v1-0-f6d15d7dbbe8@oss.qualcomm.com> In-Reply-To: <20260520-add_pm4125-vbus-reg-v1-0-f6d15d7dbbe8@oss.qualcomm.com> To: Liam Girdwood , Mark Brown , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Wesley Cheng Cc: linux-arm-msm@vger.kernel.org, linux-kernel@vger.kernel.org, devicetree@vger.kernel.org, jishnu.prakash@oss.qualcomm.com, kamal.wadhwa@oss.qualcomm.com, Rakesh Kota X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=ed25519-sha256; t=1779268039; l=6127; i=rakesh.kota@oss.qualcomm.com; s=20250919; h=from:subject:message-id; bh=vo9QszaRVCVBLynmMk2Tlo0NH6xJ4ftEm46gUfYlE+w=; b=5oRumBCBbUQiupUigj6X/K4pwShmcJcZu8NFnst5iC/MrZgyo6e+UoBVpLJNTk9JHbmssG1UE gO6dez28JwtAaRgcK6iTYmLXbJbbei3eeXiMA8IkEfhMz+18eZ1eme7 X-Developer-Key: i=rakesh.kota@oss.qualcomm.com; a=ed25519; pk=dFhv9yPC8egZglsSLDMls08cOvZKZkG6QQn1a/ofwNU= X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNTIwMDA4NyBTYWx0ZWRfX8HHvAAuQvmNG P47K/kGS+CUO+Ou/a6obt5khvJTNtoXfxiPZCdWK38iia4zaRj+9wOZY+Lxkk9W6ml2XAJsze34 msa+hrkufl9+qnnjah9elKGp0KGrL2Uw78c81C7JJiWdBsgtd0NUj59HnOTgBtpIUkFvIoDvvdR H4xJuHThJis8vppRXY3p8ksOWNClCWHdgn0On7tIZnr0Y/YlCsL0pVb/3Yzfg0+pB3OUvws14pI aUWOGvq/cXit3UqJIFrRey62tURndq75uZgywwCwvXOFePcsxx+Yf7pSRua4a9FHIY0h1c6Hm29 ojD87PAL+H3espCxywCEMD3ZUxG+s7SqQSvp2s7uUb7xAPbxe2/lYXl2xHdhnLTRqDZZTt4Kv59 3wL8TNxmIsPFeHzUS7L5GqEKB2uE34IosUUw68AqgnHYWhzpPu76djWiwiTrBwO6icBPSicVT53 rAWRhLQP0EiS0THjKTg== X-Authority-Analysis: v=2.4 cv=Oc6oyBTY c=1 sm=1 tr=0 ts=6a0d79d5 cx=c_pps a=0uOsjrqzRL749jD1oC5vDA==:117 a=ZePRamnt/+rB5gQjfz0u9A==:17 a=IkcTkHD0fZMA:10 a=NGcC8JguVDcA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=rJkE3RaqiGZ5pbrm-msn:22 a=EUspDBNiAAAA:8 a=xNrmRdIuzdWpR3jzgYgA:9 a=QEXdDO2ut3YA:10 a=mQ_c8vxmzFEMiUWkPHU9:22 X-Proofpoint-GUID: nAvshhZUCtnzIK90TgR82jMrNQLXdEns X-Proofpoint-ORIG-GUID: nAvshhZUCtnzIK90TgR82jMrNQLXdEns 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-05-20_01,2026-05-18_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 suspectscore=0 adultscore=0 clxscore=1015 bulkscore=0 malwarescore=0 priorityscore=1501 impostorscore=0 lowpriorityscore=0 phishscore=0 spamscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2605130000 definitions=main-2605200087 The PM4125 PMIC uses a different register layout for USB VBUS control compared to PM8150B. On PM4125, CMD_OTG is at offset 0x50, OTG_CFG is at 0x56, and offset 0x52 is a 2-bit VBOOST voltage selector rather than a current-limit selector. Introduce per-compatible regulator descriptor data to accommodate these differences. This keeps the existing PM8150B current-limit logic intact while adding a dedicated voltage-selector path for PM4125. Signed-off-by: Rakesh Kota --- drivers/regulator/qcom_usb_vbus-regulator.c | 102 ++++++++++++++++++++++++= ---- 1 file changed, 88 insertions(+), 14 deletions(-) diff --git a/drivers/regulator/qcom_usb_vbus-regulator.c b/drivers/regulato= r/qcom_usb_vbus-regulator.c index cd94ed67621fee9f6d7a0327054db0ebab6cc7ee..3d425452a0b35b35c4b454f84eb= 28e87cc8ba4f8 100644 --- a/drivers/regulator/qcom_usb_vbus-regulator.c +++ b/drivers/regulator/qcom_usb_vbus-regulator.c @@ -20,10 +20,35 @@ #define OTG_CFG 0x53 #define OTG_EN_SRC_CFG BIT(1) =20 +#define PM4125_CMD_OTG 0x50 +#define PM4125_VBOOST_CFG 0x52 +#define PM4125_VBOOST_CFG_MASK GENMASK(1, 0) +#define PM4125_OTG_CFG 0x56 +#define PM4125_OTG_EN_SRC_CFG BIT(0) + +struct qcom_usb_vbus_reg_data { + u16 cmd_otg; + u16 otg_cfg; + u8 otg_en_src_cfg; + u16 csel_reg; + u8 csel_mask; + const unsigned int *curr_table; + unsigned int n_current_limits; + u16 vsel_reg; + u8 vsel_mask; + const unsigned int *volt_table; + unsigned int n_voltages; + const struct regulator_ops *ops; +}; + static const unsigned int curr_table[] =3D { 500000, 1000000, 1500000, 2000000, 2500000, 3000000, }; =20 +static const unsigned int pm4125_vboost_table[] =3D { + 4250000, 4500000, 4750000, 5000000, +}; + static const struct regulator_ops qcom_usb_vbus_reg_ops =3D { .enable =3D regulator_enable_regmap, .disable =3D regulator_disable_regmap, @@ -32,19 +57,43 @@ static const struct regulator_ops qcom_usb_vbus_reg_ops= =3D { .set_current_limit =3D regulator_set_current_limit_regmap, }; =20 -static struct regulator_desc qcom_usb_vbus_rdesc =3D { - .name =3D "usb_vbus", - .ops =3D &qcom_usb_vbus_reg_ops, - .owner =3D THIS_MODULE, - .type =3D REGULATOR_VOLTAGE, +static const struct regulator_ops qcom_usb_vbus_pm4125_reg_ops =3D { + .enable =3D regulator_enable_regmap, + .disable =3D regulator_disable_regmap, + .is_enabled =3D regulator_is_enabled_regmap, + .get_voltage_sel =3D regulator_get_voltage_sel_regmap, + .set_voltage_sel =3D regulator_set_voltage_sel_regmap, + .list_voltage =3D regulator_list_voltage_table, +}; + +static const struct qcom_usb_vbus_reg_data pm8150b_data =3D { + .cmd_otg =3D CMD_OTG, + .otg_cfg =3D OTG_CFG, + .otg_en_src_cfg =3D OTG_EN_SRC_CFG, + .csel_reg =3D OTG_CURRENT_LIMIT_CFG, + .csel_mask =3D OTG_CURRENT_LIMIT_MASK, .curr_table =3D curr_table, .n_current_limits =3D ARRAY_SIZE(curr_table), + .ops =3D &qcom_usb_vbus_reg_ops, +}; + +static const struct qcom_usb_vbus_reg_data pm4125_data =3D { + .cmd_otg =3D PM4125_CMD_OTG, + .otg_cfg =3D PM4125_OTG_CFG, + .otg_en_src_cfg =3D PM4125_OTG_EN_SRC_CFG, + .vsel_reg =3D PM4125_VBOOST_CFG, + .vsel_mask =3D PM4125_VBOOST_CFG_MASK, + .volt_table =3D pm4125_vboost_table, + .n_voltages =3D ARRAY_SIZE(pm4125_vboost_table), + .ops =3D &qcom_usb_vbus_pm4125_reg_ops, }; =20 static int qcom_usb_vbus_regulator_probe(struct platform_device *pdev) { struct device *dev =3D &pdev->dev; + const struct qcom_usb_vbus_reg_data *data; struct regulator_dev *rdev; + struct regulator_desc *rdesc; struct regmap *regmap; struct regulator_config config =3D { }; struct regulator_init_data *init_data; @@ -57,27 +106,51 @@ static int qcom_usb_vbus_regulator_probe(struct platfo= rm_device *pdev) return ret; } =20 + data =3D of_device_get_match_data(dev); + if (!data) + return -EINVAL; + regmap =3D dev_get_regmap(dev->parent, NULL); if (!regmap) { dev_err(dev, "Failed to get regmap\n"); return -ENOENT; } =20 - init_data =3D of_get_regulator_init_data(dev, dev->of_node, - &qcom_usb_vbus_rdesc); + rdesc =3D devm_kzalloc(dev, sizeof(*rdesc), GFP_KERNEL); + if (!rdesc) + return -ENOMEM; + + rdesc->name =3D "usb_vbus"; + rdesc->ops =3D data->ops; + rdesc->owner =3D THIS_MODULE; + rdesc->type =3D REGULATOR_VOLTAGE; + rdesc->enable_reg =3D base + data->cmd_otg; + rdesc->enable_mask =3D OTG_EN; + + if (data->curr_table) { + rdesc->curr_table =3D data->curr_table; + rdesc->n_current_limits =3D data->n_current_limits; + rdesc->csel_reg =3D base + data->csel_reg; + rdesc->csel_mask =3D data->csel_mask; + } + + if (data->volt_table) { + rdesc->volt_table =3D data->volt_table; + rdesc->n_voltages =3D data->n_voltages; + rdesc->vsel_reg =3D base + data->vsel_reg; + rdesc->vsel_mask =3D data->vsel_mask; + } + + init_data =3D of_get_regulator_init_data(dev, dev->of_node, rdesc); if (!init_data) return -ENOMEM; =20 - qcom_usb_vbus_rdesc.enable_reg =3D base + CMD_OTG; - qcom_usb_vbus_rdesc.enable_mask =3D OTG_EN; - qcom_usb_vbus_rdesc.csel_reg =3D base + OTG_CURRENT_LIMIT_CFG; - qcom_usb_vbus_rdesc.csel_mask =3D OTG_CURRENT_LIMIT_MASK; config.dev =3D dev; config.init_data =3D init_data; config.of_node =3D dev->of_node; config.regmap =3D regmap; =20 - rdev =3D devm_regulator_register(dev, &qcom_usb_vbus_rdesc, &config); + rdev =3D devm_regulator_register(dev, rdesc, &config); if (IS_ERR(rdev)) { ret =3D PTR_ERR(rdev); dev_err(dev, "not able to register vbus reg %d\n", ret); @@ -85,13 +158,14 @@ static int qcom_usb_vbus_regulator_probe(struct platfo= rm_device *pdev) } =20 /* Disable HW logic for VBUS enable */ - regmap_update_bits(regmap, base + OTG_CFG, OTG_EN_SRC_CFG, 0); + regmap_update_bits(regmap, base + data->otg_cfg, data->otg_en_src_cfg, 0); =20 return 0; } =20 static const struct of_device_id qcom_usb_vbus_regulator_match[] =3D { - { .compatible =3D "qcom,pm8150b-vbus-reg" }, + { .compatible =3D "qcom,pm8150b-vbus-reg", .data =3D &pm8150b_data }, + { .compatible =3D "qcom,pm4125-vbus-reg", .data =3D &pm4125_data }, { } }; MODULE_DEVICE_TABLE(of, qcom_usb_vbus_regulator_match); --=20 2.34.1