From nobody Sat Sep 26 07:15:39 2026 Received: from CHN02-SH0-obe.outbound.protection.partner.outlook.cn (mail-sh0chn02on2128.outbound.protection.partner.outlook.cn [139.219.146.128]) (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 60FA74AF15F; Thu, 3 Sep 2026 13:35:36 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=139.219.146.128 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1788442552; cv=fail; b=L9+Ono7BA0i33Gf1Bp9Q/Gb2j6AgHfsr+K1vH01r42NceZp4GEqBpYFvzBGf2gNlgM9YzJLL0Rkl2pBfzL4fObnQBxbst+QnC5J2FIduiQhvo4Cguua+Ftnbyuu8KjF11SN6ntTxZpfHWJd6sAvMXL/Je7MAju2R5Gq1iWnxMik= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1788442552; c=relaxed/simple; bh=MoE4jXzDqqcdIIWZ3r+wxrpTfVpvL8Ij77V84urtwBs=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: Content-Type:MIME-Version; b=jid60GUYsZ3/T4Rapneb8hu/CuHOlALvuAWbZVdaKlJjM1hOz+aCKmU/sCTRogh2JmXbhvDr21iGATimA6MSDDfNikLh9CwOMLvV5sGniAbtMSFJMg8AznVoRp6aYXEAtaKjqkNaGcHYuVMb30d0Yr2hpecvCJgUJEzer/9DUmY= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=starfivetech.com; spf=pass smtp.mailfrom=starfivetech.com; arc=fail smtp.client-ip=139.219.146.128 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=starfivetech.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=starfivetech.com ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=b9l+5xSpyplqmBoGQQC/w9wtzIXORHK7iUKtZZNIThET9Bqe8UQsahf52ZKuNRDrc9mUmWqPXJ1wxcC4axGkmsvgpE72GIesTGoy5K0cZY91bWJGSqslkP4eaQaR72EGh6nTCU7ucZARwY+U39wNthRwASH0yFsN2uolixsAnaHonG4egf+fTAyw5DV0xEJolv0Bq3t1ID81SgfSVRk2l5g2VksVTT8h2U1xkIOjgZIG8zNI0d4hZngbDL8AnubF0ck+MGxcO2oaoUL/Qh2flSBYTKZ/KOaDV5WVoZGPLjxGDib0S+EkUbyWGcX1SLOUhRtisNfdg2xISbH3VkD2Ig== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=zV6mc3gQMlM1k9J8uW+evKf4D/uq5HD/Qg8bfNL7ZW0=; b=F0JY6c5bMPRkcv6/In+FLYjKaR/E7NxPO4MR9rV5ultfMT6PzhafPAZYFgXYQspmANb2w7Uxtd8DMRVUQoUezBDYMGssfOhWZQpQY0miiFQZYmsKTfAQOYN53dtv/A2ewNuFhU8KnF06deJIwrkPK/6hK53t+ZDNn32RNQE4ta4GvWJ0fFoTQCPfSb4zmITdKtplGa8gAyKp0jMZwsZcjFEfHtKP9V2iHSUNDKkc8tEHRzGw0PCjySYUg7s6sF2Q4DAQEYY6ASVD3XMElZZT2g/OIZNuR1ND10V9ItkRDnhQqnM81Io56CfFpQ6Rfvoc55/Jqygw8MP33XlpE1rFuA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=starfivetech.com; dmarc=pass action=none header.from=starfivetech.com; dkim=pass header.d=starfivetech.com; arc=none Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=starfivetech.com; Received: from ZQ4PR01MB1202.CHNPR01.prod.partner.outlook.cn (10.2.3.102) by ZQ4PR01MB1201.CHNPR01.prod.partner.outlook.cn (10.2.1.238) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.315.12; Thu, 3 Sep 2026 13:35:19 +0000 Received: from ZQ4PR01MB1202.CHNPR01.prod.partner.outlook.cn ([fe80::e7d4:256c:b066:850d]) by ZQ4PR01MB1202.CHNPR01.prod.partner.outlook.cn ([fe80::e7d4:256c:b066:850d%4]) with mapi id 15.21.0315.011; Thu, 3 Sep 2026 13:35:19 +0000 From: Changhuang Liang To: Rob Herring , Krzysztof Kozlowski , Conor Dooley , Iwona Winiarska , Guenter Roeck Cc: openbmc@lists.ozlabs.org, linux-kernel@vger.kernel.org, devicetree@vger.kernel.org, linux-hwmon@vger.kernel.org, Philipp Zabel , Changhuang Liang Subject: [PATCH v1 1/6] dt-bindings: peci: Add StarFive JHB100 PECI controller Date: Thu, 3 Sep 2026 06:34:03 -0700 Message-Id: <20260903133408.110847-2-changhuang.liang@starfivetech.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20260903133408.110847-1-changhuang.liang@starfivetech.com> References: <20260903133408.110847-1-changhuang.liang@starfivetech.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: SHXPR01CA0020.CHNPR01.prod.partner.outlook.cn (2406:e500:c311:1b::29) To ZQ4PR01MB1202.CHNPR01.prod.partner.outlook.cn (2406:e500:c550:17::6) Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: ZQ4PR01MB1202:EE_|ZQ4PR01MB1201:EE_ X-MS-Office365-Filtering-Correlation-Id: 03311570-0b24-4269-852e-08df09c01bab X-MS-Exchange-SenderADCheck: 1 X-Microsoft-Antispam: BCL:0;ARA:13230040|1800799024|7416014|23010399003|366016|52116014|376014|22082099003|38350700014|10067099003|56012099006|18002099003|3023799007; X-Microsoft-Antispam-Message-Info: k+fdysMow6nq6FssNiPlzKUwBifh5iXjgQR0Vt3nDHSMa9P0kqR9tn/FIZTag+qGrhN/XDvAEAbKYYzy3T/O+yDCf+QKr91Yrxx6YrPeDVetY0sWTaEqkfHTM011M6IHft3/qmNl8vwQnTH9JF3zf1EAz5NSTlNbJRIUp9ftemTmx5cwi/L8HFs7gwTKrwIvJu3OgilVpU8eoq5QBqjKlYg1c6v/PtCfzN/O7E+ivYXnzMJCWORGJkOh+AXLs5+R6k3ZrZwzMIWrLK3DleSTbcFVibpGnnN6f3W1gPIHNfYIqkG48tUk1TF9t3K8VHzj5aI1ZSLHJvbwBKDio5G22W64WIm24Vu3xd+DhcFO4ubQm9btxL0jbzn6lW6jSNT+Wj8l7681EWvQibVPAiszS41dP+hZnJbJ1d7XHel1tG1tAkdEkwOCHm0U37M8cBHIcQXJroA56l9e/bUAI9Zh6YqcvcX4AJnRAhfKqWpojXaePCIM4EBEcxNA3A/750esrxQ8E4UGf3rxBybwJWalJvGp0igMRkdAXWLkNlZwyPVGvcrxyQBbe95/PHLgkhoI X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:ZQ4PR01MB1202.CHNPR01.prod.partner.outlook.cn;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(7416014)(23010399003)(366016)(52116014)(376014)(22082099003)(38350700014)(10067099003)(56012099006)(18002099003)(3023799007);DIR:OUT;SFP:1102; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?zpSdDetLbY7aEwobR+NmbUifg0Ie0l3NjKvVYvkZuKuaBlVfSFUugqLaP91+?= =?us-ascii?Q?ereT7LKE8e0FJ6txPWGvQgD6DxTMMV04TdnWUM9aPQ5FG4wv2aeP4MBFvC3K?= =?us-ascii?Q?ArZlOixRSqPufn0ORq3tCeXx3cKP9cFwAzw8vWPscE0i4PJPQ1sYXv9ioVX6?= =?us-ascii?Q?feWkmo6rqFRQJNPzjbAiF7IauVn/9gTwAxU0MCGwflDMYXcUdqpp7KwY1jI7?= =?us-ascii?Q?NXkz74hZa/F/DZK55F+f6AGLYaa1v9V2AU074HGrwBHwNNI4y6boPg7lsGkh?= =?us-ascii?Q?G3En0Kxna1qgL2isNRSeoe7ZUC6c5m8MtELuC9265kcNaolp0tbYOMdfp4s4?= =?us-ascii?Q?4RW33lDXcVkKadDnCMCW0SfLgzceJH9eaWvmaD16EzbtP1wEWnj+/9Drth9z?= =?us-ascii?Q?fVJRDtVev4iJyNEdIF2QZOHzmtxAQFThssGgwkl5xKbo8Qhdky2dBRZPaVOZ?= =?us-ascii?Q?c2VlWGWu2ubJss59TDORTo6x74rIS4OV79KzSEzu06XQjCzNRk8aoxDZKxbK?= =?us-ascii?Q?qaWi2h9RUmJmWkuSyRmhj4G4JYsg7c5pRkqBVAqoDv9QlcTw426diXAeC38O?= =?us-ascii?Q?7gqho98I2RNx20zBBHCm9cF/M2MfNXH+SgWZHdFUC6qoYSnpiVFKZStTACa4?= =?us-ascii?Q?XRmOFhbRabD9N1sn+BbLcIdqv+DdH/RsYNWFDbIR6cZL4C6J14M/Q0Fw1lbt?= =?us-ascii?Q?SSmteHwHsh4+JGortvfT4xOjNTnoxXK0o5u6Qno6tpXOzKRyRGYYTi4uvO1m?= =?us-ascii?Q?JuQ3mpBvrCIWuVj7GRh3vPFWWCjMljMhgSMJ1qUs+5nq/nAfsTtRsMzkRAz2?= =?us-ascii?Q?JBPEOKmOhwhnLzR+Vh8dVvjP1QbC+jqsLxQOcm+yWVWV3xu/a9OQZsDnUVfo?= =?us-ascii?Q?Q5YfOSM+KD/mTqeJS3RnkxtsT4rKHJ3vuvDSAi379xr3A/rxqRmx1UO4P2T0?= =?us-ascii?Q?qjIAwFwWpL0UO2L689OXF1kVbJcKkuJUaQ6EIyVZRm1FQyp6UsmAwMVXem0C?= =?us-ascii?Q?QouapPg7SynzCOAykOGJw7xbGicoPNSagYJxWSyMaoQeZntUjlop1AkWXO/C?= =?us-ascii?Q?vVw3BtVSOxLLmaC3EafUB0x/z/d27qUH8nIRF0pqA61z5mENlFBLNymR5Rcx?= =?us-ascii?Q?kdhkXQmPVR6RLdqBz3D9OkM69BVK+FwfSm1ihqPHI88aoW2IiWsdQ8+XPpvE?= =?us-ascii?Q?IRQ61VbSmCzKj4CVCprlb3ACebJM0H/JJpDhpFzXk92FNsBBvrFQ1p8RQLi0?= =?us-ascii?Q?n301wSJ2j5d76er9wN0LAUkKVGsNwRl3ZyaeujvP3oe78MVU/++//wiX7kmx?= =?us-ascii?Q?YiN5UyMIg2sIJe+fIDb8BtwmQQBPSRlbxkkIGPXx/82biDMFzhVIv/pjAZf2?= =?us-ascii?Q?jmUfiINSqV/JnLgXXxIOLWv4re67u+WCs8fYIublEoUCHfH4NvNmo6bP8arv?= =?us-ascii?Q?lNDcOm1uUHlwV9rs9FAVGzwemBHio5UZuk9nZ/dqZJPD4ZYCnyb114U2z6E1?= =?us-ascii?Q?9vm1dbI/vkmhptWK9TEN1azIv59v/GmJYV/jUq5NYbXnOZ/WPPhUSVjxCLH/?= =?us-ascii?Q?YbxmblZvaipmz6kIa620ckETC4DM/XwAMfGPESMZCvntLy67fsP+sAYMN6Iq?= =?us-ascii?Q?+u83eHnqgz+YJwHEufe3WF7OZCOME8FD5GoamzDooOw6RGy2R1WUsLVsYhkq?= =?us-ascii?Q?d8Jlp6XagvRY+iDrAY1wk35jWfNbmy7MYml9n6F4RiiR1MthAvOKqZ+Djl0e?= =?us-ascii?Q?jn8dA1lCQ6nGQodbSiGkTtAFITwSyzrdQvsJlAvYGhKVD8RVrMYK?= X-OriginatorOrg: starfivetech.com X-MS-Exchange-CrossTenant-Network-Message-Id: 03311570-0b24-4269-852e-08df09c01bab X-MS-Exchange-CrossTenant-AuthSource: ZQ4PR01MB1202.CHNPR01.prod.partner.outlook.cn X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 03 Sep 2026 13:34:49.3034 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 06fe3fa3-1221-43d3-861b-5a4ee687a85c X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: 7vp1jIPqYYBW+jqHRVMbKz8F97YRwLPp6GPqMUpQTU7FieAxlQd/kPv64MwN2F0iUIMPjFLkFHwRIwBDuPqoCnrPHs1kQKHyD1Ta8FcGQN0eTA12suAVidPJ7nLt4iHY X-MS-Exchange-Transport-CrossTenantHeadersStamped: ZQ4PR01MB1201 Content-Type: text/plain; charset="utf-8" Add device tree bindings for the Platform Environment Control Interface (PECI) controller found on StarFive JHB100 SoC. Co-developed-by: Mason Huo Signed-off-by: Mason Huo Signed-off-by: Changhuang Liang Reviewed-by: Conor Dooley --- .../bindings/peci/starfive,jhb100-peci.yaml | 57 +++++++++++++++++++ 1 file changed, 57 insertions(+) create mode 100644 Documentation/devicetree/bindings/peci/starfive,jhb100-= peci.yaml diff --git a/Documentation/devicetree/bindings/peci/starfive,jhb100-peci.ya= ml b/Documentation/devicetree/bindings/peci/starfive,jhb100-peci.yaml new file mode 100644 index 000000000000..fd71a98b5584 --- /dev/null +++ b/Documentation/devicetree/bindings/peci/starfive,jhb100-peci.yaml @@ -0,0 +1,57 @@ +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) +%YAML 1.2 +--- +$id: http://devicetree.org/schemas/peci/starfive,jhb100-peci.yaml# +$schema: http://devicetree.org/meta-schemas/core.yaml# + +title: StarFive JHB100 PECI Controller + +maintainers: + - Changhuang Liang + - Mason Huo + +allOf: + - $ref: peci-controller.yaml# + +properties: + compatible: + enum: + - starfive,jhb100-peci + + reg: + maxItems: 1 + + interrupts: + maxItems: 1 + + clocks: + maxItems: 1 + + resets: + maxItems: 1 + + cmd-timeout-ms: + minimum: 1 + maximum: 1000 + default: 1000 + +required: + - compatible + - reg + - interrupts + - clocks + - resets + +additionalProperties: false + +examples: + - | + peci-controller@11c60000 { + compatible =3D "starfive,jhb100-peci"; + reg =3D <0x11c60000 0x400>; + interrupts =3D <222>; + clocks =3D <&per3crg 34>; + resets =3D <&per3crg 3>; + cmd-timeout-ms =3D <1000>; + }; +... -- 2.25.1 From nobody Sat Sep 26 07:15:39 2026 Received: from CHN02-BJS-obe.outbound.protection.partner.outlook.cn (mail-bjschn02on2127.outbound.protection.partner.outlook.cn [139.219.17.127]) (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 D38F24AE110; Thu, 3 Sep 2026 13:35:46 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=139.219.17.127 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1788442560; cv=fail; b=R1wHT/0E/v4jhXw3wgZMYqFAV85mi1k8mwkVO07Cx68wwiCF8H/az0Sw65XFX4kE3Lh9d+OJ1C+yQetUPXF1yAyW8ccB7BNfMdkDtD0PMQhbQPK4GHYMoZ0xn8ry89Ks9pkhTsMDWTqFXdEtEpvq6b40U44+O+WWYeqrDx2sGdI= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1788442560; c=relaxed/simple; bh=4v8GK6Q37Dvn72+Z5rSa2wOND/HP9S2vGvahn5RTqPk=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: Content-Type:MIME-Version; b=j2xBv5nd1dsW5u3B3QD8JDV+QS6aFKPZ5v/6HV6Co7CE1G1AOqy3rBjQ9kp96SF5aRuXAlJ+EGcuXMgbe5K9HNljwgDWX6ylHj3wjXxk7fXwLAh89kVxQEnFLV56ba0z0u4KvFamJxOUdp6/PLo3aCsWneCEKilePI/sXV60OBM= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=starfivetech.com; spf=pass smtp.mailfrom=starfivetech.com; arc=fail smtp.client-ip=139.219.17.127 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=starfivetech.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=starfivetech.com ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=DzckHyvIRCp34ZPTQDh0jmdCitW8VnAVAYgn6H0UI1LlDieUSHqucAHQSya6V5s3i1MMGFhoDxHJ8D/Xpl0tWwxZ49SeD0RtcILFMejk681aR/OEMc0fQk/n99aabWJeOy+/ZMMDZJYDep7B4GAlb8Ox+EgVVCHbQTrwRlyGHYNo4SV3hbUFCz6bNaCCeaRadRXAJ0XjXWyyAcbEeqUG2kLNim9a+Q/ZE4ZN5mBqyE87fH+HTs9dXsNE3sxi/bu4yknh0jE3F8+wyZHwvQcNkoVNB6Dmji2Aee22ruBxtuDRaYA5TWxpILYu1P6wyIgfbVqCtPmcRrJ5s05p0tr2kQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=mOrdiMNoaVOT5Aaegu6cyFikOmdJbGmwKoSIhj2HefU=; b=jJrxvH7WLcs+Hzq1lDvFfIeRECAtncXs5cg64j0RJQeg8lUVXC/jHhaKpZAtvhOdTqslhcpQIL4VyKJGu921S/5yspcNKFk8wrvOz9G1gpUBk102qnj9AofYoV/XcGz9DtEhZlPg15/bDqGs9tDEUO9e2QMup16pQ9UfxRsWjGVRdpzRfpB25p/nTyzURN9Peae3S6rvjmNvanl+dTjSK9nGp/EAaWkkyoWs7OxloL9K3I1WxXUCMNBPzAKN/0HQhiRe2BXosW9bayu0QDUhPkhhz6SdVAngBd3yjD0IlyT36IovyvSSk6YyugSe3ea40QN3QRGAZG7nfuV0iD/FIA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=starfivetech.com; dmarc=pass action=none header.from=starfivetech.com; dkim=pass header.d=starfivetech.com; arc=none Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=starfivetech.com; Received: from ZQ4PR01MB1202.CHNPR01.prod.partner.outlook.cn (10.2.3.102) by ZQ4PR01MB1201.CHNPR01.prod.partner.outlook.cn (10.2.1.238) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.315.12; Thu, 3 Sep 2026 13:35:27 +0000 Received: from ZQ4PR01MB1202.CHNPR01.prod.partner.outlook.cn ([fe80::e7d4:256c:b066:850d]) by ZQ4PR01MB1202.CHNPR01.prod.partner.outlook.cn ([fe80::e7d4:256c:b066:850d%4]) with mapi id 15.21.0315.011; Thu, 3 Sep 2026 13:35:27 +0000 From: Changhuang Liang To: Rob Herring , Krzysztof Kozlowski , Conor Dooley , Iwona Winiarska , Guenter Roeck Cc: openbmc@lists.ozlabs.org, linux-kernel@vger.kernel.org, devicetree@vger.kernel.org, linux-hwmon@vger.kernel.org, Philipp Zabel , Changhuang Liang Subject: [PATCH v1 2/6] peci: controller: Add StarFive JHB100 PECI driver Date: Thu, 3 Sep 2026 06:34:04 -0700 Message-Id: <20260903133408.110847-3-changhuang.liang@starfivetech.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20260903133408.110847-1-changhuang.liang@starfivetech.com> References: <20260903133408.110847-1-changhuang.liang@starfivetech.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: SHXPR01CA0020.CHNPR01.prod.partner.outlook.cn (2406:e500:c311:1b::29) To ZQ4PR01MB1202.CHNPR01.prod.partner.outlook.cn (2406:e500:c550:17::6) Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: ZQ4PR01MB1202:EE_|ZQ4PR01MB1201:EE_ X-MS-Office365-Filtering-Correlation-Id: 7fcfd89b-c7c6-4d36-5248-08df09c032fa X-MS-Exchange-SenderADCheck: 1 X-Microsoft-Antispam: BCL:0;ARA:13230040|1800799024|7416014|23010399003|366016|52116014|376014|22082099003|38350700014|6133799003|10067099003|56012099006|18002099003|3023799007; X-Microsoft-Antispam-Message-Info: e3moMX4j6yXpZtVXahPuGGmzCZTUL2GVFuiVnyyXOOf8n59pbS1BGF9Ap3mt7Jk3biUBXDFgCzC1rQ68ZSVAlfkvPZV3DlylRHc9FkKemCGtblSn04S6l/rk/LORUYs1/DXJ7/HA9dPfHnFJxMCXKD0rJSUuq2OzeU2K4jxiFQf6YxCY5mf/hNLZYlG2eVVlEnwq1iNkEFktcT/77dqEOOsWRtyizo1NFU8sgOC9V+U91JdSdvjqCpPHcaIUTqek2qOx0eCB9dxR7GZ25vDmAsalsfZv/EMkxp/duS24OcmIOEJap7oPaxW3blWaSXldcWCqI+5Hnmb5vVF8O+akzGkhExo5d5ukdo4I8BnhspPS3Smm1YsJ4O4GIVUlanZMHsOeB4i9GLxtJZ5LPc2/jvdMVo9tWybm1r72H0FyYobGywTh3pD214GeSuBcKmaXqsCaUiatve4qVM6PY93EcVTAMz4PNV+ig1f6lKCPNM0HlCw4wqDc78uJ85zzV3rwJXxV+g1yUiCWFMGkd56pIEvHr4CHWJoaW03dZzrRoN6ahIbMyQmK42juTuvNcGll X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:ZQ4PR01MB1202.CHNPR01.prod.partner.outlook.cn;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(7416014)(23010399003)(366016)(52116014)(376014)(22082099003)(38350700014)(6133799003)(10067099003)(56012099006)(18002099003)(3023799007);DIR:OUT;SFP:1102; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?wcMHqGc4ztxFwtdJAQy25yMHCGFp8f+eQ7zZGJooBT/9z6O6CLRCFd7YnGfT?= =?us-ascii?Q?vwV0ilpyRyv0BhaP7pckpG9vVEW2QzsmJfL6VCxPWEoDNnSOmp2hO+c4KIYx?= =?us-ascii?Q?wihlAwCtgmbQV8SlsfpatPY4dtw+Xa9EIm4XOwvICR088NKaKThHxJNpIe4N?= =?us-ascii?Q?ZGjEaFrNJnFfOLKPLIFj0i0OblJmhvm+8PdTaX0jOMHhN3QQC9f+AgjJITjn?= =?us-ascii?Q?+lLmgrDzuMzmtO0uRwoCIHRkNeIOefeuJ4XQgG9JYvj3w4Tqbl+8EM6Y3jlh?= =?us-ascii?Q?xSvvmeE7bb8KuGa2/mJ9pqiogPF28EWMeHQJwApWxKWCcqT5ybvDImS62i37?= =?us-ascii?Q?qP0w0wQXHkZoOIxExNXDuJ6RpUeMxxvGIFZtOrP3oTMojN21wmLsMCWiccOC?= =?us-ascii?Q?XV/NJaey4ATciYqcikmhOQHWSSQnvehE2pEYAyW9LBWrHotzcFyJTYGWDfF4?= =?us-ascii?Q?AWipsUgB8kzOytwKChq15PM5FPt6mzyE9WpoOf6JGqeudz1SHIawctDNKKMz?= =?us-ascii?Q?UQ+P4ucWyvzb23LCDL1YHLki0dztTy0s+lX6Yu0Dn7g38vm0rL4bX2ekvP70?= =?us-ascii?Q?ULICghHEbaEl6XAU/88f6GphKBVw6WpJUbRvtHm6fHyiMjdaD8f5unSQJkOM?= =?us-ascii?Q?8pYG4wkNlBC42ezja0OJg1dEKlDsh1qOOYOPVUxpUXRnlhJx50Z3aLR7HyWr?= =?us-ascii?Q?qViDaA6VaFQ+s3bgCAPWI9x7Ems4Ier5bGqLhPVPMfK39pp3nk1VWZ14Aw39?= =?us-ascii?Q?a9NBOutAMdLeyEE7XvyqCoMaUOP459iFyKW7vkhqyDquQOd7rR25yevXu1j+?= =?us-ascii?Q?Ew3pJKARyvCKJuIDoqYeIg3swe4D4lmLR8/4+lVvBtTaViN3cRL5Ws3JI4zO?= =?us-ascii?Q?cx1Ff/OurZ+EEhOJ+nr7+G8Xbilu4/CSx+KCDVsBW8edp/CratGV4ZXbIf0f?= =?us-ascii?Q?Rsz0iA8e+KwqlwckSw7TlEBM230rWcXpW3oztkGhA4FZAvgqfP+7lVw+8FGR?= =?us-ascii?Q?8atFPRTu5RawXO3Fo9lt8oeWoSqCbGjxOzQ2Bj8T8y6/aJpX1CM64Zouyc70?= =?us-ascii?Q?UxE4drWP3/jLQn+KZsq02YIwt/quaURa5O2fD5elQY04BPnSBmGQqRau/wSV?= =?us-ascii?Q?MCi58JqwmVU6RU/3K8h/PMbsbsOy/alZNEnGTLXpJZY+jbui3O6/PCNDIVaz?= =?us-ascii?Q?7RqRxsAEVkXulW6t/lXf/heCVSovVkpSCnSAV62ub9AgQgbIQHV0j08saffR?= =?us-ascii?Q?c2hFxUh6M03tNhloF7h6VdVpAluW0MFQqT6MkZguroWmqDZvZuok2W4un0dL?= =?us-ascii?Q?8+eYu8MDyjue8qIUpra5ivHb7R1GISUkKycB733G5LjSByIi9/Co/J9EMI57?= =?us-ascii?Q?EQKZ7tfsY7IyjX6zE+9/Nv5al+lMEdA7z/UrZOh3NxhJeevY5ZsWp+TWu2f5?= =?us-ascii?Q?1TyPvXfXOEc9p5ZB2o/bzPDfusmy28h6BlCQ9egDpDMwLd3Do/1ysYdZ+1Vg?= =?us-ascii?Q?HoPmj/KwJIahz6kQbAZNugIJpG+UQ6GI7EpzTM+2B8pqepQ4vH4WlKqgSiQd?= =?us-ascii?Q?oG8NR/R7IWVD2M7OaUkFcqgpIlRj5ZiSrpDst1b5lscIWJkFCnBmL5m9tNBn?= =?us-ascii?Q?WEEK8ai7znelz8ZgCLC54Ypkj79p0FmzkMy1yB+iJfcM396hfSK72h8BDqZM?= =?us-ascii?Q?ktcM/gVMcpnoyjnH6Y2DXtk9HSg/QnXe329wDTL/6KBQx+FxHA7eovKpKwql?= =?us-ascii?Q?B4UsiJAvRGPLiHpoIKQtE2esz7yu2GmRq8KE5sNAsktWet5U4Q2E?= X-OriginatorOrg: starfivetech.com X-MS-Exchange-CrossTenant-Network-Message-Id: 7fcfd89b-c7c6-4d36-5248-08df09c032fa X-MS-Exchange-CrossTenant-AuthSource: ZQ4PR01MB1202.CHNPR01.prod.partner.outlook.cn X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 03 Sep 2026 13:35:27.4171 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 06fe3fa3-1221-43d3-861b-5a4ee687a85c X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: RBGV5clkzLP6PgrGooxnijioPVgQQUFajAFwcALb55P/n9bTtAPKKLjp5/pA0kwAk/Ik6tTVOWkIat5Zo2Txngnj3+31WUrmRujc6fZHTfiD5rtUmVwfvkAhFY0WyDmu X-MS-Exchange-Transport-CrossTenantHeadersStamped: ZQ4PR01MB1201 Content-Type: text/plain; charset="utf-8" Add PECI controller driver for StarFive JHB100 SoC. The driver supports PECI protocol communication for CPU thermal management. For this controller, the special clock and reset operation sequence is: probe: clk_prepare_enable() then reset_control_deassert() remove: clk_disable_unprepare() then reset_control_assert() Co-developed-by: Mason Huo Signed-off-by: Mason Huo Signed-off-by: Changhuang Liang --- MAINTAINERS | 8 + drivers/peci/controller/Kconfig | 17 + drivers/peci/controller/Makefile | 1 + drivers/peci/controller/peci-starfive.c | 405 ++++++++++++++++++++++++ 4 files changed, 431 insertions(+) create mode 100644 drivers/peci/controller/peci-starfive.c diff --git a/MAINTAINERS b/MAINTAINERS index 834f88b7a41b..a8d7ece2d199 100644 --- a/MAINTAINERS +++ b/MAINTAINERS @@ -26224,6 +26224,14 @@ S: Supported F: Documentation/devicetree/bindings/interrupt-controller/starfive,jhb100-= intc.yaml F: drivers/irqchip/irq-starfive-jhb100-intc.c =20 +STARFIVE JHB100 PECI DRIVER +M: Changhuang Liang +M: Mason Huo +L: openbmc@lists.ozlabs.org (moderated for non-subscribers) +S: Maintained +F: Documentation/devicetree/bindings/peci/starfive,jhb100-peci.yaml +F: drivers/peci/controller/peci-starfive.c + STARFIVE JHB100 PINCTRL DRIVERS M: Changhuang Liang M: Lianfeng Ouyang diff --git a/drivers/peci/controller/Kconfig b/drivers/peci/controller/Kcon= fig index 4f9c245ad042..c0c35bc179ef 100644 --- a/drivers/peci/controller/Kconfig +++ b/drivers/peci/controller/Kconfig @@ -32,3 +32,20 @@ config PECI_NPCM =20 This support is also available as a module. If so, the module will be called peci-npcm. + +config PECI_STARFIVE + tristate "STARFIVE PECI support" + depends on ARCH_STARFIVE || COMPILE_TEST + depends on OF + depends on HAS_IOMEM + select REGMAP_MMIO + help + This option enables PECI controller driver for StarFive JHB100 + SoC. It allows BMC to discover devices connected to it, and + communicate with them using PECI protocol. + + Say Y here if your system runs on StarFive JHB100 SoC and you are + using it as BMC for Intel platform. + + This driver can also be built as a module. If so, the module will + be called peci-starfive. diff --git a/drivers/peci/controller/Makefile b/drivers/peci/controller/Mak= efile index e247449bb423..935e356b058c 100644 --- a/drivers/peci/controller/Makefile +++ b/drivers/peci/controller/Makefile @@ -2,3 +2,4 @@ =20 obj-$(CONFIG_PECI_ASPEED) +=3D peci-aspeed.o obj-$(CONFIG_PECI_NPCM) +=3D peci-npcm.o +obj-$(CONFIG_PECI_STARFIVE) +=3D peci-starfive.o diff --git a/drivers/peci/controller/peci-starfive.c b/drivers/peci/control= ler/peci-starfive.c new file mode 100644 index 000000000000..54a87ebae009 --- /dev/null +++ b/drivers/peci/controller/peci-starfive.c @@ -0,0 +1,405 @@ +// SPDX-License-Identifier: GPL-2.0 +/* + * Copyright (C) 2024 StarFive Technology Co., Ltd. + */ + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +/* Control register */ +#define STARFIVE_PECI_CTRL 0x00 +/* automatically clears after transfer started */ +#define STARFIVE_PECI_CTRL_START BIT(0) +#define STARFIVE_PECI_CTRL_FCS_MODE BIT(2) +#define STARFIVE_PECI_CTRL_AW_FCS_EN BIT(3) +#define STARFIVE_PECI_CTRL_RDY BIT(4) + +/* Read/Write length register */ +#define STARFIVE_PECI_HDR 0x04 +#define STARFIVE_PECI_HDR_RD_LEN_MASK GENMASK(23, 16) +#define STARFIVE_PECI_HDR_WR_LEN_MASK GENMASK(15, 8) +#define STARFIVE_PECI_HDR_TARGET_ADDR_MASK GENMASK(7, 0) + +/* Feature control register */ +#define STARFIVE_PECI_F_CTRL 0x0c +#define STARFIVE_PECI_F_CTRL_EN BIT(0) + +/* Interrupt enable register */ +#define STARFIVE_PECI_INT_EN 0x10 +#define STARFIVE_PECI_INT_XFER_DONE BIT(0) +#define STARFIVE_PECI_INT_CFG_ERR BIT(1) +#define STARFIVE_PECI_INT_TBIT_ERR BIT(2) +#define STARFIVE_PECI_INT_BAD_WR_FCS BIT(3) +#define STARFIVE_PECI_INT_ABORT_WR_FCS BIT(4) +#define STARFIVE_PECI_INT_BAD_RD_FCS BIT(5) +#define STARFIVE_PECI_INT_BUS_CONTENTION BIT(6) +#define STARFIVE_PECI_INT_TBIT_OVER_LIMIT BIT(7) +#define STARFIVE_PECI_INT_ALL GENMASK(7, 0) + +/* Interrupt status register */ +#define STARFIVE_PECI_INT_STS 0x14 +#define STARFIVE_PECI_STS_XFER_DONE BIT(0) +#define STARFIVE_PECI_STS_CFG_ERR BIT(1) +#define STARFIVE_PECI_STS_TBIT_ERR BIT(2) +#define STARFIVE_PECI_STS_BAD_WR_FCS BIT(3) +#define STARFIVE_PECI_STS_ABORT_WR_FCS BIT(4) +#define STARFIVE_PECI_STS_BAD_RD_FCS BIT(5) +#define STARFIVE_PECI_STS_BUS_CONTENTION BIT(6) +#define STARFIVE_PECI_STS_TBIT_OVER_LIMIT BIT(7) +#define STARFIVE_PECI_STS_MASK GENMASK(7, 0) + +/* Received FCS data register */ +#define STARFIVE_PECI_FCS_RCVD 0x1C +#define STARFIVE_PECI_RCVD_WR_FCS_MASK GENMASK(7, 0) +#define STARFIVE_PECI_RCVD_RD_FCS_MASK GENMASK(15, 8) + +/* Rx/Tx Data Buffer Registers */ +#define STARFIVE_PECI_WR_DATA(n) (0x70 + ((n) * 4)) +#define STARFIVE_PECI_RD_DATA(n) (0xB0 + ((n) * 4)) + +/* Hardware TX/RX data FIFOs are 64 bytes, but PECI core caps requests low= er */ +#define STARFIVE_PECI_DATA_BUF_SIZE_MAX min(64, PECI_REQUEST_MAX_BUF_SIZE) +#define STARFIVE_PECI_MAX_REG 0x100 + +/* Timeout */ +#define STARFIVE_PECI_IDLE_CHECK_TIMEOUT_US (50 * USEC_PER_MSEC) +#define STARFIVE_PECI_IDLE_CHECK_INTERVAL_US (10 * USEC_PER_MSEC) +#define STARFIVE_PECI_CMD_TIMEOUT_MS_DEFAULT 1000 +#define STARFIVE_PECI_CMD_TIMEOUT_MS_MAX 1000 + +/* + * All PECI write commands (WrPkgConfig 0xa5, WrPCIConfigLocal 0xe5, + * WrEndPointConfig 0xc5, ...) share the same low nibble, which is what the + * controller uses to decide whether the assured-write FCS has to be appen= ded. + */ +#define STARFIVE_PECI_CMD_WRITE_NIBBLE 0x5 + +struct starfive_peci { + u32 cmd_timeout_ms; + struct completion xfer_complete; + struct regmap *regmap; + u32 status; + spinlock_t lock; /* sync completion status */ + struct peci_controller *controller; + struct device *dev; + struct clk *clk; + struct reset_control *rst; + int irq; +}; + +static int starfive_peci_xfer(struct peci_controller *controller, + u8 addr, struct peci_request *req) +{ + struct starfive_peci *priv =3D dev_get_drvdata(controller->dev.parent); + unsigned long timeout =3D msecs_to_jiffies(priv->cmd_timeout_ms); + u32 msg_rd; + u32 cmd_sts; + u32 peci_hdr; + int i, ret, j; + + if (req->tx.len > STARFIVE_PECI_DATA_BUF_SIZE_MAX || + req->rx.len > STARFIVE_PECI_DATA_BUF_SIZE_MAX) + return -EINVAL; + + /* Check command sts and bus idle state */ + ret =3D regmap_read_poll_timeout(priv->regmap, + STARFIVE_PECI_CTRL, cmd_sts, + cmd_sts & STARFIVE_PECI_CTRL_RDY, + STARFIVE_PECI_IDLE_CHECK_INTERVAL_US, + STARFIVE_PECI_IDLE_CHECK_TIMEOUT_US); + if (ret) + return ret; + + spin_lock_irq(&priv->lock); + reinit_completion(&priv->xfer_complete); + + peci_hdr =3D FIELD_PREP(STARFIVE_PECI_HDR_TARGET_ADDR_MASK, addr) | + FIELD_PREP(STARFIVE_PECI_HDR_WR_LEN_MASK, req->tx.len) | + FIELD_PREP(STARFIVE_PECI_HDR_RD_LEN_MASK, req->rx.len); + regmap_write(priv->regmap, STARFIVE_PECI_HDR, peci_hdr); + + if (req->tx.len) { + /* + * req->tx.buf[0] always store the command code. + * Use command code set different configuration. + */ + u8 cmd_nibble =3D FIELD_GET(GENMASK(3, 0), req->tx.buf[0]); + + if (cmd_nibble =3D=3D STARFIVE_PECI_CMD_WRITE_NIBBLE) { + /* + * This indicates current command code is write. + * Only write command should enable has_awfcs. + */ + regmap_write_bits(priv->regmap, STARFIVE_PECI_CTRL, + STARFIVE_PECI_CTRL_AW_FCS_EN, + STARFIVE_PECI_CTRL_AW_FCS_EN); + } else { + /* Ensure other command code disable has_awfcs. */ + regmap_write_bits(priv->regmap, STARFIVE_PECI_CTRL, + STARFIVE_PECI_CTRL_AW_FCS_EN, 0); + } + } else { + /* Ping command code also need to disable has_awfcs. */ + regmap_write_bits(priv->regmap, STARFIVE_PECI_CTRL, + STARFIVE_PECI_CTRL_AW_FCS_EN, 0); + } + + for (i =3D 0; i < ALIGN(req->tx.len, 4) / 4; i++) + regmap_write(priv->regmap, STARFIVE_PECI_WR_DATA(i), + get_unaligned_le32(&req->tx.buf[4 * i])); + + dev_dbg(priv->dev, "addr : %#02x, tx.len : %#02x, rx.len : %#02x\n", + addr, req->tx.len, req->rx.len); + print_hex_dump_bytes("TX : ", DUMP_PREFIX_NONE, req->tx.buf, + req->tx.len); + + priv->status =3D 0; + + regmap_write_bits(priv->regmap, STARFIVE_PECI_CTRL, + STARFIVE_PECI_CTRL_START, STARFIVE_PECI_CTRL_START); + + spin_unlock_irq(&priv->lock); + + ret =3D wait_for_completion_interruptible_timeout(&priv->xfer_complete, + timeout); + if (ret < 0) + return ret; + + if (ret =3D=3D 0) { + dev_dbg(priv->dev, "Timeout waiting for a response\n"); + return -ETIMEDOUT; + } + + spin_lock_irq(&priv->lock); + + if (priv->status !=3D STARFIVE_PECI_STS_XFER_DONE) { + spin_unlock_irq(&priv->lock); + dev_dbg(priv->dev, "No valid response, status: %#02x\n", + priv->status); + return -EIO; + } + + regmap_read(priv->regmap, STARFIVE_PECI_FCS_RCVD, &msg_rd); + dev_dbg(priv->dev, "write & read command FCS : %#02lx & %#02lx\n", + FIELD_GET(STARFIVE_PECI_RCVD_WR_FCS_MASK, msg_rd), + FIELD_GET(STARFIVE_PECI_RCVD_RD_FCS_MASK, msg_rd)); + + for (i =3D 0; i < ALIGN(req->rx.len, 4) / 4; i++) { + regmap_read(priv->regmap, STARFIVE_PECI_RD_DATA(i), &msg_rd); + + if (req->rx.len - 4 * (i + 1) >=3D 0) { + put_unaligned_be32(msg_rd, &req->rx.buf[req->rx.len - 4 * (i + 1)]); + } else { + for (j =3D req->rx.len % 4 - 1; j >=3D 0; j--) { + req->rx.buf[j] =3D (u8)msg_rd; + msg_rd >>=3D 8; + } + } + } + + spin_unlock_irq(&priv->lock); + + print_hex_dump_bytes("RX : ", + DUMP_PREFIX_NONE, req->rx.buf, req->rx.len); + + return 0; +} + +static irqreturn_t starfive_peci_irq_handler(int irq, void *arg) +{ + struct starfive_peci *priv =3D arg; + u32 status; + + spin_lock(&priv->lock); + regmap_read(priv->regmap, STARFIVE_PECI_INT_STS, &status); + priv->status |=3D (status & STARFIVE_PECI_STS_MASK); + regmap_write(priv->regmap, STARFIVE_PECI_INT_STS, + status & STARFIVE_PECI_STS_MASK); + + /* + * All commands are terminated with the XFER_DONE bit set, even when + * an error condition is reported alongside it. + */ + if (status & STARFIVE_PECI_STS_XFER_DONE) + complete(&priv->xfer_complete); + + spin_unlock(&priv->lock); + + return IRQ_HANDLED; +} + +static void starfive_peci_clk_reset_release(void *data) +{ + struct starfive_peci *priv =3D data; + + clk_disable_unprepare(priv->clk); + reset_control_assert(priv->rst); +} + +static int starfive_peci_init_clk_rst(struct starfive_peci *priv) +{ + int ret; + + priv->clk =3D devm_clk_get(priv->dev, NULL); + if (IS_ERR(priv->clk)) + return dev_err_probe(priv->dev, PTR_ERR(priv->clk), + "Failed to get peci clock\n"); + + priv->rst =3D devm_reset_control_get(priv->dev, NULL); + if (IS_ERR(priv->rst)) + return dev_err_probe(priv->dev, PTR_ERR(priv->rst), + "Failed to get reset control\n"); + + ret =3D clk_prepare_enable(priv->clk); + if (ret) + return dev_err_probe(priv->dev, ret, + "Failed to enable peci clock\n"); + + ret =3D reset_control_deassert(priv->rst); + if (ret) { + clk_disable_unprepare(priv->clk); + return dev_err_probe(priv->dev, ret, + "Failed to deassert reset control\n"); + } + + return devm_add_action_or_reset(priv->dev, starfive_peci_clk_reset_releas= e, + priv); +} + +static int starfive_peci_init_ctrl(struct starfive_peci *priv) +{ + u32 cmd_sts; + int ret; + + ret =3D device_property_read_u32(priv->dev, "cmd-timeout-ms", + &priv->cmd_timeout_ms); + if (ret) { + priv->cmd_timeout_ms =3D STARFIVE_PECI_CMD_TIMEOUT_MS_DEFAULT; + } else if (priv->cmd_timeout_ms > STARFIVE_PECI_CMD_TIMEOUT_MS_MAX || + priv->cmd_timeout_ms =3D=3D 0) { + dev_warn(priv->dev, + "Invalid cmd-timeout-ms: %u, falling back to: %u\n", + priv->cmd_timeout_ms, + STARFIVE_PECI_CMD_TIMEOUT_MS_DEFAULT); + + priv->cmd_timeout_ms =3D STARFIVE_PECI_CMD_TIMEOUT_MS_DEFAULT; + } + + regmap_write_bits(priv->regmap, STARFIVE_PECI_F_CTRL, + STARFIVE_PECI_F_CTRL_EN, STARFIVE_PECI_F_CTRL_EN); + regmap_write_bits(priv->regmap, STARFIVE_PECI_CTRL, + STARFIVE_PECI_CTRL_FCS_MODE, STARFIVE_PECI_CTRL_FCS_MODE); + + ret =3D regmap_read_poll_timeout(priv->regmap, + STARFIVE_PECI_CTRL, cmd_sts, + cmd_sts & STARFIVE_PECI_CTRL_RDY, + STARFIVE_PECI_IDLE_CHECK_INTERVAL_US, + STARFIVE_PECI_IDLE_CHECK_TIMEOUT_US); + if (ret) + return ret; + + regmap_write(priv->regmap, STARFIVE_PECI_INT_STS, STARFIVE_PECI_STS_MASK); + + /* PECI interrupt enable */ + regmap_write(priv->regmap, STARFIVE_PECI_INT_EN, STARFIVE_PECI_INT_ALL); + + return 0; +} + +static const struct regmap_config starfive_peci_regmap_config =3D { + .reg_bits =3D 32, + .val_bits =3D 32, + .max_register =3D STARFIVE_PECI_MAX_REG, + .fast_io =3D true, +}; + +static const struct peci_controller_ops starfive_ops =3D { + .xfer =3D starfive_peci_xfer, +}; + +static int starfive_peci_probe(struct platform_device *pdev) +{ + struct peci_controller *controller; + struct starfive_peci *priv; + void __iomem *base; + int ret; + + priv =3D devm_kzalloc(&pdev->dev, sizeof(*priv), GFP_KERNEL); + if (!priv) + return -ENOMEM; + + priv->dev =3D &pdev->dev; + dev_set_drvdata(&pdev->dev, priv); + + base =3D devm_platform_ioremap_resource(pdev, 0); + if (IS_ERR(base)) + return PTR_ERR(base); + + priv->regmap =3D devm_regmap_init_mmio(&pdev->dev, base, + &starfive_peci_regmap_config); + if (IS_ERR(priv->regmap)) + return dev_err_probe(priv->dev, PTR_ERR(priv->regmap), + "Failed to initialize regmap\n"); + + priv->irq =3D platform_get_irq(pdev, 0); + if (priv->irq < 0) + return dev_err_probe(priv->dev, priv->irq, "Failed to get IRQ\n"); + + init_completion(&priv->xfer_complete); + spin_lock_init(&priv->lock); + + ret =3D starfive_peci_init_clk_rst(priv); + if (ret) + return dev_err_probe(priv->dev, ret, "Failed to initialize clock and res= et\n"); + + ret =3D devm_request_irq(&pdev->dev, + priv->irq, starfive_peci_irq_handler, + 0, "peci-starfive", priv); + if (ret) + return dev_err_probe(priv->dev, ret, "Failed to request IRQ\n"); + + ret =3D starfive_peci_init_ctrl(priv); + if (ret) + return dev_err_probe(priv->dev, ret, "Failed to initialize control\n"); + + controller =3D devm_peci_controller_add(priv->dev, &starfive_ops); + if (IS_ERR(controller)) + return dev_err_probe(priv->dev, PTR_ERR(controller), + "Failed to add peci controller\n"); + + priv->controller =3D controller; + + return 0; +} + +static const struct of_device_id starfive_peci_of_table[] =3D { + { .compatible =3D "starfive,jhb100-peci", }, + { } +}; +MODULE_DEVICE_TABLE(of, starfive_peci_of_table); + +static struct platform_driver starfive_peci_driver =3D { + .probe =3D starfive_peci_probe, + .driver =3D { + .name =3D KBUILD_MODNAME, + .of_match_table =3D starfive_peci_of_table, + }, +}; +module_platform_driver(starfive_peci_driver); + +MODULE_AUTHOR("Changhuang Liang "); +MODULE_AUTHOR("Mason Huo "); +MODULE_DESCRIPTION("StarFive PECI driver"); +MODULE_LICENSE("GPL"); +MODULE_IMPORT_NS("PECI"); --=20 2.25.1 From nobody Sat Sep 26 07:15:39 2026 Received: from CHN02-SH0-obe.outbound.protection.partner.outlook.cn (mail-sh0chn02on2128.outbound.protection.partner.outlook.cn [139.219.146.128]) (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 649F038E5FF; Thu, 3 Sep 2026 13:35:54 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=139.219.146.128 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1788442564; cv=fail; b=Wj4AmezkLj6HQ99DA35FJS4cvEgOU6cVjQ98Cma2+Zs4JMM/8yhSceIcmx+BJNnDt47aNVz2ybp3Yq0NiGwBELXK/ESb7JdrRe9bvoHexQsRTdtivOmeJLtW4dY8Uuz5qk7/8E35P5ksbx7+7Wa2oJuOkXLv593aoFfAnBmSITM= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1788442564; c=relaxed/simple; bh=lqkrPZAnK+mYa0kvZpYJG79uAeJmxhCOaQsTjP/0Dto=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: Content-Type:MIME-Version; b=MA91nsN0y6YFdVLuDvuFgdh7aozsXjfXDcTS8f+VItoTAJBCp2KSqWfyifbt5euGxVJB2IMYzakaYyYKwGSCtUocXCnMf9N7HM9uDwVeFCIH11DQafDvFxbsnlCFGxRRuSchKdkeZ6J/H+dyryUY8fBJbM4hGbeG1w00/Er39BI= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=starfivetech.com; spf=pass smtp.mailfrom=starfivetech.com; arc=fail smtp.client-ip=139.219.146.128 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=starfivetech.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=starfivetech.com ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=UCN0ksyDjj9Hz+nGvRm3w2t8Cmx7HWFOngewyA09N+iioOe8SB/BpzSAdHkJkk383It1OJmNDg14UKTdxQy5HO7y5OQyu63aKfRlc/soF+V5X/+QobmTfEohreKJXODiveVJOOSM+kHT9ANs+lRjdMwW+qAwzDyyVZNRFaIIwzFr2tGRhsg9IEhJgJZCVzL0VIcbPEuqVkcjNIgIfKA85jpo7KbraQQssQU8XAwu3HNqK0VxCwa2imQCam7N4DKbMuhseAVaRPR6TvgThk9kWo+taR1gEwOp44IkP6udoH0qrL4vpNoSVLaneP3jiwttQ4JyI+S/11J8TCHp4isVXg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=PgsshksB7oidWvpa0dusU5HX1hlwopRi1hmDN+gOsVc=; b=lV/L+wutGCPPikpQGPR2y6vCLsFGjc6RTgzT+K7s8TfEAJesQgTr0GQiSGxAUGcUlO+CCsvU80igmf6u6Nw7JdGH3ngRldt88sW8A+4WmutxhQORofyYZIB0V1EHAO2HSeoC1RrBtGvIUdC3U1MlKKHvMrjKyLH0W5rzt7pHRKuI9hTOBBEjhePirNK8kh99mojN0L15+RHAYQYMZlmOH1ac9Ot3Ukb3Pt1euliz4ImRO2eGCyBQfPLoCBtF6BDhHlmn4jDqWHWujXt8jm+2HE7nMRb4QT1jiV/MW/RFVjdgirm4ZEGvyj5KDJPWw+fDs878JlyuKpzk1Q6mMFuDQQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=starfivetech.com; dmarc=pass action=none header.from=starfivetech.com; dkim=pass header.d=starfivetech.com; arc=none Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=starfivetech.com; Received: from ZQ4PR01MB1202.CHNPR01.prod.partner.outlook.cn (10.2.3.102) by ZQ4PR01MB1201.CHNPR01.prod.partner.outlook.cn (10.2.1.238) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.315.12; Thu, 3 Sep 2026 13:35:28 +0000 Received: from ZQ4PR01MB1202.CHNPR01.prod.partner.outlook.cn ([fe80::e7d4:256c:b066:850d]) by ZQ4PR01MB1202.CHNPR01.prod.partner.outlook.cn ([fe80::e7d4:256c:b066:850d%4]) with mapi id 15.21.0315.011; Thu, 3 Sep 2026 13:35:28 +0000 From: Changhuang Liang To: Rob Herring , Krzysztof Kozlowski , Conor Dooley , Iwona Winiarska , Guenter Roeck Cc: openbmc@lists.ozlabs.org, linux-kernel@vger.kernel.org, devicetree@vger.kernel.org, linux-hwmon@vger.kernel.org, Philipp Zabel , Changhuang Liang Subject: [PATCH v1 3/6] peci: Add support for PECI CC 0x83 retry condition Date: Thu, 3 Sep 2026 06:34:05 -0700 Message-Id: <20260903133408.110847-4-changhuang.liang@starfivetech.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20260903133408.110847-1-changhuang.liang@starfivetech.com> References: <20260903133408.110847-1-changhuang.liang@starfivetech.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: SHXPR01CA0020.CHNPR01.prod.partner.outlook.cn (2406:e500:c311:1b::29) To ZQ4PR01MB1202.CHNPR01.prod.partner.outlook.cn (2406:e500:c550:17::6) Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: ZQ4PR01MB1202:EE_|ZQ4PR01MB1201:EE_ X-MS-Office365-Filtering-Correlation-Id: c34e7a6c-e743-4cd0-7ddb-08df09c037d6 X-MS-Exchange-SenderADCheck: 1 X-Microsoft-Antispam: BCL:0;ARA:13230040|1800799024|7416014|23010399003|366016|52116014|376014|22082099003|38350700014|10067099003|56012099006|18002099003; X-Microsoft-Antispam-Message-Info: BDZjS27fnjTkOLiLW2K4Iec7dyJie/54mRfvRmX4W5wpuOr4xBUlTWxj0S9H2Cyv8Hpu+a1kSCElZPHBvbHwskETg0i3t2Al7OO0hOylNfcIizSNsH8S3hIPrk81Bxhu8TVUSUtZLugdB5JcImtXlWa5KEU9ELu8+3b0ZT71eGAbrJwpiI1MW0zR7yg17mslz8nUZPjxvAoJe2adgva/vX76lSvEeNp+KwB+Jr2/4SLu97VMnUU6avTGBYhgqe1B1UQqOf6J2CRiT0r3ePcL8mbBq8hysmCrVGZNkjKWxizoJIhzDTsz94FKeGQKcQuw48ILHIZrOIESk9EZkT2qHqa8pRSNIcFfZv21BdBb0fxAMwzIBoUWsTJkUW0B3VOkeMaJhtaER01BEogg8ebVerjUzb9L2PbyCTUUlymzoAPBORbxdISD+Wtq8aQ6lacuO3U2aZU9pZpofR/zREp0zcrkEMxTZFtrACXSXneCC4mxy2OUSphp3uzZhD5F99trZRgg2PbzJrVh096324BB8r3nUYrvuq92eIhE7BNu2lv9hMb83/yKCv0nLRLwKeRP X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:ZQ4PR01MB1202.CHNPR01.prod.partner.outlook.cn;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(7416014)(23010399003)(366016)(52116014)(376014)(22082099003)(38350700014)(10067099003)(56012099006)(18002099003);DIR:OUT;SFP:1102; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?tKQLJ8COvGWQBoHSqj2FXUuy4wEt8w8jUe/fGilBUn151AjK0kp41vQ7tEB7?= =?us-ascii?Q?3Zn4v5QTOHio3yFs/CGi0GfrqAu2oA7bk1PvgikvAxT2lEjgOQnHuJCI25Ja?= =?us-ascii?Q?UHGUcRtKfZTA6kI/8DuflBPSA6HKRvidvejU5Oc/UgP5TwDi+C0Zk7CXLBoI?= =?us-ascii?Q?Upi8XsCS9XQ4855jnJ3+WG+p1ZPDlW386guG2FoiXon4VkJC6d9WZrc2tAtK?= =?us-ascii?Q?0LCk0i2k7qBrOnVMlDGTFlJOTzTyvcPHeA9t+HdKiOvkviw3iyqDakyTmkzz?= =?us-ascii?Q?nh4ShYZp+qmQ/ZJsOJDiKAU34A8tZGuQx3KeakDpuK3a5qdlnDyzLSivZ20R?= =?us-ascii?Q?MS8RmZrA1c3ejeI4/M3uLgXGF8xgkA434tX+HeWUEILeSC18jBmptqZvXWnH?= =?us-ascii?Q?yjzpyTDBdQjszNlMKD1ztUQ2WpK69xh/lbO8xOVSc2owUF7px0SX1VxXuULC?= =?us-ascii?Q?b9RmByvD3Rkskv+3l8n5ywTYSlaeHtkbniHrBFKhf+njuNS19P5AswsPYWKY?= =?us-ascii?Q?UZxM0PitYxey1EKaIzkMaqrSgGnEhMTKdJ2hSGqJnE6ZSxAihHEoIEyK7Cim?= =?us-ascii?Q?5sW7NDMGKyrTveVDCFPMNnT1OBjrqJQKtd5DYeRu6tJCntZVEF4sIalDnqbB?= =?us-ascii?Q?2oRjmMFtjSP7Y/QiMY0V0IirUa/D90P+MY5Z344eD7WFJ9wMxp9c4CbH6ie0?= =?us-ascii?Q?FnPs/IAE9WJDBEBCg3iPAo8tRdh9s8ZaJlbedste40wFoWiYqUDnnMcW+EGx?= =?us-ascii?Q?m7xUbykWrtb7FmS5SLypGHrFwhDxO3LYSAqfNCOlGM3SM8Sa58EBNPMKwMH/?= =?us-ascii?Q?7Fy63Nc4Yf0/B6MbJWEurFaVtdMSm8N23SfIIq52FvzRFRjvnD37JcDusuKD?= =?us-ascii?Q?WtwtvnEJO9nBDS6X0VFD88GJROY228px4QZ5HlvsD7eBjK0csl8I+hpq6xEn?= =?us-ascii?Q?NzyLO6dB21vovHWpmxAkO/xuIGiZzvU3Euj1V4CcYEgYNiZZ1nkEJ81JU0qd?= =?us-ascii?Q?xfYma8sL7dMOz8otQTv/7WF/ontrD78U/2iB73oSumgGabdajFZ8QahX9IcQ?= =?us-ascii?Q?O1M+4YJEhZZY1bsktrhKOp/m+kpOmfA2HWRT8XqDEAyeTj/8VlWQKnySKyCz?= =?us-ascii?Q?vFY28ufm97GnrogXr51mCy7ORGVp2cTF9JSSfCj4RvD7X9AoYzCpOdj2L72f?= =?us-ascii?Q?PiDeDoNQpxy//5FX7vXnDT7MDuIyniU/+uE09RolYCwxI4BDxvUTQcqS5cmN?= =?us-ascii?Q?PbONiks6iD36qJEPU182u4brFn9LPTEfzk8sLypp33xNhjhCzO4ohVrJmGC7?= =?us-ascii?Q?+9ivdGlfbBibZR86oAtlfU7Nv7BiyVQeejwW5sCXtuhop0XvZNDtG+pFkl7W?= =?us-ascii?Q?m7tgCeNTaFLI0v1aF1MxuJisuZyWTOyhCNeefKqcq91Hd4UKt2ysfampyHGh?= =?us-ascii?Q?C53YFz5o2gQGmFvVpScO4sHGM91LqWcvLjesO7E+BJTXTXCKmUc3s5ULVoN3?= =?us-ascii?Q?mJ+EmMI9p464daalql7zUXR54G/RHaUL951DZaF2IX9qLJ1h3W05CbJaBGK4?= =?us-ascii?Q?8BNtg7+h4O15TYbbiqJT3xoCQUB0l5YdUA5hs0K1b1vnldhXlBHXufpisb6T?= =?us-ascii?Q?JjPd/ewMGf4BDRLf1kknmun5rpQv4V/LLbUnPCdKprzOs42eYg9xJNl7jgtL?= =?us-ascii?Q?TMrYE0Y4frWeOfs4+Xa1QacXQUFioMLRenGjjkUAEsdsQib+JzuHG4caWAf+?= =?us-ascii?Q?drqEvHOUMNyqeR6BpRDJi2sJKjToN/tUeoBmt8q7yiFS1TcTEt9O?= X-OriginatorOrg: starfivetech.com X-MS-Exchange-CrossTenant-Network-Message-Id: c34e7a6c-e743-4cd0-7ddb-08df09c037d6 X-MS-Exchange-CrossTenant-AuthSource: ZQ4PR01MB1202.CHNPR01.prod.partner.outlook.cn X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 03 Sep 2026 13:35:28.6830 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 06fe3fa3-1221-43d3-861b-5a4ee687a85c X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: SzCS0qk/rWxwsXD8NPLQcB+GEwllH4xa0r0KE/FvBnySZ5jSGV6AAPMhqBkDt5fUcHhfgpWfvKeNZsnByPJ/OK/TjqykhuGNDvpwrvyM7Wj3WJqlhU5G6RLAeILntpxf X-MS-Exchange-Transport-CrossTenantHeadersStamped: ZQ4PR01MB1201 Content-Type: text/plain; charset="utf-8" Some PECI client devices may return completion code 0x83 (CMD_TIMEOUT) under certain conditions, which is not currently handled by the driver. Add PECI_CC_CMD_TIMEOUT definition and map it to -EAGAIN so that the request will be retried appropriately, similar to other retryable completion codes (0x80, 0x81, 0x82). Signed-off-by: Changhuang Liang --- drivers/peci/request.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/drivers/peci/request.c b/drivers/peci/request.c index db2cc30a42a4..2bf8b6a255d4 100644 --- a/drivers/peci/request.c +++ b/drivers/peci/request.c @@ -71,6 +71,7 @@ #define PECI_CC_NEED_RETRY 0x80 #define PECI_CC_OUT_OF_RESOURCE 0x81 #define PECI_CC_UNAVAIL_RESOURCE 0x82 +#define PECI_CC_CMD_TIMEOUT 0x83 #define PECI_CC_INVALID_REQ 0x90 #define PECI_CC_MCA_ERROR 0x91 #define PECI_CC_CATASTROPHIC_MCA_ERROR 0x93 @@ -112,6 +113,7 @@ int peci_request_status(struct peci_request *req) case PECI_CC_NEED_RETRY: case PECI_CC_OUT_OF_RESOURCE: case PECI_CC_UNAVAIL_RESOURCE: + case PECI_CC_CMD_TIMEOUT: return -EAGAIN; case PECI_CC_INVALID_REQ: return -EINVAL; --=20 2.25.1 From nobody Sat Sep 26 07:15:39 2026 Received: from CHN02-BJS-obe.outbound.protection.partner.outlook.cn (mail-bjschn02on2127.outbound.protection.partner.outlook.cn [139.219.17.127]) (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 BA2E24AF660; Thu, 3 Sep 2026 13:36:01 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=139.219.17.127 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1788442573; cv=fail; b=fsZyqvYLomL79C/KXpud1o2/9UMSumexYIgxRnv47a5oFFCNkxl3PW5VmIDYK6DuRT7OVG753cDyhYVnUUm7wGyzpX2Esw5kl5u35XG1+6C1+35eQs8IyFEaUSCKq0Ft46tcGzpym45p708d4Fqr0uShMi0Mua995Z3YmhYzVzY= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1788442573; c=relaxed/simple; bh=Q9T6D9Rab9h8Uurtt8s9Nrus3nMbKN2fndEcnCEdrbE=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: Content-Type:MIME-Version; b=HdpB2o5NyE9m6UOHPvfZwRpCzM08+bHyiRj1r1u/tRbE6q9RCPh9g3KXV3Dx5RizdrpjFbuwoajiV8nTOlYDI9868n1KCl7ST2bt15ffyKyofDZbGFNE8G1n25w3TCYfjfJ1pO9do4DlV6y1OMyXjL4llUj41InI0OkTX5xneAE= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=starfivetech.com; spf=pass smtp.mailfrom=starfivetech.com; arc=fail smtp.client-ip=139.219.17.127 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=starfivetech.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=starfivetech.com ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=jKP9L6+00zVK4QN2trqF794W+8+hX0oes5QkH6QmVgFszPAOZ1J+p337Fpvc+i6qdmvOktVMNdRzyjjkgsK5ZxbYknWJv1LM7ie8Yrd0RxALL/180e7jk+Y2hyNE/3vc8iIzxdT0aSTCHboqR53/fzm/slHfrUiLC6GrNQh4QRk7JEZ4nNR3YhwoquM+iG2aLEojO/D419goL+0QrGOrxSoSKHsIQbBvChpJs6pG9S2vDDxvwbP58SJCMu4jrwXgcsPcncS0Eu+iR8ILjEvpR2NbwosenX+s3KMuoAmMKV/Wu6HIuXQs32x5nfP3hv5bjCxGzGokywGo7SWMrXg6lQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=rbSQynd2eVRtGbUq+7pHmhfyZe3wjneG+h20hqZ6PDw=; b=L0YlkXMS6PfSN5QrJoG8WxngQlKOIZOasJ5EpN06IOMOsDWXa4zEoOfL+c2sRqhPMbOqowVSNR4l605tz6oDIdokWvn8dNDu568kP6AjJ+LeL8cE6vCNWAK2zGgiKCfqTqbsp6Ycdw9r4wN4op7VV9hjMDmD64jhND7aPvhcaoUJ4pk2ON5OU572dFFv9uEBICLXMS5pgABV5bpm+W5Xj0ZvrJCUc+PfLRTJcfegNBLIaJFSJGUJklYhLNqt3GuRLydwIW2q58hYWA4NW7qDgE5/5L+X6IG6n/+NY2Kadg6Fr/5Zo87sWgeWWaUagHmf5mV+Co9DOSALl/eqGUSzmA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=starfivetech.com; dmarc=pass action=none header.from=starfivetech.com; dkim=pass header.d=starfivetech.com; arc=none Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=starfivetech.com; Received: from ZQ4PR01MB1202.CHNPR01.prod.partner.outlook.cn (10.2.3.102) by ZQ4PR01MB1201.CHNPR01.prod.partner.outlook.cn (10.2.1.238) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.315.12; Thu, 3 Sep 2026 13:35:29 +0000 Received: from ZQ4PR01MB1202.CHNPR01.prod.partner.outlook.cn ([fe80::e7d4:256c:b066:850d]) by ZQ4PR01MB1202.CHNPR01.prod.partner.outlook.cn ([fe80::e7d4:256c:b066:850d%4]) with mapi id 15.21.0315.011; Thu, 3 Sep 2026 13:35:29 +0000 From: Changhuang Liang To: Rob Herring , Krzysztof Kozlowski , Conor Dooley , Iwona Winiarska , Guenter Roeck Cc: openbmc@lists.ozlabs.org, linux-kernel@vger.kernel.org, devicetree@vger.kernel.org, linux-hwmon@vger.kernel.org, Philipp Zabel , Changhuang Liang Subject: [PATCH v1 4/6] peci: cpu: Add Intel Granite Rapids support Date: Thu, 3 Sep 2026 06:34:06 -0700 Message-Id: <20260903133408.110847-5-changhuang.liang@starfivetech.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20260903133408.110847-1-changhuang.liang@starfivetech.com> References: <20260903133408.110847-1-changhuang.liang@starfivetech.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: SHXPR01CA0020.CHNPR01.prod.partner.outlook.cn (2406:e500:c311:1b::29) To ZQ4PR01MB1202.CHNPR01.prod.partner.outlook.cn (2406:e500:c550:17::6) Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: ZQ4PR01MB1202:EE_|ZQ4PR01MB1201:EE_ X-MS-Office365-Filtering-Correlation-Id: 245b9309-1d46-4a09-8740-08df09c0386d X-MS-Exchange-SenderADCheck: 1 X-Microsoft-Antispam: BCL:0;ARA:13230040|1800799024|7416014|23010399003|366016|52116014|376014|22082099003|38350700014|10067099003|56012099006|18002099003; X-Microsoft-Antispam-Message-Info: q41QtsaXS544EAb3MZykT6lwBoH4D/kOlvzlTGrFtWy5sCKsl+g3nCBbOLt03KN60fgVhBG7rKjN2RcPO9H7a2ouxuaDP2e1/gfYSpnZEf2yQ5iPImZ7SWjTnppW9leXyd3WDmpATt8lGZMJy5NfQtpCe38eVpA64H2ZaVh5Gc7rWw5LXRZrNEwr6PCEoEpuAvmEPAjzH+aEjS3kxeaR6fn+csFgx34p+pkyqBRo1L6qrkx0Wq//EeVJi4pmEz8xuDfvcRHW0aZ2CFi0jzH5juqOnT5lEORYFUiZjWPxkAze2s5s4n46Jjv4ncHT7ZTSxeLeRd5Mqpvki02PG5hmhcIh4GbRoUGk8gIx2bUM9j3bVf0mb9zhn51hOrQC2CsWve3gH+xqRMMmk1DTZcvWquhA9RQr7GT06N/OHqLahrGazPSecQfEJ5x4GZOxs0iTKj0V8B8LZzoqmKvKCzJ30w7GbC9ft83uwet5gZP0wVgSXt4jhbwxHZ3ngzR76Jg2Rs6MCeJjT93dWuWV+D9Fsob0OgBtD1qvwPPHuzn6T4psk0W/w1lxqJQbSxQBlh2j X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:ZQ4PR01MB1202.CHNPR01.prod.partner.outlook.cn;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(7416014)(23010399003)(366016)(52116014)(376014)(22082099003)(38350700014)(10067099003)(56012099006)(18002099003);DIR:OUT;SFP:1102; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?qBBiBANJoEl/ZZMOayFK6ZMTBHUYmQZ9ZeaL1WnolBQL31gLQUrrZ9e7T3e5?= =?us-ascii?Q?qvWX5E4hqgSKc+XNw1jroOEKs3csFDHp7RKiGsnKI5Pb54jzLOWLWCg3ql3H?= =?us-ascii?Q?e0mFQJKTsJLg6lhAU9yQWsS3sW9HOmc4cXix8OZBwyhQuyjarmGhRDpz7MrM?= =?us-ascii?Q?36HSx66Q17XwJxdlSvJ16bwKphXQTvrC3fi4LdxH4zS2EqCEReubfMoH0w91?= =?us-ascii?Q?p+yXll0NmHsJRvrL0tvuySnHE6k+zrJTSN/Do8G+VY9lFCIZf7m7OXoqQAwV?= =?us-ascii?Q?Qu0T+n311NiAXrf+ZMg2XsWs5Igsw1BU+VdHXUjoGfM7HpfGQJ8/k2GZOLYB?= =?us-ascii?Q?t7r0JOIjXBiw9ec94p8SR80Vhf3ClUEF+Cadyq70/J/UgZ1LmowRaFMsFVl4?= =?us-ascii?Q?zSde87OUCIGG+vLgxzX1HtAAM3vaIwBJgrHExaAE2BDulanaxOHiAXW4q09h?= =?us-ascii?Q?qSJPg65QjyJ7y1pxkD8o5wL4Szo+1k+Fz/IPcBhNpD/6+xqvYJbJiPInx0P1?= =?us-ascii?Q?N/NnnvUMYwnNwfFkNY/kVxZM8U2PjDKeP9GwpxstdN6d+rVpLUiAUUbV2zuD?= =?us-ascii?Q?WLotfT7edJYczsW0OgLrXSSA64+CVk6IXxwOY5cV3tO7gHmtP2SqBobXef/V?= =?us-ascii?Q?FHWjgWenV6adDBh46lVFuItdPxQD1uAphsQ4hxrJDAMNN/qwY4nqgcOW0q/q?= =?us-ascii?Q?cVICkqJlM4IPLjxcSySXWnjH2rCOBMp2ScdWyTzSMlTUYautigBtiFJzKbBq?= =?us-ascii?Q?PmrO9TpfnJxBglGfSPoZJQh96RLukIsUsBWn6qW2sELaCBqPtF8pLfE7ErsR?= =?us-ascii?Q?Oaka5wFc685F7AeW/nQFkf0dlwK4W2hj7xrvQqLUvu5jvcrnfEgA+Iuec7Cs?= =?us-ascii?Q?IM5l/0E5EY4BEcF/k9J6T2FQdkbrFnrfSt/WQRcmenL5tNyI1ave8GOXOVc2?= =?us-ascii?Q?6AmOd57tFuomO1uNRP7IDS/ont1dsBjpsqBOulGiCBJfGIcJbgLR1rsmTs/L?= =?us-ascii?Q?A6j51HZdlgrRwH+wbnTHVOMeg5t3Pft19WRN0WCwo/KBSyhuoQgP8i6vcv66?= =?us-ascii?Q?gflR5O3xcbiP0At8snsUC0szWzVw1OHgNEHdl0wZ9O2Rt1StwlGubuBT/MlK?= =?us-ascii?Q?aG0hJaPJuUOuRtLfIN+1eVyrl3U6M2Djx9nHDiy+jQ8aYmwv6N4kFojXCqpK?= =?us-ascii?Q?W0bTmF7+Ue1OlXGm1hBpop/mYEIDX13NDtKxIJ9tRB50OEFvR9WF8YkCz65u?= =?us-ascii?Q?onxeQkDkBRw1GxbEybQ7Woezhm8xorEig4bhCs2oLDvFUKlZt7kaNtPH1ie0?= =?us-ascii?Q?Pn+hNxYDr+IPOjgC/tsJNT3CRrDwWbiCYLC++SB+f7lNy4UFnUobmT8vlHq4?= =?us-ascii?Q?tkl+Jyw6RQ4KxKXjWl2ysf9ymuTzNQmgWOqRD8zK3o17Rz203LvAa/9/5WDH?= =?us-ascii?Q?RKjpn90yn9GL4FeIYeVKkQ/cdg55yF8qFLG5EM1MnJoPZ2ofJeN2W8IltSFS?= =?us-ascii?Q?9VlRRQ0aR+svxJwDoQ0voE0yfl+BaS0qHyE8qYMNNiQvjbjWx/+xpzCFLhED?= =?us-ascii?Q?I+xpo3hy+hUXkxEtDSyUXJivaWjs1nprQu4LBg+6J027327lUCgA9IL1LdwQ?= =?us-ascii?Q?6aJzSSHwy9hR3Wis7LiCP8BdAqw1dK3/TUYOTdIEcaIkS1tw1QbXcmaaYj9v?= =?us-ascii?Q?qs8b1bwy3scuFIYIfs4wM98a7Wq/yrClRl2PUiRcDXri+xQ0CgHki0pFsMvp?= =?us-ascii?Q?LKBN9h2wsB1HE7hE9VrXSvbVmn5TVSp7d8mpQapixazaGKbwz7qf?= X-OriginatorOrg: starfivetech.com X-MS-Exchange-CrossTenant-Network-Message-Id: 245b9309-1d46-4a09-8740-08df09c0386d X-MS-Exchange-CrossTenant-AuthSource: ZQ4PR01MB1202.CHNPR01.prod.partner.outlook.cn X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 03 Sep 2026 13:35:29.6181 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 06fe3fa3-1221-43d3-861b-5a4ee687a85c X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: daHcGYwNlKuEw9PWI/yAf0ykiZp1+ajp7XynswnuwiQIuBAVE/tF/AVeto7fUETX/O9VcmDjfveaplmiB3tAI1tnzHDOVwkS9AGeXp71QUFd+Ax8bksfuW7BReWuJnXj X-MS-Exchange-Transport-CrossTenantHeadersStamped: ZQ4PR01MB1201 Content-Type: text/plain; charset="utf-8" Add support for detection of Intel Granite Rapids processor based on CPU model. Granite Rapids processors with the model set to INTEL_GRANITERAPIDS_X. The data field for this entry is "gnr". Tested on JHB100 BMC with Intel Granite Rapids processors. Signed-off-by: Changhuang Liang --- drivers/peci/cpu.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/drivers/peci/cpu.c b/drivers/peci/cpu.c index c9fc06c9ff53..abf004637949 100644 --- a/drivers/peci/cpu.c +++ b/drivers/peci/cpu.c @@ -325,6 +325,10 @@ static const struct peci_device_id peci_cpu_device_ids= [] =3D { .x86_vfm =3D INTEL_EMERALDRAPIDS_X, .data =3D "emr", }, + { /* Granite Rapids */ + .x86_vfm =3D INTEL_GRANITERAPIDS_X, + .data =3D "gnr", + }, { } }; MODULE_DEVICE_TABLE(peci, peci_cpu_device_ids); --=20 2.25.1 From nobody Sat Sep 26 07:15:39 2026 Received: from CHN02-SH0-obe.outbound.protection.partner.outlook.cn (mail-sh0chn02on2128.outbound.protection.partner.outlook.cn [139.219.146.128]) (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 03AA74AD7E5; Thu, 3 Sep 2026 13:36:05 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=139.219.146.128 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1788442579; cv=fail; b=e3YBygDqbIV2qVkEqyPny6nMF73nIbSvhgI+lu4I2QqyjiQbznUo+8ZHfykTAdY49bLHlP/1UT6BUQju3TWFWkP0wYL06XcjTEnrkyo9W54LxPXQE0Myb5hZYuvZcmXsiw0oWAib0ro3bGcN49xgz6+btojMF//jO5vW09Xlk+s= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1788442579; c=relaxed/simple; bh=xOdVjRr1ezMsDtdOJXg9p9Ijd9l2DahbO49Q2knT8to=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: Content-Type:MIME-Version; b=hod2AfGciswcDesg5MNtpFofcGvCGW0cBb0RYEAYd/B3NOqxgRwgdRFRSZcmNNxjGi1XdhLgo7W6XHXGcBnoCNCy0y8noG9we2LiE8EytXveeEtUNcOXlszPHxQA9KDPYgMd8OFl4HZ3mSIkAG0V7vt1wblgmxqQy72ObGdPbT8= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=starfivetech.com; spf=pass smtp.mailfrom=starfivetech.com; arc=fail smtp.client-ip=139.219.146.128 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=starfivetech.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=starfivetech.com ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=I18Fa+plAb4LfrWxbPRqsOm13d/axsQSwrj6fqNRegnYCzFMmzQxxavgYQOwHG1iSu65wJwPpffMJbto2UA4qHa66QDSx0ygxM2kU/mbbktLpPwroloiX2wjM8Asj6IleizEEoG+qnjJtOXTLVftyUhRXwP7z09vhLBdamtso3zYqp+Ryl34o9Vg+nDRIzDpROo4X6EgJs85jIqIW407wmmvIiXk95MUUjiHNtQKw/HQNmpiH/ZMmayAA4PkBNSVx4MfUrn6t/5NQs7AjuaIT6nS/qe+bZbz1stN7UWlp2TqeK+MNuXDgHtNx63KrRCFynL/ne+LwlzL66TT2w0Aaw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=NHOV+v2dK4K4jpCQTj8A8iBYYEiLpqg/rPZ0jrltHOw=; b=nsjIEEFDRn3nBvu5cXbeLifuupnkh5wf7jLScqI7UGBz7cRBxRVyOuO/DUL4stA8vWh1cT8CWXhHCmrt0XgvU6UjXEQrze9A1j4dTiqb7Tpk2uQxlDNDggJKYCVWtpHymmMsi3JS+KHuHuIa7hXSTVTYIVbKGtwIKzw4wEmkEWeE4AB1q36RQj2Nscexx/94w1rFgYewLr/9Mj0WyAbHAdBQ78ZCEQ3YRrgY8dROFFq5A8BMGqjJFcHKD+T0mdnG3Eoxhz5NNzSVbzvlOwlRSnHrVvTyyAfJEj0xetSd+Tg/FkKEwfvXie+16LtpT5aPHddkXOWplAf5xenbe8OC5A== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=starfivetech.com; dmarc=pass action=none header.from=starfivetech.com; dkim=pass header.d=starfivetech.com; arc=none Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=starfivetech.com; Received: from ZQ4PR01MB1202.CHNPR01.prod.partner.outlook.cn (10.2.3.102) by ZQ4PR01MB1201.CHNPR01.prod.partner.outlook.cn (10.2.1.238) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.315.12; Thu, 3 Sep 2026 13:35:30 +0000 Received: from ZQ4PR01MB1202.CHNPR01.prod.partner.outlook.cn ([fe80::e7d4:256c:b066:850d]) by ZQ4PR01MB1202.CHNPR01.prod.partner.outlook.cn ([fe80::e7d4:256c:b066:850d%4]) with mapi id 15.21.0315.011; Thu, 3 Sep 2026 13:35:30 +0000 From: Changhuang Liang To: Rob Herring , Krzysztof Kozlowski , Conor Dooley , Iwona Winiarska , Guenter Roeck Cc: openbmc@lists.ozlabs.org, linux-kernel@vger.kernel.org, devicetree@vger.kernel.org, linux-hwmon@vger.kernel.org, Philipp Zabel , Changhuang Liang Subject: [PATCH v1 5/6] hwmon: (peci/cputemp) Add support for Granite Rapids (GNR) Date: Thu, 3 Sep 2026 06:34:07 -0700 Message-Id: <20260903133408.110847-6-changhuang.liang@starfivetech.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20260903133408.110847-1-changhuang.liang@starfivetech.com> References: <20260903133408.110847-1-changhuang.liang@starfivetech.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: SHXPR01CA0020.CHNPR01.prod.partner.outlook.cn (2406:e500:c311:1b::29) To ZQ4PR01MB1202.CHNPR01.prod.partner.outlook.cn (2406:e500:c550:17::6) Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: ZQ4PR01MB1202:EE_|ZQ4PR01MB1201:EE_ X-MS-Office365-Filtering-Correlation-Id: 1608e3c6-1b19-4c78-e88f-08df09c03921 X-MS-Exchange-SenderADCheck: 1 X-Microsoft-Antispam: BCL:0;ARA:13230040|1800799024|7416014|23010399003|366016|52116014|376014|22082099003|38350700014|6133799003|10067099003|56012099006|18002099003; X-Microsoft-Antispam-Message-Info: 2SVGDZg5lbM7692BYAd2vPfVQJyMehV/5edPM2D9sNSwiUUqCaoQ6Gwn6qYwh/QYAplma47f1jWxerJDlpXc0ylnZNXTGr8uNbI54aYfyv9YKl1ocZCrR6pspEbcXWM+xOCFGz0cnxy0aHANVfd9vOiBzdMrGhua+jW4Eo/zMnxO1e3NCc7MWtBFP0kLQsr5O2HQDGi2QUnGrDIgHEDoKNKWPxGLLmsRvnquvLWOXKD8DpFDP/fBQrv9tPZ/sWiaEtTLb4uGFLhvEmS93fj+FKbz5+sgVwIyokm9az3Nl0smk1z7JWU7XvCzTC13WZOD9vATaXN6rx4hPT7/UYpZQeMTAfV+DIi6l+Ce4a286zz2vUZ4BfKxyX5wj7nosAGQqdMRTd2mCI6BqqHVa40tpeC86/ae7JPErC6BRPxe0I7IEVfNPz8g8a25dwwJLyDUjZYFm6ekMrT/EmfCdXeBhyqfX7zfLEJk05teNsbRC7xsAWw5LDuRR2ob+GPRWQw4ZJHH2nwW+AE6rDmk3/KZ0XQGcx4TQkl0lJec/BhJWhVjRG4tZfHlUUGYJ+CV2Kh+ X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:ZQ4PR01MB1202.CHNPR01.prod.partner.outlook.cn;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(7416014)(23010399003)(366016)(52116014)(376014)(22082099003)(38350700014)(6133799003)(10067099003)(56012099006)(18002099003);DIR:OUT;SFP:1102; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?Ts9X437p0o/HX0DWbqnUU7MiMVCpO2vcGxg/0AdGp6FaxBrQB5qhVW5IJ2Kh?= =?us-ascii?Q?yihzMLV2BnoJi7l/BRMB9IPfqR03B+VZtr80pbn5ivcq6B70iEFORNRv/dJQ?= =?us-ascii?Q?L+xQolWE/LOObRg405pkLX7kefnA4lmO+smjTyN6SkoTtkJXHP3vhhaHW1IM?= =?us-ascii?Q?/UJJM7yWHHYjuXOUK87WC/cGxGJKuhjbMsb4TC6bPErR972r8mqi7Cn6uoKM?= =?us-ascii?Q?7RDyVthafM8me3KaDUo90t/pkWbSpVcTUs3bRbfvQzR60giwn6zdwgq7TM0x?= =?us-ascii?Q?a3DF4KRUHDdbsKk93Rb+c+7Sn3QV45JTlCz68q9RVVbkByu7ys8pjcDT93Xq?= =?us-ascii?Q?9J+vTDmg/tlM6ezLZXd7a85K6UYYcg0SBNqzYMjb90G2sYHmN6rN1V+rMp1t?= =?us-ascii?Q?aWqPub4Gkk6Uk0tnt6TvjJk/VmBlRA77o1mkoMFAjXaqz7z0Cuzxk2DGg89k?= =?us-ascii?Q?G2XUnGPix8CXLyz1msVXio2LVViPWN4NHDXpipR8fDuo3lHWD87Vl3kiD2mZ?= =?us-ascii?Q?TiAShkLtTZV3j1+i+BW12uTtUCyEUcVgKW+Hz6IRwW76/43J+48w/szAp75X?= =?us-ascii?Q?WLQhQW9d8nufehCgZnGP3dfcFv0k29shJYld0LoEnKIOTJT4uX32n3B9dSfB?= =?us-ascii?Q?EipqEU1TK/Dwe1i/1YuNKP02J0tFC7vosMas3FgmyyL8W2W64EvNNNchd4PF?= =?us-ascii?Q?qq6P4cqwQ8AbQDvK2etzI/OE1yf+03xO8eW0mUq6+Nxf1mlR1Tgc85tW08J9?= =?us-ascii?Q?3Pq5QI11odl+bJ7yA/H9/noLrvca9VAU+TRNd/nbn64BLPfYUH2sIlJOee0A?= =?us-ascii?Q?n9gU3wQUFaCxe09e5yzXcdelaJj8X6xdA5PAHb45rzRMhCmblCWTPxlbakLf?= =?us-ascii?Q?j88Vk/I105cK0Ke7Dn7LTjkek6XKdKqeqljbzJMhWSH7PUSLCzEokmaNkBbz?= =?us-ascii?Q?MSy5f6ATf4/lyZJi784wRSdRwxrZg/WEcTC3V8IkMaYE504f9F7qqSQSRIE3?= =?us-ascii?Q?2EuTTFS/RLowAafpo/juO4jvzt8qn774F/n927mC4Rwt3C3z+bRMFiG/k5jm?= =?us-ascii?Q?mTwmbaXAdpHPzlP+yd2OGotozUV4P3GaEG4JCuGpLoKTqmU8UC+CO03zwBof?= =?us-ascii?Q?GEKn82jEUW/B87wEqWx5Icpu0/OHVBxgo+Rga2pBrTuP4dZU+yyanbSgjSEf?= =?us-ascii?Q?KSwHmAotfqW9EqKaZfe8ZLw21k/HJNsCkZiYce6CMudH8qjKam3PilHAjyHH?= =?us-ascii?Q?ntAoheEmqZke5RmRvvXMsPCwRpMqlc6EkdlkWBebiOWgHeBZwRBZnwzO6kqv?= =?us-ascii?Q?fPsYgVcrCqYoSUIRXiyqOlvPZW9lPunt+fraGIu6wVU2rgLpID9RcI8yfreh?= =?us-ascii?Q?6SPa0EPhRXNKoi2MkTigqrc1BSVO3v5bJYJiBZnl4BsB1lF7IjTIRlwYHsE6?= =?us-ascii?Q?dfmgzr8avaqwep6uEcskFQ00EsYR1pvTEopViALg9552NUI9CSK1xFYGQSBp?= =?us-ascii?Q?EHB/1iqvBH5KageabhJnw7hO+NRnbwxdSCxoKNyyPasrgILAtMkgrrucpgzk?= =?us-ascii?Q?ZAdqKIxN4s+kkJgaUOCH1WyYRBRRk4xryyz08vPbtUOgSu+kYbFvX6SWmiIA?= =?us-ascii?Q?MUECjezor1e0iCR1ps492gNTONU7hAdHgRl2s61jw3lqhj2bw8GKTlE5LgNP?= =?us-ascii?Q?WIoW1lolIWQ4Wb02GpTXUauAWVNDHYfdeLD+miMK3WAyHq3mBjcQCDEbV5GC?= =?us-ascii?Q?dJ17rBTMpPd5Yqe5sZGAzn1aSpB1aVfH251tmOi9hIP8314EqXuP?= X-OriginatorOrg: starfivetech.com X-MS-Exchange-CrossTenant-Network-Message-Id: 1608e3c6-1b19-4c78-e88f-08df09c03921 X-MS-Exchange-CrossTenant-AuthSource: ZQ4PR01MB1202.CHNPR01.prod.partner.outlook.cn X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 03 Sep 2026 13:35:30.7749 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 06fe3fa3-1221-43d3-861b-5a4ee687a85c X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: H+nmngIIQg9+l5wnjguEGTeMk+qUi1pF3dED0zVOg+5SXnCO+rIWfgbw7yotPvYE61lxEPy6cWacbRi4dyUvXFfabfpeBuxNwzemCHjbzbMWcWOQMNT38oUd58cH6epA X-MS-Exchange-Transport-CrossTenantHeadersStamped: ZQ4PR01MB1201 Content-Type: text/plain; charset="utf-8" Add Granite Rapids (GNR) CPU support to the PECI cputemp driver. The GNR platform does not support the core mask scan via PCI local read, so handle this case explicitly by returning -EPERM and skipping the core mask initialization. Define new cpu_info structure for GNR with minimum PECI revision 0x40 and the thermal margin conversion function dts_ten_dot_six_to_millidegree(). Signed-off-by: Changhuang Liang Reviewed-by: Guenter Roeck --- drivers/hwmon/peci/cputemp.c | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/drivers/hwmon/peci/cputemp.c b/drivers/hwmon/peci/cputemp.c index 457089c561b4..43e52a6db79b 100644 --- a/drivers/hwmon/peci/cputemp.c +++ b/drivers/hwmon/peci/cputemp.c @@ -339,6 +339,17 @@ static int init_core_mask(struct peci_cputemp *priv) u32 data; int ret; =20 + /* + * Some platforms (e.g. Granite Rapids) do not expose the RESOLVED_CORES + * register over PECI - per-core temperatures are simply not available. + */ + if (!reg) { + dev_dbg(priv->dev, + "resolved cores scan is not supported on vendor-family-model 0x%x\n", + peci_dev->info.x86_vfm); + return -EOPNOTSUPP; + } + /* Get the RESOLVED_CORES register value */ switch (peci_dev->info.x86_vfm) { case INTEL_ICELAKE_X: @@ -543,6 +554,11 @@ static const struct cpu_info cpu_emr =3D { .thermal_margin_to_millidegree =3D &dts_ten_dot_six_to_millidegree, }; =20 +static const struct cpu_info cpu_gnr =3D { + .min_peci_revision =3D 0x40, + .thermal_margin_to_millidegree =3D &dts_ten_dot_six_to_millidegree, +}; + static const struct auxiliary_device_id peci_cputemp_ids[] =3D { { .name =3D "peci_cpu.cputemp.hsx", @@ -576,6 +592,10 @@ static const struct auxiliary_device_id peci_cputemp_i= ds[] =3D { .name =3D "peci_cpu.cputemp.emr", .driver_data =3D (kernel_ulong_t)&cpu_emr, }, + { + .name =3D "peci_cpu.cputemp.gnr", + .driver_data =3D (kernel_ulong_t)&cpu_gnr, + }, { } }; MODULE_DEVICE_TABLE(auxiliary, peci_cputemp_ids); --=20 2.25.1 From nobody Sat Sep 26 07:15:39 2026 Received: from CHN02-BJS-obe.outbound.protection.partner.outlook.cn (mail-bjschn02on2127.outbound.protection.partner.outlook.cn [139.219.17.127]) (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 700154AC17B; Thu, 3 Sep 2026 13:36:13 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=139.219.17.127 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1788442580; cv=fail; b=SmtL1CAMIKh6ySZg3gqLRPBgjRF9pkmSu8Q1baXaKHSapNGlJmc8B2X0/hFgatDqqyvSgV6tQE5jHnEXENVxWdWiXd/9mzzHN8plPItkQkYxt0gqElurzNhjNv1Mao7UnwMqjUfxC9AyA95YvN5lCDPXTYQFOnPzHafoMlphm+U= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1788442580; c=relaxed/simple; bh=PiwgMmpUi/EGHTpdfYhPmuGQYhBB1PRpx63IcqiFI7Y=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: Content-Type:MIME-Version; b=YhJciLYTTyyPalPv0S7gSatUH0yMNdu4mZD/nwtwNSx+TvbXfPd1pBnsccfVKdKpfGeFF+SnmH6vsvCO8Cp9j0/k8G4IEipMHIQR2pAptIdyBP84zgd4+v74hlRs3TudkFn2ka6PYg3FvV4vTuEW6eYqBjpLtAG6rLJZgSK4fsw= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=starfivetech.com; spf=pass smtp.mailfrom=starfivetech.com; arc=fail smtp.client-ip=139.219.17.127 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=starfivetech.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=starfivetech.com ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=c5hQ5eKvZdyNnEEYc1q2F3UMJYPcUhTSbxMzb863nzW5TPsHXNU0jelYRB8dHveeX0wGc8SLUWi8J5nJzd4b22C08hyhdXNqiNbQbPufD5p/RxrywoqpOETJ5/S8SXkbeoD+8LWMJPbOJnZvEfsCnc0Px39DbJK3M3q1OxQTXE9JIdIMbajF37Yg1mopHiBB9ajkowROYx8I/pWiX5movAI0C3pgMG0BdL3CjfTWhpUKA6JXO1lxm/7IBzyuEffjUF6F94RlLLPca1gJmIXIFY5maEr6awq5mU6ovigCvkU2wAOYK3kg4fX4Bq2LCgkAiWbF/NvbGTBdTajplbS4Gw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=Y6WGLVg2atutgee+geWMWe/BLChpjyBZqkv8I+JJ7eY=; b=AEAAdnZgRvlsJPyJO1AhWKzx4xC695fPZzL3dimg1QCzljciVKr7nu6gCn1EBTKcBmjt36Y1DdNy8rrm5LU8eAHfor/7sX37kgu3Huy/UuTpHSJ7JPzemEPASbVJKDkd55QHMAWU110F5CocQlbN6kRGNPKD2k+UCMznwcnFiHEWsrdV1gF3dwVUGfoSaX7amB3VGuzjtcVBqDQ/V/YhUdDJF4olswyDqk0t5lAThvvcXW6oo876cFQi/nH3LcYf3P4nDaps7zYDxXFXbttqABoF2Y0duP2Zbr9lTud1SNnYHW3Y0Th6RsbaEhQH8Zqe2ST5TzaDIylFk9TajkTAtg== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=starfivetech.com; dmarc=pass action=none header.from=starfivetech.com; dkim=pass header.d=starfivetech.com; arc=none Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=starfivetech.com; Received: from ZQ4PR01MB1202.CHNPR01.prod.partner.outlook.cn (10.2.3.102) by ZQ4PR01MB1201.CHNPR01.prod.partner.outlook.cn (10.2.1.238) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.315.12; Thu, 3 Sep 2026 13:35:31 +0000 Received: from ZQ4PR01MB1202.CHNPR01.prod.partner.outlook.cn ([fe80::e7d4:256c:b066:850d]) by ZQ4PR01MB1202.CHNPR01.prod.partner.outlook.cn ([fe80::e7d4:256c:b066:850d%4]) with mapi id 15.21.0315.011; Thu, 3 Sep 2026 13:35:31 +0000 From: Changhuang Liang To: Rob Herring , Krzysztof Kozlowski , Conor Dooley , Iwona Winiarska , Guenter Roeck Cc: openbmc@lists.ozlabs.org, linux-kernel@vger.kernel.org, devicetree@vger.kernel.org, linux-hwmon@vger.kernel.org, Philipp Zabel , Changhuang Liang Subject: [PATCH v1 6/6] hwmon: (peci/dimmtemp) Add support for Granite Rapids (GNR) Date: Thu, 3 Sep 2026 06:34:08 -0700 Message-Id: <20260903133408.110847-7-changhuang.liang@starfivetech.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20260903133408.110847-1-changhuang.liang@starfivetech.com> References: <20260903133408.110847-1-changhuang.liang@starfivetech.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: SHXPR01CA0020.CHNPR01.prod.partner.outlook.cn (2406:e500:c311:1b::29) To ZQ4PR01MB1202.CHNPR01.prod.partner.outlook.cn (2406:e500:c550:17::6) Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: ZQ4PR01MB1202:EE_|ZQ4PR01MB1201:EE_ X-MS-Office365-Filtering-Correlation-Id: 7b1e50c2-3431-48e1-d75b-08df09c039ab X-MS-Exchange-SenderADCheck: 1 X-Microsoft-Antispam: BCL:0;ARA:13230040|1800799024|7416014|23010399003|366016|52116014|376014|22082099003|38350700014|6133799003|10067099003|56012099006|18002099003; X-Microsoft-Antispam-Message-Info: FRlsmD9YAe2LzKMjR6lnc3HNI4jVH/WcjIsgMNO6XrATiszNwFiuTZUH1Dh0USn2jJeCIPOzx6BHYnNYwBFhbLu+Or4wEgVHwgsHQ3SwMFe1O3epfp99THsrRee56Jps2SZ6LTbu3QCegkH3yB6TLwxxX7FXPqeQSXhRigoVKe+v1KOXke9M9iJeb7VsAlNXZjQVSgQJBhiMzn485KG3FHrt/nhvaSQqgONXA/r2sRD2PEgBriZCHZcdNJPYLfNodniyN+yH7fKeczHyBDSZYZCxB8trepTw2gNe86kIpnefs8SxBf4+pI7cY7IvsKj2l9LK2pYtuOtgXWGBQcXkQfMINAnAy8K8OWqebF0Gyi03nn8dH5Y1IpS6k6TTN68nBpCURppQiTmoFpVlPXInofyE0+KVdyOlr1ltuAGyVThke7hfkCV508j6++LNHmt9HoRZNrwWBU+tLZYj4M4UWaTWr0OVU2pV0ND7Fn0cW1sidmCIkQO3OJFH2esxj2myNH/CbfY9iU6hopPUZLjMvozTAfsq3R1OUXgqKakQMC/yVQhRFfpWuZJyHUsdq0bX X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:ZQ4PR01MB1202.CHNPR01.prod.partner.outlook.cn;PTR:;CAT:NONE;SFS:(13230040)(1800799024)(7416014)(23010399003)(366016)(52116014)(376014)(22082099003)(38350700014)(6133799003)(10067099003)(56012099006)(18002099003);DIR:OUT;SFP:1102; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?kdTvqwovKNV8o8oLxKdbX+pSonI9TskLZq45LI37eqnm0emvvOkAXgwSryNK?= =?us-ascii?Q?vRHEfrkb/XiHIB6XIwawyi5YupPWyrVc6DhZJAYbJUY1mVBP+SqOsUyv5Nhq?= =?us-ascii?Q?nx5qB1MfkR+8tLXAk0rbFewpsiucACNgVPROrfA6iH7vodtmcXk6uIjCJcup?= =?us-ascii?Q?fIF2/luIstQNP+7g6rN1hUwvpVGWIt0EYq/p9XRG96Q/yJOq7VL2slSYDeVi?= =?us-ascii?Q?cvNgNfMjIfI4OWb4OdOeRd31dLNnS0MlKaAzr9QVf0AJXsJqjHFp4D1IKGKg?= =?us-ascii?Q?k6GwlElARupOo2MotJsFwSAwX5ooS6osKR6Y9EcuciWhI9ZsU6NdIGxyyyzY?= =?us-ascii?Q?hk5vKA0MPJ8VQBs/ewPbZOW3g4SK+eLNBBBoU6pDK+22ae6fETgbid0mXNYQ?= =?us-ascii?Q?V9Af2O5Fv4GLTO/UlaulCQdDuISBSnXzboO3WcCgF9Ub0FbNQTgJyw6F6BVB?= =?us-ascii?Q?CZTqZjFJd/WNgjHrbCkbErgy56pw008/uVG8TXlrs94xQyGcR1Qk32D5OB8L?= =?us-ascii?Q?beheyktB0e/puYk8uHoJhVSLm/MG+FRI42JMmcpenERzvhQFaZlyr6FL11CJ?= =?us-ascii?Q?FpO+bBV3QQx613CadF9DAdm7s9FDxXPQMYhBHYqSefS6pQVPGF2jg1XNUUKJ?= =?us-ascii?Q?4BVs4N01AZgWj4HH5bkpSVc/1MOHAAeWb202Z5S2PN/iL7A9HWVxmelE4dlO?= =?us-ascii?Q?TraCu6DFelmzYEMLz/wrKWet7eIGpMIJlsal/et1Xjf0ageOJKJvVwxkn9W0?= =?us-ascii?Q?Zs0CFNqvnw26Ot0KO3cJBHQpCT+/221vDA/X+p/QlOy09BDC6GZJA7+PvG5+?= =?us-ascii?Q?+pkSzrWFceUbMd1hpxxB5+fZoJc/quksLOUMZIbNCI1ogsbTQtxg8LiWgiye?= =?us-ascii?Q?UBaMFTc1Fl1Clv1AuvgYFpClHji4sqVc9ycLfVUmWsAEFGXEYEkgh+GcEiCi?= =?us-ascii?Q?YDKoWxpZDyTnsa++Kgvqs78NEQBB/6YBRCSnbFgOeAReINCc1KJJBVCdpkUQ?= =?us-ascii?Q?blmwji9v8EOP2rfEw92GEOUOdeXL8DjwS6Nh7E4xL9AYHayUvtp1TtJSV3df?= =?us-ascii?Q?JmZJlVg7wLJbttC4L0ju0KoTpSQgVYa3OnxDW77rdDINC3G9Sxi/Hg4Wvxvb?= =?us-ascii?Q?nY505IMzklh45xMpZ0NAPpA7mEwyvFVVBEyUBlLHLIaF+2xB5FyIRIuv9zYM?= =?us-ascii?Q?wXYWaZP0Syrmz1FYOqerwMSfBh7o4VmWd1w6b8NkAzaTDWJGqq0FZtkiURNV?= =?us-ascii?Q?cOtBYzd4oQHr/zEAu5Biis2EZmzEvgWmuAW9YAkbKo3JTTuTCLzcAOpiWrzC?= =?us-ascii?Q?Z8X15eS9n4AfBtHEU8VaPO1uZoxLemwUJFFvPaLM0Ix3htyXIo1m0mMpktg4?= =?us-ascii?Q?PvaHNJei/HfpifyRkhQdYp8u62yDgHnNlakPeh64SuLB9zBmZF1JiTAdxCz6?= =?us-ascii?Q?Tr+gQApY4b5P1f5mnyfskF+4OkZjiqFXni+Zv8WT+SokQrTpw3vK4gG6KlI7?= =?us-ascii?Q?Z+7qeGlzSlN910e5Gxk+q7yLvL0Dz4nLJeUIkTx1TSJqpAKz7e9XUrDfopiz?= =?us-ascii?Q?fq4bOzNcGbx8WSQx3W4uckF0VLY8Kwb5aqtkMs6xG08Ug3nm8oqfKlXmksff?= =?us-ascii?Q?6/LnK/cBe8IYgJwUCjuHiAjPzImQoOqvZfmmGfjHVHIA267sQmAZ+ycSQQXZ?= =?us-ascii?Q?AAFXICoS87/AT8zo0sOt9KkIz22mk/06qyofo/TPwQ882n5Pqgn2YRJ5vFft?= =?us-ascii?Q?+psHz/D6M6oa2wi0u7FXfl1HfLOj0lxglY236Fo7dMRjFBbda3uq?= X-OriginatorOrg: starfivetech.com X-MS-Exchange-CrossTenant-Network-Message-Id: 7b1e50c2-3431-48e1-d75b-08df09c039ab X-MS-Exchange-CrossTenant-AuthSource: ZQ4PR01MB1202.CHNPR01.prod.partner.outlook.cn X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 03 Sep 2026 13:35:31.7131 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 06fe3fa3-1221-43d3-861b-5a4ee687a85c X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: dyyi9Ql/AtnEWzx4TQ1K4AEaGSyCZmgPgVBJJ92T9Gi1WmOhvwl3h2GKs29hz2ZIma7UcR/HrPbgUrkjmo2NgZZt10nwW5Juz011JqOvRp3NDQGhUhkX2G22bHR4wdTB X-MS-Exchange-Transport-CrossTenantHeadersStamped: ZQ4PR01MB1201 Content-Type: text/plain; charset="utf-8" Add support for Granite Rapids (GNR) platform in PECI DIMM temperature monitoring driver. The GNR platform has different DIMM topology from previous generations, with 12 channel ranks (CHAN_RANK_MAX_ON_GNR) and 2 DIMM indexes per channel. Define these new constants and update CHAN_RANK_MAX to use the GNR value since it represents the maximum across all supported platforms. I am not sure whether it differs from previous models, but on GNR, requests to read DIMM temperature thresholds (DIMM_TEMP_MAX/ DIMM_TEMP_CRIT) via PECI are rejected with completion code 0x90 (invalid request). To handle this, the read_thresholds callback is not defined for GNR, and the visibility logic is updated to skip exposing the max and crit temperature attributes when thresholds are not supported. The minimum PECI revision required for GNR is 0x40. Signed-off-by: Changhuang Liang --- drivers/hwmon/peci/dimmtemp.c | 36 +++++++++++++++++++++++++++++++---- 1 file changed, 32 insertions(+), 4 deletions(-) diff --git a/drivers/hwmon/peci/dimmtemp.c b/drivers/hwmon/peci/dimmtemp.c index bd3e8715dfec..9e98effeb928 100644 --- a/drivers/hwmon/peci/dimmtemp.c +++ b/drivers/hwmon/peci/dimmtemp.c @@ -34,8 +34,10 @@ #define DIMM_IDX_MAX_ON_SPR 2 #define CHAN_RANK_MAX_ON_EMR 8 #define DIMM_IDX_MAX_ON_EMR 2 +#define CHAN_RANK_MAX_ON_GNR 12 +#define DIMM_IDX_MAX_ON_GNR 2 =20 -#define CHAN_RANK_MAX CHAN_RANK_MAX_ON_HSX +#define CHAN_RANK_MAX CHAN_RANK_MAX_ON_GNR #define DIMM_IDX_MAX DIMM_IDX_MAX_ON_HSX #define DIMM_NUMS_MAX (CHAN_RANK_MAX * DIMM_IDX_MAX) =20 @@ -125,6 +127,9 @@ static int update_thresholds(struct peci_dimmtemp *priv= , int dimm_no) if (!peci_sensor_need_update(&priv->dimm[dimm_no].thresholds.state)) return 0; =20 + if (!priv->gen_info->read_thresholds) + return -EOPNOTSUPP; + ret =3D priv->gen_info->read_thresholds(priv, dimm_order, chan_rank, &dat= a); if (ret) return ret; @@ -198,10 +203,18 @@ static umode_t dimmtemp_is_visible(const void *data, = enum hwmon_sensor_types typ { const struct peci_dimmtemp *priv =3D data; =20 - if (test_bit(channel, priv->dimm_mask)) - return 0444; + if (!test_bit(channel, priv->dimm_mask)) + return 0; =20 - return 0; + /* + * Some platforms do not provide the DIMM temperature thresholds over + * PECI - do not expose the corresponding attributes there. + */ + if ((attr =3D=3D hwmon_temp_max || attr =3D=3D hwmon_temp_crit) && + !priv->gen_info->read_thresholds) + return 0; + + return 0444; } =20 static const struct hwmon_ops peci_dimmtemp_ops =3D { @@ -626,6 +639,17 @@ static const struct dimm_info dimm_emr =3D { .read_thresholds =3D &read_thresholds_emr, }; =20 +static const struct dimm_info dimm_gnr =3D { + .chan_rank_max =3D CHAN_RANK_MAX_ON_GNR, + .dimm_idx_max =3D DIMM_IDX_MAX_ON_GNR, + .min_peci_revision =3D 0x40, + /* + * Reading DIMM_TEMP_MAX/DIMM_TEMP_CRIT over PECI is answered with + * completion code 0x90 (invalid request) on Granite Rapids, so the + * threshold attributes are not exposed on this platform. + */ +}; + static const struct auxiliary_device_id peci_dimmtemp_ids[] =3D { { .name =3D "peci_cpu.dimmtemp.hsx", @@ -659,6 +683,10 @@ static const struct auxiliary_device_id peci_dimmtemp_= ids[] =3D { .name =3D "peci_cpu.dimmtemp.emr", .driver_data =3D (kernel_ulong_t)&dimm_emr, }, + { + .name =3D "peci_cpu.dimmtemp.gnr", + .driver_data =3D (kernel_ulong_t)&dimm_gnr, + }, { } }; MODULE_DEVICE_TABLE(auxiliary, peci_dimmtemp_ids); --=20 2.25.1