From nobody Fri Dec 19 04:53:34 2025 Received: from EUR03-VI1-obe.outbound.protection.outlook.com (mail-vi1eur03on2046.outbound.protection.outlook.com [40.107.103.46]) (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 A77F5225785; Thu, 19 Dec 2024 14:25:56 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.107.103.46 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1734618359; cv=fail; b=t9+DkB7d95cgEKHh7IcBEV4d9SMELeiXrLHfymWS3m66P9gKhh0QzgewYoEDLYYCsLRcsZ976uNe7WK3WOOxpV9ox+zWYfJfXOqYS5c/6orlzqNT7OHK2lqsE1X6BiwFCau6Iducpq0RnQ/lIQt7C29z3ie2Bx8gGPDjr0qX2SQ= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1734618359; c=relaxed/simple; bh=j9W1QmsiL4ZM5YYJDPTXeoKJGBgXw/CDksoKJm0NaX0=; h=From:Date:Subject:Content-Type:Message-Id:References:In-Reply-To: To:Cc:MIME-Version; b=UtHe5RIOyylZTmYRPCz868jyb/di7CBCaRAb5H5YFUwDwvAElYaAWPWfiaxsT1PgOVFpe5gsbMiPFYoU1C60Wg/IDiHzMNk7chlULRt68TeMMDnOIt0UWe8j8g56GQHzS9rTMFvhhjy5XB215R7Gl75QTfROd38JFdN9aDB25vo= 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=V7e4VJou; arc=fail smtp.client-ip=40.107.103.46 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="V7e4VJou" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=InDROwyA3vglPME+j4+yw5p2jHdxl0eODRGdEHch9lj94hXSCK+1t/Za2sRIZ+52jLv74QEq0/wrFfJ9E4w+ZB5NPSQTXxJUDi+qaVdU/lSxtaHO0zolpgPuMzaRqvt22Fbww7F4sKm4a18NvpUGC7d4fYulAQqBiDH9hhaubkrrNlTbcw4Q2PVLDjKKtDB9+vP2u7NY7h2tvz8PgC9cFHFXJ/A6YQIQwmqVnpH5lC4lu49o7eWhyZP/V72to2Y3agHfFpVQwRFAprTKMVLoAMm4q5Qb1NT3GxQvhSnABzjwIUvmNKEVcuqk1Z24v5qZNFsi16ku1Of1TgYYkPBYJw== 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=rsEDvNEYhF3R8DXfZgJKKwqLRbmEeD16rDVIKjmLYLA=; b=l8ceU/gFv8UjLDFZ2OQKGL8eUaDKDCYhAi5WuF71lgvq5DpMAXE7bdaFS37USUcd8nDk1UNuO0RwdllCu7Gg4FJUFgVR4ex0RHbx/M8Lu0QM2sAY9gG0jAo6VbFJcfg7L2UfoSeVh0Zhp6/it9Ss2WZl4C4LnsvGV4MeJp6zW85nN0pGc6IaqxVuSMqz/CjiIPvxiEaW6T4CqwZ8ws+mCQgs0MSlHQjkfkRvkJmWmXzzqIPzIlVSnrrVNVIITQkgY6VNcjFy9gyARgS7DX7nYmhNpXlcwYsKXHsVWGKwMySjbzCFuarN9FT46kDzEbkTh6ULMH1VVK6BEzV3O3W3Zg== 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=rsEDvNEYhF3R8DXfZgJKKwqLRbmEeD16rDVIKjmLYLA=; b=V7e4VJou1WX5BJvmi3hshad6Puo60C2DQ+G1pGgWxXhL8QKHY4D2L92YO3RB/BQR3qLk3h9orbHiP9jQqCum7Ym4sdEOiR990cufuCluwW2swMxbyCb/PMXg9yPGohMSIsovkHcOF57ocauSZpA0OXGTPmBZ/2WFpYB9bDcEDDxu4/kzB0S+Swbzxc7dDB5Cgca756KzPFu6iuesmutBiyIF3PXUSc0wLuA6BiGWs7Ap3A+l2HK6Bjo/iy3Yzgk9N4ayDOI411msNk5MjbLDmP/LdkRaMAMqzHiQDTApcGqY++DHGNYRZXDpJ81NXAMB5bdmlPnUNJZhKKm72LksGQ== 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 DU2PR04MB8950.eurprd04.prod.outlook.com (2603:10a6:10:2e1::19) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8272.14; Thu, 19 Dec 2024 14:25:53 +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.8272.013; Thu, 19 Dec 2024 14:25:53 +0000 From: "Peng Fan (OSS)" Date: Thu, 19 Dec 2024 22:25:17 +0800 Subject: [PATCH v3 1/2] dt-bindings: nvmem: imx-ocotp: Introduce #access-controller-cells Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20241219-imx-ocotp-v3-1-b22371098071@nxp.com> References: <20241219-imx-ocotp-v3-0-b22371098071@nxp.com> In-Reply-To: <20241219-imx-ocotp-v3-0-b22371098071@nxp.com> To: Srinivas Kandagatla , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Shawn Guo , Sascha Hauer , Pengutronix Kernel Team , Fabio Estevam Cc: devicetree@vger.kernel.org, imx@lists.linux.dev, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, Peng Fan , Frank Li , Conor Dooley X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=ed25519-sha256; t=1734618328; l=4068; i=peng.fan@nxp.com; s=20230812; h=from:subject:message-id; bh=4MXzYq4oLyYtlA95EQap1UQZ2xOM248M5j3t6NvUUFI=; b=2n8SYklS6e19QSV0YXimnalu4mvhdBKEWo+LWHeSrGAMu7d620ZxT2ZxADDrPexqVKAAd/RtX vPFJyN1cdejCfHuiCbwv+tgRQcKmtar8io57DHImLU/BJCsjxz/sr3b X-Developer-Key: i=peng.fan@nxp.com; a=ed25519; pk=I4sJg7atIT1g63H7bb5lDRGR2gJW14RKDD0wFL8TT1g= X-ClientProxiedBy: SI1PR02CA0054.apcprd02.prod.outlook.com (2603:1096:4:1f5::13) 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_|DU2PR04MB8950:EE_ X-MS-Office365-Filtering-Correlation-Id: de0963aa-0795-4189-9182-08dd20390ba1 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|52116014|7416014|376014|1800799024|366016|38350700014; X-Microsoft-Antispam-Message-Info: =?utf-8?B?c1JIVzBmUE02RnVDcjhSUC9QRmo3Qm00TWxOTnh3cERyKzdKcWs3ZVU3bS9x?= =?utf-8?B?UXVKbk50bjYrbVNOSWNTdHR3REt3dDNhSVdqa2Q2akJYQ2pObHNGdFJMS0hN?= =?utf-8?B?VmZNZXlhUmNNZTJzdjZEVTN2SkpSdmgyRC9zWmZrRVE1RDJsNHhKaXBLWWla?= =?utf-8?B?YVpIQ2FScExEL2F6YUlwOHdYNW9vTUNjenlLOHd2UHdDSnVXL0JaUUswMUE5?= =?utf-8?B?K1FWdEdvckdteFh5SS9XaW9IMUEwcDVabmtXL2xKOE0ybGlLZUVxSUVFYjNC?= =?utf-8?B?TFhXUGdiMWx4UXFJenJsRFBPV1dtaDhMS3dqOXdwaWhxbDIraXRlZTJLOEs3?= =?utf-8?B?VC9RcU1SUjFQNkxmQVVzMytDalZuSVFENGVhZWVLREdCUXB6Qy9kV3k0emR0?= =?utf-8?B?bDVTcXdISmtnSlVhNXlMb2hITTI1NHo3cEd2S0NLT05NWHJWSE5rRUF3Qmpo?= =?utf-8?B?SnNSUFBZRUtWUGkwMjI2ejJTR1hmNjA2Q01BOUtjOVJPKzA1REhINXFNY2Fp?= =?utf-8?B?elB5NXQwbEx0SHYvQnNkbklZT0hmY3VWMHRMOUlSUU5jZktMcmxnL21DNXZI?= =?utf-8?B?RjZvTlBVVDhuWmE0bXdEOG1tSFhSUFZHanBWVWk2T2lrTFdRSFJOVkpFTE9w?= =?utf-8?B?QUtWcnpqUGh6UEdVR0JMMUhqNzRDMFl6WG5TRTR6V01KVG45U2crMVdJVVZ2?= =?utf-8?B?MS8zZ0ljQmRkdCsxR0U0WEFMbk5GYjc3Vm91UmU5NHhHWERwV2wxR1lHQWVQ?= =?utf-8?B?QUM2d3doVi9mVzM5Q1A4RE9EMSt3OVVHSURUU3BPVGtROXE4T0hqclpQdmZo?= =?utf-8?B?eWhwRDZveDY0V2gwWnZjaUF3aUVBL0JEVm53QjVWVjZ1djNEMmFBd21DM3d5?= =?utf-8?B?TDNlYlpSYzdlVlJqRlJESjFTU0duSGhZNVZVOHBheVZPZ1F0WE5Tc2UrNHNz?= =?utf-8?B?bFBKM0xhRitPbk9GZEtXeWNnN2xNTXkxZTk1STFLcm5QSzU1NXRMYXhIcEND?= =?utf-8?B?eUI1bXNzbllIRFg5T0hDUGl2Yi9keEp3b0xHdFFLUm56SldRaFRnOW1zRFRu?= =?utf-8?B?eEwyM3F3RmxTK1BPZkQ1NUVXb1RYZXFiVUFwNTRBSG1BUlNxRnJtNFRTdkYw?= =?utf-8?B?c2tOeWJtRXphWDZlSHBMYS8vZjc2NG15Q2pzcVQxZXk4dS9QekdwNWhwYklF?= =?utf-8?B?Y3FRUk1UWEtZMTVHeXh4R09HczBTUmNJOTlRNUgxZS9nRnhOWm9CRXA1bXRQ?= =?utf-8?B?QXFYR1Z3cHNNL2ZCRDRneTdlMEFJSzhzT1Q0MFVob2pJU0p1RmlUWXB1eEY0?= =?utf-8?B?dlUveW10aXpaQTJ3VGVkV3JxTS94NWRtWXplRG1GVzU5TXpFSWVRWGxEeWJ0?= =?utf-8?B?TGVFMUFDdVJzdEowREJaUjAvUGZESTNLbzBZTFVHM2xsNjE2enRqRXg3Y3lG?= =?utf-8?B?WlFvWW9sbkNOV2xlWXN0VmFRVjN3c2U0UFBaZlB4WktiemxmcWRDaE5KbmVV?= =?utf-8?B?QVcweTBPVXdYZFljYXg4WFhmM3BLNVNuZGxPRXFjejRDM2RmK29SNmIyQi82?= =?utf-8?B?dkFtbDlqMUx0b2FqcEtCOGtUbk1kWXlQYUhoM0p1MERtV0JER0xtd2dGZ3Y1?= =?utf-8?B?VXp3dGVBVUtXeVNpZHhrcTh6UU1BY09FZXIxQ09EYWFIYkFKQVhaQnVKalU4?= =?utf-8?B?QjJNVjFXMVkrUXZXNGs1THdSMXdTUmNMaUlybnNJUDQ4U0ExcTRBd0VXNlRp?= =?utf-8?B?Mk1MTU9rZW44TXF1VHdNMTBTSk9jRXcyRzd1Zi93WERGYzY0TzR0NWtUT1JU?= =?utf-8?B?eVFyaFZBcnFZeVp0WUNZUHQzVU4rTnp6V09Bd3RVNkp3RE91b1N4UXNCOUhL?= =?utf-8?B?OG53dHFEb3ZrVWxtL051ZTJqN2xCZy8zK3FZTWZKRTNlUDJjakx1bG51akFv?= =?utf-8?Q?yv++zAH3nxtNY68witZUp2Aa6KCDuGHO?= 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)(52116014)(7416014)(376014)(1800799024)(366016)(38350700014);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?cHJheWYrandLMlhYUDNYaE04TVhyellybjZoTFJpb21FL3NXb1ArSnZiT0w3?= =?utf-8?B?djdFc0tFb1g3VkRIUitickZCRHhKdXh6Z3FVdGFhRXUyVi9mVFpPaTRBZWdI?= =?utf-8?B?OFNZR3YvcUFkbnphNnMwRGdkMWxnc0IvcG5zZ20rZTFPNTgzVTV0VkVMcjcv?= =?utf-8?B?YkFhakZhSmYwS0tsTXZBaUV2c3U3R08yMUNsOUNJWG5EZ1RQaStXaW4ycFU3?= =?utf-8?B?dmk4TmNpK0wyYU5OTm1yUW9OM3ZhNjlVdStJcThOdisvYjZST0NhTnozTUZa?= =?utf-8?B?dnpLMlU0YVhINkZGZWNCWTNIUkJCM0pNOTlQcng2aXZENHFkcnU1SWNRQkJX?= =?utf-8?B?eGV0SUhhZk8yOGRnd3puckVDc2tpeExrNXFZRmdLM2g4eitmSkluV3lWRVo1?= =?utf-8?B?K0Y0QU5DV2VsU1VBM2h2Smtac2ZwdC9yZU1GNDB1a1Y3bEM2dS9vTmJHeHgv?= =?utf-8?B?ajRldHJUSVlhNXBDZ1dPbkZFQ0RNYzV5U0pVYWx5QXI0ZytOMi9rV2Y2TkJh?= =?utf-8?B?UGRWTTBvOGZMV1VUTTFCQkUyVUxVVXVHcFhSZWdibk8ycG9IQlRCVTJ2TTRr?= =?utf-8?B?RndyaTk1TGFwd21NWkRpbGtYQjRJL2V4SE1vOGxVZWloUVlXVVE3WTFkVEc0?= =?utf-8?B?ZGR1bXExd2l4TlpzR2VhUUcwSXNOSjdzbGhaVDNjN3BGczV0S1JwMi82QVpI?= =?utf-8?B?L0grQlE3czRFdjYwTENxOE9LdHNnamxHQnhSdWpvZEJJTkJXMzgwNjExV1lm?= =?utf-8?B?bTdyWFdEU0VOSmZwRzJqNXdIZ1NBNzYvdEtOcVNXanlibE50M3BUYk5hZ1hE?= =?utf-8?B?T1pIRmh3Y2VTMHA2NHVHekNheUZ2cHNTblY2ZENzb3hhWFZrTUlKcnY3Q0sx?= =?utf-8?B?WWNWVTAzdjJiN2NaWEl4bVo3SW5EaWFEanpMclBxT3JVVi9JYk5nS0dUV0o2?= =?utf-8?B?RnF1cEFrZkRKeDdENVczdVlhLzc1Q29NZkN2NE5kSWFIc0RPWWVkOVBoZU5p?= =?utf-8?B?SzJtVzBGNEFzT25PR2JPemM0QkRZZVV4bHlUNUpvNW0wS0RxbzhMY2Zyelh5?= =?utf-8?B?bE53bTl0Ym5acGNmcEZqVktHMFVFYlNMWEEzaUUxZ3h0dy9WdmdibGpuby90?= =?utf-8?B?OEd6VGhudzB2ZXAwNGtySSszOEhMM1Y3VXM2QTdSdjVWbnErbTZzRzlKNnM0?= =?utf-8?B?WTBsMjBQcXdaYldqTmJwTTFlVVc1WGxNSjc4dVdOQmgyV2xNU1FMMWtrV3Q2?= =?utf-8?B?YlBNb01FbHc1ZkVWK2FKdG85R1JWTEVpb1NncFFxZXZLbHl0SGdtU1N2Lzkr?= =?utf-8?B?eElVVE1YMFJCYkhUOEJNS21kVjZCK0NPZitiUkdtcjkxa0dxR0JORmRwTmoy?= =?utf-8?B?Q2hNcmo1ODlPZHBSU2VVVWVObDZHWUhwSk1kaHNreXpPeFo5Z0RTRXFzSmg0?= =?utf-8?B?cm5sMHZveCtTN2kvWVM5TlNKaFE2SGpEYXpleElSS2FhT0NwMkNJdkRYcDZS?= =?utf-8?B?TkFycGF5L3NtdjJUVTFuY2dUSG5SdTBlQXlYeWJvRkNnVzVLMWwzYjRzY0xW?= =?utf-8?B?UzlKTng2RzBhOWRRRnpNS1I2ZWFEQUl5UEFROGU4RlZMcVVKZHh4WUx0NCtV?= =?utf-8?B?MlZtbkdpc25oc0M3MDl2VTA3N0lDaURoVWEzWmFyQi9jcmlDUUhlNjNlUFNs?= =?utf-8?B?bEI4R0gvcno5VHdEcTlON0pwKy9VWW9LVnZuK2FsaFdSSEltMFR0OHAveFRI?= =?utf-8?B?dUxvakU5Zk1QTW5lTzcrSktlSjFkWkcwYXlQeUlQVzJvTE8xb0owNkg3cGpv?= =?utf-8?B?QTFTWGVVTkFTckNCR0hCb1VmSklKYThRRE9PL0s3bmJnWEdWdUx0YkdvNDd4?= =?utf-8?B?UUNjNGpXckFhZHY3Znp3U3pQV2lqdi9lbUdLYk00NnhsamxIS1EwTzU2TGtt?= =?utf-8?B?S1F3c0MrUkx0dmFhcWhSaU51ZTF5UFMzK3VUdHlqQ3RxN2NxQkd1clFWczAv?= =?utf-8?B?ZzNzS1NpMU0vUmVnNmpPZklXcEZNSUxmRGtRMFFCS2FVT2hNNHFsNnRiZU5h?= =?utf-8?B?VHFJdHZrb2l2UXZUNTEyYks1SVpCaVE2TWFrR0FoVXdzZjFCL0tlU2tLc1Ba?= =?utf-8?Q?JGxCIRNCsIiOAZ2uM8lXucR2V?= X-OriginatorOrg: oss.nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: de0963aa-0795-4189-9182-08dd20390ba1 X-MS-Exchange-CrossTenant-AuthSource: PAXPR04MB8459.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 19 Dec 2024 14:25:53.8101 (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: c34K/InTy97fdJFJP78N8RWAhzJ7BD/WcuMmNPlzNxJz3HzXqXiRIP54X3vHgnfjMzy8rUutI+N/lhhTwu5oFw== X-MS-Exchange-Transport-CrossTenantHeadersStamped: DU2PR04MB8950 From: Peng Fan Introduce "#access-controller-cells" to make OCOTP be an accessing controller, because i.MX Family OCOTP supports a specific peripheral or function being fused which means being disabled. Add the i.MX[95,93] OCOTP gate index. Reviewed-by: Frank Li Acked-by: Conor Dooley Signed-off-by: Peng Fan --- .../devicetree/bindings/nvmem/imx-ocotp.yaml | 5 +++ include/dt-bindings/nvmem/fsl,imx93-ocotp.h | 24 ++++++++++++ include/dt-bindings/nvmem/fsl,imx95-ocotp.h | 43 ++++++++++++++++++= ++++ 3 files changed, 72 insertions(+) diff --git a/Documentation/devicetree/bindings/nvmem/imx-ocotp.yaml b/Docum= entation/devicetree/bindings/nvmem/imx-ocotp.yaml index b2cb76cf9053a883a158acaf5eaa108895818afc..c78e202ced22f1c278f7be827b7= 1ba434832d2a7 100644 --- a/Documentation/devicetree/bindings/nvmem/imx-ocotp.yaml +++ b/Documentation/devicetree/bindings/nvmem/imx-ocotp.yaml @@ -54,6 +54,11 @@ properties: clocks: maxItems: 1 =20 + "#access-controller-cells": + const: 1 + description: + Contains the gate ID associated to the peripheral. + required: - "#address-cells" - "#size-cells" diff --git a/include/dt-bindings/nvmem/fsl,imx93-ocotp.h b/include/dt-bindi= ngs/nvmem/fsl,imx93-ocotp.h new file mode 100644 index 0000000000000000000000000000000000000000..6ef525173845fd4ee0e847cf5a1= 7e53a14f71362 --- /dev/null +++ b/include/dt-bindings/nvmem/fsl,imx93-ocotp.h @@ -0,0 +1,24 @@ +/* SPDX-License-Identifier: GPL-2.0 OR MIT */ + +#ifndef _DT_BINDINGS_NVMEM_IMX93_OTPC_H +#define _DT_BINDINGS_NVMEM_IMX93_OTPC_H + +#define IMX93_OCOTP_NPU_GATE 0 +#define IMX93_OCOTP_A550_GATE 1 +#define IMX93_OCOTP_A551_GATE 2 +#define IMX93_OCOTP_M33_GATE 3 +#define IMX93_OCOTP_CAN1_FD_GATE 4 +#define IMX93_OCOTP_CAN2_FD_GATE 5 +#define IMX93_OCOTP_CAN1_GATE 6 +#define IMX93_OCOTP_CAN2_GATE 7 +#define IMX93_OCOTP_USB1_GATE 8 +#define IMX93_OCOTP_USB2_GATE 9 +#define IMX93_OCOTP_ENET1_GATE 10 +#define IMX93_OCOTP_ENET2_GATE 11 +#define IMX93_OCOTP_PXP_GATE 12 +#define IMX93_OCOTP_MIPI_CSI1_GATE 13 +#define IMX93_OCOTP_MIPI_DSI1_GATE 14 +#define IMX93_OCOTP_LVDS1_GATE 15 +#define IMX93_OCOTP_ADC1_GATE 16 + +#endif diff --git a/include/dt-bindings/nvmem/fsl,imx95-ocotp.h b/include/dt-bindi= ngs/nvmem/fsl,imx95-ocotp.h new file mode 100644 index 0000000000000000000000000000000000000000..2d21d1f690974d0215c71352168= 378a150f489af --- /dev/null +++ b/include/dt-bindings/nvmem/fsl,imx95-ocotp.h @@ -0,0 +1,43 @@ +/* SPDX-License-Identifier: GPL-2.0 OR MIT */ + +#ifndef _DT_BINDINGS_NVMEM_IMX95_OTPC_H +#define _DT_BINDINGS_NVMEM_IMX95_OTPC_H + +#define IMX95_OCOTP_CANFD1_GATE 0 +#define IMX95_OCOTP_CANFD2_GATE 1 +#define IMX95_OCOTP_CANFD3_GATE 2 +#define IMX95_OCOTP_CANFD4_GATE 3 +#define IMX95_OCOTP_CANFD5_GATE 4 +#define IMX95_OCOTP_CAN1_GATE 5 +#define IMX95_OCOTP_CAN2_GATE 6 +#define IMX95_OCOTP_CAN3_GATE 7 +#define IMX95_OCOTP_CAN4_GATE 8 +#define IMX95_OCOTP_CAN5_GATE 9 +#define IMX95_OCOTP_NPU_GATE 10 +#define IMX95_OCOTP_A550_GATE 11 +#define IMX95_OCOTP_A551_GATE 12 +#define IMX95_OCOTP_A552_GATE 13 +#define IMX95_OCOTP_A553_GATE 14 +#define IMX95_OCOTP_A554_GATE 15 +#define IMX95_OCOTP_A555_GATE 16 +#define IMX95_OCOTP_M7_GATE 17 +#define IMX95_OCOTP_DCSS_GATE 18 +#define IMX95_OCOTP_LVDS1_GATE 19 +#define IMX95_OCOTP_ISP_GATE 20 +#define IMX95_OCOTP_USB1_GATE 21 +#define IMX95_OCOTP_USB2_GATE 22 +#define IMX95_OCOTP_NETC_GATE 23 +#define IMX95_OCOTP_PCIE1_GATE 24 +#define IMX95_OCOTP_PCIE2_GATE 25 +#define IMX95_OCOTP_ADC1_GATE 26 +#define IMX95_OCOTP_EARC_RX_GATE 27 +#define IMX95_OCOTP_GPU3D_GATE 28 +#define IMX95_OCOTP_VPU_GATE 29 +#define IMX95_OCOTP_JPEG_ENC_GATE 30 +#define IMX95_OCOTP_JPEG_DEC_GATE 31 +#define IMX95_OCOTP_MIPI_CSI1_GATE 32 +#define IMX95_OCOTP_MIPI_CSI2_GATE 33 +#define IMX95_OCOTP_MIPI_DSI1_GATE 34 +#define IMX95_OCOTP_V2X_GATE 35 + +#endif --=20 2.37.1 From nobody Fri Dec 19 04:53:34 2025 Received: from EUR03-VI1-obe.outbound.protection.outlook.com (mail-vi1eur03on2067.outbound.protection.outlook.com [40.107.103.67]) (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 1D32A2253F8; Thu, 19 Dec 2024 14:26:00 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.107.103.67 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1734618363; cv=fail; b=FRjDqimiFiVGdz0wwBujwuXzGtFxH3gKjmKw2iiUkrl0umMxUwt54c8s/B84+d8pBhVWAeqoBouCWwSJWFS9rt++evYVUmBXjH8kcB/XkSxYceQBEzW2Qar4Lf5PfDvaC8c6E476JNDJaSx3It1IkluwkXUQ2FudZihSbq8ywqg= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1734618363; c=relaxed/simple; bh=MNgV6YsZemvhZ0huaO6V33VmqxL/Uor5YuHc4SvS6L4=; h=From:Date:Subject:Content-Type:Message-Id:References:In-Reply-To: To:Cc:MIME-Version; b=K3ucR7gmVfAr+OC7lLUNAR6kWiY4eS5NRmLU7BjbRhxLGruhaPte4sQqLW52KeIrEVQ2XKsR/6EY7BktrGdRJqo2sm5kmYQhKV5DuOhXpsbn8FUqJey99pBzWHIzJyOvIRPXYo3gFg64kbbUeGUrES115dObxOwi5TragfEAgmI= 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=rDEYnqjh; arc=fail smtp.client-ip=40.107.103.67 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="rDEYnqjh" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=XLjR2MufGPpaJ/xUbzZyhXsRsvDEx6Gd2nxF1VFg7VM52wJcbIPSwpKl7V6QhZm3FfkCM4qkVyIzSK7QkQNPf1lXbzd+mVzUoj2cTNCJQ8Z/x9F8yPHLl2xT3QzfX11F7uI3M2Dp4Z0AkOt1AK5TwLgf70GuhKyvd+Ei76vJTcTcsFuDcvFCjmvjoW1fRy+clzGDkg0VRoa59XIWQlwi6h9Z0lOrqe1VP51t/sqWbSB/uxNbIFU26AkxuqNChAw2r3bO3IdOnkD34gDkfwCfFVG4ocypIaSWRRyr/sEthGLoMw446wlkso/VwtamRK7icacLqaQ4tr3f75ugpkPXyA== 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=nRakj/Xgdf9SAZMTHvQNk088xoMpLAeaT4jiRGUFlK8=; b=otdNYp64870gzPAnyArh8/v9rKntodniGqpavziHwZrodWssTxi9m2Mr/NY2BLEbKomnPhEUaJy9Fa7c+plsmzBWKPnbfMlH5/eKqT8vtYQ+R+AlHwJJqzZtO8LHL1+c2ok+eCUQLpRae/JEIXFEuOhYGXPL0Vr+tKfxyEUu2ZW0ff4s1VSOf5Yt0y32g0Er/I55bz2ve+0bl+BSYrbDPnKUeZ3v0zBlGp4q5Fk74WCW+2uR9e0C7YfnGH3wReC66104RqB1ph0SCzInUVTbGx3G9vsSJcleJ+B5k/RvmedMP62SAhYDZEFkY9LW0huOAAhG3oryfIZFkLw5bOlI/A== 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=nRakj/Xgdf9SAZMTHvQNk088xoMpLAeaT4jiRGUFlK8=; b=rDEYnqjhD/ch45QYBCiF66mAqMcn1mjrEu7Jx76B0l7M1td80MhFQcCqLP2yfcY6Ux8SbzeeWY+rFDoPtBEhtO5t+COmU8J3x78EHI4B8raLt3NttFaWBOmyB2Y9/h0C/SGIwX3GM1Vxe4VsYOv1wtuR3a9XMFiWUxeMtMHe5xXW3cPdm3OiyFuKIEBEDJ0RcbEK8hSmoa3zcxSjyqj0CoMtQ8SQa+XKz7DIyNASx6cMlPtO7gt/j5g/GRhdfguDAGBUNPUci1mLa3VUH6spz8ArE+GsaMPAS4nU2Qmxkn+PmuO8zX+FNy6d8eIPccgeTDCFSB2pKUUyZ3MacNwRiQ== 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 DU2PR04MB8950.eurprd04.prod.outlook.com (2603:10a6:10:2e1::19) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8272.14; Thu, 19 Dec 2024 14:25:58 +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.8272.013; Thu, 19 Dec 2024 14:25:58 +0000 From: "Peng Fan (OSS)" Date: Thu, 19 Dec 2024 22:25:18 +0800 Subject: [PATCH v3 2/2] nvmem: imx-ocotp-ele: Support accessing controller for i.MX9 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20241219-imx-ocotp-v3-2-b22371098071@nxp.com> References: <20241219-imx-ocotp-v3-0-b22371098071@nxp.com> In-Reply-To: <20241219-imx-ocotp-v3-0-b22371098071@nxp.com> To: Srinivas Kandagatla , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Shawn Guo , Sascha Hauer , Pengutronix Kernel Team , Fabio Estevam Cc: devicetree@vger.kernel.org, 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=1734618328; l=9105; i=peng.fan@nxp.com; s=20230812; h=from:subject:message-id; bh=EFPjusyV5OCGOG+g+/w5SCv3f0XaX5a9BcxGOgvkLIA=; b=3NP25a18VA4EHmzCFGnuMDVYJWFUPocUa3sizGRj222JTW0VVsA6XDPZxsvZRKjwLamrYJTyz prv014V2E66BzEDlEbZEfkc4vcYCWvQqluQq/cHEhAh/p23qWI9ZLQF X-Developer-Key: i=peng.fan@nxp.com; a=ed25519; pk=I4sJg7atIT1g63H7bb5lDRGR2gJW14RKDD0wFL8TT1g= X-ClientProxiedBy: SI1PR02CA0054.apcprd02.prod.outlook.com (2603:1096:4:1f5::13) 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_|DU2PR04MB8950:EE_ X-MS-Office365-Filtering-Correlation-Id: f6c0e95f-7f16-4939-2912-08dd20390e47 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|52116014|7416014|376014|1800799024|366016|38350700014; X-Microsoft-Antispam-Message-Info: =?utf-8?B?Ymoxdy9pRDJQKzJoVXN4cEhYeHVvUEFPaXNicGhSQktBalFGUFdhNWo3SEw2?= =?utf-8?B?SS9Qekd5V3MvaCtsQWhTZTVwWXM0MG80QnEwbjNBSVYzbDYzL2R5cG93Z3NU?= =?utf-8?B?QWc0SlpsUnJ4bm83Qjl3eWxuTDRFc2tpTnM4YVdNS3dmRmlSaWtPZUs3VzU1?= =?utf-8?B?Z0hzeTBTMlpaeDJ0d0JYWjJ4Ky93Z0YrQWxVcldpVmNFNHNkZGE5YXRIaXVH?= =?utf-8?B?K29tai9MRS9Sa2NwclNMOVJHOGNYRlUrbFpRakJFaTJaVFBhenNyRGVjZU5I?= =?utf-8?B?UElkeGpiQW5xTUJQUkdBUkNCK3BYWjArUzJVUXM0YUxtdE1KQ0tLWHlGNlNM?= =?utf-8?B?T3Bqays3NEhNSVZGWjF3bktKSHpEbUpmemJoVGRSdE93T0Z0Y0lmOXRGZVlw?= =?utf-8?B?Q3d2WkVVdTR5RlFtdmJTWnhkMXpuSnJDQ1FzQ3RyeExJTGZnNWdmM29KR0gv?= =?utf-8?B?bHd0bkFYa1JSeG53bDFLNGVrRlowTWVueHBaUkROSDdmOHJWVFY0bDBCeWhQ?= =?utf-8?B?eTk1eWdnODQ0d3VZNEtmQjJtZ2haOS9NbWJzWDA4WjYvRlhsR1Z1cWhmcjZh?= =?utf-8?B?SVVOeERWSEsrQXczSDFEZVdTOU9sa0thMVRMUG9yZ2NIdWZRSlNkZE1KYzBa?= =?utf-8?B?V0RzNjM3OXZrUmdrZ1FDRDdPWTVjT0hmSFc2SDFra1E2M3I1Ly8rZXBJK3Ji?= =?utf-8?B?Q2Q2WnNjcmpaZjVyOVhrZEhOdWx4RW93TWU3WGExUmNJdUJTMEF3MjhPTGFr?= =?utf-8?B?RUtLb1hocXhBZCtIaEJLV2R6VHlISDQwempSamc5Tm0wSEZ1NlRRWmR6dXE5?= =?utf-8?B?TXh4TEprQ1hTbFdIQ2lucnJzeG9qODVXcTdDUFZQZXZ6QUdZNDkrenNXS1hu?= =?utf-8?B?d2VObFd2Q1BVZ2F6QzlwbXhiT09qUEhpY1dmNDJuQlhwbVBvSXpsb0YwNEts?= =?utf-8?B?M3owZU5kdE5yMGtZay9rMDhWdkljWDJLSjNoK1BYSmp2TG1HS3kzQXRBV25V?= =?utf-8?B?dzZpZGMvVEJNR1pzQUhlUVhQeExhRlZ3dU1Pc3dSaTNRY21pL0xvcG9OZHBl?= =?utf-8?B?MEFRTVQrY1lXdDVUbDYxaVBZaDQ4NS9xVm9mV2pNZTB1UjFNbGlNUXQxYlJm?= =?utf-8?B?cEpobW85Y1VFT2xoRjNDcks0dzlZd0hwWjBVOFh2WUo2aVNmS3hGUHcrVzN3?= =?utf-8?B?Y1dRS2UzSXVsbmQvS08xNnFTaUdGbHRoVlhmUEJIcUszenZQbXBzZXYzVnhy?= =?utf-8?B?NDBJb2s5SC9SVE9GOXZ5ckd3ODNzVm81TGhnRlJjN2JNRVRsTmtEMWFaMGU2?= =?utf-8?B?Tkg0VU9ZbnJsbjJ1dDI2d3dKL1BPMkVBNlZIaFFjMXZZMmx4cVI1VUF2R2lm?= =?utf-8?B?RmE3YnNIVWxtRmNDVFp6T0lVeHpZMlBIVTNxSjZlZytnNUJrckJJMlJXZ0Fn?= =?utf-8?B?OGFPMWo4SjNkMnMxTHF2Y3FrKzMrdEdvODk3djJRZllvU2E1UTN4dGgvSWtG?= =?utf-8?B?bUNuY3dPTk00WjVSQ3Fra255bXBvQ0lDTzd4SHVaNGs5YmxYWlBJQlUvSG4v?= =?utf-8?B?L3JqTHVFTzVPVTdEOHpuT25NSGYxUmhpRmJObGRQc0lzUVM4a0p4aXNpamRO?= =?utf-8?B?azZlNUY5a0ZaSnhBTndyUjF3SXArcjcwMlNDa1I5cVdCY3dBMFpiQk9VMkZp?= =?utf-8?B?aFRCMVdKQmh5SE9aZG5NTUFDa0tOa2hDdXlWbEtXNzB6U0dpdlpEZXRta1pF?= =?utf-8?B?Y0dnRnNNREtVYXFRalczZUF1YlczOUM4MmpqTFg0eDZISUU4c09ENVRzYlYy?= =?utf-8?B?aFJmcXZ3ekdFaEJnSGFQQ3hjdFRRTnFPM1NHY2FnREpFWDFjQ0kxenR2RmZH?= =?utf-8?B?STlRcHJDMW1vY3R6a2lrS042bU13clNKTWl4VTVQdTNWTTE1NzVhSU5GSk1B?= =?utf-8?Q?YvLd5m1XJfkuoYnoY0E2tIQZStolI1tm?= 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)(52116014)(7416014)(376014)(1800799024)(366016)(38350700014);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?eWtmWFRHS0RRcVo2SFNyOE83cGlxeFhZYitUL2F1M29jbkFmK1J4VFJGVDBJ?= =?utf-8?B?TStIQ3RSeTlZZVV2Q0tRcjUxaitpTHp3Mkd2eDVwNGF6b1dXd1gwME52Rzcw?= =?utf-8?B?dGFJbVB5MGM4UVVWUklSVUhSR3ArUjVKNUcwVXZ5cEp4aytaK0wxRm1xb2Mr?= =?utf-8?B?VVRMRnJpUDBDSXdWaFptdEhRMmIwQWpDMGNhZUJxRnNuL1FoeXRxcVM1b1pj?= =?utf-8?B?WndYcWlqN0xyblpVdkdoSENQcmVOTGxSeGI5cXRtOW82ZEZkejhTRzlHL3hF?= =?utf-8?B?MlF6b0pRSHVYb3EwMCtWR0cwR2hSSUFFL1pXWC84V2dpMzEvQ2pDVXJ6WW50?= =?utf-8?B?NkdnTWFpUVkvT0Nnd09tRWt2ZHlSbXE0S05Qbzg1MktCOHZoTk5aRmVodHIr?= =?utf-8?B?ZFVWbE5NNE9tQ2hEbGluQ2FOb1VKNzZBaCs1TUhpWjRZa1dtMVN1elRLd1lW?= =?utf-8?B?akJwV0xoQ01nZTV2dC9YeE4rclVidnF5OEFMc0xTMHRnOXJzUnhDVXVPK1Vu?= =?utf-8?B?eGpneTI4NzB2dEMzNW9mWnMzblROWUt6NmFzczdpMmQxampFVWxFWkp2Mkcz?= =?utf-8?B?cCtTMzVzVGRSMk54MHVyaTltVzRjT1VGb1hxcDR6dEJ0YXZTejVFempMQ0tp?= =?utf-8?B?d0c5NEl4MjRBZG1HOEg1WUdKUWlia0wyZjVpMWkrMGtqTjI1V3ZJbzZqemFG?= =?utf-8?B?Q1duRHI2enJFS0IzaHV4RGVLU2FXMVE1S3gyMG03VHFyMCtMOVVJNEtVWTQw?= =?utf-8?B?bTJlTThUdmxqSWtHZlNveWFVUmVxR1V2N0ZFUjl0eS9wSGFGcU9jQXVSY21o?= =?utf-8?B?b2crT2VVQXRvcDRtYlJUZldMREFSaHRwdDdWdXNqYm8yZWszdkxJeFV2aE5J?= =?utf-8?B?Yk9rZ3Z5TEJKTG5tY05MaG5laDBBQjkvSE1ERWEyN25EU2ZNODNHVk9RREN1?= =?utf-8?B?eXdqcm1PaFBiZUQrcXJGYlY5YlQ3MXdVLytDRTdvN1ZiblR0NnBTWW1qNTFh?= =?utf-8?B?VnVDVFNIdXQyYjlxZUUxV3owaU95MkFVcHJRZG42V3JtTVVUOEZRSTl1SkVl?= =?utf-8?B?WkFGcnI5U0dFWDNmQlVqZFBKQmlFRFd0TXJmSXYxUkk2N2F6dU9oYURwc2ZF?= =?utf-8?B?NVc2UWNMZk5mc21BSUJMd05PV2xFekZJUGdLcmtUdGRLMVduQml6dDFhN3Zk?= =?utf-8?B?bHdxbzZaclNmTlZQYkNPL29ia3pVN2VEejh5MWVLbmpVR2V5Rnh6RkF5dzJL?= =?utf-8?B?MXliSnl3M3FYMW1xVmxOc3RZUUEwMEZpSE1QUFRlQllwK1NodThSMjcxVlY0?= =?utf-8?B?VUNpTENzM0pjaW10ZXc3dEF4VFVBb1ZudHFrUGk5dVpRNzVjVHFSYkpFeUtG?= =?utf-8?B?cGVBSEh5TkFzSmd4U1hLeVhUVnhkdG5JMzhrS2MyS1F1aWpKT2YwZkpKNG1Y?= =?utf-8?B?UDI1K1RSVStndGdkVTdTLzc3YzQrdXhWWGRPL01tK2wxQjBCM2dpVmJNVHhF?= =?utf-8?B?UXVocndxM2JqZlJOY1laank0TVhYQWp3WHJwY05sZkY2U0g4d2NOUGpidTZN?= =?utf-8?B?NHNCK0tqaWx4cGIxVlQ0Ny83TjNoQVNKZGJRREExRUw3eld6bWhnWHNZNCtw?= =?utf-8?B?YmJsaXp3Zk9nbFFObGxSRCtyQUE1N3BoRDVNSkFhRm5BZXVac1RmSDh0K3dq?= =?utf-8?B?MUNxamhKbEdKUklZNExodTBNV1RrdHlYMGo2b1lDU3FrVDIyczQvU3VtdERY?= =?utf-8?B?bkdqb0ZVYXpHMlhMRm5uYi9NcDc4cit6TjhlZlFONnFINm1xemN6RVNGUVFN?= =?utf-8?B?LzVaaDZiMFcrWFBGYXliZGpNbEh4a2pIYUZxTy9ieWtlU2tPWGEwZ3VWWEt6?= =?utf-8?B?THBIRll1Zm1ONmt1ZFR0RS90V2dBRVBndXpPWW1oVFkwUU5LR0F0NFd0YTBQ?= =?utf-8?B?T21TdUZDaWJGdjcrM1dKNzFPa05FR2lxczFwaG52bFZ5Y3BZZnNPdWU2aWNK?= =?utf-8?B?dHpVRUVXa1pRTnlFR0p2cnVuM0VCeUhEbFV1OFVQbzBNSEsyTHNJcU1Pam50?= =?utf-8?B?V2dMc0tnSzlubU0zTkN6am1GMDErOGtCb2FtdFJEWXg0SnpJbSt1R0RRMUM0?= =?utf-8?Q?USu/R7TImOO7GMeCceXf65y78?= X-OriginatorOrg: oss.nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: f6c0e95f-7f16-4939-2912-08dd20390e47 X-MS-Exchange-CrossTenant-AuthSource: PAXPR04MB8459.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 19 Dec 2024 14:25:58.2211 (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: SmcbndP4NUsvLV0xyPzYT2Ibmc4R19T4i0BhjRlUCBT8raGkDq8BkrYHdHN2WCL8qrJBSdCRu2uqC9qB7AFtKA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: DU2PR04MB8950 From: Peng Fan i.MX9 OCOTP supports a specific peripheral or function being fused which means disabled, so - Introduce ocotp_access_gates to be container of efuse gate info - Iterate each node under '/soc' to check accessing permission. If not allowed to be accessed, detach the node Signed-off-by: Peng Fan --- drivers/nvmem/imx-ocotp-ele.c | 183 ++++++++++++++++++++++++++++++++++++++= +++- 1 file changed, 182 insertions(+), 1 deletion(-) diff --git a/drivers/nvmem/imx-ocotp-ele.c b/drivers/nvmem/imx-ocotp-ele.c index ca6dd71d8a2e29888c6e556aaea116c1a967cb5f..173863b1fd7de150576b78f03c2= 56a151b174389 100644 --- a/drivers/nvmem/imx-ocotp-ele.c +++ b/drivers/nvmem/imx-ocotp-ele.c @@ -5,6 +5,8 @@ * Copyright 2023 NXP */ =20 +#include +#include #include #include #include @@ -27,6 +29,7 @@ struct ocotp_map_entry { }; =20 struct ocotp_devtype_data { + const struct ocotp_access_gates *access_gates; u32 reg_off; char *name; u32 size; @@ -36,11 +39,26 @@ struct ocotp_devtype_data { struct ocotp_map_entry entry[]; }; =20 +#define OCOTP_MAX_NUM_GATE_WORDS 4 +#define IMX93_OCOTP_NUM_GATES 17 +#define IMX95_OCOTP_NUM_GATES 36 + +struct ocotp_access_gates { + u32 num_words; + u32 words[OCOTP_MAX_NUM_GATE_WORDS]; + u32 num_gates; + struct access_gate { + u32 word; + u32 mask; + } gates[]; +}; + struct imx_ocotp_priv { struct device *dev; void __iomem *base; struct nvmem_config config; struct mutex lock; + u32 value[OCOTP_MAX_NUM_GATE_WORDS]; const struct ocotp_devtype_data *data; }; =20 @@ -131,6 +149,96 @@ static void imx_ocotp_fixup_dt_cell_info(struct nvmem_= device *nvmem, cell->read_post_process =3D imx_ocotp_cell_pp; } =20 +static int imx_ele_ocotp_check_access(struct platform_device *pdev, u32 id) +{ + struct imx_ocotp_priv *priv =3D platform_get_drvdata(pdev); + const struct ocotp_access_gates *access_gates =3D priv->data->access_gate= s; + u32 word, mask; + + if (id >=3D access_gates->num_gates) { + dev_err(&pdev->dev, "Index %d too large\n", id); + return -EACCES; + } + + word =3D access_gates->gates[id].word; + mask =3D access_gates->gates[id].mask; + + dev_dbg(&pdev->dev, "id:%d word:%d mask:0x%08x\n", id, word, mask); + /* true means not allow access */ + if (priv->value[word] & mask) + return -EACCES; + + return 0; +} + +static int imx_ele_ocotp_grant_access(struct platform_device *pdev, struct= device_node *parent) +{ + struct device *dev =3D &pdev->dev; + + for_each_available_child_of_node_scoped(parent, child) { + struct of_phandle_iterator it; + int err; + u32 id; + + of_for_each_phandle(&it, err, child, "access-controllers", + "#access-controller-cells", 0) { + struct of_phandle_args provider_args; + struct device_node *provider =3D it.node; + + if (err) { + dev_err(dev, "Unable to get access-controllers property for node %s\n,= err: %d", + child->full_name, err); + of_node_put(provider); + return err; + } + + /* Only support one cell */ + if (of_phandle_iterator_args(&it, provider_args.args, 1) !=3D 1) { + dev_err(dev, "wrong args count\n"); + return -EINVAL; + } + + id =3D provider_args.args[0]; + + dev_dbg(dev, "Checking node: %s gate: %d\n", child->full_name, id); + + if (imx_ele_ocotp_check_access(pdev, id)) { + of_detach_node(child); + dev_err(dev, "%s: Not granted, device driver will not be probed\n", + child->full_name); + } + } + + imx_ele_ocotp_grant_access(pdev, child); + } + + return 0; +} + +static int imx_ele_ocotp_access_control(struct platform_device *pdev) +{ + struct imx_ocotp_priv *priv =3D platform_get_drvdata(pdev); + struct device_node *root __free(device_node) =3D of_find_node_by_path("/"= ); + const struct ocotp_access_gates *access_gates =3D priv->data->access_gate= s; + void __iomem *reg =3D priv->base + priv->data->reg_off; + u32 off; + int i; + + if (!priv->data->access_gates) + return 0; + + /* This should never happen */ + WARN_ON(!root); + + for (i =3D 0; i < access_gates->num_words; i++) { + off =3D access_gates->words[i] << 2; + priv->value[i] =3D readl(reg + off); + dev_dbg(&pdev->dev, "word:%d 0x%08x\n", access_gates->words[i], priv->va= lue[i]); + } + + return imx_ele_ocotp_grant_access(pdev, root); +} + static int imx_ele_ocotp_probe(struct platform_device *pdev) { struct device *dev =3D &pdev->dev; @@ -161,14 +269,43 @@ static int imx_ele_ocotp_probe(struct platform_device= *pdev) priv->config.fixup_dt_cell_info =3D imx_ocotp_fixup_dt_cell_info; mutex_init(&priv->lock); =20 + platform_set_drvdata(pdev, priv); + nvmem =3D devm_nvmem_register(dev, &priv->config); if (IS_ERR(nvmem)) return PTR_ERR(nvmem); =20 - return 0; + + return imx_ele_ocotp_access_control(pdev); } =20 +static const struct ocotp_access_gates imx93_access_gates =3D { + .num_words =3D 3, + .words =3D {19, 20, 21}, + .num_gates =3D IMX93_OCOTP_NUM_GATES, + .gates =3D { + [IMX93_OCOTP_NPU_GATE] =3D { .word =3D 19, .mask =3D BIT(13) }, + [IMX93_OCOTP_A550_GATE] =3D { .word =3D 19, .mask =3D BIT(14) }, + [IMX93_OCOTP_A551_GATE] =3D { .word =3D 19, .mask =3D BIT(15) }, + [IMX93_OCOTP_M33_GATE] =3D { .word =3D 19, .mask =3D BIT(24) }, + [IMX93_OCOTP_CAN1_FD_GATE] =3D { .word =3D 19, .mask =3D BIT(28) }, + [IMX93_OCOTP_CAN2_FD_GATE] =3D { .word =3D 19, .mask =3D BIT(29) }, + [IMX93_OCOTP_CAN1_GATE] =3D { .word =3D 19, .mask =3D BIT(30) }, + [IMX93_OCOTP_CAN2_GATE] =3D { .word =3D 19, .mask =3D BIT(31) }, + [IMX93_OCOTP_USB1_GATE] =3D { .word =3D 20, .mask =3D BIT(3) }, + [IMX93_OCOTP_USB2_GATE] =3D { .word =3D 20, .mask =3D BIT(4) }, + [IMX93_OCOTP_ENET1_GATE] =3D { .word =3D 20, .mask =3D BIT(5) }, + [IMX93_OCOTP_ENET2_GATE] =3D { .word =3D 20, .mask =3D BIT(6) }, + [IMX93_OCOTP_PXP_GATE] =3D { .word =3D 20, .mask =3D BIT(10) }, + [IMX93_OCOTP_MIPI_CSI1_GATE] =3D { .word =3D 20, .mask =3D BIT(17) }, + [IMX93_OCOTP_MIPI_DSI1_GATE] =3D { .word =3D 20, .mask =3D BIT(19) }, + [IMX93_OCOTP_LVDS1_GATE] =3D { .word =3D 20, .mask =3D BIT(24) }, + [IMX93_OCOTP_ADC1_GATE] =3D { .word =3D 21, .mask =3D BIT(7) }, + }, +}; + static const struct ocotp_devtype_data imx93_ocotp_data =3D { + .access_gates =3D &imx93_access_gates, .reg_off =3D 0x8000, .reg_read =3D imx_ocotp_reg_read, .size =3D 2048, @@ -183,7 +320,51 @@ static const struct ocotp_devtype_data imx93_ocotp_dat= a =3D { }, }; =20 +static const struct ocotp_access_gates imx95_access_gates =3D { + .num_words =3D 3, + .words =3D {17, 18, 19}, + .num_gates =3D IMX95_OCOTP_NUM_GATES, + .gates =3D { + [IMX95_OCOTP_CANFD1_GATE] =3D { .word =3D 17, .mask =3D BIT(20) }, + [IMX95_OCOTP_CANFD2_GATE] =3D { .word =3D 17, .mask =3D BIT(21) }, + [IMX95_OCOTP_CANFD3_GATE] =3D { .word =3D 17, .mask =3D BIT(22) }, + [IMX95_OCOTP_CANFD4_GATE] =3D { .word =3D 17, .mask =3D BIT(23) }, + [IMX95_OCOTP_CANFD5_GATE] =3D { .word =3D 17, .mask =3D BIT(24) }, + [IMX95_OCOTP_CAN1_GATE] =3D { .word =3D 17, .mask =3D BIT(25) }, + [IMX95_OCOTP_CAN2_GATE] =3D { .word =3D 17, .mask =3D BIT(26) }, + [IMX95_OCOTP_CAN3_GATE] =3D { .word =3D 17, .mask =3D BIT(27) }, + [IMX95_OCOTP_CAN4_GATE] =3D { .word =3D 17, .mask =3D BIT(28) }, + [IMX95_OCOTP_CAN5_GATE] =3D { .word =3D 17, .mask =3D BIT(29) }, + [IMX95_OCOTP_NPU_GATE] =3D { .word =3D 18, .mask =3D BIT(0) }, + [IMX95_OCOTP_A550_GATE] =3D { .word =3D 18, .mask =3D BIT(1) }, + [IMX95_OCOTP_A551_GATE] =3D { .word =3D 18, .mask =3D BIT(2) }, + [IMX95_OCOTP_A552_GATE] =3D { .word =3D 18, .mask =3D BIT(3) }, + [IMX95_OCOTP_A553_GATE] =3D { .word =3D 18, .mask =3D BIT(4) }, + [IMX95_OCOTP_A554_GATE] =3D { .word =3D 18, .mask =3D BIT(5) }, + [IMX95_OCOTP_A555_GATE] =3D { .word =3D 18, .mask =3D BIT(6) }, + [IMX95_OCOTP_M7_GATE] =3D { .word =3D 18, .mask =3D BIT(9) }, + [IMX95_OCOTP_DCSS_GATE] =3D { .word =3D 18, .mask =3D BIT(22) }, + [IMX95_OCOTP_LVDS1_GATE] =3D { .word =3D 18, .mask =3D BIT(27) }, + [IMX95_OCOTP_ISP_GATE] =3D { .word =3D 18, .mask =3D BIT(29) }, + [IMX95_OCOTP_USB1_GATE] =3D { .word =3D 19, .mask =3D BIT(2) }, + [IMX95_OCOTP_USB2_GATE] =3D { .word =3D 19, .mask =3D BIT(3) }, + [IMX95_OCOTP_NETC_GATE] =3D { .word =3D 19, .mask =3D BIT(4) }, + [IMX95_OCOTP_PCIE1_GATE] =3D { .word =3D 19, .mask =3D BIT(6) }, + [IMX95_OCOTP_PCIE2_GATE] =3D { .word =3D 19, .mask =3D BIT(7) }, + [IMX95_OCOTP_ADC1_GATE] =3D { .word =3D 19, .mask =3D BIT(8) }, + [IMX95_OCOTP_EARC_RX_GATE] =3D { .word =3D 19, .mask =3D BIT(11) }, + [IMX95_OCOTP_GPU3D_GATE] =3D { .word =3D 19, .mask =3D BIT(16) }, + [IMX95_OCOTP_VPU_GATE] =3D { .word =3D 19, .mask =3D BIT(17) }, + [IMX95_OCOTP_JPEG_ENC_GATE] =3D { .word =3D 19, .mask =3D BIT(18) }, + [IMX95_OCOTP_JPEG_DEC_GATE] =3D { .word =3D 19, .mask =3D BIT(19) }, + [IMX95_OCOTP_MIPI_CSI1_GATE] =3D { .word =3D 19, .mask =3D BIT(21) }, + [IMX95_OCOTP_MIPI_CSI2_GATE] =3D { .word =3D 19, .mask =3D BIT(22) }, + [IMX95_OCOTP_MIPI_DSI1_GATE] =3D { .word =3D 19, .mask =3D BIT(23) }, + } +}; + static const struct ocotp_devtype_data imx95_ocotp_data =3D { + .access_gates =3D &imx95_access_gates, .reg_off =3D 0x8000, .reg_read =3D imx_ocotp_reg_read, .size =3D 2048, --=20 2.37.1