From nobody Fri Dec 19 00:03:33 2025 Received: from EUR05-AM6-obe.outbound.protection.outlook.com (mail-am6eur05on2079.outbound.protection.outlook.com [40.107.22.79]) (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 01F181A9B48; Wed, 8 Jan 2025 07:01:11 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.107.22.79 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1736319674; cv=fail; b=ZAK/c20TCk1WpGR1CrgdhcZe3U1n+A8KEm+qZlmnQj57s/R9nykfRtq7R7cwhUNA6kkn5e9S3jmL335gjeUBerG+28g8iiTa1JDZCzQlHlgMab4Cgk+vh7UJiVxZ5dYz5b5aqbxgR9fbHSh6BNE1RlJgM7Qc6hQHofGvCeOYVX8= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1736319674; c=relaxed/simple; bh=j9W1QmsiL4ZM5YYJDPTXeoKJGBgXw/CDksoKJm0NaX0=; h=From:Date:Subject:Content-Type:Message-Id:References:In-Reply-To: To:Cc:MIME-Version; b=fNirfVZr8LbRR2R00N5IN4mPfbY8M5yBTHYOv3DbETrIzFYOqeiUaqMd6hxBFuU6jmPNXiSXaaG+K+B7J2pVRsJzMz6zj1cDwzQgZL8xiUTVWPjEQpEyivRz4Tlyw7BYOEB9md9luA4QJVYC2+btrD4F4ITrjC1VFKAxtuN566Y= 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=xiMx/BVx; arc=fail smtp.client-ip=40.107.22.79 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="xiMx/BVx" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=m0GOmXbCMNpt0RMocn9x2VaBkR3pJK58zil29e8mfq02k84X05XH4N6Xp04t5ldYlRxOeUV97dMjS/t/BczEHYUza2k4dlzkotUPMP6/L5vmn7Jrb5C4DfSXVOxgVEJy7KRCCfcV51r8ixrCaPeJ5RtoSHVE/KoQomvvdY6hFemFsJZRNZxQFZxCpKhqlnmuKINQsVtmdKCkIy4UINk8gVRaEcqQBK8FZt0yxGprBUv2tv0PQBbRpEgW3iCP0zKULiaG5xuNc/Vw/1tr65c+Q5MXINJhhUaljoe7K7W8JTv1BIDB3TzgGPpN29sabPdH9fxugIIq4KWmALYz+PSa2w== 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=Yw5puENHGrmAikULtKI7kgakD8qgpZQhGstiEk46DeAAwhsP836pP6Ruc2we7GJmzAw2ZUf/D4kbrl+qYJQnldLWSPybg0tQ5YhuXSNoUaVaUmQiuzbRYr7GNtWqlMWnWTE/nT1qL/kcdkMxhJIjtrQJXftrXD5DDqpt/N9esrAhwbsgmCo1dqCM8XpdEry5PoIfMhWcK39QQv2azDcFPQpDg2atSM6aeaAm4v3eLNM1/TTVCrr6r5TB+sdxp/yWIBE2dkflORJNpWiSbZYSvJhHn7l9tJisP5jGKDZwqJvUCSAJu5JVSPJEonQF0SqaZGSbt4mWpExRxcC4jfg7Dw== 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=xiMx/BVxJ298zT95l9lxwkbE2HVFeL5z3shrl0QJz9TWTyN4CggD+hz3Qg5WAqI5hdlLaMmFuOag6dqdKqRnHXWiD0VV/mY/vadkBeyi+MSXuG50YtuPIhaTOAu2jtUGZYCHmEWnS4jgWqbxh6Uh7A2aR6FDXcVZdLdHc05lWTqa4IDc225EXCn0aOe6EaeiuyVCKN0qpUFbsRUuDC1oP5YgnAv4INkIDyPdFCQMPYnBUxEDvf5bL3a7IhabW5UApecYHH70LZU9Ca3TyALq8zAgYDSfikcXlAizxWa570FHIemFFiEbPw3WgY4eY1YGs55OXXuZjuBKwOWgxIqObw== 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 DB9PR04MB8299.eurprd04.prod.outlook.com (2603:10a6:10:241::8) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8335.11; Wed, 8 Jan 2025 07:01:08 +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.8335.011; Wed, 8 Jan 2025 07:01:08 +0000 From: "Peng Fan (OSS)" Date: Wed, 08 Jan 2025 15:00:17 +0800 Subject: [PATCH v5 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: <20250108-imx-ocotp-v5-1-a6d90e18ebe9@nxp.com> References: <20250108-imx-ocotp-v5-0-a6d90e18ebe9@nxp.com> In-Reply-To: <20250108-imx-ocotp-v5-0-a6d90e18ebe9@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=1736319636; l=4068; i=peng.fan@nxp.com; s=20230812; h=from:subject:message-id; bh=4MXzYq4oLyYtlA95EQap1UQZ2xOM248M5j3t6NvUUFI=; b=MGtlcQOrZ4CrICX7A47sjs0cXUf2A1iz+LUocXwJd0b3rYGjtryZQ5Uuv3Py1SOHk2URjQaaV 30oir+TDuRTCSJSmsaHTeX6nEJO/btUQNPZHbdh5gqCixBxYFhLRRKM X-Developer-Key: i=peng.fan@nxp.com; a=ed25519; pk=I4sJg7atIT1g63H7bb5lDRGR2gJW14RKDD0wFL8TT1g= X-ClientProxiedBy: SG2PR02CA0053.apcprd02.prod.outlook.com (2603:1096:4:54::17) 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_|DB9PR04MB8299:EE_ X-MS-Office365-Filtering-Correlation-Id: 07749586-c128-4f6d-e649-08dd2fb23a59 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|1800799024|376014|7416014|52116014|366016|38350700014; X-Microsoft-Antispam-Message-Info: =?utf-8?B?cVVnVXdLQWVJendlSDZLTzBYazV4YUlkNzEzYXg5UEEzcmhNSTQ2N1lBM3E4?= =?utf-8?B?cTdaVldtVzRoZlVoTlp1TmJZVEJ6a05qZExHemxPOFBjTmRqRnVlSHNyVDNG?= =?utf-8?B?SzFKcUJHbHZucHorZDB4NUloT3p1dVZiTTFpRFZVbnJGNEhUelQwa2RocGdv?= =?utf-8?B?YzRoWHJ1alA4aW1oeWhjUzN4b0RSL05va0hTMVRKdnRQSzRqa21RUDBaTGpT?= =?utf-8?B?TnBTcGtyMlhUbk45cTNnVXpmcVlPRllZb2FNb1A3Nk5hWU44eUp0UkFab3Vv?= =?utf-8?B?cGhBa1ZZQWt1ZUo5ZCtYb0dWTSszTFd2S0lEdXdXYjcrR255LzQ4M1JaOU8v?= =?utf-8?B?V2FhaXVjK0VFSmNEeHlhN2dKaDFrUkNraWNmRTF3c0xqSkpzc01uTXdzc2dP?= =?utf-8?B?bkp0MVJHdWRVUUZ2dXdCMmh5UjA4UXczMURZWHBOdGg5Ymh5S3BKbDU5c1BW?= =?utf-8?B?dWg4S1lrSGsyS0dranBaNWFWUE1teTJtdTVqdHhjN3Q0K0xnallSakdvczRJ?= =?utf-8?B?U3c1eHJ3THQ2OFUyYVVWZXFoN2g4RzFIOWRySFFJOUVCRzREYjlTSXRtd0tD?= =?utf-8?B?NERQNlBtalJSZWtYelJyUHlBR1dGcjVRdFFTblJNTnkzVnpqSUZDc2ljQXRC?= =?utf-8?B?L1VhWXV0dkd5QjVyYndlUnJGd3pQRFlad05LQjhjdHlNQVRKSkswVUJKemdz?= =?utf-8?B?QnhVQThNMHQ3OTdJTyttMWQxaUl0MSt6dGsxS0hQV1pXZWw0V0w3b2V0Wlo0?= =?utf-8?B?Qi9QQnZyTHlVbWtOK0RUSDZoTnNFNFZmR01BdVFETDhTbis5R1MrT2dhWHdv?= =?utf-8?B?SFJGYThjL2o5OEZPclliRTBuaEVHNWNmTmtTNWg2NzZxdnVIRWVlNjJuWmdU?= =?utf-8?B?VWY3RENVaHR6UkwvaW1Fa2NRdnpOaWFFSzJMakdmUmg2eHVVd3RLWDl3eEJY?= =?utf-8?B?cktrZWFjYW9jR3d0eUdrSndvdWlSWFZBeFkydm5CTFZ4WlVkazNjNzdrVGxn?= =?utf-8?B?ZWlxRUVRbkRWNndiTzJkVEZtMlJtQVdHdzh5dmxhMlJsUWMrQzVNczRLSHVX?= =?utf-8?B?bXpzS1ExYmNGS3VGMjJPSXNMaVlpRGRuTXMwajhHeUUvcHNGamxCV2NmNGVM?= =?utf-8?B?RndlcWdkVlFOKzBlZ29RK2lCZGtRWE1OQUJUNnNaaHBBL1lSOVVEUGpLaCtq?= =?utf-8?B?MFBXUFgwbXE0bnVvL0w3UUE3NkRrUFJuWUtablkrU2puNVNBVHJ0cEw3QXVI?= =?utf-8?B?VXlwVXdxOThEbG1FTWZHWlI1ZTFwUzJKZnpOVjRCNHlUN3JUSGJ1OWV6QjJk?= =?utf-8?B?S3J5NXlzUWRqNHpib05oczh1WGE0aTFyekh0VndFbUU1TUozc09ObDVMM1VN?= =?utf-8?B?ZUVDQkZQYUVSMmVhNW80SXA5aWdqL1JrMWdpc3c1UkM0UHA4bHdocy9CYXU2?= =?utf-8?B?ZmxZUXRlVFBVWGhzcHpJbE5LNlNVcVlsbzRsV2JqcFlQVDRCM3RjaFZmWjVJ?= =?utf-8?B?dmI2dDFIOEttQVBiWXJqbm9hSXNYK1lGdFM3ZjNMUHRZOHVoVlEzdWIwL0U3?= =?utf-8?B?eFNUTzJoQm80K3VDVEJqMVM0RkpFMkJKZ2ZQWWxmWG9EYnkvK3dkeWRrZWhW?= =?utf-8?B?VGZWaEdLSko2Ykx1TXVqMXIzb2hEVm0vK205S1F4S0RCNnB3R3Y0KzZielZn?= =?utf-8?B?TUF4NkQvbW1qZXdFeFUyb0pHNUJwNTdUcVRRcEI4UmlIcUJjYk9aQVE4eHFQ?= =?utf-8?B?S21NblNMMWpZWnFQSkJ1MFo0QmlvWW9QNUJwZmIvZVMzWkhRQTA5YUR0UVdY?= =?utf-8?B?WmpHc3hSbkZ3VUFPaDl6NFlkNkNpZ241MEhyVDdobUJhZTJ5Q09qTE5LRCt2?= =?utf-8?B?ZkRiSzdmdVNXODlzY3grZW9iNlVzWi9Ea2hVVy9lVFhNcy9zUFZEVDFWNk5o?= =?utf-8?Q?5j9lpc9Zmenghs0IF+RHMlQihK2/Wkw8?= 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)(1800799024)(376014)(7416014)(52116014)(366016)(38350700014);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?Tkwzam50cXdRWWZLb1BjV0tGYm1VRWRoSlcvZXJQdDVERUdSZVpxbnN1Ujh2?= =?utf-8?B?dXRIYWNFZ00rTGhDMHh5V3RoOURzYVo1UFNack1VWkg0aUt3enBDMEtlUVpn?= =?utf-8?B?M1lLTTVFazM4aXpPWUpTdXlzOXNRNlJzYnRlYmhqN082YVVLb2N2aXpvT3V1?= =?utf-8?B?Z2RHYmVTU0VnVjFxZGFabmF1TGJSUlprUHNyL21tamJVVnIzRnNJSjlDMS9m?= =?utf-8?B?QTN5UVlJZisrcmtSWkduS3BLamswMTZxUCtTcU94M1h5bDRRUHUrbnU2bENY?= =?utf-8?B?a3Y5UTVDTk5mZUJwSjllVmJSWjk2ZUs4WXc1OEx1T3J4ZGtJY3JWWUtySWJm?= =?utf-8?B?NENwTExqY0xyVXVCaXZ3Y3VIM0ZWOHlFME5PKy9PNHMvem1vb2NUR1hkOFBL?= =?utf-8?B?M2JmNEl5QjlkcHJ2azBLVGVUOG5ZY2h6R0Z2TGRVajNRbjNjUW8yUGFoTzBl?= =?utf-8?B?cWc5YTJsM0NuaHNoNWV3cmRSSkNsOVVPRE4rZ3IzNUVSRGlXVDR4Wk5HVUdY?= =?utf-8?B?RjFoNTlIUFptREVOKzVrNmtzT1JmYlJicFg0U0VXK3NhUTZhVllid2NIN25H?= =?utf-8?B?YWJtRDNvOEtvQjJRVHYyOUNnckF4UDNwOHNQQk5mU1NqTk1YMjZoMFVHOWlX?= =?utf-8?B?a1luTUZwdVl0Y0tLcDdyUWxoWFBYSGpUSkpzVUkxeTJXSzZSakQ1K0tOQUNn?= =?utf-8?B?UVNQODE1M2pLeGpHVHFRZlVmT3JtdVd4UGd4VlZkdEcrY1NrekE5ejJyU1My?= =?utf-8?B?VThSck1yVmZKTWMrN295VlRjdGh0MUd3YXg4K3RYcitvWkVFakFycjdPTFhi?= =?utf-8?B?bFdNcTRReWlBdkpBaCs1UkdUWEZVdXM2NW95Um5HcTU0L3oyNFFBd05KYml3?= =?utf-8?B?OSs0bXUzMzA0alhQNmlDTkNDVUNHcW5tQ0tKbEkzQlhaM1lhU2V2dzB4cmd6?= =?utf-8?B?dnlUSGx0NE9hTEhVVEo3TFNNSWNCMFBrYTdVaDZuVDl6SDJOamZuVmNWZEZn?= =?utf-8?B?RWZSWlM5QzZtVkZKd3IvNGtWMGxsMnlHUVU2dFhZM21OK1lBWElCSmt0ZDVn?= =?utf-8?B?dUlNMVNXVktoZkV3N2RUaTBZZ1RNaWZvVWk3ZHo2NVdKTHd6SzIvL2hmWEJx?= =?utf-8?B?aWxSQW5pc2c1dU5IcDlqM0QzaHk3bTY2bnNYd1UydnYyb3pHVUVXYlBDTlBo?= =?utf-8?B?d3MvUDZ3WnhLQk56Z3FvSFBsYmFNaFRSVUJ3RlRYTk9rRTVVMHhvamJyUWhI?= =?utf-8?B?Q2l6OE9WZ21yaUJFZStXenZEOHJHWjdsMlVsbktqN2FwRjNHOVpFNUhPa0ZW?= =?utf-8?B?cDNJZzhwRnY4QXk1ZDlBQTBVY1luWXZzWEdFMGlyZkxuOVRSQ1dPc2tVRi9S?= =?utf-8?B?eVd0V2ZybXMwaUJNeUpKT2tiNVZ4a0xjN3JkY0dSdW1jUTZDTEJia2JaeGxy?= =?utf-8?B?bFd6NjZMRVdVblBsTkthaTRpQ0hUOEFQMmp3cEcveDlmUC81ZVJQb3BkdU9q?= =?utf-8?B?dTJPZ0llN1daTllUNUoraEJqckVHRVk2M0dCR3FFbGpibEZCL3h1TmI4d3hh?= =?utf-8?B?b1dkTHNXLzhJZjcxK3dtOExRN0VYQkxSemhqd2M0a2d0Tm8rSFJwRGl2UlNX?= =?utf-8?B?aG4raURmTjNOTUh4N212NHlWekZmdmoyRWhUbHE0ZzE5b2hERCtZcUN2aUFH?= =?utf-8?B?U2Qzbk5HcDFEa3hGR2VVRTRjWm95QkNybnljQ1h6NG11UEh2eFV6eHhkUG1E?= =?utf-8?B?RnpLeXRyd21iL3pPQmpUb25Tei9ROEFQUjBSM3ZMaldsN3dWSzBlYmFZVERF?= =?utf-8?B?ZHZlS0VLTHFRWTIvR3FZSW5PRjJBenhkQ1lWZUJIdlhkdW9obXR4VDFTNmRq?= =?utf-8?B?aldDMW5uajhFSXRqNVpyWjJTeGp1WkZwV01INVcyQ0NuRER5R3p6VnRFZnN0?= =?utf-8?B?M0IyUEoyUytxSjlEaTkyQWsxVTcxbnpyVU4yRWZLMXVFWHlyUEkvR0lDS3FO?= =?utf-8?B?VUFrSzQ3eVE4MEZCUGNnK25ZRDFRbzh2RklGVFN5S1dXaXNTYjl3QjZRVzVN?= =?utf-8?B?SGZJeE5ZRVpjZDJzSExSVU1sSlphSjFYSGNFTzh0MTY1MEZBSzkvWGpmSHUr?= =?utf-8?Q?VIAzRFY7n+osRlMlbC3ijnSjD?= X-OriginatorOrg: oss.nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: 07749586-c128-4f6d-e649-08dd2fb23a59 X-MS-Exchange-CrossTenant-AuthSource: PAXPR04MB8459.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 08 Jan 2025 07:01:08.7272 (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: EcU+lEEZBwLfACwrZFbqx5jOq/pgICq4TZdBhZZPzPX1Gm2DlcJP+UXWGbMsBhn3hRU15g0gmBDOF1st/govZQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB9PR04MB8299 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 00:03:33 2025 Received: from EUR05-AM6-obe.outbound.protection.outlook.com (mail-am6eur05on2079.outbound.protection.outlook.com [40.107.22.79]) (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 542271ACEB6; Wed, 8 Jan 2025 07:01:14 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.107.22.79 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1736319677; cv=fail; b=a4J2UqfavlXe+3YQY6KYPml1fudCWnc7jBMUQjqAIIPdoAxjIb5q9dyRWsYnIxKlyJU2Scqo8EzhJZNNms9swNxV8t9KZsOovh2VNDtBWyemIn39NgI+ahbuIfpHKnF4JXrPMaesxg2gM1zzqHEnkUVHX5kJzWaf0+yVTxkqfmQ= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1736319677; c=relaxed/simple; bh=0bDQtW0kObux3QS1ylxvCp97UjUaum9QMoHP2HWykKg=; h=From:Date:Subject:Content-Type:Message-Id:References:In-Reply-To: To:Cc:MIME-Version; b=J2DNvBdEsD0zasfAxV8e/C7p7oveBEgQJarMJC0GaAHOCuDBvaszZbqUlF1fXuQgSVATCbJ51iUOL6I4j5UahsJAb4u+IOQxES1OWEQSvOjmDDmOzSdCcG3UXuh1miaFXUE+YWJwIgsKWkdKo7yDuSU4iS3W1EjwiUlGyLdjqN4= 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=PqtaU6jN; arc=fail smtp.client-ip=40.107.22.79 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="PqtaU6jN" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=TxCJeKvUazaE8s3JEQBogrU6WFzBjR6J3iNVbNCg3QMetBRWH8Rzyc6yZNHcROswrMF7mGR3+0Z4ZdQQZZsDWSPuuNBXTJBfkhbPi2K9mO4whZBZxD42KN5PA2aEYfkA3lfU9nUG2ek5Fltcn49+NQ2aPjj8sT4D8Pqdjm/cKJOAsarOLJ68W2AnFugcts5VQ1/K1La9Ei3FmP1alpVLGyiREkJJG7wmx//Y3UOV0ANtoLLoxLcHCW5xKDhkyhimb08DLuKLyc3W8BhC7BpUpmJM5tW1NikHGfXgzoWKJnG88LSaRSkTV2SnU5ffHovTtoP3e2tlr+t30osHo9bOog== 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=ficKDMJHutpnR9+e5tqPHRKXCOVxSEuXA7mZvXVxOjY=; b=vpEWaDmx/Qh4hujduGHLXBIOZp4Ay+Hm8+ZVpoNrDUv0IgkX0ttlsEmQNKHnFofdypduE7Unbp/YBskPaFRoi7YieEIcvz2JTwkEURAppvOj7c8XRru5QrEMq7ofopetssLnfrYW1tD+penNFmIX+wXguQ+16hm/34FAGbCrdV74jhnYDZB41jPaO5asYA3CpX37fq6SW4kIoSi1Ooqoq2UB6HIT3U08PQceBT1zynJ0dyuVw8F9JKEA4Jc77f003fPyVdU0y8O2CLdHqirKeBNs5kqMUuxNNww9CerSmwkGI0lxCxMKaYcavX+Sq2Qgr9KFv3s+t79uyufo+REz+Q== 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=ficKDMJHutpnR9+e5tqPHRKXCOVxSEuXA7mZvXVxOjY=; b=PqtaU6jN7CalDjBxvYv2xxHKYsV3WL8JeC1odvBAflNDhL+MRnLPbW9iuV4GqlTMFR0DZCSePVls7GaU6OQwVg3op7cKbi3HUr6nFrENY3yvDxMxkgaMO+ADByvyK9bF0Ccb7+Z1yxJqNyOMdqfoVtKB3xnQeMjnqBaews7IpxnM/IJ7aDxkHmevE4P2Dyct6PaaBS/4fEs9ngSFjPtl3ZYUD/icT4m9uQ6QO7Wb0VIVPStSHj5hs/h1ISDqVirKNN7vJ025t8ERLOw3LLOLBECk/7yxfs7BjpMCcxNnfTGxm9RzhwlIDwUUA0OLOL2HHYWKa1xgB3dHKz5I15dexA== 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 DB9PR04MB8299.eurprd04.prod.outlook.com (2603:10a6:10:241::8) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8335.11; Wed, 8 Jan 2025 07:01:13 +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.8335.011; Wed, 8 Jan 2025 07:01:12 +0000 From: "Peng Fan (OSS)" Date: Wed, 08 Jan 2025 15:00:18 +0800 Subject: [PATCH v5 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: <20250108-imx-ocotp-v5-2-a6d90e18ebe9@nxp.com> References: <20250108-imx-ocotp-v5-0-a6d90e18ebe9@nxp.com> In-Reply-To: <20250108-imx-ocotp-v5-0-a6d90e18ebe9@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=1736319636; l=8461; i=peng.fan@nxp.com; s=20230812; h=from:subject:message-id; bh=ygBXTu6sPO5G9v1oUfsK+vaVlx3iR8OEqYpTZT/i8Yw=; b=0P6tedobxHgxPhCRN34vbmBija8euo5KL5Lrv+tcVXecTC5b0a3qWri3bbcXT/3qzcxE/PraM I8ggoEqmHeOC7SnPdloNHZYjaQJ/nA3ibLwofRDRa2v7KUAKpKBF6QW X-Developer-Key: i=peng.fan@nxp.com; a=ed25519; pk=I4sJg7atIT1g63H7bb5lDRGR2gJW14RKDD0wFL8TT1g= X-ClientProxiedBy: SG2PR02CA0053.apcprd02.prod.outlook.com (2603:1096:4:54::17) 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_|DB9PR04MB8299:EE_ X-MS-Office365-Filtering-Correlation-Id: 2c462ade-f0e5-4062-ba3a-08dd2fb23cd3 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|1800799024|376014|7416014|52116014|366016|38350700014; X-Microsoft-Antispam-Message-Info: =?utf-8?B?MnNYbDVPSDh4djEwZUJTbDR6M3dMUXFwNDlydE5DQWZUWWxvdEI2dUh3RlZR?= =?utf-8?B?c1BMY0pLODJwYUl2bndmZmE2aG0vOFNRWXV6SXRscE5Tb3d0L1A3MlJ4dG5F?= =?utf-8?B?cDIvU25JWWNyZWlubVd1c0ZlR3V0MWd6ZW54TC9IRVlyNmpQL3BrQkRKem15?= =?utf-8?B?eEw4eGFmMk5NSWorUkZVYXBrTURIa01VNEpCRndNQ2Z0ZkNpa2I3bjZWaytx?= =?utf-8?B?ZkNENXhvMFNTc056UUxiM3hGTVhIVWNnZ0lQYzJXcUNmNWlUY1FsRWUwSmhj?= =?utf-8?B?Q0VIQ2FIK01mdUlyeXJTTUdnNnBjck5WSkZMOVpUUEpRckNBVHZod0RZVUJt?= =?utf-8?B?L09xN0x4NVNTRDJVZXk5cUZkdS9jTDR4aVlVRSs4WEJYQUpMYUkrL21SczNq?= =?utf-8?B?MEZ2MEdjRGdPSlVDbnhUdmtGVzF5OFVsYlU5akRYQWlPWkMyM3Q5VUxmOWpv?= =?utf-8?B?OUtaTjd1U3FBT0xtVHUwMnJ1bkw4V1lMNzFDZUNyblZpZU03OERKd0pmZ0ZM?= =?utf-8?B?TDc1MW4wTlA3QVRzaUg4eFNMdlpVNkxXZHBVWXN2YnBsVzdScnFUNFhvaGlY?= =?utf-8?B?NjV4QzVORU83UmRpYVNxZjZKc1h1VzBMdEhLb01kREdvTHFJVjJ2ZFc0TTlU?= =?utf-8?B?cDh3WU5vUVljNjdiT2g1c1I3TWl1dWVob2w2SlhqUGVrR2E0bHJZK2F0eUdo?= =?utf-8?B?QnBYLzRadkhQdzh5YjV2dVZKWUlKR2tsSlFKdXJRd1dTWmdyVTlzZWl5bHB2?= =?utf-8?B?bGtPVUtaNjRhNDNQcEtsMVBvVGc3b2w4eUdiSCtLS1pTR1BFK3dxZSsvc01X?= =?utf-8?B?dDhxbWFQR2tHRGRIeVk3N01hZUlzZnEvK3NLLzc3V24rcUdlUGYvUzlpR2o4?= =?utf-8?B?dlNJNFJSUUtzRUJxNksvenY1V0Y3Yk84OGdoTDdnWEZVZDJFb0ZYK0tqckpZ?= =?utf-8?B?eXZYOHN6TXBNM0ZrRS9wb2d5ekJlVzFtWGZRT0QrZmcvNUFMa1JuVUVLZFNM?= =?utf-8?B?b3FORzdHZFJJSzE1TTJGTTNRbzNOU0hXWEtNa0ZTZU5UUG91TXJxTmlkOGdB?= =?utf-8?B?VWgrblAxcy9MY2hEWTVTdjJKRGVNUUcxSTdreUpDOU00ZE5QZ21zbDcrQzJr?= =?utf-8?B?ODNSZ05IUm1SaGRVL2NRcTY1c0RtdXpCQTBKdU9mUGpGdlB1ZUo4ZG5EZnZs?= =?utf-8?B?Vk9aT1Q3SmRBT1UzV1NNV0JxTGpKa2hnTFZhWGJRQUVHbFBaRVg0RnZ1ZmNm?= =?utf-8?B?NTJUVnc2UnRudmU5eDFHTERYTW1Ic09RK3VyT0xZZzhVcXVYSDB0blowMi9o?= =?utf-8?B?eXBjdm5GR0JLYm90aEpKZVdNZFRmVGhaY3FDNWUvRTBtSERTQ0VhM0pCRFA0?= =?utf-8?B?L3VUOFlkaEVVUVFHNDFkbFdrT1Zucnd5SWJiTFUxVjZQV3NXUDZINERpVG1R?= =?utf-8?B?UDZQTWRweUhmZGVUaGM0UHF6b3hlWVJKRW12bHVlT2xqbkFDOCtzM0t3Yy9i?= =?utf-8?B?bGlLamY1UFI5TWZhcmVPY3JZZHFpRVdHd1hzRm9SNkR0ejhhRWF5eVVWOXJF?= =?utf-8?B?SDNxcGxxd3hOaFlxbnFGNnFDU0xiQ2NRR0t0NmhyNnc1Y0g4dU5xVmREUUE0?= =?utf-8?B?cHhZa0IzZmNUUlRJK1N2N1ltYnM2M2RkcW9xalNpTjEzZk91dVJkNGpkdWl0?= =?utf-8?B?V0F4RzlscHAwUHB2V0o1M25VWml4Q2wxV3NQQzJEeXpadmlCWjlFYk1EaDJG?= =?utf-8?B?NFlsdFcxeEJhRldaZFFVbkFaNThKcHRxVE9weEJKQ1lvNVNYdjRuajY1Y1lF?= =?utf-8?B?TjFKS1ZQb3E1RTl1U2ZYekFhZmJXQmdPZE5lUnJRSWRGUjdLRTF3STk0Q25w?= =?utf-8?B?WlZZMWovTHhQR3doa21jc0U3UHRUZFVtNk0yWTFqVDlSR21scThCR2wxQnJW?= =?utf-8?Q?lNyQ/daKjvbVPwLphD0mJLG6pptdnRhU?= 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)(1800799024)(376014)(7416014)(52116014)(366016)(38350700014);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?WmtYMitTczJBTzFWSHgxQStlaDkrMjNhcTFxZ0M5V3NIc0toZUdQY0VQOUtu?= =?utf-8?B?L0lzZ0NQSlI1RXNGUEZaMEVBbTdxV21wanBqd3VTOGxQM3NSWEd4QWZOU3JE?= =?utf-8?B?WGViZUx3bW9tcCsvV0x1ckRRWFE5Q1FvNzdaNWRhNExwTjFmYXMrTkgwYUJV?= =?utf-8?B?RnZTczlZek1FVkhKeGFhVVhvWkdINkJmZzhhZ01kMFNXUFNweVdHSEh6MTVW?= =?utf-8?B?ckd1cU1SK0tBZFFMazR2aUdhNmJXaXZiV2U0eG14MzJ5SE5IdDlyOVZvdU1E?= =?utf-8?B?alQxWTBwNjVreE1aMk5ESGttNVN2VnNoRlNQL040OGZQOWxueHdrZnNVRmxp?= =?utf-8?B?b21LYjJmNjhuRlI4Y0JUNk1ibGFYcGpDNWF5NmJsTisrV3Q5eWdRUWV0NzB6?= =?utf-8?B?UzZTeTl3SThWZGlPNnRvYzZyWTJWTHRoSitCUnBzSGhFTU9zOTNYTjJhTGhw?= =?utf-8?B?U3hzMnhTK0ErVE56SVJxTWJCeVRwLzdjUWY0eTZKSjVDYncwN01TeFFsWU8x?= =?utf-8?B?dlNjUGg5WE9ZcVByc0trQ1hyM2FIc0hmMWF6aVZhVWcvQ21YQS8zaGViUlFB?= =?utf-8?B?aTgxZ1pDNytzLzBieHdTTjl5MWtJVCtaUG4vUi9DMTZ2VlJTTU9PNkZuV2ts?= =?utf-8?B?eURkdGdpSkN0ZzFQMXp0QklSNFdBbTVJdk8xL1grQ2JFU2tBWUFlSlh5M0Zn?= =?utf-8?B?MzE5V3FqdWc5MWpRTXdNajBDZXh5VTdGVjBQVENLTHV6aC9BQXNpa0dxUXZr?= =?utf-8?B?SkRDVlh4SCs5RjRhVmVrdFlOVTRXOUQ0cGhtYzlVRi85ZzRJTlRmVkc4Wnls?= =?utf-8?B?YmtqcUpJNlVzUkxhUlJvT3lpamNQV3YxREYvQjY0VllIeW9JRW0yUFhvRGVR?= =?utf-8?B?VU9DemUvWUcyOWlSdEgzamFHVy9FZHIrR3VuWHZSVVkvU2pjdTZNN0xNNlNv?= =?utf-8?B?YXZpbVdwaVhVNm5aZ2g4d2l4K3FIOVh6MVRPWk9kOXpidDVYa1NHUXIrR3Fm?= =?utf-8?B?dG11UnBRMmkwanBuT2dGOWxzbnMzL2lyOU1jQi9LeHZraWhMSDc2RUU5UUZJ?= =?utf-8?B?OG9HYXlaMThZZkpmVUh2dGRTdklMdlFKOHpYZWUrQzlWd0ZxbzFGb1A3VXJh?= =?utf-8?B?NkhnbFQva0lqeFJ5YjhZeTNRN2xqaWVzbkdxc1k5QW9BUzRKSUNlak1JeDFQ?= =?utf-8?B?WU1TZzJsa1hHTDIxdyszRmtlZTlDTnhnN2ZaOWUwdDFvOXNKNjA0bjZCK3Zk?= =?utf-8?B?TGh2MHAxVTJNaGRGSStLTmNMSThNWC9TYk9Cb05UL1ZzaVJwOTFNVVJ0eUI3?= =?utf-8?B?N3RmMmFES3ZSNDJjNTUrSzNQalExRzlnSFVsUDgwYXA0amNtRWUwYnRiK0R2?= =?utf-8?B?ZnNaeHJ0Q1I0b2JWcEV2cGJ1cDEwclVhT3RhSUJXN2lEWTZsZ2JtTWt0dGF0?= =?utf-8?B?Y2pEaEIvalBQWEMwTlhHNFhZV2JNYWtlNU8xTXlsQ2c3R0hFWlhwVG1hK2xC?= =?utf-8?B?dXZjSXdWQlpvSWc2R2V0c3ZrKzRYWFc4TTVpakdJcExVWTJycU1oZ2MwN09w?= =?utf-8?B?RER6YmM2UXpyamNVeFJiZG1TVkpaMmJmWE1sQkNDYmhkaHJCQ1hpYStoai82?= =?utf-8?B?blpyQnJWSDNKNTdqc3RGejBPMFdLeDVZVW9NMi9CSG9URTJmOXRmNXJuM2M2?= =?utf-8?B?L204ZW1RN2IzR0ZZb09yRzdxSEd3NytYSzMveHZzVEc4eHEyc3J5UUo5dDM5?= =?utf-8?B?ZnFRVWIySlpwQkE1b2FCcEcvUTJBRUtqRTNKT3lQYkZ0cjdjOTZNNjE0ckhS?= =?utf-8?B?TTAxMHhHcEduTEk4SzBBb0RRc0crUm4vQStQMnYzazFWM2o2ay9yUU10blcy?= =?utf-8?B?WXBjUklybHhwYXdIYkFPY2plaksrNUtMVTNycmFldms2Q3BUZnptcnowZmRz?= =?utf-8?B?QjJHRnpCdjR2RnJuaURkWEJMQ1dJMG9YbG9TY1JBZHpjcWRsdnJkNitVWm9C?= =?utf-8?B?cjRyOENWRDk0anVtd3p2S0VFei85QjZNcGFNQU1lYXhHUTFrZWtVU0VtVTFz?= =?utf-8?B?SHZsZ0dHVFhDdmZwUW9WZzcyYkdCNDhwaGJXcmZaZFUzYnp1NHNYSW8vK3Zr?= =?utf-8?Q?MSloAFEglZIt3QI6d0aByCsAi?= X-OriginatorOrg: oss.nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: 2c462ade-f0e5-4062-ba3a-08dd2fb23cd3 X-MS-Exchange-CrossTenant-AuthSource: PAXPR04MB8459.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 08 Jan 2025 07:01:12.8644 (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: 3FIYwDIuuivr7n7bgkfVIFtP+N7RNJ698c2+7KFw6knkkGTdjPxvYglpfl57bBY/i7NYwk0bxHI/onh2bd2IBA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB9PR04MB8299 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/imx-ocotp-ele.c | 172 ++++++++++++++++++++++++++++++++++++++= +++- 1 file changed, 171 insertions(+), 1 deletion(-) diff --git a/drivers/nvmem/imx-ocotp-ele.c b/drivers/nvmem/imx-ocotp-ele.c index ca6dd71d8a2e29888c6e556aaea116c1a967cb5f..5ea6d959ce38760eeed44a98999= 2fb35c462c0b4 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,82 @@ 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 */ + WARN_ON(!root); + + 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 +254,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 +307,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