From nobody Wed Dec 17 07:24:36 2025 Received: from EUR05-VI1-obe.outbound.protection.outlook.com (mail-vi1eur05on2051.outbound.protection.outlook.com [40.107.21.51]) (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 0D75420F082; Tue, 4 Feb 2025 12:42:13 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.107.21.51 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1738672936; cv=fail; b=bgVt0lxI0qP0EkAlFEuNYgL+ADOpqqQKFNxd8poeNIWr2cQUJo00uIVNWxlYlMdKfFiiEeeGYW5v9nXdHVlYoAy5fx4mHw2cIpaq6Hd5omOcxM9LGGcqbxK8HP1JtAhnFm66gKWbu8eNbzCcleqKQBtXRBiuv+DkVDM2NZTQSRI= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1738672936; c=relaxed/simple; bh=sjfrwJo3cirnw0w3T7cHbGyxh5PCEPcyb9YHHF2hyWo=; h=From:Date:Subject:Content-Type:Message-Id:References:In-Reply-To: To:Cc:MIME-Version; b=a49SJNmhJjVSOzidVIavmCCJx6zl2+xx2qBCiC+HX/9Hoe73lAw54WY5Ryrjn+IlLXzXmjiSE16TdGfUeNLAwY/meZlxu4vawAqtI11OFxtm9lrvaiNHhbM+6FQ9qX6lj1+UjahDivfE/SE+zO663eIGKIADTkbY+ICR7dhHrXA= 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=qFp256RH; arc=fail smtp.client-ip=40.107.21.51 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="qFp256RH" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=ewQXMl6TRQRkVhXiqDYETSgzZS0Nbceb4djbuw5bUhQGJ7sjr7s+Zvr1/TGd7Gsy3hKHAojZjytHiz4wZVsfBo+HGDXHuSNWv+UukgMBlsCcNKX6QeiRyfaLu9guOlve9/b/NRcj+cnxpHwm1fNzwNdgvp12P215gfoepd+C/3GebIq8uB0u9nuECs1wbiBxUGEURqCF3xCeroev52AZyVQbd6O3UYmTHabAch9Znp/rIE1w9pgUinvKSI5/YyeAwJy9sOovaMWRooEOGNkWLD1VWdpu0GwCwQXl2w0+iBAAiqhye+QLFTLis+Y2/BUa5GqxTOZetqPxHrJQ+PokxA== 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=mN69kOrtivUvhqEXs74Bv/6op8kYhQc7Ox9Uc6uw/h1NAsvgiMXdYgj/BJhe3tVq8kiZ2566el/BhEz+fHKAHP0uPGQyIGcChFqf33Bq0ZKZMLXXtX0o2rwcv9lRhwFFqsOaKTyjdJg+EwrmNt5o9SKTzBqvu4a+gGdhc3der9jVJ8kKL7cQNgv23E6pYoO+WYvpqO175lIpr2Se0Fp4wn+b+A4fwmaC+zPa/HyjydRgFhRLLWhhQKcxJpRYJxrcuMEEm/ZSG1to9HDbWnl62Pc7QfTlO36n5hfQuGEF0KYFfVrVCwwA2By5fdnfAJy/xPswFYHXRhsYJYMszszOzg== 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=qFp256RHBol1K83KMUX3x2VmHbX+BYpSwf3unD4tU2venh1SVvjUEw5vA5OcmTJBfahWsFAMBBaKlyrkOXLediFBWxaYPRXCy2/imtX4gxmgwlY7KQ5tPDQqntzt1BSR1sK06ZXa3BF+zDXW+n6zQvGSuv+oMk6kOdK0+PiAxyAQbtpn3l8+C9F0NbaD/9Cmw6k1Q2r96uHPOZ8BM3gmS2orrzcaXKAO0wHpW4SiSDFHnCzbfT1X6UBlsbDMSTtc7Duyxebti2Du6yd4v/LM//kKIlLhXmc7fd3ACNgw53fQ3QzzxSQTz1uMYJPjIw4jdQCj3DVu6PnpWZ1qYlIW6g== 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 PA1PR04MB10889.eurprd04.prod.outlook.com (2603:10a6:102:491::11) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8398.25; Tue, 4 Feb 2025 12:42:10 +0000 Received: from PAXPR04MB8459.eurprd04.prod.outlook.com ([fe80::165a:30a2:5835:9630]) by PAXPR04MB8459.eurprd04.prod.outlook.com ([fe80::165a:30a2:5835:9630%3]) with mapi id 15.20.8398.025; Tue, 4 Feb 2025 12:42:10 +0000 From: "Peng Fan (OSS)" Date: Tue, 04 Feb 2025 20:41:13 +0800 Subject: [PATCH v8 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: <20250204-imx-ocotp-v8-1-01be4a4bb045@nxp.com> References: <20250204-imx-ocotp-v8-0-01be4a4bb045@nxp.com> In-Reply-To: <20250204-imx-ocotp-v8-0-01be4a4bb045@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=1738672884; l=4072; i=peng.fan@nxp.com; s=20230812; h=from:subject:message-id; bh=XnzgujPvzhDsZMamCFtENs9apB02aFgSkBfdNqk+fEY=; b=jfAPUOvurKkXAM7XzcOmAwf6tkx4jvx1yZqp1Q1Hw0bL600A2ZWu+zlmLaiKF1wjL8LRRzKij 9RLul2YV03dB4kuYPKv50EBZYtQz1QzYwtYo0k/xDdkg8mJ5qMLsprf X-Developer-Key: i=peng.fan@nxp.com; a=ed25519; pk=I4sJg7atIT1g63H7bb5lDRGR2gJW14RKDD0wFL8TT1g= X-ClientProxiedBy: SI2P153CA0013.APCP153.PROD.OUTLOOK.COM (2603:1096:4:140::12) 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_|PA1PR04MB10889:EE_ X-MS-Office365-Filtering-Correlation-Id: 1b7f189f-0f6b-44f7-3b19-08dd451957d5 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|52116014|7416014|1800799024|376014|38350700014; X-Microsoft-Antispam-Message-Info: =?utf-8?B?Q0d4ODUvbFI1V1doME8wM2lHMzE4VEdKa2NjWlVmNFduSGc0VlE5ZkJmWTQ5?= =?utf-8?B?WW9Zc2cxaDFqc1owK1VRUFQ0V3dPbGRMT3JKU1dHSWpTZ2IvdWlqSGl0dmVi?= =?utf-8?B?eUwzTWZmVkN3aU43ZXIvbkNTUEQ1NmZWNnlWWDFRZjU2QnBwdWxyb2RHWG1K?= =?utf-8?B?dFZMOXppcUQ3ZnVYNXVkZjhsSmh2QjFNUTY3b1FpYjlIUDBMWkVlRzVNR1RU?= =?utf-8?B?WTVRN3pXb00xZlBTZVowTnVERkdUN0VWVk9JdHFBRCtzVi9YRDE4SmFPYllE?= =?utf-8?B?MURBeFVpeTZMNDhHVi9FZW5DRkJCeHRBRkJyNURPS0k0VFN3bU13NWZ6Wi9R?= =?utf-8?B?TEd1YzdwaGlpU2xYOHpjKzBDZEJodVlXeWIvY1VIRlhyOEtRUWZQR2IwYlg4?= =?utf-8?B?VWFXR0ZmcVc5UDJMWUNLTjNIQWc4WlB4MDZmc2xvRGE0SXUwRkpFUzN2bDl1?= =?utf-8?B?K0VhUyt3ZTE3a2FCdHpjM2U2R2NlMFh5MTJBRGtNRm9HWnd6VG8xVzBUc21C?= =?utf-8?B?NStVQWhuUFRvTDZVUm96am5CR2VkRERGMGxHU1lZZVJZN3pjdEt6OXNlNGJN?= =?utf-8?B?Z25NU3dpRTNwdmVhdk9EbldOelg5bFJJOXo0U1BWbkdTVEJwbnJYSzd6cEh3?= =?utf-8?B?YXdDWk1TK0swVmZqMU4vUjNhZ2NaTG51Qm1BSWNlZnVqcHR3VTZ2NlpNNDhG?= =?utf-8?B?NDY4aXk3R2YyVUNyQUozSDQ2UmRBWnRhYjFYT3NxMEs1RnlCWGZrb0tSZHJm?= =?utf-8?B?M0ZDSldab2Q0QWtzQmpvK2NuSzVONWFySWV1Tlk5ajd0SnRLK20wRS9icm14?= =?utf-8?B?TkpNaWdYV0ZDYnNmczlBblJwQlAyaldIcWE4bVdMcHJEMFBtQzRYMHNFZUk1?= =?utf-8?B?OFh6aWF6cTBrb1dJTmpTcTRNSk1hTVhCeTc0RzArTFNSWktybW1xVGhKWW1R?= =?utf-8?B?NnZPRzI5Y3R5WnpuSnJ2ZitVcXJLYk9LUVM0SmY3dUhvanpqTVEzQXQrem80?= =?utf-8?B?SDZXWU01UE82UU5kakM2SDJGZEV4WUpqaTJxU3M0MFhKYUs3eFBlK0pvNTda?= =?utf-8?B?WndFS29UL1YzYVY0eWxLak11Q2F3VGE4Q3ZLVUp2dC82N0hpY0tjWmxFdlB2?= =?utf-8?B?OWZNU0RoaXBYOU96U2pQbkdCUk1ub1AwWmxRNnRsSEVaSU81TEx4OS9BYVd6?= =?utf-8?B?dUVqWmpZUm5NMkwrYUN2cUdnRVA5b0NsbnBzSmp0cTJqNW44WWRZYTJCOWdi?= =?utf-8?B?ODhLSDFYOEljQjZ5N2FWdXIxajFXc1hCbWp2R3ZIM1RyM2JJdm5IeGQxYjR5?= =?utf-8?B?RFVPZmxhcStyZkw4RjlOcHppSmltRkRINU9EcGQxTGcrYU4veVRpSWFjbG1B?= =?utf-8?B?VFRFZUx6V2NsNHVQL3k0dmhQS2ZVOXRDL0FxUnhzNUxTL3hJcDBCZ1dNbmQ2?= =?utf-8?B?ekR4SlQwYWxXNnlVeTNtSEtsRVhmY2sxNXppRGl0MStabzRoU2NyQ2R0alFv?= =?utf-8?B?L21mdThYd09BdEFFWHhzVDZweGtSa1Frd1c4YjFvOC9TOWZ2bWxqQnE1QTdR?= =?utf-8?B?REJ0Z3Bjb1daMnpFbjhHSFYySWg3QVF2dUNZM0ZLdEVpdCtsTG85Vm03UTBq?= =?utf-8?B?NTVwSlllWC9oTnYvRFlBbnpUUXMwNDFwc1B3SVFER3hZcDgwWS9XYlVRVi9V?= =?utf-8?B?bkFUd1JMNW1ZaXVJbTVwRlhacEJKVWViS0hIRW8yekFEa3hMSHhtcGUwMllM?= =?utf-8?B?QTZudHIrUDFVQWxyRHBSMGpLclRmbk90UGxQZUxLcXZweVhVUS9VeDRPM1Fk?= =?utf-8?B?bXQyajRTb0c4YmZiVWZxQzF0RDhGNWpZeTZxNE5CNW9QVDNqRXZYRjJPdkxF?= =?utf-8?B?YTQzTUhYWGZxZjlSaUwrZ0lGWFJuS3FZbjJXZXVTL20rLzI2b1RvK2ZoSlZ1?= =?utf-8?Q?tgxphX0l/zTgg/6vPVrwcz/EsL02YmGe?= 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)(52116014)(7416014)(1800799024)(376014)(38350700014);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?UnJ6U1dxVll4UnJBYVE5bDM0Y29kZ1cwUndMN25nZ3NRYmhINGpFaiswNjhj?= =?utf-8?B?SFhmd0V1VkFnQzRlRklxY3FUTEZKeU14cGJUMEhxR3dycTNnemh4SDRzRFFh?= =?utf-8?B?VHF5Z3lGSk1mN1kwSXNxNENBbFp6T0tYNHRMZVZBVStyRDcyUkJYZXBzaDdX?= =?utf-8?B?QkYvTVFYZUtScnU2eXJHUEROZW5EYnNGVFBSNVc1MUtWY01oRDJSZHQ4SHh1?= =?utf-8?B?N29Kcm1ZU3ErcVowM1J4ak9KQ0F6SmczVDZiVEJtQ0cyVmlYV1orZy9mUzNE?= =?utf-8?B?TkgrUEc2Y3lEVGY4OVBURGpBcFJlZDVPeUlhQVp6TlFGYWhBbU9hS2pzb3lZ?= =?utf-8?B?bmZWRXBLQzArQlo1ZDZPZnlidjhETTFqaDlJaUdYMG5wL2x4MUJYTkFrbXYy?= =?utf-8?B?aHBiMExqOUFLWk5iQUpqUzJOQksyM3lEa3lQQVhhajJMZTIzTXRvbm9BYkR3?= =?utf-8?B?WHJOZkxkaTJMTEJ4dU5TQ2FBUVcrd1FJM3ByZlVVWkZMSkZyc3QxU3BUbmph?= =?utf-8?B?YUFzOWNHUytuY0piOUxQTGpORnVsNHR5d09abDV6LzlybWErcDZHSGxvbWcv?= =?utf-8?B?eVJpYVlnWi9SM3NrMHV0SjdaVS9GWDlOY25STGFFQThrSExoMjRIaGJGQjVh?= =?utf-8?B?cFN5ZUZMYnJ0aGlNa3RHVzcvaHd2akhYblNub3kyeVNYZGtod200UUJ4eitN?= =?utf-8?B?c2FIMUxDdXRLelp3dFNCczFpbzU3L0M3Z0NOcFhGU0NKT29ERjNjaERaS2RU?= =?utf-8?B?bDNvTjR2T2dMdEtzZG5GRFV0NmxjMUZ0MzBsaFd3NzhTSUUzZEZ2UXJSaDJO?= =?utf-8?B?VHNNNFFMNnVxc3F4ZElXMFp3K3poaSt6clIyNVM1Z0ZWQjlnd2tuYVJPTjEz?= =?utf-8?B?b0JlS1kxbHlsQjdaTXlnVkphdDdrcDFpOUs0b2FjZWRtc0pxTE4rZzdDaDNG?= =?utf-8?B?cUE1K0pjSFp1V1lIaHJaS2tBYVl5MlpoVXNPcVJhUVUvV2VSMXE0eDNrQzQy?= =?utf-8?B?cVRkSnMyVlZSQW4wMERRL1k2RG1CVER2bktWKzN6ZjNoZVd0WVFWRXhUcFFk?= =?utf-8?B?MDNjdzhyNnNIRnZWOG1zYytnaXJoVUk5aWxxS0gxSVFKdXN6aGkwMk1raWJT?= =?utf-8?B?V3hFaVVZa3VKMm90Rk5wZitGcmdwNzFucjFoU0tNZ1RiYTdMcTN2cWNxMGNV?= =?utf-8?B?T05iK3JnSTQwRmNtWFF2MGh5SitPR1ZlWGpYZTI1bUxFZzA0c0tXZm1QKzRv?= =?utf-8?B?OUZYN1hHL0hkaU1RNWNWZjBvQ1NLSmFuSkJCMjNHZndldUVkU3Z2UU9TUy9X?= =?utf-8?B?NGNud0hONUc5NHdnOUo4WDgyOE42T0QwZ2hhR09XWXlnbzV0SFh0azVrbUFR?= =?utf-8?B?WDlwN3VNYmx1NEFNZGMxemMrRlVPOVg3clFjSjhlRFN2czVvQXEyRzZRMWQ3?= =?utf-8?B?cmY4c216cStyT1Y5R3c3MituOUxka1NMR2tuWDRPR2NXaU9lWXJCRXlaRTNJ?= =?utf-8?B?dG80TFBzSEY0M0JiQ3g1bkVaY0ZFd2l0VWtva0M2TldmaHEzek1QRGZGU2p4?= =?utf-8?B?aDVDbXNZRVFBSExjUmxyYlJIaVJYbmRNSzlOeEw5QzJpZ3lTdWlmL3FyU3VG?= =?utf-8?B?aHMxVkJJQWxWTGRESyt1T29nN1VUS1NEdmVGYWZHOUsxdlNhWi9KaTdVRGh0?= =?utf-8?B?Z2ExNFlrM0h3N3laa2ZnYy9aUmxmTnhyWWtOeWYrNVlJVVc0bVlUMG5UTEpj?= =?utf-8?B?a3pjblN6YmJORkRYcGFLTVJnYzNxR0tOZFJFaGJJK0R6MXlQSnV3aE9Eemo5?= =?utf-8?B?bHd4ZUxlUm1TdGFQU0p0QzFNZDQ1bGVySWVOQVZiRURpUWJObjQ2SHdsOXoy?= =?utf-8?B?Z3N0R3BjQjJpMHRQNzZzOVU0RHhxQXhadnlLdThWSFpBYjg2dVR5RFNGM1Ew?= =?utf-8?B?QXBIZTFBNlhlQUR2WmRqMHd5Y3RhYTZPejRFV3p3clhHajBkYVJwZWtMaWh3?= =?utf-8?B?dzRSRDYvN2NwV1RkUVh6ZVJ4M1loNk1qY3FDamF6cFl3MDQydVExS0RTMG8r?= =?utf-8?B?T2dhT09KQXUyZ0l6UVdKWHRIUVdHaFpxWW1sdlhtdjg5VHRyajl5dVlWd1R4?= =?utf-8?Q?FK98zbOgCpnw+2WUs+gA1sMfM?= X-OriginatorOrg: oss.nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: 1b7f189f-0f6b-44f7-3b19-08dd451957d5 X-MS-Exchange-CrossTenant-AuthSource: PAXPR04MB8459.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 04 Feb 2025 12:42:10.8040 (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: EmpIZe/fdSY7LbuKW/tJI719z01pw09eMoxT7OGBIXd45NVIAxt+YR1qptpQk2xwnDEQ7MvlzL9l/AxE14fIzA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: PA1PR04MB10889 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 Wed Dec 17 07:24:36 2025 Received: from EUR05-VI1-obe.outbound.protection.outlook.com (mail-vi1eur05on2051.outbound.protection.outlook.com [40.107.21.51]) (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 DF6D9210F58; Tue, 4 Feb 2025 12:42:16 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.107.21.51 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1738672939; cv=fail; b=ZdFeDXFOw0J8HKNTan+yfFl2qAfQA6N8OiU8XNFjcpyiYSdt/K1dMl6/8TCgIU8rkGmXg4Gg0vAG7k+0z97KqNVX5BRXpLgvoPKmU+3giiUJ73QYhWaAUuE8BREmOdEvRC3KLTvguv1rvKotv8dyzVdgZzK4DBPEV+BhAaodC8s= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1738672939; c=relaxed/simple; bh=i+186PcLHTk+RhUefAjfgXPCaS85IDhKUSbqaEg3Yvc=; h=From:Date:Subject:Content-Type:Message-Id:References:In-Reply-To: To:Cc:MIME-Version; b=JbFPSFuRevrpyQQec1z2FX4rBMQi6U1iYN0FSVil4Uu2J1ZQP0yso911svrEAn8zA3v+1Aqj/HV5RdCIGN2hlFyMH4VUou1871np1Bqxe6TYRWJkQ9ZVi2qbmKQtjwHIgmM5It773A7S31shkw0rTqPKam51zZ/R/0T/Aoeai60= 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=QK0r04p0; arc=fail smtp.client-ip=40.107.21.51 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="QK0r04p0" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=KP+2Q2Ku3jeLgVKm070qPyal7eeVJnoEe5317L8+8SI4k8vGGZuJmTjizeuxXuzJXOTZ5REUuBAS9qjbD/GqL2WxYIQcU+rJPGd2CG1fE21tefXLwocoiutKA9a9Wp0Fgqs49rIYvIAzM/6Dmg73LhBGTIrhqhNb+3BgtldwixpH7rt/dOsqteY7fAx9K54ecRJGRo+k7FXA4VMWY+CbL1/JMmBXW9gJMU0UOsMnbelf+h4E7/rlwVxgmQDv/Y1I1jzdy1oYzEBZhYjnWyi5Epz5YrQIRC/1hU9rG6aIby4kT1lAnH3f36RvFyz5f8+VBmDq6rrFjUaj2GcbM3tCVQ== 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=SdIJXtIxysd9FAgZSSUlMCTkFE6yGwXa3xz5U4l3mzY=; b=lAFXmEiMbKMnC0Sg3Za9cWoRQ611pbbHpN9rdtC8mAywAMEoROnKZ+dsMyh4fvd9YmbX6o1TphsY2CzcYx+tHtILZotqZuHboQBYWvVjKqprPXjvYCBbgfOZHC62rr1VdW5gPqryikhmRj7g7mQ6CovmSK0a8K9bpFjcs8T5jSd76+OzMisbuL6vSLhx+tnxo970UfE6YIjhEQ7aOJuvEzpjf/bK5moR9KhmpM/wgxUrSYf9HV0oLzcjG1mSvKW+7yf+kdajirC+OBahU+3+eielbw6bv+YX1Owf3AFyYjWqzhbITT/y4gXIN7V4IPdVFoeiPR2KVmhZhT9IwKXg/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=SdIJXtIxysd9FAgZSSUlMCTkFE6yGwXa3xz5U4l3mzY=; b=QK0r04p0dO0hB7glAlPiyc0BYnHhFslsPFOktT1rf20Wbj4PP3GtcYCoUlaB88SjXz3JZiXGxp/qhTkq3CAJ4POghCzm5rWvQanXQ+VuHKCtz15lafwIrD7wDZ/nKbuAKjkHB8U4hyzqbJJcAPg0rxfBsFgJhCerz/5lJSLE2BzRBYm8TWS1SX+coZpy/7UCLWt83yaulAU80TU+TlFbKmvKEXCkR5oBCLYK7txCvRv+mUCVxbUy9T7N3BwBbKtlX2YQeyFd8YGJh82UAmW6R+TJA2QYSHEjdt2CrTmUZxDAJffKY6QxxAEsGZAjrs399dIXIvhq9OdIczZjboFcfg== 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 PA1PR04MB10889.eurprd04.prod.outlook.com (2603:10a6:102:491::11) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8398.25; Tue, 4 Feb 2025 12:42:15 +0000 Received: from PAXPR04MB8459.eurprd04.prod.outlook.com ([fe80::165a:30a2:5835:9630]) by PAXPR04MB8459.eurprd04.prod.outlook.com ([fe80::165a:30a2:5835:9630%3]) with mapi id 15.20.8398.025; Tue, 4 Feb 2025 12:42:14 +0000 From: "Peng Fan (OSS)" Date: Tue, 04 Feb 2025 20:41:14 +0800 Subject: [PATCH v8 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: <20250204-imx-ocotp-v8-2-01be4a4bb045@nxp.com> References: <20250204-imx-ocotp-v8-0-01be4a4bb045@nxp.com> In-Reply-To: <20250204-imx-ocotp-v8-0-01be4a4bb045@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=1738672884; l=9163; i=peng.fan@nxp.com; s=20230812; h=from:subject:message-id; bh=IwvgJVXLT5aU/bv14bty/b3x/EdTuTasIiBLOcfQxE4=; b=KGoIyodJpc+tVXbzD5Ty17gVKr8ozCiEJTdzQB5NGngd3cdSucx/PebKdDgZQNXOzu9hrqNZu Z0jJPtMf/GmANlBkClMR+yNhdNrNuv4pntNMgk3KyJtaxRuAywQQlEy X-Developer-Key: i=peng.fan@nxp.com; a=ed25519; pk=I4sJg7atIT1g63H7bb5lDRGR2gJW14RKDD0wFL8TT1g= X-ClientProxiedBy: SI2P153CA0013.APCP153.PROD.OUTLOOK.COM (2603:1096:4:140::12) 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_|PA1PR04MB10889:EE_ X-MS-Office365-Filtering-Correlation-Id: 8a44adb6-c6cc-4fdc-0716-08dd45195a45 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|52116014|7416014|1800799024|376014|38350700014; X-Microsoft-Antispam-Message-Info: =?utf-8?B?REFZWFg3RGVZZGpvdXRSMFJWVTcxbXIvRVJRWHRVWnV2V2N3Z0dVTFVqdzBG?= =?utf-8?B?Yy81cVoxbkpHdDhjK3hJc213c0NraC9VQ2trYTE3aXExR2JjWm9rY0srZDVU?= =?utf-8?B?MU5acnJFNUVQTWppY2dQWkVUR0NFSXpvSy94QXRpL28xZGtKNldTTjdXdzAy?= =?utf-8?B?cTBneU1mUkNvSEk4UGxteUF3WjA5VmJZa3J1ZlFXQXRPMVA1RGMyOXlqSHFv?= =?utf-8?B?SVB5RElQMFEzVktGTW94Z1RZeWNjN0xYK2hHdWNDRWZET3dIZjVKZDlQdFBP?= =?utf-8?B?TEljeC9vQmdrNE53dkhIV0x2bmFVNWVYWEJmbFJ6NlViZUtjWnBkbzI4UVRp?= =?utf-8?B?ODh1QnpyemNwSnFxUlg5ajFBUER5b1luTG10bWQ0eVVvUlc5NWdtYzFkYjNn?= =?utf-8?B?K3k1OFdCQTBXTDFQaGNaendxOWdxaWpSdWFjeFhWVVo0OXc5NjhaaUdvYU0x?= =?utf-8?B?TjNCODlsTDE3VTQvV0hBaGYyYTREWER0VWdWckU4azExcEVCOGY2MEdnK1N5?= =?utf-8?B?MkVZdFFzenlVZXVURGR6eS9CbXpEL1NwdlpHbnlZM3lsNlJSSWRWUU84R1Qy?= =?utf-8?B?a0ZlUWRoYVhpWk1pMFNKdHB0RDh4L21yc2lNRDNnWnF6N0d3dnR2eHA2Rm4w?= =?utf-8?B?b0E0bUhPaHJKRGg4YjF4cFc3d2FvamVvMVNUL3pDSDBBUEFlWU1XWUpvdmdk?= =?utf-8?B?S0FCYUVCWklpOFhxVGFZcEVVTmNYc3dpNnNTTE0xdEo3eFpoaGE4Vy9UOEp3?= =?utf-8?B?cC9DL2lnaEgvVHRzZ3p1WUljSDBxRTlqMDJ6M2tDZCt2Rnk2dGI1ZTI4UUpT?= =?utf-8?B?N3QyNFNVSUplcEE2SFQzWVJQSG1BRWd5ZkdXUGlRRGZGaHE4QXVFam9hYjlw?= =?utf-8?B?dWFoT1MySlNnT3AxVEl2aDB2WWtValI4YmdNQ3NubmEzT2had2JzcWFFUjJK?= =?utf-8?B?czhCTldXNTRvU3JoOEpLY3NPd1dCMlliZVNUWExZT0h5OGs2aGFyOWc1SjBl?= =?utf-8?B?YWNFc2RhVjlrenlYYUxWVEY0akhlTDNpQzZSbko2bjMweVRwRmYzZlNQTGFy?= =?utf-8?B?bkFLOUoyQ3V6UXl6TVFxR2tYTUtvWlluRWE1R0t2UWhxeDNqczhwa3AvaDdi?= =?utf-8?B?OVptREwzOVFKZGMxMjZuVXhkK21KMUR3ZjR2cTdCT2hLeFg4aHRrSENOVXl1?= =?utf-8?B?RGJYNVROcG5jVnlvbmZRMG1uS3MxOFFoaFFab09xSnNZK2RhcXI2aFNrNlR1?= =?utf-8?B?SWNIa0c5N1NaY05PS2dSY1dRSFBoZ21MSmFiWXdyanVoREN6Rk8zRFZMeXk5?= =?utf-8?B?VlRQVTlPSVRHWFFnWmlXbGJ3KzdUZnlybklueFR5OGRRTi9hc2VxWDJtR1NH?= =?utf-8?B?YXVyV3lQTTY4UEIycU1LdzN0eTY2dk45QzdWK1N6L2QvZXlJUS9kZmZnVVlD?= =?utf-8?B?UjZYVHFHZDl3TWxSVXgxbjB1cmk0cWovcFV2a1FOYTZnOFNUK3BIUVcvd0E0?= =?utf-8?B?WTNyZmwvQVdLL3hZM3BLVjNxeWtSdmJyNk5xUW1XUHFISHZTRGtZVndORkNK?= =?utf-8?B?ZDJsSTBLM2JZNWdzNGtUdHAxL0QxYnl0eWYzNHkwb2o0Mm9MT1ZtQ3RBdlB4?= =?utf-8?B?YU9xTmxzazU4bW1lcFhrRDRFeVNtcTNvM1M5NFd3TjRQOC9RRkdhRG03NEZk?= =?utf-8?B?Ry8wbXRoeGRSSWkzVGZaRkRKdzNrUlViSUNHRHZsUXp3YVl4T21KV1YwdmJW?= =?utf-8?B?Ky9xcVpSMVJoRXdUYmt5SmRBRzhheVlRMUJlbEdBZ0dUMXk5SWpMS0cvY01t?= =?utf-8?B?QlJpbzBib0Rucy9KQ2V1YTh1UTlXQlZFUmRIZ0hWeng5U0NnMWZzMWVlNk40?= =?utf-8?B?L3ROMTZUdllaSko5WExNZlJzRnJQT1hYY3ovcUs5WFRwS0ZvZ2VBbkhhbGxx?= =?utf-8?Q?ZxMDQHUmEJfQXAY0RbVj6u++P5pfRSso?= 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)(52116014)(7416014)(1800799024)(376014)(38350700014);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?a3BJcWttd0RSZE9hZmxLaU1XSENsejUwbTEvdndYdk9WZ3N4WkVYUGRmU2N2?= =?utf-8?B?aDl1ZlgrdXR4WWhlRHc2c3R6Z09tQ2JYNzZQbDZ3cVJRVU1zalVpdUZsdFRH?= =?utf-8?B?M0hGZWtXVm9KMWpBaExYT1M1ZUNHOTBmT1NseTRxTEVyN2R6N1dJcWlBa3Zh?= =?utf-8?B?NmJwYi9YNGxvKy9KR2dwWDZwaWZhdjB0WWJWMlhkTEN2T2ZTU1c3K0c1OWN2?= =?utf-8?B?Z2czTU9XMHhkNFRqeDRuUG1sd3h0eGFZTFpQdFh0d1ZWc1h2V2NHbmlWNHlt?= =?utf-8?B?NDI2UWZQQ2FjRnBwN1NIK3Q3SXZEdlRDdjdGdUlsMTFpTk9hM0ZVejM2M0VD?= =?utf-8?B?djQ4Q0I1bTFPYko2MlNNUVpXMFdXTHh3OVgwNnk4SGlzY1F1dlF6THovWEw5?= =?utf-8?B?MUVOWjdKckpKTEIrck1mNTN0UzZkcHJITEJFaXpMaTNnVEp4bDBUNFVqZGJR?= =?utf-8?B?NXdhbzhJTHRrQWE3QjhjN1BvejZHRFV4MjBkN2ZJcy9qcGI5ZlhFNXpQb3lR?= =?utf-8?B?d0VwU1pQb1IrZVJCNzNOa1U0RGh4eVB4OXBoQ2pEVndwVnEvbmdXd1hHOWpB?= =?utf-8?B?ZFF2NjROSTVVOFdNb3VFUTJqZEJibGNtdkdxNzlHYWx4SnlJbXdQTGl5WVNG?= =?utf-8?B?ZWtNNy9uVDFLUURncUc2ekNUWjcwNXZWTGNqSTdSMnQzYmMvQmNrbEpFM05n?= =?utf-8?B?Rlc1ckI3cVdKQm5sQkNHV2VvdWxFTkkrU1N0ZXdGQ1JUcU1YOGx5d2lmRzlh?= =?utf-8?B?dUV1dDlJL1didUltdWNpd0k2V0I2Z1NzdW5DdFNKT3l4TjlqRXBDZXJ4MFRW?= =?utf-8?B?V1F5Kzd5VlVxZWQwZ0ZlUmdYYm9GSnh1ZXhGczFvK0tzT2dxSDFPT1lZQkpF?= =?utf-8?B?d0tibmtuSmFJWlFQSFRrNklDNnpBTG9aRldjRU9qdHlFSlI5SE5paWF5VllT?= =?utf-8?B?QXpEdzhCKzVUUTJtM0liT3BpSmdwejU5WHVxZysyZ1lCVXFDZ3h1c1dGRUlO?= =?utf-8?B?WFNuUXVWS09QUWV3VWJrVUx1cVdtRG1QVTNISk1QOVJUTWcxbkRDdkIrUTVD?= =?utf-8?B?NDlNdDV5S0UxMWpYaXhReXZMaVFhOHRiU01SODRBOCtmTk80ZFNxVkYvck0x?= =?utf-8?B?WWE5UFdCcmZ3K2Q3UTFUZU9LL3M2Uk5pV04yZU1VVjNqNngvVEF5MndhR2tD?= =?utf-8?B?NmlvUFBJQWVZQ3hFbzI4SzlHd3BDNEhjNTVuOEVrcnQ2SXpHeHo5TEhST1I4?= =?utf-8?B?NUJpNGM2dFc2ZzljUC8wNjN0Q2RXaWt6Z0pwNk05Y0RtK1lobEFYd1E0ZEY5?= =?utf-8?B?SWlBUldGQUVoVkliTFZneVNpbDR1M0dZUkJXbW1rSGRJZ0NsbXdPUnhyU3U1?= =?utf-8?B?eERIcG9ScnZ4OEIweE5jZVdLdlhDdVNJYk00THRMVnpOemhRZVd6K0w2cllU?= =?utf-8?B?RDJIbTZZOEJTRjdQNEhRMEtza1BiK3V4cEJaeTAxUzJDdDVpTWpUdG1PZFZC?= =?utf-8?B?MG9jZ29MbWlDZ25acHBVaTVwV25HRXovbHBtcHhjZ2FseEFRNzV6MWNlL3Bk?= =?utf-8?B?L25ibjJIdTQyNkVkVkExbnhSaVFQNCs4ZldJTFpxc1FDb29CeWhCdHgzbHpN?= =?utf-8?B?a0cyOXVvZm9XckpHSkVjZXYybHlac0RWakh0QUV1VEFtNmtzaENPRk82R3lz?= =?utf-8?B?R1FWM0RTR3l3RG5RY2NldTlzU1ZBYm11R2NxZUdLSmRuS1FFYTlsMDNhK1F1?= =?utf-8?B?K0tybDBDa0JSWUZ0Q3VpbWxzVnRLMFF0THlrQ0JoMTViZXhrbFNvZWN4RThX?= =?utf-8?B?dXhkY2pSV2xLYnlrUXQweWNZZmc4N3hYRmZUVlFnbzg4VXJRZlNlWktLWVd5?= =?utf-8?B?VmNNMmphR0hacUhlNHRyT2F4N0d4VWFGUWFKclFGd3FIMnE5NmNHaXVSYkFI?= =?utf-8?B?eW83eVNpUVVzL2FZWEJZUUdweEVwaElqd29xbHFnNDdhZXgvbnJhNWJRTXkx?= =?utf-8?B?NG1EYkJMNVNQQ3ZXRHpXYWxEakl2OG54alV4VEIzUW0rU3lOWC8xSFVvMnVL?= =?utf-8?B?dWF4QjNEd3pXL3p2QUtCODVFSm1KbTJ2OXFMQk1ZWGhaQ0JYUnQxK25yL1F2?= =?utf-8?Q?EG/NBLcbR2skNg55iTFBqqKBh?= X-OriginatorOrg: oss.nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: 8a44adb6-c6cc-4fdc-0716-08dd45195a45 X-MS-Exchange-CrossTenant-AuthSource: PAXPR04MB8459.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 04 Feb 2025 12:42:14.8982 (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: 2zUD0GY7TpLo+q1tp3XvcCT7eq8bzSwdquSILYlWCbIuXSJplcgtkAgxVc2ozLazYnDn0jFo6TQAIxbN/uPSxw== X-MS-Exchange-Transport-CrossTenantHeadersStamped: PA1PR04MB10889 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..fe243e4d3377e98a21f660ebad9= 2dbe9bff94330 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; + const 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 +static const 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 +static const 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