From patchwork Wed Feb 5 09:49:54 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Peng Fan (OSS)" X-Patchwork-Id: 13960759 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id 6E62EC02192 for ; Wed, 5 Feb 2025 09:58:02 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender:List-Subscribe:List-Help :List-Post:List-Archive:List-Unsubscribe:List-Id:MIME-Version:Cc:To: In-Reply-To:References:Message-Id:Content-Transfer-Encoding:Content-Type: Subject:Date:From:Reply-To:Content-ID:Content-Description:Resent-Date: Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:List-Owner; bh=vZ7ABMH2IHcV0+Ndy6UOvfqlEln4Y6asVXxKsblBmqw=; b=mS/N0x2/yFtCz+vj12W8IA7uU/ hkB+zeKEVrqJQus6j5hILeKIn4Go0jN3qOQnkYVdNVEYOeXxo591E9Czb7sxp30IUk0+7wM8NbYqK fEDunU6yQduwmrkcEgjmqGtILoAuqxRHkWjVVrknxnW42+OaDU6ezkb1V7qYWEpZisMV6rUfDejP6 T6rxTdNie9q2nWFKFK7hISMGmzATQiIKyRA5w0Y91XKEzkHmeszFifNz17Aodh9UH3x7bBUXRa24I hP7cm1kAIGcMZAVosZv1JLyQoOSWfzL32QgycF5X9wcMkGYzu+lHUHC+9aIw73mQVDabK6x0jB3sQ SIzA6FuA==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.98 #2 (Red Hat Linux)) id 1tfcAJ-00000002mmg-25cG; Wed, 05 Feb 2025 09:57:51 +0000 Received: from mail-francecentralazlp170130007.outbound.protection.outlook.com ([2a01:111:f403:c20a::7] helo=PA4PR04CU001.outbound.protection.outlook.com) by bombadil.infradead.org with esmtps (Exim 4.98 #2 (Red Hat Linux)) id 1tfc3s-00000002lC1-2Ymg for linux-arm-kernel@lists.infradead.org; Wed, 05 Feb 2025 09:51:13 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=a1Kuk8DBxxqA0Pc1ezhn/9b4Uo2lau9LdDJzB2ymmqnUccOBfosWjFjrrhahmSe/a1QJh6IY50v5GrbWjFOeA21yivWfr+eYjqjsQXE+kQOwY9xTDmtTFQd2r8Pup0+jm5F7Ex/G/yy/Wj6gkXdwdYfL3bbnBLd65qK+ytOaogwaAW1IJQpEgYZ6cr6jamhwdATmTGoBCTfA4QzjnlDZRahQTlcESKmwsz35akQZA7IZnkQ1p4V+zJMDQEC7TBRriN4NlAKMwOi53XI2+rjatrVtZynNwDFHpwoCllUQhhw8miBbo3fEM81SX3OAeQQWftI3xgh3pihkLFuT3p5K5g== 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=vZ7ABMH2IHcV0+Ndy6UOvfqlEln4Y6asVXxKsblBmqw=; b=OsnPIjtkt5J2o04pbQZZfChz06Xf38xGeF4Rw/W2VEC0jbXF6pwP66vsQ9PlpE6QYxhmcbOdhcqvm0BoAYMgETB4DYap9gcKkk/S2PxukodYB8ON3fRhk+PXZWyxARZXZA2y7yEBy1rlAG7FhGafR2E8ANcHDQCi5EQtO9soi+QClwH9I3NOe+731XIcvaAcJSphyReVPaa64wcAhLcJdJk6BJPyyUdLZisP1+5I4CjyItQnAG1XtdKka2uQvWi5y8hMnF7QrociLRQcgje5goNSNTE0vC6OypjYUSkKj3VYc+UiE0YjM8JgeoFXqkb8aS3bS7hgthQkwrzlLXHuCw== 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=vZ7ABMH2IHcV0+Ndy6UOvfqlEln4Y6asVXxKsblBmqw=; b=SQDvZOD5wN8PiLYToTTsvsZPY6xv6Z6rx8zww5J4heB6eCm8F1EHQ2hoiKGh+ZijET+MwHV295WQn1Ll3eWGF7i1RS5uPyFL/rO2roobNGL04BHy/z730OBMgAfBV2GqZwiLnCkv/hYUlvZQrSQItFtMoN5DkgbyD91I7tGs3yPwZWzQC8FVgXPqUZtFg+qW6f3Aj3W12Rk9VjBTswcZGYwfyG0orBvD8LzK/zhp0gpAThPGobtxShHgqo70dUAgrmM2X2wPrIAkbllC3W6vEQbcKopaNxX03GsMDOOt61fKleKdSYrLpjxI+Dow0X0v0jauxR55qIb5yigAeiADcQ== 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 AM9PR04MB8244.eurprd04.prod.outlook.com (2603:10a6:20b:3e0::24) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8422.10; Wed, 5 Feb 2025 09:51:08 +0000 Received: from PAXPR04MB8459.eurprd04.prod.outlook.com ([fe80::165a:30a2:5835:9630]) by PAXPR04MB8459.eurprd04.prod.outlook.com ([fe80::165a:30a2:5835:9630%3]) with mapi id 15.20.8398.025; Wed, 5 Feb 2025 09:51:08 +0000 From: "Peng Fan (OSS)" Date: Wed, 05 Feb 2025 17:49:54 +0800 Subject: [PATCH NOT APPLY v2 4/4] clk: scmi: Support spread spectrum Message-Id: <20250205-clk-ssc-v2-4-fa73083caa92@nxp.com> References: <20250205-clk-ssc-v2-0-fa73083caa92@nxp.com> In-Reply-To: <20250205-clk-ssc-v2-0-fa73083caa92@nxp.com> To: Michael Turquette , Stephen Boyd , Russell King , Sudeep Holla , Cristian Marussi , Abel Vesa Cc: linux-clk@vger.kernel.org, linux-kernel@vger.kernel.org, arm-scmi@vger.kernel.org, linux-arm-kernel@lists.infradead.org, Rob Herring , Krzysztof Kozlowski , Dario Binacchi , Shawn Guo , Sascha Hauer , Pengutronix Kernel Team , Fabio Estevam , imx@lists.linux.dev, Peng Fan X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=ed25519-sha256; t=1738749007; l=3821; i=peng.fan@nxp.com; s=20230812; h=from:subject:message-id; bh=B9bkg4LSg3rabVuXSAhnz4jgp6FzySdE8U8t9y/s84w=; b=JiIpKoY3It1u1s5pTXVSdzCslISD29ZwN25JniPJkhwdy5LP8VA6afU5GELgEtJTbjycn+2mc pKpHAAMs+N/DcnnQHDhPTUiDjRxxKjaSmb4thjH6OWBgqGmJBPiG97u X-Developer-Key: i=peng.fan@nxp.com; a=ed25519; pk=I4sJg7atIT1g63H7bb5lDRGR2gJW14RKDD0wFL8TT1g= X-ClientProxiedBy: SI2PR02CA0037.apcprd02.prod.outlook.com (2603:1096:4:196::8) To PAXPR04MB8459.eurprd04.prod.outlook.com (2603:10a6:102:1da::15) MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: PAXPR04MB8459:EE_|AM9PR04MB8244:EE_ X-MS-Office365-Filtering-Correlation-Id: 35e3e5b2-9e26-4bf6-3609-08dd45ca9da1 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|366016|1800799024|7416014|376014|52116014|38350700014; X-Microsoft-Antispam-Message-Info: =?utf-8?q?95zC0zJHxe8GopDzj6fOVVmH6z7BiCU?= =?utf-8?q?X+HuVFhjuHXHkTRfBgpeO02c/7uNW4D/zQP92sM9gRfaN7JqmKgO7ypb4OYqJ0vbA?= =?utf-8?q?fazSiQcswtucwlVYycIftd+bX32mZdJbGcKgd5CzIEwd/xA/qZUDYD8+QAI2fKQqQ?= =?utf-8?q?FrS4VR4sVhwnDI74ejlYSoum3kpPWFbm1a876x151+KjBKya7gLAo5IsmEGf9YzRX?= =?utf-8?q?rvHK4+7G+eyxchtI8oKF5Z61n8LiS1kLB1fypWApk7o4hCOktwyJMyGa2SnZXvZV4?= =?utf-8?q?ce8Cy9BBYIG1z6KSXJU9dmIQLQWdnnYfgc1mx01YANN2QrLs0xYw3JEY1Rblb2mEo?= =?utf-8?q?9XchWfPTl68Hbfqg9QZbfxDNdmJCWm5B9qsYon0H3A8wB8bFzATiVTqo/efrBv5xf?= =?utf-8?q?/FJQ2BLzLBetu/53XxMKjLLpfEIVbvILA0mFK5Dd7crPpZa9xOLbwQDqeKWt074U7?= =?utf-8?q?7FFohkmzkUDOhlgoWmpIeAQtTOpJO+Xf0mC/ILtL85Y0tubbdK1XAwon09tzivlGi?= =?utf-8?q?rVlOZa8riE4s6VCAtgP2ow4cRt5B+o9pfaic3GFMM8TaIlmFuYhGWSRWfE2aewkEL?= =?utf-8?q?5XsmzImeUMinrgve1EAKRHTzdrv1A0kIWG9Ujqk1zGpY4nR6Y/hM4yalEay2vQrOT?= =?utf-8?q?aTzYEi5+4eUJICd5rSFxzVd2xTKwYMPTCyGBWcLLqXha3sLbW58i/gTq4Oa1tT1xp?= =?utf-8?q?z4/RwLmniEoQzBvK0u9iEMht4rO/q4eavfpThA1oySqKJ2HuJqW3XLciCTwA7VkSB?= =?utf-8?q?q6PPqj53h2uiYQyTiInoZadzA+a8qEvdTZqunQDKrx/22Tv85eq2iYcsKf/SS/fPG?= =?utf-8?q?ZYxgZc+NEaiVPZyeuNjt3AA671kSPtfVhkC65IH9qa2bhX+vrQfSXfmi5mFHspbnA?= =?utf-8?q?KUbsufRUi6Bl7oJyonvtq8TgMLSG7QSMYMwm9d9CG26BN5F9n0c/GxZbs1eX3tOK3?= =?utf-8?q?6mcDoFoiKBa4HRmtge/sl467SrN1Mb8Ms7p2MdrSVwRbVmDlQdsN7OPtYR27iXo89?= =?utf-8?q?GLS37++GF9tAgO/wRsGUrZAjxgwUdpxApb9XvF5BCSorzkzyZBQ2DRxHXFadCbXVN?= =?utf-8?q?SW6nS3VHiFusfAnFCVmiTlgk7/5+nbuNNnPwWrgVeAdRqL9EOjAJ4MLahJuqs+cEA?= =?utf-8?q?NuXthcJjS+iUTffekU+ZfCtJOvc09o8Y/WR8EF1pO0K7LNHp8qng4Om4iybI6OghX?= =?utf-8?q?Tp6A5VA4B1uIvj2qFCM5XMlt+ADwtpwU/JYkmS+GzjMRbGJ+hwMw9woQLYdHt6J+g?= =?utf-8?q?BUaiLOuxt2AaRmYmQflQOaWcjNv8PeotBEOB/2Oj/aytmd/8O5tgZY0Rq1D7PZxLt?= =?utf-8?q?z2RFjQgY3uUZdnNMv8gC+dfo+f/Bn6fiDey1HXW6bxZ0RGgeV008dx3VJdMAVOmTt?= =?utf-8?q?CPY7S0dTL+w?= 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)(366016)(1800799024)(7416014)(376014)(52116014)(38350700014);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?q?gfmcfpPy/SwSf0FwEl8gX6XNT7ov?= =?utf-8?q?Im3EK4HxsiI8TbG3HrRV6EWbOiRrG/NCzoGjeMfBQDf+6t6hxVMYWYs7XqmFbJwXP?= =?utf-8?q?zxfbw+KPel8+lDoNMruoomAISZNX3/tJxDng6xmprZJAgxT2e3joMz8ZTVWbSRWhR?= =?utf-8?q?8OSat08LM6rzOStXF8Ej5FsTzkLp5megNu033T+2yvfJGzvwIl1L2kwL/kpH6PJVr?= =?utf-8?q?uyPfhACtZ+lOnvxNiT1/gSXnDt5NXS1X7mf/1JDUWiXGzeae/rNUqV3jBImSgMq1R?= =?utf-8?q?pQKHl1xx8vnwM9RtHv8WrYLpbIFPpxR3qJICw4hQdvr+2Dmdjw7G5P/8O56G1BBFt?= =?utf-8?q?2D9CdWoKVOuTJx7ZOY8kyA79RTF598FmSrxmxcHPAdDZq/mAECSIYtPcW41k9eGUA?= =?utf-8?q?lk+x7+URnh9Ac/3Qex7MKZrHYdX3q91XCUT6nNqc9pmc7q03t7j+q8HjuDu7XpN3o?= =?utf-8?q?DevFFtLJLz1AXuMdmKLO83OlDek/KuAqDqBJ+wD2jBpAdrk2GYeM0XGXH8nHXpgJJ?= =?utf-8?q?U9k3KeshN7LBuikm36JLpOsWWbKW755/KiDvsDmnxtvTTT/4klpwKYEp3BEiucMAu?= =?utf-8?q?iswzSR6Hx2DDs/QxQT7yF0/PtPzO2HzhDsS69vPETx2TriCkBbACfKRo3mY2Ur2sf?= =?utf-8?q?RIwz7A+yu1HxqRMpxmask8MzahZhoF2ERs95dSO3/iHaPLOw20NFl/8pnvktNH7Qf?= =?utf-8?q?DUFNqKlDPPRiCQvycJmxbUwybHTTwy6eq1Wbw6XHg+31wc1E/840cA9hyVdW1L/RJ?= =?utf-8?q?4lVf0uSUIc7vaOtVc8G7vrK8bk5T6uAQdqRpAET0HYF3Tou+HZKNQDo5hEHocPLMN?= =?utf-8?q?ovplKvqu0Q1IXNCYG7Tg3bEDLOusHwsWQ3/y50QC7WZ0Uv8CIAU+WZcwBxaDL7nfY?= =?utf-8?q?OuiJ+lGM49H6UxPEMSzc9TGecM4/AP3UliS6Pb5a0fxqAVt/5OSbnAcZbwICB0t6R?= =?utf-8?q?jBhlHbOwsbHtTamLb5SapNtHacw/N8cO+CxpbeJZdx1z7tLiVaaKA2IJ915EjOo9F?= =?utf-8?q?lC6sLo1OXOGdBU3IjJTtJcHRc2O0wQeeq1quPY/NyQJ5GwFexZeHffhynPfkv07En?= =?utf-8?q?Lr9Zwh/moTsC/DO5KsiP+cncB5i370pKjIoIqO/2yoLClrkgVOiAPID9ckVJJxU+0?= =?utf-8?q?Kc9HEKh34h+V4BDV+9hzEz5UK4PufTVHEoYv6PIeKzJ31x3hj7pObTASvtobzKVEO?= =?utf-8?q?ZQhLw6LXmhgc9hHYtW9IbhFUUGS7FDyncUxdafFE4KpAZus/wCSqgZIKM/ivGYR54?= =?utf-8?q?Vo71zwI3usZ9ihyRRjTfx8PISg+Svq+GSOjTiltf4QpePKBXK7gITOQShxTsDf2AN?= =?utf-8?q?CO5wZtgLkfoVltVnNXTA7dz6+yVj3tH9R+xBLfxv9XJN9ea0dFEyt4n9esuAQKctd?= =?utf-8?q?4e6cKKZNL0oKVk+MFNx8eb0pRIAI0CyfzWxfbGDt7tiy/SQLThHRnfA85iOnmDKuA?= =?utf-8?q?3T1cde+vmgIhDFP50BV4Gl6RrwMzt1WQTOUe4K7OrknH5N1/Wfvk+UO1zx6AWF0p3?= =?utf-8?q?mhD/6fFqTEDF?= X-OriginatorOrg: oss.nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: 35e3e5b2-9e26-4bf6-3609-08dd45ca9da1 X-MS-Exchange-CrossTenant-AuthSource: PAXPR04MB8459.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 05 Feb 2025 09:51:08.7993 (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: RhqjgRQec0DdnTcoAzUiKiYIbAOtwn5+NaJHLGzNyGSeIZjO9dxgCNgEkQMfaV9nNMPYRWqp59GWD6BNTKfNFw== X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM9PR04MB8244 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20250205_015112_912055_A6C26DF4 X-CRM114-Status: GOOD ( 14.30 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org From: Peng Fan Support Spread Spectrum with adding scmi_clk_set_spread_spectrum Signed-off-by: Peng Fan --- drivers/clk/clk-scmi.c | 47 +++++++++++++++++++++++++++++++++++++++++-- include/linux/scmi_protocol.h | 6 ++++++ 2 files changed, 51 insertions(+), 2 deletions(-) diff --git a/drivers/clk/clk-scmi.c b/drivers/clk/clk-scmi.c index 15510c2ff21c0335f5cb30677343bd4ef59c0738..56b9d0166b0170807c1a83fff391033fecee2159 100644 --- a/drivers/clk/clk-scmi.c +++ b/drivers/clk/clk-scmi.c @@ -23,6 +23,7 @@ enum scmi_clk_feats { SCMI_CLK_RATE_CTRL_SUPPORTED, SCMI_CLK_PARENT_CTRL_SUPPORTED, SCMI_CLK_DUTY_CYCLE_SUPPORTED, + SCMI_CLK_SSC_SUPPORTED, SCMI_CLK_FEATS_COUNT }; @@ -98,6 +99,36 @@ static int scmi_clk_set_parent(struct clk_hw *hw, u8 parent_index) return scmi_proto_clk_ops->parent_set(clk->ph, clk->id, parent_index); } +static int scmi_clk_set_spread_spectrum(struct clk_hw *hw, + struct clk_spread_spectrum *clk_ss) +{ + struct scmi_clk *clk = to_scmi_clk(hw); + int ret; + u32 val; + + /* + * extConfigValue[7:0] - spread percentage (%) + * extConfigValue[23:8] - Modulation Frequency (KHz) + * extConfigValue[24] - Enable/Disable + * extConfigValue[31:25] - Modulation method + */ + val = FIELD_PREP(SCMI_CLOCK_EXT_SS_PERCENTAGE_MASK, clk_ss->spreaddepth); + val |= FIELD_PREP(SCMI_CLOCK_EXT_SS_MOD_FREQ_MASK, clk_ss->modfreq); + val |= FIELD_PREP(SCMI_CLOCK_EXT_SS_METHOD_MASK, clk_ss->method); + if (clk_ss->enable) + val |= SCMI_CLOCK_EXT_SS_ENABLE_MASK; + ret = scmi_proto_clk_ops->config_oem_set(clk->ph, clk->id, + SCMI_CLOCK_CFG_SSC, + val, false); + if (ret) + dev_warn(clk->dev, + "Failed to set spread spectrum(%u,%u,%u) for clock ID %d\n", + clk_ss->modfreq, clk_ss->spreaddepth, clk_ss->method, + clk->id); + + return ret; +} + static u8 scmi_clk_get_parent(struct clk_hw *hw) { struct scmi_clk *clk = to_scmi_clk(hw); @@ -316,9 +347,17 @@ scmi_clk_ops_alloc(struct device *dev, unsigned long feats_key) ops->set_duty_cycle = scmi_clk_set_duty_cycle; } + if (feats_key & BIT(SCMI_CLK_SSC_SUPPORTED)) + ops->set_spread_spectrum = scmi_clk_set_spread_spectrum; + return ops; } +static const char * const scmi_clk_imxlist[] = { + "fsl,imx95", + NULL +}; + /** * scmi_clk_ops_select() - Select a proper set of clock operations * @sclk: A reference to an SCMI clock descriptor @@ -370,8 +409,12 @@ scmi_clk_ops_select(struct scmi_clk *sclk, bool atomic_capable, if (!ci->parent_ctrl_forbidden) feats_key |= BIT(SCMI_CLK_PARENT_CTRL_SUPPORTED); - if (ci->extended_config) - feats_key |= BIT(SCMI_CLK_DUTY_CYCLE_SUPPORTED); + if (ci->extended_config) { + if (of_machine_compatible_match(scmi_clk_imxlist)) + feats_key |= BIT(SCMI_CLK_SSC_SUPPORTED); + else + feats_key |= BIT(SCMI_CLK_DUTY_CYCLE_SUPPORTED); + } if (WARN_ON(feats_key >= db_size)) return NULL; diff --git a/include/linux/scmi_protocol.h b/include/linux/scmi_protocol.h index 688466a0e816247d24704f7ba109667a14226b67..a02a6d55568898ad0b5deed954e432415936dde2 100644 --- a/include/linux/scmi_protocol.h +++ b/include/linux/scmi_protocol.h @@ -79,10 +79,16 @@ struct scmi_protocol_handle; enum scmi_clock_oem_config { SCMI_CLOCK_CFG_DUTY_CYCLE = 0x1, SCMI_CLOCK_CFG_PHASE, + SCMI_CLOCK_CFG_SSC, SCMI_CLOCK_CFG_OEM_START = 0x80, SCMI_CLOCK_CFG_OEM_END = 0xFF, }; +#define SCMI_CLOCK_EXT_SS_PERCENTAGE_MASK GENMASK(7, 0) +#define SCMI_CLOCK_EXT_SS_MOD_FREQ_MASK GENMASK(23, 8) +#define SCMI_CLOCK_EXT_SS_ENABLE_MASK BIT(24) +#define SCMI_CLOCK_EXT_SS_METHOD_MASK GENMASK(31, 25) + /** * struct scmi_clk_proto_ops - represents the various operations provided * by SCMI Clock Protocol