From nobody Sun Jun 14 12:45:30 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 E2ED5377034 for ; Mon, 20 Apr 2026 02:26:18 +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=1776651980; cv=none; b=SNZDcod0TLIvYY6iDHoY2zHZTQRwBA17nyre52bWsWAJnVmHniUwRA4vc8BqDc4+pGhhcKLMkaufzYUCbKGkHpB5+vCxUj3jwK8q5F1qSIXXA8RS8/z7n8XouAIetxX8nq49BJGnPtxQV+kC+s+cqjRsNxHFaUAOCzk9qD7bEos= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1776651980; c=relaxed/simple; bh=/5a1m6I6NfJxXWkBlWbrgm5EJvWmpe+5B0+24yFFvY0=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=hlR5+eHNLAi9RyUk1ByaoS9RpZFvmURBR8Ax9lrccV9qu7/9LE72GEwYaeTVDlxiuzImf95t24Va3S+Qezi/D4lXJx4cyyg9EXpeqYncvMnY1BRegmDI1S5vFhUgeW2AOfmg3cxhxy7pv/wRJ0G5jPFXla//0jy6kbshzETXDfw= 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=Wm5+tB5w; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=LHi5z+mx; 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="Wm5+tB5w"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="LHi5z+mx" 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 63K1oipm835608 for ; Mon, 20 Apr 2026 02:26:18 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= V6EfKChOv/S9Rl3s3ulBfu3o6W1NQgEPPHlL6OVVk00=; b=Wm5+tB5wBGE3VMCO dqSFmNN7z7kmyt+AtwWxxozWliGxJKgOm/6wbJBRdBDCMLzWhM4Eu2YLXJt3rHmJ R7XTHc7Joq/rWiD0SpIzVocI4Z5J8tiPyjAr06Q+ChieDyJzn/+yJsHldpgiDlIH lve/bhs1fkWCBvoFPtDxyX67snP5oG5FQwjqt2ac2upm+hzaLFIFH34uRMsJOj9l 4yBZI/Ob9AUgIsQe3zA3M72iwv+p7MJwcAI6DZPckS2LqcoAgzEhv6UGJr5w3/nn JmJOr8Eij/Y/m/UeM8RuHGcY5mfhGI7P31Y9a358WHuFBXiHXECG9SJhs6Yr9KJP mRdmSw== Received: from mail-dy1-f198.google.com (mail-dy1-f198.google.com [74.125.82.198]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4dm388kkta-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Mon, 20 Apr 2026 02:26:17 +0000 (GMT) Received: by mail-dy1-f198.google.com with SMTP id 5a478bee46e88-2e60238adb1so1232635eec.0 for ; Sun, 19 Apr 2026 19:26:17 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1776651977; x=1777256777; 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=V6EfKChOv/S9Rl3s3ulBfu3o6W1NQgEPPHlL6OVVk00=; b=LHi5z+mxizhfE4FFJxzc186HfDaTGZzMCvmKqaNOIPx3Z9k42ipk8O6EGirw2IshHf 5UKSbIdaC1EWPlwj5qt4fpKbDV+JuD8fLz+ETbJnQ7AZcbOJaLe5f4Ib/Oe8DGuy1QYq LntXmi1poIjAjMl2iXNNXBzCgUwAc2aF54sTtfsHy607uVSuh/nijQq4zGJI22rOyqHM Ju7VOlHhki8i2A6ZhaS2koP+d/4v2bqLSLhjlkVEVpsGczUXorZMoss349CMRjQs0y1l OMZVAYZiDVWHY01Us1DBmRNIdXyxMgMUCvnvU3z4hOz/8psaUDH7AWOuIpGDWQZSXuHL 6t4g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1776651977; x=1777256777; 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=V6EfKChOv/S9Rl3s3ulBfu3o6W1NQgEPPHlL6OVVk00=; b=cA29pskyPTC5ALffnLZuYaTOXO+VreTCImeHzGBQIK8zE4h+Lnf/9V4MSDnP7VeDRg yTbMCG6Wc11TgvdAUJfafqrISmBoI0+5CuMvIa1Yg7hZUtAe8BeYLRelL9q8ug995Ycm 1AY9xY39spH592pi/6jCMPKjDFJGE9qLlSLfQkwyFd8QnpMNu2vuIsxtYwiiY6JJpWpr XlCO/bQY8JbPwxgke3qetn0jv+cMEeecbSskIfaJiqi3t0qsOlyk+SnbBB1sH/0GRNfD +ZtQVEoJIrZmzqcinptUjWZgOK1y5ToPiEDHTxd78fc47HU3KqMbU7HG1UXJ1t+/53FR kImw== X-Forwarded-Encrypted: i=1; AFNElJ9E0F6ovkiQzsGgtwcMKjRha2O8lslHoKWFP4ew+sk+AfzIzr+JQVLxBYJ3M1aNstY4lxIyO/cAZK50wfI=@vger.kernel.org X-Gm-Message-State: AOJu0YzpS/M4DDLcwLh4lnssE0N8tnwtFK21dPDZhEgbRpoRbQZ+qOpF JI0lp51k2F6VC4WlIh+fl63MTE7Gt+mi2uCBqZqdBKaiaQhoTIZW9wAt1o7BO3A4GO1jpDnwiu1 w2Ky3uNXm+6B6yRfNIZsIKn1jdIFYdiCvN3hQcVH8FKyBBN1+/k0QYj78b/WIK1JkYlc= X-Gm-Gg: AeBDiev2Qmb3HKO0ZlhvAphOhWdi8pVpQO/iOA5uMnEo8CiZyrZ1LrSv6cLOv4uIzYU QES5wrbJgAW/6fQM0ma+iYQ2hH+wiK1DymemkmsWSU1CHeWwdGblrvjFhuTEUU5O4tbF17aGmLt CmZEUSnM2xZgft8baBhfaEsb+BJ3xiKCU4vgais0YZNZ0h2E42TQDmqh0Zk7O2f4b6kPEVpPA17 CzIwBWJC9O04h8VWc0RnzvEsemyparGjc8BL9Kk4oItoIlK1LMELs6KtKF/OE/+yK6Kd/an5RGe fzNi2YhoAnLOmUICX8b2XTqbOjb7Aa7Rz2wQsoGvZIOBWVww4vbU+l63DfQTzJW8+B62V4RVDVF 5BzazJNlx8tZuY6C24FdzCcNwJqC2mx5WWO1AUoe0tJ2fkiy92Yrh+lZLJRYIIRo49/X4w5WXRa TyG1ASg0mT X-Received: by 2002:a05:7300:748f:b0:2cc:600d:2ffa with SMTP id 5a478bee46e88-2e4788392c3mr5384306eec.16.1776651977093; Sun, 19 Apr 2026 19:26:17 -0700 (PDT) X-Received: by 2002:a05:7300:748f:b0:2cc:600d:2ffa with SMTP id 5a478bee46e88-2e4788392c3mr5384282eec.16.1776651976580; Sun, 19 Apr 2026 19:26:16 -0700 (PDT) Received: from hu-fenglinw-lv.qualcomm.com (Global_NAT1.qualcomm.com. [129.46.96.20]) by smtp.gmail.com with ESMTPSA id 5a478bee46e88-2e53a4a8018sm15299023eec.8.2026.04.19.19.26.15 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 19 Apr 2026 19:26:16 -0700 (PDT) From: Fenglin Wu Date: Sun, 19 Apr 2026 19:25:52 -0700 Subject: [PATCH v3 1/2] dt-bindings: spmi: glymur-spmi-pmic-arb: Add compatible for Qualcomm Hawi SoC 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: <20260419-hawi-spmi-v3-1-b04ee909cb87@oss.qualcomm.com> References: <20260419-hawi-spmi-v3-0-b04ee909cb87@oss.qualcomm.com> In-Reply-To: <20260419-hawi-spmi-v3-0-b04ee909cb87@oss.qualcomm.com> To: Stephen Boyd , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Konrad Dybcio , Dmitry Baryshkov Cc: Subbaraman Narayanamurthy , David Collins , linux-arm-msm@vger.kernel.org, linux-kernel@vger.kernel.org, devicetree@vger.kernel.org, kernel@oss.qualcomm.com, Fenglin Wu X-Mailer: b4 0.16-dev-17187 X-Developer-Signature: v=1; a=ed25519-sha256; t=1776651974; l=1247; i=fenglin.wu@oss.qualcomm.com; s=20260324; h=from:subject:message-id; bh=/5a1m6I6NfJxXWkBlWbrgm5EJvWmpe+5B0+24yFFvY0=; b=Aed8aqzAbb2QzSosTdomq12q1XJ2seUrCT/4G+qah4Fuxvl/JjOWjVxxVbPZovIMdLRYbF1Ut tFwScTjOghZCv3a1Eo4Q3BnIvxDyS8ctjgvjgerHpeRqbEYjJXe2Sdv X-Developer-Key: i=fenglin.wu@oss.qualcomm.com; a=ed25519; pk=hJdt3E7o54lql+miD2GaxwF74cDyhgNwMbmFOZ46bRU= X-Authority-Analysis: v=2.4 cv=GthyPE1C c=1 sm=1 tr=0 ts=69e58ec9 cx=c_pps a=wEP8DlPgTf/vqF+yE6f9lg==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=A5OVakUREuEA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=YMgV9FUhrdKAYTUUvYB2:22 a=EUspDBNiAAAA:8 a=PsuS8QLcD5ISLKS92A8A:9 a=QEXdDO2ut3YA:10 a=bBxd6f-gb0O0v-kibOvt:22 X-Proofpoint-GUID: DvIvAjnnvdZ97fezV1_kxYPz0k8RWnx5 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNDIwMDAyMSBTYWx0ZWRfX8+KX5cLQUmra GtqR3p+eoF3ZXcgRstkpl1SXORJhX1rQASMJ4hvDa5kF+M5D5PAxUGfjFSwPXrlK5/sckSncn12 EMgM793ycs5sWmI6QPtihWFk/d65c/p8TIWW4BEpiWtGx6aUqj1eR3cdj4Q6tvR070datu7CbIv FdMJ+KnCG3Dbf/L+I3KMHSeFssdeWaLlRg98dynq4aMrrKiuNRWY+QJZqpmIo5nbwRDUh9utiSq sUIQn/u62Wti8yRAbKhoiitOhlsvlNCbQLKyIHbr9zfZjh9O2rpWrLaGK73fKrwd3spEf9NqG+X Z1MTbIGVf8XV6qUQCs+j/ZE7ZBZQAVCa5lS+b5zRJscXTc2J1gwgIE9mSZ0Fb+bsTG88/N4ebpK C587ekETIbaIfAHGeNyfentYdwCe21dC9Qn1PFyj01jnzFdfJPMKjZYZDFddi47JnmErwZmv8A9 QYyMshz9PPdJpT5dvvw== X-Proofpoint-ORIG-GUID: DvIvAjnnvdZ97fezV1_kxYPz0k8RWnx5 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.51,FMLib:17.12.100.49 definitions=2026-04-19_07,2026-04-17_04,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 impostorscore=0 adultscore=0 phishscore=0 lowpriorityscore=0 clxscore=1015 priorityscore=1501 malwarescore=0 spamscore=0 bulkscore=0 suspectscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2604070000 definitions=main-2604200021 The PMIC arbiter in the Qualcomm Hawi SoC is version v8.5, which introduces parity and CRC checks for data received from the PMIC, as well as NACK checks for command sequences except for read. All other features in PMIC arbiter remain the same as the one in the Qualcomm Glymur SoC, with the only differences being some additional error status checks. Therefore, add a string for "qcom,hawi-spmi-pmic-arb" as a compatible entry for "qcom,glymur-spmi-pmic-arb". Signed-off-by: Fenglin Wu Reviewed-by: Krzysztof Kozlowski --- Documentation/devicetree/bindings/spmi/qcom,glymur-spmi-pmic-arb.yaml | 1 + 1 file changed, 1 insertion(+) diff --git a/Documentation/devicetree/bindings/spmi/qcom,glymur-spmi-pmic-a= rb.yaml b/Documentation/devicetree/bindings/spmi/qcom,glymur-spmi-pmic-arb.= yaml index 3b5005b96c6d..1593a1183a36 100644 --- a/Documentation/devicetree/bindings/spmi/qcom,glymur-spmi-pmic-arb.yaml +++ b/Documentation/devicetree/bindings/spmi/qcom,glymur-spmi-pmic-arb.yaml @@ -25,6 +25,7 @@ properties: oneOf: - items: - enum: + - qcom,hawi-spmi-pmic-arb - qcom,kaanapali-spmi-pmic-arb - const: qcom,glymur-spmi-pmic-arb - enum: --=20 2.43.0 From nobody Sun Jun 14 12:45:30 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 536A83783C1 for ; Mon, 20 Apr 2026 02:26:20 +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=1776651982; cv=none; b=F3ZHh5u0oM5u+sYT93v9X448x0gDslJQQVMRR6frErW95UKOCSpBw11Q4q2KjDFvclgfGV/E8jKTEGeFHyyYfMWj2O343KFvkWTbV7lgRsJnKNKn2GPTKyO0BS8CXjOZXl4zeChe9av2fYySmu9/h8PB9DxZ8fHZI2F/rp8M79s= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1776651982; c=relaxed/simple; bh=LRzEEtoUQNDOYN6qMiXD5KNuLpI9vlfwp/jvmFxVNqM=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=n8gJH3B/IyNd6Y2ilwN5TxxU0JB8QajOCZNkL2gZASa//inb0FDVQPH5PdVv8RqGD5MpsQROsh+lW7E5deAx6qcAhKvFkDJV+MnrE0SonhCKaN/lEhJTkk1gIVCJwIJEUgFFEEMqbf21MT7OQ0tFAEGmbWn9JafyICmOwn4fi9E= 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=oe2AkL9V; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=anG72hVu; 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="oe2AkL9V"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="anG72hVu" Received: from pps.filterd (m0279871.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 63JGCd0j124821 for ; Mon, 20 Apr 2026 02:26:19 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= 7aB//lKjhZemWKOfC0fv9se5rf8oJid4Xh3oSsyjLKM=; b=oe2AkL9VsXlQYFYh 9El5FpfBbWndg3G9Dx248A+QDVZT7QTR14MLOCg+9esW7lOZto2lnrYsqI3UoPIG dAk/jIHHyt8zXyK86HjjyGU5Im2duN5bW6AQVJ2eM4JCK/cO+uiOQQ/CeCdQqY8k 3gWdn2WGYzgx8in5w76UTXh2gU/B0cJQvTgEtXCk688xLH66RPqjPlRgJQnIyX1R NGe4nM59u0J/HZkUywTEFzBdaMxbQHIWyORZKouxixplP3S2kNZ3ShBzuP8prDBe IyoGbBOehpz7sJiuue34vg6s3WpoOFTlWAZCU+cJpF3tS2NbXz0nrFJFLnTrdh3Q 72VhZw== Received: from mail-dy1-f198.google.com (mail-dy1-f198.google.com [74.125.82.198]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4dm1hx3qfm-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Mon, 20 Apr 2026 02:26:19 +0000 (GMT) Received: by mail-dy1-f198.google.com with SMTP id 5a478bee46e88-2bdf6fe90a9so3164458eec.1 for ; Sun, 19 Apr 2026 19:26:19 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1776651978; x=1777256778; 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=7aB//lKjhZemWKOfC0fv9se5rf8oJid4Xh3oSsyjLKM=; b=anG72hVu1zxYS0PP4Jje2tzY/2FuMvlsc46XviB7sv0Gr7xiPx0HyLKwycqelQcctP je7gLcis66vIAmn9/ClkG2axV8vRpxupvFXQExPW0k1QetW6/TAIlP/bOgjigP4VeVvO W4b06dwmEBoX8vN4U8MRuIhO0H0BxgW4qBtZsF6p/alse0P5DkhQyPC+0L+Od8vuN+mE iMPrPJNawEQ5uUj2DNu2nNB13iVJLM4fz0E08keyzRQbu8R21TD1wUglr+p7QN9xF3rO jH4tbQ2dvKhXIWh0Jja36pMYS9O7tR628mWz0ylFZYIKQbExmlTDDHwhrfYSjljzHjQa gP4Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1776651978; x=1777256778; 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=7aB//lKjhZemWKOfC0fv9se5rf8oJid4Xh3oSsyjLKM=; b=PjtmFU31jd1jIUQL+HfdivhQ/PDnkEhcCXNgSPrguBLGcSBs2xO+ZBHnicz0d6bgk+ AxnmbPJNNag6SZmywVkbs6pjEyXOyAnabGQDNyY0aW3q9Ahq4L6tWYjWJncaD49luoJY YVKtqcOe3i3Xuai9xm/aTo3oFZG0AkJiqmnGHwyLP/x/A6RGDfH5Eagv1X0eo03/8wkt pEsvM1OeQ9FWqVYrGEOVITjLnI8MNtdkw355ez2IJBIpfg41wOdwhw13bUkXzdC9caYJ 1xEdCGzAh/qayWvN9ba+U6B5im+6YGmcnIQrRyGmxfX2Kk4TL0Q9v12idQCq1YjoOMXw StXw== X-Forwarded-Encrypted: i=1; AFNElJ/5HW7iWtunBLi+1T/sI5RZ8URtPIR2YjheuK1nMDHCqz29EDwKAG1qE1V9uMb97im2hfeBHdoy0b0RY0Q=@vger.kernel.org X-Gm-Message-State: AOJu0YzhDmfF/Kzz5IDZkM1uEIDdyFyCdiq2DsyZKQqAZCnqYwWdzXxb fgawwU9gF7OxD3K/lo1HiQce/h7q+HkEsKbl9xziDJBpyT+OK5tExUPljRAEEkrmjEF0yUt905A BWFR69beBJ4f49u9BQ9KdYs7ZXCsRIrfAy2mre4QkpDkB/VIicsi1/jvswPNz/z+aDzU= X-Gm-Gg: AeBDietSJe2X5F3Cm9R7A258cIJB5muXjcgh/cKFuZVXW86yWl2WJQyDVvju05XOuYR 1y9CF0SJ9AsIKf+XoVyzPV0gWLguwMO5EEQurZmCz+0HNiOgVbEbrZ0IdpSFIetD4zRD3qoSSzG I/Rtixc/KUrotyb/KXaFrG3iySNnwmjUP4eVLmN/5bAjIDAYYUwbBMk0xKzMEJkaiMpnEWHrDN0 us5GDzgtwAhfu0C0Yd2lzVMumRG+hOtUQMZmpJ+xE78pFfO6N1ATceuByxAlOBMaOmuadD0XePK IC9gheIiBKfexw+FMp3zMCf60A3R5lFObLcpZqyS65Lhyb5zJY9OY6e9mLwwc1DkhJKNseqwhzE sNjJAuiLuGEsPvClT1fU0I204/UWmsXyGzUYdvJbMJG2psIeIitDbT//iDKALXsTuOpZoSMpo2E GQ9NI5seKZ X-Received: by 2002:a05:7301:6793:b0:2ca:7eb4:3e0f with SMTP id 5a478bee46e88-2e464dafc32mr5863474eec.5.1776651978020; Sun, 19 Apr 2026 19:26:18 -0700 (PDT) X-Received: by 2002:a05:7301:6793:b0:2ca:7eb4:3e0f with SMTP id 5a478bee46e88-2e464dafc32mr5863451eec.5.1776651977435; Sun, 19 Apr 2026 19:26:17 -0700 (PDT) Received: from hu-fenglinw-lv.qualcomm.com (Global_NAT1.qualcomm.com. [129.46.96.20]) by smtp.gmail.com with ESMTPSA id 5a478bee46e88-2e53a4a8018sm15299023eec.8.2026.04.19.19.26.16 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 19 Apr 2026 19:26:17 -0700 (PDT) From: Fenglin Wu Date: Sun, 19 Apr 2026 19:25:53 -0700 Subject: [PATCH v3 2/2] spmi: spmi-pmic-arb: add support for PMIC arbiter v8.5 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: <20260419-hawi-spmi-v3-2-b04ee909cb87@oss.qualcomm.com> References: <20260419-hawi-spmi-v3-0-b04ee909cb87@oss.qualcomm.com> In-Reply-To: <20260419-hawi-spmi-v3-0-b04ee909cb87@oss.qualcomm.com> To: Stephen Boyd , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Konrad Dybcio , Dmitry Baryshkov Cc: Subbaraman Narayanamurthy , David Collins , linux-arm-msm@vger.kernel.org, linux-kernel@vger.kernel.org, devicetree@vger.kernel.org, kernel@oss.qualcomm.com, Fenglin Wu X-Mailer: b4 0.16-dev-17187 X-Developer-Signature: v=1; a=ed25519-sha256; t=1776651974; l=8278; i=fenglin.wu@oss.qualcomm.com; s=20260324; h=from:subject:message-id; bh=LRzEEtoUQNDOYN6qMiXD5KNuLpI9vlfwp/jvmFxVNqM=; b=4i6lIvAh7fWgZW16nLIcem7nJpjntXYzG2Rm/HHJOBTXKimt0IbQDhdXiV4KWcQi8miPGh0Ta Z0VkivcsoVqB+ASx4Gaq4JNR1wlVVJWb56vwodKwifO1kUPYEMQgAq1 X-Developer-Key: i=fenglin.wu@oss.qualcomm.com; a=ed25519; pk=hJdt3E7o54lql+miD2GaxwF74cDyhgNwMbmFOZ46bRU= X-Proofpoint-ORIG-GUID: 07yVBTDcTDJ3gTj_7AmJU5QQCEawD-JQ X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNDIwMDAyMSBTYWx0ZWRfX50E6j5YsNplE e0c73rM7Q6D+KaIKb09BladZPSK3PALy7Izq50yOM+2h6ty/2CTtrKwNTfgSba1MsE+aHlPLe6o JFKGURrdujCokOW4f/41zwewhpfmlBlvNo9GV4K8naPuvxQJe3jTXjwFN+XB2Ss72qEM77qnaku N93CF/K8q9GjcpbRIHOpUpFUhtijDHPfVJaRrYNIzEPBz1r66ttq1gw6CCZvbR/bmJ6/9WvNJTu qnSL5UQkRyH1m3WvpkKwB8FtXS7oHr4N9dvmDDUe4FQhejUwcx/XzA2vqbPVUKdkI8p6rffO8y3 tuGDhsfOELPC84Gn1DMHj4C1shiiZKVUB98fGjjrXTFlZGh1NtDpnp3b0wdoDj9P0U4dzu4m1Ds ggTRMQUDAPZZLccDL0z9qXfCav8Zd+Y8MTiSN0qCZIQTZ8eQ4Zlmemq8ZXRcGXk6uvzokQLooFM 2L9kLbfAAJApuLJ/BCA== X-Proofpoint-GUID: 07yVBTDcTDJ3gTj_7AmJU5QQCEawD-JQ X-Authority-Analysis: v=2.4 cv=RoX16imK c=1 sm=1 tr=0 ts=69e58ecb cx=c_pps a=wEP8DlPgTf/vqF+yE6f9lg==:117 a=ouPCqIW2jiPt+lZRy3xVPw==:17 a=IkcTkHD0fZMA:10 a=A5OVakUREuEA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=3WHJM1ZQz_JShphwDgj5:22 a=EUspDBNiAAAA:8 a=OV-Ktwupj4Rdi1Ve7EMA:9 a=QEXdDO2ut3YA:10 a=bBxd6f-gb0O0v-kibOvt:22 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.51,FMLib:17.12.100.49 definitions=2026-04-19_07,2026-04-17_04,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 impostorscore=0 malwarescore=0 adultscore=0 spamscore=0 phishscore=0 clxscore=1015 bulkscore=0 lowpriorityscore=0 suspectscore=0 priorityscore=1501 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2604070000 definitions=main-2604200021 PMIC arbiter v8.5 is an extension of PMIC arbiter v8 that updated the definition of the channel status register bit fields. Add support to handle this difference. Signed-off-by: Fenglin Wu Reviewed-by: Dmitry Baryshkov --- drivers/spmi/spmi-pmic-arb.c | 142 ++++++++++++++++++++++++++++++++++-----= ---- 1 file changed, 112 insertions(+), 30 deletions(-) diff --git a/drivers/spmi/spmi-pmic-arb.c b/drivers/spmi/spmi-pmic-arb.c index 69f8d456324a..2e2cb4774103 100644 --- a/drivers/spmi/spmi-pmic-arb.c +++ b/drivers/spmi/spmi-pmic-arb.c @@ -28,6 +28,7 @@ #define PMIC_ARB_VERSION_V5_MIN 0x50000000 #define PMIC_ARB_VERSION_V7_MIN 0x70000000 #define PMIC_ARB_VERSION_V8_MIN 0x80000000 +#define PMIC_ARB_VERSION_V8P5_MIN 0x80050000 #define PMIC_ARB_INT_EN 0x0004 =20 #define PMIC_ARB_FEATURES 0x0004 @@ -62,14 +63,6 @@ /* Ownership Table */ #define SPMI_OWNERSHIP_PERIPH2OWNER(X) ((X) & 0x7) =20 -/* Channel Status fields */ -enum pmic_arb_chnl_status { - PMIC_ARB_STATUS_DONE =3D BIT(0), - PMIC_ARB_STATUS_FAILURE =3D BIT(1), - PMIC_ARB_STATUS_DENIED =3D BIT(2), - PMIC_ARB_STATUS_DROPPED =3D BIT(3), -}; - /* Command register fields */ #define PMIC_ARB_CMD_MAX_BYTE_COUNT 8 =20 @@ -239,6 +232,7 @@ struct spmi_pmic_arb { * on v2 address of SPMI_PIC_IRQ_CLEARn. * @apid_map_offset: offset of PMIC_ARB_REG_CHNLn * @apid_owner: on v2 and later address of SPMI_PERIPHn_2OWNER_TABLE_REG + * @check_chnl_status: checks channel status and returns error code if any */ struct pmic_arb_ver_ops { const char *ver_str; @@ -261,6 +255,8 @@ struct pmic_arb_ver_ops { void __iomem *(*irq_clear)(struct spmi_pmic_arb_bus *bus, u16 n); u32 (*apid_map_offset)(u16 n); void __iomem *(*apid_owner)(struct spmi_pmic_arb_bus *bus, u16 n); + int (*check_chnl_status)(struct spmi_controller *ctrl, u32 status, + u8 sid, u16 addr, u32 offset); }; =20 static inline void pmic_arb_base_write(struct spmi_pmic_arb *pmic_arb, @@ -306,6 +302,84 @@ static void pmic_arb_write_data(struct spmi_pmic_arb *= pmic_arb, const u8 *buf, __raw_writel(data, pmic_arb->wr_base + reg); } =20 +static int pmic_arb_check_chnl_status_v1(struct spmi_controller *ctrl, + u32 status, u8 sid, u16 addr, + u32 offset) +{ + /* Check if DONE bit is set */ + if (!(status & BIT(0))) + return -EAGAIN; + + if (status & BIT(1)) { + dev_err(&ctrl->dev, "%s: %#x %#x: transaction failed (%#x) reg: 0x%x\n", + __func__, sid, addr, status, offset); + WARN_ON(1); + return -EIO; + } + + if (status & BIT(2)) { + dev_err(&ctrl->dev, "%s: %#x %#x: transaction denied (%#x)\n", + __func__, sid, addr, status); + return -EPERM; + } + + if (status & BIT(3)) { + dev_err(&ctrl->dev, "%s: %#x %#x: transaction dropped (%#x)\n", + __func__, sid, addr, status); + return -EIO; + } + + return 0; +} + +static int pmic_arb_check_chnl_status_v8p5(struct spmi_controller *ctrl, + u32 status, u8 sid, u16 addr, + u32 offset) +{ + /* Check if DONE bit is set */ + if (!(status & BIT(0))) + return -EAGAIN; + + if (status & BIT(1)) { + dev_err(&ctrl->dev, "%s: %#x %#x: transaction failed (%#x) reg: 0x%x\n", + __func__, sid, addr, status, offset); + WARN_ON(1); + return -EIO; + } + + if (status & BIT(2)) { + dev_err(&ctrl->dev, "%s: %#x %#x: CRC error (%#x)\n", + __func__, sid, addr, status); + return -EIO; + } + + if (status & BIT(3)) { + dev_err(&ctrl->dev, "%s: %#x %#x: parity error (%#x)\n", + __func__, sid, addr, status); + return -EIO; + } + + if (status & BIT(4)) { + dev_err(&ctrl->dev, "%s: %#x %#x: NACK error (%#x)\n", + __func__, sid, addr, status); + return -EIO; + } + + if (status & BIT(5)) { + dev_err(&ctrl->dev, "%s: %#x %#x: transaction denied (%#x)\n", + __func__, sid, addr, status); + return -EPERM; + } + + if (status & BIT(6)) { + dev_err(&ctrl->dev, "%s: %#x %#x: transaction dropped (%#x)\n", + __func__, sid, addr, status); + return -EIO; + } + + return 0; +} + static int pmic_arb_wait_for_done(struct spmi_controller *ctrl, void __iomem *base, u8 sid, u16 addr, enum pmic_arb_channel ch_type) @@ -327,28 +401,10 @@ static int pmic_arb_wait_for_done(struct spmi_control= ler *ctrl, while (timeout--) { status =3D readl_relaxed(base + offset); =20 - if (status & PMIC_ARB_STATUS_DONE) { - if (status & PMIC_ARB_STATUS_DENIED) { - dev_err(&ctrl->dev, "%s: %#x %#x: transaction denied (%#x)\n", - __func__, sid, addr, status); - return -EPERM; - } + rc =3D pmic_arb->ver_ops->check_chnl_status(ctrl, status, sid, addr, off= set); + if (rc !=3D -EAGAIN) + return rc; =20 - if (status & PMIC_ARB_STATUS_FAILURE) { - dev_err(&ctrl->dev, "%s: %#x %#x: transaction failed (%#x) reg: 0x%x\n= ", - __func__, sid, addr, status, offset); - WARN_ON(1); - return -EIO; - } - - if (status & PMIC_ARB_STATUS_DROPPED) { - dev_err(&ctrl->dev, "%s: %#x %#x: transaction dropped (%#x)\n", - __func__, sid, addr, status); - return -EIO; - } - - return 0; - } udelay(1); } =20 @@ -1768,6 +1824,7 @@ static const struct pmic_arb_ver_ops pmic_arb_v1 =3D { .irq_clear =3D pmic_arb_irq_clear_v1, .apid_map_offset =3D pmic_arb_apid_map_offset_v2, .apid_owner =3D pmic_arb_apid_owner_v2, + .check_chnl_status =3D pmic_arb_check_chnl_status_v1, }; =20 static const struct pmic_arb_ver_ops pmic_arb_v2 =3D { @@ -1784,6 +1841,7 @@ static const struct pmic_arb_ver_ops pmic_arb_v2 =3D { .irq_clear =3D pmic_arb_irq_clear_v2, .apid_map_offset =3D pmic_arb_apid_map_offset_v2, .apid_owner =3D pmic_arb_apid_owner_v2, + .check_chnl_status =3D pmic_arb_check_chnl_status_v1, }; =20 static const struct pmic_arb_ver_ops pmic_arb_v3 =3D { @@ -1800,6 +1858,7 @@ static const struct pmic_arb_ver_ops pmic_arb_v3 =3D { .irq_clear =3D pmic_arb_irq_clear_v2, .apid_map_offset =3D pmic_arb_apid_map_offset_v2, .apid_owner =3D pmic_arb_apid_owner_v2, + .check_chnl_status =3D pmic_arb_check_chnl_status_v1, }; =20 static const struct pmic_arb_ver_ops pmic_arb_v5 =3D { @@ -1816,6 +1875,7 @@ static const struct pmic_arb_ver_ops pmic_arb_v5 =3D { .irq_clear =3D pmic_arb_irq_clear_v5, .apid_map_offset =3D pmic_arb_apid_map_offset_v5, .apid_owner =3D pmic_arb_apid_owner_v2, + .check_chnl_status =3D pmic_arb_check_chnl_status_v1, }; =20 static const struct pmic_arb_ver_ops pmic_arb_v7 =3D { @@ -1832,6 +1892,7 @@ static const struct pmic_arb_ver_ops pmic_arb_v7 =3D { .irq_clear =3D pmic_arb_irq_clear_v7, .apid_map_offset =3D pmic_arb_apid_map_offset_v7, .apid_owner =3D pmic_arb_apid_owner_v7, + .check_chnl_status =3D pmic_arb_check_chnl_status_v1, }; =20 static const struct pmic_arb_ver_ops pmic_arb_v8 =3D { @@ -1849,6 +1910,25 @@ static const struct pmic_arb_ver_ops pmic_arb_v8 =3D= { .irq_clear =3D pmic_arb_irq_clear_v8, .apid_map_offset =3D pmic_arb_apid_map_offset_v8, .apid_owner =3D pmic_arb_apid_owner_v8, + .check_chnl_status =3D pmic_arb_check_chnl_status_v1, +}; + +static const struct pmic_arb_ver_ops pmic_arb_v8p5 =3D { + .ver_str =3D "v8.5", + .get_core_resources =3D pmic_arb_get_core_resources_v8, + .get_bus_resources =3D pmic_arb_get_bus_resources_v8, + .init_apid =3D pmic_arb_init_apid_v8, + .ppid_to_apid =3D pmic_arb_ppid_to_apid_v5, + .non_data_cmd =3D pmic_arb_non_data_cmd_v2, + .offset =3D pmic_arb_offset_v8, + .fmt_cmd =3D pmic_arb_fmt_cmd_v2, + .owner_acc_status =3D pmic_arb_owner_acc_status_v7, + .acc_enable =3D pmic_arb_acc_enable_v8, + .irq_status =3D pmic_arb_irq_status_v8, + .irq_clear =3D pmic_arb_irq_clear_v8, + .apid_map_offset =3D pmic_arb_apid_map_offset_v8, + .apid_owner =3D pmic_arb_apid_owner_v8, + .check_chnl_status =3D pmic_arb_check_chnl_status_v8p5, }; =20 static const struct irq_domain_ops pmic_arb_irq_domain_ops =3D { @@ -2030,8 +2110,10 @@ static int spmi_pmic_arb_probe(struct platform_devic= e *pdev) pmic_arb->ver_ops =3D &pmic_arb_v5; else if (hw_ver < PMIC_ARB_VERSION_V8_MIN) pmic_arb->ver_ops =3D &pmic_arb_v7; - else + else if (hw_ver < PMIC_ARB_VERSION_V8P5_MIN) pmic_arb->ver_ops =3D &pmic_arb_v8; + else + pmic_arb->ver_ops =3D &pmic_arb_v8p5; =20 err =3D pmic_arb->ver_ops->get_core_resources(pdev, core); if (err) --=20 2.43.0