From nobody Mon Dec 15 13:46:40 2025 Received: from EUR03-VI1-obe.outbound.protection.outlook.com (mail-vi1eur03on2064.outbound.protection.outlook.com [40.107.103.64]) (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 9DFB51F4280; Tue, 21 Jan 2025 15:06:27 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.107.103.64 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1737471989; cv=fail; b=TmDTj72mAbT+H15V3v3e8KsPq49py2NTtev53FNOPxjle/C/9kXgyOgNhfzM/uk6wxxdRUuuBHCzL0j336VCnrrQDxFwCZ15KWaisO+5C38xbN2Oug8xKGXu3FoZqSsdewhrUPFqey+5pYKe47KtnytCvcHQl7L5jyYpUciWIbA= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1737471989; c=relaxed/simple; bh=j9W1QmsiL4ZM5YYJDPTXeoKJGBgXw/CDksoKJm0NaX0=; h=From:Date:Subject:Content-Type:Message-Id:References:In-Reply-To: To:Cc:MIME-Version; b=uzFdf/r88f4sAhfw14YdXWDbUfjiaUXEvjzaXxblIBlCt7WG9heNwpGwqvP0f0IiPS/1F8o6id4cu72t4iaMxPsRzq4RNh5jXjjnmmL2RkxLn13xvDbtrV8VxDqu4akOzbxsU4AuMEtb55xOXjGKJwVkBdoMIIiFOyjh7oJXjnk= 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=exQMF9vX; arc=fail smtp.client-ip=40.107.103.64 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="exQMF9vX" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=YuiY0kd/z1m7nqtODwEQE0e/S+JlnZN65s4KyDWpL9k7Lip7oTiItV6eKisYgowG16ETwVItJ2dPQ+1psRf0+oZO137CUsI4O7wBmc0/NQdZkQ+aeVRUWJvrmEQ7xbkPC5MW0Z24YH7l/7cNNaq6KSwWwqvraBus9euJE24k62Hd4LenOP67vtU7PzU5tRJNmkCo1DEsEO2G+Y20EyX/o3WFAVaqKiFJi/tn0nRPzwywQzMXxYUX1YQHSv6m2411UxMefQ1UehMHZe286RJpw14Hp/EdjjfRW+HtHz8Yen7qFNjzK7D9hoeSIFhYQSWh02g1BlYhqMawW3E7NYxOVA== 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=jZt0yThwbJmQiuoGMGmzxVoOm5NRoK4FYEDxzerufMfXByj7HE0umVNHBGyWxqxz2iQ1up8CkPhTaEHrwLrINbTNM0gkUOvG4IEnuAfzzjr0JxO90JerxoPUPftb4ks3+L233klA/9rJsQgY/0D0+lqRksA7rwYK4CIkTRvj5GiF9JsQPBVddYeq0pbSZgjMjJvok0OtxVb006uobIoMApYRftTMvXfWul3PsEkgvJx7mEkvU59PU6nZp3/2aSQZlUrH/lvG5N/NhlF+0y3qpQkbzS7Fhm5pAJ4cN4oCANAz6HcBuxF4PzazUc5876BEdvvC11YtRFjRh2xbF2YLog== 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=exQMF9vXmyNVAC5UvYcI2a0VWcKay8FP6olgOAVLh2Nrj7njSHcikHLs6Bztzm4YEbf9I7rZq23+UkyQi65oDHmyNiMQS20Nmq4ACgsGkY24JYfuvQM+hvkNpCA2spi1Y5w6eHNYmsqBFpxqbuZ0IiIwqvcLXLYnDo4p5Eq9Iqwcf5DjoKyFmtY5IFubPEoogHWtcTRgNy8uE7b2Zum7r7pnbQjV5CIFzLKFPfHF/QSUmbQ1wlWxQ7Lxv7einHLzMAJDYyOBbX4eFRzDTMJi2jSYWY1ntFnKojY+fVvxQn3W4vWqAeWcX/IbVN0ylxIUy19xw3TtvfgvRGJVwHex8Q== 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 PA4PR04MB9295.eurprd04.prod.outlook.com (2603:10a6:102:2a6::22) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8356.21; Tue, 21 Jan 2025 15:06:25 +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.8356.020; Tue, 21 Jan 2025 15:06:25 +0000 From: "Peng Fan (OSS)" Date: Tue, 21 Jan 2025 23:05:31 +0800 Subject: [PATCH v6 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: <20250121-imx-ocotp-v6-1-76dab40e13db@nxp.com> References: <20250121-imx-ocotp-v6-0-76dab40e13db@nxp.com> In-Reply-To: <20250121-imx-ocotp-v6-0-76dab40e13db@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=1737471947; l=4068; i=peng.fan@nxp.com; s=20230812; h=from:subject:message-id; bh=4MXzYq4oLyYtlA95EQap1UQZ2xOM248M5j3t6NvUUFI=; b=hirbKyc9oP13CRXY8HY82fHLvdWKWL9zBq0DZ6ihd1ndlJr7JRTan9n2fB9wHYjAZjJZnAZgB sFK4SG/khzPBD30f+L2MOjB8dz0NG73FxxbH0lfnNMw/TvGwKHqafg0 X-Developer-Key: i=peng.fan@nxp.com; a=ed25519; pk=I4sJg7atIT1g63H7bb5lDRGR2gJW14RKDD0wFL8TT1g= X-ClientProxiedBy: SG2PR02CA0135.apcprd02.prod.outlook.com (2603:1096:4:188::23) 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_|PA4PR04MB9295:EE_ X-MS-Office365-Filtering-Correlation-Id: 16e557e8-d7fc-4328-eb35-08dd3a2d2c7f X-MS-Exchange-SharedMailbox-RoutingAgent-Processed: True X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|366016|1800799024|7416014|376014|52116014|38350700014; X-Microsoft-Antispam-Message-Info: =?utf-8?B?VlA2RXI1ZU9HdXFrR2hRaVcwUmRFWWhpekZBbDFvQWRUN25iYk1Baml0K0cv?= =?utf-8?B?WkFHb01rWWJzUjJESVFKQWRxNGRzaEtvWHppRmlUaFVUUE9QdTRtSXZZa29W?= =?utf-8?B?OFlzZXV2a09vWlBCWUJlWjlpZXJEb1FVMkdBc3A5UUl5bU1MWllKM0I0bHk0?= =?utf-8?B?dmhXc1VGOXpiQStlb1JJRnZVS0hLd3l3dnVYbUR3MEpDR0trMjJYazlYN1py?= =?utf-8?B?MHdZL0Rldk5zWGlqVGY0Y0VjcTlUekJpekhXRXBnM2xDQ2xvcno3S25YK1Vp?= =?utf-8?B?ZXh2M1VpTnd5OVlKREloM3JhSnFvS2hIU3NHTGpRYi9LZ1VnV3UvdEpvRnpu?= =?utf-8?B?ZFdBMFZqZStVNU5ZRHJab3dTWU9zdFhrQVBYek1WT05JS08wRGZvbTM5RlZI?= =?utf-8?B?NE9BVDBTcm1UQVFnMnBNY2d3cUxNSjZ1V1U0K3hsN3VYcW1OOHZKdy8vTlFR?= =?utf-8?B?OGprU1MzNzd5TmhPUzdOMU56V1V3bmNUUjhHdU9FMGNKVzJ6MlBkMEhOaUxT?= =?utf-8?B?TS9hSlpwNUE0YUZhd0FSWDA5aDFDQ1VnRkF2anpJRGlRL0ZyRFQwODFVbWRR?= =?utf-8?B?cWdENGYzd2tKSVFKSzk5WmdCMnVHL0FHZzJvSGtmbnBxSnc1MGFocEw3Rkh6?= =?utf-8?B?cWtJb3dva2pQWUdUd1Q3azBuVzM5NG9DQkxwYngreUp4bHR1ajJKY3ZDOVpC?= =?utf-8?B?MlRsbDdlR25RY09tRUdmSkptSi82c0tQOFdVeWFvVXEvWnZObnlMMHlUUjA5?= =?utf-8?B?ZFJxVHZoVCthN01MY1U4ZERzYUlBSG5DcVByUUVjQWhtQ0d4blFNVGYvV3Rn?= =?utf-8?B?WXFLN1ZscWNJa3dieFZVYkZXbnI1YTNOV0FtWkJPWGtMUUY0ckNuU3pGdVlo?= =?utf-8?B?bm9iS2RFdlhvL3hPU1JmUS9XZElnbmhUNjUyTG1tVXNLV2h1dDRGOEV2VVMx?= =?utf-8?B?UzB3OEJTVmtsTnN4anZtTnpWZlpKS3VLOHZkTkVKRGprWmw2c1JOZEhWNzI2?= =?utf-8?B?RWplTmwxSEMySC9kMVZvR3RGay90THduZTh5RXU4ZE95THJncFNIS0kwTlRm?= =?utf-8?B?RzdUOGV3QjZvZHdLTm0yUHdlb1BNSDljeW9yM094d2k3WFJYbnpFZ0c3Z0Z1?= =?utf-8?B?amd5MlllU0krSHRnSE5tWFA4MG9McjBnQXl3dWxWbjZOZnR0SzVvUG4yTjVs?= =?utf-8?B?RHIzOGRZaENBOXNPUXVwRW5mcWFEUnpadkNlTFdNem1Mb3VVa1gxVmpIUERs?= =?utf-8?B?TTBvaWRMK3loeXA5VFcyWnFVamxGNU1ITXNCMGZndS9mVU9TbWFqZnJRTG1K?= =?utf-8?B?elRiY0RqZlE2WG42Z3ZWV050YTc5ODVJVm1yelhzNXkrV1RJSlU4Z2F3dSt3?= =?utf-8?B?MHdKMjVQUWZLSnlTL2E3cUZwQVJEaDdzbDVZSjh0cTVCakR1Z0d1ZUlCdWwr?= =?utf-8?B?b3NZMUJwRFU0VWplNU0ydUlxakwvVnFLTVluaWJXdWhxTm5UR1cwN1hwWk5J?= =?utf-8?B?dm5BanBLLzZiSUJHK0xENitZSzYvaEorS1dEbDJFWGcvNFlGODZjRmZkdlM1?= =?utf-8?B?d3ZCQ2trWEl5RFAvN3FWNlZIMVhqMDRnZUJsSVFXZ0tnSm04VW9JZ0pSeXRP?= =?utf-8?B?NVlMODVNOGcxRkJZNEdJZnhUTXlMUFQ4S1kyTTlwN3g1VVNqTDFuMWlRc2Zn?= =?utf-8?B?UWxNV1ltTXZRYU1rVDVWWEFZZEsvbmdSUi9lSU1qaFRFZG1OZE5aMjJhaXF3?= =?utf-8?B?dHNiMkxrS2FXMHArampWdnVPa2lha0dSODNZeFcxcGF6TXZXM0lXY0FuUDJ4?= =?utf-8?B?OG9ZcHZQQ2VlVTFyMWVjL2FmR2sxUjBzWnBPeTkwT2tjYldORW5xdHZIUzJB?= =?utf-8?B?TzhiakN4L0lPNVQ2emRBelFaUnFONm00OVd0TnNiUW8rT01CWHB5TkowWjBM?= =?utf-8?Q?BmGQwpsG6xkr+dSMEcJ6/njAGJpkcRv6?= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:PAXPR04MB8459.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(1800799024)(7416014)(376014)(52116014)(38350700014);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?NFAvb3RDNEdoS1VsZ1JDNUVtL2NHd2IxMnd3UVUrQnRIOWk1YW5KMDNlR3ZX?= =?utf-8?B?SFJqNmNFRzEvZUNXbTNrcmlPWDhZenNXL1FHaWtGcWRoZG4yVWNNeUZoQ3V0?= =?utf-8?B?UGUvOUZoSDRIb1FzM0hDQXdaRWo0d0dBVWpUS1VYZUdvSXBaWGtPaWZqTEJR?= =?utf-8?B?R3dqdzFIWnFKcjN6aFE2SUplUUdwZ3ZIVHR1NjU0RDl0STZiR01PUVVUUm95?= =?utf-8?B?aFoyUEs5TTU0MHo3c0tJK09aWmg4NkkyRi8yUWdHUW1vM0IzVEhBYW1BNTFr?= =?utf-8?B?d0tGaUpsZmZJOWp3Nld4U2svNkdsbzZSZFpGa2xKaStpb21wWVVaQ2VrSWpH?= =?utf-8?B?SFQ4dmpWbExqWXhDdUpGREtscGV5a3J5ekNua3Nlc0ZrL3IxSEJWKzVGRGI4?= =?utf-8?B?L2haM2Q4QXlGSnBFaDFCbnFmNlU0akRESTlORzVPVXFESHg3aWc0RTByc2dp?= =?utf-8?B?VFVId0w1S0x3MUl1WjdXQnVvWEVxMU5DcHk2Sy95WDJKdk5FNUFVcWV4aGlN?= =?utf-8?B?MEtyZFY1UEV1OEwzYy8vYXJGeE00UEtsUjJ2LzRhREg0THVNeFBldGVuSWRl?= =?utf-8?B?NytldkJDaktJVFRjUnZEYWszQkd3aldMMjg2eGxhOTlaeTlsdTN5K05rNUNo?= =?utf-8?B?NmlmZUdvN3hOdVNPNmxtRkpER1dOM2dWZUZpYlB4b1gycVhFMEFlOWs4M1Vw?= =?utf-8?B?NTFGUWE5Q1RLNlE2K3ZRdjdjaTBuZXA1TFBNaWVWbENQOVFOVHRITmxFZWRW?= =?utf-8?B?RWVoR1kzRVhvMlJ0OHVadit1ZVROQXdoUk1jZWxPeXEwY3ZWSGVKNlZMNjZu?= =?utf-8?B?Y2JFSEFTclZKUUJDMFdZSzRGS0p3ZFN1TVkwRkpCWnJYbEpSSWhjcDR3YWxw?= =?utf-8?B?a3F1UnA2WEdKTHlRREtNNWNhdkxHamtxdFFRSU9ERk1UK2lyVHZvdUFESnB5?= =?utf-8?B?akpnU0RHZ1hubTVES0VJZ0laMG1SZFArbTJ0eHpRc2dvdE9BYlUwUFpIYzJa?= =?utf-8?B?V2xOanluS2RrdXFPdjFGc0dWaU9HT2hkaXJNZUpqUGtjR2k4NEMwWVRLOFBo?= =?utf-8?B?bTBXdDJRVmhoSVFTbmhwUkJaVlpFL0JJQWs2R2JNVTVQOTMwNDRpczkzUGlQ?= =?utf-8?B?NS9NUENuK2ZUbU8xNTlUeVJnemVzb0NKUDNIYWhxbGE1NFBhQ2RCZE1LK2Z3?= =?utf-8?B?UDdXZ2xqU2IzdzN0VW9ab1E1U2xPSGlLZDFlQWFxWms5VzdyMW11cjl6VFFx?= =?utf-8?B?cmg1ZlN0ZklCdnZETklaNkFUQVhISE84K29jVllEKy9ZTTQ1MklrVVBXT3ZI?= =?utf-8?B?L2tkTnVmclNrdWtWYm9pclIwRk9UUkdkcEpoSXVmN1NhTVZobGhISXVoenpR?= =?utf-8?B?N2UydGdlaFRxaGhLWWtiYm1OM3FkVGl1OXl6U1ZDdTF1NGNWREtFbTVUNnFz?= =?utf-8?B?YnZsdXNkRGpnQ2tjRXNSSzFVV0hxbFY5NVcyTDE5YlhkZ09WRkRUS0VxVTB4?= =?utf-8?B?UC9LNUFYdnhJWm9RZ2x3cWlsYlU2SFVud2ZWMTNMU2ZvOGdzeXY2dFBxdFZG?= =?utf-8?B?QUczYy9hS29ueU5DMUM0UFdqU0FFVXYvYjJCK2xRVU8wcGZiM0psWHF1U1Jo?= =?utf-8?B?R1hQeGZqS3RySk03TU5YaEVJSmdEYklKeHRXNitjb2FIVkdhWS9veXJxTmx0?= =?utf-8?B?K0RJandJQkhZSjloNGRkdkFNNGYwTGt3ZGFRcGhVc1dRYzhiNmZxZFZqMlZx?= =?utf-8?B?Y0R3eE5DRWpWL0ZkbERLd1ZpdzB5dzA3YXBOK1BrS0dMd2RHekZaTjFqeXlj?= =?utf-8?B?UDFkMnVyZXo4OTluRWlXUFBuYkthVW1tRkpPK0U0VGx2Z29UZTY5Yzl4VFpM?= =?utf-8?B?eWEvZ1N1ZjFkdE5PTUlGVHJYT0NESTdMTmtuZFhIQ2pac2VHRzEzRjJHOE1M?= =?utf-8?B?OTk3WWkrbWZtYnUzNkozeG1lb2J3Y0lIR1NCcXhQTkxra3BQMU9Nc09PWDdj?= =?utf-8?B?c2lQaE5sZzBadDlEYXVtSkNtSXZZcFl2WCtQU05GS2tRTTNWUlhjZUhsMUJD?= =?utf-8?B?dGlXem9FdHpaTjV5dERYYUhqN29OVkR5d0FGcWF4dE1lUTA5UThtV3FTbTZk?= =?utf-8?Q?UbzayM+MJ6gT+b735p/zxWxDS?= X-OriginatorOrg: oss.nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: 16e557e8-d7fc-4328-eb35-08dd3a2d2c7f X-MS-Exchange-CrossTenant-AuthSource: PAXPR04MB8459.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 21 Jan 2025 15:06:25.3015 (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: TM70L4F6wJM6FWdoHGf3+R3xctCqx5R2KJDGk3fLvOchchCUOrwFjpEcZCxRmMccYYeQCc7Dq81sAE53+IbBfg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: PA4PR04MB9295 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 Mon Dec 15 13:46:40 2025 Received: from EUR03-AM7-obe.outbound.protection.outlook.com (mail-am7eur03on2040.outbound.protection.outlook.com [40.107.105.40]) (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 CC8EC1F473E; Tue, 21 Jan 2025 15:06:32 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.107.105.40 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1737471995; cv=fail; b=PL5LgMFL29uO4QQUGC4vcCXFfKj9PljUsAlxW3gpme2QlA/ydq+5pYn4zgatq7hduVC0+1BAYCkJyEZAW59HTZoy7O6u2CSQK3Fq01BO6a8XKKQg1D/NEnUYLj1rLpaPZ/V6W0okPI3S9fM0/mun1Lz8U7c/PadiVifU72V7nI8= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1737471995; c=relaxed/simple; bh=SoCUuS0ai5FJ7EFPPhnO1vvGzyUmIgnKsPW1E/Tlsao=; h=From:Date:Subject:Content-Type:Message-Id:References:In-Reply-To: To:Cc:MIME-Version; b=qGyWb1mQmA9gIjRRCFeWetMErbwUCVoxVYPuaAIuIZ5b0bR4/x1uAcO4epnphgLV6skjuRJ+EwAc5/MOhkweSXYAzfT67wDLz1ta7dT/EHtppPibZ69bYt9oNodcskO5Ivw0epGZjmvmGkASsWT7V4d42E/365vaTyt/u7PhInE= 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=QcXkqu0K; arc=fail smtp.client-ip=40.107.105.40 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="QcXkqu0K" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=b8YbSraPoylov2qfoux3z0HYVwqLSdyC1sxYIkyapiT2jGdroChFCStymc6Ay3rEC+RIvQKDbu++LCzExDIXnTKeBmfuDK50uRBqBgurGKTXUFKwqjCT2FUE+IdWKXwcjLhIVS4P7q8JmTNGmMdgC48U0UFPbkEUTo42vNWjIu9vt0EupK4sUXDajGUxeIiBOiNmbW1Z+S9ryeYeDDo76gaFRovGjpUbw77hy/KTPDC+h6gzseGxwTPHAV9AnfIDYa34sXzNidJUZCRuhoBb5vO+Wwewjq4R1bMDlMa/AcY5mK0zg+CZytEjKV8GnuiQtXJTAsIjVHD1Wyj7ahHUmw== 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=NoQKZLTbR21LXDKQOZkJFS0OxuAVgfiu7By1xR04+6o=; b=ZHS/dktbynqoBHVV5Kpz1gowlduG+8c003D920OdM+0EpB7Plp7/X0pfyprCbn8Y3fQ0mmguRoRppCR8qGOt3rwRn/5Z+6rsAPFqljK4aldyO0MtjDTEV1gIUSlrzFjpNT5cu4wt23Euzj0dsRrrTO9snBa2FjGIpkp8PlQcn2jUObvxXj7YTrnt37Qm3vlW+UusXNlYPx3Sa5CMMVbH5LwqHQrFjIYkLZTUCKl3aUF5NYIfQ2FvHnZmt8451NaCkRTgQ1OeuglHYhNJj34H7qNyT4PzrY3bNTMzArZE4ggbQsYx9zoxlPNJLrbWT7XTgfhyvNpUxXh46cM2gFs4YQ== 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=NoQKZLTbR21LXDKQOZkJFS0OxuAVgfiu7By1xR04+6o=; b=QcXkqu0KH3ZjF1w3jPSxAbszqUeG/wDwlvAC2XhK4W4TwM6xSA3o5hufzI7uEoD6ruFp8xpYjjJoFqhB6GQpeD6VeH8SOqJtpuTLqZ9Vl60InYdQzqRG3CckxWw090wietcO/qWKa0d525QvPvE1qcajaNPsPKKPeaAWh9tliUnzZlMgNMTFrLc7MO0tB1dK1Wu8AMOeh3sggKPDVitw6LSrFjTGmQw+CvrO7Hgw7WPrX8TUd1SDbTxDboievEE2myiQvgwGfqhNqncA04/hGWAhPQv3N/mE9ERlPeIdqWuQZ+t+CBWL4cv9GJOGeNuNaRoZWRiwlDv8OAckwsbeJQ== 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 PA4PR04MB9295.eurprd04.prod.outlook.com (2603:10a6:102:2a6::22) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8356.21; Tue, 21 Jan 2025 15:06:29 +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.8356.020; Tue, 21 Jan 2025 15:06:29 +0000 From: "Peng Fan (OSS)" Date: Tue, 21 Jan 2025 23:05:32 +0800 Subject: [PATCH v6 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: <20250121-imx-ocotp-v6-2-76dab40e13db@nxp.com> References: <20250121-imx-ocotp-v6-0-76dab40e13db@nxp.com> In-Reply-To: <20250121-imx-ocotp-v6-0-76dab40e13db@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=1737471947; l=9107; i=peng.fan@nxp.com; s=20230812; h=from:subject:message-id; bh=CivJ/dkdlR5J1G+iH4A3XJvFEDAAqKsxHI1c3/ElmTs=; b=SsBVfTKKOGj176E2OCm+mHDfNvXfve/XjphphhZExNWdiH+oeCH03ZHPwh3jBFJl7hWQpPHe8 XDiMVtfC22UBM/kHrr/b+0l2cKY7aiPQdBc/t9adGS8Cu10KNgwS3YH X-Developer-Key: i=peng.fan@nxp.com; a=ed25519; pk=I4sJg7atIT1g63H7bb5lDRGR2gJW14RKDD0wFL8TT1g= X-ClientProxiedBy: SG2PR02CA0135.apcprd02.prod.outlook.com (2603:1096:4:188::23) 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_|PA4PR04MB9295:EE_ X-MS-Office365-Filtering-Correlation-Id: 59cd4115-63e6-4a70-5200-08dd3a2d2ef9 X-MS-Exchange-SharedMailbox-RoutingAgent-Processed: True X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|366016|1800799024|7416014|376014|52116014|38350700014; X-Microsoft-Antispam-Message-Info: =?utf-8?B?bkp6K09jNmordlR1NkorNzNta2t4NWJQZm9aMGdBbWpmNFNZVFFTMzdnYTdn?= =?utf-8?B?OXRDK1ZEK21nQVJoS2lMNmdrNzA1R2Z5SlBNMUtzekIweUFzZm5OUW9XM1ZE?= =?utf-8?B?Q2prZmx2WHNIVHBHMjhtcDIxQkhzL1o3dncwcWE3THloWjBhaWk4L0c0L25W?= =?utf-8?B?Mk8yU2FnVDdBYm5CY2MxcVZzeXhROFUwdUFoM3ZIZnQzZWVObml3QVVGS2t5?= =?utf-8?B?V3FWSmVRU1EvMHV3UHppTE9yclJYRDV1bFpuV0FTU2Vxay91T0swUzlaY2JT?= =?utf-8?B?b2lieks3S00rMTErVEhMYytiYVB6SDg3RWJxckVKZ3FQRUxCVmJvYzdEL2xC?= =?utf-8?B?QWhKZVluVXZCSlpsKy9HSFlrZVJKVllEQU1vWTduYjRQbWhDbFExc3M1NzR2?= =?utf-8?B?eGxYZXlFRFZyR1pZa3dzYy8veEVLK3FxejJvdGVKLzNHcnBjNTVHSlY4eHcv?= =?utf-8?B?VktTOEZtZmx2RkZGUmlwZW9hOU5KRXU3T1pnMGFvcVA0cTVyeGNreVJWRDBV?= =?utf-8?B?bmdtYTRyZVhONVkrcWxMNjRuTitwa0xUa25NQVRWMlVVanpCYnU4aXNuc3V6?= =?utf-8?B?OTRPWXhlY1N6TjJZdWpFMmxpT0ZvMXkyT0w5Q3RZQzBXdWhuU3ZKcW0vNXN2?= =?utf-8?B?Sk5WNFFNL00xTnJqVTQ3N3V4OWJKeUhIbnBWN0wrcmNuZ1BMemx0czhGL0M1?= =?utf-8?B?QUdMWXNGa1dxbkJjR3VJTTQzUVhlVlA4TVBvNE5maW9LQThDSXF2UkJmYjZn?= =?utf-8?B?QXJjUTBLTmt3QmxGeERLb3AzYVRyMDNuc0RqTVRSYkliT0Z0dTFHWFVqR0V4?= =?utf-8?B?aldIbjgybU1QeWExMDM5ZVR2aFc1bGo3Z1BMdzBoVExEQ1dZZ3FtK3lSQTgw?= =?utf-8?B?SStoUm5hU05YMHRVRi9NdDlPd2tUdkJZQjZkODlIeHZ4dFVXMkRsbjhEdkdj?= =?utf-8?B?WjlYVEszMnNnRXFLRGtiWHV6aHlPRVRGeWRzRDAvcGJKUHg4cjN0djBtaVNI?= =?utf-8?B?dmpUQ1pSSkt1ejdlOWxsUGg0MmJkSEpvQ3YxV25BT1ZRb3RJQlcxUHh0N1Ju?= =?utf-8?B?L3JRTFpWZ3FNRmdIL3psODBXZjFISE90L282NUhrREthd2k5ZHEvRzFNV0Zx?= =?utf-8?B?YWJZN2pIUTJRTGEzandvMm84L3hYZ202cFBMU3ZCWG1sQlRLdFh0YURhckZU?= =?utf-8?B?RWM0bVZEWjl5ZEgyVGI1akxiY0hJVjZhc0xqUDRqSXI2cy9XbkY3c1R4M1N4?= =?utf-8?B?TVp6RSttWjB2UVk4elBNUmFWdlBzQlpmYkxhei9VTHlMb2VXVHg2NERzS2Rk?= =?utf-8?B?aVN0SlNVUDBjZU1aM1VwZEV4VUFTenNZMjZOM0ZEZnM5bDFyaFJzZHBGNkJ0?= =?utf-8?B?bXoxM1lnQ0JCOVZlYW9UUGFaeVQvZU1LSHlRNVd3MWtRVWRTaFgvZWkrODZE?= =?utf-8?B?b3E4cUY5WlJPVGplOE5oL0h5R2JGdWd1ZjF1eGV1N3hWQ256SjIwdFJBcnVT?= =?utf-8?B?N3lqZkZCYWg4RGRvYUFIdWhxWWQ1VUFHcXNYNVZZYksyUHN2QmxXcFd5V3h6?= =?utf-8?B?TGlYRUR3YURSNmNVYTZqOWRVbHpkeHp4YkVFbE4rb0RnQWtlUkZUUEVkK28y?= =?utf-8?B?dks0RVJpRis2d1R2MWxUeEdMM09rdE9rT3FhMVBwSndOTHpjT0tLOUVnYnBF?= =?utf-8?B?UkdmT1pvZExDY1VHQ0JBT3hxWFBUNUE3QTBOaGdMZnBGeGd0SVIvYmRKRW1n?= =?utf-8?B?ZHNXZHRwY0R6M3h1bk4rZnNuQkd1UlI2WW9jM1lKTmdHWU9WY3g3TEU2b09Q?= =?utf-8?B?QlRSUCtrV0I1TFFrMUtGVnBjY0NVOXVpQVJZYkZvWFo0QmpMVitKblZ6SFpl?= =?utf-8?B?clF0SXNKY2txanZhYzduaTJoM1pFZzRDa2hleGhtZFpLUWNvNy90MkZWUk9F?= =?utf-8?Q?mciGFv+qnxV+PICPB+K3m4smLcQZtXtZ?= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:PAXPR04MB8459.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(1800799024)(7416014)(376014)(52116014)(38350700014);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?U1oyL2pHcXZMYXMrT3lWcnprRHQ0bVBhZEdpNWdHMzFsZUgzMVZvOU9RK0tx?= =?utf-8?B?NUZsQ0NXbWM2RW9SL2pSMkcxcmtYOXc0eWxyM2NPc2ZPd1ZjdDdhdncvcW5l?= =?utf-8?B?NWtkSVgvWlpmQUVGWHg5WWRoNm1xZW5xemJhV21XaUVHcUZULzA2VHNCczdV?= =?utf-8?B?K0p5V0dIb2N6RUova3AwWWsyTzBaNHFQT3V2SUx2dVUzQVI4ZWhkbE1ibUZp?= =?utf-8?B?cjBtZ1NhdTRFamprZHBRaXJZdVowclVSYUZBSGpkT3J6aklTMXUveFJyU2Iz?= =?utf-8?B?WEg0SEVrdHlIbWtjOU1iWVNad1U2YUZ1NEtMOXZwcFhWb2VwTk1jQmxucGc5?= =?utf-8?B?UkdFRGlSeFFicGw1a3dVZFpZR1FNOGxMM01pK1ZtZ1IrZ0tsRUIrZ3FDWkF6?= =?utf-8?B?K1NkYkJEblBvQVF2S1FPakdiSHQ3czluVmE1UkVtcXEzR3ZGTFVGS0tCb0hU?= =?utf-8?B?Zi9CT29lTGZOUWVLT0pHSW5IK3FzVi85RXprQm8xUjhIUUlzcnBzdUdDOHBR?= =?utf-8?B?dmRhNFN3VmsyQk5qdFpsTlMzVE16RXNHNGNGY3g2eklaTkZGSW1HeU1rZXZn?= =?utf-8?B?aFRaNnV1a1ZuRks5TEUrWTd6elpmNk5CM2wxL0hOU09BZVVBNDNaQ0FwQ2Zl?= =?utf-8?B?b0RwbTFEc01FeUVUTGV4c293Y21GRm1BYng3eFU1UmJuZDhwQU4xQjFCVS9G?= =?utf-8?B?QXgxdnFtNytJUWJmS2lORlJvd2ZmSXprS05vKzZiSGF2RGtPeWhpODkzVDEr?= =?utf-8?B?WlVSNDRDanFnQ1haVGhqazhtNkVIaXlaUWVCRU05VFdRck9hR0tIOGhZRnph?= =?utf-8?B?S3ZsTk5TZ2V3elVnNFMvd0RGM2ZaWS9qQk1PY0QrRUxRVzc1Y0ZvdVdrVzRL?= =?utf-8?B?YUFYZVZFWENWVDFGajhYQmNBQkwvVFRvWFNQMVc4UUJHUkhqeXFVdmZrb2lL?= =?utf-8?B?cDllMVErZ0M0L2JwcHNoNXB4VGlyRFlJLzh0YW1XTjZ4bkhmSjlrY1NsS21z?= =?utf-8?B?cmlIQlZsVDRhd3ZZM3ZyMTVWMm9BMlZCUmFzc3ltdmdVZ0ZSYU1PVno1elZM?= =?utf-8?B?M21mUTU2MGJVOWE2Z0VwQmpKNXlXY1l4MlVLRFQzeTV4TS9sS1o2aG44bDFH?= =?utf-8?B?UFNDZnlSMENqUHR3Rm5vZWZaNTFBRmJ4Sm5WK2luQXp1YmJMK2haaFd1TjlF?= =?utf-8?B?b0R3bHFHZHZnYlN1TlRmMjBNeUtNc3JHeFBpcTRlWXIwZDN1QnUwajAzQVdl?= =?utf-8?B?MWcycG5RVElKY2NSWlh3dHJoL0hPQVBhMnh2NU9NMXVlajZGMWNNSlIvc0Nn?= =?utf-8?B?T2N1RmxJcWxMbGU0QnE1eTU0eUNwc1RxU3dCU1ZkcFV0SUhFaWRlQUFtQkdO?= =?utf-8?B?cDZXb1h0M0FPVUVSMjNDVjZSbS8xSndCalVwZGtkeDllUDRoVCtwZWZ4bnh6?= =?utf-8?B?UElnTEppeUxuU2NnemRmUzJaK2VtS3dPOUczWUdtY2VqYlFtdFhjZnVGL0V6?= =?utf-8?B?VkNnWUIxMzVObzZLUFI1dDBoZU1UYUMrcm5pYStPTjNwZU9WdCt6Smk0S2xU?= =?utf-8?B?bVVrRWRDYVFvanZ3aHB5T3VzekhBV25nZER3WTlVYzBuM3pBKzNVYzZJejc3?= =?utf-8?B?dTQvUTlONXhwMUxLLzRBOVQzbnUzb0RqVXNFRGFaaGFmbFlGMDkwU0xudERR?= =?utf-8?B?VGdzdWtjcC95K3lvSmw5d1BZY0lvbnlDcGNBaERjemVYME9OR1ZlK3BPS3dl?= =?utf-8?B?eUltTWVsNWhYY0xlQ2FYdmxFNzV0aHBoZkJYMlJDR0NCRkYzdytRUU9qU0tP?= =?utf-8?B?QXBWZmQ1SlJGdUU1Um4wQm9BWHlnN2x5NnVzWUx4ajB5R1FxWm9nVlBoVHFX?= =?utf-8?B?dlBTNlJiZHNPSGZ5Z0ZxOWU2eDUzd21NdnlxWGtDa09DdzZjNGxwRTJqNmtP?= =?utf-8?B?VitZeWdpdGJqM3lwdXJWdHlzR014RkJmektpVjd3N1c5QlFFclNpbm9OWGw0?= =?utf-8?B?dDUyWnRZQWtpaWRFMWEvQnpqZHFFNHYvMTY3YnBSblR4UDdmT1JBTXUrZ1BM?= =?utf-8?B?TkpqKzJJMEtlQlNyMStNelROYkRIYVlrZGNTNnNSMnZLYWUrNnVzMG9TeXI0?= =?utf-8?Q?B9dJDzRihWT/9jdB6d54tOIID?= X-OriginatorOrg: oss.nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: 59cd4115-63e6-4a70-5200-08dd3a2d2ef9 X-MS-Exchange-CrossTenant-AuthSource: PAXPR04MB8459.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 21 Jan 2025 15:06:29.3714 (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: gdHpAzNAkA9rn+AD8vxykS+w/MfbSczv+WWzhd9BOyjZcAUSBKtBeiMmoGlHpUXulvrg7FKCtkyuvIIE7z7pHw== X-MS-Exchange-Transport-CrossTenantHeadersStamped: PA4PR04MB9295 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 | 172 ++++++++++++++++++++++++++++++++++++++= +++- 2 files changed, 174 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..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