From patchwork Fri May 10 09:19:00 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Peng Fan (OSS)" X-Patchwork-Id: 13661106 Received: from EUR02-VI1-obe.outbound.protection.outlook.com (mail-vi1eur02on2088.outbound.protection.outlook.com [40.107.241.88]) (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 B0D0A16DECF for ; Fri, 10 May 2024 09:11:35 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.107.241.88 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1715332297; cv=fail; b=Y7IvCsi5WKMnlvJmjbUv0QdXsxU6RUa0pQstlTzn9F3LcAhaHdBxcKl3yV+dhkjKAEyqYanOHN3do7wVzJWPpzrUVm6we2ftd6asUxEDkf3At1hE61EMwzr0MgvhnsaLAHHyhLCe0krgkeochUcB7Dyd8DeDXuD+RBmGOLehFCU= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1715332297; c=relaxed/simple; bh=5mmWyK9WwIfkcE/cYuEGrNrZK8Et8RVYnJ0d/vH/OxM=; h=From:Date:Subject:Content-Type:Message-Id:References:In-Reply-To: To:Cc:MIME-Version; b=mKHEGgNl+aOELeuLUh3dC7XS+coTTY4E7mbAK+sQImfkW6e9KOYcSlPmoBKJ30ns9qM48M2jMGzeSAOz58OjAehXYLSXVUu5MVDBgNUh3fkuDSkTWu9M1xkB4L45sLPaMfIxgXcC1OBj6AJskChFM/eMZBdQihaWFdbH+wU7YUY= 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 (1024-bit key) header.d=NXP1.onmicrosoft.com header.i=@NXP1.onmicrosoft.com header.b=BcZW5qUh; arc=fail smtp.client-ip=40.107.241.88 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 (1024-bit key) header.d=NXP1.onmicrosoft.com header.i=@NXP1.onmicrosoft.com header.b="BcZW5qUh" ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=f+OuN3P0BBnIrff6lqiDPyWOhoRDt4/J9w+7HkFSdccCrO2F5M71HaMcWX4pVTycjddlEyQi3509XQsWavQRnDOck7d+kvyZD0bQHJd0fstbzs/uX8zpcWeKTiXhFnw9ow1/pJJJ6oV7vBgMVIjXsOSNPb2wBxHaObUGGydzbIke6EU4185dlzCUmsvuyhkseBRXNjMuq/i92cBJplGV0+RkRA6JiPefH6Mdcb+0LlXGjvlvr7qyuwY38sZ8dNNJEzUjoUlLHGmtsxthpyObMd1rCB4e1QgooyMAVsYPG2znStbGyj4DeDvQRSxN3i1l8oxlPykvPBmOxBMQ2hsOmw== 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=3G9L/mbRTXzjXiBgvg8oD625HrvNI8EifS6jYATL6qs=; b=B+hdHktKLe5xlxUZVmguc6SlaP3QuQkfifjNcFPUDMFOJiQxSNCoxoTGSHD+WnqoGT/0L4oIkFvGBEhrY2ME9fArbvg2877hJpAREMy5kGKC5Nn0Zk3u7QZNT8CddfxMpT11t252dJwNzMYt6eHWuXuh7exGIaDnGcuHV7OyVeHKB3ofz4qBStNY9/8VpAIMuLEk8pxVCzBKkiahphI+TrdmXzchKYtEDOzmxwfgCWw8Y9yyc8tKlxA3Xxc8Nph9hLZ1blG2qP+jI4z8j2OJxNwSz49csxZBe4Pr6JHlV0UgSYUHTmYC/Tc8OiA4op2NSPmq2+TlNlHPScQh8Ef8WQ== 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=selector2-NXP1-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=3G9L/mbRTXzjXiBgvg8oD625HrvNI8EifS6jYATL6qs=; b=BcZW5qUhb7WQ005+4dgsM11yLwi3VKn2EUXZacFY4MVKkUP0fpjb+MGPNebjBn/cqniBnSWIwbFyU/NE0asu6mv8mFufJkaFk95lcVk4UX243sb9V54edJ0urDbKcqPodfN9GAcA0gQqpUZuwXZQP0wWhvtPqL1N/u3sCPKC0hg= Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=oss.nxp.com; Received: from DU0PR04MB9417.eurprd04.prod.outlook.com (2603:10a6:10:358::11) by AM9PR04MB8065.eurprd04.prod.outlook.com (2603:10a6:20b:3ee::8) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7544.49; Fri, 10 May 2024 09:11:32 +0000 Received: from DU0PR04MB9417.eurprd04.prod.outlook.com ([fe80::d30b:44e7:e78e:662d]) by DU0PR04MB9417.eurprd04.prod.outlook.com ([fe80::d30b:44e7:e78e:662d%4]) with mapi id 15.20.7544.046; Fri, 10 May 2024 09:11:32 +0000 From: "Peng Fan (OSS)" Date: Fri, 10 May 2024 17:19:00 +0800 Subject: [PATCH v2 05/17] clk: imx: pll14xx: Add constraint for fvco frequency Message-Id: <20240510-imx-clk-v2-5-c998f315d29c@nxp.com> References: <20240510-imx-clk-v2-0-c998f315d29c@nxp.com> In-Reply-To: <20240510-imx-clk-v2-0-c998f315d29c@nxp.com> To: Abel Vesa , Michael Turquette , Stephen Boyd , Shawn Guo , Sascha Hauer , Pengutronix Kernel Team , Fabio Estevam , Jacky Bai , Ye Li , Dong Aisheng Cc: linux-clk@vger.kernel.org, imx@lists.linux.dev, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, Abel Vesa , Peng Fan , Shengjiu Wang , Chancel Liu X-Mailer: b4 0.12.3 X-Developer-Signature: v=1; a=ed25519-sha256; t=1715332748; l=1882; i=peng.fan@nxp.com; s=20230812; h=from:subject:message-id; bh=ITpMc0XDxQEnK8rIvUINBCDmIwwvJJ8hnlCjcXFS7+o=; b=q0d88Htu67xc34l/mjpLo3HWwtnOHtQEvXxjZvI8GYibKsmgKpbaScF+f5VOEdJ/A5pT8NXjB CXoOJpxLF5SD3lC4mQn+nEULesH1+nRmS4feTJifclE7+NjGC5lnIbr X-Developer-Key: i=peng.fan@nxp.com; a=ed25519; pk=I4sJg7atIT1g63H7bb5lDRGR2gJW14RKDD0wFL8TT1g= X-ClientProxiedBy: SI2PR02CA0008.apcprd02.prod.outlook.com (2603:1096:4:194::12) To DU0PR04MB9417.eurprd04.prod.outlook.com (2603:10a6:10:358::11) Precedence: bulk X-Mailing-List: imx@lists.linux.dev List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: DU0PR04MB9417:EE_|AM9PR04MB8065:EE_ X-MS-Office365-Filtering-Correlation-Id: f4c0d3e2-1016-48a7-5901-08dc70d12f24 X-MS-Exchange-SharedMailbox-RoutingAgent-Processed: True X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230031|52116005|366007|1800799015|376005|7416005|921011|38350700005; X-Microsoft-Antispam-Message-Info: =?utf-8?q?ihEyIm+oAwuyrfWBgPgqKemXvLFTPTo?= =?utf-8?q?C9BqygP77siB+/cSxj/J2CGyn4cEP2VI/4q1DlvFx2H6FsNc1wbHBJ31FXfe4gpy4?= =?utf-8?q?AC6cscEKFYpxfBGGo30zW4W2U1UgTy6ogUizZcA9QoDIVfsta9i3ItjyZf8XVOww8?= =?utf-8?q?oNDCsd+fWPJ04ztNxjfH8OLH/YOWbZOXI1rJP725EI0zs0dFbF8sM5Iw4Fmy9Zkw1?= =?utf-8?q?J+y9YwG82w+e8E6yid8D541EsERGV0MLrYL3XNfy3L2LFm4UHtc2JrhfKBNQYnKDt?= =?utf-8?q?DJX5+oWaPRVJomIDW5LuwYA9fFL9a6nDip4HHvquCcZTsehnOnzHY2hloMtmOmd6c?= =?utf-8?q?DvW7dThuwxr6wdAd14ErNzBB/990bcwwI61wTopo0RGJQnx5nUcggwvpikdGJ2dmc?= =?utf-8?q?k88bNuvUSFB4Bbl9jeMV8KnNhKwLSBeA1o+0qhXSvYt//89vXUWt5WbTc9jYGpUMb?= =?utf-8?q?zRKwawTk0AUHTJF0n0zkHt1OuTBq5uuauYjRFx+FPK9EyII37VqAQAwHt+sNAkhmS?= =?utf-8?q?jjnPiXu/bP0bTEAkWH1OEXxupIQzAfXnk2TBn39rEFr55MT+xOvXH4mrQysL0Hv7B?= =?utf-8?q?0MFhrO78A3JjdJkfncXGO0MrJ10okiHkyJNzahQ87tqMJePYf1vu6Aemvz+wqOZKa?= =?utf-8?q?wFVgFRSOW/PoXYspvN67hQPmcRIOKRKY0DHVMSQLCYNxquk2BXrqRjcRDy7Bj04yo?= =?utf-8?q?aQn51IxEqA5+yIRuXbsk+7ZbrZ5H+ByLe7rVym6e1OeaLTUnDpqqCxU8y6WsAGwDb?= =?utf-8?q?ixyREq+l34FhPQKVKJdJ0Ewams68Il+d+SgtdoRM8VDTwyW5FBQkRK77QrFIwY/Y0?= =?utf-8?q?a2w+u435LGyDU4sz2A/fqD4YjfveBo9ga6JXKK58ozMYqGugH5zBvwjuA7f54PUdI?= =?utf-8?q?swj0gMOBYBqzmzISJidzTnCqiBqWfIjRxlEL6eQQldY5TWAU7G+BntQz9xY1O9l2A?= =?utf-8?q?tcRjEgibXzpoe94bYxy5Filn+6FK9uHKObyHfR2Y3PgawBO04KTcdZsmLSVn8lYvY?= =?utf-8?q?L+Syk/YgwPd3rQR4oUjOakvw+tD884tMmB/bFlIGXXMusjEcqu3IpNylrPQDaLReX?= =?utf-8?q?yBN3Tkb9aaCBJ6huHp4PrUmCUQVYILBjAicUjT/ZEUdMZuTRDrV/PF64EbUBVTgkL?= =?utf-8?q?om5S8qIXwhfURa/1o3PQwKxgeN4uatmeiMaI/ysvGcK0vDYfYY99eSDWUHIf+9J9D?= =?utf-8?q?BNQpmi2KeMz8IXfiUWSr1tfGzs5tKvMt6vRX6DXzHcm1V0OGq1o4lQoEdXgeBih2D?= =?utf-8?q?ILqIdRME8nWFH67a97VgW90EJcu6io5tFoGdH+f4kfsfGIEb0tmpwPxY=3D?= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DU0PR04MB9417.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230031)(52116005)(366007)(1800799015)(376005)(7416005)(921011)(38350700005);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?q?JydUqywhT4fKexyel1DvOVINMtQu?= =?utf-8?q?JO/9tNLu4DVjsbmUe76T6kNATwliYHYbW8MFkDIx840aJtwaaCMGIs1bFcqZBBd0l?= =?utf-8?q?UubuACdCv3Ix0QzjFZKjkn/Qf9oo5tqt6MO+ezcNVlzKdeHLXssOpPVpzlAGrSZYi?= =?utf-8?q?8W5omXVLf6OewMEmGAFKhaD5o3NQX5zLa+gOzt/6thBiZTo5lYpPsNJq+Q4xlycEP?= =?utf-8?q?jkhQykH8QAWPTo8BJDilh6laMmmNwc3oYEPoY3Lt97bH7PfXNwiRah5rGFWoxkVWr?= =?utf-8?q?saxUZ+/HBE/WyYE+lnF+M7hAtu4YUBE2ArCYx4jiCMG/QDDwfYH9ZYDi327xRYQcW?= =?utf-8?q?vS1NFNsvG7q8AXHlhiBPTNtfl+pPEyfET2RuLJlAKn2VRcJLYf49ya6nzIB12cWXH?= =?utf-8?q?WpyOx2EV1KPYDAFVEpntj5ajIb/qTl2sY87xHXIIG2b4Jz+92QoVJefGYhHyrjmaa?= =?utf-8?q?wp5IIIGr4BYL0n27pZafCVacoSdissxG6SqXw8/B2qHRD/ZoXCB918Wosveezs93G?= =?utf-8?q?7byJL6axLcciIVKBkFJn2XFGYJEnfUSUK0yaSwsqdYZ6TfyoKN4N2XZ6tqDYcSqHh?= =?utf-8?q?TNM9aG3C6RtvmrY7FhHXjEh4/QQFmmJ2rbdr0QuM8V0D9U7tlWjYdPVa4+09uXn8H?= =?utf-8?q?SEC67GMdXSOHXgvyddIyBpFZLRpJ91DOyFJ+zcyr08r0++V4s91GUQwaG4TGbGNBw?= =?utf-8?q?VXEORBvN+tSlwwCmOyutmKd17kzNtTKlLYuke0Kf4T7hah/39kTWtnuTbCKTurUTp?= =?utf-8?q?FklUKiUrLtj5+l2KfaHs3Rj9/kKcvWEgZnOtSQvzbxZWCOZC3CAsEEcDunf60bVfb?= =?utf-8?q?ij47Xp9+7xHaDyUsLCup5weXumujTtkClt+maXnsp+gxkRT4rsm3wwd8vzeiEfFEA?= =?utf-8?q?UUB9mWFU5VUtIn/dbwDz89HGO71bCufnLbMQnL9n38T4eTjxAjBZ+8SRt7TOjyq1l?= =?utf-8?q?NxiXj9rGVuIVyyNIPPZbMlZLcWUQWyJFBQ0C+W1k256Ea3rLJbyXLp/8Oza60+54M?= =?utf-8?q?/fUmzOOtN+PjAfCQbTZkAMJ1zg+WfcdmEf27c5W1NWdIZy4F3sdryfP+TrJgGLRoT?= =?utf-8?q?OaOnjRhnL2TQ3sMp/59ilOxIs5QbpTrPXDrrXjvtM4aEhB/1fqimcZhduYNJQ4OJ6?= =?utf-8?q?m68lWNrX8Lf29JIvNQ3n5JRSqiNCqu34qh2ESpqfjpTJ2zhEFEK6GXH4Pb7Ggk4eY?= =?utf-8?q?5QiV6jchFJNq8cH3hv7ZnkWtCqZc0MteVZL20d0cORgGVq9XdPWaFIEsEPPQ4x79l?= =?utf-8?q?D+rma2eHHhU3jTHkFuRSuEhkzGNCkM620xf4ovfLfQieumakGg0pCk/hzHxRPE66I?= =?utf-8?q?uJ3PQ5AxgvAAOfwa2kLHyfccucdk5h10KHM45T82CxdtRafO+W6tpKwV0S1iYN3fY?= =?utf-8?q?Qq7S8lSl8meS+uEnjDvcZeJv76xSAXM84pBBpY4p+YxHoxGQ9AyXCVB1j3Qodg7Ts?= =?utf-8?q?a8OiHXuvsr+xQqQFC+6Z8un6mDzeSbGlmj4E5/qScQXwy/1fZATykEQr4ZChngdaU?= =?utf-8?q?I8KDhBgAxaEL?= X-OriginatorOrg: oss.nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: f4c0d3e2-1016-48a7-5901-08dc70d12f24 X-MS-Exchange-CrossTenant-AuthSource: DU0PR04MB9417.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 10 May 2024 09:11:32.2188 (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: n3oqMpmuTyhYmYbYPw61Pr0hcA3ZO1X7JiyRiwGHABPIvLTskRBmTwb54GrUWUvxgZ+A0xAbRTBVyZM6wmGn7Q== X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM9PR04MB8065 From: Shengjiu Wang The fvco frequency range is between 1600MHz and 3200MHz, without this constraint the fvco may out of range, the real output frequency is no accurate. Aslo correct the name for fvco and fout clock. Fixes: b09c68dc57c9 ("clk: imx: pll14xx: Support dynamic rates") Signed-off-by: Shengjiu Wang Acked-by: Jacky Bai Tested-by: Chancel Liu Signed-off-by: Peng Fan --- drivers/clk/imx/clk-pll14xx.c | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/drivers/clk/imx/clk-pll14xx.c b/drivers/clk/imx/clk-pll14xx.c index d63564dbb12c..55812bfb9ec2 100644 --- a/drivers/clk/imx/clk-pll14xx.c +++ b/drivers/clk/imx/clk-pll14xx.c @@ -131,7 +131,7 @@ static void imx_pll14xx_calc_settings(struct clk_pll14xx *pll, unsigned long rat { u32 pll_div_ctl0, pll_div_ctl1; int mdiv, pdiv, sdiv, kdiv; - long fout, rate_min, rate_max, dist, best = LONG_MAX; + long fvco, fout, rate_min, rate_max, dist, best = LONG_MAX; const struct imx_pll14xx_rate_table *tt; /* @@ -144,6 +144,8 @@ static void imx_pll14xx_calc_settings(struct clk_pll14xx *pll, unsigned long rat * * fvco = (m * 65536 + k) * prate / (p * 65536) * fout = (m * 65536 + k) * prate / (p * 65536) / (1 << sdiv) + * + * e) 1600MHz <= fvco <= 3200MHz */ /* First try if we can get the desired rate from one of the static entries */ @@ -193,6 +195,10 @@ static void imx_pll14xx_calc_settings(struct clk_pll14xx *pll, unsigned long rat kdiv = pll1443x_calc_kdiv(mdiv, pdiv, sdiv, rate, prate); fout = pll14xx_calc_rate(pll, mdiv, pdiv, sdiv, kdiv, prate); + fvco = fout << sdiv; + + if (fvco < 1600000000 || fvco > 3200000000) + continue; /* best match */ dist = abs((long)rate - (long)fout); if (dist < best) {