From nobody Fri Dec 19 06:32:26 2025 Received: from AM0PR83CU005.outbound.protection.outlook.com (mail-westeuropeazon11010036.outbound.protection.outlook.com [52.101.69.36]) (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 623878F6C; Sun, 2 Feb 2025 00:50:11 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.69.36 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1738457413; cv=fail; b=vGhkeIQCr9F+aMuDTAfZvMbFM+gMUJFrLu9uRivzeuboiM+z4cmuG+ruxNd8yoqVQ6GsmrofqyNLAwnx76wJagf14Otc0ZcgfeaxxL2X1qTT+6yJ9cb/qh8KX5uOde+QZxdBAVjcY8yVmfFJo7m+KsTj0466ONzbZFX92Ax/nIo= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1738457413; c=relaxed/simple; bh=sjfrwJo3cirnw0w3T7cHbGyxh5PCEPcyb9YHHF2hyWo=; h=From:Date:Subject:Content-Type:Message-Id:References:In-Reply-To: To:Cc:MIME-Version; b=MZPqRfUMxfQYoy+XC9iia/kpJYpGqltgT9ufyYMfAzvPxZ2yLcjWVsMWsraM4I9pcbJySZBvTk8JNnurBpahVy1O0pOfmz8JZJsULsVryoQBW/Yq53wr1B6vs/X5Xl2G9nz5nanwRMxjA+anwDr8MXA8DLox+w32LH5UYkaQb6k= 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=gqQj51jw; arc=fail smtp.client-ip=52.101.69.36 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="gqQj51jw" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=NlDIqovUthjl9avBpo3lxruz/mUwynkQjXadFWs3H0SpKrDuM2T1eCsDOMLHedWoq0UUHu6RQrvJ4mk7UUO41Rw2z3vr64sjqRWCf4zhhJdhE8PP3/s6OiJ3SWkpxuQx2YJD6HgBTGHLauUsesLey3xP/x9XenThn2uPaUj96TAZTjMVwyQEoIR7crC36P9MayVCaNmbo2jxIm5bWGVZOcV67gH0EiDvuThzC6GZR3wN3KNymsl21C0CDkoD9kCed1lLnh1IPAhssB7U/kOR8WexE9/Jy400UslYmsSsp4FAWyFlxLsVRJMmjkTtGCBJmg16xJrAsboQToGWz0rXvQ== 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=UqDWQKTZyqxTxaDKQ1olaPCS0AfrUcUd5yOLvVszXDw=; b=TjoEngB2rgw0mN2Nbogn30Hw1JCbDSKkgjRElqvoyrR6GzJXZATha8FgwifdLN4wxJG14Xpw1I/wuIGErsysbBmFpbOw2CYO76GP4ERRlTWBS3VGeelTtFwdpcQ+4U3Lfc5DxYa5KXD5Rf6mdOHWhL0+uF2kr8qSrdf5vKQeesGKFOHMcburkuQw/kfWoF4k3zHS3KFwfL5azH2OCzSNu9H/YSfXDUH/EdgEhZJPsl52L5+wU4xJNBUIZTyJDVBWcS/lYJoBfppbxIdPWEwyGN9vLUas79lfJxqfeSNshnNObrKNr57zGrw2anfFsgSSjiAuhB1PsH+93Fm9pD4qeg== 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=UqDWQKTZyqxTxaDKQ1olaPCS0AfrUcUd5yOLvVszXDw=; b=gqQj51jwOMlTlfRCBqbb9c4BZ1AlPv/0oK7T2S1x9BDbPCI77n9HLf9xa9Cu+egGbGuZu8dVyiaj+AibIsi1WqS/zBo8xk1MTgedIALUntQWQT2LFexo1GMG7+5RJ0ynp7r9KgVP/nmS+740m4Nr1IwlKYYbmA4rWB7B6/VgdNTFiJzLAr2RfY6Q5fRRmvZBLgQ0vzejDa2NFkDRLsAHI0pTCWQd2dX0sO+AFIysug3vL9nmz1aOif6FQ23Pa9qs6BPnUBB+Fx2B/XR2e2oQdVB+cFEWUAQcyfYMhvDqupgVi4YMjt2YYSMjya96/KmhjS231Q/l2Bi/r03rIs23tA== 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 VI1PR04MB9932.eurprd04.prod.outlook.com (2603:10a6:800:1d8::21) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8398.23; Sun, 2 Feb 2025 00:50: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%6]) with mapi id 15.20.8398.021; Sun, 2 Feb 2025 00:50:05 +0000 From: "Peng Fan (OSS)" Date: Sun, 02 Feb 2025 08:49:12 +0800 Subject: [PATCH v7 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: <20250202-imx-ocotp-v7-1-5622ba16451d@nxp.com> References: <20250202-imx-ocotp-v7-0-5622ba16451d@nxp.com> In-Reply-To: <20250202-imx-ocotp-v7-0-5622ba16451d@nxp.com> To: Srinivas Kandagatla , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Shawn Guo , Sascha Hauer , Pengutronix Kernel Team , Fabio Estevam , Alexander Stein 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=1738457363; l=4072; i=peng.fan@nxp.com; s=20230812; h=from:subject:message-id; bh=XnzgujPvzhDsZMamCFtENs9apB02aFgSkBfdNqk+fEY=; b=FwGNjYnEO46rkTs5h/XzwZQf935jd6xdAett0mnBjcFZBrMG2EZO7U3wySCBLxyTnSts8hhHG u9nt5klZuKBBPvIJsjvz7MtB6uG01g9ALEQEVtM6lcR85YvWEx6GS9S X-Developer-Key: i=peng.fan@nxp.com; a=ed25519; pk=I4sJg7atIT1g63H7bb5lDRGR2gJW14RKDD0wFL8TT1g= X-ClientProxiedBy: SI1PR02CA0035.apcprd02.prod.outlook.com (2603:1096:4:1f6::8) 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_|VI1PR04MB9932:EE_ X-MS-Office365-Filtering-Correlation-Id: 279e58df-d7eb-4ea4-4a19-08dd432388bc 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|7416014|366016|376014|1800799024|52116014|38350700014; X-Microsoft-Antispam-Message-Info: =?utf-8?B?aUUzcFh4UFhmekhYaWk0OG0vTWVhWEtJdEk3V3Z2VVhNVy93R3ZTTWpjbFlG?= =?utf-8?B?a1VSRnVkLzJmYmFrM2ovTHFSdUhVTG0rTDdOZjM0YWJlUGd6YWZpY0FrK1BN?= =?utf-8?B?LzFNak5XYWsrb1NQbXlDK21aWUFzaGVLaHJzcUVzWjZteklhOERQUnlaaTZs?= =?utf-8?B?ejFuVjJVRDZJVDVQRngyMGE1SndlbVlaQWZQOUFlNU83c1J1ZmwrajArK1VK?= =?utf-8?B?bFhaVldsV0MzWGxXM3ZjOUJ6eEltZk5jSVpmUFNXYVdIQ0tiZHNGVTdVNGJL?= =?utf-8?B?eE5ZRHdEOWNBK0FzZ2g5eEJBTDdxbmxFZ0FhaUtqSjBPT2FUWDlRb01lVUxL?= =?utf-8?B?NHBiR3E5WmQ3WlZDZnE4RFc2S20xU1dZVUh2enB5Z0pWTlBseHp0NElHUDgr?= =?utf-8?B?dVRnNHoveTdzZnpKN3BsQUhOYU5iSHhWMUZXbnVBZ2pZV2FLY2pqcjZOcm1j?= =?utf-8?B?ZVFHWXNiV2VNalNsSVloK2ttODIyRWg1MlkrdjZTaDNQT1BtT2FlTFB0YUtX?= =?utf-8?B?SmZ5TGlrdjJNeHhZTE1GNThjZ2VLM0h3S1VYZUV3UVQ3NWc2MW9nd00yM0lu?= =?utf-8?B?ZGFDaDNuMmdVNjFUdk0wSytpV1ZOeFgwVnc4cDhSczBBK3N5UTF1ODFzTXcv?= =?utf-8?B?cmw4K2tDMXpnRlZtMXhGZmFMZERyTFRGZm5SM1NtNWJBY2dXNzNFMUZaQ3pJ?= =?utf-8?B?N25POEZ2ZUlESTFoZjU0Z0FwU2N5a1VDRXpGR080OFo5K0FZUlJBLzVzQ01x?= =?utf-8?B?cmVFYXpFaXRRM01YdFZiR3F6ZHorMkluUmx6MVJubFh3TEZRb284c0wxa1Qz?= =?utf-8?B?UkhQTFBkbFJRdW5tT2J4RXY1TWlHMnFwN3FrVUZWenNSNmNmeDZyaHZUTDhV?= =?utf-8?B?UytGTS9NRFJQTXl5UlRpRUo5d3FRTTUrSlVPMmJlQUh6UTNCTzZrLysyRFUz?= =?utf-8?B?K0tKWDVGaHUvWlJWMnZSRUV4ZVJrMlA5MHErUEN0UXFrVDFicFB0UEVucDMr?= =?utf-8?B?b1pGaVc2UHJSaEdhQWRud1MxeEt3VU1wRjRsaTdvV1JUNmlEb05vNkVmY050?= =?utf-8?B?SWpSUXI3bFRrUTFEODA3QTkrVTErNHE4dktIYTNGRG9ONUVvMHdDcHk2K1dL?= =?utf-8?B?VVg0bmdHc1h2NGx2eDFlTjQzTUZqNVVJOGZIOUU0bFR5Z1FnNDdJOW5jTnJt?= =?utf-8?B?OWNRc2RyeCtwZ2czSEMvMVYxNTdHOFZydkxxcHRUNjF1RGpnbEVBSVVpOGlh?= =?utf-8?B?UUlLajV6MlorVmFQOHNnejMyTndVNmdEYXN1QStCVDArZkxsTFhEYUR5S09L?= =?utf-8?B?cmlmbzZDWjB5NUtxQUFEN0c1NkN6a2ZxZUNLSUNaNTdna1gyVW9McnFhR1BE?= =?utf-8?B?VUswS2lvM3NvSjBkL0hvYWJ0bWhrNkE1TnZpQldJOEQyMFI0N3FmQThkTmdu?= =?utf-8?B?V2Zpc3dOUm83bXhUVlZuTDRmZGF0MmhUaUVKVGRvNG84WDYrWXlVekV3bFR3?= =?utf-8?B?ZzlvWnYwblpYTU1vTGRMOEVIN05hRElLcyt4dHdYUjZINDFnUjhQSTIvRVo2?= =?utf-8?B?a05JVm1hVUd3bGtmeTJzNG9ScUU1UTZQSnY0VE1xUFdnazlIcUlZSjRPdjVk?= =?utf-8?B?M0hJYWhvT2NETTl0Y3dWODRvbjlaMHFtbHZteGJNRVVDbWtGNlo5UWwvN01n?= =?utf-8?B?dU1TY216Y2ttcWpMYUV5OUN6ZUszQ1U1RFhNYzhtSFZMMlBnSDNjNGxNWCsy?= =?utf-8?B?VFNyMkpmTklrT0VueTBqZ2E5L3B2c2F4Wm93RVl5c1VhRE12d3lnbkdwU0Rx?= =?utf-8?B?bGU5eEVOQmZVQ0pYUWozY3U3Yy9LWmJxZE8ralpXQTI0RDMrRjZhamdMbHNP?= =?utf-8?B?OXFudFpBc3dGYkk1NGpJVDhvRkdCU1E1dDZRQmNZN0xGbmdRM205T0tvY2Rs?= =?utf-8?Q?bm82q+jpdgci7Zx1LtSGOo+IhOS+5QGy?= 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)(7416014)(366016)(376014)(1800799024)(52116014)(38350700014);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?L1NXOWs1Z3FzYkd4cGtCdk00Q1dkU0FiYTlKVUt3dzY1MmQzbHNGSXNvcEZM?= =?utf-8?B?VnNvSGhZV2d1OHdFYTVSSUdRcE5vVkk1NmN4YzEvZmU0TkN1bU9BdjR3ZitQ?= =?utf-8?B?TVJWaWlBU3Nacm1rK3ZBbS9nV1FvT1Y3Y0RnSHB6VVp1dFBLU2NBMmRxS1FK?= =?utf-8?B?a0x4eWloQ3NaekMxeTVjb0Q3KzhQVmxvcytaSDVjTFlpT01uRk1JanVHeE8y?= =?utf-8?B?R09QRHhOZmdwTzR4YnNzeTBza0JSd1FldE45d3B2Zi9mYktKbm91aCtSb2NH?= =?utf-8?B?aHkybXpwK2hrRmh4M1RjTHp5SDR6WFZrK3pWelFhS1htSUpER0tYVjN0Sm1t?= =?utf-8?B?S2RyL3JlNEEzVUlDQlBPME9nUVcrOVh2Vms0TU1tQXkvVjdBUmRnUFppVmZT?= =?utf-8?B?TnQzcGphSHVwUDBaVTQyWG5pOEtCanpDQnRzMlJmZ05wUDd2djFMdkNYYldr?= =?utf-8?B?VjkvaUZoMUtialBvV0xjbHBsMFFCQTEvZ3JjaVRpS3NZYjlaeTJ1MG5XZlhB?= =?utf-8?B?UDZBV2hzT1dtNDlOVVp3eHJtbm94bmlMTzJhOFRRbkZ3ZnJJSzhXSzZCY1JX?= =?utf-8?B?cDBOajlOYmN6cnRGZkovaFliVGdjQ2dPOWx0TFRJcFFaMGNqSWpWZlB3aEZs?= =?utf-8?B?dXprWGhrZmhCTlYrbHdCbGV1RHRxMkNVMzZvNjlJUmhQdUNtZjNTbUFrZzYx?= =?utf-8?B?T2VocDJsaG1CMElLZFl5RElBZnRqREdmNDYvdjB1clpVQUEvV0VOQWZVYmpv?= =?utf-8?B?OTJ1djNqQlV1TEd0dmxUcERpL2FndHBubEFhWVZMZkFvaXZvWG5KYm1yazBV?= =?utf-8?B?WlhHSFVrckNRVUVyeWE0eThiT3dUTXVLcEVudlljelpNZkV2TFgzNVZUTFY1?= =?utf-8?B?YTZJdGtlb1VBaWVsY05yUVNvM1R0ZkwwZmk3MURPZVFJRERzTVVHejY5MUxM?= =?utf-8?B?SzdqNlJJazR0SjFFMnFzSHJOSzUzSUxkcmg2QVNNcThsSExOUWd4NWVnL1pv?= =?utf-8?B?SVJHUHR4b0g4QjdKelZBSkxhSmx6dnFZZ1gzemRINFowUXA2RGZGb2lWVFVs?= =?utf-8?B?NEFrMVNxR2VFbWIyNVZDdXpSQllmRjRuTzdLSkZOTWpqb01sMFRtYUgvbGNF?= =?utf-8?B?R01xamxDaTNSVllXc2QyOTlJeldVSVViV0s2M1BIT2NYb2l5NThxZXV2NUVU?= =?utf-8?B?QXRKT3hMalJ2TUhrZ24rR0VrN0l2b0ltZmIwSUpOL01hcitneFJNWUwxM01y?= =?utf-8?B?ODJFS00zZG9nTXd2enVCMVlWd0xHZWFjSHZnTjd0ZXNnc29LYVJwZE1nNFlj?= =?utf-8?B?U1pOY2NrQVV3aEdvV1NIc2ZtazdyZ01vNktUemI4akdOYWU3ZlpTdHZYUnY3?= =?utf-8?B?cWxFMUlXSUM0c3M0VWlDRm5semJ5YTdxL2JZcUhqWkxOSmZoN1NQR3dVTjdQ?= =?utf-8?B?ZzFNNjQ2NEZiZGZrZFJoR3ltbU1VSjBjOFQ1MGlQQ016RHkvaTRMdFNxckhS?= =?utf-8?B?YU9yYllmQUpldllWLzVLbjNOc3c5SUg2a2IrQ2h4RHNvNXFpbkRuYit5RnZY?= =?utf-8?B?VGE0ZHRyN0hEcUJrWk9mdS9LNXdjVFlDNWlKbjdJdmg5czhzeEw1OUxnblJ0?= =?utf-8?B?MjA1dTRjQ3lVR3pRT0lCdTUxTDBQNm9GNTFQeTB2UVFDeTRzOGxVTE9XS2RY?= =?utf-8?B?QnV3Unk1bWt4bXhDbi9VZ2hmcmlZcnV5QXc3TEtHVjgwVnAzbUZIWGhRMlhk?= =?utf-8?B?alhwWkF1dkRTeUFtRVFvb1kvamwyM3p0R0J0YnBXUFUvZXBWTitLbndKeXpV?= =?utf-8?B?MkNid3Z2SXVwK3lvRDNUZXFsMy9TM2dCT2hxTFh5cndEQjNXY3VLczhENmFO?= =?utf-8?B?enlyZG9HbHNkMGlEcGY1UTIyd2R4MWoydE5rcXJwN2NJS2xLeWZJNGNvRWZa?= =?utf-8?B?R2JRUFJMNWRVZDVCRnRDeGprT1hMTUttQWZMaWFRK1BSVVh2VFRXOTJZT1g4?= =?utf-8?B?NEdFL0J0WXN5ZzR2QWQyMmJWUFl1djdEOXpEYXU0dzBMMEdZNHk2VnFEaVdU?= =?utf-8?B?MnV2cEswWDA5ZHA4a3RTL2pZQW9ZZ0Jsd29LeWNQREdvV3BXaFdtTmkvVmRY?= =?utf-8?Q?kLvo1syUNJz7dUj65+ZrDeUwG?= X-OriginatorOrg: oss.nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: 279e58df-d7eb-4ea4-4a19-08dd432388bc X-MS-Exchange-CrossTenant-AuthSource: PAXPR04MB8459.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 02 Feb 2025 00:50:05.5037 (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: 8H/FYuJibj6SdTzzD2S0z5NrR91+mIzcNs6eekpoFWs/ZlJIqQlK8waPMwKy5ayeATzOv8U/3c08+crv44VF+g== X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR04MB9932 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..4b7fe5930331fc7e3be49f2674f= af03c0a46d156 --- /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_OCOTP_H +#define _DT_BINDINGS_NVMEM_IMX93_OCOTP_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..717152219c9890297440b74e11d= 67e2dc5da883a --- /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_OCOTP_H +#define _DT_BINDINGS_NVMEM_IMX95_OCOTP_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 06:32:26 2025 Received: from AM0PR83CU005.outbound.protection.outlook.com (mail-westeuropeazon11010036.outbound.protection.outlook.com [52.101.69.36]) (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 A7E7EEEB1; Sun, 2 Feb 2025 00:50:13 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=52.101.69.36 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1738457415; cv=fail; b=X/pl+bdqeALupVJoyz4J2r6u7vdGo2DTLi0obQMY2TZsfdiXXEjGHU04aXhaJI8SS5tdW6CaNyVx0wl1zBSkUxaoOxE9ix8sJspjNar80dppAS5A31Gc1pfeJwyCG4Um/dcLTV/C9bkSHDvw7j2dmPeu4p9YE3kzpC2p+Cu45HQ= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1738457415; c=relaxed/simple; bh=W3QIoTkDwnpL9HDVfQEYxcyY5ipZyJ4wL4e4XSiR338=; h=From:Date:Subject:Content-Type:Message-Id:References:In-Reply-To: To:Cc:MIME-Version; b=r2SNF33RASOKARh/rPM39Mzr9/RYbIJ2hD3d390sj1V+ynfc5drzuUzZwEmEUzk/xCyUf5v9lSj9DadfnIviueXihlXXqrYdVDhNjxg9APFIricMs5oEDzrEc4LRzYdQGK34PRZRUMwky6cV1v5wwyKDSEzM+WaOa/pgtd9fDbI= 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=GQgLXqcH; arc=fail smtp.client-ip=52.101.69.36 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="GQgLXqcH" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=DRk7Dvsa9NIkquHJMMZGnmPvhnrzPRBZRGR2TG/E1i4EFjxFzc6a3UDJRjlP8DhmciLSaXMtE/RD9LECrolo6KcDPs1N6MmE7ZF2ZYOv5nsfVZqxQ29Dbu9YS4wvHzdjvfJp64g3Xx7P3a0b1JpqzFG+8DMdnPES4EhWOFKaBMP4Ks7GPefjKtHGfWg49c1yKBOFG3agFLT94Ge5f2Wb5g+LwYYX+86QvdGoENFGg2xvJ4AaddKFEz3V7/3WObIJuCG+yJ36b2zMFb21Ev2TX2hYXO/UFX3ypxtaq3n7bWP/IZwmR/ep9wLOkqYFsOM/SFuFPZPyO6W278cm4lLXPQ== 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=dnRdHsxaAcViRTPEQfvHw+sWedtBw21f/M59VsQkyJY=; b=PrDnGQo/ohDW9XqnbFNGkZEf4v3rzhGROMwoMyYO3rgLUZojPMKIZ/4lIwvIdmoQqaGZnv7z3BToLN9A0HLfasWea8ZMGq4zZO4DOnGyr5V6akKdLu71bK1A2cOllQk556Jv39wqsZM6GdFvaFPtn73WDx4dpxPSvnqqfPwKnWR9t1VRo3k839fYyZSQWTjcEOazJptwpXEcne9UYiOp4ectvaNmLwzmZTH6KSPVj/usZYevjrdxu0NKFm34sDPJY8sVminPjbtVr21j9BusAJcOLMntzMS0PZFlltK65QoD94S9KoE3v+VlAxdl6a7IQ/6hY6C+bIhX5gJVr0NztQ== 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=dnRdHsxaAcViRTPEQfvHw+sWedtBw21f/M59VsQkyJY=; b=GQgLXqcHjPC2XooX5YsJZ8W0eBbwEPh4Jy+RwgeFJyRJw650JRxvsQF8a8MnJJfJ5F04BFOChM2361r6aVmScY6yvpLwYitSNAWoNnCNPUx7HpfTcB8aXcvv7fZlHT6LTnFmXGoaCS1ZHNDzep1OvnYUBCCk8hk+vHExITYp/3JFSA9lP+QP5q0QyeiEnJE3nnfOt28u6C9GDcrP6ltr5VoOUhu/DtuXe1SjPoKex018Qh/xI24h+5dc9FapVYinBCZcUp2K2N4V45ZS1Fwf3AK3pVcc1dP4TTg/xjzma5D3cp/LNEvXPLn5Pcmz4gHrapkRrukpjaWevAJ3PuFI6A== 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 VI1PR04MB9932.eurprd04.prod.outlook.com (2603:10a6:800:1d8::21) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8398.23; Sun, 2 Feb 2025 00:50:09 +0000 Received: from PAXPR04MB8459.eurprd04.prod.outlook.com ([fe80::165a:30a2:5835:9630]) by PAXPR04MB8459.eurprd04.prod.outlook.com ([fe80::165a:30a2:5835:9630%6]) with mapi id 15.20.8398.021; Sun, 2 Feb 2025 00:50:09 +0000 From: "Peng Fan (OSS)" Date: Sun, 02 Feb 2025 08:49:13 +0800 Subject: [PATCH v7 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: <20250202-imx-ocotp-v7-2-5622ba16451d@nxp.com> References: <20250202-imx-ocotp-v7-0-5622ba16451d@nxp.com> In-Reply-To: <20250202-imx-ocotp-v7-0-5622ba16451d@nxp.com> To: Srinivas Kandagatla , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Shawn Guo , Sascha Hauer , Pengutronix Kernel Team , Fabio Estevam , Alexander Stein 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=1738457363; l=9131; i=peng.fan@nxp.com; s=20230812; h=from:subject:message-id; bh=Anv2VHTrQ5YUO8Yumr43PlFx9MaHLgFhhdjS8Z8e8PQ=; b=bSH6+RucaywdNuNKB8F+CLm2LzVD4XQsZWbKpGryj3uYnPJBywod+P55qzB73EYpoPtSo76wK ZzWK8RjEwOEBIzuJS6R5+kX8eDKGtjbhEPgqOBOkeK18Xx8wReyM4lu X-Developer-Key: i=peng.fan@nxp.com; a=ed25519; pk=I4sJg7atIT1g63H7bb5lDRGR2gJW14RKDD0wFL8TT1g= X-ClientProxiedBy: SI1PR02CA0035.apcprd02.prod.outlook.com (2603:1096:4:1f6::8) 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_|VI1PR04MB9932:EE_ X-MS-Office365-Filtering-Correlation-Id: a1a2bca7-9732-4cdb-e943-08dd43238b22 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|7416014|366016|376014|1800799024|52116014|38350700014; X-Microsoft-Antispam-Message-Info: =?utf-8?B?S3JJZjJwV1B1RzNPVkl3TkJrU2NwOWJJN0NzMlNVZUlhYTFxNy9xa0s4MTVY?= =?utf-8?B?S09HbU8vSlZ4VXlBVHg2MUdzOUNBYmFsTUJLNzFDWFRXWGtXY0lpY3ZoeExM?= =?utf-8?B?TnpoWUpJQ1gwcGVxQWxYdnU0MmdVOXd5MUNDZWt1a0VwUXU3RGdqc1RTelA0?= =?utf-8?B?Qkxyc1NjZFRZZVJmS1FhWUt0L21JYkJLNmtsN2NrbGlIdS8xdVdmdDltSm1V?= =?utf-8?B?Rk1Dd05vdWZSbHZVbE1lYzRUd1NaQS85bVJlanJZRUFiQllQOUUyL05sQUVl?= =?utf-8?B?T3cvZWFZc25Lb2tlWlJDRWRDLzNTTk9VZHE5MEthUUVvelh0Tlp1UjNZdmta?= =?utf-8?B?UFA3ZXlRU3Q0MVViU0dueWpQeUV6SThRQ2hyMGZDank0U1dZKzUvUEhKNnJX?= =?utf-8?B?QVpNQjBBVWpwL09IYStJR0d0eStUa0w1MWhRU011VEtpNW80ZWZIdDN3ZldK?= =?utf-8?B?SjZNS3JjYmFYZEFPTFgwZzIxWU9hTU9Bb0pnTVRnaUovY2hEVk4zeUZhdGJJ?= =?utf-8?B?WFJMZmY1OWJjdnVxL1JhY3J3NkZuZUlHQWlSV29tRk9jcTB1SkNybGQ0VXhy?= =?utf-8?B?dG1YckM0dDVOZGxRcG5QOVdScm1KNCtvb3JuUFhUWTJLcTdUZ2x4eitET2JE?= =?utf-8?B?djdKbEIvVDRMTFZjK0U0b2RPUVhPNGpETUtsKzEyb3dLSVM3TXVBWUdhZUgr?= =?utf-8?B?ZGhJNks0WENhVllNblI3dzhtTk4xZUFTKzY4b3hla0FsQTdMd3RySjYzQjRz?= =?utf-8?B?Wlp1Z0tHQmxOYlYrOGxRMWxQL3ZuU21RSVl5UG1NUjVXY284NWRmc2xnQlVj?= =?utf-8?B?NFZhczdqTU0zVW4yYUNhMlEwV2lvanVCYnpjd2hOckE5dkhxQ24zNlYzSkYz?= =?utf-8?B?cWZJSDJ2Qjlvd1FESzhRRldNMmFQeU9OYkI2clFaNTJDWUZsaDFsMzR0Q1Rz?= =?utf-8?B?dTdTbklHNVJsUm9BZXA2Q3hBZ3U1ZUxSeHl2ZkxuVXNLUGR6cmlQNHY1aW50?= =?utf-8?B?R3VRN0dKbE1vdlpxdEg3Y0c5RWF5NlhQRHRUcTFUcWFSdXIzblpwUFFsZmtI?= =?utf-8?B?djIySytTNDgwc2ZOTVNYalZpNGdMSXIraUd2Y2NaeWN5ZlVBZFJKbVdnK2N1?= =?utf-8?B?K3RhQVlObE1NWVhsZ0l5anVwYjc1K0FTam40dkMvQmJXcFduSVlYZURrSUVU?= =?utf-8?B?NEc2Zll3MklGZDNlWnRYRUhCY2hXN0NmTElFY215UnpJdXpKN2UwOXdmVGR2?= =?utf-8?B?aFMwZWx1ZlB1elpUMmltbEJIdW9GNUtFT0wyTTdKWW5FcWxRVUdVVFlaYlFl?= =?utf-8?B?SnVHeE1mblV3ekhkWW9QcHRnSEM4dWxFOHovamFJcGZxeUdQb3dZcHNOdXpw?= =?utf-8?B?UlY1T2tHOGlYRHpXdzBaUFU2MWtuVXZ3UGZ5dWRtTXE0NXlhdHVlRzdBc1FQ?= =?utf-8?B?L2NiUitsZnhISTY0bXRzQ1ZQY2VHSGNjcEY3SE4rMWtrL3N6WnltaWpMbGVW?= =?utf-8?B?Mko5SExRVkU4TE04dkVhS3VNY2g0Z0NHUXErd1lJWHVlSXN3MFdUSDVjR1Jk?= =?utf-8?B?UHN1azA5R0MrU1NpY0xWNTFRV1p0dG5Sdi9RMjM5dWdzNityZlp5TWNNWE9y?= =?utf-8?B?SFUzTW9VTmp6SzV0TUh3d0h2QlhjNDVuNksrUlY4dUJUOXVvK0tVZk1UaFVw?= =?utf-8?B?dEtzc213VHRjeDgxb1hxUlNKRWhLcWJXMDZVWi9DRmZYU3o1ZFVBM3FkRTBW?= =?utf-8?B?LzIyS2ppUS84NWNPVGQyZFpaYmpuYXEzcC9tbTBUWUoyMEYycCtSczdWcGt0?= =?utf-8?B?YjJ0VTlHRmxkWWhXWW5lb3NpcVhmTHJWV1dRbE9XTGdkcmxiRGE4OWo5cC9Q?= =?utf-8?B?WU9wcGE4d2R6RExkbkVSYmpJUWltUjJsNDUyVFpXNTliQkJYdTZHM2N5bk1C?= =?utf-8?Q?g7Y/HDQG2KvGnBTubWbThL1rUhNLYNZM?= 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)(7416014)(366016)(376014)(1800799024)(52116014)(38350700014);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?ZTZZSkxDVHFoa1J4SjB4OFZIUXJxSVRNeVgvZ0dzUC9US3ZRMWZCc1pFdEc4?= =?utf-8?B?ZGZxR3p3OW4wMllpaWFzS1JMZ3BMMENHRVNDbzNIY3dPTTdaZTI0R1RTSGhG?= =?utf-8?B?UExGbUxvUFYrdzZacU1PUG9kZHBRZnpIWDNPMHR4NzRCQUxxSkxwWmVhelhM?= =?utf-8?B?TmlhU0RmTTRUTERLaFArNFpLVklwWWY2K0RCanlQeWZJUUlnZEFsM1JIT2J4?= =?utf-8?B?dXl6NitpcSs5VXpXajQ0c2gvcmZDbzJaek9PSVJld3JaaTFiRGtwYlN1T3kz?= =?utf-8?B?QmxURjNjN2xPMi8wZFExenJQN01qTVN1OENTL3BxZ2ttTlY1NCtBdXFrbjlG?= =?utf-8?B?aW9XSE1xS2xhd1RBdG5BcWo5WlVad3Yva3o4K3JnT2hEV1NwenlWV3ErbU51?= =?utf-8?B?K0JTZS8vMWF2NkN3T2tFTDI3YzBsay8yNW5qNjkxUjZSUU9nd1FRb000MHgy?= =?utf-8?B?STJpeU1LTnJWVy8zUHAxVFV3SzZIakc0NXR1eWVLMXo2N0ovWHdJSEIzd1lF?= =?utf-8?B?SUNCL1pOSDVnOTcxSGdtRzJ2WjJtYzh2RW9tMmk0S1oxRHgwQmx3UEdvSnVF?= =?utf-8?B?YjZRNG1kUi9JdWt5U0pJYlF4RkoxMVVDb2Y3bm5tWG9xcm5hbDFGZzJFZXNX?= =?utf-8?B?MkM4US9JMXY2NzVlL0w3c3lLNzcyZ3hvTUhIMFRwMHM5U2lxTjJ3RTZWaW95?= =?utf-8?B?bjR6WHd2aWdmOThoc0lDeUFCbjNjdkNjNEZYWUU2SVYyL2dNMG5qaVdjZkdw?= =?utf-8?B?OTV0b2ZFcXpQdm9ubE1JVW9FM3FIc2t0MXNpTDBkNWtUdkZoYityUkxFdHI1?= =?utf-8?B?VkZZRU9Za3BiQjZ3ai8wM2hrWFZoakdPWFlzYzB5MWllUndUUVhHUFl4QXdo?= =?utf-8?B?dDVERjlKNFVKWHozb1Z3WHV2WUdiNmlFZGp4RE51RmFCSDhVbjVFSWtuNWVt?= =?utf-8?B?M1BCeHVHRlhYcElaM0E3UUI5VXp2SWFoVmFnWmVaTlJ4NEk3QzRZSFNGNDFw?= =?utf-8?B?UXc5L04vV0NKOEpadHhndWo5OHNWTEZtcTdvS3RrdTVEWk5QaktzcG91TXFX?= =?utf-8?B?Sm1EQnFjcHM2b29oeUNrWlJJaTR6QXpiTkN5bjV6R3IyamtFVVV4VE50dVB6?= =?utf-8?B?MXh2dXErQUhhUGFISlZ2SGVhaVFOcExIbUxTektFVmZHRC9ORHlvSWtwODlT?= =?utf-8?B?YU81eHJNNUd1cUFGKzNDUkk5WmE3Rko3M1pzd0tINW44eGM2R3NZangxbGQ5?= =?utf-8?B?Y1Y5UTVzVXlDU3RaT3JKblg1UWRMbWp0ejRiTitwTW9UbU5xUGZ3L2dtVFp1?= =?utf-8?B?SU1jOUpqSi9OY3Q4YlBWTlVxTzAwSHZEZGRFMzN2c3AyOE1kUHJRb1AvM3E0?= =?utf-8?B?aUlkL1BySXFWOHlhM3FHQ212OGRKVUJWY05sU3J5aDFLR3p4WFpieTVjdGR2?= =?utf-8?B?YnNUOUJ0NWdQelNpeTUzWlZyMDZuTHdYNGpIbXpiTno0VHIxMVROU3ZWRjhG?= =?utf-8?B?a3dqc0NDN25KWG0rNkJKaFgrb202ZXZEQkNqMVNtOWt1SWc1RmhkbHlUUEtS?= =?utf-8?B?UGxtNjlOc2VZd294WEcvTFVZdm5XblI0UTRwVWhGRnkxY3hSZHpxeFl2R3RM?= =?utf-8?B?Mk82ejF1UHlOcHEzV1h6eG0xczBFODZpNlViVzBuWDZrUmFJdUtib0xhcHBq?= =?utf-8?B?SWtXa3ZWbHBqeEpuN0R6WkZES2JTWm5UVW50a0hPSzIrNkNkQlVOUis4QXZo?= =?utf-8?B?N2ZmQ0JndHF3Y25VMzh2V2w4M1VJaCtVaGhTaGtidys1UkNNUUcwQWdZbjRP?= =?utf-8?B?WDhvWDJQTUtzTGRIUlJnVlFKUDEvMzd3c0VKOHZDVEdkRi9DbFVwVS96MVg5?= =?utf-8?B?NlE1LzdNakdYL2l3NEowaXFac3lROVBpL0lwRkVZakRWYXZpTnJ3NTVDaE9Z?= =?utf-8?B?d2liU1hZQ3NOMzZZQVVGT1dna1A3SXFMZUFDTER6OXZjd0p4d1NnQVExRk1s?= =?utf-8?B?bjMrdFpQTy80L0w2anIvb3ZjelluMWdraTVTNzIrZHRtcVRDR0YwWW1DZjJZ?= =?utf-8?B?Y3llTWQ2b2RVWWhjcjZJMXBFQzdRQ1VENnZKcGVQbmJHaklLMklKYlhCam0r?= =?utf-8?Q?RdeZAXBUAAPZTN1DljJV7Fbou?= X-OriginatorOrg: oss.nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: a1a2bca7-9732-4cdb-e943-08dd43238b22 X-MS-Exchange-CrossTenant-AuthSource: PAXPR04MB8459.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 02 Feb 2025 00:50:09.4658 (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: 2/A4gYdEPXYeSbgeuVkPIIaOTRZYwTKRJfbu44tZb8xvtSpclDM0xncoh0elUOc1NYvL9bXKB9jSMT+nj/X+PA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR04MB9932 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 all nodes to check accessing permission. If not allowed to be accessed, detach the node Signed-off-by: Peng Fan --- drivers/nvmem/Kconfig | 3 + drivers/nvmem/imx-ocotp-ele.c | 173 ++++++++++++++++++++++++++++++++++++++= +++- 2 files changed, 175 insertions(+), 1 deletion(-) diff --git a/drivers/nvmem/Kconfig b/drivers/nvmem/Kconfig index 8671b7c974b933e147154bb40b5d41b5730518d2..77cc496fd5e0e1afd753534b56f= e1f5ef3e3ec55 100644 --- a/drivers/nvmem/Kconfig +++ b/drivers/nvmem/Kconfig @@ -93,6 +93,9 @@ config NVMEM_IMX_OCOTP_ELE This is a driver for the On-Chip OTP Controller (OCOTP) available on i.MX SoCs which has ELE. =20 + If built as modules, any other driver relying on this working + as access controller also needs to be a module as well. + config NVMEM_IMX_OCOTP_SCU tristate "i.MX8 SCU On-Chip OTP Controller support" depends on IMX_SCU diff --git a/drivers/nvmem/imx-ocotp-ele.c b/drivers/nvmem/imx-ocotp-ele.c index ca6dd71d8a2e29888c6e556aaea116c1a967cb5f..5f31a3a7530ce942f5abcd51869= fcf78cc8409dd 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,6 +39,20 @@ struct ocotp_devtype_data { struct ocotp_map_entry entry[]; }; =20 +#define OCOTP_MAX_NUM_GATE_WORDS 4 + +struct access_gate { + u32 word; + u32 mask; +}; + +struct ocotp_access_gates { + u32 num_words; + u32 words[OCOTP_MAX_NUM_GATE_WORDS]; + u32 num_gates; + struct access_gate *gates; +}; + struct imx_ocotp_priv { struct device *dev; void __iomem *base; @@ -131,6 +148,83 @@ 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 imx_ocotp_priv *priv, u32 id) +{ + const struct ocotp_access_gates *access_gates =3D priv->data->access_gate= s; + void __iomem *reg =3D priv->base + priv->data->reg_off; + u32 word, mask, val; + + if (id >=3D access_gates->num_gates) { + dev_err(priv->config.dev, "Index %d too large\n", id); + return -EACCES; + } + + word =3D access_gates->gates[id].word; + mask =3D access_gates->gates[id].mask; + + reg =3D priv->base + priv->data->reg_off + (word << 2); + val =3D readl(reg); + + dev_dbg(priv->config.dev, "id:%d word:%d mask:0x%08x\n", id, word, mask); + /* true means not allow access */ + if (val & mask) + return -EACCES; + + return 0; +} + +static int imx_ele_ocotp_grant_access(struct imx_ocotp_priv *priv, struct = device_node *parent) +{ + struct device *dev =3D priv->config.dev; + + for_each_available_child_of_node_scoped(parent, child) { + struct of_phandle_args args; + u32 id, idx =3D 0; + + while (!of_parse_phandle_with_args(child, "access-controllers", + "#access-controller-cells", + idx++, &args)) { + of_node_put(args.np); + if (args.np !=3D dev->of_node) + continue; + + /* Only support one cell */ + if (args.args_count !=3D 1) { + dev_err(dev, "wrong args count\n"); + continue; + } + + id =3D args.args[0]; + + dev_dbg(dev, "Checking node: %pOF gate: %d\n", child, id); + + if (imx_ele_ocotp_check_access(priv, id)) { + of_detach_node(child); + dev_info(dev, "%pOF: Not granted, device driver will not be probed\n", + child); + } + } + + imx_ele_ocotp_grant_access(priv, child); + } + + return 0; +} + +static int imx_ele_ocotp_access_control(struct imx_ocotp_priv *priv) +{ + struct device_node *root __free(device_node) =3D of_find_node_by_path("/"= ); + + if (!priv->data->access_gates) + return 0; + + /* This should never happen */ + if (WARN_ON(!root)) + return -EINVAL; + + return imx_ele_ocotp_grant_access(priv, root); +} + static int imx_ele_ocotp_probe(struct platform_device *pdev) { struct device *dev =3D &pdev->dev; @@ -161,14 +255,45 @@ 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(priv); } =20 +struct access_gate imx93_access_gate[] =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_access_gates imx93_access_gates_info =3D { + .num_words =3D 3, + .words =3D {19, 20, 21}, + .num_gates =3D ARRAY_SIZE(imx93_access_gate), + .gates =3D imx93_access_gate, +}; + static const struct ocotp_devtype_data imx93_ocotp_data =3D { + .access_gates =3D &imx93_access_gates_info, .reg_off =3D 0x8000, .reg_read =3D imx_ocotp_reg_read, .size =3D 2048, @@ -183,7 +308,53 @@ static const struct ocotp_devtype_data imx93_ocotp_dat= a =3D { }, }; =20 +struct access_gate imx95_access_gate[] =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_access_gates imx95_access_gates_info =3D { + .num_words =3D 3, + .words =3D {17, 18, 19}, + .num_gates =3D ARRAY_SIZE(imx95_access_gate), + .gates =3D imx95_access_gate, +}; + static const struct ocotp_devtype_data imx95_ocotp_data =3D { + .access_gates =3D &imx95_access_gates_info, .reg_off =3D 0x8000, .reg_read =3D imx_ocotp_reg_read, .size =3D 2048, --=20 2.37.1