From nobody Sun Feb 8 12:49:28 2026 Received: from EUR05-AM6-obe.outbound.protection.outlook.com (mail-am6eur05on2043.outbound.protection.outlook.com [40.107.22.43]) (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 B4CD936139; Sun, 4 Aug 2024 12:24:06 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.107.22.43 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1722774248; cv=fail; b=KZ3FjATSfDl38yL8Ys54SjGK+u3QnggxX9c2w6M5ze0yI2wklrADvCqCqCepL2zbOtQt3LfQm+zXNQ/zEXhUIAq0sFmqE+4GzK9Z+TanKIyfO/ZgmUprxSTxOWXVaOLgzA4ULQ6XLUIYZoyo3wCoX+bqQwm9lgiPYV54uIjj0CQ= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1722774248; c=relaxed/simple; bh=jJHtN5cdjpw48j/RwDXB2cYoH8FaDj/mkqJp7Fm5m44=; h=From:Date:Subject:Content-Type:Message-Id:References:In-Reply-To: To:Cc:MIME-Version; b=ouFRKgzUWAFiGqUQd4BmDQButuTc5S1qFKF6z3GxwhMfj2rCtfhMAENAqqC+d1H7hjoXBd9vsB0GXc77DSdi4R27eNhz75Vrz12qdOnTh7CTCU+rd25idmP9O0+txGj6MCiTiZgoh6vWeN/vYKDDB+uCtM6lIFJY5K8uhPcfhJc= 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=VjyrvMEL; arc=fail smtp.client-ip=40.107.22.43 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="VjyrvMEL" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=TPOrdhHlK2PQSZtoznZ++fU3a6XCavKAMtWeZnWCPJATMGkl1empKo6byOcP9IucmcKRUcT3YDfDMo5nMYiumOqvSv9hJrGEHH+hIV39/sMNN7wlVYRxxEISQydu3eFpYOk5+6K4c90RVciq27zTy8z1hnMd8ljhlNesy3cD2K2yYt2Ei2EqDUkve4EHInfgElhE1dlEmju8DWXKaKYRA17aRkh3IlJcEIuhqmhPturNp53kN6E1LMJPB6eUmB8Io9aRn4aYzYEZJQOK7KVVQge0+2z3jacsjzNgdGttZkee+a1/ZwzaUgLCVeWW9fMCD5r16Hph0sZgfRIaTW9TVw== 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=Inysam4Nwgvdh+lgZZMJHWWZI7brIH8XEIf9gyI9WyY=; b=Nnb9B5JW7rxc4+gExaiHYq/Y4AQsbx8+yFhGguyjt5gSytjgToy4cz0u+26oddl4kj85m9boGs6v89mJPXjFTyL9V7PKl6c04XN7Fx9FrjQ3xuMGEkzayuwGxijabb2qZZdRuRatR0yMuK0el6JVlJldElMCyMGBpQ8Tpvu1pKEsG5IgmHIQBmWon2bFX0xKzWe8g8hZJCEhbkLsKMQDMpF1Cx/qaA0KKO/ljHL5mBTRTZ5lbcD9PTNfu9TGLnAWTdWryClzHQHtKa12Y8FrBqGxHySaMGKebOTpZQoF1/i0qmPLngEOW+Ut1wHOUnoYV9Z015qFFfQr5mTC5zMxIQ== 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=Inysam4Nwgvdh+lgZZMJHWWZI7brIH8XEIf9gyI9WyY=; b=VjyrvMELoZTn2VRN0S6d8il/f1y1mU4CRbNFyt3kyR/LsNuG+oXHLzbpP2GAslsIJblLgD9hFu3XgsxTTQzjqAPgx7a8AsnAffPMLgV/c/q8mVw2qb/3/3MEdwVxdDOIfr2l1jyrsG5z4vOlT+PtgXXQLs5/FulPNDv7n0OrqtonLcH3DcFKtC7WnAjWnKJx/1jxh7mUdzaFGTa+Xk8ddVhh5HPlpMt4DslpssBjI+A6L38TbedCMZiXf5us57X0YIZVZbUcTz5HfYDhEWmpaPm4bmnJ4gghC3tjxhlaMMqMSVWyEltwHGVuIiC3RI4y3s6TARNECgtDOjAWK5IRvg== 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 DBAPR04MB7413.eurprd04.prod.outlook.com (2603:10a6:10:1a6::14) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7828.25; Sun, 4 Aug 2024 12:24:02 +0000 Received: from PAXPR04MB8459.eurprd04.prod.outlook.com ([fe80::165a:30a2:5835:9630]) by PAXPR04MB8459.eurprd04.prod.outlook.com ([fe80::165a:30a2:5835:9630%4]) with mapi id 15.20.7784.020; Sun, 4 Aug 2024 12:24:02 +0000 From: "Peng Fan (OSS)" Date: Sun, 04 Aug 2024 20:32:55 +0800 Subject: [PATCH v4 1/2] of: property: add of_property_for_each_u64 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20240804-clk-u64-v4-1-8e55569f39a4@nxp.com> References: <20240804-clk-u64-v4-0-8e55569f39a4@nxp.com> In-Reply-To: <20240804-clk-u64-v4-0-8e55569f39a4@nxp.com> To: Rob Herring , Saravana Kannan , Michael Turquette , Stephen Boyd , Luca Ceresoli Cc: devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, linux-clk@vger.kernel.org, Peng Fan X-Mailer: b4 0.14.1 X-Developer-Signature: v=1; a=ed25519-sha256; t=1722774785; l=2787; i=peng.fan@nxp.com; s=20230812; h=from:subject:message-id; bh=/uWDVm5pCySyF5BAPfXac+GeAhNij296nWQXpAULzPw=; b=AaLZMkjvJbIRJu9kcvya9BVP2zvCnZC09Wm/5CF4hx7T1aPMA+kl8/CW65aM7EzzUppKlibbq jntreCoxCFPBI1nOQwRZkyUfA6xt8eEfOrjoyRCZLbYHKu0XsnMrS2G X-Developer-Key: i=peng.fan@nxp.com; a=ed25519; pk=I4sJg7atIT1g63H7bb5lDRGR2gJW14RKDD0wFL8TT1g= X-ClientProxiedBy: SI2PR01CA0047.apcprd01.prod.exchangelabs.com (2603:1096:4:193::10) 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_|DBAPR04MB7413:EE_ X-MS-Office365-Filtering-Correlation-Id: fc070f14-d584-4333-8066-08dcb480534f 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|52116014|376014|1800799024|38350700014; X-Microsoft-Antispam-Message-Info: =?utf-8?B?T0NHU0VQTGZGaTNaYzNSSE1sMU5VWk5Jcm1uN3YwUEtuYjZ0REoyazhRMWFV?= =?utf-8?B?Sk12UjFWM1BreTA5S3FFQjBYTXpVV1FwRDFrN0Q0VGsxbUxieU9vajIzZ2Nt?= =?utf-8?B?VkxtZXByMlVHclZlWE5nMlNoQUlEVkxZUm04N0drbWlxOSthZ1NscWs0VnlR?= =?utf-8?B?QzcvM0tudUlHZllhbmJzaFhnRmhJUGhSOFhUdmYwMHN6bTVVU0RmTDZ5S0ly?= =?utf-8?B?MmdFWGgva3B4UTRyRWJXMHdUTEVjUW5iT3g4NVRwZ2kyclgvcEZTV3N2SkdC?= =?utf-8?B?Z2ZXc0ZrZG9VUVVPZnlwMmJFN1N2dlRaR1N3Ymhid3hxRmZISkIvVzVoQWhk?= =?utf-8?B?TzhILzZBQTY4dHNVQlBpVktYN28xV2dPSjkwMkx6dEh6cXlUUFY1dUl3ZFcx?= =?utf-8?B?YUZZdkFMakhQY2dWQkNCMU5PeXpMc0xSdmlNekM2T2d6dC9meXRvRDllZU85?= =?utf-8?B?REpJeUE1d1JtMlR0em4rU01BRXVZU1RKQ1FwUnM1Qm1sT3F3SnRHMFRwK0Jh?= =?utf-8?B?eTVocXVaZlpvWjFvWitMUGt6dzk2UXA2T0ZEck1sN3hXWVJKczlWQjh3Nnpi?= =?utf-8?B?WmJZVnVCOWVOQ0M4OVJOUVZ1RVlXa1hwamI2Rk8yWXNRZFZDNURaYWhvbUl2?= =?utf-8?B?ZlNDbXNMb21qeXF0Snk5OERJdlpZZ2lDQURqam1iTS9NSEV1UzJtTHZ5MHY0?= =?utf-8?B?VnpmbFhZV2ZMeFhRV25Fb3ZmTmY4V1VSdHhuSGhTa3dGUFN3cm9rNjFqYnFm?= =?utf-8?B?V0thRGpBenlBKzVvSHkvRUVvcUZoeWJTcWcrK1M0UWxWUjJwc2JuNkRnbkVW?= =?utf-8?B?SnlwcE9FL21hMzFaWTVaK0RUZng2dlhZY0dPZjEwT2l6TVR3WXg4OEVCazcy?= =?utf-8?B?T20xNVJRek5qZGQwUUlvMWhNMkl4WXBHUWhIOXVLYkZxczdyUWtVMnF6KzNv?= =?utf-8?B?WE8rbjdNeFpiTm5HT1QvdGp4UzdiMURqMlQweVEydHZkakFMTklMWlB5RjlI?= =?utf-8?B?djAvZ3F0OTN3TVlRaDRvUnFCOG5vTStmdmxkZk02K1hXSlZPVTdKSVlkY0h2?= =?utf-8?B?VXNqeVVCVmtGdzBRcGJTTTNpQ1FtTmVvT3ZlVW95NTVBaWN1MWcrTGtEV1lW?= =?utf-8?B?UGhXZ051MHcwY3NOSHdSRUZmcXREaHhWNXl6MElFb1o0WEVJbjE1RElqUXRl?= =?utf-8?B?MWJlTWF0dDdJVDBwWVE3a2thbFdQMkxOMENFZnh5MTlmSjBaRkRMT1hpdkl2?= =?utf-8?B?dUVCZWVrZUhheUhmMVgrK2VldlRDdzl1aFpxSVlVQUtJWEk5U2ErR2Z4bTNY?= =?utf-8?B?RHM5alBUZDFmL0UyQlF3am5nVUQ1STNQYnZ1UzZmZkFNd29GcUhCNGFHVFk5?= =?utf-8?B?empYMWN0V0YrYnBwY0JWR3hpdm1pUW9ROUVJT2N5Y2NVRW11UFFzVy9xMnFp?= =?utf-8?B?a1d4RU8vZkxtaERlQmVZUUh3VnVhdFlEMSt1dFFvNzVXZVg5bjROMm9rSzM4?= =?utf-8?B?TXFZVG5Pdmg1dVhwOThvMDBadGl0N2pkUnZaV0VWVjk4bzlqNE53eXBKd2k4?= =?utf-8?B?OHU2ZTlrOVgxY1NJV1ZsOHk2OWlJM1R4bDUxZitYZFJtUUZZSHgrS1Z3VFFK?= =?utf-8?B?UU1waHB6ZGxJRWRGeFNzY1R1ak9uL202aTFLN2pUSEM1OTlNaFVpNU1KOEx4?= =?utf-8?B?RDIxYVJubEY3SHhYd2VvaGU2bkpML3p3czVGQmtxcUJXZHY4OXdQTTJpYlpU?= =?utf-8?B?blIwT1FHYTFSSWd2SlZkTEE2ZjNDZTNyWjgvUHNUSHVPamM5ZXNSZmY5d29T?= =?utf-8?B?MzFOZlhiY0NWeWw0UTdNV04rRE9SeUY5WmI5NnIrekNTSUw1NUtwSUFkaFVz?= =?utf-8?B?dEIxTHd6dmgvbm9GRG1BNUtNTStBT1lLekRMSXk4WGkwT1E9PQ==?= 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)(52116014)(376014)(1800799024)(38350700014);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?dkhUM3ludHRKa00rL0s1S1JZRmRneCtZVVIrT0VMM0p4MjRhWUkyYW1nNmpp?= =?utf-8?B?ODVwNEl1NnlxQWJ0K0o3OHNjcGUzRExwbEZaMDkyZWFtSFNNSkZZVEp0czZS?= =?utf-8?B?c2Jxd2t0Nmo1dXROYXIwaFc2eGtYQ0FsekFLeWtBeDJFWGM4QlpHOS9Ja0x3?= =?utf-8?B?VGJab3ovajNuWGgzZVMzVXlqUnhkdFA2YVhpMm4zZldta051d3dKNStGNmQy?= =?utf-8?B?dUtEQW1Yd3BPa3BLaitKZTlHbGZURG15NnU5LzlXdUFLVTJzV0RBL0dwNE93?= =?utf-8?B?c1dYa1ZVbFp3S1FXQnF1WmdwNS8xUzV4OW5zNmpuN1A3dVJzdmdqNDNxdWFG?= =?utf-8?B?VndyWExQa0hMamF2ZXVtL0JZNlFCQUF1cmpKbm15b0FEcGlsWmVNWnRUYk9o?= =?utf-8?B?VW9qenZzYXozVzFSVXRzcDdFUGhLbkcyM0NTamx2VE9EeUpjaEoxWG1tSTB5?= =?utf-8?B?eWYwenIxRFNtZDZrMEZWczZYVnRVVEJZVjVWcFFmS1NyTGtzblpMYkRlOVZo?= =?utf-8?B?Zyt1NUltbXZFWXRqTVN0dDJKUWwwOTAwbGkvR3ZzeFZod1NPZTc4bHIvUSt3?= =?utf-8?B?REszRkhSNlBHT1ZNRTNiREJESWlHbjZLWlZDMitualF6T3NRaGxFNlBqNnZO?= =?utf-8?B?cS9zdGhHc3BVam5VQWhWL2R3K2V2WFpzVHhub2NxOFVuNHMrRU94elNqUFE5?= =?utf-8?B?RFczcXYya3JUYTdKR0s3M21LcU1wSlpKQTM3SmFVVFI5TnhaRytHZjVEbGg3?= =?utf-8?B?Q0lDeHYreUo0NHBhMjBORVk3aW1xaHNBTE1icm5wSzJiaDM2cXo4Z09QN2RD?= =?utf-8?B?ZkdEaHVaaTJ1STdNcm5jU1NvUVN4U2hyb0RSWkZJSFc2NHdCZUV5UFlSV3o1?= =?utf-8?B?WDhXZUY4SWxCWkRUbEc1QlVpcklqYlZkSG5xRUw3Ym9wRW9zcGdDblg4QWt6?= =?utf-8?B?SUNGcEMvNEx3ZGd2aHB0ZXNMcGRTRjI3S3JnVytYYXlzRThTU0hRRVp0elpv?= =?utf-8?B?MnRrU3FINE42TGRiZXU5Sk5IRi91dXJ0cDJqcmNrWVNQNUczNTY3RGVEbGV4?= =?utf-8?B?UTJKaXdYbXNaVHptQmtSa3dsZ1ZCaEplbTJJZHlBcFQxOVlWQ2JwemQ5Y3pJ?= =?utf-8?B?U1VadVhralRzSzVOSUMycG9YZEhwZjNtaWl3N3NMaW5XNWpvd01WV3RTaVhx?= =?utf-8?B?bWc0ZXdaL1ZMKytqd1BMcXlZcjFrWTg5N1pnRmhML2tuS2hvOU5SSTNrUWxB?= =?utf-8?B?MGpsS0hqd3BZazZoai9ML1lKT0NJeFRCRWxSSXFnMi9YUjFIa2RvL3lKK0pi?= =?utf-8?B?R0NPTmdOU2h1TWdqSFJ2SjNzdURoS0dXWDZDQUozZmp5QmxCdEhFK3daZ2FK?= =?utf-8?B?d3U5NnpKY2p6V3RsK1hsN2lPbnhMb3IvY1IyVzhzTVFnUk1mZzZMbFIrQzI5?= =?utf-8?B?Kzh5b25LQWlQSWI3UWhxQWJ1aDZ0RzhBZXBubVpLWDNyNTFucGJQMmdTTngy?= =?utf-8?B?THRITVlZalVQU0hDdUI1WlZ6Y2FHdUNqTHAwaFc2Z0dCNCt4OVk1ZElZc1JK?= =?utf-8?B?aWpTVndkUGFlLzMrVTgwOWh0TjBGNmxQUS8yU3NPdlFsWE9iQWRqSDRvdW1W?= =?utf-8?B?bXJqdTVlbVliMG5Tem5McWZzMnpHb2VQRitRVmpHQ004Qno5RVJYdWN6M1V6?= =?utf-8?B?WWt3aDVyY1doQTNZa1YzcEZkVE5jcWwrMEllTi9KVG5NbjFJSTVtc1d1WGZ0?= =?utf-8?B?V3hoZGVhMVA3VkVOZDRXY2dyd0pteExpMVVmeGpjVjNKdVBGb2g1RHJGUjU3?= =?utf-8?B?NmRoYkIwLy8wQnVZcmN4WnJybUF2NDNWQyt1RFhlKy9MaHFxT3ZsL1ovMnh6?= =?utf-8?B?bm8yZElVUUtOODNqSU5reVpieWJuR3pYbUsyQnVIdUMxNVg3MDZNdERuVEdD?= =?utf-8?B?RU93L09SRC9HbEJ4T0pmYUZBM1NVY21ndVNmd2s1YWtxY3dCa3pIaFJxQXVy?= =?utf-8?B?amQ1MXlna2hoWHBoUmZOcWtacEZTa1dnSHZGZHBYWTdQckNCcE5rMGFsQlIw?= =?utf-8?B?UHNVSXpjeWZNcml5c3RpUjE0TklxRnVVL2l2czdJL25LM3Z6MXM5dE5sVk9F?= =?utf-8?Q?8eAQKgAShUSzpTSaiwYETUAfe?= X-OriginatorOrg: oss.nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: fc070f14-d584-4333-8066-08dcb480534f X-MS-Exchange-CrossTenant-AuthSource: PAXPR04MB8459.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 04 Aug 2024 12:24:02.7176 (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: NiyutEYalAxiuJXFzv5NI/56CaMPF+3W+veMbWPwzdY7AOOeboSOLELo1mQqlFrTW1FRWSnAA087ngdZbLyWtg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: DBAPR04MB7413 From: Peng Fan Preparing for assigned-clock-rates-u64 support, add function of_property_for_each_u64 to iterate each u64 value Reviewed-by: Luca Ceresoli Signed-off-by: Peng Fan Reviewed-by: Rob Herring (Arm) --- drivers/of/property.c | 23 +++++++++++++++++++++++ include/linux/of.h | 23 +++++++++++++++++++++++ 2 files changed, 46 insertions(+) diff --git a/drivers/of/property.c b/drivers/of/property.c index 164d77cb9445..f70fd8deb9cd 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 __be64 *of_prop_next_u64(struct property *prop, const __be64 *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); + if (curv >=3D prop->value + prop->length) + return NULL; + +out_val: + *pu =3D be64_to_cpup(curv); + 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 85b60ac9eec5..de481a4bdad0 100644 --- a/include/linux/of.h +++ b/include/linux/of.h @@ -437,6 +437,16 @@ extern int of_detach_node(struct device_node *); */ const __be32 *of_prop_next_u32(struct property *prop, const __be32 *cur, u32 *pu); + +/* + * u64 u; + * + * of_property_for_each_u64(np, "propname", u) + * printk("U64 value: %llx\n", u); + */ +const __be64 *of_prop_next_u64(struct property *prop, const __be64 *cur, + u64 *pu); + /* * struct property *prop; * const char *s; @@ -832,6 +842,12 @@ static inline const __be32 *of_prop_next_u32(struct pr= operty *prop, return NULL; } =20 +static inline const __be64 *of_prop_next_u64(struct property *prop, + const __be64 *cur, u64 *pu) +{ + return NULL; +} + static inline const char *of_prop_next_string(struct property *prop, const char *cur) { @@ -1436,6 +1452,13 @@ static inline int of_property_read_s32(const struct = device_node *np, _it.item; \ _it.item =3D of_prop_next_u32(_it.prop, _it.item, &u)) =20 +#define of_property_for_each_u64(np, propname, u) \ + for (struct {struct property *prop; const __be64 *item; } _it =3D \ + {of_find_property(np, propname, NULL), \ + of_prop_next_u64(_it.prop, NULL, &u)}; \ + _it.item; \ + _it.item =3D of_prop_next_u64(_it.prop, _it.item, &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 12:49:28 2026 Received: from EUR05-AM6-obe.outbound.protection.outlook.com (mail-am6eur05on2043.outbound.protection.outlook.com [40.107.22.43]) (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 308CA3A8C0; Sun, 4 Aug 2024 12:24:09 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.107.22.43 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1722774251; cv=fail; b=PnFHa/TWNFduldF9k+sUay3hdUsuyyOBgbw710HoJx1ZsYYYSdS/PoNw+yXZQuOOqi2kCUiMa9FSVtWc52KP5pPruVZLSNw8DPxqbVc7VeLuIgeQ74UeCHNKBKcwBDCZJLo2LL/XCpfatxdPPchTtsSm7QXrHkMZdld7WLDJL1Y= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1722774251; c=relaxed/simple; bh=5exL70/tt30kfB6mb7RZ8VICYJtENbMxLVAUET0ul1w=; h=From:Date:Subject:Content-Type:Message-Id:References:In-Reply-To: To:Cc:MIME-Version; b=pcsRvzME+lVxHXSh0hsguRFihA7fHxD+GZILyw9Yh1VzB0nbC0EHcdiaA03j1ASV6lH30b/obWs7doNTFkXa1aM7IGhSFkF9B2G0xi3a6JhpsjIuESKdrCuqhJdN8711Q5urFVeamVGKJmmSfufglxGBIdoWOQob9MO2wuWglVA= 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=Iec7IqmI; arc=fail smtp.client-ip=40.107.22.43 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="Iec7IqmI" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=a1SfQ5oJdmGAeMAcOYC5fM1ueRE3thsfwNMIIfRqp/frcfQYGgJmEdFQdYWu3yOIqGpl3pdng/VgitKs+wrSn8j5M+BfAj3fkviojyuXVTdQd1vtfhghIFKWoU3pL1w7Pzhuus+AZGNzoPK2tnmexvxDkfSkrGQnJzxwygPy6XGIQQTdG5QHODdKZ0qZdWcx9MkaY4qP9t9fj0P3drPZS8HqrmjyoiULFi6fIvlrLtMMg1lTegGptii+r8XQxz2nE8dc9yS9TPGxLnZjx+RRBbmslkRJTi3Ll256FLCBJ2lX+eWnUOqQYtbHmSK5omaEJ+XF6yYuY9/X6EAx6qCEiQ== 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=bzFf2gUbL6hQAqWlaxlv6WSxMOsq3cWITirJyGx/LUM=; b=VDbXDfNle3Htuu9ovw+u9sAE8FYQqZXWNAOoUu03Sfadsi4XFo9gy6knCv7Y1ICzUrXQbolJemMxdKgTwYaFaM6K6uwKJZpHvX8ws4FBlBXUXe9ihxJCo9NZ0O4Ufot30Nq+rGnPFhhqsSUhUb/O9zc3JfEje4oA+e+Q8qC9sZt0foGi093gSTVyuGTVt2/naFRFjy7Yuo2v35AJiSp7hSb0NnMW1dRalgQn64IK7cfRvXCHV2/I4MksAORCHOSvZ/HYB/uhs65m64ICjc9MRE2pJNvCvPuxO1//diQvEwJODYGJT2P6bijY1PuGgYvPZ97I0DlhAznVtbLyf92+5A== 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=bzFf2gUbL6hQAqWlaxlv6WSxMOsq3cWITirJyGx/LUM=; b=Iec7IqmInshXlvrGwTj6uppXB0rKBvbWP68nI6PpVVQmxUA8yC+q7wdA3ZX4floZvOdCCoVM1gzC657r+9nXnMDMJLnQHaU8qxFwQeF47lOztDD+qx6FBy/Gpg4SwESZYdlIK8VYNd0BeJikEHnreaJTltoUI6oXfG6T0Twm/Hu3EOBdPfDu4kb5USPUOv7WzaM32jZ/rdnaABqDQH473iibw9Piku+OcdyLHklKxGd2zUnMepo7zl0tmCHT6IFl1iaX92pPQWmC55zIloJtyDziTzxzKt3Ns+44K76wAtXrrLQ6r8ENPSRBSTqu0XlIVW6NhBJulWqG76w5P9nU2Q== 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 DBAPR04MB7413.eurprd04.prod.outlook.com (2603:10a6:10:1a6::14) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7828.25; Sun, 4 Aug 2024 12:24:05 +0000 Received: from PAXPR04MB8459.eurprd04.prod.outlook.com ([fe80::165a:30a2:5835:9630]) by PAXPR04MB8459.eurprd04.prod.outlook.com ([fe80::165a:30a2:5835:9630%4]) with mapi id 15.20.7784.020; Sun, 4 Aug 2024 12:24:05 +0000 From: "Peng Fan (OSS)" Date: Sun, 04 Aug 2024 20:32:56 +0800 Subject: [PATCH v4 2/2] clk: clk-conf: support assigned-clock-rates-u64 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20240804-clk-u64-v4-2-8e55569f39a4@nxp.com> References: <20240804-clk-u64-v4-0-8e55569f39a4@nxp.com> In-Reply-To: <20240804-clk-u64-v4-0-8e55569f39a4@nxp.com> To: Rob Herring , Saravana Kannan , Michael Turquette , Stephen Boyd , Luca Ceresoli Cc: devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, linux-clk@vger.kernel.org, Peng Fan X-Mailer: b4 0.14.1 X-Developer-Signature: v=1; a=ed25519-sha256; t=1722774785; l=2430; i=peng.fan@nxp.com; s=20230812; h=from:subject:message-id; bh=7TVlq1qnZb1qUyp9XqfulwMtIztiW668BVycfgkxiRE=; b=VV2hfupZcsiddnFcgCrzrancGaCyalRkERTYwf60cn2iUpE205o9ngWwz8hovZe5cmKcnZ0M7 YT0GVHYKyUXAViZAQsSZRnhCwR0q+7lwu1oU26/FpOpqlh5uLCZJOqI X-Developer-Key: i=peng.fan@nxp.com; a=ed25519; pk=I4sJg7atIT1g63H7bb5lDRGR2gJW14RKDD0wFL8TT1g= X-ClientProxiedBy: SI2PR01CA0047.apcprd01.prod.exchangelabs.com (2603:1096:4:193::10) 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_|DBAPR04MB7413:EE_ X-MS-Office365-Filtering-Correlation-Id: 18c2044b-d512-4128-13ff-08dcb48054fd 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|52116014|376014|1800799024|38350700014; X-Microsoft-Antispam-Message-Info: =?utf-8?B?T01abnU4TDM3NnMyaTErWmMvOHo1TzhOUjVtUU52TlQxSjBJcVM3a1NxSnJs?= =?utf-8?B?YnMvMElRRzVpS2IycUdEbVdybFNGaEE4SXZBWG5OcXZPRzU0eWd2ZGJBWmty?= =?utf-8?B?cnhDcXlvTlRnMFBpd0NlR2ovZ01UM0EyV3VvQlFMS2E0aGNjWHErb3RvZ3VB?= =?utf-8?B?eU9TSy9nOVJuTjcxTmlsNFRZcjhRLzNCYUlWVCtnSTFYdm5rMzJDQXdXVm16?= =?utf-8?B?T3BpVkh0TjRuMUx3aVFCMnJ0aWpNVVVHdUh2TFpRMFlRNXEvLzFZM3QrTXBJ?= =?utf-8?B?M2xIQStJZStZNnFVT250Ujg2OXErdFk0dUNVWWxrMW5CeEFBTkxMMnk3NXdB?= =?utf-8?B?Tm5KYmxraFRhMjVWak55K2g4dElLaEZnMjRYa3VheDh4c1JHbW9PdTkxRDgx?= =?utf-8?B?emdRVXNwWTNVSWl3V3FpVDdNSkt5WjhramNUR3Z6NkJrMTZycGxxdzQ5STBn?= =?utf-8?B?MGcwcU1YT0FqcGlRblZhWkMveWwrRTYycGZ6VERzT1NYRDUrVW1Tc1JCZDl4?= =?utf-8?B?Q0svZ3Y0Q3lheFltcUdwaXhaZS8vTzBRWmRHTTVrTnRGb0RKZGt1Q09DYzZq?= =?utf-8?B?YkM4SUtscmNCYndJam1sbE5HaEZNcTF1V0xnTWdRY1FYV2NQd2dZTmxKYlQy?= =?utf-8?B?VEhsdE5aYUpXSVB2OFFneS9HaHRxSDBXa1lvVVVtVjZNNHB4RFByazZmTUU2?= =?utf-8?B?dkJDSFR5NWlUaEluNjhwUEdjd1dtdVVpbDFNdGtPMHM3UnBZYkZMZ0NUcTRr?= =?utf-8?B?UmhKelpoeTV1SVpoWXF6Mm1HZWdZTlIrbklyd1hUdDlyVFBLSkJ3MlNIRThN?= =?utf-8?B?SU93bW1JR1NXemZ5NWVEdlZBOUZjSlZZZXNRRjI1NmliZ2gyWFFGQU9Ba0Yv?= =?utf-8?B?REdmTllIdHI3OVlHVU1hRXlHa3dLQVFRRXJTVmNmZUVNdEp3cFVrYTZta2xH?= =?utf-8?B?Y25GTFdzWkU4TW1Jb2d6T3RJQUYwSi9NeEppdzhVM2Z4V1h3SDg5SVVNMmxa?= =?utf-8?B?WmdLY0xRVElIbUxYMDZrNVpOcTJhVjFOSG04cjdVYnpvNnRXNEFMSG5raDZ0?= =?utf-8?B?eUt2WWNVZ2oxQk5PMUN5ZDhHN28zcFF3cHViMUR2Qi9yQXlLd2FOclM2d1dk?= =?utf-8?B?T3VVY090eDZGeHh4L2RTdkM4NEphQktpNlM1engxYmxBQzNyczMxUWwyRC9h?= =?utf-8?B?Y1FxY2ZrMVUxanZ0bnRweHNjTXgrNnJBaGlXbEpXeDZ4a0lhOGh4UjFLSC9n?= =?utf-8?B?T1JTS1hqU3dxTWdacHFmdVZFWWQ4MUNIUlo2Sk4ybGxXWHhkNjZpcnZacDFC?= =?utf-8?B?NEw0cFVTQnE2YkFGUHRDcVFKU0N5TFQzQ1doUVBVNjJ4REhLN1dBZDY5Wmc4?= =?utf-8?B?anN0enBQSEx2bWVlOGZNcG5uTDN1eGVmSVpTbnFBeE1NRk5Qei9UMUJmMjR1?= =?utf-8?B?d0xTZWlFNmg4SkFqbWVnRG1ZRzFUZTFBMXpsTzlaWXY2OW0vSENUSVgremMr?= =?utf-8?B?ZjViYS9wc1RGYlpja0VVcWZLemlKZWFYOHZyVTNuRjk0akFtakE4WkhUT2NM?= =?utf-8?B?WnRrN0UwMGZKZkFvRVU0VUNHcjQramw1bjdFaXU0WWQwOUVIdUswazd1Rkhy?= =?utf-8?B?T2tIMnBGRjQxN0FTa3hhMktjSCs1cnBOR1gxTnRzK0JTRkdLQTJCd1FmWDNv?= =?utf-8?B?U1RSTzJ6SS9rclBzV1Y5NVUyQ0J2MmdKN1N6d01EWjJwOTNETzhCNWpROTNX?= =?utf-8?B?Mkcwd0txMVdzNXdTRFA2N0oxSGZiS29vQzN0MUIybjAwRVRTQkN0Y2R5ZmlP?= =?utf-8?B?Q1VXZlBORWMvNTJsWmdqRm5icVJpYWFrS2FWMnZkc0RublNBUUJRcmoyczFZ?= =?utf-8?B?YmNkTTNENU9vS3NyUGw0OW5scnhLM1JYSlJzMng2alVVWWc9PQ==?= 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)(52116014)(376014)(1800799024)(38350700014);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?OXBicXI4ZHQxeWZQM09nUXNOWi8xejdrT3M0ZHF6QTlXektZNHhMTWZwZlc4?= =?utf-8?B?MkVVR2Q1dDdDbW5uM2xnKzdDM2lvcStCcDhIRmNaNm1ZRHZ3SVo1ODNIYk9v?= =?utf-8?B?S0VLNW5Jb2xKREFNbXhGbmdhTk1icDB4YW1RYUxmNlhXbm1GS3hvZkRaMnFL?= =?utf-8?B?WkZLNzNMTVZxekEwL2VNckt4bUx6VnBnMHZaUGZuL0NTWWpxYkM0SUNWeWRz?= =?utf-8?B?RHIrQ0laSERxUHo2UVdJSlZmczhuZ1pxdk9DQ0JCZHF5MkNFdkhuL21EVllI?= =?utf-8?B?OUdDTXVnZCtCdHR5aU9zc3htaTd4R3VjWllkOWR3M1I0N0dhRVlXaHhvZHNE?= =?utf-8?B?SEwxblB5K2ZRME9CZ2E4MEt6d2xGd1o5OWNLQi9YSjlGYVZWaE5uZlZYOVhL?= =?utf-8?B?aE9KR1Q4ek14WThRdUhaNFQvTFlBWlMxdENPRDdHbmk0NWtoRTNHYmJWaHov?= =?utf-8?B?d3VONWl5QXN0UVFidmtTTWtTbmc0R2VMdWhwMlFnbHVFWGYxZDBjUThzTlQy?= =?utf-8?B?SHNwOWJRS2gzNlV5bGFSZEd6RUc3VHVnNnE2elU0THEzbVJXLzFxRjFXWmlD?= =?utf-8?B?UXV0dW9scFU2Uk5yZUY1MUZMSlppUjlFYnVBQ1hySStrOUtjNnZTK0h2a0t0?= =?utf-8?B?RVYvZUJQUXc2dFhuMVY0ODFrUURHaXZSVEszWTBCeE5NMTlwYnlQYXRpdVc4?= =?utf-8?B?djk1eWhtQlBMcWJKL2gydU9TajZRVzVVQll6YllVTGhpY0tZVk1oanAyODNM?= =?utf-8?B?OFh2cklZNjNJQ0JrSG8xVDl3bUxhVG92L3hqTllMbExFdUpkWllwaEdLMTVv?= =?utf-8?B?UFpRamQyQmpHSHNrVXFwZ2luR1pidkNRemxsYkROT3luSjhValNWOXNCK2JV?= =?utf-8?B?RTZiM0k2aWVkaWF1N3dtZ1JjYVYrbkFHbVVzd3EvRnlHa2xoa2lESi9LK01k?= =?utf-8?B?MzNKQkZSUWtXWEhpTHVqeVpZbzYxMkxHNmFDbWUzWlQzZm1FMEZGSGRvTENZ?= =?utf-8?B?U1BsMjdIaysyRVVnVGFZK0dvV0tFdDFHR1R1dFpnQ3piamtLMFcvdDdNc1Ir?= =?utf-8?B?V2w4ZDBsVWlXOFQrV0tDN1l0RGJZYTlsdFhacFJOMEFZejM2cFpDUTlQSVpJ?= =?utf-8?B?b0lvV1NGSzVUUW8wVVVsb01OMDBiR1JXYlhkL1NuZndsSVNQNzRDYjArS1Bn?= =?utf-8?B?WmFtZ1BXOStIRVAxZmRCeXRjdlBjb3g1Z3lOOVhYYXpJc0F0dzh3eXBBbXdy?= =?utf-8?B?ZHVXQ3ZWZWo0M25JYksyUTB2MkVWSzI0eE9WUDdjWXJLQk9CSEpJYzY3VlY5?= =?utf-8?B?SHFjb3Y4VHBtcHhUU09JaFg3U2FPZUlwbmg5TVJkYmdOQ1N3YWpLeTRiOVpT?= =?utf-8?B?cVRUWncyeHJOQzQyYytUclJteklTUVRkOEFjWG5EMmdXdEpzYWV3Q0lEWUF4?= =?utf-8?B?TzZRelhTeTNlVzVHby92a0FvVEFXYXY1amczZDJVT0VkS2lPUStZemw0SzVI?= =?utf-8?B?WEh3blgwLy80RXdDS3k5TVp2K0tDaDJmOWxKTXExK1lwWW5CZGZZL0FjcUhZ?= =?utf-8?B?U3hkMyttemdPY1RTOEhBMnkvU1dZMmgyWWdrUExoTnltaHZFN3dwc1krY2s5?= =?utf-8?B?NW9PNlAxelE5czhqVXdaaFFqUUxtajhFNzZZb00zK3o1NWx3Z3dWeXBNN3Vj?= =?utf-8?B?emZLV0UrRmltRGlhQUdjTkxDZUxmdHNiRGNEc3NSR2JKZCs1WDJ3azA4enQ4?= =?utf-8?B?UlRUeU4xa2Vzb29KNXdoZUtzN2pCczM4aXMxdGlNYmMvU1hLaUQzYThjN0RH?= =?utf-8?B?MmkxaFFHYlAra3dlVmdjT1Z6RFQzamV3Tm83ZTZNd21PeUJaZzR3UUhJY0Jh?= =?utf-8?B?MmtmcVlyOGRGclB5UnZDTVlHZWNBTkU1ek1CNGJ0TTBVVktlQVZSSEtXdVh0?= =?utf-8?B?QXVIMlp2Y2ptYTlyL05VMHFDYW1HTGpxSHl2M3BMWUhyOG5qdjRrN0FoWmJz?= =?utf-8?B?bTNuTWdzOGc5QlY5NWErZUd3SmVXRDNJUlkyTnJEZzczMm8wd085SU9JaWM0?= =?utf-8?B?RkMwaGZlNEtQczZtckFIT0MrUVZDSVdiZklGbjVrUlFCMFZ5TitZemtxUXY2?= =?utf-8?Q?wlC4uRmnqDbe4Yh0cH+itOm6d?= X-OriginatorOrg: oss.nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: 18c2044b-d512-4128-13ff-08dcb48054fd X-MS-Exchange-CrossTenant-AuthSource: PAXPR04MB8459.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 04 Aug 2024 12:24:05.5233 (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: j22dPgNLCjrV29CDScZRnBA41IRx2vTpiPRWdAAPu133MYCIV1YJazOZquiszLX8yjO7dkMVMoMEgRj7ODVqeA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: DBAPR04MB7413 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 | 42 +++++++++++++++++++++++++++++++++++++----- 1 file changed, 37 insertions(+), 5 deletions(-) diff --git a/drivers/clk/clk-conf.c b/drivers/clk/clk-conf.c index 058420562020..51f994366d73 100644 --- a/drivers/clk/clk-conf.c +++ b/drivers/clk/clk-conf.c @@ -81,11 +81,44 @@ static int __set_clk_parents(struct device_node *node, = bool clk_supplier) static int __set_clk_rates(struct device_node *node, bool clk_supplier) { struct of_phandle_args clkspec; - int rc, index =3D 0; + int rc, count, count_64, index; struct clk *clk; - u32 rate; + u64 *rates_64 __free(kfree) =3D NULL; + u32 *rates __free(kfree) =3D NULL; + + count =3D of_property_count_u32_elems(node, "assigned-clock-rates"); + count_64 =3D of_property_count_u64_elems(node, "assigned-clock-rates-u64"= ); + if (count_64 > 0) { + count =3D count_64; + rates_64 =3D kcalloc(count, sizeof(*rates_64), GFP_KERNEL); + if (!rates_64) + return -ENOMEM; + + rc =3D of_property_read_u64_array(node, + "assigned-clock-rates-u64", + rates_64, count); + } else if (count > 0) { + rates =3D kcalloc(count, sizeof(*rates), GFP_KERNEL); + if (!rates) + return -ENOMEM; + + rc =3D of_property_read_u32_array(node, "assigned-clock-rates", + rates, count); + } else { + return 0; + } + + if (rc) + return rc; + + for (index =3D 0; index < count; index++) { + unsigned long rate; + + if (rates_64) + rate =3D rates_64[index]; + else + rate =3D rates[index]; =20 - of_property_for_each_u32(node, "assigned-clock-rates", rate) { if (rate) { rc =3D of_parse_phandle_with_args(node, "assigned-clocks", "#clock-cells", index, &clkspec); @@ -112,12 +145,11 @@ static int __set_clk_rates(struct device_node *node, = bool clk_supplier) =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", + 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); } - index++; } return 0; } --=20 2.37.1