From nobody Fri Dec 19 17:25:29 2025 Received: from AS8PR03CU001.outbound.protection.outlook.com (mail-westeuropeazon11012054.outbound.protection.outlook.com [52.101.71.54]) (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 6719021FF4B for ; Wed, 23 Apr 2025 14:38:42 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.71.54 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1745419125; cv=fail; b=Xp4554ZKTfqcNAQX0ed2G9sgF+1K1+T3BLU7K9/XudLB3ZOft28LEYeBnFLdUj+apIvQvdTCkac61pHt2s7ecQvt5/2imdqNZgRMdr1mnUPf6qi8/TVFHsEcWoyeBzHHoW5kk/M1WLBVk6vhMlx8lKBwqsC0BY1drSguPnAu2l0= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1745419125; c=relaxed/simple; bh=RgClzDEPzF98dZb5wNlSJi0VJ/Zx/bC+7rhVIacgGK0=; h=From:Date:Subject:Content-Type:Message-Id:References:In-Reply-To: To:Cc:MIME-Version; b=riKADr6a2IdMrvUVHWBtuUWpYFiOwF+5epqYkGAI24vkinyy414D1dsKe5n/fVS/8r/bjbWqn7CI1q2Jhn55RAHmhV3mWllYI3MSCddhGAlakQ+bMVhBSsnipVZ+nu9vz+37t4NnkPv1jujFN3Q/JA+LJBLM9bmCzTWwAn7CW6U= 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=fdUmlTOx; arc=fail smtp.client-ip=52.101.71.54 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="fdUmlTOx" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=ZNDTRdkmfAgQhzRDDPZ5nZqnSVfzX/TRXKC58aaflBTBw/rhTFcQ5jk4qj0KfrYK9yB54JU5JIp+6FOQI9KHRz2HZ5uuCN1u6NE8034ja70v9M1KfWplzQyFN++3jfZc0VmH4SwDc7minmIyfyTivGEG8xlCXriFPuoXEAmp6EXasXMy1UGm8h1J4crE2oyl9cG9ZolyjX05gXPWZKXr0xsiAVVxo0Ougs4irppm+2eikyvxcQEOAZ54l4/6vAQDuDjOGMfTVwJziS/BXi4W7Zc5idamSkKV/PSx35jaHb6unpjShebJrRnI0jmkbzUuf0je1aoighQCUAFOyGkgHg== 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=6mddRfTLa50H9WDE9X5iRHP5Fux/We5Oca38SUukZbo=; b=NebhKZo9DrP42jIJs/Ts4dhwVDiyfKSzkFm0jO966QfxpzNVgAvhJZWti4O9MRWm2RdHA0Bt+RnyY/vAHYLEWCXokZFsJfCcXTGBS2qfoFtVGgJUHNYItREXD2Oubc2fZA324SsAA37McLUFSMZxmRUqi3ms9jrzlVPpJEaugzYhpVVjDh93T4hhJ5OiHQfrzTx+qcT42vi9/hOhlg/JJCbQBXY+4iUsxReb2KSZ/uF18Oqh+ns/y6u0BPbQiXwOlU0nYkZkJ8HWrnHHpwDdz4x5fun2xw85oOzAu7FiHnsTkv9Cn6AlNMtqg34AQg8NQvwNJuPwBBO6zXHbXihcPQ== 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=6mddRfTLa50H9WDE9X5iRHP5Fux/We5Oca38SUukZbo=; b=fdUmlTOxXLi1LudNua+KytxObrJNK31e/IOJ8ErPX9o0zSmkYzpwBXaaS4ONZDRGK2iM6CNeoIeeNFZX7oTIbHrdqekBnGr0vNM/VCkggqjKkB6yjDl0e3GO5fGq5J4xrXFdbjcx6D3P6UfSfW7Op+O3g3Zh+9J2gmh8T5U9HRLyZaCbIyEme4gH9vcyA3zdmdc4f56Rnv0GVsXGZ1g+0JfQIOpWgJqZgjhyspWE6exS/7BPr+NK/lxOIOxl0ySr08arevjkZPk/RoHAzR4SeLClq6VREQjEMkwEzokw8WWn4+kkCPAYwtwOkPmibA/tI5mA86WtLc9JioYl0vVjFA== 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 AM9PR04MB9003.eurprd04.prod.outlook.com (2603:10a6:20b:40a::9) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8655.22; Wed, 23 Apr 2025 14:38:36 +0000 Received: from PAXPR04MB8459.eurprd04.prod.outlook.com ([fe80::165a:30a2:5835:9630]) by PAXPR04MB8459.eurprd04.prod.outlook.com ([fe80::165a:30a2:5835:9630%5]) with mapi id 15.20.8655.033; Wed, 23 Apr 2025 14:38:36 +0000 From: "Peng Fan (OSS)" Date: Wed, 23 Apr 2025 22:37:04 +0800 Subject: [PATCH v2 1/3] soc: imx8m: Cleanup with adding imx8m_soc_[un]prepare Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20250423-uid-128-v2-1-327c30fe59a9@nxp.com> References: <20250423-uid-128-v2-0-327c30fe59a9@nxp.com> In-Reply-To: <20250423-uid-128-v2-0-327c30fe59a9@nxp.com> To: Shawn Guo , Sascha Hauer , Pengutronix Kernel Team , Fabio Estevam , Marco Felsch Cc: imx@lists.linux.dev, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, Peng Fan X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=ed25519-sha256; t=1745419041; l=6731; i=peng.fan@nxp.com; s=20230812; h=from:subject:message-id; bh=kOB9a1d5DUOTsvMVEdbr+GlhlX3umR8H6BJ8hk0sq6k=; b=r8vOPBaZywmMPpHnNI85ZQmFhJuv5BWL7orNTjKRQhXFdWneoQeb5HlfAw30/krno3Xk1m+7u VQ7MZXlv5Q6AJ6t0scWy6vxYjEP0Sqp7HrRPvVhdOWnTJS31q/S8CPv X-Developer-Key: i=peng.fan@nxp.com; a=ed25519; pk=I4sJg7atIT1g63H7bb5lDRGR2gJW14RKDD0wFL8TT1g= X-ClientProxiedBy: SI1PR02CA0051.apcprd02.prod.outlook.com (2603:1096:4:1f5::6) 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_|AM9PR04MB9003:EE_ X-MS-Office365-Filtering-Correlation-Id: 6740e5d2-d661-4e14-ee12-08dd827487aa 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|52116014|376014|38350700014; X-Microsoft-Antispam-Message-Info: =?utf-8?B?OSttV08zVDUxMk1tUlNaaXc1cys3ZHAwQmRxWTB4VUFzY3orbUt2L0g3L3NK?= =?utf-8?B?M2pOVHpPSExmYUN5a0hPZnhML3RpOFRQS2FHWmtZVE1SSUpqdWtwT3NuTVpR?= =?utf-8?B?ZHFTd2p1RU5pK0pIdnJyMm96R09acTl1Q0dNWjF1RHVUeWJreW10dVBRdFpT?= =?utf-8?B?clNSOFcxZ3NNZU41YkVDTzVidzhpdm12c0hQcDAxV0xYNFBXYjJFenU2YnJw?= =?utf-8?B?ZnJUZS9hck1JTHM2ZE4yNjhMM3lEMlBmSGkyUm5wcm5nbWJKL1JmYTB2VWIy?= =?utf-8?B?aWpFeGYvWEtjNmZNVUZqLzFNRW13U0VOcHEwZCt3SVdoWGRNSFJkbVlrdTMr?= =?utf-8?B?bkVmZWNHTVZ4UkxYY0lZMlB0QTRyNnZSY0poa2UrdDU5aEdZY0RIcEV2bDJD?= =?utf-8?B?MmFMVitvTllJOXk1eG9oNUZXMk1OcnN3QkhxREQ3NU5STWZvejZEdVJ6Qlhx?= =?utf-8?B?bE9SL1B1cS9BUmpYeXFRcjdaMnhYOG9peHcwTUEyeCtKSS9IQmQyRE0rQTZD?= =?utf-8?B?ZVlPS3pQTnNDWVg0WWVjQUZEVWtDbzlrUlNNSkhKeGQ5Z3ZKOUdYS1VpclJ3?= =?utf-8?B?c1llU3U2c2JPbUNqM3ZEbWJOWjVFbHdLNEEwU1NhUE9pcWlseTg5ZWRrTVdu?= =?utf-8?B?UWxHM1VpNU1ESFZNR0xkdUF1YXJmcGpXTEdEL3VoSy9zQWRCNnlwUmVEMjYw?= =?utf-8?B?R0U1TkVBWm1IMDdNSFdPK21lUWlBejZJT2p3dm9hbndjRUV1OVBabFpqbzBG?= =?utf-8?B?MUxhc1RXUWZqSHVGU09LbVJlWWVGWHJDV3c1a2NZSE1xbGVUUW8zeUZZZmp1?= =?utf-8?B?N0FHTlVyam4wU0YySEdMTXVldkxjQ3ZXZVBLRW9HOUpsZXc0Q3V5T3VWc3hl?= =?utf-8?B?YTJURGVqbTBjYWdCKzZjamdaZ2hpd0tVTzE3R0R4d1hJUzZaa3JHbFlQMmwx?= =?utf-8?B?UzVFOVNuQVhzVWphcGdvWm1wY01sYXRWM2E1L3NRTVduWDQ2bWQyQ1J0bldx?= =?utf-8?B?V05RVnhoSThJbHJmWll6MkVEODRyOTc5b1liM1pXdGNXK2VTMnBzOCtIRkEv?= =?utf-8?B?VzAvSmpaRTU0c3lGbHNtRTNlMU9UTEs3ZlFYSDMzUXNWRnVUL3dMbklxTHJz?= =?utf-8?B?Mzc1bzBHTTVxLzlBRFdEeVpiK2lOU1hBei9OSGN3ZWhtQWg2Y2t6V2FtS1BW?= =?utf-8?B?ZzNpdnIrOU9lQzYyY1F1cTgwQmE5eXp5NG5zZ2Y5cEdhZG53VUNoN2psb2gw?= =?utf-8?B?YThGemRnQ0tQZ05TRm9ZMHJWM1czMWlQREY0eWtqWUd0SUZlcnlWWE9GenpP?= =?utf-8?B?d2w1TTJKUGpHcEhiWE9rTWxJQ1RJYUxmRGRkQW5WUGo3NVpCS2NyaEV0N1hZ?= =?utf-8?B?V3VxbG82OVVXV2hLaS9YNE9aRmxQSkNJUkhjU3IwWXF0Wll5aVNhT3VHVEtO?= =?utf-8?B?SjZPY2NSdGJxTFI1dktSQjUwT2dDTGRkWEM5NEhEZ0FQcGZnMURVRjBoSDR2?= =?utf-8?B?bDhLRGRzbnZPblVKL3ZkNmVkdkVKYXMrcUpreWRlcER6YzZZL0Z4TkM1V1FP?= =?utf-8?B?ZDRqNis0ZEJ4Mkh6UTVEaWNmcUZvNWt3L3NCNnhJc1FQVVY2OEtHcjI0eUE3?= =?utf-8?B?YmE1c01PbFprZlhNS3kvaVF1OFZIOCtlUlRRbVYyYXJrV1ZUVGp2TXlOUmlK?= =?utf-8?B?Tmk0VCs2ZWpFeVAxcUxUcG1JZTN5elRnblB4QnBBaHUwak8yNTNWOWg1NjlS?= =?utf-8?B?MVhxU0JjNGhwbHIyMWVxTzhmc0ZyUVh5UWVVMUxwZGM0Wk1YY01zTnpzMTg5?= =?utf-8?B?cG1XWFVKcGgybGdPK1JJV0M1TzRXVlpvVFZKS0pjZ2crTFdQZnpRRlp2Z2ZW?= =?utf-8?B?bnZGUFRQWENzR2ovYjZxNHpFQnBBK1hBZ2EvbHpNTlpFMzJ1VEZQNHpodzJE?= =?utf-8?B?d0dtU2JLOEg4MUVsQjBER0JCNi9ROGNvQlhTYTRWWHd2cHNUU1Q5cXVWL2lo?= =?utf-8?Q?rFknjjIAAq4IL/IW/a5XkJYQc+ld+8=3D?= 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)(52116014)(376014)(38350700014);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?ZU80NC9tYUtPYXdUUW83U3JtSHkxaG4rV3BvcjBrZThGV0VGQ2x4TWhnOU8r?= =?utf-8?B?RUVPMW9MTXhmY3VjT0F1RTBNcXBvWjJTbE5EcEROSURxR1pjbjJYL3l1VUdG?= =?utf-8?B?T284bmgwMHpQZkVwSEV1Yks2dFNNa3A3amsxU2E1UC84Y09FWmRZeXlkeFls?= =?utf-8?B?QlZCYVZvaldNaFk2ZGIzY2Y2R0xVQ2pNYzlaYVhrMi96bHE2ZHNxYzJEaG9y?= =?utf-8?B?Q3NTZmt3M2ttRzVsREcxRU9tbUF0YUlsYWNNeVVjTnBSTDJzbnJoNTlJSEFN?= =?utf-8?B?bEVKZi8xbDM5MmdLL0gxVExwcjk3QXNUMEVwYXhQZVBhUVp5RUw1aGh1TWNO?= =?utf-8?B?ZkZFeTZFU3R2eTV5d0d4Lyt6c1JtSWdOaC9HUVJlNVQwcVNYUU5hS2VGZE5G?= =?utf-8?B?NE5nVDlucmN4Vmx0NmtacUUwUUM4bEJQN1NMNTZKOE9Cb0NKbUJyNk94KzhS?= =?utf-8?B?bVBEdk9DRTNrRTNLd0dvNUtFa3FOWlFzbTJ3RDJTTW0vcEJZbXBwbEJyQUpM?= =?utf-8?B?RHRRUGovS0pIdUFlQVR0K1ZGRHFEMW9pOVdYNGNhV3pNeUV3NlVMVy9ad0Ex?= =?utf-8?B?SndpRzdwQmpoQ3BXd0NiS053RGRzdzloaWdiYUlFNUl4WFF6Vk9pdERDWTBr?= =?utf-8?B?ZnNpcUw3ZUpvblEwZWZvKzVUN01QNkUzOXAwU1A2dkdFWDJHdnBZU1JrNDAv?= =?utf-8?B?V2p5VjV2ZXhUSU50NjBmKzJrbG5wTnZWZ2NPU2tDTlBUejRnaHVJZ1JOVm1I?= =?utf-8?B?MHF6WmtGSnhMVnBXSTUrdXgyOGlHaUNTcS95NjRpUWxhK3YyeHU1cFRXUzlG?= =?utf-8?B?K0JzWFR1S1FxNGRuSWlCRU1ZQjRJZ1FYM1MzZ3piNUZ5aGJFV0tjOUlhaFZy?= =?utf-8?B?VVg3YWxBQ3pBYS9OdDV3WDFvYTRmSk40UFk0QUQwMWxtR0VDSUUvWHVRU1Nn?= =?utf-8?B?LzArdU42UGhJOElZek0vckl5Mi84S2RhRlE0cVNrd0ptUGZMUkZzcWUzZHoy?= =?utf-8?B?OC9pSnlWcmh0ejQ5L1YwbE1MdkZrNTBTcGk1enJ3cnk1eGJudGhNdzZkdXZV?= =?utf-8?B?WVRyOGgySUUzZkRZdG9veDZxNW95c255aFkvRlFYYmxraFlNRlkrSFJFQVV1?= =?utf-8?B?M0JJTlUzaHdFQUZuVktPcWVMY2pheEh6Mlp6N3lFV3FPM2duRFB4LzE3WTRo?= =?utf-8?B?cU43cFcxUit3UG9UeFlUUXNiaWhKcUwvUU5TdEZZSlZwY3ZGTGJrc0NVcU5I?= =?utf-8?B?R1NpdytYNE9yWk5MTmFrM1M0anhvaU45cFNsaWJRQWxOSC9HY3NvQlc5S1hM?= =?utf-8?B?cHUwOHAxVVZScmtMeFl0VFArdXFwR3gxQTNpc2pacUIxd0QyR2VJb2VudUxU?= =?utf-8?B?Slk0QVdSM1dzdHgyd1F4WWlNZTFta3NJcGtBNy9QRThMOCtsc25UZVZtN0Nu?= =?utf-8?B?QStKMUpDc254dU9BblkwNWQ2SEpoNzNENEMvVXorWGttV1EwUmx1YkdOTnJH?= =?utf-8?B?ZUdTZENtdkxyMktQSEZGejl2dkFjRy9IOTVnU2pyeHE0NmZ1TFUvcGxWR1ZR?= =?utf-8?B?aW92L2o0dGV4OGpKWGlMSVFGWWlUeXppSm00emQxV09JbXZzYnlJUlgyMzhp?= =?utf-8?B?YitPNktFOWthbjBkdWUxdkFIWWFtMmtaR3p5R0VDNzZFUUhabFdhbWhnUlpY?= =?utf-8?B?YmR2SGgzcndDQ3JpVUROeHd5SjFlMXJmSDU5NHlrSWg2WG00SG83aTEzWDlS?= =?utf-8?B?R3dXeVQ0cWxQRFZQTEs1KzJOc3BBa1ZZaVBZNG1oUFBzRTNkazFLWnZsekNs?= =?utf-8?B?RGxVemNJZnhvTnBHUEtoTUUrbFU3ckdsQXJXWEZDcUFHSHNaZHUwcmY2Q21B?= =?utf-8?B?VjFON2lRWkRkbmdyOTRhRHBoenRxQitsNWNBU1RMc1V5OXQ2MjIycW9NYmJU?= =?utf-8?B?MU5RbkVNZ3dZM21LWWttdXhoa0NTeDNlWk1La2N0N0VUK0FRY0dGSjVsdjJL?= =?utf-8?B?dyt1NEo0VmxvNmIxWEFFWllVMVR3dm1TQWthc0FDbkh3SUhnMkRTaTJidnA5?= =?utf-8?B?OGoxVHdQbk9LV0xiYmJTaWxJcE9HTHUwOU8xU2Y3ajJSNnZLczk5V1J1OXZv?= =?utf-8?Q?Z+ItS01tK/OuM7nqixaNSoglG?= X-OriginatorOrg: oss.nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: 6740e5d2-d661-4e14-ee12-08dd827487aa X-MS-Exchange-CrossTenant-AuthSource: PAXPR04MB8459.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 23 Apr 2025 14:38:36.4133 (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: ZyZAas7vQsAo3vmKooo77iKEfk/GV/jbi3712yPyvqR8eea7T2mzqVsO22yxwmgisGSCjbCrnZj69Uhu3IsyCA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM9PR04MB9003 From: Peng Fan There is a common flow to i.MX8M family, map OCOTP register base and enable ocotp clk first before read Unique ID from OCOTP. So introduce imx8m_soc_prepare to do ioremap and enable the ocotp clk, and introduce imx8m_soc_unprepare to disable the clk and do iounmap. With this patch, no need to spread the ioremap and clk handling in each soc_revision hook. Signed-off-by: Peng Fan Reviewed-by: Marco Felsch --- drivers/soc/imx/soc-imx8m.c | 133 ++++++++++++++++++++++++----------------= ---- 1 file changed, 72 insertions(+), 61 deletions(-) diff --git a/drivers/soc/imx/soc-imx8m.c b/drivers/soc/imx/soc-imx8m.c index 3ed8161d7d28baa6d87174d19eb61cbc5833371e..c4879947dd2d6573854bce86b86= a97159c19a875 100644 --- a/drivers/soc/imx/soc-imx8m.c +++ b/drivers/soc/imx/soc-imx8m.c @@ -30,7 +30,13 @@ =20 struct imx8_soc_data { char *name; - int (*soc_revision)(u32 *socrev, u64 *socuid); + const char *ocotp_compatible; + int (*soc_revision)(struct platform_device *pdev, u32 *socrev, u64 *socui= d); +}; + +struct imx8_soc_drvdata { + void __iomem *ocotp_base; + struct clk *clk; }; =20 #ifdef CONFIG_HAVE_ARM_SMCCC @@ -49,30 +55,12 @@ static u32 imx8mq_soc_revision_from_atf(void) static inline u32 imx8mq_soc_revision_from_atf(void) { return 0; }; #endif =20 -static int imx8mq_soc_revision(u32 *socrev, u64 *socuid) +static int imx8mq_soc_revision(struct platform_device *pdev, u32 *socrev, = u64 *socuid) { - struct device_node *np __free(device_node) =3D - of_find_compatible_node(NULL, NULL, "fsl,imx8mq-ocotp"); - void __iomem *ocotp_base; + struct imx8_soc_drvdata *drvdata =3D platform_get_drvdata(pdev); + void __iomem *ocotp_base =3D drvdata->ocotp_base; u32 magic; u32 rev; - struct clk *clk; - int ret; - - if (!np) - return -EINVAL; - - ocotp_base =3D of_iomap(np, 0); - if (!ocotp_base) - return -EINVAL; - - clk =3D of_clk_get_by_name(np, NULL); - if (IS_ERR(clk)) { - ret =3D PTR_ERR(clk); - goto err_clk; - } - - clk_prepare_enable(clk); =20 /* * SOC revision on older imx8mq is not available in fuses so query @@ -91,55 +79,24 @@ static int imx8mq_soc_revision(u32 *socrev, u64 *socuid) =20 *socrev =3D rev; =20 - clk_disable_unprepare(clk); - clk_put(clk); - iounmap(ocotp_base); - return 0; - -err_clk: - iounmap(ocotp_base); - return ret; } =20 -static int imx8mm_soc_uid(u64 *socuid) +static int imx8mm_soc_uid(struct platform_device *pdev, u64 *socuid) { - struct device_node *np __free(device_node) =3D - of_find_compatible_node(NULL, NULL, "fsl,imx8mm-ocotp"); - void __iomem *ocotp_base; - struct clk *clk; - int ret =3D 0; + struct imx8_soc_drvdata *drvdata =3D platform_get_drvdata(pdev); + void __iomem *ocotp_base =3D drvdata->ocotp_base; u32 offset =3D of_machine_is_compatible("fsl,imx8mp") ? IMX8MP_OCOTP_UID_OFFSET : 0; =20 - if (!np) - return -EINVAL; - - ocotp_base =3D of_iomap(np, 0); - if (!ocotp_base) - return -EINVAL; - - clk =3D of_clk_get_by_name(np, NULL); - if (IS_ERR(clk)) { - ret =3D PTR_ERR(clk); - goto err_clk; - } - - clk_prepare_enable(clk); - *socuid =3D readl_relaxed(ocotp_base + OCOTP_UID_HIGH + offset); *socuid <<=3D 32; *socuid |=3D readl_relaxed(ocotp_base + OCOTP_UID_LOW + offset); =20 - clk_disable_unprepare(clk); - clk_put(clk); - -err_clk: - iounmap(ocotp_base); - return ret; + return 0; } =20 -static int imx8mm_soc_revision(u32 *socrev, u64 *socuid) +static int imx8mm_soc_revision(struct platform_device *pdev, u32 *socrev, = u64 *socuid) { struct device_node *np __free(device_node) =3D of_find_compatible_node(NULL, NULL, "fsl,imx8mm-anatop"); @@ -156,26 +113,66 @@ static int imx8mm_soc_revision(u32 *socrev, u64 *socu= id) =20 iounmap(anatop_base); =20 - return imx8mm_soc_uid(socuid); + return imx8mm_soc_uid(pdev, socuid); +} + +static int imx8m_soc_prepare(struct platform_device *pdev, const char *oco= tp_compatible) +{ + struct device_node *np __free(device_node) =3D + of_find_compatible_node(NULL, NULL, ocotp_compatible); + struct imx8_soc_drvdata *drvdata =3D platform_get_drvdata(pdev); + int ret =3D 0; + + if (!np) + return -EINVAL; + + drvdata->ocotp_base =3D of_iomap(np, 0); + if (!drvdata->ocotp_base) + return -EINVAL; + + drvdata->clk =3D of_clk_get_by_name(np, NULL); + if (IS_ERR(drvdata->clk)) { + ret =3D PTR_ERR(drvdata->clk); + goto err_clk; + } + + return clk_prepare_enable(drvdata->clk); + +err_clk: + iounmap(drvdata->ocotp_base); + return ret; +} + +static void imx8m_soc_unprepare(struct platform_device *pdev) +{ + struct imx8_soc_drvdata *drvdata =3D platform_get_drvdata(pdev); + + clk_disable_unprepare(drvdata->clk); + clk_put(drvdata->clk); + iounmap(drvdata->ocotp_base); } =20 static const struct imx8_soc_data imx8mq_soc_data =3D { .name =3D "i.MX8MQ", + .ocotp_compatible =3D "fsl,imx8mq-ocotp", .soc_revision =3D imx8mq_soc_revision, }; =20 static const struct imx8_soc_data imx8mm_soc_data =3D { .name =3D "i.MX8MM", + .ocotp_compatible =3D "fsl,imx8mm-ocotp", .soc_revision =3D imx8mm_soc_revision, }; =20 static const struct imx8_soc_data imx8mn_soc_data =3D { .name =3D "i.MX8MN", + .ocotp_compatible =3D "fsl,imx8mm-ocotp", .soc_revision =3D imx8mm_soc_revision, }; =20 static const struct imx8_soc_data imx8mp_soc_data =3D { .name =3D "i.MX8MP", + .ocotp_compatible =3D "fsl,imx8mm-ocotp", .soc_revision =3D imx8mm_soc_revision, }; =20 @@ -207,6 +204,7 @@ static int imx8m_soc_probe(struct platform_device *pdev) struct soc_device_attribute *soc_dev_attr; struct platform_device *cpufreq_dev; const struct imx8_soc_data *data; + struct imx8_soc_drvdata *drvdata; struct device *dev =3D &pdev->dev; const struct of_device_id *id; struct soc_device *soc_dev; @@ -218,6 +216,12 @@ static int imx8m_soc_probe(struct platform_device *pde= v) if (!soc_dev_attr) return -ENOMEM; =20 + drvdata =3D devm_kzalloc(dev, sizeof(*drvdata), GFP_KERNEL); + if (!drvdata) + return -ENOMEM; + + platform_set_drvdata(pdev, drvdata); + soc_dev_attr->family =3D "Freescale i.MX"; =20 ret =3D of_property_read_string(of_root, "model", &soc_dev_attr->machine); @@ -231,11 +235,18 @@ static int imx8m_soc_probe(struct platform_device *pd= ev) data =3D id->data; if (data) { soc_dev_attr->soc_id =3D data->name; + ret =3D imx8m_soc_prepare(pdev, data->ocotp_compatible); + if (ret) + return ret; + if (data->soc_revision) { - ret =3D data->soc_revision(&soc_rev, &soc_uid); - if (ret) + ret =3D data->soc_revision(pdev, &soc_rev, &soc_uid); + if (ret) { + imx8m_soc_unprepare(pdev); return ret; + } } + imx8m_soc_unprepare(pdev); } =20 soc_dev_attr->revision =3D imx8_revision(dev, soc_rev); --=20 2.37.1 From nobody Fri Dec 19 17:25:29 2025 Received: from AS8PR03CU001.outbound.protection.outlook.com (mail-westeuropeazon11012054.outbound.protection.outlook.com [52.101.71.54]) (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 503B827D76E for ; Wed, 23 Apr 2025 14:38:45 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.71.54 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1745419127; cv=fail; b=SpgT52HbUuAcs8TLNB4aptDq/j4HWX5FsqHodBeRV6tYlyV5ajDsJcer20IU3R6kihfFEels9uHpfko0488SMobgx0Z8agm+vmPNG+YpRyilK8Iwv08f5hZRZECzTkA7ZTeloSqoUiD/XPFvPt6VOhhnAb5IiwaKwiHExUvJmq4= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1745419127; c=relaxed/simple; bh=1VtdMTRkJSMlrPrnI19ku95VN3ULEb8vQYE7FyuqZfA=; h=From:Date:Subject:Content-Type:Message-Id:References:In-Reply-To: To:Cc:MIME-Version; b=HdJzeT+swq7bRQ81Cj6c5A/DG3GxcATX4z0+tgKoteZwXj9Yp7fX+iyYXlAYHNd8G98+MYXUz8QXnaVdmmn/JYBQLk9gndLx5+bJhyybKzUwU/DIzWuuDJQMeAr85BwfLxedjII+nGN2tLyf4Ucc+zuCdbA85uF+3fSPYZAducQ= 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=r+BvHYTS; arc=fail smtp.client-ip=52.101.71.54 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="r+BvHYTS" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=wqx+FLc1npt9n6PNAcp9iIdnZamR7xYqiiEiMrsteW/g9NZE7LeHyMwCfVW/fnaU5eS1MYOrCgNPI7QMqbNJSZqb2ysL1Grx+eXMnnfwzoyMwHHlkfO0w9dIeQSKodiobDvU/TQL1VCqkMHnXN7oit/fEQ/Wn62De5R/owQMdDmBBwH+Gso5dOa/CTEhwfbJFMeHvL7k0EEd2j103S7J7mnC2i1XQxzj4ifaSVUDuQiUPpiKuOuA5mOOgcsnX1FE8qfmebChKbeYQQWxVJ+u2RrpF4TmexT/RB1dIYGsSUjFNN2ldE8hhyQipT4TM0adYIelrq3NzFkfL7B3iXlJpg== 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=HDybR8F1H7deLN6y6cODSNZqhMfu/x+iNwmPV6atHv4=; b=MI74cJ0IewH81xhh9XJ2yYvPhDuQIvSs9Ih8yA4A+fuscXZT4Vz2pXawMo4tIrUX+LSYb4RgFMJV/OYl9AXEKHtb3UGkJmYKP1BhhmQVb9UVsg2iEaA7s7G7gsL/NCd/X538eeKorhdoeAHypYxejp2CzuvuXaRRwlFmDjwmqkoEHzM9A8RckxTII1DrFfm9CYE27WY2oSVDt3QDkF6MhlBtA2y3dB59NNn1QWSfkQC2pJRRfRZjVG+fJKNJE0Thk2+zdN17QGdWc8p1FMg6MNBBuuw4hkRf0esiszba1+MqyBCabFTluNYNS/Whm/A/5L4FhdYXh7CiFz74mk+51w== 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=HDybR8F1H7deLN6y6cODSNZqhMfu/x+iNwmPV6atHv4=; b=r+BvHYTS/hV2O8+XBSc+vzDAxU3aKZioKje/zM0DxA28cA/LWUG4eLXeJmhAJYY5EtzrQ91l2qNtLwbhRI4dzPajYw78P9WqzpiWTyTVssvZ5UHbRsWFIMsD/3bbggse5K5RI/PJj/5W+GTfbejwi4LkIR7O++DcAitax1hhdrBWE5v7nqHMErq//HUdKztl/iM/xSo79SsbzQaAscjuu6yfjOu6WhkqZEFmUF+p+5jMqcd+0MH1147F+l1lnw+sbFil83K9B4U/3xiJDRztVfOKGmkEMn2nTrBnFhyU9eOc0URGfWnnA+MWa1uF48DVsAG8CdJJJLsFGE/px/hU1g== 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 AM9PR04MB9003.eurprd04.prod.outlook.com (2603:10a6:20b:40a::9) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8655.22; Wed, 23 Apr 2025 14:38:39 +0000 Received: from PAXPR04MB8459.eurprd04.prod.outlook.com ([fe80::165a:30a2:5835:9630]) by PAXPR04MB8459.eurprd04.prod.outlook.com ([fe80::165a:30a2:5835:9630%5]) with mapi id 15.20.8655.033; Wed, 23 Apr 2025 14:38:39 +0000 From: "Peng Fan (OSS)" Date: Wed, 23 Apr 2025 22:37:05 +0800 Subject: [PATCH v2 2/3] soc: imx8m: Introduce soc_uid hook Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20250423-uid-128-v2-2-327c30fe59a9@nxp.com> References: <20250423-uid-128-v2-0-327c30fe59a9@nxp.com> In-Reply-To: <20250423-uid-128-v2-0-327c30fe59a9@nxp.com> To: Shawn Guo , Sascha Hauer , Pengutronix Kernel Team , Fabio Estevam , Marco Felsch Cc: imx@lists.linux.dev, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, Peng Fan X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=ed25519-sha256; t=1745419041; l=4664; i=peng.fan@nxp.com; s=20230812; h=from:subject:message-id; bh=12Ldu6edldfuBUWhe/59tqBnsDWj9xub+uAmN2OMpeM=; b=YP30D+UMdeFlUfA3OoSKiHBzSZ1iNSD2hPqOIiAFnTZJ45/ri9Ku3lKTI95Muc+w+hD1ddbQh qG/EzoOvpxgAgPHrhs6C4aOKankTpl6TQHN18bj7EWm4NAZ6riqREux X-Developer-Key: i=peng.fan@nxp.com; a=ed25519; pk=I4sJg7atIT1g63H7bb5lDRGR2gJW14RKDD0wFL8TT1g= X-ClientProxiedBy: SI1PR02CA0051.apcprd02.prod.outlook.com (2603:1096:4:1f5::6) 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_|AM9PR04MB9003:EE_ X-MS-Office365-Filtering-Correlation-Id: 07b25247-291b-4a30-a3f9-08dd827489b9 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|52116014|376014|38350700014; X-Microsoft-Antispam-Message-Info: =?utf-8?B?aWQ4WFNQU1JMYkJ2c3lxanZ3MnFHalZidDA2Y3hOZDlpY21oMzc3WlF2OFB6?= =?utf-8?B?Q3I5SHUya0tHcDdFWlBHaFNPRkl1YWI3T0RxbmlQSjJmblQ1NlMzZWRpdkVP?= =?utf-8?B?dUUzVWVUeGhCUmVGanJla2N5SGtUQ0ZWdEFNNW42Y0lObmptTUxMNXpiM2ZN?= =?utf-8?B?RXpHSWhFVHU2SWxQdGFaZEc2U1RtbFl2V1lnek43U0lMUzFMM1c4Mnd0N3RW?= =?utf-8?B?UXVnUkNuUGRsbVhxTHB2SjVqWitsT3lBQTB4REYveEY3blVpcjd6VE5hUnlM?= =?utf-8?B?UjMzQUdXNDhSM3l0RUlNYzVHOXNMcXB6YlEzM09sRWZaVUwrZUsrV3JSVE9y?= =?utf-8?B?Z0dZaFptTkd1bEQvRUlienlEblg3cVkxUUNKSklsSGQrbWp6aFlpTk1abHFJ?= =?utf-8?B?UFc1Y3FoYWFaREJIRUp0dmhMblZFY3NaM1AwVGZ1VHB5MTIwb3R6NVlWVU9O?= =?utf-8?B?R055OVNpUTR2RVU1T2d4eU5LK1FaNUo4Q1JDcEx6UlZrSVdoWEhON1ZZdzRk?= =?utf-8?B?ci93eXVzZU5RQmg4dkxYN2dHaC9Ec1J5bGhFTVlEWnExMWloeWdORnlRdGph?= =?utf-8?B?eDVYUlFVQmtwL1BlcVVwb0RCc3dxblltdnE2QVVLblZhcklsRXNqN3BHSVRv?= =?utf-8?B?STFkLzNIbG15Qk5wd2RrdmpJMUNWZGRBL3V5cG9uOUs0S0ZHZkdjVS9YVzJP?= =?utf-8?B?R0tHMGlrZHJBb0lDTkdyMmNpcEZKbTlGTWcvWHRrTWljaW1WbXNEK2l3aC9E?= =?utf-8?B?NUE0WVh3R0hRVHgwVGc1NUdieFdtcTBGakV6QUtuN0IvSzZTVGFUVjBJTE1W?= =?utf-8?B?bmxPNFFyK2RkekkvZGI1V0NSRy9EMkNKNWlJZktQYVhabkhycUNrRkdJUDda?= =?utf-8?B?SjQycmV4cXphUHVBK21vWjAzd1d1NmpGMDFyS2dCRWFHUktqdGNqbm4yREcw?= =?utf-8?B?eW8raitZUE1wdVRMOTMvcFJMblhZN3NXU0pTT2FMSWFzNG9yVmVMazh5b2dr?= =?utf-8?B?NXQxR1JneXAxUW1tQ21ZK0x1M0lYNmN5djl4S3U1b2JwT2hXUWtaZjNnUGIr?= =?utf-8?B?bFl1L1RFY0xaQlUyT0gzaEk5NUNHM0xpc3JBNU1hZVcvRjFJWUtVdERDYTBh?= =?utf-8?B?eUNNcmUzdGYwZWVCc1MyZ0FqTU5vTHZJSGkrc0k0MU1YeTE3Q1VzNER2R2NT?= =?utf-8?B?anpEM01JT2Nkczl4ZG40aFFDU0MzZjdjaVd1djUyWHh5Y21idnRhd1ZHaE9E?= =?utf-8?B?c0p6MWZ3Qk1DVTlIa2RQYklRb3E3OWg0NkJDd3dKaE14WjBPNWowcDlFWCtP?= =?utf-8?B?VGNlMmVPdXNqc01WQjhpZHh3cUNHa3JWSWh4MEVYOFJlaXRZMU1CdlhSNzI0?= =?utf-8?B?eHgzdEhpSllCMThNUkZnSDN2bXVpY0xHd3IycFM3RzlHSXA3eFdUT0o3UmJt?= =?utf-8?B?VXpyOUhFNFZwM0lUanpyZzdJVHhMeXdnNVhMQVhjR3NyRkc5OU8xa2VHVTZQ?= =?utf-8?B?NlJwSkJvTlVwLzRDU2k1MDJPQTl3Y2RjeFJvUkR4cHpFMHEzenBZdzAybDJm?= =?utf-8?B?TW8zaldocnJvRU0wOVpvQTZ6d1FJLzZtTGcyUWg5Q2RFNkdTQkV2YlRpczlh?= =?utf-8?B?OUhCM3d3ejh5djBhU015cjJ3UUxCQnhRVHFuWkFtT1ZyRlc5NVNPL2taSDVY?= =?utf-8?B?TUtJUjVoenE2bzZ5MjBkdnZKQXMwVnRuYU12WkpRTW92K2poTDEvejkxRStU?= =?utf-8?B?UUE0aFFVS1hGUDFLUzdLalhSSktTNnRVVDNRSDh1a1dnSUtwb2VrN1lodGxC?= =?utf-8?B?b25JN3dsNCtBQkdmclpibCs0MUFxOUZVeHVpcVBGTzIreUZhS2U4OFVHcUNy?= =?utf-8?B?Nk5aTWphRktvVnZQREpObVgreXBWQnN3OVBZN3NRT2pLNmJPVXE3bXNhN1J3?= =?utf-8?B?Mkk0VjNxK1U4NlBKemVYL0o5NzZleTZZSnNTRWp5dEw1YnpYa3BWWE5tQVJK?= =?utf-8?Q?cx7qLERIfe1YtBYtBOuxAWUuZir/F4=3D?= 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)(52116014)(376014)(38350700014);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?YVh0YkE2RkNmS29FMTg2N2tpclU1NjdwK0h5eG1DS0NJeWlRKzY4OUNCYno0?= =?utf-8?B?clF1RE9wckR5K2xxOWdKTkJFeW1OQkVsMGFRT0NDWldCdEl0dUdZR0tNWmRm?= =?utf-8?B?MlFrcTFER3pxUEdkcDJETjJFODhDNjN3eDdlSGsvd2x0ZW5SUVlpWDFBYnk4?= =?utf-8?B?cFFCaThSOG9HeHVuZGYxZXNnMFBkVmc3YzZCc0tncHNsSUtJZkNYVGh2czlK?= =?utf-8?B?WjdVdWt4ZGlNS01RUk5MUzBUd2VWSGlsNnFDOHZCSnBBKzZNUmtFTnFUN1Jq?= =?utf-8?B?MjBIS2k3NlY2elJDTW5lY1l6ZjhhVGo4TFpGek1yYm1yYXAzdzdpdXdFUGZX?= =?utf-8?B?Ty9lNklXR1lyd1dHcURvTER3MklrbFp1RllXMk9BQWNWSnVFU1E0WG4zZGZ5?= =?utf-8?B?NmxxYm5NUmlrVys5cG1vRCsvNDg0Y0xyeXJ5VzJJcXkrczJ3VFJKdG0wY21D?= =?utf-8?B?QXRiYk54cGdmREFiZzM2NzRMUHZzV3M0MGpoUDRNZ1QyQm10S0dINGZxbHVk?= =?utf-8?B?RDNuVEtiYUhDYVVSZ0NNeHdXUldTUFNiMTA0YisyQ1lGOCtleGwycytKL1NV?= =?utf-8?B?NGlBaDVDT0hrdVEwODhVYnRSbmlVUXdndlRZN04yRTZRL1VTYjIxMER3N3B1?= =?utf-8?B?UytTT0JDRXBXd1NGZ0R0QkQvSkZxcnVmR2hmbXU2Mmw2YnJDTm9lMG9PRzE2?= =?utf-8?B?TnRKTlRqYklSa0p4bVY1OWZhWWczTzZEdEV5Si9CdXVOTnNtelZqYk9kd1Zq?= =?utf-8?B?NitzYXdlN0M5T3pTRG1HczNCYWwyYm9PYUhUTnlDN2xJTVl4T0ljYTl6TFoy?= =?utf-8?B?WmFHdUtSWDRYbm04ZXRicjE2ZVpqSW9OOGxES3JzWVlLTjNMcHZEV2o0ME5l?= =?utf-8?B?QlBwaDlNMFpHOVNSV05sQWwyVUYyd3htSkwvWUZoc0pFSXRTRThRV0dNbks4?= =?utf-8?B?WG04Z2tpcVkzRXg2RXlESEhYYU90UlEvM0N5K3FyUmo1djZSNFg2d214dy9Z?= =?utf-8?B?WmFqblFLWjZkZEpBZE0xTmVpTVVNcis5bmlHVjhtN1ZBRVJtRkxWeVRDWjRM?= =?utf-8?B?ZjNwdDhGNjdINFBvVUNBdUt3RlBJSm1MdFBXYUxlVDhFSmlJb0ZmRUdQZkVq?= =?utf-8?B?Z3g5b05oRWFoQ0R5QW9Ba3lYak4yNkNaQTBVZ2dpQXFzbGtUMjlVaXRrK0xX?= =?utf-8?B?Ums1YmM4SDNDdHlMdFZmb2Vjb1NkcUkvemh6cXdEWERaTFRjVDZyZnNqVjAx?= =?utf-8?B?SGRwTzJmeDd0SXhoWjZld0pscm1CNHNzNE02Wm9NbXZMamJXSjVhVzRvUkI3?= =?utf-8?B?eFZ1Mkk5Mlc4bEVmby9YZTFVS3V5VFpMZjRPeWtxalhOSjJCMFAwRDJmUW43?= =?utf-8?B?endsSUxUMVB6MW1ZN010RGx0WERTQmlyTS9lWVB4dFZaZ2Z3R3FLUmpyZzBG?= =?utf-8?B?NkZXZlZkRlhJUm8rWkszYlQ5dDhVTisvbElZUHpCT2d3TkxuVnBTNW5SaHhL?= =?utf-8?B?WjN1N0k3c2pFMUt6ZFE3QXpUUG9CMW1RRnN6T3JiVHBNcm91ZG43Qkk5dWpC?= =?utf-8?B?d29DdjNjZlNBTGZ4L0NJU0ZRYXN5TEREaEJlYnVLQmswaWRXZzNiZjZaMERR?= =?utf-8?B?YUZzZmhOdzVpckh2VHZJT0NSTSszeWNHengzZzM3cW1zQ1VHb0FkWGp2L1Zp?= =?utf-8?B?SFU1dnZpQlNVRUF4Y1RrbEI0NXk4TU9odGFpYWNTZGdVa0MwT3NDU2xlVldt?= =?utf-8?B?QlhDZ1l5LzE4QUREeGtnZnRkbUhJaFJobmpSSmM0VFlodWZoK2NObkpkNzFy?= =?utf-8?B?WXgyOHEvYjJMQ3pBbDFDclpud1EzTjRWTk9RTUtFR21QUm50SkFzZXYxT2xW?= =?utf-8?B?MkdVZVhMTXVPMlZOcEpKVjArdnA0WVNUamxWWlR5dmczOW5hK1V4RUY1R2FP?= =?utf-8?B?SDRLak9pd1lkZGdnQ25zTDN3RHBYWXBFNG8xNXNpRTBRVkgrVkJqblJtSXRx?= =?utf-8?B?Ykw3V3Q5dmMvNlE3OWZ1WkRjYVhzY0NEYlVoMU9ZdFU4NlN6YnBWTm5XaTAx?= =?utf-8?B?NG1xYm9oeFBDenBRM05yMTZpOWZkM0xsVmxVeXFYU0Z4U3hyNldtTmE4cU5Y?= =?utf-8?Q?Eres0m0DyFBtWcuegflcO+6Vh?= X-OriginatorOrg: oss.nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: 07b25247-291b-4a30-a3f9-08dd827489b9 X-MS-Exchange-CrossTenant-AuthSource: PAXPR04MB8459.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 23 Apr 2025 14:38:39.6268 (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: uJTIDZWv6F+iX3e+5toFf9W3DYK6quH9OawsW8Owi2agHesTFS71JR+o5O1EfsmlJZJZkQTr7tNILKB4TlgrMg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM9PR04MB9003 From: Peng Fan Cleanup code by introducing soc_uid hook, i.MX8MQ/M/N could reuse one function imx8m_soc_uid, i.MX8MP could have its own one. With this patch, it will easy to add 128bits UID support for i.MX8MP. Signed-off-by: Peng Fan Reviewed-by: Marco Felsch --- drivers/soc/imx/soc-imx8m.c | 46 +++++++++++++++++++++++++++++++----------= ---- 1 file changed, 32 insertions(+), 14 deletions(-) diff --git a/drivers/soc/imx/soc-imx8m.c b/drivers/soc/imx/soc-imx8m.c index c4879947dd2d6573854bce86b86a97159c19a875..2186f6ab3eddd6c9369c691c845= b3b78acaabe23 100644 --- a/drivers/soc/imx/soc-imx8m.c +++ b/drivers/soc/imx/soc-imx8m.c @@ -31,7 +31,8 @@ struct imx8_soc_data { char *name; const char *ocotp_compatible; - int (*soc_revision)(struct platform_device *pdev, u32 *socrev, u64 *socui= d); + int (*soc_revision)(struct platform_device *pdev, u32 *socrev); + int (*soc_uid)(struct platform_device *pdev, u64 *socuid); }; =20 struct imx8_soc_drvdata { @@ -55,7 +56,19 @@ static u32 imx8mq_soc_revision_from_atf(void) static inline u32 imx8mq_soc_revision_from_atf(void) { return 0; }; #endif =20 -static int imx8mq_soc_revision(struct platform_device *pdev, u32 *socrev, = u64 *socuid) +static int imx8m_soc_uid(struct platform_device *pdev, u64 *socuid) +{ + struct imx8_soc_drvdata *drvdata =3D platform_get_drvdata(pdev); + void __iomem *ocotp_base =3D drvdata->ocotp_base; + + *socuid =3D readl_relaxed(ocotp_base + OCOTP_UID_HIGH); + *socuid <<=3D 32; + *socuid |=3D readl_relaxed(ocotp_base + OCOTP_UID_LOW); + + return 0; +} + +static int imx8mq_soc_revision(struct platform_device *pdev, u32 *socrev) { struct imx8_soc_drvdata *drvdata =3D platform_get_drvdata(pdev); void __iomem *ocotp_base =3D drvdata->ocotp_base; @@ -73,30 +86,24 @@ static int imx8mq_soc_revision(struct platform_device *= pdev, u32 *socrev, u64 *s rev =3D REV_B1; } =20 - *socuid =3D readl_relaxed(ocotp_base + OCOTP_UID_HIGH); - *socuid <<=3D 32; - *socuid |=3D readl_relaxed(ocotp_base + OCOTP_UID_LOW); - *socrev =3D rev; =20 return 0; } =20 -static int imx8mm_soc_uid(struct platform_device *pdev, u64 *socuid) +static int imx8mp_soc_uid(struct platform_device *pdev, u64 *socuid) { struct imx8_soc_drvdata *drvdata =3D platform_get_drvdata(pdev); void __iomem *ocotp_base =3D drvdata->ocotp_base; - u32 offset =3D of_machine_is_compatible("fsl,imx8mp") ? - IMX8MP_OCOTP_UID_OFFSET : 0; =20 - *socuid =3D readl_relaxed(ocotp_base + OCOTP_UID_HIGH + offset); + *socuid =3D readl_relaxed(ocotp_base + OCOTP_UID_HIGH + IMX8MP_OCOTP_UID_= OFFSET); *socuid <<=3D 32; - *socuid |=3D readl_relaxed(ocotp_base + OCOTP_UID_LOW + offset); + *socuid |=3D readl_relaxed(ocotp_base + OCOTP_UID_LOW + IMX8MP_OCOTP_UID_= OFFSET); =20 return 0; } =20 -static int imx8mm_soc_revision(struct platform_device *pdev, u32 *socrev, = u64 *socuid) +static int imx8mm_soc_revision(struct platform_device *pdev, u32 *socrev) { struct device_node *np __free(device_node) =3D of_find_compatible_node(NULL, NULL, "fsl,imx8mm-anatop"); @@ -113,7 +120,7 @@ static int imx8mm_soc_revision(struct platform_device *= pdev, u32 *socrev, u64 *s =20 iounmap(anatop_base); =20 - return imx8mm_soc_uid(pdev, socuid); + return 0; } =20 static int imx8m_soc_prepare(struct platform_device *pdev, const char *oco= tp_compatible) @@ -156,24 +163,28 @@ static const struct imx8_soc_data imx8mq_soc_data =3D= { .name =3D "i.MX8MQ", .ocotp_compatible =3D "fsl,imx8mq-ocotp", .soc_revision =3D imx8mq_soc_revision, + .soc_uid =3D imx8m_soc_uid, }; =20 static const struct imx8_soc_data imx8mm_soc_data =3D { .name =3D "i.MX8MM", .ocotp_compatible =3D "fsl,imx8mm-ocotp", .soc_revision =3D imx8mm_soc_revision, + .soc_uid =3D imx8m_soc_uid, }; =20 static const struct imx8_soc_data imx8mn_soc_data =3D { .name =3D "i.MX8MN", .ocotp_compatible =3D "fsl,imx8mm-ocotp", .soc_revision =3D imx8mm_soc_revision, + .soc_uid =3D imx8m_soc_uid, }; =20 static const struct imx8_soc_data imx8mp_soc_data =3D { .name =3D "i.MX8MP", .ocotp_compatible =3D "fsl,imx8mm-ocotp", .soc_revision =3D imx8mm_soc_revision, + .soc_uid =3D imx8mp_soc_uid, }; =20 static __maybe_unused const struct of_device_id imx8_soc_match[] =3D { @@ -240,7 +251,14 @@ static int imx8m_soc_probe(struct platform_device *pde= v) return ret; =20 if (data->soc_revision) { - ret =3D data->soc_revision(pdev, &soc_rev, &soc_uid); + ret =3D data->soc_revision(pdev, &soc_rev); + if (ret) { + imx8m_soc_unprepare(pdev); + return ret; + } + } + if (data->soc_uid) { + ret =3D data->soc_uid(pdev, &soc_uid); if (ret) { imx8m_soc_unprepare(pdev); return ret; --=20 2.37.1 From nobody Fri Dec 19 17:25:29 2025 Received: from AM0PR83CU005.outbound.protection.outlook.com (mail-westeuropeazon11010001.outbound.protection.outlook.com [52.101.69.1]) (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 518B127F4F4 for ; Wed, 23 Apr 2025 14:38:45 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.69.1 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1745419128; cv=fail; b=uCedEbPMuLQjFPs+pMP698G157NvyqIto5hc9mVSrUYPXRUKUf4P+iP/cX3HrTVXWGbp2XfJ3UQFf3huVNdHHErSw6eFSTtl+O75lXXRI8R3l0O6S5GoN0bj2xKwSgAFhJJwQtvbYnneAGNdzAxHHYujYSIiXR70DSByYhsYnzM= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1745419128; c=relaxed/simple; bh=OOS5pr8YaH/+sDxf2KhLZL+9QvYo2sMGBDBWkTYy62I=; h=From:Date:Subject:Content-Type:Message-Id:References:In-Reply-To: To:Cc:MIME-Version; b=q2J+rds7/2ygkPAwiMTURMald2sgNkNW83xZIN9kN5/zRoI5NZrg+MK7w3EQE6arLCdLw6KARcXSZfCTlGhXF0JHIkGzKb86NZviwaIInC0CWsoE7nvla2K4XnGe7JLIXyE7kBgP2wbnpVKoupKd9st4yf4CRyPA2P8wlAQIZeQ= 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=coDMYU9u; arc=fail smtp.client-ip=52.101.69.1 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="coDMYU9u" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=WVILs1Bhc630OHpfEK3AfP1xz2wboPSKPPesjAVxB/tx8UMp3DNMboq1Ez8v3zGK+Dn4jvWshOKokWULGVrof5AC6JPPB8CQ63cn2v6gEv8Ssm81F3xYTmovIey6dJKASU+8HRtutbwMh8wB498N6xHH3tGICpqCvjgdiEuZz22Tdz+RPIcfxwGFxgFjHnhWzQpkHSxneCBUXiXx3K1ui+pfDu6aT7YPiP8xXT9+jp0YX5NUiav7D7cd1z9e1J1jZ49Sa3c/UBtP9R8W7m810Vl7zkeqB/y0FFmxFxuxa/RlEvjo1FkooxZOu7Tmy9Bfbb06/SJ/7Aj+l6ochnrCeQ== 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=DIMf3Z5UWA6qBlE9ZrHnvTkM+ZkkzDPJtcr7ku98T7o=; b=Dg+C0Q+q52YQHkwWjdZpoBhA/X6Y31Pe+UsThlAznWoJGGHx96Brp/KugOY4WYYhchzvLeudQrQmRQPVGn6uOckBvmHKkSUOmun1lGj+QRWihj51tVthqPvaMfhgNP/1idsPorQv7I8CU7O/LbMsjufFlk7QCWlGcuMceeSaw/6mLJ1Q2ObE8zEjIAe8q63k3/rrdAlZChNzdo2WYy9cAKmT4K1CNBvm8J8M+bax8KEsIfsIG/hbU584JsUL3r0d4ZV3h5nSYr5XpUIo1rvA/dmUb7B24qSGY4N18IkfOExZ8TCeUrKfYzazxQsrUEzwmh8ddjUCnJ+4vNUJyiPWXA== 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=DIMf3Z5UWA6qBlE9ZrHnvTkM+ZkkzDPJtcr7ku98T7o=; b=coDMYU9uMXi24lE6ZaT2RuqCTBJv+eYgTK3omLnKi3CsP6qGiw6A6h9fGkrEE5uzy7U4nnNKF0tasEsPhehAB1CWJ/hfzkL2DutDkL7feABAwtZqX6o+RZCLtov6s0RxkVsN2VeN6UKH9YXhFGQ5/MRk2zJYX+Y58HzeVHhOMF3n9EWugywmLcMrm/nak45bxE6CSG/6salywIDLKuP7ZXot1AJX9d0WIIn8cuF6fJdvzJ7bOyAnpURytwtGQUPSoOBZjuAZ+XYEVnxKmHbZmplm5CBYWKV1IHbNh8fXV6VCyNVt8q19h5zgNleS7NAG6FDXmCWZSZwx2kUvgQx4Qw== 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 AM9PR04MB8413.eurprd04.prod.outlook.com (2603:10a6:20b:3ec::15) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8655.22; Wed, 23 Apr 2025 14:38:42 +0000 Received: from PAXPR04MB8459.eurprd04.prod.outlook.com ([fe80::165a:30a2:5835:9630]) by PAXPR04MB8459.eurprd04.prod.outlook.com ([fe80::165a:30a2:5835:9630%5]) with mapi id 15.20.8655.033; Wed, 23 Apr 2025 14:38:42 +0000 From: "Peng Fan (OSS)" Date: Wed, 23 Apr 2025 22:37:06 +0800 Subject: [PATCH v2 3/3] soc: imx8m: Dump higher 64bits UID Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20250423-uid-128-v2-3-327c30fe59a9@nxp.com> References: <20250423-uid-128-v2-0-327c30fe59a9@nxp.com> In-Reply-To: <20250423-uid-128-v2-0-327c30fe59a9@nxp.com> To: Shawn Guo , Sascha Hauer , Pengutronix Kernel Team , Fabio Estevam , Marco Felsch Cc: imx@lists.linux.dev, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, Peng Fan X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=ed25519-sha256; t=1745419041; l=2721; i=peng.fan@nxp.com; s=20230812; h=from:subject:message-id; bh=EeNVbZ1d2ZQPinLPwL17gDHGCnfNGqAukbnqhNMzlZY=; b=LYXyztay4JyQ7jBdFZ5rlSm7mVyTCW4QXvdb+0oQm5dzHtzhCPXxx1WlqN6kyO/jG9TlcLbAw +OwTcDc6jSXBNaAJxxnWOG/DuT60ab3oGGWvBE3p51Qno15yq1Q0//g X-Developer-Key: i=peng.fan@nxp.com; a=ed25519; pk=I4sJg7atIT1g63H7bb5lDRGR2gJW14RKDD0wFL8TT1g= X-ClientProxiedBy: SI1PR02CA0051.apcprd02.prod.outlook.com (2603:1096:4:1f5::6) 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_|AM9PR04MB8413:EE_ X-MS-Office365-Filtering-Correlation-Id: 3fbbd944-da6a-4f2c-5495-08dd82748ba2 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|52116014|1800799024|366016|38350700014; X-Microsoft-Antispam-Message-Info: =?utf-8?B?V2gybzNXT2E3cXowM3pLL0s4a2RPcVdkd0dyaHR4c3A2UlJLTnZ4YnZwSkw5?= =?utf-8?B?Z0R2THlFVUwxaXE0MnZPMnVjZ3dQT05NQ0QrcEZUTWhnbDI4cWkzV3JrZno2?= =?utf-8?B?SkdwRDRiaE5yaWFxWDhrK1ErYzAvYUczeGRIVURjMzlCdjNnc253V05XSnF1?= =?utf-8?B?RlNKMkdiNDFURTh6L1JuTnhDd3FzSWNIeEFjRjUvK2VjaHpURlM1N2N3YWRY?= =?utf-8?B?bkFvSjBITzU5ak9jbG14VkNXRUwzT1NrMTV4VmxBa0E5NDBVRTRQZ1Y3ek9o?= =?utf-8?B?NkFiVmlkL2gybURPZ0dwUzNTWkkycS95MlhmRUNVbWMzcnZRaW51b1NlUjBv?= =?utf-8?B?cExBaTl0K2x5c0FJdGUxaVV1VjhRdXQwU1U4Tk5FZGhtdWhqQkd5clBNMEJu?= =?utf-8?B?cGhxTUp1Z3pBQnBHOEZSZFFQa2k0bExrbFE1VExJSHdWNkUySlZWOWtQM1VY?= =?utf-8?B?Wm9GU0c2QWFjTnVIazlaSzFHd2xXRko4bmIxeHRrRWZkdW5LbUVYeUc5dDZQ?= =?utf-8?B?SGxubHNmN1VzSDltT0ExcHhlL2xOd3BucUh6UzR4Q2JOc05mSCtJUFgvTTRw?= =?utf-8?B?T1R4S0RnaDlRYXRLV3NpMW1PQXRKMWtYK2tGVTk0TlV6NmptWGFiOE5PZ2Ny?= =?utf-8?B?cnZoZ0prdnhZR3ZKSUNiUEJidnQvWURuaGtqZ0EyaVkwTHBveExZeEJ0MUIx?= =?utf-8?B?NDZpZFUweCtHbzhGTEtTRUpJaEZWc25Ncmo2YVdCZlhnODJuTlRsRzE4ejlm?= =?utf-8?B?SXRjSDZkdGV2d1Q3eTRMNk5zUGxYVTRic092dm5sa2xwMmVlaU40NEFzR0lN?= =?utf-8?B?RjJLelp6QXpWTkhoaHZxcTBVNlZOQnVLd295RlFBdkIxRlR2R1JLbmFrQ2Qr?= =?utf-8?B?VXJTWkJZMXAzOWlDREZ0bTVFYmI5K2ZjK1FqZ3FDVEd0dlJyNHJvNFY5UHZi?= =?utf-8?B?VXJqa2VlOFk2Mi9hYTJWRTEzMzhLSTk4SUFKbC83dEo3T3hNQWNQZVUvcEJS?= =?utf-8?B?QVBobWtURVZvcSs0S3A0ZjA5elNwMEVaWG9oOVdicEJsRndQanhGRVJVZjFN?= =?utf-8?B?UFBIMFBwQ0FoMWdYTFVSazhOOGpGQmZFdk5ScTZlOVU1TjdkSkhxdVNDYmhu?= =?utf-8?B?a1Ayd0JRTU9PbTVIVWtiRk5SUkVGN0ZlbmJVR08zbVJHcU9Ja0Iwc3d3UExS?= =?utf-8?B?QlFERktKS0J3NFNKdTFxRk53NjFjaDVqRXdNSlFuRHNZUU5SZnJDNU9NM2cx?= =?utf-8?B?RkFLZUp6TlVFNUdXemkwZmN3dlZKQ1o0VGdaWlRaUHRObkdFMmhxbzhVMmpJ?= =?utf-8?B?eDRSM0dHVkNCOTJVM0ZHYXlGVkIxZmM1cDdoMHdaMUJoYXovOGQwUGxsT0VM?= =?utf-8?B?TzRUTzVabkN2dFFvL0trS1R3Uk1TdnlHdUkyZ2NONHZqa2tQWEVHQmpFNFEw?= =?utf-8?B?VFcrUWJ2YTl4WWJYNkZuYThPUWRJOTQxSk5CUmtiamdsMjNNYlVHQ0RnT29L?= =?utf-8?B?b2tqelJ6LzFuVzZQdDVGK2ZJbFUvaUU3MmxJZ1VjbmZIbXREeXl6aW9OTW1i?= =?utf-8?B?ODFBSVRKQXFoaWJpUFNGWWFBWGo1MXZQbDk5a2x4dkE2Q01ldVNrVnhML3Mv?= =?utf-8?B?TlJvNzMyUWt5YWFpRVBKK3lpLzFYTkZ4ZU9HbktzbkFiNEFIOUo3T25Zb2ts?= =?utf-8?B?TlV0bjFLQWpUVXJXTVREVllUT0gzSlB0QVI2VmJJQlMzcGRRRGY0MmxLL0Vn?= =?utf-8?B?VnZLSHVrdWlCOVI1QTRVZmFPV1Z5NTRWNVhmVHcvQzNZcnJLYk5XMUpCQjN5?= =?utf-8?B?cnR6K09WMUNFbHpmWTRJT2s1dUlSd3VXSFp2KytoR0drSEx0R2g4SytVdkNk?= =?utf-8?B?VWhYNG5TOVVET0ZQREhmY1dKcGdCWityb3o5VHVJd2ZqWjYzckErbERMdVl2?= =?utf-8?B?dU5acVFNOC8zZWMwZitRMTJ1ekhaRFZYd3dnSTczZnFVUjU0dUZvMWxjR1Nm?= =?utf-8?Q?uzWNugjsFWnybJRGqpVV9xR+vPRc9A=3D?= 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)(52116014)(1800799024)(366016)(38350700014);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?R2RCenZxWkZzUlRPWWg2eHZZR1NDbnZHMm9OQ2VVWXNkbjNSNDJmRXlZMjkr?= =?utf-8?B?MlZBdzlkeGw1TFBRSVRDSmk1YkJnVUZaL1VJVDg2K3ltYzJCai9yWU81Q21V?= =?utf-8?B?UEMxNGVqb3JNN25tejZyUnR1WkJ6eXN5cU1NSnBnVUV2NThLK3Y4TlpSVlRN?= =?utf-8?B?SHVVWElnZXluL3pNZDhGKzNwekVkMDR6eGh4ZmtnOTllR3FzWTlOKzIrY3Z2?= =?utf-8?B?d0tWZEZ1MGxodjVTSWhLcHRRdnNBWVRBcjMzK3BNU2VoK3VMMVlIY05mVHph?= =?utf-8?B?VE85RlpmUTlDZG9jYVR0U294djFOM1J2M1JORjN5QnBCL2RJRVY5eU1wbHJK?= =?utf-8?B?bjFzeUlOUUNPRTFIbm80b2JRVHlVV3pmaWxjMFlzeXpla3I0WU5tY3M2RTl5?= =?utf-8?B?UnptcDRLNFYvbXBTWUZaVWxqa0luTHk5aWRNcHo0S2RTSWZHbm5VcHRlUGJD?= =?utf-8?B?VGZDRnc0dnFhNDZndDhieCs1WWp4dHE2MmlIUUJqS3MydE50R2NzNUoxZWVU?= =?utf-8?B?Rkl3eWZoY1ZYYXRtM3FXOWMzb25kbVc0MVFLajNVblpJd3c0YzBWTy90dnh5?= =?utf-8?B?Q2pYRE1MWWRld0VWVjNpb0xucFVMT2RqWDFZVEJ1Y2VKNDVUaVVqQnJnWUlr?= =?utf-8?B?UEJZK3hxVEFJeHdGeW9LRDVRQTZUU09MSXpJNXAxY1JUS0FKWnZwOTd5WFpz?= =?utf-8?B?NTJ5QzNSVWJnbWFoeUpBYnJFa2NLdnRtd1RpYkJ5T2Q2c3Vib3dyd1FDZEhk?= =?utf-8?B?U1pGZEdGZGxmcm1aaDZaUlhuV2FYRVJIN0NiRVE0am04SjNZWEJJZ1owVlh4?= =?utf-8?B?T1hmZnpicHNoK3p1R1BaQ24vUVZGQmpMTlFBalp4bjRndVgrSU8vSzRwU1VC?= =?utf-8?B?Z1gyRUZKMVJsQVFTTFJ4SzEzeXFNcFhrbVZmWEFTcHAybGx2akhPeVhUbEhu?= =?utf-8?B?QlFnWkRsSFJGNmptbTF5NjN4UURFaHJ2M2pBT3oxMndoNjI1WG5oaTZYR0xk?= =?utf-8?B?TGVsZTZGaWNCSTVnT0RKNEJGc05JcEl4Y3dObHEzeVkyNU1ETktPRGNic1RQ?= =?utf-8?B?azg1MXVkMlNNaXhQcWNwSVJvNXhMcUNkS2NTeXN5ejFpN0hMK0gveXQxbU5X?= =?utf-8?B?SWxsNyt1SmhBbFhuZHV2YTZuNElYUXFTd0g2RlJWcUxlYkNTeGpRU21sWTlr?= =?utf-8?B?S1hSWFdSQTJ3R3lQZit0S1pCKzE3ZWt2eWt3UXhteG9PZ3NVNkY3VjIyQ2Yr?= =?utf-8?B?V3dJOTM2c1M3S0luQ1ZNVXN5VTFHS3pVT3lFeGs1L3ZadUhIUTdGU1o4YUdF?= =?utf-8?B?cXNmZGszQ2w5bVB2YklJSjg3MjhabDNPazFrdzZ6ZFd6ekdDY1MweGFZTlJ3?= =?utf-8?B?c1RNSmdRSGlpTXVKNW44aWt5MmhxU1pzM1hXRXhDcGI0NUNZV1lkSStLYmZO?= =?utf-8?B?d0FUK3Zpbnd0bFA5VXZmcnlTL3RuVjd4bjFZVUlnSTB4ejFoN3NGSVlYNG5K?= =?utf-8?B?S21ZMnBuNld6dFNiZTVaZmF1WjlVRUhKcmp4bjZJUVFTUVNjSFlObEZhbVJ0?= =?utf-8?B?NGRMcHRLeHljNFpIVzNKaThxSHM0VldqaU52Qkk4cDFWZnpjWjNXTVhBK3Jn?= =?utf-8?B?ditoS3FjMThZNWJFNGM3VTlNcXZFdjAwcVRkbVFEaDJTZGhxVUU5SW0rSys5?= =?utf-8?B?ZUVaTklST2pKWHl5VnhZelJjcFdoRHo4TW1pMU5nZHBWLzErd3M4Rk91R3Yr?= =?utf-8?B?c2RWaEZwUkVUVmFEMmZsMC9uRm8zamh4QlhTYjVxdGI0cGYzTmZXakFlT01T?= =?utf-8?B?TytkcUJUTE5YemNlb1lwNDAzNW9maGROVnhXenNyblkvak5yN2F4ZnNOWTNL?= =?utf-8?B?N2dqZkJmVmtCL01qVGhwc05WeVBNUTRDN0xMbFpWR0R5SmRPa1Z6MmFkNXBk?= =?utf-8?B?bXZQQmg1S3pFWDlQKytJSGIxQ2RtUHNlRTZ2ZmVpMWxXNjcwZGk2ZWRYV3Jj?= =?utf-8?B?UjNlek8yRzRqcHlqdE14SEkrR3lOdVNlQXlhQVFmUWNkV0N6eXorMkMrU1lO?= =?utf-8?B?STBub1hwdnZVaTZsY2NBaTJMbDE1SGdiM0NWWEllMC8veXZKRURZZnhabEZ4?= =?utf-8?Q?7mMGIgsYjurke/+fYf7EkrQN7?= X-OriginatorOrg: oss.nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: 3fbbd944-da6a-4f2c-5495-08dd82748ba2 X-MS-Exchange-CrossTenant-AuthSource: PAXPR04MB8459.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 23 Apr 2025 14:38:42.8093 (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: RG6i+By99uzKn8DAjYAqo+pBmFF0IJjpjzQ6D4kr+cGCrj3iDYRagkOHnJAzibHcUOEeb1miyovhbZO/ap/KMg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM9PR04MB8413 From: Peng Fan i.MX8MP UID is actually 128bits and partitioned into two parts. The 1st 64bits are at 0x410 and 0x420, and 2nd 64bits are at 0xE00 and 0xE10. Dump the whole 128bits for i.MX8MP, by set soc_uid as an array with two u64. Signed-off-by: Peng Fan Reviewed-by: Marco Felsch --- drivers/soc/imx/soc-imx8m.c | 22 ++++++++++++++++------ 1 file changed, 16 insertions(+), 6 deletions(-) diff --git a/drivers/soc/imx/soc-imx8m.c b/drivers/soc/imx/soc-imx8m.c index 2186f6ab3eddd6c9369c691c845b3b78acaabe23..04a1b60f2f2b52cc374714f9a12= 05496c1762f39 100644 --- a/drivers/soc/imx/soc-imx8m.c +++ b/drivers/soc/imx/soc-imx8m.c @@ -24,6 +24,7 @@ #define OCOTP_UID_HIGH 0x420 =20 #define IMX8MP_OCOTP_UID_OFFSET 0x10 +#define IMX8MP_OCOTP_UID_HIGH 0xE00 =20 /* Same as ANADIG_DIGPROG_IMX7D */ #define ANADIG_DIGPROG_IMX8MM 0x800 @@ -96,9 +97,13 @@ static int imx8mp_soc_uid(struct platform_device *pdev, = u64 *socuid) struct imx8_soc_drvdata *drvdata =3D platform_get_drvdata(pdev); void __iomem *ocotp_base =3D drvdata->ocotp_base; =20 - *socuid =3D readl_relaxed(ocotp_base + OCOTP_UID_HIGH + IMX8MP_OCOTP_UID_= OFFSET); - *socuid <<=3D 32; - *socuid |=3D readl_relaxed(ocotp_base + OCOTP_UID_LOW + IMX8MP_OCOTP_UID_= OFFSET); + socuid[0] =3D readl_relaxed(ocotp_base + OCOTP_UID_HIGH + IMX8MP_OCOTP_UI= D_OFFSET); + socuid[0] <<=3D 32; + socuid[0] |=3D readl_relaxed(ocotp_base + OCOTP_UID_LOW + IMX8MP_OCOTP_UI= D_OFFSET); + + socuid[1] =3D readl_relaxed(ocotp_base + IMX8MP_OCOTP_UID_HIGH + 0x10); + socuid[1] <<=3D 32; + socuid[1] |=3D readl_relaxed(ocotp_base + IMX8MP_OCOTP_UID_HIGH); =20 return 0; } @@ -220,7 +225,7 @@ static int imx8m_soc_probe(struct platform_device *pdev) const struct of_device_id *id; struct soc_device *soc_dev; u32 soc_rev =3D 0; - u64 soc_uid =3D 0; + u64 soc_uid[2] =3D {0, 0}; int ret; =20 soc_dev_attr =3D devm_kzalloc(dev, sizeof(*soc_dev_attr), GFP_KERNEL); @@ -258,7 +263,7 @@ static int imx8m_soc_probe(struct platform_device *pdev) } } if (data->soc_uid) { - ret =3D data->soc_uid(pdev, &soc_uid); + ret =3D data->soc_uid(pdev, soc_uid); if (ret) { imx8m_soc_unprepare(pdev); return ret; @@ -271,7 +276,12 @@ static int imx8m_soc_probe(struct platform_device *pde= v) if (!soc_dev_attr->revision) return -ENOMEM; =20 - soc_dev_attr->serial_number =3D devm_kasprintf(dev, GFP_KERNEL, "%016llX"= , soc_uid); + if (soc_uid[1]) + soc_dev_attr->serial_number =3D devm_kasprintf(dev, GFP_KERNEL, "%016llX= %016llX", + soc_uid[1], soc_uid[0]); + else + soc_dev_attr->serial_number =3D devm_kasprintf(dev, GFP_KERNEL, "%016llX= ", + soc_uid[0]); if (!soc_dev_attr->serial_number) return -ENOMEM; =20 --=20 2.37.1