From nobody Thu Apr 9 18:56:51 2026 Received: from DUZPR83CU001.outbound.protection.outlook.com (mail-northeuropeazon11012004.outbound.protection.outlook.com [52.101.66.4]) (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 4358B370D71; Fri, 6 Mar 2026 06:18:54 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.66.4 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1772777935; cv=fail; b=QxCGB8s3OitbyjbXv2VjLtBtFf+J0je8TUKcfIoaqCiMd8ojg6GkuBvepxnEc7fvjJ3mP8hHfm+E26Mnj2561VF0dXn9CZ5lOo+aVIr3SOfEeVxmZE3yC/zr4qxg+jfhQOSfQOTPWWFwzb8vYh7+A0+cvVa4gS/a2LJC2c+VPDs= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1772777935; c=relaxed/simple; bh=VsOmFUaUpT2Z+JO9cJnEgfpdAjtbWwDCk1mnj53zXeY=; h=From:Date:Subject:Content-Type:Message-Id:References:In-Reply-To: To:Cc:MIME-Version; b=jW9ci4AecuP/fCKQEl7FPGoIJ2RnsFid7Q7HIBjcUHDU3N3MqUpAtU4IEv/xZ3xZW0vH1CtE+nZPO9tynPxoboNm+pcNz+ZK/rQaeqFO52enDjd+An0jNTRZIYlaW0T6/myDdGZB+ARSH/N7n9Zz8Hk33g/SZaYO9WcN0o/TmZk= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=oss.nxp.com; spf=pass smtp.mailfrom=oss.nxp.com; dkim=pass (2048-bit key) header.d=NXP1.onmicrosoft.com header.i=@NXP1.onmicrosoft.com header.b=K44TNld3; arc=fail smtp.client-ip=52.101.66.4 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=oss.nxp.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=oss.nxp.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=NXP1.onmicrosoft.com header.i=@NXP1.onmicrosoft.com header.b="K44TNld3" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=GiNKLQlahHOTBPffbxRddH5oHckUSvUHyFv8AEXgY4rdMzr9pi4jiW70R7uU8XKZ8huq9GolI8IkhYW6+l3inRVFwePktHifwf+KBSsnVNcBCiXYt6zBHA7r1nCQrZCwTbiah5DhuTE9HWbeKbmU3ftcAaRn8xvoR7tXWJN3NOcv6lt3uwZyyfrXTuyBK46uXumUOge+KBd/zlx+1CMwkO6BIZUCevnY80G4x6txLfROaW8wtAM+V2//CH3c5Ofsq+NqS7lA0H7adQewX5tR0jZEUIR+gAChhSL8R0K+khmmQWYoVL5TiFqyH5oSnEZeZQGDZURmpPTYIsqPN9OA0Q== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; 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=BoLXeNNT3jxSoR2gKlJVneUsi/i9x7NwkWBnFCvyypc=; b=S13ga8FyHVvDSixiUYx/YmwMrct1eIa+FhACd4CZSWkFaKkA3s4IjURc8dgYAmPPW01Mj3INybsPj3Enb1huHlCHGBB9jZZJeHMhjndTZUbqF8LKraxGmw7j95l/ipmpwK7Bs9R+LHcSBtwQeYx9r17mH/0gmwZMKjwf3FYSlNt/jVdtnEvRSFE/ug/XGBCHpLQJzeNuRGHsoBRhWLGbM1BGZsyMfGdKcKY9yswslqSb891eia5Gt3NQfGXVTV2slF9PK+dKJQ7bDAW4BtDm3CcuLGxT40EV7K9kdDW6p6cDgCjI519Y5bmeHItlyIlbhEGRBEfDHNBi3vqfjGgjNw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=oss.nxp.com; dmarc=pass action=none header.from=oss.nxp.com; dkim=pass header.d=oss.nxp.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=NXP1.onmicrosoft.com; s=selector1-NXP1-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=BoLXeNNT3jxSoR2gKlJVneUsi/i9x7NwkWBnFCvyypc=; b=K44TNld3qHzleO1Gx0ugbUR8Qz7axWgRFEdYpA7FXQUwGWoqHpmdLjHL7Xwcee0nOC0JqCSvlFdTVfLSqrjttn4tkl0VhrtcQyGBV7rjfOWaPfICVHIBV/QBNdsokqvJzyssBuFZKvXRPJVMsO6dRxorAHqcy2qunsYvv6KE29wBDjSrGmd3Ef69kjvvg5cCHuR8AOpwt5/IEOhb2faUssWxE58uevxBqqOf/m1u2y2IqTMB1pg0BtM5XFotRTjzjfXeXr+yY0EaDXIFTHZxw2H+Vr+O7SkU2VqfajvKXxCvclRoCkAIlviXB5yWH722W9o7DDhUjZxRNOw7aEiO+A== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=oss.nxp.com; Received: from PAXPR04MB8459.eurprd04.prod.outlook.com (2603:10a6:102:1da::15) by AS8PR04MB8771.eurprd04.prod.outlook.com (2603:10a6:20b:42c::7) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9678.19; Fri, 6 Mar 2026 06:18:51 +0000 Received: from PAXPR04MB8459.eurprd04.prod.outlook.com ([fe80::4972:7eaa:b9f6:7b5e]) by PAXPR04MB8459.eurprd04.prod.outlook.com ([fe80::4972:7eaa:b9f6:7b5e%7]) with mapi id 15.20.9678.017; Fri, 6 Mar 2026 06:18:51 +0000 From: "Peng Fan (OSS)" Date: Fri, 06 Mar 2026 14:20:12 +0800 Subject: [PATCH RFC 1/2] dt-bindings: clock: Add SCMI clock rounding mode declarations Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260306-scmi-clk-round-v1-1-61e2a5df9051@nxp.com> References: <20260306-scmi-clk-round-v1-0-61e2a5df9051@nxp.com> In-Reply-To: <20260306-scmi-clk-round-v1-0-61e2a5df9051@nxp.com> To: Michael Turquette , Stephen Boyd , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Sudeep Holla , Cristian Marussi Cc: linux-kernel@vger.kernel.org, linux-clk@vger.kernel.org, devicetree@vger.kernel.org, arm-scmi@vger.kernel.org, linux-arm-kernel@lists.infradead.org, Peng Fan X-Mailer: b4 0.14.2 X-ClientProxiedBy: SI1PR02CA0045.apcprd02.prod.outlook.com (2603:1096:4:1f6::16) To PAXPR04MB8459.eurprd04.prod.outlook.com (2603:10a6:102:1da::15) Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: PAXPR04MB8459:EE_|AS8PR04MB8771:EE_ X-MS-Office365-Filtering-Correlation-Id: 4bd8aa27-e7fe-4129-6a7c-08de7b483c2e X-MS-Exchange-SharedMailbox-RoutingAgent-Processed: True X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|376014|7416014|52116014|19092799006|1800799024|366016|38350700014; X-Microsoft-Antispam-Message-Info: l05BVAZjuASRjKldJ1if5RG7qpDM8sRrG+14fqHgaXSW3sTRV+MidAspF7dpNRacqBZA6OpvdQPgyvdDF9hB5JYPQm3vS/H0U2mPMlfkYA3qS9zWSXq3droF+zWtykBqbXB3SD+MEPesz1yN5TXSjhq8zGrPkx/39JPdzpv5FT0zc8HrAZq5fA/mw9Bc95n4U+mdo5a//gvVk+MHMT6PQ9+fpMOuU40iGoQnuBLBT2udzPCml+5Wh2Ijy0oYYfXOEBqxp/LOQ1rKLuwX7YDSoRZcUXV/X4jgcK1rbPBd9TUtcZyvnO5jL/EcY+GtbPDLszgj1KiYg75EBzkbsrMiZ8AJA1rafiQQJWemQ54OHyF/jPusgwQcT8zRuLWoPl/vA32cklSsqj61PQmjsCRaPEfgJNvv9uJPz+LRX81zpz6flsyCVWyDYrzML3+pgVE99m0U7aBRD2R9t/hhYwTN1n8qMRinPiX3BO3gRyR6IJ5Dovt1dV0DMiDv20QmVujPs1iPvhgP++Sy6vcAbVSegv02mvslIstURdsnBUFxnPdNLvFkS9H+Bvm6JZvjeT0o88QxRaj8JpXYYh05xCMp4R/HIH0j5dV7D25nv6lt67f346IjJfrjzMun07nQKL37p5C8DDESFioKQpcfAlYmH3g8qmUQ/WuwNmdqPs3YhQDaV3JviP1wRKH7qxjZe0kSqRzCNCwXYCmX7NSklzYfqxL/rR51cVAugzkKEdkImhy9WVz6WKDgbCFEwmq6WQoxms3Sa2C5vTmqHh4O88T6njqwPuF+AoPkinFiMNNNo5o= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:PAXPR04MB8459.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(7416014)(52116014)(19092799006)(1800799024)(366016)(38350700014);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?TEM2L0EvbmVpRzZlcFpjVlM0Vy9scTZqWFY4bWRKQUk1Q3dwQTllLytqMEla?= =?utf-8?B?UXBBaGdMMjhPOEI3YnZ4bWNqZ3YweW5XR0FlZ29IV0E1SFROTTUzS3dIVmZV?= =?utf-8?B?TTFqclh1Z2VWM2JyZE92MHY5UjMwUENac1NPVFVQa1dnMkRYaFNuOVptRnA2?= =?utf-8?B?Y005dCt4N2xzbjlyekNPTW5ZTlJma3FKbEVyVFF3NlkvMFA1WkJBaUR4NzM0?= =?utf-8?B?QjdFZnF0OWhCT1gvdGl0MWYrdi9CMWdla09lWkgrUklVR2R4c3dkNzhWVjdi?= =?utf-8?B?NFhZUmpjeFlHWE9sU2RxcjNSQVdCUkQyUFRjOHdyTzBDQzVueVF5L093RmQ1?= =?utf-8?B?VloxS3NRcmVHZ1A2WXN3YWdMeGZld1R3NGIvdHkxQjZxU3l6SW1lQnhldHR2?= =?utf-8?B?OUdzVUlyeGlkSnhONlVQVXpOQ2FVNkd2V0J4NlRkUno0Z1dPNkRoV0F5ZUF2?= =?utf-8?B?dlM1Nko3U1UyUEp1SDlZR1dNekhwTlV1WUtJa0NFbkdIQU4wVWFwdnZRZE1a?= =?utf-8?B?OFVjSWRBbGo4V1ZjbDNObmtRQ2psOUtvVTRtcmRWMys5akIwN1FJRFdHVzVz?= =?utf-8?B?aUMrc2VTTEkySzgxRGJxU05tS2ZYeURSS05kV1JkbVFCK28zZ1NqMTYwb21L?= =?utf-8?B?QXJwTEYzSGxETWdGaUs4V1BldFNMT2pDQ2ZWajlTTi9ISTlDOVNLTTdkcFF5?= =?utf-8?B?VmFYSHRhRHdsTGFMTVpWOUJYLzh6bGVsTGtqRHI1OFJpbTBqWEVGYmJHMkVE?= =?utf-8?B?bGlZWVJWdEFpM3NtMnYxaTRyaGpncnhWZVgyOWV1MXJ1NXFZZ3B1WnFtT3RR?= =?utf-8?B?cXBPSENJRnlnbTM0QXZMdTBKZ2VvejJjeGhVM21OMlVKN2ZxUktUalJQSXVE?= =?utf-8?B?SmJpWUpLbVpQTHkzM3F5K2x5YkNyN0FDNXFnelcvU2RkdUJ5VDRjQzNGdjF1?= =?utf-8?B?SlloWnNoUWFKVmVwYjBqalQwU0NIdURBblprOWdOakRtS2RnVU1Rbjg5VXZi?= =?utf-8?B?MW1jM1Y3aGx2UURyZDIvbkJ6aHpzdFBTVE5YaHVDbU42OVRiL3JUWm85UFZi?= =?utf-8?B?YUdJYmZQRGZiZ0trSVJLQmhmNnQ1ZWx5U2FHNWxiYnBSSXFiendaMTlST21U?= =?utf-8?B?MVovRk5MNVlWSS9XeFZCa2llWXRaa3RWMXl3NWdwdHBraEZrb2gzZGF5TDE5?= =?utf-8?B?V2o1cm5CZ3NXK3pRa1pTUzZhN2dDUkhWL0dFL1BOLy9VdGtLNmVlRTBzZUhI?= =?utf-8?B?bVViWFltVEdGcEZSUFljVFR1NCtwYVdhcnNzYmtUdGp2Z1NqaWpjMnowaUc2?= =?utf-8?B?ZFZTd2lBZlpjN20yQ1pkK2xVNUZ0MXBiWDJUa3hnc0l5Yi9yNVJPMThMbC9j?= =?utf-8?B?NmhDc0ZTaGkyNWJMdWs2QVBXUm4wRmZOUkdLV1cwVk81VkNLZTcwN2g1VEpN?= =?utf-8?B?UTkyOHhKUGRjMkhGR1pFeWxQWm5OalZXNDVmZlA4ZEdnRTE0V1FZMGYydUhZ?= =?utf-8?B?c0FrbnVDclMvTGNjS2hrUHlhTG1kRUNMeHNkdnYvOVNZdS83OWNvb2dLSXVD?= =?utf-8?B?T29XNXlYTVFsZHBBT291SHE1ZndmSEkrbmR4Q0IrWVJtNG41L1EzM2VvYmN5?= =?utf-8?B?ZUhQUVRscnU1RzZ6T0JmemF4Mnp2bXJMWE4yRUR6cjJSdWwwWmNCRGppaXFE?= =?utf-8?B?Myt5clBEQ3ZjTHhRR0s5YkJoWDFyaGtOMDRMbEgzZHpuUngzb3UyUVg5cG56?= =?utf-8?B?cWRYSWJRZ1B3dGo1RHZibnpXY1lieExpYWp1RG43emtqRFMvUXVEYmRldWpG?= =?utf-8?B?eTJzN0MrcTdWY2RrRkJacncwOEVxSXZ4V0lHWldSMHdGREF2cjdpRFhtWFgw?= =?utf-8?B?bnhaNU1NK1M2YjAwU1E0QVZUbzJLcjVJUCt4NUo4WE16bW82SXNSRWNTR3pG?= =?utf-8?B?ZTRJWkMxeDlqWWtuVGcvSEw4aE10QmRBTm5NQkNhR05jQU9UL3Q0OVdwUER0?= =?utf-8?B?Vm5ZU2RxMnRjQklXUjB5NERWYm5zL2NEN1dUaHYzbVE1TmRUclMxRjNpVG0y?= =?utf-8?B?dDdKWVFxNWp3Z0MrclFYdTZMUzBhcE1UOW5DdlZwZndNRkg4TTRuTnh3bC8x?= =?utf-8?B?RnhFNkI0SlZmYjRwY052V1AwVUE1WWZ5RE4rU05lQmxtQTVzdC9zVUtvVnZo?= =?utf-8?B?WFVmYnhWalY3UFlicTU5MmxKZitSdWI5ZFZiemtDdkgrL3hmNjh2eGxha1B2?= =?utf-8?B?QWhUUkh3YUFPZldua21WRXpsWDF6cUdDMklSQ0RWUFo5b2NJME1xVXViQTR0?= =?utf-8?B?WkdnRHlrOVQ5MVpidFkwcW83SU1jWnU4UFd0Tkd6T2RtL1VYK0YyQT09?= X-OriginatorOrg: oss.nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: 4bd8aa27-e7fe-4129-6a7c-08de7b483c2e X-MS-Exchange-CrossTenant-AuthSource: PAXPR04MB8459.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 06 Mar 2026 06:18:51.1839 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 686ea1d3-bc2b-4c6f-a92c-d99c5c301635 X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: zSI8rUA3ThhiReT8SvQrqA+lPD59+IGr1IwB1ACohx3ViB3N5rKWdMAsQXzgSH7B2mVtkP7fceZgV/iCFsenfA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS8PR04MB8771 From: Peng Fan The ARM System Control and Management Interface (SCMI) specification (DEN0056E) defines the CLOCK_RATE_SET command, which allows clients to specify how the platform should round the requested clock rate. Bits[3:2] define the rounding behaviour: - If Bit[3] is set, the platform autonomously selects the closest achievable rate, ignoring Bit[2]. - If Bit[3] is clear, Bit[2] selects the direction: 0 =3D round down 1 =3D round up Add dt-bindings definitions for these rounding modes so that device tree agent nodes can specify the desired rounding behaviour to the firmware. Signed-off-by: Peng Fan --- include/dt-bindings/clock/scmi.h | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/include/dt-bindings/clock/scmi.h b/include/dt-bindings/clock/s= cmi.h new file mode 100644 index 0000000000000000000000000000000000000000..bd97d5aba53d042659e8e00ed96= c6a054a2f9d98 --- /dev/null +++ b/include/dt-bindings/clock/scmi.h @@ -0,0 +1,13 @@ +/* SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause */ +/* + * Copyright 2026 NXP + */ + +#ifndef __SCMI_CLOCK_H +#define __SCMI_CLOCK_H + +#define ROUND_DOWN 0 +#define ROUND_UP 1 +#define ROUND_AUTO 2 + +#endif --=20 2.37.1 From nobody Thu Apr 9 18:56:51 2026 Received: from AM0PR02CU008.outbound.protection.outlook.com (mail-westeuropeazon11013066.outbound.protection.outlook.com [52.101.72.66]) (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 48275351C3B; Fri, 6 Mar 2026 06:18:58 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.72.66 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1772777939; cv=fail; b=ca/PacIIHN1HVvGEQuqXic/9ynwPh2/uiJIAJWKENeQbNdG9bD/ZfQeA2JJS8WlUokmHNFbwhrZc7XWSbVImmsw1HANfdbAxTdFUmtSt5bGyWOCBJM8eDpnhuy6Cf+b1vb41Ln2lArIU9cPgi1Wfj3x2z3qwo7Q2WsWPnZhJnGM= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1772777939; c=relaxed/simple; bh=xus0g/Y1oy/1L8lORlAVqSR2ehvyudtR1D61hy949rY=; h=From:Date:Subject:Content-Type:Message-Id:References:In-Reply-To: To:Cc:MIME-Version; b=sFmkTA3roUtMgsYsqrwKWr0Lebh086BUW6Z7TNUVbJUt7KVQXp+QJKWLvxZdo68Td0Ogi6KN00T1yoSLI54YEWRumUBdrTGShhVJMysC7zdaHZD5axBDlwqz4GFw5G/ipo6WNWFcEyfLLXO4LIncs2Aj05LgFvXS+izLlx8jqDg= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=oss.nxp.com; spf=pass smtp.mailfrom=oss.nxp.com; dkim=pass (2048-bit key) header.d=NXP1.onmicrosoft.com header.i=@NXP1.onmicrosoft.com header.b=kxujx3rs; arc=fail smtp.client-ip=52.101.72.66 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=oss.nxp.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=oss.nxp.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=NXP1.onmicrosoft.com header.i=@NXP1.onmicrosoft.com header.b="kxujx3rs" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=iZyTgswN1NHI27psiP6Rv3bKjanhG84wHKzIiY31e3Oi5pQF+L2ZeE9/F3Gp75Udr5s2Fw8O25u4xi50s2IyFfovIqxy7/l9M0HDeNc1g0TGBYPl3JtP1d9r+jWms0XT/6hwlCE16Oe/mUAdkX34NV7jABMvdvnLm672HuyLvPgWLqqGOlV4Kc40ILEM7B3BXKUAWS8czYNL0IWqRBoT8kXYrN6p96oPViZ3cULy97D9WOhXQ5s5Hw/z4n/U3WBL3y22BfjBRtbreM+FZikm/Co0crI1tYSEtP20oslmCP2EUArBV7KDNzuTreXZzaHQL7aT2Rjh3MPodOCXGH3kEg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; 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=g+cy5y32ATiIV01zvDxtKwM7LdknHJj8gpmPldCOyPU=; b=EYtkKGYJtBHtKFlf+GGiKeJiKH9K19FMCx4hi1etYwr1nWxU5Pca+C2eY3g3Ap27NUZuIBYEqggGKxY6a+FO3yzXpbiYrK9LUwMEOAafl6YAiotb1QMcPuZKY/6GZwgbJsgrNhKeZthXZklUn2i+ghNq9mFSMr4OIsNJShrRGsbZy87qB6CJu/03EGZF3XkzQ1DKrNQN6XPlPeSadCeEteVFq2uOXuZSlWyjurRiVv/nINc/67DZaQge/dHJbXCvJMqGTkc/ivuG28fqC968QOV84dPuOUghMsIV3B/XiEvzg/axybMwaQxq6cZf9dz6Ke/jDXpPr8kSV2cO6mz9RA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=oss.nxp.com; dmarc=pass action=none header.from=oss.nxp.com; dkim=pass header.d=oss.nxp.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=NXP1.onmicrosoft.com; s=selector1-NXP1-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=g+cy5y32ATiIV01zvDxtKwM7LdknHJj8gpmPldCOyPU=; b=kxujx3rs1gOLOGB4VYlp++sLMDoaqq3x//gxWP0AjRlg96ZxSYga0XRDr01EbfywZQ502vAMFO8WGadrMnvbQlTlMb++K65dnYbm/UCIAghl6IRS211pv9BAGV58pxnq5pXt7IPSVCcZGAgbwq0Q3hkSlefWUERvo4yjQgOK/Yz2h8rNEK49fttiY1FI1El/bFCj20wBf1ftpf5hBAlzCXidbCSiSiXCGEeM4clVxPy9f+unSzjjw1BQoxXBv486XQPxXXjzkSYVgtIPkJDw0h3GHADSWYIoEjwlenl4O0yga/5+TnYNSZaV+/QwP/pDvxigu2mZn7RE5fBKvenfOA== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=oss.nxp.com; Received: from PAXPR04MB8459.eurprd04.prod.outlook.com (2603:10a6:102:1da::15) by AS8PR04MB8771.eurprd04.prod.outlook.com (2603:10a6:20b:42c::7) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9678.19; Fri, 6 Mar 2026 06:18:55 +0000 Received: from PAXPR04MB8459.eurprd04.prod.outlook.com ([fe80::4972:7eaa:b9f6:7b5e]) by PAXPR04MB8459.eurprd04.prod.outlook.com ([fe80::4972:7eaa:b9f6:7b5e%7]) with mapi id 15.20.9678.017; Fri, 6 Mar 2026 06:18:55 +0000 From: "Peng Fan (OSS)" Date: Fri, 06 Mar 2026 14:20:13 +0800 Subject: [PATCH RFC 2/2] clk: scmi: Add support for two #clock-cells to pass rate rounding mode Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260306-scmi-clk-round-v1-2-61e2a5df9051@nxp.com> References: <20260306-scmi-clk-round-v1-0-61e2a5df9051@nxp.com> In-Reply-To: <20260306-scmi-clk-round-v1-0-61e2a5df9051@nxp.com> To: Michael Turquette , Stephen Boyd , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Sudeep Holla , Cristian Marussi Cc: linux-kernel@vger.kernel.org, linux-clk@vger.kernel.org, devicetree@vger.kernel.org, arm-scmi@vger.kernel.org, linux-arm-kernel@lists.infradead.org, Peng Fan X-Mailer: b4 0.14.2 X-ClientProxiedBy: SI1PR02CA0045.apcprd02.prod.outlook.com (2603:1096:4:1f6::16) To PAXPR04MB8459.eurprd04.prod.outlook.com (2603:10a6:102:1da::15) Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: PAXPR04MB8459:EE_|AS8PR04MB8771:EE_ X-MS-Office365-Filtering-Correlation-Id: e4809c66-252e-4503-605b-08de7b483e7e X-MS-Exchange-SharedMailbox-RoutingAgent-Processed: True X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|376014|7416014|52116014|19092799006|1800799024|366016|38350700014; X-Microsoft-Antispam-Message-Info: wUHv/Tr24KC7U/UMwEhpIJypmbUSofmzs2aSVLVtzCCXIASRJzfKWdOBE+jI8m/YI0SmdN4tvEB3/pGn1FPqKQlSCXxkNz8p6SGavY7kczVIMlyyxH6+5sJtDLKE4VvSJhnExNIJ+Nl5jcydnND7txO0Qj1/l/4SRBdTEyNRgmwnwnZWPJDcI8lgy2LrWDnRQvh4RhuV/ENPDTYZrKLJbA3EO2YwEU/SHUA6dOwmvnONw744eIs6ZbUakDfu0sEryg++ARVkedDwfALJsjqLx9L6RtcVPWqPXaf3oaX0Mcyo+EdxRl2pfCdvDFe416Ae4kJggYTktDE8DW2jUDP3m//YPoL3HlmktQ9vSfMVP2qrhc2pz/zG7TSf8VHdSbYlI9uHZ54h+Onrw8HfPzQLzOUBc3rko0uS0ZMuvviMRnGjLbw1ZCmYQxQ9s+i8H0IbFB+Ho+1Ht8VQszICRczwsBdKQkYsi8IJseOJo2vGdJRcBwsT1C+DL2KkBuaZtWrqEt2G7AX0u5zB22rJpEzZ1r6fwQzTrfHsrBcnnUpS96dEK7EBJnLi/Pl1v2k6PaesQSjzdchpSrK7fJB5xPQsgupZCs2bNYma06JimLgOQZdb7CLbFHcaKaAuP++ntUbGXgjcuFZfzgFMnzg9VrfYhf2NVXZ5d1ELqCb1Kr/+s9Gf/qaB6zfH/xql5mXilV9txXi2XSHh133U4XGdFyVpetjCUNI1QFY8UG/rDN/o+m3ql9aR3gT442FYzK6F9qIz1achSCr7flFeBogDpRdrwStAFnh4c3Ez41TaOAsbOS8= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:PAXPR04MB8459.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(7416014)(52116014)(19092799006)(1800799024)(366016)(38350700014);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?MWlHUllDR1doaGJzelB1N1Z5MHk1dzQ1dE83SnR5NkdOT21YZUdlNXp5WWlX?= =?utf-8?B?SWppM21sZnNZekFVYzlValhyOCtnTGQwcExBYk9jdzJmTzJjK2pyOTlvNmFj?= =?utf-8?B?dnIvUVhPWXB0RDY5Tm04OUJTdWlDd1FIa1VtMG5MTjQ2UjkxbHU3NVdNTE40?= =?utf-8?B?YWd2eTl0Q2lENCtUK0ZnWnhYS01OS3BvWjdGQTkyMllzRHYyZVFYcmFnRzlZ?= =?utf-8?B?N2JZckJrWnJ0Ulk3Y0Z2NGJvZ2p3UFVsS2E4VjBsNHBHRklVd25OWjViQ2tu?= =?utf-8?B?ZG1oOHlaNEI2M2RPdFFmc0YxU2hwUnQvbnFubFZHeUVzQlF4bGRhdytyYVhS?= =?utf-8?B?MVdaZlFOVVMwemlQWFNueHpWYXhvNWdxd2JCcXcrUzhMaWhzT1ZoVWxDam93?= =?utf-8?B?QWROZFFuMmF3QW11YmpEZVlRNzNnKytWWXpjdkRRWGVLakxTNzBadmlxN1Vv?= =?utf-8?B?QmRtaUtkZ2N0THJtY2Rjd3MvdnRObnk1VHgrZEhpaS9seXM3ZzYxSVFIYmx5?= =?utf-8?B?N1BZOFFSQ2JWZWdPVDRROFJFY1lyaTBOZ1Z4U3NUU1hQUjIwZnNCMVBkN2Z2?= =?utf-8?B?blVSSmlsd3YwZ3JrelVpZmpUL21VRFNCVzJQd2dEWEgxZmZERzBqNUNlRzA5?= =?utf-8?B?TDhyRjJ4VTFYV1NRVmFlLyttYUw4ZDFGOTUzVW9MeldXMnl1d3NPQlpGNlVa?= =?utf-8?B?eXpnVXdqNC85Ulg1R1NjUFM1UDV0alI3RWZwd0ZJNGxvLzRKMFZDbVJlejZo?= =?utf-8?B?S3pTM0dON2VFUDVEWmdIV0N0NjVFM0hndUU1MTdiT1ZaeDkvUnhuWWc1bzQ0?= =?utf-8?B?WFJ5M1BNVlV5aExvc0ZZK3hWVUlHRmJibmpGSGRHYUkwakp2V2U2aXBJMkRQ?= =?utf-8?B?TU1xSi8wSWF4Rko0TjNrU1FGNmxHWEJLOFcwdlliQWZVSEhaZ3dRRUFQeVFS?= =?utf-8?B?MHdkR0xsUjQxSVdZWmhOV1NNVmpWZnFiTGpEWWxjUW1zMFlnNXZXUXJ3M01j?= =?utf-8?B?V1VpbEIrNlZTNitrTXNHWjlDOEFUME1wM1BGRGZRVmtmWHVoRXdXeDVJSHpX?= =?utf-8?B?c2NTcTlZbW5iWkp6NzVzVStUYW53ZW90RGxHaVpaaTVvT2R6bUF1RUhtYzZu?= =?utf-8?B?OFBnMlRFeHlUQUprQk5maGR6UUwyL2dYTC9qMU9lUG5TSityeUJQdnRRa05j?= =?utf-8?B?YTBWTFdWY0QrWVBhMlNGR2VtWWtSeWFtdlMzaGVEdGR3bW02eTI5TzhoTG9W?= =?utf-8?B?RkQvZklzTWM0bGJTdDhvUG0yK1dua1NSZnNTcXV0N0I2N3VsYURPZWhHLzlt?= =?utf-8?B?bGhYY2czTmk1K0ZJNmptQzQrdGdaOVBhNFBDUjRnMDRIMmVra054S2JnSUg2?= =?utf-8?B?eW9XNld5c25IeTFlZWpxaTRhcFJ6TmZac2phbEZYMTdCZWxNMEtRakppeUxz?= =?utf-8?B?OTNZcFlOcGhmTENONk9vS2hEdm12L21PbXNpSVZNMW0xdHlQMGppZnBHRkh3?= =?utf-8?B?SGxzREdGME1KUU9JMHlBMmFKZUM4OFNXZGhLVGtFOTZOaWtmQzVEdWVCYlNI?= =?utf-8?B?ZVNiOE5Fb1hZUCt5VFpjakJUa09USzFUM3E1ZTlyMjlGcUFwT1BPS21aZllI?= =?utf-8?B?Yml2QUZ3QitTMlRvT211TWNFa2hZdE5vcitIcEM2NklZMDFVWXdVckhtemZG?= =?utf-8?B?USs4OFEwMTVwenRDWlZSTVExWFhnRzFEZzlVSU5ocXpuOFBVU2JYQjdkKzFx?= =?utf-8?B?SitXRWtQV3BNQnVkWS9KUXBIT1dvaHcxUDdGOVJMTE9IVUg5MUJ3bDFuWnpm?= =?utf-8?B?S01ERjE2WENicGk1K2pGZ0tRNno4YTNUSktNWDF2TGxQM0dWZjlMRGpiYU9v?= =?utf-8?B?VHdETkJYSStYRlJSZlpMUUx1c3VxS1B1bTc3VmNZS3JuRVVpYytSOW9jcXdV?= =?utf-8?B?MzZuOWxwZDJIOEVYMWdOZUsxWjBOT2NVYzgxcitnU2JYVFlkaW8vT0dEZ2g2?= =?utf-8?B?ZEFPTWRMOU5mb0oxUkx3ajgzbGNSTVBuMHA5NlNlMzdack5TcFZKemtzWTBR?= =?utf-8?B?bzNYWmw2dkhON0tRWExHRGdzTWxjUkNMaVFjZmRTL1pPa0tyZDZGNGNQYXFj?= =?utf-8?B?SFhWcDhqM2szbXdxaEUzT0VBMTUzYmsrRUVNMVdtZU1xVWQyMzNjaU1PZnJ3?= =?utf-8?B?aUtQZ2JiTUtEa3U1S0k1YllBb3FCVGpCd0lZYW1PMWFRN0JFVDY4dkhNTVJs?= =?utf-8?B?aUdDU1NPNEcvWXRxSHlWc3JsdmhGMzU2Y1p4cjlLd1kvYkdnODNNaGJFdys4?= =?utf-8?B?UzhUUGtwZDVuSGlRbW82eWFaSDZ0NmhLZGVJTkV1RWcvdUJnWXY4dz09?= X-OriginatorOrg: oss.nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: e4809c66-252e-4503-605b-08de7b483e7e X-MS-Exchange-CrossTenant-AuthSource: PAXPR04MB8459.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 06 Mar 2026 06:18:55.0691 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 686ea1d3-bc2b-4c6f-a92c-d99c5c301635 X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: f8Z4pE9+NfPSSRjZ7tqQF/G2cE0+X3Na9kGgmY1Z+Co4MGbh0ecOfMd0Oe2ou0KkutGu6bP0MwKEq6hpSmIXww== X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS8PR04MB8771 From: Peng Fan SCMI CLOCK_RATE_SET allows the caller to specify the rounding behaviour when setting a clock rate. The previously added dt-bindings header defines three modes: ROUND_DOWN / ROUND_UP / ROUND_AUTO To enable device tree clients to select a rounding mode, extend the SCMI clock provider to support "#clock-cells =3D <2>", where the second cell encodes the desired rounding mode. The default remains ROUND_DOWN for backwards compatibility with existing device trees. When two cells are used, scmi_clk_two_cells_get() extracts the rounding mode and stores it per clock. The SCMI clk driver then passes this value to the SCMI Clock protocol, which maps it to the appropriate CLOCK_SET_* flag. Existing DTs using "#clock-cells =3D <1>" are also being supported. Signed-off-by: Peng Fan --- drivers/clk/clk-scmi.c | 62 +++++++++++++++++++++++++++++++++++= ++-- drivers/firmware/arm_scmi/clock.c | 15 ++++++++-- include/linux/scmi_protocol.h | 8 ++++- 3 files changed, 79 insertions(+), 6 deletions(-) diff --git a/drivers/clk/clk-scmi.c b/drivers/clk/clk-scmi.c index 6b286ea6f1218c802d0ebb782c75a19057581c20..16547a1fa1a0f1595323b0f8975= 3b38315743150 100644 --- a/drivers/clk/clk-scmi.c +++ b/drivers/clk/clk-scmi.c @@ -5,6 +5,7 @@ * Copyright (C) 2018-2024 ARM Ltd. */ =20 +#include #include #include #include @@ -32,6 +33,8 @@ static const struct scmi_clk_proto_ops *scmi_proto_clk_op= s; =20 struct scmi_clk { u32 id; + u32 round; + bool round_set; /* policy latched once */ struct device *dev; struct clk_hw hw; const struct scmi_clock_info *info; @@ -94,8 +97,20 @@ static int scmi_clk_set_rate(struct clk_hw *hw, unsigned= long rate, unsigned long parent_rate) { struct scmi_clk *clk =3D to_scmi_clk(hw); + u32 round; + + switch (clk->round) { + case ROUND_UP: + round =3D SCMI_CLOCK_ROUND_UP; + break; + case ROUND_AUTO: + round =3D SCMI_CLOCK_ROUND_AUTO; + break; + default: + round =3D SCMI_CLOCK_ROUND_DOWN; + } =20 - return scmi_proto_clk_ops->rate_set(clk->ph, clk->id, rate); + return scmi_proto_clk_ops->rate_set(clk->ph, clk->id, round, rate); } =20 static int scmi_clk_set_parent(struct clk_hw *hw, u8 parent_index) @@ -396,6 +411,41 @@ scmi_clk_ops_select(struct scmi_clk *sclk, bool atomic= _capable, return ops; } =20 +static struct clk_hw * +scmi_clk_two_cells_get(struct of_phandle_args *clkspec, void *data) +{ + struct clk_hw_onecell_data *hw_data =3D data; + unsigned int idx =3D clkspec->args[0]; + u32 round =3D clkspec->args[1]; + struct scmi_clk *clk; + struct clk_hw *hw; + + if (idx >=3D hw_data->num) { + pr_err("%s: invalid index %u\n", __func__, idx); + return ERR_PTR(-EINVAL); + } + + if (round > ROUND_AUTO) { + pr_err("%s: invalid round method %u\n", __func__, round); + return ERR_PTR(-EINVAL); + } + + hw =3D hw_data->hws[idx]; + clk =3D to_scmi_clk(hw); + + /* per-clock policy: latch on first use, refuse conflicts */ + if (clk->round_set && clk->round !=3D round) { + pr_warn("%s: conflicting rounding mode for clk idx %u: %u !=3D %u\n", + __func__, idx, clk->round, round); + return ERR_PTR(-EINVAL); + } + + clk->round =3D round; + clk->round_set =3D true; + + return hw; +} + static int scmi_clocks_probe(struct scmi_device *sdev) { int idx, count, err; @@ -409,6 +459,7 @@ static int scmi_clocks_probe(struct scmi_device *sdev) struct scmi_protocol_handle *ph; const struct clk_ops *scmi_clk_ops_db[SCMI_MAX_CLK_OPS] =3D {}; struct scmi_clk *sclks; + u32 cells =3D 1; =20 if (!handle) return -ENODEV; @@ -456,6 +507,8 @@ static int scmi_clocks_probe(struct scmi_device *sdev) sclk->id =3D idx; sclk->ph =3D ph; sclk->dev =3D dev; + sclk->round =3D ROUND_DOWN; + sclk->round_set =3D false; =20 /* * Note that the scmi_clk_ops_db is on the stack, not global, @@ -495,8 +548,11 @@ static int scmi_clocks_probe(struct scmi_device *sdev) } } =20 - return devm_of_clk_add_hw_provider(dev, of_clk_hw_onecell_get, - clk_data); + of_property_read_u32(np, "#clock-cells", &cells); + if (cells =3D=3D 2) + return devm_of_clk_add_hw_provider(dev, scmi_clk_two_cells_get, clk_data= ); + + return devm_of_clk_add_hw_provider(dev, of_clk_hw_onecell_get, clk_data); } =20 static const struct scmi_device_id scmi_id_table[] =3D { diff --git a/drivers/firmware/arm_scmi/clock.c b/drivers/firmware/arm_scmi/= clock.c index ab36871650a1ff890c4cb7f67d3ded2622a72868..1548b6611f7f6c4ac60e740bb36= f2377568d06dd 100644 --- a/drivers/firmware/arm_scmi/clock.c +++ b/drivers/firmware/arm_scmi/clock.c @@ -570,10 +570,10 @@ scmi_clock_rate_get(const struct scmi_protocol_handle= *ph, } =20 static int scmi_clock_rate_set(const struct scmi_protocol_handle *ph, - u32 clk_id, u64 rate) + u32 clk_id, u32 round, u64 rate) { int ret; - u32 flags =3D 0; + u32 flags; struct scmi_xfer *t; struct scmi_clock_set_rate *cfg; struct clock_info *ci =3D ph->get_priv(ph); @@ -590,6 +590,17 @@ static int scmi_clock_rate_set(const struct scmi_proto= col_handle *ph, if (ret) return ret; =20 + switch (round) { + case SCMI_CLOCK_ROUND_UP: + flags =3D CLOCK_SET_ROUND_UP; + break; + case SCMI_CLOCK_ROUND_AUTO: + flags =3D CLOCK_SET_ROUND_AUTO; + break; + default: + flags =3D 0; + } + if (ci->max_async_req && atomic_inc_return(&ci->cur_async_req) < ci->max_async_req) flags |=3D CLOCK_SET_ASYNC; diff --git a/include/linux/scmi_protocol.h b/include/linux/scmi_protocol.h index aafaac1496b06a6e4f0ca32eee58a9edf7d4a70f..d0b7186177f49dea9c4b0030927= 782e6fd819ad0 100644 --- a/include/linux/scmi_protocol.h +++ b/include/linux/scmi_protocol.h @@ -83,6 +83,12 @@ enum scmi_clock_oem_config { SCMI_CLOCK_CFG_OEM_END =3D 0xFF, }; =20 +enum scmi_clock_round { + SCMI_CLOCK_ROUND_DOWN =3D 0x0, + SCMI_CLOCK_ROUND_UP =3D 0x1, + SCMI_CLOCK_ROUND_AUTO =3D 0x2, +}; + /** * struct scmi_clk_proto_ops - represents the various operations provided * by SCMI Clock Protocol @@ -107,7 +113,7 @@ struct scmi_clk_proto_ops { int (*rate_get)(const struct scmi_protocol_handle *ph, u32 clk_id, u64 *rate); int (*rate_set)(const struct scmi_protocol_handle *ph, u32 clk_id, - u64 rate); + u32 round, u64 rate); int (*enable)(const struct scmi_protocol_handle *ph, u32 clk_id, bool atomic); int (*disable)(const struct scmi_protocol_handle *ph, u32 clk_id, --=20 2.37.1