From nobody Thu Sep 24 23:33:31 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 B99CF51A149 for ; Fri, 18 Sep 2026 16:43:32 +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=1789749816; cv=none; b=fiN4aPaftSHfIL3REeYS3myhcPn1uH2FWof8QeNE8AfHOUKWwgWwOtnWSxoc7vJ/ocPDMKtQEnHzwcWwnMP5qzI80UfIJYiUnEiM1EFVmprGBOoIpIrkzEx46bwOjdvZ2PYhHX36jcaLMp1an0jRK/lO/NGRNocbMI2AUHHHeB4= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1789749816; c=relaxed/simple; bh=8UAuFJnUEqKcm2XD1+YeWZD/invavXXey/59IElm+FI=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=RJRU6VqmHKrtIqdRPjM9IBsjzjGit+F4Wkacv7VPr1tiFC0VsGHpr7LrNfkegnUl51xCbknnKe7i+laPqU7NKJ5ok3DkfFboxHN9F9PguZZpBX2Nbr1gKlvS0A96quE9xBJ+0dbemrZalv0fA9cZ0LOXVvzNAd9u9+pNgciNqqw= 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=EznILnNS; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=aqSlqKcg; 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="EznILnNS"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="aqSlqKcg" Received: from pps.filterd (m0279864.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 68IDOR0M3645808 for ; Fri, 18 Sep 2026 16:43:32 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= TXhD2qfyTH3ir9nwCSQhy3VirEjLkSnYOqGNbJa/sSw=; b=EznILnNSgYugzLNG BZlZXV4xqBLhARQ5se3RElfuqitGY7T5atk6bYWRNRnFHbfw5lBPkNT4Ew2WstVW MX30rNgLrN+xzmFkwXW7vcpbRfH5smgNyRsO/a+OpEKrIpQJxmcjvBvV9E6YlOey aSlxdBeV3wbfy0VB97QrQE+nOahy5GKlEyqRmKnxA9hPYd+Dtafb1DBdbBLvBecG 4Y0jJmx1cpSplNBR1paQP5yaLB5peY49z7WM05YndljAAMqfW/HuX35oHMLHLm8e aG5FE/7RFnyhg9myTBm+xQPzT19D9p/OL1refAb4lbynO72nsMpidYpLVJSWX1Kf hNXCEQ== Received: from mail-pl1-f199.google.com (mail-pl1-f199.google.com [209.85.214.199]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4gs37dhk3x-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Fri, 18 Sep 2026 16:43:32 +0000 (GMT) Received: by mail-pl1-f199.google.com with SMTP id d9443c01a7336-2d7443e0f0bso17980365ad.1 for ; Fri, 18 Sep 2026 09:43:31 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1789749811; x=1790354611; darn=vger.kernel.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :content-type:mime-version:subject:date:from:from:to:cc:subject:date :message-id:reply-to:content-type; bh=TXhD2qfyTH3ir9nwCSQhy3VirEjLkSnYOqGNbJa/sSw=; b=aqSlqKcgcqNzeA/ul+j6IoO6+medR+xAJH+bF5rZbHZfdCA1OhTxuI+EOchQvIvTxO tTN3iSwe6GWNLcpBxoxtqprzH0y3hD5tqd17AkhsL8Uuejr+i+F9vTqED75myhR3Bm89 4WbCEWj/Uh2R6lInHONk7tEf3E7Bsuy6QQxPsAYJr22nRQ+JEkX5URieNEldjwq8oO01 +HFiacfn0sbMjZ9l9drD9ONVi8r8SHPkD5kU3YoE7s7LNQ8t1H2rcHNy3A2Cv5Zt5DMC UcwmFn/IzeqZutN1Z/1cg8LAKgMTc6+lOq0IikX75CeT7GCfUvXCqzApfJ5wJKBUYRdu uieg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20260707; t=1789749811; x=1790354611; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :content-type:mime-version:subject:date:from:x-gm-gg :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to :content-type; bh=TXhD2qfyTH3ir9nwCSQhy3VirEjLkSnYOqGNbJa/sSw=; b=dMzdxsc5A1Wdnh3CNaQMWT+xmuhexjzDjwpw9+AA5rXpqua+iTdpXGIqgvGEdiuRAC v1yhDugpbiQQHHDfALdrxXjCA2Va2WkL0DNHJ4ChZSd8WG/F8LHjwQloh0F4EKskuX5d R5FJBSDCMKlRm/Mk+e8SyIo6fJfghF5a6SX08OvsKsCb9eE5m117OIm6d1ejDK/qN/i5 XzbDkcGrI3krdW/b7bk3xX+9ogFb8bV0bG2tOJHrawLHZD9hGp3h5E5CLcLC6VOEFbRR NSzwAfEjp7DgXKnQBOfN47GwTTYRjgVdtiwzDU14uExaYYSh+awCXRfTwrA6Tg1vzF6e Yf1A== X-Forwarded-Encrypted: i=1; AKwUvBx1MxAQonl/DgnYkOEux4FAW/2wThIFo75LYjeToNzFZ09U+7k7qzk2VKEaHLiXaomSdSEkNQ9JAf6M1so=@vger.kernel.org X-Gm-Message-State: AFuF++mTRKna+/K+5vXpRCCuREog8zCxw4NBlRL/S0En+oh6UJJekKW/ 0VebJW2yffrFqVIP0hKnny+0Le72FUq7wCHjgdpcAQTtiBkv12r7UXZKpwFkOUYucXGswdUUnVK 3gPCDZphYysw7k74/X4QbhXcZ44mvck5mbFmu/W4ypGt4666dS/ZKraa3ciXzh79AXOQ= X-Gm-Gg: AYBFou2p5LM+4zv8aTWG8HhA2hZiXbcS6dPvQ6RdhvSVlT2ISr6G2w294bkwFX7YaRK 3W8hZHMmF1sgAL0vesWoKS2sF0FsQcpHtQr2/b/bbBv4TjZsXcop3LSSVDbKaz+QTqU7i38yl4J XvgVCDA2oblouw5pHgFj3Ai1g6JRsz+9pKicN8SRhVH8VC7+QFcRNNPHtpn8nvenO+wtI1njk3V bOI/38TXosqDAetFOklgIhtZEExUMIz5UXjry76qt7JHDFWqNfWVtLCp2/CrQjT7hGzAuTw0sUH 58Af+fxEGychpWI+7sd6y/4B8QU4FnU3sNm9XNd55GSlEAxYC8DlVdGlKlHqvqOSjNv89Akaiq/ 3c/BTAjnWxoLEX+HNEQ== X-Received: by 2002:a17:902:db0c:b0:2dd:ad73:c93b with SMTP id d9443c01a7336-2ddb1bebbecmr66585295ad.28.1789749811396; Fri, 18 Sep 2026 09:43:31 -0700 (PDT) X-Received: by 2002:a17:902:db0c:b0:2dd:ad73:c93b with SMTP id d9443c01a7336-2ddb1bebbecmr66584925ad.28.1789749810887; Fri, 18 Sep 2026 09:43:30 -0700 (PDT) Received: from [10.213.109.130] ([202.46.23.25]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-2ddb754e390sm11161895ad.32.2026.09.18.09.43.25 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 18 Sep 2026 09:43:29 -0700 (PDT) From: Jishnu Prakash Date: Fri, 18 Sep 2026 22:12:45 +0530 Subject: [PATCH 1/6] dt-bindings: mfd: pm8008: Add qcom,pm8010-i2c compatible 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: <20260918-pm8010_i2c_support-v1-1-de33d78fad9d@oss.qualcomm.com> References: <20260918-pm8010_i2c_support-v1-0-de33d78fad9d@oss.qualcomm.com> In-Reply-To: <20260918-pm8010_i2c_support-v1-0-de33d78fad9d@oss.qualcomm.com> To: Lee Jones , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Guru Das Srinagesh , Liam Girdwood , Mark Brown Cc: linux-arm-msm@vger.kernel.org, mfd@lists.linux.dev, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, Konrad Dybcio , Dhruvin Rajpura , Nihal Kumar Gupta , Kamal Wadhwa , Oleg Keri , Jishnu Prakash X-Mailer: b4 0.15.2 X-Developer-Signature: v=1; a=ed25519-sha256; t=1789749799; l=1049; i=jishnu.prakash@oss.qualcomm.com; s=20251014; h=from:subject:message-id; bh=jKXqOxLBkEN4smsi8ItCByyRDNS39ib2DMxiFpu43dE=; b=ifKFWo3gjLLDagND+qAkNzUjHEUMeJgS99ZjJlS0Qj895XjNUp66tEIjBkKEHgkPZogowouII 9so46iR7otrCXQBG1eR90KSLJir/jyvrsBtbk9CTL5Ntn4TZISaQfLw X-Developer-Key: i=jishnu.prakash@oss.qualcomm.com; a=ed25519; pk=g89pXdLVwRjdTeQ+uX1QzvBO346E3hQAc1N7fcTXgmk= X-Proofpoint-Spam-Info: AW1haW4tMjYwOTE4MDIzOCBTYWx0ZWRfXy/dDms7+JvaM Nd+PihZUaUeqkcs2azQJiG/KQXuhKZGFwZ4rjW3SLdrr4R+wSYLs2YSCTFA3vG+bgSfX3nKhlCA Xz1laYPhRhUrjCeTLaAo5ELw+p4g6Ig= X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwOTE4MDIzOCBTYWx0ZWRfXyqtTxHwxquB4 lMvswcLLrM5pYIorl98o/SoXAmvBeXNWJkF5VQgWH6oarp0H8yIHh9YTroXHdne6+X1386kogVZ lpRvFqIrukFqUHd5jjklM42HLBIt+bQwNj4ewJUog70UvLccrK9ayPXJRP4hM8NptU7mh/fw0kY AUXvQ5mO7hog6Ww4lKJwqWEtZhpaJhwCqAWD5YyIVE0E4BOQZ6U9EaUGw+qhrprYn1BAzDFaGDM LMdN/jqgF6DHUv2eahtaaI4IRvzSz6DSTsbsjCBJSIfghk2HtBd8JT5Xq0hQcwL6tSHzTwgtRGg fgGfJPdY9A2nkCCs4w49naeGvk1x4ekxmXVlZrkzBenNVsEIhnjZ35cyuFpQ7gI6yA8zauWmRVn dCMIse7KwE51hgjH/pxyDifyFJFnqKEHyDamGQM6uGFsfJX6gV5bQiLgZ94zCMSH1MX88WsHf15 EWGePEt7msvl1T9CsmQ== X-Proofpoint-GUID: BVdWytl_DLpAkbrGMVRbTQB4VAWIAK86 X-Proofpoint-ORIG-GUID: BVdWytl_DLpAkbrGMVRbTQB4VAWIAK86 X-Authority-Analysis: v=2.4 cv=R+mWitRX c=1 sm=1 tr=0 ts=6aad6a34 cx=c_pps a=JL+w9abYAAE89/QcEU+0QA==:117 a=ZePRamnt/+rB5gQjfz0u9A==:17 a=IkcTkHD0fZMA:10 a=VdqzKS8jKosA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=DJpcGTmdVt4CTyJn9g5Z:22 a=EUspDBNiAAAA:8 a=fs3tcOIB28yc_fyh2y0A:9 a=QEXdDO2ut3YA:10 a=324X-CrmTo6CU4MGRt3R:22 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-09-18_04,2026-09-16_02,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 lowpriorityscore=0 adultscore=0 bulkscore=0 impostorscore=0 clxscore=1015 spamscore=0 suspectscore=0 malwarescore=0 priorityscore=1501 phishscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2609040000 definitions=main-2609180238 From: Konrad Dybcio The PM8010 can communicate over both SPMI and I2C, based on whether GPIO1 is pulled high or low respectively. Since the qcom,pm8010 compatible is already taken in the SPMI PMIC bindings and that set of properties is heavily tailored towards SPMI, introduce a secondary compatible to handle the I2C case. Signed-off-by: Konrad Dybcio Signed-off-by: Jishnu Prakash Tested-by: Oleg Keri # Lenovo Yoga Slim 7x Gen 11 (Glym= ur) --- Documentation/devicetree/bindings/mfd/qcom,pm8008.yaml | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/Documentation/devicetree/bindings/mfd/qcom,pm8008.yaml b/Docum= entation/devicetree/bindings/mfd/qcom,pm8008.yaml index 0c6e1870db1d..2701aa755f31 100644 --- a/Documentation/devicetree/bindings/mfd/qcom,pm8008.yaml +++ b/Documentation/devicetree/bindings/mfd/qcom,pm8008.yaml @@ -16,7 +16,9 @@ description: | =20 properties: compatible: - const: qcom,pm8008 + enum: + - qcom,pm8008 + - qcom,pm8010-i2c =20 reg: maxItems: 1 --=20 2.43.0 From nobody Thu Sep 24 23:33:31 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 5892A51AEE7 for ; Fri, 18 Sep 2026 16:43:39 +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=1789749821; cv=none; b=mMuNy5DCt6SWTUzEJVe2sBovW8q+KLd5AZgeqmAIg3wuSYd3biap03J3a1htxK1x8tMy+XYGd2COa4bxyymTvjal2Oxl1sqVIPrlI0e8XSe91QAbVGaidfx7aqP2wsulCkgEzliDZXJND0F3fyBjalT0mdKkTqy5MVTIb0Asjo0= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1789749821; c=relaxed/simple; bh=r6nh29wAJjYRiIKQlxHgzstJ3bAGP6KKtdHK4vRjd9s=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=LBlGonqIuez0ctWV8oUFQFNXIs5khjEyUGPaOSBeXWtpvQSOGkYntFsyOoCIBT1+n4Ex/d5UEN3/s2IwKqgGGsXJlIumO178CZud717ND1n4lZWS3sXktQcasSmnWtCs8+aC0ncCwxOkQDuoUbsFeyD1faqDnc7jdVyjknAwqdY= 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=D0uu2389; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=E1FHrHwv; 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="D0uu2389"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="E1FHrHwv" 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 68IFcL65345516 for ; Fri, 18 Sep 2026 16:43:38 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= RQ79TN/uH+2fVWlY3xaojEDQlE7cV4PHqrghx52HYqE=; b=D0uu2389zLS8kNDC 5jswC41EwO7vCB5LzzTXF3jkPJe3aALVAUtJ50MH16/3YtVtrray5n3J74JfZv0t nAFn+IeVad/V50iIijU2bH2gLGXC8LcvaHI3sDXHeaDJmPmO94WGkXvjRzEfYxVw 7RIENvGrLvZlxX5wBocPbNTgt53pjvbpIe1yCi5L0E0TN3/7FLJkkvnaUGdWhiXl qYmwiuiPSPdZn6q4LBpY6+AgBqhnLTDuYA+Sgf/vPP/7qud2l5RZ/kA+7DF2PjLo RSe60Y6g5TS68QhaeMSGHf0MOZKRBY6VGF5VjjAr5tWumse0Ks/Gs42rkJ/9/THZ B4qOBw== Received: from mail-pl1-f200.google.com (mail-pl1-f200.google.com [209.85.214.200]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4gs84a09yf-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Fri, 18 Sep 2026 16:43:38 +0000 (GMT) Received: by mail-pl1-f200.google.com with SMTP id d9443c01a7336-2ccb687f82eso13856515ad.3 for ; Fri, 18 Sep 2026 09:43:38 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1789749817; x=1790354617; darn=vger.kernel.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :content-type:mime-version:subject:date:from:from:to:cc:subject:date :message-id:reply-to:content-type; bh=RQ79TN/uH+2fVWlY3xaojEDQlE7cV4PHqrghx52HYqE=; b=E1FHrHwvZmA7/71MsSwYpB9eW5I4nIkpLcePZVmC0iuNYRcKUz1sWgmaKqQ+RsdyqN u9stG5ON0lMasBXUMSGkr5RJZDTpapmPHRuPM912eCPrJI++boawNEzxYuYG7/+Q5dPc bw90dHbYGtqFIsBUq3Y8H9530lHiECx8je3W38RNFZrPMjnK0qwE2BNwoHj8UGfj+Ny8 7hZlK8l+3GJuxAsMKS1abciTtjnUOlNUKRJ78SUCvrTxNmv9VfoPuXKsXiOCH7XiGwQU vy7zWfs42C4BpnFvoiAbG3Fv3D/f6Ct1v5rHY7WiI/FLMwyFqAn2mLMsIFZNaOR4FWIp gfhA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20260707; t=1789749817; x=1790354617; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :content-type:mime-version:subject:date:from:x-gm-gg :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to :content-type; bh=RQ79TN/uH+2fVWlY3xaojEDQlE7cV4PHqrghx52HYqE=; b=meX6V42pHlCsinVioy8NrAhBrXvEk9ctLaZ76pKlA7kr41U4JrvCmeejBiZNUf/0SB cis6/D4EwiU59S1V7JE3tkZQ7xk580zPNKXX8sWSM54tnLi6yPbIgl44Q1Tw6jlwX3my ApgoxwS4NjQWBcnP4wAW2R1PnmfNUBwfpXoqANfIL4n+MjPxyG78sVCIi94Vaec93tFq QFJnjq/XrVZ+aKl4i46Zuv8jBUjXL+x8BtYwVmMLYFshWjbRviWeRJCBtt9TQTMcwcWZ Z2jFmsmHX2L8s8o5k3LtNDrApdW0QmzxB5KjRizNXu4N3dtuCUpPukmErJ6LRhxAWrgA VnhQ== X-Forwarded-Encrypted: i=1; AKwUvByc21LcVkXpPGgmEd4NDjshPV6PS12COtfNBpSA+eZ32ytcYSlJkCNNMtWM6IRPDUG4DA9MZD+SqvEXQEs=@vger.kernel.org X-Gm-Message-State: AFuF++l40lk+XrwExTilOYmIa5ehlU/aAFy2x0Vcp4oEgmnzA2i4/wQY 3KPJwr8QtTaZlTIJTQcoOiNW15yog0qYxUeVQs58ZlOU2ww82Mi3J2HNyvm6AtVWwQYWlH1s9v/ /wHphcnT6mw+dCvMr5cbrRTKNWwXhu6mmPKEWTryd6b34o/3tQGqc5neXb2lDK7hvtYc= X-Gm-Gg: AYBFou3ewv1Qnv6nyZOW7RL1mH4k7bJc61zWugkoKeqBpKcbgjYLAfCjGDyyOFgOz4v FpIW+OrW9qTSd9bIjSv6iPxBeS6ubKFD594k6X141S294zcACKBY4i/vFD90UngvaqZrhKn2BwP fLakrPvBhmV8tCN994J19hBujGTqg4C1mKwEERin4s8uv3PQrrGzxXEBDYeH14UlhRfGNgZdkki hBCYb6cQvbB7TPofGRYZW8zb5G2ORdq3D5r0TFXUBfsywPLfwgdIHoQ3cxDQqqQJ44yAJEKqcrs a2NFo2OE80YQiJCfAn4e0lSpYVV1MG4neNAR1iBB2o657lILo8lU9H9h5c1NxyydLEWObpK1ona rMEe8l8X/HkiJUcP5fA== X-Received: by 2002:a17:902:7296:b0:2dd:c100:b2c5 with SMTP id d9443c01a7336-2ddc100b325mr1991675ad.48.1789749817315; Fri, 18 Sep 2026 09:43:37 -0700 (PDT) X-Received: by 2002:a17:902:7296:b0:2dd:c100:b2c5 with SMTP id d9443c01a7336-2ddc100b325mr1991285ad.48.1789749816706; Fri, 18 Sep 2026 09:43:36 -0700 (PDT) Received: from [10.213.109.130] ([202.46.23.25]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-2ddb754e390sm11161895ad.32.2026.09.18.09.43.31 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 18 Sep 2026 09:43:35 -0700 (PDT) From: Jishnu Prakash Date: Fri, 18 Sep 2026 22:12:46 +0530 Subject: [PATCH 2/6] regulator: pm8008: Add PM8010 support 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: <20260918-pm8010_i2c_support-v1-2-de33d78fad9d@oss.qualcomm.com> References: <20260918-pm8010_i2c_support-v1-0-de33d78fad9d@oss.qualcomm.com> In-Reply-To: <20260918-pm8010_i2c_support-v1-0-de33d78fad9d@oss.qualcomm.com> To: Lee Jones , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Guru Das Srinagesh , Liam Girdwood , Mark Brown Cc: linux-arm-msm@vger.kernel.org, mfd@lists.linux.dev, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, Konrad Dybcio , Dhruvin Rajpura , Nihal Kumar Gupta , Kamal Wadhwa , Oleg Keri , Jishnu Prakash X-Mailer: b4 0.15.2 X-Developer-Signature: v=1; a=ed25519-sha256; t=1789749799; l=7817; i=jishnu.prakash@oss.qualcomm.com; s=20251014; h=from:subject:message-id; bh=9RwsW1Pk6eeMfH8zWmwNuWxanj2MRgu2Kiq84v5Od2U=; b=xnvb9bwS2ml7URYhsuLgjyAQ4Gfy6td9BGoXKoTBpgfWTWsxsa4kT1iPyZCm9lv/Z1vtz3dfr dhs2wOmK61aBI3Q2P5VybgCS4fz/1tSpNbsrpV8SxnPJfAL4FMUpoF7 X-Developer-Key: i=jishnu.prakash@oss.qualcomm.com; a=ed25519; pk=g89pXdLVwRjdTeQ+uX1QzvBO346E3hQAc1N7fcTXgmk= X-Proofpoint-GUID: X5OmBtbhIlCCM1AnMoisTdCWbwGNqy_n X-Proofpoint-Spam-Info: AW1haW4tMjYwOTE4MDIzOCBTYWx0ZWRfX5wIRAq564zTm mDiTaiES31M80GvIL+vY8Mxk5bdoJsvGUdD7gvVtpSwL/KVajc6Qe9PuClPfZZUVBQDqRMgDef9 TMmsYgP58CAdAG6Ct7aCrBX14dW/pr0= X-Proofpoint-ORIG-GUID: X5OmBtbhIlCCM1AnMoisTdCWbwGNqy_n X-Authority-Analysis: v=2.4 cv=MLD1C8Zl c=1 sm=1 tr=0 ts=6aad6a3a cx=c_pps a=IZJwPbhc+fLeJZngyXXI0A==:117 a=ZePRamnt/+rB5gQjfz0u9A==:17 a=IkcTkHD0fZMA:10 a=VdqzKS8jKosA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=YMgV9FUhrdKAYTUUvYB2:22 a=EUspDBNiAAAA:8 a=CF1g25cjMhU89PGl3DsA:9 a=QEXdDO2ut3YA:10 a=uG9DUKGECoFWVXl0Dc02:22 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwOTE4MDIzOCBTYWx0ZWRfX7lyJEG58ScDq KH4j26djECgs509NSLVxkaGcuWO1EA9iH8r6RlkUt2HDoppzMpie2zIqqwAF9+mS8Fcmf/OrWXb Byo0g2+hnKW5qfODjCWnWs8Mq0pZz9ukUEaxQtzz65+mBJuXbpeBa25HZp5ahwONPwiFACreoiq e/YuVL9UW3ojjYWny6I/s4vGu1RFK6jFOq3iEZh8B/N8AW9exq0Nu2Sgl2c2vdCofBvBqbIjuIG eybFMM8GhzIJVSKZgm13r6aRwKAuNQ3K66Co801zj7X2VKZCQyZtVBbhsnL8YERY2Mp3atOKas5 +zV3ncyLzFZHbuXtBID1yA8Gdbkin/XRbzpMGPJGy/39L9w9F6/UnVBRPSB1zAoPpuTjGpNnHwK 9ERLGabRsD0JPc+W/rnBUp18GDqbh75/VWF+igzTmkJKUvkew9CrkejYTVFraeKWQSOaVTureAY MYTkDjXumIncGXVPWwg== 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-09-18_04,2026-09-16_02,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 malwarescore=0 phishscore=0 clxscore=1015 lowpriorityscore=0 priorityscore=1501 bulkscore=0 impostorscore=0 spamscore=0 suspectscore=0 adultscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2609040000 definitions=main-2609180238 From: Konrad Dybcio PM8010 is effectively the next generation of PM8008. Like PM8008, PM8010 also has 7 LDOs under it which are used to power camera sensors. The PM8010 LDO are of different types from the PM8008 ones and have different voltage dropout values. PM8010 LDOs do not have a voltage step rate configuration register. Add the necessary changes to support PM8010 LDOs. Signed-off-by: Konrad Dybcio Co-developed-by: Dhruvin Rajpura Signed-off-by: Dhruvin Rajpura Co-developed-by: Jishnu Prakash Signed-off-by: Jishnu Prakash Tested-by: Oleg Keri # Lenovo Yoga Slim 7x Gen 11 (Glym= ur) --- drivers/regulator/qcom-pm8008-regulator.c | 109 +++++++++++++++++++++++---= ---- 1 file changed, 85 insertions(+), 24 deletions(-) diff --git a/drivers/regulator/qcom-pm8008-regulator.c b/drivers/regulator/= qcom-pm8008-regulator.c index 9c9b8be2e15a..b484c0f73eea 100644 --- a/drivers/regulator/qcom-pm8008-regulator.c +++ b/drivers/regulator/qcom-pm8008-regulator.c @@ -39,24 +39,59 @@ struct pm8008_regulator_data { unsigned int base; int min_dropout_uV; const struct linear_range *voltage_range; + int n_linear_ranges; }; =20 -static const struct linear_range nldo_ranges[] =3D { +struct pm8008_match_data { + const bool has_stepper_ctl_reg; + const struct pm8008_regulator_data *regulator_data; + const int num_regulators; +}; + +static const struct linear_range pm8008_nldo_ranges[] =3D { REGULATOR_LINEAR_RANGE(528000, 0, 122, 8000), }; =20 -static const struct linear_range pldo_ranges[] =3D { +static const struct linear_range pm8008_pldo_ranges[] =3D { REGULATOR_LINEAR_RANGE(1504000, 0, 237, 8000), }; =20 +static const struct linear_range pm8010_nldo_ranges[] =3D { + REGULATOR_LINEAR_RANGE(528000, 0, 127, 8000), +}; + +static const struct linear_range pm8010_pldo_ranges[] =3D { + REGULATOR_LINEAR_RANGE(1504000, 0, 255, 8000), +}; + +static const struct linear_range pm8010_pldo_lv_ranges[] =3D { + REGULATOR_LINEAR_RANGE(1800000, 0, 2, 200000), + REGULATOR_LINEAR_RANGE(2608000, 3, 28, 16000), + REGULATOR_LINEAR_RANGE(3104000, 29, 30, 96000), + REGULATOR_LINEAR_RANGE(3312000, 31, 31, 0), +}; + +#define PM8008_REGULATOR(_name, _supply, _base, _dropout, _range) \ + { _name, _supply, _base, _dropout, _range, ARRAY_SIZE(_range) } + static const struct pm8008_regulator_data pm8008_reg_data[] =3D { - { "ldo1", "vdd-l1-l2", 0x4000, 225000, nldo_ranges, }, - { "ldo2", "vdd-l1-l2", 0x4100, 225000, nldo_ranges, }, - { "ldo3", "vdd-l3-l4", 0x4200, 300000, pldo_ranges, }, - { "ldo4", "vdd-l3-l4", 0x4300, 300000, pldo_ranges, }, - { "ldo5", "vdd-l5", 0x4400, 200000, pldo_ranges, }, - { "ldo6", "vdd-l6", 0x4500, 200000, pldo_ranges, }, - { "ldo7", "vdd-l7", 0x4600, 200000, pldo_ranges, }, + PM8008_REGULATOR("ldo1", "vdd-l1-l2", 0x4000, 225000, pm8008_nldo_ranges), + PM8008_REGULATOR("ldo2", "vdd-l1-l2", 0x4100, 225000, pm8008_nldo_ranges), + PM8008_REGULATOR("ldo3", "vdd-l3-l4", 0x4200, 300000, pm8008_pldo_ranges), + PM8008_REGULATOR("ldo4", "vdd-l3-l4", 0x4300, 300000, pm8008_pldo_ranges), + PM8008_REGULATOR("ldo5", "vdd-l5", 0x4400, 200000, pm8008_pldo_ranges), + PM8008_REGULATOR("ldo6", "vdd-l6", 0x4500, 200000, pm8008_pldo_ranges), + PM8008_REGULATOR("ldo7", "vdd-l7", 0x4600, 200000, pm8008_pldo_ranges), +}; + +static const struct pm8008_regulator_data pm8010_reg_data[] =3D { + PM8008_REGULATOR("ldo1", "vdd-l1-l2", 0x4000, 172000, pm8010_nldo_ranges), + PM8008_REGULATOR("ldo2", "vdd-l1-l2", 0x4100, 172000, pm8010_nldo_ranges), + PM8008_REGULATOR("ldo3", "vdd-l3-l4", 0x4200, 80000, pm8010_pldo_lv_range= s), + PM8008_REGULATOR("ldo4", "vdd-l3-l4", 0x4300, 80000, pm8010_pldo_lv_range= s), + PM8008_REGULATOR("ldo5", "vdd-l5", 0x4400, 296000, pm8010_pldo_ranges), + PM8008_REGULATOR("ldo6", "vdd-l6", 0x4500, 80000, pm8010_pldo_lv_range= s), + PM8008_REGULATOR("ldo7", "vdd-l7", 0x4600, 296000, pm8010_pldo_ranges), }; =20 static int pm8008_regulator_set_voltage_sel(struct regulator_dev *rdev, un= signed int sel) @@ -100,7 +135,7 @@ static int pm8008_regulator_get_voltage_sel(struct regu= lator_dev *rdev) } =20 static const struct regulator_ops pm8008_regulator_ops =3D { - .list_voltage =3D regulator_list_voltage_linear, + .list_voltage =3D regulator_list_voltage_linear_range, .set_voltage_sel =3D pm8008_regulator_set_voltage_sel, .get_voltage_sel =3D pm8008_regulator_get_voltage_sel, .enable =3D regulator_enable_regmap, @@ -110,8 +145,10 @@ static const struct regulator_ops pm8008_regulator_ops= =3D { =20 static int pm8008_regulator_probe(struct platform_device *pdev) { + const struct pm8008_match_data *match_data; const struct pm8008_regulator_data *data; struct regulator_config config =3D {}; + const struct platform_device_id *id; struct device *dev =3D &pdev->dev; struct pm8008_regulator *preg; struct regulator_desc *desc; @@ -120,12 +157,20 @@ static int pm8008_regulator_probe(struct platform_dev= ice *pdev) unsigned int val; int ret, i; =20 + id =3D platform_get_device_id(pdev); + if (!id) + return dev_err_probe(dev, -ENODEV, "Missing platform device id\n"); + + match_data =3D (const struct pm8008_match_data *)id->driver_data; + if (!match_data) + return dev_err_probe(dev, -ENODATA, "Missing driver match data\n"); + regmap =3D dev_get_regmap(dev->parent, "secondary"); if (!regmap) return -EINVAL; =20 - for (i =3D 0; i < ARRAY_SIZE(pm8008_reg_data); i++) { - data =3D &pm8008_reg_data[i]; + for (i =3D 0; i < match_data->num_regulators; i++) { + data =3D &match_data->regulator_data[i]; =20 preg =3D devm_kzalloc(dev, sizeof(*preg), GFP_KERNEL); if (!preg) @@ -145,18 +190,21 @@ static int pm8008_regulator_probe(struct platform_dev= ice *pdev) desc->owner =3D THIS_MODULE; =20 desc->linear_ranges =3D data->voltage_range; - desc->n_linear_ranges =3D 1; - desc->uV_step =3D desc->linear_ranges[0].step; - desc->min_uV =3D desc->linear_ranges[0].min; - desc->n_voltages =3D linear_range_values_in_range(&desc->linear_ranges[0= ]); - - ret =3D regmap_read(regmap, preg->base + LDO_STEPPER_CTL_REG, &val); - if (ret < 0) { - dev_err(dev, "failed to read step rate: %d\n", ret); - return ret; + desc->n_linear_ranges =3D data->n_linear_ranges; + desc->n_voltages =3D linear_range_values_in_range_array(desc->linear_ran= ges, + desc->n_linear_ranges); + + if (match_data->has_stepper_ctl_reg) { + ret =3D regmap_read(regmap, preg->base + LDO_STEPPER_CTL_REG, &val); + if (ret < 0) { + dev_err(dev, "failed to read step rate: %d\n", ret); + return ret; + } + val &=3D STEP_RATE_MASK; + desc->ramp_delay =3D DEFAULT_VOLTAGE_STEPPER_RATE >> val; + } else { + desc->ramp_delay =3D DEFAULT_VOLTAGE_STEPPER_RATE; } - val &=3D STEP_RATE_MASK; - desc->ramp_delay =3D DEFAULT_VOLTAGE_STEPPER_RATE >> val; =20 desc->min_dropout_uV =3D data->min_dropout_uV; =20 @@ -179,8 +227,21 @@ static int pm8008_regulator_probe(struct platform_devi= ce *pdev) return 0; } =20 +static const struct pm8008_match_data pm8008_data =3D { + .has_stepper_ctl_reg =3D true, + .regulator_data =3D pm8008_reg_data, + .num_regulators =3D ARRAY_SIZE(pm8008_reg_data), +}; + +static const struct pm8008_match_data pm8010_data =3D { + .has_stepper_ctl_reg =3D false, + .regulator_data =3D pm8010_reg_data, + .num_regulators =3D ARRAY_SIZE(pm8010_reg_data), +}; + static const struct platform_device_id pm8008_regulator_id_table[] =3D { - { .name =3D "pm8008-regulator" }, + { .name =3D "pm8008-regulator", .driver_data =3D (kernel_ulong_t)&pm8008_= data }, + { .name =3D "pm8010-regulator", .driver_data =3D (kernel_ulong_t)&pm8010_= data }, { } }; MODULE_DEVICE_TABLE(platform, pm8008_regulator_id_table); --=20 2.43.0 From nobody Thu Sep 24 23:33:31 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 2AEDD51AEE4 for ; Fri, 18 Sep 2026 16:43:43 +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=1789749826; cv=none; b=LQiMI0OvjYkkJeS20LcZzG5Dm3SmeRS6Qoha26wLevwYkxGNDqBL4BzmIeSFYqtMWggwcP9qoOQBKDoNhANAzCtswWWcL1sIhMontKzMdEoVlmWBAJmhMHofgw2EkGaFRtNYgC9WY6IvIl8DXDha19SUL1qvcrN/2a7W6xcxkOA= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1789749826; c=relaxed/simple; bh=FOW8Kiq98EhIhu/7tX2AAc+0Y+6AW1oGnc3unjB1isE=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=nOgz/il/zQbyzAkAQhq9/UVWZBos2dv+yI+cWKXmYkYN1tHbUkRs31mGNBV79Gc+H28A4vx0N4hw83sUoTDg5oE003f7DBpj+8sO1fC8MfoIgB0Bmda9oSMaSesq+AZWuuzQVB2W3Ts20nXu2ZtkbBpkX8hgdVJ+ztrlGjyZz1I= 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=BFRICBs7; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=QJI5n7eG; 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="BFRICBs7"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="QJI5n7eG" 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 68IFcYGk346161 for ; Fri, 18 Sep 2026 16:43:43 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= wEDVrcahh51PBiKZ8KgTkpBndUo9irvZdAIZOd73FVg=; b=BFRICBs7H2Q1TSqJ rTCdJS64OpIRKjeO561FqY7Sb+fxzB0Y9dadE69fifQTyyvJ4hcIjJUMIAjIllOw Ty/tQQcPbKdQS64/5gaMcLPJwg9lTkGhGFUfxC+vFgDw7HZij/raQlcxg06H8Ap7 7BDJnSuDLgca19xjg1rM9TbOhiXFilIsYll4ZBxd8xEALU7BDVC0fMbTJzNpD/rO fPEf2xHVS1eKRPp63qh7Q8UMw63CEAEv7Hm9H6NCZyNckS3+v3Y6HjBxrwyrI5At YCSH18g89N9Ko1jzpZuLi0SpLGMGWAS/SXy+gwCcgrsoge31JTrJPdPjhwFbRLFk aIYPVQ== 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 4gs84a09yp-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Fri, 18 Sep 2026 16:43:43 +0000 (GMT) Received: by mail-pj1-f70.google.com with SMTP id 98e67ed59e1d1-38e8fee6af3so1452870a91.1 for ; Fri, 18 Sep 2026 09:43:43 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1789749822; x=1790354622; darn=vger.kernel.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :content-type:mime-version:subject:date:from:from:to:cc:subject:date :message-id:reply-to:content-type; bh=wEDVrcahh51PBiKZ8KgTkpBndUo9irvZdAIZOd73FVg=; b=QJI5n7eGHvx4NP8G0PWFz65MQF13TXjGDJx8ta8I3T3s2iH5ihXxr0rX7ETc3WAmrp IVxLA465SAtLmz98M2O51jvjziu0kdKGmGlipi6zxy8VYJELOQiFZxe+kJ5Kle2wZqc4 3UpRulKhCNKWNe4ZDt9qMA8zsBqqXzxbd4mzibF+bmd8CnZeZRjC3B7IsHOKJPEMFOJo JKG34DpYUf9h5IU/U8U5HDsHXZ5qGHdv3uUGG61JeHO7foEsWLKSTmN69tMviOipBvh5 EXRlraKokMHTOe8VzE8+QSqJjxIeEgK+uuOoy9S4Nfa5yanRdKp3Ia35tQM+XXmKnZoD Sv3g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20260707; t=1789749822; x=1790354622; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :content-type:mime-version:subject:date:from:x-gm-gg :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to :content-type; bh=wEDVrcahh51PBiKZ8KgTkpBndUo9irvZdAIZOd73FVg=; b=kHy+HqL3YWl4dFMqXEJ47r8xGojG4Sqs7Yl0CSoay/gtTgm2477/25CoTx18FQdYB/ IxUck2pMuGjVyxYcLpHigl4AD5rNrOwXhbsk5TTA+ZhNx+GnhebC1tIJhqHhXok+RQD/ K0nrW6s8R0cB/KVDxA+2y2CgQBg8GCqFpR2yiBdKWzWUchdlhIPuQZWbVf9ITes6xsr6 aDsSxIOCTMJD8Xe1F+mUgLDjij+hpbnmBnbiXWfu8107MazJUbT3ZbzTOGYUPOi2+htf sLcS/GWC9D+FEZ0sefHLOKQy6M9sUs9+/4bswt4TUny/80M3bhpIiN5Trh0Op4dQ01xl BGhw== X-Forwarded-Encrypted: i=1; AKwUvBz+nU/IlWN+n++3ZzrKcjEWlB4uliOBrelFcFxNaS8GcK3tr//5BI4tbJgP0guQ3IaCUI89ZNPNxjh+N9o=@vger.kernel.org X-Gm-Message-State: AFuF++lfHAyyyDmiJx1FuA2BXqEgJ5JWZYKWShoX4VJgf+rw47xHxcT4 ina6VMHxSo+dVa3hwEPPIIZwsTw0GLgomT2oEjjjauu3YQLYDzusNx1hDMwhmqSqEMFE8VQMf/+ D5OlNd1Q4uhv/2974lcMOaWUbx5tfbNRb9mOnWyv7CfDp3tiIHq1hPazUXTfQXvMNJ0Q= X-Gm-Gg: AYBFou0zvSjLhQ/d2WYT9PFZ673UYIxlRHTJyae8ESvCiclUHU9ZJUJoqNTszu2hdmK LVcnOGCBY/QjoeCf2KNPMQcjpk+8rlGdvtcqNYDSs5bsIpXLbAIXaEHFwlbBedJn8MKwsrVpARW jP4CqVrTsu4kWuDZ5M3uPI4mRoELoIGPOSmCvwMWCFhwtLXVHbPqWdL/T7qPRYpb4HBsgw9H9Rd oFs6V1vqhEq056vHEe8zkLHpp0HAmFIPHf6pOPoJqZGjng5Qg9TsYoxtvJ3fUR7fM6dPalc+eVF Kam8rwATllktDMHORxeHoIKlYCXbfcL7v6v7NLdNjkswM3Gqee6nzWGFdl7Oxzb0RJbkfXhJ7Bs wI4NfQXQYTN3Z0IUy+w== X-Received: by 2002:a17:903:4b0d:b0:2dd:c100:424c with SMTP id d9443c01a7336-2ddc100456amr2489345ad.48.1789749822422; Fri, 18 Sep 2026 09:43:42 -0700 (PDT) X-Received: by 2002:a17:903:4b0d:b0:2dd:c100:424c with SMTP id d9443c01a7336-2ddc100456amr2489015ad.48.1789749821987; Fri, 18 Sep 2026 09:43:41 -0700 (PDT) Received: from [10.213.109.130] ([202.46.23.25]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-2ddb754e390sm11161895ad.32.2026.09.18.09.43.37 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 18 Sep 2026 09:43:41 -0700 (PDT) From: Jishnu Prakash Date: Fri, 18 Sep 2026 22:12:47 +0530 Subject: [PATCH 3/6] regulator: qcom-pm8008: Add PM8010 mode support 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: <20260918-pm8010_i2c_support-v1-3-de33d78fad9d@oss.qualcomm.com> References: <20260918-pm8010_i2c_support-v1-0-de33d78fad9d@oss.qualcomm.com> In-Reply-To: <20260918-pm8010_i2c_support-v1-0-de33d78fad9d@oss.qualcomm.com> To: Lee Jones , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Guru Das Srinagesh , Liam Girdwood , Mark Brown Cc: linux-arm-msm@vger.kernel.org, mfd@lists.linux.dev, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, Konrad Dybcio , Dhruvin Rajpura , Nihal Kumar Gupta , Kamal Wadhwa , Oleg Keri , Jishnu Prakash X-Mailer: b4 0.15.2 X-Developer-Signature: v=1; a=ed25519-sha256; t=1789749799; l=4607; i=jishnu.prakash@oss.qualcomm.com; s=20251014; h=from:subject:message-id; bh=i6ectjJil8esk9p4hU3NPt1eTg+wiGzPdvJNMouCs54=; b=SAwQrv8FslWXdd5QvnVMWyjRwqwDnresQ9lLZDNkBJQ370keYuY5l4iH5O9h8IC/wmZ2QfT6s EWV4NgY7QWtCjuF+i9nygstwOT8DZ0IB1L6li+DFqOMYnBY06apkxtB X-Developer-Key: i=jishnu.prakash@oss.qualcomm.com; a=ed25519; pk=g89pXdLVwRjdTeQ+uX1QzvBO346E3hQAc1N7fcTXgmk= X-Proofpoint-GUID: jeRd-YM-EcRvqOPoNJoL33_DAYUgmzXY X-Proofpoint-Spam-Info: AW1haW4tMjYwOTE4MDIzOCBTYWx0ZWRfXxh2t02gtg5Xu /b9CnJUJRORl/RTo9ThNpE5ZC1/gqgbT/JoUb7biQwzQBAGXmkSRN5fQoIk4RV3i9P47Et+hfM0 l4jIomGwNy1DDB9WcUTqeDxamYPwca8= X-Proofpoint-ORIG-GUID: jeRd-YM-EcRvqOPoNJoL33_DAYUgmzXY X-Authority-Analysis: v=2.4 cv=MLD1C8Zl c=1 sm=1 tr=0 ts=6aad6a3f cx=c_pps a=0uOsjrqzRL749jD1oC5vDA==:117 a=ZePRamnt/+rB5gQjfz0u9A==:17 a=IkcTkHD0fZMA:10 a=VdqzKS8jKosA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=YMgV9FUhrdKAYTUUvYB2:22 a=EUspDBNiAAAA:8 a=azaBX0EM9DmJuHldzdsA:9 a=QEXdDO2ut3YA:10 a=mQ_c8vxmzFEMiUWkPHU9:22 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwOTE4MDIzOCBTYWx0ZWRfX9s3EZEcdFEkj joeToM4F4aSw5k3etxSb89ogRHGb/R8teKoCmK0VwkX053UvrOXP6BFQtGwraQbH1IZM+uYBaIL 0PeFIRy5UArd0L5l7LvO3Y5fNO07CC8jnbH5F3E5yMWNEbt4XQ1bUfEuniq46Ng8Wa+Z+Jb/GHg 3dTfwYqrKgqT1KyhoKTaNPGLY8BCsjcfNfG+W/UP+SEjxzhtt2ZET35IsFQ4qKa/pP+MkAi3665 LUhFGJcpVrA79ZPXrCJ6OPSxYDIjYhb8RbtlBOVJnKLazBWApAOdUIxL9iFd5EjKx48+jUU8czO GMGn9jqckURTssMRZAmqbk9yVrNcbsG9L4bnS3rE8fVFKIEqQ3CUB79unia5HdoP4D98SiArKDY yQAZohYgslieayl4IvDLYKGurm+ObzEB2Nv+7jcFwgLEzh7Tcdw7lY2cWfw47u6ZVC13tGS30/y r7y0Xyaeq4DdIMJCOpQ== 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-09-18_04,2026-09-16_02,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 malwarescore=0 phishscore=0 clxscore=1015 lowpriorityscore=0 priorityscore=1501 bulkscore=0 impostorscore=0 spamscore=0 suspectscore=0 adultscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2609040000 definitions=main-2609180238 From: Dhruvin Rajpura Implement set_mode/get_mode support for PM8010 LDOs using the mode control and status registers to allow clients to vote for LDO modes. Mode voting is not supported in the PM8008 LDOs. Signed-off-by: Dhruvin Rajpura Signed-off-by: Jishnu Prakash Tested-by: Oleg Keri # Lenovo Yoga Slim 7x Gen 11 (Glym= ur) --- drivers/regulator/qcom-pm8008-regulator.c | 75 +++++++++++++++++++++++++++= +++- 1 file changed, 74 insertions(+), 1 deletion(-) diff --git a/drivers/regulator/qcom-pm8008-regulator.c b/drivers/regulator/= qcom-pm8008-regulator.c index b484c0f73eea..9758809a6322 100644 --- a/drivers/regulator/qcom-pm8008-regulator.c +++ b/drivers/regulator/qcom-pm8008-regulator.c @@ -8,6 +8,7 @@ #include #include #include +#include #include #include #include @@ -24,9 +25,19 @@ =20 #define LDO_VSET_LB_REG 0x40 =20 +#define LDO_MODE_CTL1_REG 0x45 +#define MODE_PRIMARY_MASK GENMASK(2, 0) +#define LDO_MODE_NPM 7 +#define LDO_MODE_LPM 4 + #define LDO_ENABLE_REG 0x46 #define ENABLE_BIT BIT(7) =20 +#define LDO_STATUS1_REG 0x08 +#define MODE_STATE_MASK GENMASK(1, 0) +#define MODE_STATE_NPM 3 +#define MODE_STATE_LPM 2 + struct pm8008_regulator { struct regmap *regmap; struct regulator_desc desc; @@ -134,6 +145,51 @@ static int pm8008_regulator_get_voltage_sel(struct reg= ulator_dev *rdev) return regulator_map_voltage_linear_range(rdev, uV, INT_MAX); } =20 +static int pm8010_regulator_set_mode(struct regulator_dev *rdev, unsigned = int mode) +{ + struct pm8008_regulator *preg =3D rdev_get_drvdata(rdev); + unsigned int val; + + switch (mode) { + case REGULATOR_MODE_NORMAL: + val =3D LDO_MODE_NPM; + break; + case REGULATOR_MODE_IDLE: + val =3D LDO_MODE_LPM; + break; + default: + return -EINVAL; + } + + return regmap_update_bits(preg->regmap, preg->base + LDO_MODE_CTL1_REG, + MODE_PRIMARY_MASK, val); +} + +static unsigned int pm8010_regulator_get_mode(struct regulator_dev *rdev) +{ + struct pm8008_regulator *preg =3D rdev_get_drvdata(rdev); + unsigned int val; + int ret; + + ret =3D regmap_read(preg->regmap, preg->base + LDO_STATUS1_REG, &val); + if (ret < 0) + return REGULATOR_MODE_INVALID; + + return (val & MODE_STATE_MASK) =3D=3D MODE_STATE_NPM ? + REGULATOR_MODE_NORMAL : REGULATOR_MODE_IDLE; +} + +static unsigned int pm8010_regulator_of_map_mode(unsigned int mode) +{ + switch (mode) { + case REGULATOR_MODE_NORMAL: + case REGULATOR_MODE_IDLE: + return mode; + default: + return REGULATOR_MODE_INVALID; + } +} + static const struct regulator_ops pm8008_regulator_ops =3D { .list_voltage =3D regulator_list_voltage_linear_range, .set_voltage_sel =3D pm8008_regulator_set_voltage_sel, @@ -143,6 +199,17 @@ static const struct regulator_ops pm8008_regulator_ops= =3D { .is_enabled =3D regulator_is_enabled_regmap, }; =20 +static const struct regulator_ops pm8010_regulator_ops =3D { + .list_voltage =3D regulator_list_voltage_linear_range, + .set_voltage_sel =3D pm8008_regulator_set_voltage_sel, + .get_voltage_sel =3D pm8008_regulator_get_voltage_sel, + .enable =3D regulator_enable_regmap, + .disable =3D regulator_disable_regmap, + .is_enabled =3D regulator_is_enabled_regmap, + .set_mode =3D pm8010_regulator_set_mode, + .get_mode =3D pm8010_regulator_get_mode, +}; + static int pm8008_regulator_probe(struct platform_device *pdev) { const struct pm8008_match_data *match_data; @@ -155,6 +222,7 @@ static int pm8008_regulator_probe(struct platform_devic= e *pdev) struct regulator_dev *rdev; struct regmap *regmap; unsigned int val; + bool is_pm8010; int ret, i; =20 id =3D platform_get_device_id(pdev); @@ -169,6 +237,9 @@ static int pm8008_regulator_probe(struct platform_devic= e *pdev) if (!regmap) return -EINVAL; =20 + is_pm8010 =3D of_device_is_compatible(to_i2c_client(dev->parent)->dev.of_= node, + "qcom,pm8010-i2c"); + for (i =3D 0; i < match_data->num_regulators; i++) { data =3D &match_data->regulator_data[i]; =20 @@ -185,7 +256,9 @@ static int pm8008_regulator_probe(struct platform_devic= e *pdev) desc->supply_name =3D data->supply_name; desc->of_match =3D data->name; desc->regulators_node =3D of_match_ptr("regulators"); - desc->ops =3D &pm8008_regulator_ops; + desc->ops =3D is_pm8010 ? &pm8010_regulator_ops : &pm8008_regulator_ops; + if (is_pm8010) + desc->of_map_mode =3D pm8010_regulator_of_map_mode; desc->type =3D REGULATOR_VOLTAGE; desc->owner =3D THIS_MODULE; =20 --=20 2.43.0 From nobody Thu Sep 24 23:33:31 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 8290751AFCB for ; Fri, 18 Sep 2026 16:43:49 +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=1789749831; cv=none; b=HpiDXT1W+xIBFkTJ+2rowbe4s3tM1Ro4yrdchkVeYck/h0DB3sL14phynbfYuyjVA7A/sTNGweyil+u1Sh2Tpx8mumxX/X5/7zNx19UE0Oc+VBF2XUuD1MlTlYGRP6Ee5u40qDutsw9m4geLaMnDe3iHwXssNAV/lU0Vj/Le0Bg= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1789749831; c=relaxed/simple; bh=aXo4nLRnRLoLMYw3W6P3fJvPdkMKxar86Dnx8ey7+7Q=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=S2/0O6tm9wyrAw2RiAxH0el+DBjiJTgJM7XsGbSMhMMQZHLZRcwzbBWLm3mWLjXz3hHa9tWyLtS2q4ML8T2z5ZO8ffo9x5qhHM1w4/WEpHosHdEkCKHHre3PXJbwgRcKCg1BfaEGwh5PjY4CXyqmYeJiOpyQMIPjn5Ur+oxEgWw= 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=m+N952zu; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=gDi9R7CY; 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="m+N952zu"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="gDi9R7CY" 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 68IEQtIw1019881 for ; Fri, 18 Sep 2026 16:43:48 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= sIHahjiiBk8/yOltYOeToaHzSBC1txOpGGiKL4wwOL0=; b=m+N952zuNg/6wQzQ Wo6FA5nRGUAnXwhAUwWz9D3QhIr/g7pjNeH9G26mFTZZUM/1KqWoEDjPCmEYX2Cs 4LgTGvTSxs/xFQmWmo4IALzKxF3EIC4iBvsrKUYlG57UY34216mZNjYlidaK02A5 2Y7e8hSxC3B7CAfxz3AYOfBpL1gYJLABhSEiRZXgn41mWE6K93HvVS5zOcKkO7Ox 7z0evpDzwI18FzaA/KkG0eVrx67ViIbz7gW3+U80I3BvYUXI+Ryc2wcomfdXywih KUUgylGLmymcad3AsHdTD++PBeCbt9jeN4oErWuYqLaoS9jo+QmcH4TN8TWhv5AE fVPeqg== Received: from mail-pl1-f200.google.com (mail-pl1-f200.google.com [209.85.214.200]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4gs72u0kq8-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Fri, 18 Sep 2026 16:43:48 +0000 (GMT) Received: by mail-pl1-f200.google.com with SMTP id d9443c01a7336-2db3b126c9fso12985255ad.0 for ; Fri, 18 Sep 2026 09:43:48 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1789749828; x=1790354628; darn=vger.kernel.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :content-type:mime-version:subject:date:from:from:to:cc:subject:date :message-id:reply-to:content-type; bh=sIHahjiiBk8/yOltYOeToaHzSBC1txOpGGiKL4wwOL0=; b=gDi9R7CYe/U4XH8UqjGjGzu6HEarcndojKr1pazWweF6DZC6iEVt/KxL46fA/B3Uoc j/jIH66VdxdeYnJdj4Q4WR7ewLVehjRgMrnsagJHL6wFHz0IpNXKGhrabXpKR1XU13b+ NpqbRhE/PdaFgLsgOH8Iioxo5vzyBWQnalGeAtJa4YUyfssLbUuCKvLgYd95zrglKpm+ krSgKy2l0o9wFg2K/ciRiWw3a7XwD5+q3Ml3kk6kR8VRWmaqW2I3zngviJmeoyZF+3+L 1Dew8iTKCa3qB6vIR1ZU7qjJYBDPPEWhuFpEXLCS/q6Dk9uqP6xI+V7uBjsEAShjd2WH 6dPA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20260707; t=1789749828; x=1790354628; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :content-type:mime-version:subject:date:from:x-gm-gg :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to :content-type; bh=sIHahjiiBk8/yOltYOeToaHzSBC1txOpGGiKL4wwOL0=; b=ExYS4sSUqCbjfgK26d57Te7Iq24NFuiPY0UOM179J1X8ihC6lgP8bqIrfgICnJsMX8 GOCkYrP/DO5NhCsmwjMJ6mZtlFb564coptxPTezMEAixHgci21Cfd9OJtbqTKex5BFUG TTpF3axcjI82ErSA/uVFTohZnSP5lPhdPLzpU/KJ/89u/RWTh4DAFNKhbFIdDHiOaDUN EwwiSF/9puBg4pTzEohrl/bzJ3EWMoquUjHcaMqQ5UwCxktKK6kMsV3HcXohhFm9Y2YL 9QGoTqQohpcBwWnkKO6uCBD7fJ68NqPOVbtlIQsFd/U57qBCpntbuV1uTTqCO4Yi0Rl0 M2Pg== X-Forwarded-Encrypted: i=1; AKwUvBxq36hRhwmUJ56XDwpM7IRZOmL8NvHTB9IbpsYfzkMPNYlPkdYhzRmsWT/Uo7Om/FIB+0eyzlyaDmtjw08=@vger.kernel.org X-Gm-Message-State: AFuF++mIxm8QaM9qXA4XKnhI8oKZA2CePzkrYBGadyfKXw8BH90WzSJ6 KxLkVo2lsjDbowOknrSfdbrn2zB+cauBK2MWEPkJN8pINf8zz4F0/ZFMHUvVMdKPAtuFwal+dWA l3S5AOQTWuNH64CFrxvKPW3VBJ/aYXRBmu1TUWfqRGFzwPnm1qn8C65FZKha9VUGNBms= X-Gm-Gg: AYBFou34lXn/HAArH73jToeI0QyqXGYUVdUcDuBdk/nSHR3DEE/uDINcL+VS1UGm+Ex Bq4BaIoBNTr1n3fWB+JyEJgZj4xO0YkYxo7GpAZ9oWf3xfJPhy9tWJCWo4rW6/wWf4uxnPz6U/z mc1FQ2VBEb/SMxQcKsLD+h5r2Vo3VDdHiY8LOKdQPhpKQ+wLJF01Rr91gZLUVNzQMb8B7p02Q16 thQ8rHHtBIbqP0bIQM5Cuqtnh7o2obDYOhjsZQe7PWHH1l25tWEmArYDOETc6Wm8qQDebqIySsY a2UcPpPhLRzr6+RgliM3ijrg9/IuQb0+c8xRFP/cB4zsLkbwJATnl1sPOoDIPSG/Syt5c4iGG4w g8s5gb+XogHAPMlMPKg== X-Received: by 2002:a17:902:e742:b0:2dd:8639:9931 with SMTP id d9443c01a7336-2ddb1b7a307mr65612665ad.19.1789749827898; Fri, 18 Sep 2026 09:43:47 -0700 (PDT) X-Received: by 2002:a17:902:e742:b0:2dd:8639:9931 with SMTP id d9443c01a7336-2ddb1b7a307mr65612225ad.19.1789749827356; Fri, 18 Sep 2026 09:43:47 -0700 (PDT) Received: from [10.213.109.130] ([202.46.23.25]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-2ddb754e390sm11161895ad.32.2026.09.18.09.43.42 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 18 Sep 2026 09:43:46 -0700 (PDT) From: Jishnu Prakash Date: Fri, 18 Sep 2026 22:12:48 +0530 Subject: [PATCH 4/6] mfd: qcom-pm8008: Add PM8010 support 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: <20260918-pm8010_i2c_support-v1-4-de33d78fad9d@oss.qualcomm.com> References: <20260918-pm8010_i2c_support-v1-0-de33d78fad9d@oss.qualcomm.com> In-Reply-To: <20260918-pm8010_i2c_support-v1-0-de33d78fad9d@oss.qualcomm.com> To: Lee Jones , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Guru Das Srinagesh , Liam Girdwood , Mark Brown Cc: linux-arm-msm@vger.kernel.org, mfd@lists.linux.dev, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, Konrad Dybcio , Dhruvin Rajpura , Nihal Kumar Gupta , Kamal Wadhwa , Oleg Keri , Jishnu Prakash X-Mailer: b4 0.15.2 X-Developer-Signature: v=1; a=ed25519-sha256; t=1789749799; l=5533; i=jishnu.prakash@oss.qualcomm.com; s=20251014; h=from:subject:message-id; bh=0A09G5s8R/qSBgqw1PNTnaJsuW7lGHc5uarbZzTndks=; b=rYTNN1AzlPQQHHdnD+JD8oRhZG+MyFMrBj2hCm5Xh6ygbaNGXklG/5iLBEhJaaREvsLdr93B1 01uHFxvLXKtBwLXi6W6C39bFP3Lsal8qpuHJqJgWpbgmprCbmiI0FWR X-Developer-Key: i=jishnu.prakash@oss.qualcomm.com; a=ed25519; pk=g89pXdLVwRjdTeQ+uX1QzvBO346E3hQAc1N7fcTXgmk= X-Proofpoint-ORIG-GUID: oeRyC4DAHF-f-cl_IKPqe-Qn0DMb4h61 X-Proofpoint-Spam-Info: AW1haW4tMjYwOTE4MDIzOCBTYWx0ZWRfX/WOVJDCSeHig Wd0HVDFK+SnOZhGqGid0fpQDkGMF8N3Q4NgZbR++Dvza2+pBVOWSIFkyLpaFzHygcDUq7eDwf7q wPMfiYA3jF261Pdw3Ysw6bjN91tMnJY= X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwOTE4MDIzOCBTYWx0ZWRfX8dGJhS3cuQ4H vt0JHM7AP2Fmci0l3DX/kFiyMdWweAd5vCkeRF7VwEVLgMWSfFlPd5udrNZPeKyFP9lq6Sk9kXT u3CNVaRqKYLlGUsfUz9AnjuR78YfOu79mFZuf73WtLj+ZAUAdCrR9LcWC1Xq+wnGVAQ7SjNU26n n8pBXHIeuM5sEZ+TXD4mXDNJAyve8LnnBDuQisUoKMCuy18Doak+KG09wcijWldgnfL89JrMCv1 gnyrQSH3GLFdQ2RLPKmM8Gb2Gh1qeJ8K8h0Nghz6zlemrqF781KibVJ7bNuJ8ackldOVbwdJNhX LNA3gFQYdM/0DpmSGHxRKt7YV7f+XKQuLOL0lpaDDtyTxYjlPs2/ecd5YuDD1c41siyj/MoWyW8 XJHjjPb0TLTik87pl3R8EqMKgcYnY/HTocrAFUcNyMqkx7B3QmPTy5mgKmwYOVfnbaf/In741ZF 50yXAMporo1zBdkf/Ag== X-Proofpoint-GUID: oeRyC4DAHF-f-cl_IKPqe-Qn0DMb4h61 X-Authority-Analysis: v=2.4 cv=DO8acCNb c=1 sm=1 tr=0 ts=6aad6a44 cx=c_pps a=IZJwPbhc+fLeJZngyXXI0A==:117 a=ZePRamnt/+rB5gQjfz0u9A==:17 a=IkcTkHD0fZMA:10 a=VdqzKS8jKosA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=yOCtJkima9RkubShWh1s:22 a=EUspDBNiAAAA:8 a=LamtlsxKl8ZIB2y8LWQA:9 a=QEXdDO2ut3YA:10 a=uG9DUKGECoFWVXl0Dc02:22 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-09-18_04,2026-09-16_02,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 lowpriorityscore=0 clxscore=1015 impostorscore=0 suspectscore=0 bulkscore=0 adultscore=0 spamscore=0 malwarescore=0 phishscore=0 priorityscore=1501 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2609040000 definitions=main-2609180238 From: Konrad Dybcio PM8010 is effectively the next generation of PM8008. The device is generally designed to serve the exact same function - power camera sensors and the associated supporting hardware. PM8010 supports both I2C and SPMI communications. The latter case is already handled, since it reuses the same peripherals as other PMICs. The I2C front-end is more less the same to the one of PM8008. Plumb in the necessary changes to support it. Signed-off-by: Konrad Dybcio Co-developed-by: Dhruvin Rajpura Signed-off-by: Dhruvin Rajpura Co-developed-by: Jishnu Prakash Signed-off-by: Jishnu Prakash Tested-by: Oleg Keri # Lenovo Yoga Slim 7x Gen 11 (Glym= ur) --- drivers/mfd/qcom-pm8008.c | 67 +++++++++++++++++++++++++++++++++++++++++++= +--- 1 file changed, 63 insertions(+), 4 deletions(-) diff --git a/drivers/mfd/qcom-pm8008.c b/drivers/mfd/qcom-pm8008.c index 60204cc9a2dc..ed656f0d6df2 100644 --- a/drivers/mfd/qcom-pm8008.c +++ b/drivers/mfd/qcom-pm8008.c @@ -34,6 +34,7 @@ enum { PM8008_GPIO1, PM8008_GPIO2, PM8008_NUM_PERIPHS, + PM8010_NUM_PERIPHS =3D 2, }; =20 #define PM8008_PERIPH_0_BASE 0x900 @@ -55,6 +56,10 @@ enum { #define PM8008_IRQ_GPIO1 6 #define PM8008_IRQ_GPIO2 7 =20 +#define PM8010_IRQ_MISC_MBG_FAULT 0 +/* 1-3 are unused */ +#define PM8010_IRQ_MISC_LDO_OCP 4 + enum { SET_TYPE_INDEX, POLARITY_HI_INDEX, @@ -88,6 +93,12 @@ static const struct regmap_irq pm8008_irqs[] =3D { _IRQ(PM8008_IRQ_GPIO2, PM8008_GPIO2, BIT(0), IRQ_TYPE_SENSE_MASK), }; =20 +static const struct regmap_irq pm8010_irqs[] =3D { + _IRQ(PM8010_IRQ_MISC_MBG_FAULT, PM8008_MISC, BIT(0), IRQ_TYPE_EDGE_RISING= ), + _IRQ(PM8010_IRQ_MISC_LDO_OCP, PM8008_MISC, BIT(4), IRQ_TYPE_EDGE_RISING), + _IRQ(PM8008_IRQ_TEMP_ALARM, PM8008_TEMP_ALARM, BIT(0), IRQ_TYPE_SENSE_MAS= K), +}; + static const unsigned int pm8008_periph_base[] =3D { PM8008_PERIPH_0_BASE, PM8008_PERIPH_1_BASE, @@ -158,6 +169,25 @@ static const struct regmap_irq_chip pm8008_irq_chip = =3D { .get_irq_reg =3D pm8008_get_irq_reg, }; =20 +static const struct regmap_irq_chip pm8010_irq_chip =3D { + .name =3D "pm8010", + .main_status =3D I2C_INTR_STATUS_BASE, + .num_main_regs =3D 1, + .irqs =3D pm8010_irqs, + .num_irqs =3D ARRAY_SIZE(pm8010_irqs), + .num_regs =3D PM8010_NUM_PERIPHS, + .status_base =3D INT_LATCHED_STS_OFFSET, + .mask_base =3D INT_EN_CLR_OFFSET, + .unmask_base =3D INT_EN_SET_OFFSET, + .mask_unmask_non_inverted =3D true, + .ack_base =3D INT_LATCHED_CLR_OFFSET, + .config_base =3D pm8008_config_regs, + .num_config_bases =3D ARRAY_SIZE(pm8008_config_regs), + .num_config_regs =3D PM8010_NUM_PERIPHS, + .set_type_config =3D pm8008_set_type_config, + .get_irq_reg =3D pm8008_get_irq_reg, +}; + static const struct regmap_config qcom_mfd_regmap_cfg =3D { .name =3D "primary", .reg_bits =3D 16, @@ -183,6 +213,17 @@ static const struct mfd_cell pm8008_cells[] =3D { MFD_CELL_NAME("pm8008-gpio"), }; =20 +static const struct mfd_cell pm8010_cells[] =3D { + MFD_CELL_NAME("pm8010-regulator"), + MFD_CELL_RES("qpnp-temp-alarm", pm8008_temp_res), +}; + +struct pm8008_match_data { + const struct regmap_irq_chip *irq_chip_desc; + const struct mfd_cell *mfd_cells; + int num_mfd_cells; +}; + static void devm_irq_domain_fwnode_release(void *data) { struct fwnode_handle *fwnode =3D data; @@ -193,6 +234,7 @@ static void devm_irq_domain_fwnode_release(void *data) static int pm8008_probe(struct i2c_client *client) { struct regmap_irq_chip_data *irq_data; + const struct pm8008_match_data *data; struct device *dev =3D &client->dev; struct regmap *regmap, *regmap2; struct fwnode_handle *fwnode; @@ -201,6 +243,10 @@ static int pm8008_probe(struct i2c_client *client) char *name; int ret; =20 + data =3D device_get_match_data(dev); + if (!data) + return dev_err_probe(dev, -ENODATA, "Missing driver match data\n"); + dummy =3D devm_i2c_new_dummy_device(dev, client->adapter, client->addr + = 1); if (IS_ERR(dummy)) { ret =3D PTR_ERR(dummy); @@ -246,7 +292,7 @@ static int pm8008_probe(struct i2c_client *client) return ret; =20 ret =3D devm_regmap_add_irq_chip_fwnode(dev, fwnode, regmap, client->irq, - IRQF_SHARED, 0, &pm8008_irq_chip, &irq_data); + IRQF_SHARED, 0, data->irq_chip_desc, &irq_data); if (ret) { dev_err(dev, "failed to add IRQ chip: %d\n", ret); return ret; @@ -255,13 +301,26 @@ static int pm8008_probe(struct i2c_client *client) /* Needed by GPIO driver. */ dev_set_drvdata(dev, regmap_irq_get_domain(irq_data)); =20 - return devm_mfd_add_devices(dev, PLATFORM_DEVID_AUTO, pm8008_cells, - ARRAY_SIZE(pm8008_cells), NULL, 0, + return devm_mfd_add_devices(dev, PLATFORM_DEVID_AUTO, data->mfd_cells, + data->num_mfd_cells, NULL, 0, regmap_irq_get_domain(irq_data)); } =20 +static const struct pm8008_match_data pm8008_data =3D { + .irq_chip_desc =3D &pm8008_irq_chip, + .mfd_cells =3D pm8008_cells, + .num_mfd_cells =3D ARRAY_SIZE(pm8008_cells), +}; + +static const struct pm8008_match_data pm8010_data =3D { + .irq_chip_desc =3D &pm8010_irq_chip, + .mfd_cells =3D pm8010_cells, + .num_mfd_cells =3D ARRAY_SIZE(pm8010_cells), +}; + static const struct of_device_id pm8008_match[] =3D { - { .compatible =3D "qcom,pm8008", }, + { .compatible =3D "qcom,pm8008", .data =3D &pm8008_data }, + { .compatible =3D "qcom,pm8010-i2c", .data =3D &pm8010_data }, { }, }; MODULE_DEVICE_TABLE(of, pm8008_match); --=20 2.43.0 From nobody Thu Sep 24 23:33:31 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 15DAE5187F0 for ; Fri, 18 Sep 2026 16:43:54 +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=1789749836; cv=none; b=UGiaq5uYrtyirnrZYNG04w+t6nMdehQxBU0NW7Ixeda8pqZZg/iRvjfRrWjAVcTW4MEOMQkAG/upFy3gJt2GsQPn0lfSOixzT9Ecw1VGHP6gLvI7oUfipUFa0RNtOGVJYqyBNCkF7AZ0ghV98uGXONM80amh1YXbFZjDjadrKB0= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1789749836; c=relaxed/simple; bh=SmOcZxwLrBRoIzC1qf0GZGNnF5JE+WS76VyePIbnyJs=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=KkRXDpBxUIt4NThqDy0DJgSHBbZC0VCMWo3bsMi00sYP+Q4pPc3Fb5emO7r3yIWg1rPkVJH2zeMmAgdGFUc5VqHYgvuHccDaRpDEKoRiJ6UE4GDeAJ+3UvSd0DPDuiRFQDqFSp31Zlr8kMSgO+HLvLhrVAl+eZwk9sXvEnhsbrA= 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=kDP42nIj; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=Pkof74oN; 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="kDP42nIj"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="Pkof74oN" Received: from pps.filterd (m0279864.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 68IDORFi3645735 for ; Fri, 18 Sep 2026 16:43:54 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= WpIZWkeAtD6jcfZkO2AwjXwIQel2B+tujYx3yuAQAJ4=; b=kDP42nIjpMkvDHK/ lSbHC1srg0BgRvZRoA+qQpQzqzHMoYD/UjHW83ypqTQ/mTmyHTc820LSY2MpoQnT ilWMlsWQanj0ImMRrEqEH1jmcxMkA131ttPA4FwitEt8igpSrWaG8sVFQD0VfHOm 0MCuw2lhbqpYue7VVGDE58+3cDWaKEIgUh60QBBHz1kl3goQ90QH/+ZJQ35sGg06 Zmdk4biKVMW36fUp3DQABKqCD/Zlkixh2YxmCD96he+ivg81B8yshgK6Nq/WXXeT S1fZUT5WfOQ6KXYVnfyZzReT2JmrfKJ6OKq0Q/3nUUnbac+722hCObaio1dctXR6 MEGefg== Received: from mail-pl1-f198.google.com (mail-pl1-f198.google.com [209.85.214.198]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4gs37dhk5x-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Fri, 18 Sep 2026 16:43:54 +0000 (GMT) Received: by mail-pl1-f198.google.com with SMTP id d9443c01a7336-2d9057fab9eso14558735ad.1 for ; Fri, 18 Sep 2026 09:43:54 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1789749834; x=1790354634; darn=vger.kernel.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :content-type:mime-version:subject:date:from:from:to:cc:subject:date :message-id:reply-to:content-type; bh=WpIZWkeAtD6jcfZkO2AwjXwIQel2B+tujYx3yuAQAJ4=; b=Pkof74oNUMP4nl73DnbhwMC1Cwo0Gk2/KnmI13lpVNdx56N8NFjIFuDD4IiUYpMwRi THP8RlSXefOcjg72bNehYX33ua+YwdKyVWKNP3Ll2yUW2rDid6/3Q+QNfVOdhWOVr56Q ra+GoXEa1F61FI/Jxhp8Q9we8LilbG1YpmD3FSUSkcteJM+x+zkVCYYQ7PaKg5uf0p9A 3wHW7AklJHLJOjIP+0RsjdyzSCjAzUrdfMPilA7oy35xRvbFvZcYX4fR0WJJWr1luUeP NwYcSNbwI6tNvArA5irxubxjIwK8+5IEJLQU/LGnYxXtugHuL3YNTV2gqv3yc4JHV8kl UgoQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20260707; t=1789749834; x=1790354634; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :content-type:mime-version:subject:date:from:x-gm-gg :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to :content-type; bh=WpIZWkeAtD6jcfZkO2AwjXwIQel2B+tujYx3yuAQAJ4=; b=LuRqCAtiScZp0J1NFzfRrh60/udj1R/c9t9QsFe34xP+SJEgtXzH1Ak8xGevkwhXBZ qNy1W2vpkHu5qFp1dmkwL/cP/XxZUy4l2qMXlk6KnaY6qf0EPGQFTgxz/PIfJYYcYnKB R2wF4WCcS97AOId2YMtMaY1WqEQO08y19/mIXCncihONzCaC/0ZA6wrkKWt9jwYvQAZM f+dSSZnvij+k90nvhcnW+lNlZst192CD0T7NwUNCtlvSmGt2c6nHb/XNs11wbbzjitLx 1FVsGgVn2QxHyEEk2BJut7QKSE73rPbOloGA36nfz+dPXYOQGCgr4QooPIE/T0frBAVC UBCw== X-Forwarded-Encrypted: i=1; AKwUvBz1yiIiL9CRo0K2CzyB/wXrcRB6sKocXTzr2bo02TqpgZPSwnsWVvQ1nsqxWMR3YgXy9tp8GgGnXeBM0sE=@vger.kernel.org X-Gm-Message-State: AFuF++kYnpXXhM1dOxB4osompJmZ6J8Qj5tSS9PRWGCrb/XHpkBZ7AvY jtzqisaZBAy+r3gonnLvkNW3rnDdBRFnyIfjcR/EXG72PbHBdCp+P6tFqajocKr7X4fnjwXzD3V zCFOKWGqk2IsFgrxYIW+tUHm6Fqncu98xgKnzLfIhhc4PEqUBdy5ZifcLDQ/96Co2jPA= X-Gm-Gg: AYBFou3Woyt/BjTWO5lruh5Ms9iLn0URwLqlITg1KOTU4CukTEhZPf48ikQwcPIxPLD S0ORjVC6+UvdIhKn8odSmgT3N3nVbGxmPFDG+mM6UgMoSO79F7viDeXVDnhIz3O83AlzbgemBG/ wG6hYCu9i/aV15kRx7UKNTlbT037c4jIAzhWerdDxJyAn/vOZSiFO/MVOHrrenq7oY1w+h8ACHx SIOGjijrpSqDIObzLIYc14ToNsqR2622kLPqy1MwRiHIb/mROh/9qaS77EpARGbLJaRGNder0jX 3Eh1lsGczpYV9+3LC0ZBj8mBCkwNoWP9WspUJMhnpoYcGjGH3RaN+U9IGSRv6BI+8+xABYHZgz3 dbc2pdwetu8vNpXD8Wg== X-Received: by 2002:a17:902:c944:b0:2d6:ffa1:429b with SMTP id d9443c01a7336-2ddb1adf381mr68054955ad.7.1789749833708; Fri, 18 Sep 2026 09:43:53 -0700 (PDT) X-Received: by 2002:a17:902:c944:b0:2d6:ffa1:429b with SMTP id d9443c01a7336-2ddb1adf381mr68054625ad.7.1789749833189; Fri, 18 Sep 2026 09:43:53 -0700 (PDT) Received: from [10.213.109.130] ([202.46.23.25]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-2ddb754e390sm11161895ad.32.2026.09.18.09.43.47 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 18 Sep 2026 09:43:52 -0700 (PDT) From: Jishnu Prakash Date: Fri, 18 Sep 2026 22:12:49 +0530 Subject: [PATCH 5/6] dt-bindings: mfd: pm8008: Make interrupts optional 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: <20260918-pm8010_i2c_support-v1-5-de33d78fad9d@oss.qualcomm.com> References: <20260918-pm8010_i2c_support-v1-0-de33d78fad9d@oss.qualcomm.com> In-Reply-To: <20260918-pm8010_i2c_support-v1-0-de33d78fad9d@oss.qualcomm.com> To: Lee Jones , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Guru Das Srinagesh , Liam Girdwood , Mark Brown Cc: linux-arm-msm@vger.kernel.org, mfd@lists.linux.dev, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, Konrad Dybcio , Dhruvin Rajpura , Nihal Kumar Gupta , Kamal Wadhwa , Oleg Keri , Jishnu Prakash X-Mailer: b4 0.15.2 X-Developer-Signature: v=1; a=ed25519-sha256; t=1789749799; l=1295; i=jishnu.prakash@oss.qualcomm.com; s=20251014; h=from:subject:message-id; bh=/xHD3FOa+DH9d/+N3YsM6u54DFXQmF0QPDehR13uSyQ=; b=wHZxV1JV6UVITF/40YIn3ESxFXBpkPJOBbsu1wDFDKZIQ4bL+FVDu6Min/+3FwcqwCijRT7br zEiwnzUX5tNA8IeshF1s58Ir6S4oT6qBtqyIonff48QRYxVIFtXZ2w+ X-Developer-Key: i=jishnu.prakash@oss.qualcomm.com; a=ed25519; pk=g89pXdLVwRjdTeQ+uX1QzvBO346E3hQAc1N7fcTXgmk= X-Proofpoint-Spam-Info: AW1haW4tMjYwOTE4MDIzOCBTYWx0ZWRfX3fa8FCHCA9O6 wSWo5UddwmzAoveLCRD9uF5SJL54dgYrKIcDgJYuPREUiYbhrZ1rus5u8Tq9U36bsZeu9guCUW+ GHxgwlL/fWdPwn7uyP3by/Vsuzdd6aQ= X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwOTE4MDIzOCBTYWx0ZWRfX9wgYwFz9Z+pN P440UtWleirG3PYWXwyP3wkiN65HU2WgBuP3AAHMjKItuVRVQXvcC+oRbkcyta+zyYvEovkz1rJ e/+4Xe/53Zs23HLwqkLuyLkPb7LA1IjZt8AgjjQ9wqMI7+H5220gjCDOpgwo52hzj5HFmncDqSc M4+BkNjktJCZSeB24uZuefaky89RisAb87NI0CpNUpkNO3Lve01bBNw0g/oyx/4sly6pyWE74DP 7FeXJaAe+O8tbsBoE7v/Xcfb3lLwksZ1+VSudI3Wz1IY1vnDNWTq7+67pyg+Ltf8H9RlcLTeN15 hhPauhiKmF7GbLzQI0Y4sPBtZeMy3oV7GKyuiWTxv3F/wbRtyN2NyAZK1sV5HREpg8FaVqcni00 3yNoQ+zu0nDO3Holo3hTxAczdDtNhJa3nnMsLM0T2qycczqXgze4hQZouemGhLlDaad/DWhuRbh g3On2q7pNi3ZJibZXzw== X-Proofpoint-GUID: LJIzwGrw67ijO_17qlWDSBfxJkynQSLU X-Proofpoint-ORIG-GUID: LJIzwGrw67ijO_17qlWDSBfxJkynQSLU X-Authority-Analysis: v=2.4 cv=R+mWitRX c=1 sm=1 tr=0 ts=6aad6a4a cx=c_pps a=MTSHoo12Qbhz2p7MsH1ifg==:117 a=ZePRamnt/+rB5gQjfz0u9A==:17 a=IkcTkHD0fZMA:10 a=VdqzKS8jKosA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=DJpcGTmdVt4CTyJn9g5Z:22 a=EUspDBNiAAAA:8 a=Su-V-MYFMjrvs2extU4A:9 a=QEXdDO2ut3YA:10 a=GvdueXVYPmCkWapjIL-Q:22 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-09-18_04,2026-09-16_02,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 lowpriorityscore=0 adultscore=0 bulkscore=0 impostorscore=0 clxscore=1015 spamscore=0 suspectscore=0 malwarescore=0 priorityscore=1501 phishscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2609040000 definitions=main-2609180238 From: Konrad Dybcio Some designs integrate the PMIC with the interrupt pin left unconnected, deliberately. That of course compromises some functionality, but the core function of programming the voltage regulators remains there. Signed-off-by: Konrad Dybcio Co-developed-by: Jishnu Prakash Signed-off-by: Jishnu Prakash Tested-by: Oleg Keri # Lenovo Yoga Slim 7x Gen 11 (Glym= ur) --- Documentation/devicetree/bindings/mfd/qcom,pm8008.yaml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/Documentation/devicetree/bindings/mfd/qcom,pm8008.yaml b/Docum= entation/devicetree/bindings/mfd/qcom,pm8008.yaml index 2701aa755f31..3c0febc8152b 100644 --- a/Documentation/devicetree/bindings/mfd/qcom,pm8008.yaml +++ b/Documentation/devicetree/bindings/mfd/qcom,pm8008.yaml @@ -90,7 +90,6 @@ properties: required: - compatible - reg - - interrupts - vdd-l1-l2-supply - vdd-l3-l4-supply - vdd-l5-supply @@ -99,10 +98,11 @@ required: - gpio-controller - "#gpio-cells" - gpio-ranges - - interrupt-controller - - "#interrupt-cells" - "#thermal-sensor-cells" =20 +dependencies: + interrupt-controller: [ interrupts, "#interrupt-cells" ] + additionalProperties: false =20 examples: --=20 2.43.0 From nobody Thu Sep 24 23:33:31 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 E9AFB5187F0 for ; Fri, 18 Sep 2026 16:44: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=1789749842; cv=none; b=owgXUvZxwcJm2eApFaKVdyBsZApjyAmUbBQx+RULB4JV0dtL6Eu5/tdl2HB8z5aagZkkZaEqRDch2VSQwwFeAPotwO5LXHWvlt6fquOPZttAewWpxH6ZtpM70hjpieI6zM8twJJAHSs66gWNDCakT71FgYw+17+v+yVKAh55EIo= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1789749842; c=relaxed/simple; bh=6TuCysntbWLZmZYplZzvcQ89wL4jyvz1jjtnZ5NVDWk=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=EG0z8vYnuR3od9o2X8N8hCQ5nrNR12a9o+c+AvxhX99M16g+2We1wvFJn2Po54KBwgfpg61bRV+iUCj4CS3mAPuBhm80bdwrNy4Cx/55HssCSJ+1MocGoiU+XnoImld+vregoxa6Enh45qdl5kmrgQImORdWN3FeQ3cuhg3SjKQ= 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=eUQVLWrx; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=HsuPEEPX; 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="eUQVLWrx"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="HsuPEEPX" Received: from pps.filterd (m0279862.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 68IDOVaP215588 for ; Fri, 18 Sep 2026 16:44:00 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= rHc3jmH9501s499HUccFgDkBbylj+aDs/1Ow3J+YeoQ=; b=eUQVLWrxH/vxOiFR Utcpiy7vgRH4cynfrDTBcPDzOXok4CPTr5yj1lpzrcCESdMkAN3Who1uCr8EYoei WSaMep20zluJ8nD7fQNMn6iAeLst5eW2ViQ49su7k7MohuSMwuI8/+DVevVJJwlZ W2uyvAC/6pGIm0kBqEhtBMOE8K/Fpr5pp59ZPSxcMpMt0FR2lqPVwnUiTTr+JYjb a3jMIS2xygtan5eF1qWojJDf//zLGNp67cxZ97LgvGgBdxPbYF2gAHS+zywwsG/O 8ilMBdqnvog5FKNj/fuL8y8nBmCH8cLX+Ks1qzxm9b6lXX9dxdYh+2HgAKS2GQ5I paZ0rw== Received: from mail-pl1-f200.google.com (mail-pl1-f200.google.com [209.85.214.200]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4grrjdv6ec-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Fri, 18 Sep 2026 16:44:00 +0000 (GMT) Received: by mail-pl1-f200.google.com with SMTP id d9443c01a7336-2ce7dff6253so22695845ad.1 for ; Fri, 18 Sep 2026 09:44:00 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1789749840; x=1790354640; darn=vger.kernel.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :content-type:mime-version:subject:date:from:from:to:cc:subject:date :message-id:reply-to:content-type; bh=rHc3jmH9501s499HUccFgDkBbylj+aDs/1Ow3J+YeoQ=; b=HsuPEEPXnbAsSPlnXIJESN+pNgZo1orlE1oT7DdKlLH73tllTirT5nc9MBWzHPolpQ zeQ0pkcSGOBaYlbRE2pbeSgJmWARz/3Gu2aQhEBS+xhGwYxipAxC+EHh5s6UWpozxNcB phy/tQyy9ZtY7ld2xfszfjbReuSkv6s8Eql/PiqiOR+8zrOJS1RjfrL131eTSsRS5rd3 0Q1YfLiHidxHL07DYrl1p25KGtV18sWgb9EK59tiALLdZz9rLZCzC5srBzyCmip2Kfqy 19OqRF2bzVfGFF3A5nUpbA9aaSu3QlWKQU9yuDZB998drfzkyOVi9AdVmEnXa/eY0B1x f1fQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20260707; t=1789749840; x=1790354640; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :content-type:mime-version:subject:date:from:x-gm-gg :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to :content-type; bh=rHc3jmH9501s499HUccFgDkBbylj+aDs/1Ow3J+YeoQ=; b=j1JnUCu5yFN2yi25jL9/nvMr4zDn0zNWfLSKj2Qst+7lCWpS0GkPgxwdtgy9UcaX2F 2BgTMMW3kOEn5ZRRr3D4PZYbSnrteELyFEvNrHgGcvgLKIp2qSbzYaH4lSnJEqLGuwCw VcNfyuE0X5DxQY6wvK+LrLI1o0bUfqG6TCJyQGW1SABmoPJi7qgTsu6w78ioZvAb8d51 zIB+1SiNtfaSuwaBxfK3FD/RBUaW4cQlsRRoDXbL+fQPRtBtgrAbVIYDh5ScH/TeTnNe aKl6DgYUBh/v46otGXFpO0R2crEMUdqRvJtTdHpfxNUka/Ga6Y5JtY1GCBqWTVojAApg OWNQ== X-Forwarded-Encrypted: i=1; AKwUvBw2mob2JWxs78A+hYUNUpkbdATzrAkSHh4VXLATXwqke9L1IzybN7Z9MrMNpALdLHmXEj1FPheW/1kxKG0=@vger.kernel.org X-Gm-Message-State: AFuF++ms8GHMeieF0R8Znb+TCm9Nzc0XQ9lJuTW+KLdYR0J+4Fvlf3UB dqcJhJ2DWISLp5Qin7Xf46xEYIFdIcnssNeysKoMmXi/OTT3hSTOozQq9j5+wG9ygmdSG4YlK8h fN6D6tXmYBQ8aJQwU31EBT/nfq86xNOViUCzL28f3AqQEZIdsvDBcUFabptLypLMHHPE= X-Gm-Gg: AYBFou2yUA6ep0vWRk2Kz0MnfZQYabpxSkxCahb7yCV0BKtR6b+DYdr6HVEh3UA8PgI q5WQ6zt4/hpOX0Yj8bdt8cjGbBpkL5xYXGD0wB23Yyq+p4ySjesggHzmI4KWA/Z7p4de/MkjWfv MhVbqaOr3fzr2L63ZTTrSa3ubG2MfBG9YLFbtb8EddGMjytPHA4zSt92SJP+BgQg9QTYD2KagfB TP8fgIjkzb4NedjOfF1eeBb2125dU/EfYkQgipAgbUvGFyLnh0d/BDEzPUDPascxMZvQYijVs6g wsgZ0hFKKcM0X80dGEC+PUZ6DuDrUuMSPnku/Qqyej1UJF4xJSzP0yvW5v5W3qGZfFw9JFpLaI8 y8EUmELkzfhY5htQi9w== X-Received: by 2002:a17:902:dac5:b0:2dd:c100:2519 with SMTP id d9443c01a7336-2ddc10025bamr2589765ad.34.1789749839453; Fri, 18 Sep 2026 09:43:59 -0700 (PDT) X-Received: by 2002:a17:902:dac5:b0:2dd:c100:2519 with SMTP id d9443c01a7336-2ddc10025bamr2589465ad.34.1789749838928; Fri, 18 Sep 2026 09:43:58 -0700 (PDT) Received: from [10.213.109.130] ([202.46.23.25]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-2ddb754e390sm11161895ad.32.2026.09.18.09.43.53 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 18 Sep 2026 09:43:58 -0700 (PDT) From: Jishnu Prakash Date: Fri, 18 Sep 2026 22:12:50 +0530 Subject: [PATCH 6/6] mfd: qcom-pm8008: Tolerate missing interrupt 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: <20260918-pm8010_i2c_support-v1-6-de33d78fad9d@oss.qualcomm.com> References: <20260918-pm8010_i2c_support-v1-0-de33d78fad9d@oss.qualcomm.com> In-Reply-To: <20260918-pm8010_i2c_support-v1-0-de33d78fad9d@oss.qualcomm.com> To: Lee Jones , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Guru Das Srinagesh , Liam Girdwood , Mark Brown Cc: linux-arm-msm@vger.kernel.org, mfd@lists.linux.dev, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, Konrad Dybcio , Dhruvin Rajpura , Nihal Kumar Gupta , Kamal Wadhwa , Oleg Keri , Jishnu Prakash X-Mailer: b4 0.15.2 X-Developer-Signature: v=1; a=ed25519-sha256; t=1789749799; l=2909; i=jishnu.prakash@oss.qualcomm.com; s=20251014; h=from:subject:message-id; bh=5Yca1qyIZcBlbgpfZoFyilYL65XMLuzCTJFN98C2W+o=; b=ncxS/vdpTtWyvH8/mj8iVyzXI2Z9etz9JDpGrrZHRLP/dovy3yLv2nHa5TftnMc/wu1QPxDr6 w0hbGIf+EW7B89ULsIJ88ywvTydtMgoGfduBqYLZIJFrgnQURGdMAXU X-Developer-Key: i=jishnu.prakash@oss.qualcomm.com; a=ed25519; pk=g89pXdLVwRjdTeQ+uX1QzvBO346E3hQAc1N7fcTXgmk= X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwOTE4MDIzOCBTYWx0ZWRfX9v1hARx8uppr 4fVy9D1KDSVfLOB1wQWO8yfylKtK5liUjboZz06Wt61MUNbIm9b8CERUmkKplPSf27w0AleSmSI YwM4Xc3Wu/y/hOOJOIpnGAkA1wnFtYxaHz7k0+RuPUDL/F2x59ux1rNkH7r0rlpE7Q8Jthce+UN N4NbZdJY8/DG8xbwv6xZKvimhZV0c6i/N+M+A+JxCE6J0B3EEKlJJQTjn7HH7UsKFqgJzwcEXYU MaIFnFSPFAx3eIeWmWsFyWm/mAnYcx60oKHIzO5VtL8OwrdpaMKL6DTQRCJ1NNKnr7EpaWaIR1P 8U6u9cJ73t/kcpWC3NquW/M6YEn1HuVV7nAnmvenQee5s9ytde+4tgf5VCytGugi4G3c+Ufcxu9 6QIvMWqwnBa5WVrn4ZVXzOuZM0wjIk/yAiNVQV9ZGeVFpjBHG5CPSzaocsqQAmEX33qVu7kXXmG uz5eKP2VbyqqOSeuAeQ== X-Proofpoint-ORIG-GUID: AXlIx43RHdSzBh-sArlRg5PGkAXp0eVn X-Proofpoint-Spam-Info: AW1haW4tMjYwOTE4MDIzOCBTYWx0ZWRfX9DyjZdHgaIdC iMuEVCjcYlwFJEx8sCDDRovbba5LM7AbzkbDOT33QE9NWpklIvv6R1odzyTWf2Y1KaEnE6EEpjw vD0i9O3lSidJmK0GF863ig2ZBsv/TJA= X-Authority-Analysis: v=2.4 cv=J9Q/fwnS c=1 sm=1 tr=0 ts=6aad6a50 cx=c_pps a=IZJwPbhc+fLeJZngyXXI0A==:117 a=ZePRamnt/+rB5gQjfz0u9A==:17 a=IkcTkHD0fZMA:10 a=VdqzKS8jKosA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=_K5XuSEh1TEqbUxoQ0s3:22 a=EUspDBNiAAAA:8 a=mZ3i9vGqhTwK5z6FwQYA:9 a=QEXdDO2ut3YA:10 a=uG9DUKGECoFWVXl0Dc02:22 X-Proofpoint-GUID: AXlIx43RHdSzBh-sArlRg5PGkAXp0eVn 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-09-18_04,2026-09-16_02,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 lowpriorityscore=0 adultscore=0 impostorscore=0 clxscore=1015 suspectscore=0 phishscore=0 priorityscore=1501 bulkscore=0 malwarescore=0 spamscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2609040000 definitions=main-2609180238 From: Konrad Dybcio PM8010 is often wired up with the interrupt pin tied to ground. Only register the IRQ infrastructure if we have a parent irq. Signed-off-by: Konrad Dybcio Co-developed-by: Dhruvin Rajpura Signed-off-by: Dhruvin Rajpura Co-developed-by: Jishnu Prakash Signed-off-by: Jishnu Prakash Tested-by: Oleg Keri # Lenovo Yoga Slim 7x Gen 11 (Glym= ur) --- drivers/mfd/qcom-pm8008.c | 45 ++++++++++++++++++++++++-------------------= -- 1 file changed, 24 insertions(+), 21 deletions(-) diff --git a/drivers/mfd/qcom-pm8008.c b/drivers/mfd/qcom-pm8008.c index ed656f0d6df2..77e4f6c04ac7 100644 --- a/drivers/mfd/qcom-pm8008.c +++ b/drivers/mfd/qcom-pm8008.c @@ -233,7 +233,7 @@ static void devm_irq_domain_fwnode_release(void *data) =20 static int pm8008_probe(struct i2c_client *client) { - struct regmap_irq_chip_data *irq_data; + struct regmap_irq_chip_data *irq_data =3D NULL; const struct pm8008_match_data *data; struct device *dev =3D &client->dev; struct regmap *regmap, *regmap2; @@ -277,33 +277,36 @@ static int pm8008_probe(struct i2c_client *client) */ usleep_range(1000, 2000); =20 - name =3D devm_kasprintf(dev, GFP_KERNEL, "%pOF-internal", dev->of_node); - if (!name) - return -ENOMEM; + if (client->irq) { + name =3D devm_kasprintf(dev, GFP_KERNEL, "%pOF-internal", dev->of_node); + if (!name) + return -ENOMEM; =20 - name =3D strreplace(name, '/', ':'); + name =3D strreplace(name, '/', ':'); =20 - fwnode =3D irq_domain_alloc_named_fwnode(name); - if (!fwnode) - return -ENOMEM; + fwnode =3D irq_domain_alloc_named_fwnode(name); + if (!fwnode) + return -ENOMEM; =20 - ret =3D devm_add_action_or_reset(dev, devm_irq_domain_fwnode_release, fwn= ode); - if (ret) - return ret; + ret =3D devm_add_action_or_reset(dev, devm_irq_domain_fwnode_release, fw= node); + if (ret) + return ret; =20 - ret =3D devm_regmap_add_irq_chip_fwnode(dev, fwnode, regmap, client->irq, - IRQF_SHARED, 0, data->irq_chip_desc, &irq_data); - if (ret) { - dev_err(dev, "failed to add IRQ chip: %d\n", ret); - return ret; - } + ret =3D devm_regmap_add_irq_chip_fwnode(dev, fwnode, regmap, client->irq, + IRQF_SHARED, 0, data->irq_chip_desc, + &irq_data); + if (ret) { + dev_err(dev, "failed to add IRQ chip: %d\n", ret); + return ret; + } =20 - /* Needed by GPIO driver. */ - dev_set_drvdata(dev, regmap_irq_get_domain(irq_data)); + /* Needed by GPIO driver. */ + dev_set_drvdata(dev, regmap_irq_get_domain(irq_data)); + } =20 return devm_mfd_add_devices(dev, PLATFORM_DEVID_AUTO, data->mfd_cells, - data->num_mfd_cells, NULL, 0, - regmap_irq_get_domain(irq_data)); + data->num_mfd_cells, NULL, 0, + regmap_irq_get_domain(irq_data)); } =20 static const struct pm8008_match_data pm8008_data =3D { --=20 2.43.0