From nobody Sun Feb 8 22:23:07 2026 Received: from EUR04-DB3-obe.outbound.protection.outlook.com (mail-db3eur04on2074.outbound.protection.outlook.com [40.107.6.74]) (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 9F1BC152188; Fri, 21 Jun 2024 12:27:39 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.107.6.74 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1718972861; cv=fail; b=N63G+MSLh9GXDJp959E7NjiMw2TK3Xn6Ata5UTjVSTF4+R4NbbnV87wSXuGe3P1QlIS4ZdWNzjPzQyq4jg4tjUP0Jw748NZgfJuiBKtHbxhYuqcUb26DTmfNRYJHn7fx744/kQvFRCh0OSlKFdPV/g+kkcLDU0CuqMsylWVBIAA= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1718972861; c=relaxed/simple; bh=xRvhaZZ3DcQeIyPH+7md57sueeYi3CQhVi/8YTmLZgY=; h=From:Date:Subject:Content-Type:Message-Id:References:In-Reply-To: To:Cc:MIME-Version; b=lcsIooJ0qq5eKWNXQ7NP7yFgm0zSOu12DPJNUm5HpR6Q5a/bt7NVN7tRmWcEQuHK5u84q+oj0rYgH9XV9Nd+OhfwPWOznD3tkDddBBkx9LKZxuPlTE4NkW72GIVSb4eaUF1in+feKUAuh1bFZCvqxWpv0rXLn7DRJxVlz3k2HmY= 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=Jo1XWV/P; arc=fail smtp.client-ip=40.107.6.74 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="Jo1XWV/P" ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=K5vG/IkTBGfUHJraHXH7Xy1KQqdDmcXn7E9FaFFwe0IeJ4Y2gYqMtPzfn0eanwKxmCjuTZHBpQmWRSf5hwMgLRxxkwvsMPFmZds6KQVnYnYz13SsLwcTxTvad34aK+4iw8whjbA6LV78YXnXEHTMIcaIUscR09h5cegIRWJW7tHiOHGUIb9eoGM3PyO8Z6pYQ/bOGP9+QdoD9aZKnV4u8BA40vkwPcLDj1vMl6E2erGGol1rjWjkrC94X3zHefLOxdtjf9WQcSvy/kpEPEx0D8ldYs/M6yKUp2giiw2rfoKFeDqOvzfZgPFnJ9R74pNGZMbd6DmgsdTSgk4ZH8DLxg== 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=XhnjjHEPZkyj/I8sdCiVwwGtcqPe795gcKxBrpX9EEg=; b=BK2uIxkuwmbPD09sOCxnKkvbryyNMmKeOGdvY4C9aueWhmqozKkK+slEFUEUZW/Ht7lruTsLFZGFA+kyc/I42/u3c9qmQpcW0ho0WnuGlhetGb12yeYg8AeK2sZ/fYhzHbrvSBXEjnNlV5kucrmQBANhTYN3B0hxvHkEnBz4VuTqPqWMYy7mAP2M88ySaiRrgzgZoZNdE9mOeaLHXbyY9SkWkFQyemxZl7fANTgnRuIT8yE3pmkXQFTxLMHxrKllBzTQxywG3gPosMOW89fGeVLbSTer+fVlU3MCacD5vPSeC3dqvbXIqoHPIzoDjtWg0y9Raoh5Y0l3R3gCEdA8BA== 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=XhnjjHEPZkyj/I8sdCiVwwGtcqPe795gcKxBrpX9EEg=; b=Jo1XWV/PQ5i5Huok3MI5Fa8JHgYBf/sljwxAC7T45Ejy7N3W4sjbDxQIOOR8J8kK0AJYD3avtV7xN50vBXFlEVvcASLeS9aezCZtPJhXCErn1SiC4SRYUf5rLF63EkoxFWfTK3Bx18UDS2SrEG4qokQ+oW1ihetaP0Wey7SnwR0= Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=oss.nxp.com; Received: from AM6PR04MB5941.eurprd04.prod.outlook.com (2603:10a6:20b:9e::16) by DB8PR04MB6795.eurprd04.prod.outlook.com (2603:10a6:10:fa::15) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7698.19; Fri, 21 Jun 2024 12:27:37 +0000 Received: from AM6PR04MB5941.eurprd04.prod.outlook.com ([fe80::9f4e:b695:f5f0:5256]) by AM6PR04MB5941.eurprd04.prod.outlook.com ([fe80::9f4e:b695:f5f0:5256%4]) with mapi id 15.20.7698.017; Fri, 21 Jun 2024 12:27:37 +0000 From: "Peng Fan (OSS)" Date: Fri, 21 Jun 2024 20:36:39 +0800 Subject: [PATCH 1/2] of: property: add of_property_for_each_u64 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20240621-clk-u64-v1-1-d28a611b2621@nxp.com> References: <20240621-clk-u64-v1-0-d28a611b2621@nxp.com> In-Reply-To: <20240621-clk-u64-v1-0-d28a611b2621@nxp.com> To: Rob Herring , Saravana Kannan , Michael Turquette , Stephen Boyd Cc: devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, linux-clk@vger.kernel.org, Peng Fan X-Mailer: b4 0.12.3 X-Developer-Signature: v=1; a=ed25519-sha256; t=1718973409; l=2684; i=peng.fan@nxp.com; s=20230812; h=from:subject:message-id; bh=VQgWQEkZAtD8vvzYVsrC8omPI8Ofhy4Rly8IvK0keKo=; b=ADQEs54+VVKIEpx9O8ZEtAc1p4GG0/8hr876i9vHvdAPJhXj2gGoxzggTx5yAberty8YeLgbU Sp1Up56JaVuCcIFPhKyXGwrVLP8VKiMbqgapV6/39ObFVBUUNwXkF7E X-Developer-Key: i=peng.fan@nxp.com; a=ed25519; pk=I4sJg7atIT1g63H7bb5lDRGR2gJW14RKDD0wFL8TT1g= X-ClientProxiedBy: SG2PR02CA0124.apcprd02.prod.outlook.com (2603:1096:4:188::9) To AM6PR04MB5941.eurprd04.prod.outlook.com (2603:10a6:20b:9e::16) 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: AM6PR04MB5941:EE_|DB8PR04MB6795:EE_ X-MS-Office365-Filtering-Correlation-Id: 3c2077ab-8588-4fa3-3bbd-08dc91ed8921 X-MS-Exchange-SharedMailbox-RoutingAgent-Processed: True X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230037|366013|52116011|376011|1800799021|38350700011; X-Microsoft-Antispam-Message-Info: =?utf-8?B?SjEvUzVhZzM1a1k2VTdDbGwvTnJVdTNXSXdkRkMzdmFDRHpmNVV0bWJrUnFL?= =?utf-8?B?amVBZjRPSi9mTnBRMFBqN3F6T0ZkcXpMRXBOWGs0OUdpZVc1eG5oNVlXUEJj?= =?utf-8?B?MG1VcTVaWVNyc2NJUHVnckpTL2gzWlJydC91bURRK1VPVzUwZy9UOXpiZmda?= =?utf-8?B?R1RZeW1ncjZ5cFZGMTkxNXR1NUxCNUFFQ1U4Sm95TEFUZ0NjemI1Zy9jMXFQ?= =?utf-8?B?bTZxRDh4ZXpNM2J2aHZBdlN6eUk0YzcvemFrVmdJeFFBZkNhOWVLN1QzZGtS?= =?utf-8?B?MEZLZWQydUNiS3BlVUhJQzJaUUc0dnpYb2JSWUNKcitJeEZQSEdkYmdrVExU?= =?utf-8?B?RDVEb0hEVjU0d3lZSU9KQllDWlA4dVZEVDBIRzZQV1htV0Zua0IrTkhSNXRN?= =?utf-8?B?YnZSQUNxRU5pRnc0YUprck1CSGo3Y3ExL2V5OENXcDdyVnJKVGIwb05hUU0z?= =?utf-8?B?TnZJQ3BXME5BMDZWQy9DNjBOblN6RzgzaHZwSGZ2M3VnMEc4d0xpOG1NcFJw?= =?utf-8?B?V1BPVndlbWhJcVdmY0o4NkFNblQwYTVHOEc5V1NNK3lIRVpzUlR0b1p1REhM?= =?utf-8?B?VExGWmZudk1uTHFHcWpEd3dFWGt1bktTSEw1TWtpVFM4Z3ZXMVF1RWh2Rktu?= =?utf-8?B?OHV6ZVpqMDU1aStPM09JNDRoNE1PeVpiVFdFamVTSy9LVWtIbENDTzVaUHBo?= =?utf-8?B?Y0dKZDRNQWJHK2hWUm1IeEJxeXBmRzJ2eHRpaDBVMEhwdlRvcDhWZ25pQ0hi?= =?utf-8?B?ZFdUcXBnQ2lDcVp3Q2RUQnFpdHlFSlpXWGFQT1ZDbDJxcVRQait2L3Nxekc5?= =?utf-8?B?V3ZPdHNGbEd2MVd2UWltYndEWlV6ZXRPM0d3R2tic3JSck82MUo1M0NkZ0ZE?= =?utf-8?B?OWxqYWE3dGRvV0cwVHY1TVFtZU9BakZSVlhMemtVYXRxejYweVFmeUw3VUhp?= =?utf-8?B?VWV3dFgxbEZ5QXlKKzBKbEoralZzTFgyYVlPNGx2ejI2cUpIeiswY2xPaGh0?= =?utf-8?B?RG1BZ2R5eHhPNlVWbTZNVlhXL2xiT0tjNmFpTFRLMS84WVl4VkxGUjd4YUdh?= =?utf-8?B?QzFpMWhzZzlqU3Zld05BZWsvL3hPR0NvQVo2eEVoRG9lTHdGbU9JZ1pnM0NV?= =?utf-8?B?cXdVZlBMQVljMnNJSDZlc2E2VzJ6K1E5cXR6QTJ6cnV6dFUxZ2NYS1RwZ3R4?= =?utf-8?B?bEtiaUIzWnFMYUhBSlZab0NKVVJ4eTVuU21oV3I2TUhjS1A5aWgvQ1R3VGp0?= =?utf-8?B?OTRPL3BHYzZIWmNzcEFVYlRSMnRySlpLUnIrNUlXUmtyNXFDQkhadTdKRUpn?= =?utf-8?B?NjEwSmNiN2FMbXFSaGtQbFBqcEhheXFubXkreWpwcDZPc3QxSWRLR0lBQUly?= =?utf-8?B?NUdHS3llcFRRYU1OaldDbFRib3BBRWVLQzZ0N3Jmd2pYbXA1dXM0c2F0S2Rz?= =?utf-8?B?UXBzc3d6MGpHZXQwWU11dHpKUGoxSFBQVFRJejR1clQ4ckZxMnp5Zmk3TmQ4?= =?utf-8?B?b1lra3FEM0N6Mk5XZ3JCcVpuVWJzbURwTDdvN2h5bFFmYWxQdmJJNXJhclZX?= =?utf-8?B?NXhUOHZ4M0VQY3VYTmFSUGY0YzQ3czFWN3ZEZlc2eGJCbHZGb3hUaVExNHov?= =?utf-8?B?WjZacnlTM1R1SU04a201MGVnZ2dua1NoNUpXWmtHTUVlcng0bkd5OVVSU2Rh?= =?utf-8?B?K2VCVTI1OWt6QlQ0S05MOWxDOHNDcVFKWDVDUmNVS3NSQmpxaXVkWVcwTDE3?= =?utf-8?B?SGxqRG05bWRlaTZzZGJycjZCOURVQmdpL1h4WThmM0ZOUWhTOFF3aTVGNmQv?= =?utf-8?Q?fwP9BAQuo+Ri8Q4YyQyvt4YFkbaFPSqFhRDNc=3D?= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:AM6PR04MB5941.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230037)(366013)(52116011)(376011)(1800799021)(38350700011);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?WXVxUWVuRUJmeVFqbDhydGYwTm1qbEY5VHF1Z1dRaDU0ckQ4R0RPczJYZWtS?= =?utf-8?B?aGJCY2tmYlRXMTdUZGxmVGp1Wm91bFpwZi81cS9WTHdvbVpydVpvRmVtQTdB?= =?utf-8?B?SjRHMGJmb2xNeHhDZm90MFprZkt3NDNreUxXalBjRmxMV093MWdvemVKcEhG?= =?utf-8?B?OWl6OHpjNkQvcDhqbDh5ekpwcFBTSjEzamhmSUVaWU5PYVhKNkx4eTYzbEtE?= =?utf-8?B?TTkvTyt2UEpaN2ZHM1Z3QUpMOWFGbmNJODEwc1kydzYyeGNSMFg0d0dpbFJa?= =?utf-8?B?MisxSDNUcUE5YkhBejRZZE9XR3NhMDRmanJPV0pVaUF0RlhZRStDVUFzRVgw?= =?utf-8?B?Y2ZrZ1RXSExXKzZZLytqcFFhY29ncnMxbE53RUZFV25RTTRCTU5mRTNTcDRo?= =?utf-8?B?Zy9XbEhvaWZuQ0VBejFvY2RMdkFIdDI0SFpZempoOTUrQmFTSFBxTmpBSzhM?= =?utf-8?B?bjEwQzdTTlhHQWFReEtkTi9uell5VERCNENiY0YzZW14bWwrSnVhQnh0bTFD?= =?utf-8?B?S2tJTUhsMFpDbmFrUWhQMXZDREF6QzJlR0N2aTMyUmtaenVqRTQwR3JzQWxx?= =?utf-8?B?Wlk5YVZWcUF3UzBBWUxOb2FsWFlHUU1iYW52R2NnVUpWTVpCZGhFZG9INlVa?= =?utf-8?B?eVl4RExBY3BML2Y5a3hFRFh4MkNKVEwzT1kyTnFjckZ3WHRDTzFUdndtamYv?= =?utf-8?B?Z0lxMUhBRC9XT3NxWklMS0pEeUdHUUVpeEJZRmNhNzRzRnZFMjFhdGNKUDFX?= =?utf-8?B?WUdlSEk2TlFIVE5COGxRZlRYa29KVDhQNVRYc05SRmJSb09TTGZHMW15aTdN?= =?utf-8?B?YUNwSjVEeVhYRys3UDdvbTlZMlY5NmFwQlBZeENVcS8yTkhiUjI3WjhVMGli?= =?utf-8?B?REJLT0tkNEFmYXBIN2VyWVRpM0ZrRmFGRkt3bm5ZTkZuMVNrU2pWcUpuTHZL?= =?utf-8?B?OTN6VkYzdHpUdDZLakY5V0tLUy9rM0U3bmZmei9GRWE3Qlg0U2ZlYkxxendk?= =?utf-8?B?b0pFV1FlMDlPR2hPM2RJQTU5dVEveFFzdVpkUVBEMzlvMitjWmY1QXhOSnVQ?= =?utf-8?B?VjJzVkhrbyt5cXNuZmsrYVJVcjE1SDNSM2EzQ2lSbnE3QVZQVzZCZ2dONlpr?= =?utf-8?B?OTk1L2JDbi94bU9Eb0JhM0Q1Y3A3dytEOFBtSHh5Qkw5MWtEa2RVSlF5Y2hJ?= =?utf-8?B?ZFU0SkxDZVdyR3BRUE5SeVkxbFNtUkNvaTJKRFFreTMvTCtFUnNGenBBV3U4?= =?utf-8?B?K1ovRUFicTRVVFhUcjh3L1RrVm5OcHE4TFRKUjVEdXVoL2ZLUDFFa2ZiOUk1?= =?utf-8?B?Q2xOMGx2VmJqZk1HbXUwUVJQM1hGb05Vc09EZ1FrL2UzZFRNVW9nbnR2ZHR1?= =?utf-8?B?M3k1dU0rbWtDOEJkYVNER2JTQmFDNlljTHo3ZVlITyt0cXcxZFIwNWZmZUJS?= =?utf-8?B?YzlwdEh3RmJKRE96ajd4YTFsTjJnK0JuVzM1dFhjQXZTdCtZQWYzQml3S2Rk?= =?utf-8?B?eVZNVFlsVEE2MitBSjloTk90UWtVd0Jncnp3RktjWEFmb1Z2ejFjZjdjaXdJ?= =?utf-8?B?bGgwNjZnOVpNTWF1c1lTRTRIQVFLcy9JdzRNRHFDUThJYVZCMFlYdzhSVFNt?= =?utf-8?B?TTZWcG5xT1psTkovY0pCYndDeGVERnJUcHFNdmw5Wk5MaFVRTk5xQUlRRzdB?= =?utf-8?B?dkd4WHJNL0Q3S0N1K3ZsY1hMRUxCV0ppNXhBdk83NGo3R2xoQ04xNjFNYytO?= =?utf-8?B?b2tUWjVLYUU0SXR4UUtJSEczTWNGUE4rSUZmdE9NaW12SDJtS0RqVXhOWFZF?= =?utf-8?B?ZWxJNTQreFJEMlVmaVR5T3k0bDVxM3hOaUV0SFZXdVMwQ1JGODNlYUZZUFNR?= =?utf-8?B?S3doL2x2SDNBSVprQ1NaVzRsUitNY0xETzk1UWFYWEVSMWFteEJrK2Y3RnQw?= =?utf-8?B?L2pCZi9zYjQzUkFxK1k5RHd3SWF4SjFrclhMWE0rbGM0aXFWcjdWanBKZ29Q?= =?utf-8?B?amI2QXVydFY1RFd2cmRBVDA1RHB6ZUd1ZDRkQlNrb0JJOXA2aXZiVm1XdUFx?= =?utf-8?B?akQ1c2JHK1VKamNuaXNpbDZtV1NjZ3pjRXdvMUdLY2dNeWdrN1ltNlE4ZmVD?= =?utf-8?Q?4BE7qkkCD4jqulTca8oinUGEi?= X-OriginatorOrg: oss.nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: 3c2077ab-8588-4fa3-3bbd-08dc91ed8921 X-MS-Exchange-CrossTenant-AuthSource: AM6PR04MB5941.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 21 Jun 2024 12:27:37.5179 (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: 7r2Cf1gx3u7knY01ib84ba+zQEWSVHEOeJ/fLEmUPwca84nAg5N1iAKGrcYKwzoQlPsT7GSZvFG9jcEi76iUrA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB8PR04MB6795 From: Peng Fan Preparing for assigned-clock-rates-u64 support, add function of_property_for_each_u64 to iterate each u64 value Signed-off-by: Peng Fan --- drivers/of/property.c | 23 +++++++++++++++++++++++ include/linux/of.h | 24 ++++++++++++++++++++++++ 2 files changed, 47 insertions(+) diff --git a/drivers/of/property.c b/drivers/of/property.c index 164d77cb9445..b89c3ab01d44 100644 --- a/drivers/of/property.c +++ b/drivers/of/property.c @@ -548,6 +548,29 @@ const __be32 *of_prop_next_u32(struct property *prop, = const __be32 *cur, } EXPORT_SYMBOL_GPL(of_prop_next_u32); =20 +const __be32 *of_prop_next_u64(struct property *prop, const __be32 *cur, + u64 *pu) +{ + const void *curv =3D cur; + + if (!prop) + return NULL; + + if (!cur) { + curv =3D prop->value; + goto out_val; + } + + curv +=3D sizeof(*cur) * 2; + if (curv >=3D prop->value + prop->length) + return NULL; + +out_val: + *pu =3D of_read_number(curv, 2); + return curv; +} +EXPORT_SYMBOL_GPL(of_prop_next_u64); + const char *of_prop_next_string(struct property *prop, const char *cur) { const void *curv =3D cur; diff --git a/include/linux/of.h b/include/linux/of.h index 13cf7a43b473..464eca6a4636 100644 --- a/include/linux/of.h +++ b/include/linux/of.h @@ -439,6 +439,18 @@ extern int of_detach_node(struct device_node *); */ const __be32 *of_prop_next_u32(struct property *prop, const __be32 *cur, u32 *pu); + +/* + * struct property *prop; + * const __be32 *p; + * u64 u; + * + * of_property_for_each_u64(np, "propname", prop, p, u) + * printk("U64 value: %llx\n", u); + */ +const __be32 *of_prop_next_u64(struct property *prop, const __be32 *cur, + u64 *pu); + /* * struct property *prop; * const char *s; @@ -834,6 +846,12 @@ static inline const __be32 *of_prop_next_u32(struct pr= operty *prop, return NULL; } =20 +static inline const __be32 *of_prop_next_u64(struct property *prop, + const __be32 *cur, u64 *pu) +{ + return NULL; +} + static inline const char *of_prop_next_string(struct property *prop, const char *cur) { @@ -1437,6 +1455,12 @@ static inline int of_property_read_s32(const struct = device_node *np, p; \ p =3D of_prop_next_u32(prop, p, &u)) =20 +#define of_property_for_each_u64(np, propname, prop, p, u) \ + for (prop =3D of_find_property(np, propname, NULL), \ + p =3D of_prop_next_u64(prop, NULL, &u); \ + p; \ + p =3D of_prop_next_u64(prop, p, &u)) + #define of_property_for_each_string(np, propname, prop, s) \ for (prop =3D of_find_property(np, propname, NULL), \ s =3D of_prop_next_string(prop, NULL); \ --=20 2.37.1 From nobody Sun Feb 8 22:23:07 2026 Received: from EUR04-DB3-obe.outbound.protection.outlook.com (mail-db3eur04on2074.outbound.protection.outlook.com [40.107.6.74]) (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 0B31B152E13; Fri, 21 Jun 2024 12:27:42 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.107.6.74 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1718972864; cv=fail; b=HepleDKcWqGL1Ueds+1NIXljU07qW5/pEk8hppcXDi6BfOnj95LnGMghlyTUn6J3VW+sX2QDXaUZtH2Yr2nsGsG1BcMox3TQxJklgnjQobSb3+ehslVbctdCbQXupGL+5fBtt0kHAAjo13b7XUdrjl4t4uYIVFM2/aIOTVTgSrQ= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1718972864; c=relaxed/simple; bh=OeetlARZl6f4IA3VOpkKER3JYN2OcaKyD59/sux/Qm8=; h=From:Date:Subject:Content-Type:Message-Id:References:In-Reply-To: To:Cc:MIME-Version; b=JtzaRTV0HME9sbdOXrmpNv9rsYVtUJPIQyp+YHyOQzkQAUxVx2b7adfTn5gsfKsy//1O2RZlIWvZhZjtlKGl4oETxIVVPHBgwZZP5p6bZOKLdkKTn9lPrLs+Lz6IE7OeDjtC0F7wqLlRKglaNi+rgyt1CotLub8fPm5UUVFPpmk= 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=LxWWUdGV; arc=fail smtp.client-ip=40.107.6.74 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="LxWWUdGV" ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=R1Mi5rCrZHxQVF50gpKYGdSpUQZyE4feQ1zjYF/cxlyr9H+ovLIZlwfCyGI6QJU60nryy7puMrjQVXZpM24W48OjKYDX4aoVwLlXxmIJcdXm+usLH3rWNy7D/+GtwMdzmiFEkA1aUYepRuPROgt2H7prpm1FtQRxRFVd+z8ta/m4kwZ0a7oA1nz3r/aS3J/lc0GCnMIMVA1Eju7HzF9ewx+z6+tRlXW4KBDO79enhFJHNiABDX/nakLPHhVu6YzpEW2JNTs1mZxmU57VH/9hMT+SRFAPZ+SI9Cpw1ps2iODDWgDZ1qvUaYNwZXAq/v0t48AcEk508tynXzwErAFkCA== 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=eyiQwrVsnMvcTZPe0rBLx8z+uz+MwyNrf8caVNyU61o=; b=h76hE0aHzCJac9XUr/LswMbQzfECXkMZydeqyv1aBXhj/H6pxwW0ruHUsX83JRDASs/TlTH+I4Eoa6UdqaBb4biPK5m0+9khm0U2sFeqjuxM4WGAclIk4NyRw20S3MwMSf24btwhHKQhAIrZhEQckHjq2+FWGZMcnEKesNq4tJwXNod3pTkNML70md9/1xw1g5AS/k8Ed63aA8LBpSMKQwuHEVltsJh2Q0QUP5oVB1UgLFCY/o89t0RKAfAnkTmaL1qStX8Y6bVaae/GkWM/v8+0WGSrOVgg9ep4ORHW0ITl4OFYF9vwuAPMQ1aMqXyM6Ni8QW2jZYp3+boks7sq+g== 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=eyiQwrVsnMvcTZPe0rBLx8z+uz+MwyNrf8caVNyU61o=; b=LxWWUdGV493RQ71T3kSP63XD4XfrRDmOLi7ChAg7Vz90WiHgsgXIO3I+vnLNPa9G/U8fwRDkzCa57D1r2W7mRONzLcCwbK8f1FDMZ4vuTKg4sNAkpbQ6nkvSKdTqRZguxjTunGHXrIwkSqpLCeubTbgt1/QXsAzxSc/AM554Qns= Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=oss.nxp.com; Received: from AM6PR04MB5941.eurprd04.prod.outlook.com (2603:10a6:20b:9e::16) by DB8PR04MB6795.eurprd04.prod.outlook.com (2603:10a6:10:fa::15) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7698.19; Fri, 21 Jun 2024 12:27:40 +0000 Received: from AM6PR04MB5941.eurprd04.prod.outlook.com ([fe80::9f4e:b695:f5f0:5256]) by AM6PR04MB5941.eurprd04.prod.outlook.com ([fe80::9f4e:b695:f5f0:5256%4]) with mapi id 15.20.7698.017; Fri, 21 Jun 2024 12:27:40 +0000 From: "Peng Fan (OSS)" Date: Fri, 21 Jun 2024 20:36:40 +0800 Subject: [PATCH 2/2] clk: clk-conf: support assigned-clock-rates-u64 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20240621-clk-u64-v1-2-d28a611b2621@nxp.com> References: <20240621-clk-u64-v1-0-d28a611b2621@nxp.com> In-Reply-To: <20240621-clk-u64-v1-0-d28a611b2621@nxp.com> To: Rob Herring , Saravana Kannan , Michael Turquette , Stephen Boyd Cc: devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, linux-clk@vger.kernel.org, Peng Fan X-Mailer: b4 0.12.3 X-Developer-Signature: v=1; a=ed25519-sha256; t=1718973409; l=3767; i=peng.fan@nxp.com; s=20230812; h=from:subject:message-id; bh=nHgr1gsCu9pp4IhyTarapb2dgltw/OjZpRyrv87INcg=; b=Ic+Ic0m9UxbaBf0HyzUhFTxJkhkQrLTPwjuZT8aulMsYhoE5KoqkekhzxXQhL0LQRCYYdxvCZ g1GZMEf+m9PD1VVyiznq+VsqgNsFCM3fVtFoH8Urpk5EW/s7pvPDlTY X-Developer-Key: i=peng.fan@nxp.com; a=ed25519; pk=I4sJg7atIT1g63H7bb5lDRGR2gJW14RKDD0wFL8TT1g= X-ClientProxiedBy: SG2PR02CA0124.apcprd02.prod.outlook.com (2603:1096:4:188::9) To AM6PR04MB5941.eurprd04.prod.outlook.com (2603:10a6:20b:9e::16) 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: AM6PR04MB5941:EE_|DB8PR04MB6795:EE_ X-MS-Office365-Filtering-Correlation-Id: ef9a35f0-fe23-440d-102b-08dc91ed8af6 X-MS-Exchange-SharedMailbox-RoutingAgent-Processed: True X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230037|366013|52116011|376011|1800799021|38350700011; X-Microsoft-Antispam-Message-Info: =?utf-8?B?ZTQ2Y1BXV0hWR3N1dUZwRGMxaVNJaXY5WVE1SGpIbkw1SXJqUHhKemRRR1pW?= =?utf-8?B?V21ER3drUlE0ZzhYcSsrdHBxcHlJV3NlRldZcVFUb3RQZHFjTWczcHo5S3ZW?= =?utf-8?B?TW93UVNoc3pJU1NxQVRHVjFIN2JLWTlhWmRNSlRXQkYwdjRTNWtsRThTMTZp?= =?utf-8?B?V09Ebjd6SGp1NmRrRDhITSt2SW45MTF3c2dSQlY4SWZZYnBSKzduVCtWdFdQ?= =?utf-8?B?aWkzYSs5Vm9GRjlrQnhjUnhzQWhXRW1Vc29NL0RPMGxxdk9YTDR6bW9JZlds?= =?utf-8?B?YjF2TldOdytRN3ZTTms3S0Z5eGtaVXdxYTRkRHh4WC9JTDRkUk1acFF5NkE3?= =?utf-8?B?dEpsdWdzVzZFMXJSRHZKK0xjaFM2eGpZTyt1d2ZjeWtmL0tBOTVHUVNNaUt5?= =?utf-8?B?dzZRbW5oekxqUndtRUtoTzhiZGlUTXFPV2dyTGJEVVU5TEF2TFoybDBFRHpz?= =?utf-8?B?WnEwYkFCVWFybVZGSW1Qd0JwQzMxNDU4SkZra05QVXBGZ1Z6RGJpUWJ1TXll?= =?utf-8?B?SHFRdHhYSlBydmxXK043VHVXUyt3Mk1jbEx0Y2EzV0p5YlZjTDVxb09wa0Nl?= =?utf-8?B?UkhRWTV5NDU1dmhRWS9XcjNBbnE3eEd0bTEvZTVoM2FIWjd6ZXUvZnRqa25D?= =?utf-8?B?bDBzeGlWaml5bllOK3o0QkJoT3ltU2hXbTVnWGt6d1licE1IeTZaS2J3RkxW?= =?utf-8?B?Vk9Rb3A0cTg2U0Y3QWxtdzZwR1ZUbzNFYjlUbDBrcGVRRnZpSUJkZDJybGkw?= =?utf-8?B?U2tZUmFYVnFKczY1V3Z6UzJxZVNzR1JiYUl0aTliYUNUb1NBWnY5dSsraTVk?= =?utf-8?B?bGJCRkVDbkl2RzY0Ri85MTJScHlQZ2NFRzJFWDJiK0xwVmlBbXZONlJqNTBR?= =?utf-8?B?U05sUzIrTmptOHZ2RysxVFBTNjhJZGRLVDNXdWNvRnhpY0czQThTOWYwUG84?= =?utf-8?B?czl5VVpib2VhMnJpR2tQWS9vSU5NM2lYK2ljMXJGbTJEKzlsOFFibnd4UWJv?= =?utf-8?B?OGxuSU9yb1BrRmRKWXNIQ3FTZVREM0sxY1lIY3c3SlpiKzdCRGwvMlc3UUN2?= =?utf-8?B?dGNGRm9QdGlkempWaHZteklMcXFZZkxFcjJ3TkJSaHh6RlR5TWUvaFhNSGRp?= =?utf-8?B?TnFjKzZtSXR4V3lYeDhVUlIrdTMzUFpuTVA0RUJ3MnBFQUd4Rm1wOVJVY2pS?= =?utf-8?B?dU9pUVhsTU1TTmYrTGZ3VUhSbzJEQjdBRW9LQW5FV0wyZGFIYmFBZDB5MTM2?= =?utf-8?B?bkw2SkMrN0dqOE5McWN6OGNYZFZvOFpFYWVKN3V1aGVZRksyNjJRUmQzSFhK?= =?utf-8?B?NkVJc1NGZ2VOLzEva1EzVVE0UzRoanJSVGxQMUNsSGdyaklXbUtYdDhSc0dX?= =?utf-8?B?dCtQYlh6WWcxTDdFdEl0OUlGUWNpSklDazZIaCtHN3dLVDJ6SXRVT1gyU3hD?= =?utf-8?B?U2pKOGMwcU9UMGhMT2R6QnUybmg1OEZqakFrUzNJVkRUWXVpUzZPQ09KdEFF?= =?utf-8?B?S2NXK1hBTDZwOFVkS1FVdUxucEVyU1dKRDI1ZGEwUE5pbW9nK01Pd0pJdmFI?= =?utf-8?B?LzE2UHAwUTd6U3FabGZlN3dsdDNsV2gzWlRNMDVHM1RhN3FlZ0tpang1c3BW?= =?utf-8?B?TlltQnRZOTRKZUc0WlNhMXNzb1Axa0poazVBVWg1WkcwelJmNmcyUHIwK0FP?= =?utf-8?B?YW8zVGVnbTZxZUpnTC9mclJuRmVieFJrV3VRa2poWDdZVVBRaXQ3YTFVaTZs?= =?utf-8?B?UFN4YkM0YzhCK00wSnFjeHVMeVROOEt6MC9aWTlKaWhPUnNWWVFNS3FtM0dI?= =?utf-8?Q?OtU9BpkPBJD058zLnM/+RbiOXD/kpKQcrx5Lk=3D?= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:AM6PR04MB5941.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230037)(366013)(52116011)(376011)(1800799021)(38350700011);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?NmxIaTJxTUV5NS9lZDNrTFBWdkdKTXowdE5ud0ZQZjlkNUNsUndnWHArTVhz?= =?utf-8?B?b3F0SFpkZmtadEhvQVIvMFlNUjh4SkpFY0dRbWc0ZDNNUWR3ZEJnaUVHOHZN?= =?utf-8?B?TXNwWE1OcW5qMHVTM01KUzUyVGxHRFpGeTUxM2UrOFFicGRaVytmRlJBdUk5?= =?utf-8?B?dEpSMlNaVnJ1Wk9tcitZQVYxenNUSXcyOGFwWFFLbnhqam5nUkwyaHExcnQ1?= =?utf-8?B?dEJCOTJ0RFN6cEljV1E0Q3dkQWxGazg2MW5YclJoOCswa3JBdG9QQ0t6NmND?= =?utf-8?B?ZkQwUVRNQTFvRWZOdmIzNDVLdEUxaEJlOTJaYkx5V3JobThnTFMyWHM0cEtT?= =?utf-8?B?NEFUWHdKZ3JGU3U2ZDQ5TU9NUlp1V2pnR2xMRExCQ3VvK3Y1RmVjNUljalJK?= =?utf-8?B?eGtCb3NlOFZGdVNYVERKSXplOFh5WExiU0ZTdUx4Nm9GZGhZVmFPMFNQWk1F?= =?utf-8?B?bEQxN210OXlrQ214OTArNlNFZzZnV2VhYTFGWVA5S21kNVB1THlXZ3U5RC81?= =?utf-8?B?TFBYQVNNVDdNUTk1UkYvQWxVdldlV0QxT0lHY25remFDN1c4YU1FNUVxT2VX?= =?utf-8?B?Y01rTW9PeUcyMTZhVEd1WmRFa3h0bjJWSTBEcmpXUlV0bkNaK3BOcHZoMFI3?= =?utf-8?B?TnljeDFES3gvUHBOcG8rKzIrMWVQeFVWOWNOMFN6alZJMzhlNW5BZzAwdjJK?= =?utf-8?B?dlp1Mno4YTZIRUQvZmN2NUdXb1E0d1lTM21yVGFmN2w1T3dNbC9JcEp4V0Ix?= =?utf-8?B?cWZETkR3YnhKeU1iVHh4bnFta2dlZjBvbmFDdlZDeXRWNmhhUnlROUJZcnJ5?= =?utf-8?B?dTlUWTFxM0EzcHFEUlJGZS9hNDE5TkVkYjQvUUY3SnYvcUJOKzFhSVBkS1dy?= =?utf-8?B?RlNiaTl0YWVPNm56bnhDUDd3a0ZLNlhRY2EweVE1RWJSZGxreldCbUtFVTdC?= =?utf-8?B?WXY3NFVaVnU0SmpCaHB0TDNtdjN3VVRWalgxaDVSb0VOVFNDLzlERkQwZzU3?= =?utf-8?B?eGFxQkRuRU1yaGE1MjlKZVJpcWpadzhHT1MzOUV0c25CZU56dVhKcE9rRVg0?= =?utf-8?B?d3BqUEwramZZQWZzSFcwL2hCekFkWFZEd1p1dHJaYUMwVlBVUThyS25GZy9o?= =?utf-8?B?Z3kwb3hNKzNST0duN0IwSHVlZkdhWmFMMVFJV0oxSllvNHlzbEMzaDFUMjhr?= =?utf-8?B?V0FBQTh6L3o5a2ExeEZPV2pRQ3RvMWpITUVrODY1dEJCTXByZWtPVnBRQVhZ?= =?utf-8?B?Z1VBcVVNQmtabk8rRTZFeXlDN0tRejFrMG1LdERXQmFIdXJnbExZZ2VlaTN0?= =?utf-8?B?QnRyNy9VcFJxUFNWYWJBOXZ3QlFJOExZMGFDMU1PNTIzVkVRcG1UMmJuWFNQ?= =?utf-8?B?dDVCM3NvU0pNSjVvUU14bno5WlVzc1ZBTUFpdm1RQXprSklmWkd2blNTV3dw?= =?utf-8?B?Z2FSbU1RclA0MnIvbE5tSGZMeHFiNTJ3YVRWQ1p4Q0tKejBLMVlsL090U0I0?= =?utf-8?B?ZTc4L3VmMEI4Um43ZFc5YVBkMmVaSjdYeXdBRFpSYnlaZC80WGswaFAreHRL?= =?utf-8?B?S3pxeG12TkRDUG9jQjJFYTZ5MUU3RndjWm9CMzMvS0RMWitQdHJuQldhTzU4?= =?utf-8?B?b0FIQXlZb1RzaHZUemxFTE1NWWJaajVlQzFIUmptSzdocjY1QW1UaE1NZ2VC?= =?utf-8?B?Zm9oYmFRYVI5U1RtL3lsUHFJaEkxM3BGSzRWNWZCRno5bVpKSE1vVFNhdnJQ?= =?utf-8?B?eG9uMWRXOVN3ZXMxV2E4eUhlUjZZWjA3SXpZTldTK2owOVNRTnBhbGp4WjdK?= =?utf-8?B?VHo2dHNadnBtc0dJU09oTlJvRTFKRER1UGdvQ1dOcGZVMmNwajg2Z0x4UDNn?= =?utf-8?B?SnJXc0FlY3FGY3F1Uk5wVWdsZnhTelczRzJHWjhqY1gvSmo3WjA1VUVmdENL?= =?utf-8?B?eU0rWnp6eFNBb2VtSXVhNXcrR2Exb0piWktKQlA4R3QrVG11Sm1QMmtKWXFS?= =?utf-8?B?UFJQYVNFbzROR3JYT1UzUzdRaXRqWlM1cFJzcjdBekF3dVdCQmdjNXFXVVRN?= =?utf-8?B?Q05vdmhtb2liNEFLcDI3S3Nocnh5MmVDd3BmZlVJbHFrazhQOGJMYnQ0YnJZ?= =?utf-8?Q?QBJmwM27oK1VUOpV1EHYVDMFI?= X-OriginatorOrg: oss.nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: ef9a35f0-fe23-440d-102b-08dc91ed8af6 X-MS-Exchange-CrossTenant-AuthSource: AM6PR04MB5941.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 21 Jun 2024 12:27:40.5356 (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: 87IemYHLrohjrybm1ud+kiIm8e/JXHKWs/JgOSmnX0Ck+PoFC0wsUV02am1nuHrAsN9FDJzEG3yRJ09xh4MORA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB8PR04MB6795 From: Peng Fan i.MX95 System Management Control Firmware(SCMI) manages the clock function, it exposes PLL VCO which could support up to 5GHz rate that exceeds UINT32_MAX. So add assigned-clock-rates-u64 support to set rate that exceeds UINT32_MAX. Signed-off-by: Peng Fan --- drivers/clk/clk-conf.c | 106 ++++++++++++++++++++++++++++++++++-----------= ---- 1 file changed, 74 insertions(+), 32 deletions(-) diff --git a/drivers/clk/clk-conf.c b/drivers/clk/clk-conf.c index 1a4e6340f95c..2bb00c859eb4 100644 --- a/drivers/clk/clk-conf.c +++ b/drivers/clk/clk-conf.c @@ -78,49 +78,91 @@ static int __set_clk_parents(struct device_node *node, = bool clk_supplier) return rc; } =20 -static int __set_clk_rates(struct device_node *node, bool clk_supplier) +static int __set_clk_rate(struct device_node *node, bool clk_supplier, int= index, + unsigned long rate) { struct of_phandle_args clkspec; + struct clk *clk; + int rc; + + rc =3D of_parse_phandle_with_args(node, "assigned-clocks", + "#clock-cells", index, &clkspec); + if (rc < 0) + return rc; + + if (clkspec.np =3D=3D node && !clk_supplier) { + of_node_put(clkspec.np); + return 1; + } + + clk =3D of_clk_get_from_provider(&clkspec); + of_node_put(clkspec.np); + if (IS_ERR(clk)) { + if (PTR_ERR(clk) !=3D -EPROBE_DEFER) + pr_warn("clk: couldn't get clock %d for %pOF\n", + index, node); + return PTR_ERR(clk); + } + + rc =3D clk_set_rate(clk, rate); + if (rc < 0) + pr_err("clk: couldn't set %s clk rate to %lu (%d), current rate: %lu\n", + __clk_get_name(clk), rate, rc, clk_get_rate(clk)); + clk_put(clk); + + return 0; +} + +static int __set_clk_rates(struct device_node *node, bool clk_supplier) +{ struct property *prop; const __be32 *cur; int rc, index =3D 0; - struct clk *clk; - u32 rate; + u64 rate; + u32 rate_32; + bool is_rate_32 =3D false; =20 - of_property_for_each_u32(node, "assigned-clock-rates", prop, cur, rate) { - if (rate) { - rc =3D of_parse_phandle_with_args(node, "assigned-clocks", - "#clock-cells", index, &clkspec); - if (rc < 0) { - /* skip empty (null) phandles */ - if (rc =3D=3D -ENOENT) - continue; - else - return rc; - } - if (clkspec.np =3D=3D node && !clk_supplier) { - of_node_put(clkspec.np); - return 0; - } + if (!of_find_property(node, "assigned-clock-rates-u64", NULL)) + is_rate_32 =3D true; =20 - clk =3D of_clk_get_from_provider(&clkspec); - of_node_put(clkspec.np); - if (IS_ERR(clk)) { - if (PTR_ERR(clk) !=3D -EPROBE_DEFER) - pr_warn("clk: couldn't get clock %d for %pOF\n", - index, node); - return PTR_ERR(clk); + if (is_rate_32) { + of_property_for_each_u32(node, "assigned-clock-rates", prop, cur, rate_3= 2) { + if (rate_32) { + rc =3D __set_clk_rate(node, clk_supplier, index, rate_32); + + if (rc =3D=3D 1 && !clk_supplier) + return 0; + + if (rc < 0) { + /* skip empty (null) phandles */ + if (rc =3D=3D -ENOENT) + continue; + else + return rc; + } } + index++; + } + } else { + of_property_for_each_u64(node, "assigned-clock-rates-u64", prop, cur, ra= te) { + if (rate) { + rc =3D __set_clk_rate(node, clk_supplier, index, rate); =20 - rc =3D clk_set_rate(clk, rate); - if (rc < 0) - pr_err("clk: couldn't set %s clk rate to %u (%d), current rate: %lu\n", - __clk_get_name(clk), rate, rc, - clk_get_rate(clk)); - clk_put(clk); + if (rc =3D=3D 1 && !clk_supplier) + return 0; + + if (rc < 0) { + /* skip empty (null) phandles */ + if (rc =3D=3D -ENOENT) + continue; + else + return rc; + } + } + index++; } - index++; } + return 0; } =20 --=20 2.37.1