From nobody Sat Jul 25 02:35:47 2026 Received: from MRWPR03CU001.outbound.protection.outlook.com (mail-francesouthazon11011063.outbound.protection.outlook.com [40.107.130.63]) (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 3359042587C; Mon, 20 Jul 2026 13:36:57 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.107.130.63 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1784554618; cv=fail; b=ZyPDkcRKZhKhjzJoHLL62fKvr/OjP9ljDM7l5xwcpDQA+ziEYPAtsFBmQtU3aemBbSGpLeFIitferQcdPejXgpQocaYKxz5WRYXZI7m16rBTR20s2CqgwvDKSjER12pMEjqE8zFRi0iLspXWBb1uK4qKaz7j6/yyBNkQ7iwRANk= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1784554618; c=relaxed/simple; bh=dU+f5Pg4D9zMuvMxGOEh2uvS9kOabbAYg6j2hW4ybo4=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: Content-Type:MIME-Version; b=oAFWW9txaZCLLSYOcZ1KkrgmyeVQ62lh4jEnndwNUn7RXQGSvIJeoCUZ94hdQreFiKP3HbfrTmE/0eEb2Wpg4rN/AuTBzMDdYMnORDLSQWzLfnM2KnWMSU8pxvG32f4I9oMLKlctY0QlpEUx2Dvz0YXNZ7Ox66qW3YH97PaTazE= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=nxp.com; spf=pass smtp.mailfrom=nxp.com; dkim=pass (2048-bit key) header.d=nxp.com header.i=@nxp.com header.b=hHLxrZbA; arc=fail smtp.client-ip=40.107.130.63 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=nxp.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=nxp.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=nxp.com header.i=@nxp.com header.b="hHLxrZbA" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=pWSB4BQdgomiqoqQaM9nJY0+tBAqIEtNOWdEP4P2JH9jvBjcsY1yqLPSdkBJTu13ajOU1M63ws9oMCGVEDwscYKg2Xj+hjiYIBVOG6gOcQEuRz+f/M7+aObgsKqrA6HPOApkMBrSMvvRVcxSEOUCsNi+lYb5OyTAPe4xWHSuIMBmucWxSUXl8hDhVBFQ6+pCPj0SzhavW1FskP79Rfxeeqexkp8YIanjp5OHDsjZSe8gMDrb9LECw9StC4EQxvCWCNm4ay2T/Kxq90KZycezZ9W+0e3oGcuJNnX1uyMIziKES63a6ASOfGGT9Zaf6Uc1TwwJmX2nhE9DX1cz/pmz/A== 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=Wgozz3iY/XFOrlVr9tAxyaSXAHbOWmgv2RPOTYXaPMg=; b=EXERs/yh9HHFY6KK7diMJxeeNU+UJeTlgOyl1C3fWDy9nDlF4VUg13xGoCvYLBluGrhnE+oYmp30IVTvK6ssxcCPNmw8lBzxbEaCe0eMPXuiNKmGcJx+S98EVWl/2LPRxIMxooI5jc+zubW+FGxxVzS8F3tTDK9OBfY3TDNi0tPqToU/gl1hjytPcaO7jLvk5SFswQRKljVa9MdGhhRWsG6/S4hHV8vQ7EJ7X+j7KcWXmjocVDBEH003e/WmWFBrjRq6MIFiY0kcDwL4WcGj0a0wN0iS4+T56OG+cCdIE0h+00zUqPnrSGJ1yekg979+vesEp5Tk39fm4V6ClIHGBw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=nxp.com; dmarc=pass action=none header.from=nxp.com; dkim=pass header.d=nxp.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=nxp.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=Wgozz3iY/XFOrlVr9tAxyaSXAHbOWmgv2RPOTYXaPMg=; b=hHLxrZbAX5ThUo3A4K89wVsJGP+Y7Z+xWiVCtaDQ0E6Kys14eTNAv37IwvEF7dYPFrUTPfzOAKNhyAoGJAqPqf/C82/JWW40019xFVft0EuOM0ezQHLiFRdlJgc11qNq8WmuU4nOuRHjb4si70BEhJFPwuKx0bQCMQ0vJWu1nponARzZpV1MhnbT/xF6Fx9IyTwLq95fqFPOwidSYd1rfDoKKsOK/DkOdIJ5UHpO3FtGb3RMhYir0tlcHmwquMUDZKj0bWaCPuQACYb6i6WXsC8wSABwYGiM8KWang2kASD2/Wr3k6VXv+OFQ8MDroC3U2fv+zMdWjTy3B9t68jcng== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=nxp.com; Received: from AM0PR04MB6900.eurprd04.prod.outlook.com (2603:10a6:208:17d::10) by AS8PR04MB8626.eurprd04.prod.outlook.com (2603:10a6:20b:429::5) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.223.18; Mon, 20 Jul 2026 13:36:53 +0000 Received: from AM0PR04MB6900.eurprd04.prod.outlook.com ([fe80::7fda:8431:ca1b:b023]) by AM0PR04MB6900.eurprd04.prod.outlook.com ([fe80::7fda:8431:ca1b:b023%5]) with mapi id 15.21.0223.017; Mon, 20 Jul 2026 13:36:53 +0000 From: Vladimir Oltean To: linux-phy@lists.infradead.org Cc: devicetree@vger.kernel.org, linuxppc-dev@lists.ozlabs.org, linux-arm-kernel@lists.infradead.org, Ioana Ciornei , Vinod Koul , Neil Armstrong , Tanjeff Moos , "Christophe Leroy (CS GROUP)" , Michael Walle , Shawn Guo , Frank Li , linux-kernel@vger.kernel.org Subject: [PATCH v3 phy-next 1/8] soc: fsl: guts: use a macro to encode the DCFG CCSR space Date: Mon, 20 Jul 2026 16:36:35 +0300 Message-Id: <20260720133642.136324-2-vladimir.oltean@nxp.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260720133642.136324-1-vladimir.oltean@nxp.com> References: <20260720133642.136324-1-vladimir.oltean@nxp.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: AS4P191CA0018.EURP191.PROD.OUTLOOK.COM (2603:10a6:20b:5d9::14) To AM0PR04MB6900.eurprd04.prod.outlook.com (2603:10a6:208:17d::10) Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: AM0PR04MB6900:EE_|AS8PR04MB8626:EE_ X-MS-Office365-Filtering-Correlation-Id: b292f0c8-7b15-4b5d-5e7c-08dee663f5c6 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|376014|7416014|1800799024|19092799006|23010399003|366016|22082099003|18002099003|10067099003|11063799006|56012099006; X-Microsoft-Antispam-Message-Info: oFsbwtCClYH8IBiJf/dADNgDuNCv5zvM+1k2Tq8W5TS4qlxxdcPjLEGNluHxg9ligpA3b1wkGQGlGIkbBLJe520dgSh0ykssXWNb+ls5d6HTS2pLLyzuvrjWjnXqmsJCI2ATxN6Sb+tou+/0AulrBB1r7QL7GjZFDX14U7KiSxH3DuNujgMyDnOAJrr9NhrrbVTsnzNAqHla5g5ZLThqlHFzmxuOZbgr0mnX0L2CjXzY0y9crjDIG26uHkuIRoHcb/EermvVO1fvF3Ln/XGfnKsyWvvB2ZffFlmNHMFahvjSMwGclmYU9Fkd5p1KfA7G8y/TRLtW9TodbpXULgiokxU+mmGGCWa8K2Md38aHiJf6Eshe0gr5Ze/SgmQZ7Trit6I8clydxDjQevyVSYgJikfB4/VySep3YQhxF9F13R+pjeCtQ/U5JIKyAPuO+4hResmpG+WfGEN0bLLqIywIZ+PfzLcOGh5hCWwmBZ9e0GhlsoFbZOv+XK/7GNvRcVGsU/xKeYbYpSfy+stQdFzmecGuCqO/CPnHBSQyyhRXRdmA69V+GvX3HNcUYK8OWsTwle3e7/WDEqEVhkyI4frLg8xlwxVzKy5wx4QyyipaTznr7eTQA2CpeCGB+2TsVC3d/pMx2z/EFvrVsyxDlBW6xwNeq9MTLYs8wj1WOFUiXb0= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:AM0PR04MB6900.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(7416014)(1800799024)(19092799006)(23010399003)(366016)(22082099003)(18002099003)(10067099003)(11063799006)(56012099006);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?BQoqqXeFUgsRNKov0EzNDrjZT0SDoW8/xHNsNlzNzRFSu7Xe6MsHxOFNpBIj?= =?us-ascii?Q?46X1aeEcDpKkcxfC+Ggj/4Dx2xeEO3C/MCNizR41VwVz0geACW76fx1pkS/t?= =?us-ascii?Q?LhrKoDwlWcq6aS3Gohh2+Ae43DNea/fwq+GORAgr/P68GG8Y6/IVzjR42JqO?= =?us-ascii?Q?HOahMup+7CF4Xie0OO+7tDB2+D/XHariECNqOIccaa7fDPdC7PFLJAnheYF1?= =?us-ascii?Q?35+YwLtioR3Jp3iIPg9dij/o7IjkPKeiNSDwqzo66Fbu9atNIiU0yJcw7eHC?= =?us-ascii?Q?du2tbGh5clAepZU5PhIJwiPjad5f54QqWlVhSKQ1ZrLkrclphVXO4ExRhu+C?= =?us-ascii?Q?BLdlMq7g+d94ffwnBBO8HltbrNEI6RegMM+4wt5Hg11uSHWj7j6+xd77gAWt?= =?us-ascii?Q?/lEnG0QZfe2axU9GuVSr+Pg74eb3gR13dJK6CE3pXih1P4twUIGJt3J8Slub?= =?us-ascii?Q?s3strWfI7y1GQ6rwqqlJb9xSCbzPj2COqsQttPe7bQqqitMew27XBAgGVAqM?= =?us-ascii?Q?sREFigAY/J33JFPPIOzHwXWWiVgBnUXbQfD7HQ3QbQEd1OTkK+vnnXIldq7y?= =?us-ascii?Q?snP+vpOnkSmT2iyt0J8hhQaWC7+Haqwm9Ng/h2e1OnpqX3C1TErrsYV7UurR?= =?us-ascii?Q?bVXWArB+JYd6A/5ji8AvsKp4pFiwGVKlf/rSxFNyXVCCxvkY2l/9t5Yg+c7l?= =?us-ascii?Q?qRSmaKkrwWdYzfoVx5yGz9m+8kLp7/Lx865AiVHrlPJMyzhkxMRTnC+rcQYE?= =?us-ascii?Q?0y1jhCCGOo79O+ZTcoTQlkClzZdYsgP1qwX6pozHnECm8dQHF/QDTZxJMNSg?= =?us-ascii?Q?KCG7E/sRNCb3TXhii5qUrWvKEgkUe/4LGQLzlLS/o8/IaaM0za750rvM4wL3?= =?us-ascii?Q?2by9eaCvbUmk4S8vvkwq0kAgZ/nMWpO2BexR9BDooIHecLTWRmFNx1IcIy/4?= =?us-ascii?Q?8D01UsZ8cXc4o2VqZ3E9jGVPnxMagMEuBhn+Vq0d43XibUL37H/d/G8yaCCq?= =?us-ascii?Q?sC4jR0NIFBb2qTZ+ZrpxTGP4RvaKK2wzi17cMpH3NOv4WhUwsm8vnj2EuSak?= =?us-ascii?Q?0fJMkF8Fek6FcYIygiAYu4Lbvv0X5RKGgpLoMdvv+7oa21V4PIvVCboVfDhv?= =?us-ascii?Q?HLhvcvE8XU2Zb02huK6oAj9ABhnsYdVeCZr6BBEDnV8hMhjewLXI+XsiX5Yr?= =?us-ascii?Q?v7Yl12W1/HajZEY9K9zdkv1i+kyzcgkBC0p34ICYdTANNIzX7rd1WnGElfHk?= =?us-ascii?Q?xVd37ruOrMCpGplapSdA+6C1ONZnxR8fAr69S1lsifJ21K8G3Ot7tDsGhgaV?= =?us-ascii?Q?gRzh9kIjTW/Byh21O49nHvrrKeDz6lOciqgcIH+MVpo2D9n4bSg58bqcrDpm?= =?us-ascii?Q?rGFWDZ9+m3UYawO6H/3xMd/qyjubanROEqdTKGlv+/SkUkfonGC9nVoJ+Nt7?= =?us-ascii?Q?6bCT3KnvfcwBPgEGkUaMsv1AEkEorkyTIGsmkAU/CrNMvJijQWTjZC1cKBsi?= =?us-ascii?Q?GVELJLtvnOr7EK/qZiCkLa739dSKCaJljdCRvD12Pc51pqqriDczBvpvUEJD?= =?us-ascii?Q?NW66SulEsFGLneWTNoUClmYb3PfhAneH+Yu4XkI/rxL2/uco6uKl93XkkddS?= =?us-ascii?Q?zOI9McdNqwPlhXI3dZAkRtxLnwFYSKe4jlaiXUslTloBSp8FCpoyZuSMmh96?= =?us-ascii?Q?quSB+DXnQmDesZVFrXYP0xih324TS6dqY2E1NO5y4AzXlFMv/3eoET70miYo?= =?us-ascii?Q?WQit3ffAvQ=3D=3D?= X-OriginatorOrg: nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: b292f0c8-7b15-4b5d-5e7c-08dee663f5c6 X-MS-Exchange-CrossTenant-AuthSource: AM0PR04MB6900.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 20 Jul 2026 13:36:53.4008 (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: xqcswZuwa0riEE4FCR9hIyAz85WUljj6fFkI3iVz3OCEiW7dXS7FK5Ii//DVi2tGK+eh4nbvEWqAZzDjq8qmRQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS8PR04MB8626 Content-Type: text/plain; charset="utf-8" From: Ioana Ciornei Instead of using a hardcoded value when iomapping the DCFG CCSR space, add a new macro for it. The code will be easier to follow this way, especially when we add support for the DCFG DCSR space as well. Signed-off-by: Ioana Ciornei Signed-off-by: Vladimir Oltean --- v1->v3: none --- drivers/soc/fsl/guts.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/drivers/soc/fsl/guts.c b/drivers/soc/fsl/guts.c index 9bee7baec2b9..f87ee47c1503 100644 --- a/drivers/soc/fsl/guts.c +++ b/drivers/soc/fsl/guts.c @@ -14,6 +14,8 @@ #include #include =20 +#define DCFG_CCSR 0 + struct fsl_soc_die_attr { char *die; u32 svr; @@ -197,7 +199,7 @@ static int __init fsl_guts_init(void) return 0; soc_data =3D match->data; =20 - regs =3D of_iomap(np, 0); + regs =3D of_iomap(np, DCFG_CCSR); if (!regs) { of_node_put(np); return -ENOMEM; --=20 2.34.1 From nobody Sat Jul 25 02:35:47 2026 Received: from MRWPR03CU001.outbound.protection.outlook.com (mail-francesouthazon11011063.outbound.protection.outlook.com [40.107.130.63]) (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 C84E24266B9; Mon, 20 Jul 2026 13:36:58 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.107.130.63 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1784554620; cv=fail; b=Dc3BpyBVek7G+0UAq70l7yuLAV9oKHdXsIB7C3Z21j4mJsRqznGlXfW9Qze5MNntrutLSNWjx255GICc8mqr0zoDjwMcSf7Zy1EqkxYqpSorbqD7vua9gQka5pyRclXA7zlZyS/VQKf+tL7f++zJp2JpRhdSPuRiVhf0wWEoMeA= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1784554620; c=relaxed/simple; bh=STH8Y3wi34dErESd2V/MFROQ5qEmuxk3Z834VKYHmkI=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: Content-Type:MIME-Version; b=IfsujUoVy5w3pyS4F4T6O2SMtwR9vgMQRqROBsgZleHPm73e/fcLePYTpudA44i1BYeAz7eWk51uu76kFCEqCJa/MMVOwrVA1/zMDovUwsV5ARWWX7Uai3sMpJR/QKyNtu7WFsGWMs94yb+FQ9JuMNa8VYlFR7D5wmoCwotEcsU= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=nxp.com; spf=pass smtp.mailfrom=nxp.com; dkim=pass (2048-bit key) header.d=nxp.com header.i=@nxp.com header.b=H5J+1IDu; arc=fail smtp.client-ip=40.107.130.63 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=nxp.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=nxp.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=nxp.com header.i=@nxp.com header.b="H5J+1IDu" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=G1l9e85rsBT3CVV6c/8N3fvfnc6f3LreQobGPf65bclRnHjkX5/IlSEAsf+bskwtbl9HkR8jo38EI2d0biedqD3LXqvvmbluUyD+ABQvSVLk7mYWuSbpVtJ/E/b3dpt0bYPXLqANttbvpUhGJzE94+4H42omk/n4lbbaaHF2A4sl9Rw19eTZYkbhZdfJUSvBI2ctX0EJt9lCjTSdLbiuAqAXjPEaBZ4C2R0PPCG2ZbR0Utd+ldrVypu17abLtWthdyPthHv8zMPAYHyj8mdPxS5vZqAf6JschfuxNBSQTgoF6ScSbF67FXV8KBnlHJIbDWtUIujx177qYuIS4932RQ== 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=hmMiNXxAL6fAFXPRuZK0+CZC+L9jBROLfUUCCbZFKbg=; b=OKM7CHzZ3Xz/mrW1WNH1rEVc3Gb6NVbdlVHDobJ85iw3A0Hl+e8xptosqsT5PKdAEE1QYk9juZ5A7rNqVo5CWPq2xDeLCQnSC+7fLBbZXJbko2IbhnqgSZIXr5eTYlqlQpFSwScV1TTxCqWFThljDzieT7LASzIA6OSyoFmkHqUpOUcEUY0o3U9vZanzzFUFE0Y5CkvouSB4HoyK9uQvlvKMblA2s6iRNoFwPhNyv910zNoXl23Wdulw3QQp5EPv0ynEy3Q9aVQAFSPINwzJIjBGw++KNHVCUy2T5xNK3HLIAvxf31/x+uxbmMJjRUKNnLj4TVK1QDRaCCqswFnxEg== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=nxp.com; dmarc=pass action=none header.from=nxp.com; dkim=pass header.d=nxp.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=nxp.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=hmMiNXxAL6fAFXPRuZK0+CZC+L9jBROLfUUCCbZFKbg=; b=H5J+1IDuNoQt0Ib4kZ0ARhcOmuvtAkNQ4Id5UPBZMruryIMKJRHROygZpEYr//Oa30LA60EzW8QyaAFL9jU6nRr2p8Q7q22QB9S7A3Zm+jPMZ/FwqluyICow+TaYk/ND5sGbPDFe4uP/uZp5Wojr/F42g5m+u90HlHRFwxIK0cs1Tpk/m2EgwBQjNTS3ac1qMA2dLPassanI25MKuUdnRw3vTMRKix0UU1JKfu6hVtpT/0LJB6wjj7591yRxvus32faZxoiuQiKMTLsQuZFYC3Op4VrJ3EM2NpJboOEox84e1ZG1bqqlS+pTj2MM1DYNMqNCbBBXoI3OsNcg6djONA== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=nxp.com; Received: from AM0PR04MB6900.eurprd04.prod.outlook.com (2603:10a6:208:17d::10) by AS8PR04MB8626.eurprd04.prod.outlook.com (2603:10a6:20b:429::5) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.223.18; Mon, 20 Jul 2026 13:36:55 +0000 Received: from AM0PR04MB6900.eurprd04.prod.outlook.com ([fe80::7fda:8431:ca1b:b023]) by AM0PR04MB6900.eurprd04.prod.outlook.com ([fe80::7fda:8431:ca1b:b023%5]) with mapi id 15.21.0223.017; Mon, 20 Jul 2026 13:36:55 +0000 From: Vladimir Oltean To: linux-phy@lists.infradead.org Cc: devicetree@vger.kernel.org, linuxppc-dev@lists.ozlabs.org, linux-arm-kernel@lists.infradead.org, Ioana Ciornei , Vinod Koul , Neil Armstrong , Tanjeff Moos , "Christophe Leroy (CS GROUP)" , Michael Walle , Shawn Guo , Frank Li , linux-kernel@vger.kernel.org Subject: [PATCH v3 phy-next 2/8] soc: fsl: guts: add a global structure to hold state Date: Mon, 20 Jul 2026 16:36:36 +0300 Message-Id: <20260720133642.136324-3-vladimir.oltean@nxp.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260720133642.136324-1-vladimir.oltean@nxp.com> References: <20260720133642.136324-1-vladimir.oltean@nxp.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: AS4P191CA0022.EURP191.PROD.OUTLOOK.COM (2603:10a6:20b:5d9::13) To AM0PR04MB6900.eurprd04.prod.outlook.com (2603:10a6:208:17d::10) Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: AM0PR04MB6900:EE_|AS8PR04MB8626:EE_ X-MS-Office365-Filtering-Correlation-Id: 4aa51dea-f1a9-40b6-1c7d-08dee663f6e1 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|376014|7416014|1800799024|19092799006|23010399003|366016|3023799007|22082099003|18002099003|10067099003|6133799003|11063799006|56012099006; X-Microsoft-Antispam-Message-Info: 7NR1j8ZUuBf1MQD0yDTZ1/w661n8yOpUFB4XIPpZIvqyomyQDklPuirteVB/aY+4MValAZRbX8C2Vv1wEQCRAoD+jgZ/I4C3S6TfZ5eHju5Fjo/B6mwlxXOabOnfbfMNeLrZ3YHOHZ3taJjKZw8Ce9auMn6afy4pY4HTgg1L730maZwWwSjhbyHXbP5izcSZUi9LbTk6J7xZ8Ex8LYqamZ0JnWE/65Y/MGUolSbbBJxMw3vnS7G+THGGt3i5kWYmjVIJ4szk5Il59KBEWn0ZTvV0gGLO07OzpIe2byq20qK9CvZIYjzM1ug3hCexF7D6i/jvGzVgINUMtM21fDGL7GhWRi9MYiZZosR65A7c/BdwhOBmokczEHrSSS806kdSkNHD7ohYQ+o/ptwyhGH0RVlXM3KB4AWrRIwQXvETIJDCvObT/D9LDYfu76BQFUoZEBWnWD2vMH95WWF7uU+tf/PNgRbNr5hS/+trl0shHqFycoXFP8L3Fr9wIpIt+wRCb+vaCSDpjdAL7xIHwPpWpjVIA1/IJZUdpX5MVy1bC0YbQ0vK1Jwjijecf/PtMz25DszENFRlawzfbLO7l9ouse8wW4EpFv2fViNo/90EOCj7455bby+zuj3UqguEZ5qfJ5lOo9ygB4dpExhsu+JrFm7D28JEYQSH8uQa4c4weEs= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:AM0PR04MB6900.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(7416014)(1800799024)(19092799006)(23010399003)(366016)(3023799007)(22082099003)(18002099003)(10067099003)(6133799003)(11063799006)(56012099006);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?WVqSHYF7EXBnS0w6/J2fr6abTe5cEhCHGY0XVd23puBXr0LyQ9FlIJBbV06W?= =?us-ascii?Q?QR+ZuAB1DwbQ0XSAxheFV4yEwZMPHSWi5KlJZUT7SYJBmNZlDLfbqbPTWiMX?= =?us-ascii?Q?spkYP2wSWadUoBX1Q9CDi5owkjRLRFh3RLKnEjA7ZVyfYnMrm0m+VVhXh0Bd?= =?us-ascii?Q?4DtU47Bo0vkEJZAVIietnGvjuPZd/uhCDpxmV/jMEOvSVphMKyRZASIjk7hR?= =?us-ascii?Q?5eMQhUOPsBinqC2U3gc81mB/iXYqZLFZdhsuu23EfLlLpYuJC60Qoydo91RY?= =?us-ascii?Q?Fl8B2ODrJj/C/n66dX2uCyIKZLHZJLKcVKmMu+4kM/bsOAgzBL3dF1qFbQUy?= =?us-ascii?Q?jKyc0bMtgaWlltaM0Ryl43byCsibiS0i3tuoJyZtxNd1MdsRTdepgd1q/Kis?= =?us-ascii?Q?5UGDCX+mvs2sc4Y4xiy45Y8xmowcY1DoHs1nWh6so5nFzA5MJwHC/AZQsC7i?= =?us-ascii?Q?vA4fCkpgy9O1F/TXf3mCvvLm/MON7p/K33hupse9sAN9Ap+sEKMIlxfUb/Pi?= =?us-ascii?Q?sexdHX4rId3MnFvZ9yvxlwed2msr6S4QFJ/yoIhY4RGmEeGvS33xornNO3IF?= =?us-ascii?Q?JF48ocRJ94zeiwOJnU+oCYfE/X6VDan0hkW4/pscBFQL0chvqlxx1m/DU6qJ?= =?us-ascii?Q?rljv9Y+G2Gdq9p9gjS+yQFyIjAVuOnnG3O+VxotVuFMWN9wRa9z+4KgSQ9a5?= =?us-ascii?Q?qN5UkBcENhPUIu3AkpbTduEfDZ9f8U0V5T1Ns1DS5H4hOhwmqbehJy1/guhK?= =?us-ascii?Q?xagjIjiDFOdXFTCv1MgU8g37Ow/hGB8LSESmno2KdcSDkWtK2QM3gBJs82kT?= =?us-ascii?Q?0pcLFep+2vP4vUa9MEZ6Ffo2cmycXgcP+uv/J/erE32D/fXgs2XRdlryRJ6f?= =?us-ascii?Q?7OhY/h1sO9447AuwgsRlsI2JzDVZTxqgte+mL9ahgMK1z+1oMxpdOcOgbDcW?= =?us-ascii?Q?hGuGd8pIei2uPMJBTSNXIUTahNFm7n4rf9sotghlX6EoMzsOh1OrclR3gbMe?= =?us-ascii?Q?WF+gvDzeMTpqOXep23eun7tU7RSfigAplpmErZ/Pod/Qp8xP4nm8mLvRkb0u?= =?us-ascii?Q?NFrgEooIcXqUa8i89WqLMpxaKkps3hFTwSp1Fsqub2RgUdq/I7eBmEwS240S?= =?us-ascii?Q?zgM0jR+wd7HMM6Lh4qXKjYxDNxEVytfihlt1Da3XpUpxAb0MW2TpYD8o5Si4?= =?us-ascii?Q?hZwdgP4bQfyxzcEVd70uPskazvG5M2JhSoeBnLGFZpUSwBJeT38rDakL7CIq?= =?us-ascii?Q?R44kcGWiFgYClKnlxKFp+8ObiauudNY/h4PUgxWd5TTDiWUQ9QWLN0pxAd0N?= =?us-ascii?Q?C+rAsDUc14rd5vAg9bcs7n9NUCxdRhMbpTd4C9BiI98qMKqv3GRVkC+UXJbc?= =?us-ascii?Q?LgM5Njjql6oqriSlXwthFgTAcvsqrewLJ7rs7wjNE4PrSsMWvmmxFz9UKvWX?= =?us-ascii?Q?ha2q3dOO4JDRVJYtmn2r4xXKq+VtsjzFhoLHweT0p8EAxs56qteYYDmXnm5b?= =?us-ascii?Q?exZxRdhmwQABw6vUSSqpQLeQlIw8KnL1e6sbMehLZxZU4Qh5U+ImKFec0dqP?= =?us-ascii?Q?/hvz0z96Ufp62ZkpCWUJP+PMe2JRhh0d+tPyLjdtA57eZpvAi0Dcj0ekN0KE?= =?us-ascii?Q?e+bR3C0lQDM/+QismNO95IiZOwG5EidZrZDV6qaJ8+ERfViDTA8wXpXbLp0R?= =?us-ascii?Q?tMG8EmK/3XSARjoRGeg/3Kec/+hXxniiHjNxIjr+2OniI7Q4WoX0ts36ru7h?= =?us-ascii?Q?mxhtqEGbQg=3D=3D?= X-OriginatorOrg: nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: 4aa51dea-f1a9-40b6-1c7d-08dee663f6e1 X-MS-Exchange-CrossTenant-AuthSource: AM0PR04MB6900.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 20 Jul 2026 13:36:55.2682 (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: +lWcS/A9u1ndJKIt1UgolA3nfD1dKdoRfOJuLUheJpzqYYm61Fdl+wZhAD4A7gFORCro+L6mRZa/E8kO/oBJzA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS8PR04MB8626 Content-Type: text/plain; charset="utf-8" From: Ioana Ciornei Add the fsl_soc_guts structure in order to pass information like base addresses, endianness etc between the init time and the runtime operations (RCW override) which will get added in future patches. There is no point in mapping and unmapping the DCFG CCSR space every time we need to make a read, just map it once and keep its reference in this new global struture. Signed-off-by: Ioana Ciornei Signed-off-by: Vladimir Oltean --- v2->v3: - fix error handling in fsl_guts_init() - iounmap() the CCSR range and set it to NULL on the "err" label rather than "err_nomem" v1->v2: none --- drivers/soc/fsl/guts.c | 24 ++++++++++++++---------- 1 file changed, 14 insertions(+), 10 deletions(-) diff --git a/drivers/soc/fsl/guts.c b/drivers/soc/fsl/guts.c index f87ee47c1503..a2b4c477b064 100644 --- a/drivers/soc/fsl/guts.c +++ b/drivers/soc/fsl/guts.c @@ -106,6 +106,11 @@ static const struct fsl_soc_die_attr fsl_soc_die[] =3D= { { }, }; =20 +static struct fsl_soc_guts { + struct ccsr_guts __iomem *dcfg_ccsr; + bool little_endian; +} soc; + static const struct fsl_soc_die_attr *fsl_soc_die_match( u32 svr, const struct fsl_soc_die_attr *matches) { @@ -187,9 +192,7 @@ static int __init fsl_guts_init(void) const struct fsl_soc_die_attr *soc_die; const struct fsl_soc_data *soc_data; const struct of_device_id *match; - struct ccsr_guts __iomem *regs; struct device_node *np; - bool little_endian; u64 soc_uid =3D 0; u32 svr; int ret; @@ -199,24 +202,23 @@ static int __init fsl_guts_init(void) return 0; soc_data =3D match->data; =20 - regs =3D of_iomap(np, DCFG_CCSR); - if (!regs) { + soc.dcfg_ccsr =3D of_iomap(np, DCFG_CCSR); + if (!soc.dcfg_ccsr) { of_node_put(np); return -ENOMEM; } =20 - little_endian =3D of_property_read_bool(np, "little-endian"); - if (little_endian) - svr =3D ioread32(®s->svr); + soc.little_endian =3D of_property_read_bool(np, "little-endian"); + if (soc.little_endian) + svr =3D ioread32(&soc.dcfg_ccsr->svr); else - svr =3D ioread32be(®s->svr); - iounmap(regs); + svr =3D ioread32be(&soc.dcfg_ccsr->svr); of_node_put(np); =20 /* Register soc device */ soc_dev_attr =3D kzalloc_obj(*soc_dev_attr); if (!soc_dev_attr) - return -ENOMEM; + goto err_nomem; =20 ret =3D soc_attr_read_machine(soc_dev_attr); if (ret) @@ -269,6 +271,8 @@ static int __init fsl_guts_init(void) kfree(soc_dev_attr->revision); kfree(soc_dev_attr->serial_number); kfree(soc_dev_attr); + iounmap(soc.dcfg_ccsr); + soc.dcfg_ccsr =3D NULL; =20 return ret; } --=20 2.34.1 From nobody Sat Jul 25 02:35:47 2026 Received: from MRWPR03CU001.outbound.protection.outlook.com (mail-francesouthazon11011063.outbound.protection.outlook.com [40.107.130.63]) (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 8C25D427FBA; Mon, 20 Jul 2026 13:37:00 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.107.130.63 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1784554622; cv=fail; b=t7u/YntmSBWlwbj44VB3C/35ZK66wMx8jD5jhmFHKa8+n0QssGmqEl9Sg/iA2p+fRlqngYVaMMNDPqTCYNUxYyEhiYrS3P39y3ML36LpekLSBVhj7JgvOHmy70sHSU0qiEiX7Cntmu2K/KFFLn6Zh+wWUTpWwE7fZNDctQ4+fBM= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1784554622; c=relaxed/simple; bh=6KGSFeXSDceO4xy5w1ekwlhGLZRMFG5Q3oR+4G1DZvk=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: Content-Type:MIME-Version; b=BgKmCmBY8pK1JTAWbHecSnvFeuR84mMF394Ckn0dhWrjdqrZNy1Be+wA+rsEAQ5SYh1PLV61XV7K1+c/huMZ5PKnXd7eMglxtLAn70uN9M10wJcmTL/m2AL2hU/SEKB0eLxnCgiK5W+R0tTht8bysC3eCHebDWuekSITRsxasFs= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=nxp.com; spf=pass smtp.mailfrom=nxp.com; dkim=pass (2048-bit key) header.d=nxp.com header.i=@nxp.com header.b=ROQxVezP; arc=fail smtp.client-ip=40.107.130.63 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=nxp.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=nxp.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=nxp.com header.i=@nxp.com header.b="ROQxVezP" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=uvseXg1Z8VmeVW/0sXiY6AZ7uQ5FyWaF2E5qnBR3eGBeEhdlwfOrgematjlBEE/69Hd3rpQyPxZwPb1Fxyu+YnE2080HDfKrKFUENvy9INOCge2+Q5oQ4z1msrGhvahJD392EG8zb+0YSC0LlFwXxW7W7XGWc1kRFhTrBpnnilgGPfHgp+PgFWu1bo+ev9gIvZf0JfSBB70TAdG6ORRk81YVoU0fzHhM7l5/zUno8kvQPuFUmqIueLFtwskd2zeCV975h7pFO5lr12UtSNrh91vbLt2Sr2H7XkwWAeoyAcrvdZlxxQJRFr/gKlo9knaaYxcq/hn4GJTRNFjUXqoJZw== 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=dQb5uExHGwHHvFNKj70dy3iWwcHVK0OA39j5yO9Ig6k=; b=nnHc9ZfAdzOX7Oyi03BdW2nD4Gz07PB7aBfApwnRfKJ4K50cSRB0E+S8uNflLzcyDo9N+g0CJsgyQIj8hNhd4nR2UgargmCCooRf0gFfbzeDjvGsEav2ShQ6BFjZvieMdTW9t1pLj7LUHt5TrtaGJ7hFXwLw9nMNXfHXGfhpzgNs4fYjOw9n1Y5KyhDezNzAPoz00l05VLo1hVnlMvJlF2HZqsbe7ii/iyFyZZJFZsGY00phVmLth5pGNUIdDVHvaKjbJPnGcnwrpTqQD+lvI0PWiLuIm6vnfvFXXgGt6273Efs8oNQCSA3zT9qZnyE6QId88XCIkj+XhLJ6Uztmxg== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=nxp.com; dmarc=pass action=none header.from=nxp.com; dkim=pass header.d=nxp.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=nxp.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=dQb5uExHGwHHvFNKj70dy3iWwcHVK0OA39j5yO9Ig6k=; b=ROQxVezPhpuvkgrxeadCJdGFFq95h4eVt15zDhO9co+gy0GzMZcviKR25oHvUG7btoBkDY225cL+IqqhM9mOyIi6974Zg+fZQJCN2iQmMzsjqqpK/PgTZaWFH4Ce/403m05fkGADoFIZU2GWyLWpcXlZsZcES9mkGCaCTsAmV15tSpka4pIBwnGVyuy2rx0fJ3ji37w6Gum0sL1fXz7xJrvNKbu55NVrA7cw8pFA42SI8NEk9gjePaVcP+Iw5vBRfYprAduMdWdULkp/IonVU04qGcEW8FRb8b6HSC04CSBRCcloHBb4hi6mqMgIDGYYtldKg2NBU4Q4NoFBnyXC5g== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=nxp.com; Received: from AM0PR04MB6900.eurprd04.prod.outlook.com (2603:10a6:208:17d::10) by AS8PR04MB8626.eurprd04.prod.outlook.com (2603:10a6:20b:429::5) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.223.18; Mon, 20 Jul 2026 13:36:57 +0000 Received: from AM0PR04MB6900.eurprd04.prod.outlook.com ([fe80::7fda:8431:ca1b:b023]) by AM0PR04MB6900.eurprd04.prod.outlook.com ([fe80::7fda:8431:ca1b:b023%5]) with mapi id 15.21.0223.017; Mon, 20 Jul 2026 13:36:57 +0000 From: Vladimir Oltean To: linux-phy@lists.infradead.org Cc: devicetree@vger.kernel.org, linuxppc-dev@lists.ozlabs.org, linux-arm-kernel@lists.infradead.org, Ioana Ciornei , Vinod Koul , Neil Armstrong , Tanjeff Moos , "Christophe Leroy (CS GROUP)" , Michael Walle , Shawn Guo , Frank Li , linux-kernel@vger.kernel.org Subject: [PATCH v3 phy-next 3/8] soc: fsl: guts: add a central fsl_guts_read() function Date: Mon, 20 Jul 2026 16:36:37 +0300 Message-Id: <20260720133642.136324-4-vladimir.oltean@nxp.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260720133642.136324-1-vladimir.oltean@nxp.com> References: <20260720133642.136324-1-vladimir.oltean@nxp.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: AS4P191CA0017.EURP191.PROD.OUTLOOK.COM (2603:10a6:20b:5d9::7) To AM0PR04MB6900.eurprd04.prod.outlook.com (2603:10a6:208:17d::10) Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: AM0PR04MB6900:EE_|AS8PR04MB8626:EE_ X-MS-Office365-Filtering-Correlation-Id: 31d5498d-690d-4d95-170d-08dee663f7f9 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|376014|7416014|1800799024|19092799006|23010399003|366016|22082099003|18002099003|10067099003|11063799006|56012099006; X-Microsoft-Antispam-Message-Info: 0qUoL2OyM91Oe6XmhAEHMsYTsfto8/BEzTHliNL+obqqt0g5oNRwYcf01tPX5SyiART05YUOgOWhyCxVhMWglGdGPLqdI7hLdC9OdiONom72qcQ+ZCzLfTYOav3qeONMaVrkfZXTCTphL0L0sRNLi+fsQ1hqfvvLarI1jHeELBtlPg9dyGw5eZ53WcomosGo8/IE/svGcyEOjG2uYxh7KV67NLGDi4P6ClS73KOxXIDuXZoYsA7+vJ5kJgYk4tLvPTHno8tcKHxsWs/jRvojj2UncWXAciKhURCy0amvDP3vRIDH1hHq9SajXunTyq5fhCV8SJiqvpbd2nvlV9PIUbeRn8AQhu1uAkeEHtyQfW/szJDcj3tqxN/G7qqP3IFayc65s49ONI6cBxYCxA8WzfPBNJ3gBLNXJF6MdST+nPvhkP6b9+CLcNjfydxZ/B1gJN4UekMutmLVhom1ABzIHJ2fUEKol9bNfHZRXOQF1QqyGGtMD5mUs53q5cwPrYGq5KiX2YBiZM5zi/IqJlP/Vkv2YyPfsXRufxQJdN94WrdW2fo/2aUq8DrD4lIJ3+1LuFW7+hUc58nGhMAEOtltZiWAK+7rsSqFJsnhvB2XGf0NWKBIBbQ9idIvZatZSD0Kj+6hc6oE9SiBVehmjQj9LQUHUrumEYwrAXgofnSVfEQ= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:AM0PR04MB6900.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(376014)(7416014)(1800799024)(19092799006)(23010399003)(366016)(22082099003)(18002099003)(10067099003)(11063799006)(56012099006);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?LhuzFpGYP0ecRUBrrpUoTCydR3ACIPx+Z3VdjgthO66PHHIjNCo8B6yBkMyb?= =?us-ascii?Q?P/yKIMQkncunVq5NLJL0KpMhZWGBryMJzK1Gyg8PKdwnxcDw5Yh6lxFy9CCg?= =?us-ascii?Q?WUbp/LT256TIJXp1L8T9MrUOZaEhdHSsPJenwPYUL5D2JAVyHUKqJ9aC7xzd?= =?us-ascii?Q?d5nxDvS9FQruJO+d0Wiapkay47rlJMtklM3ml7oAPKNobsX9wN7C9BRB6Hix?= =?us-ascii?Q?urzbTpfo2njKVqiCfBIGgVeOpnShk4OghsOltVV7tENlrVyaKmSrkvn9UOzO?= =?us-ascii?Q?Dgl6XcumnWdH/xIWuKnY42UnK6ty8EKfo9eiPP1oDIkc1zXCBo6ULMtyH+DB?= =?us-ascii?Q?oaPqoE5jEbQ5poA/ZMz+GisQ4PVd+jRWzFGtaS/TKH47rNYdVjbvVZiSkRDi?= =?us-ascii?Q?g81K0q3V1zvIUXqIwVbrJVchmJWPGNaVR2x2i2qxP+42+ouVZrzpFvOS0BTb?= =?us-ascii?Q?JYVSqd0VEYwFjG6+9VLDYv3oapEESxCq0RReAMAyPqYhNG56Mvcd8mwWDmKi?= =?us-ascii?Q?BkfOeaZoAv855qFyPIPVQVLGEsrAM9/dw20mLIQNAot30poWQ8un8on269ee?= =?us-ascii?Q?tn6iobIwmuBajBjJ6PggvDY46e7DHZ/X+5CisJHf+FLs4nispgDEc3t/Y1Dx?= =?us-ascii?Q?cychpwNXnL6xUl0KdgRMuJBrK/f+nvelsf+eM3AQoJ9CdfIQiy8sQISnZjWZ?= =?us-ascii?Q?htnOMKMOrDAp4dZkCLL/OA4lz//tronouYeATq1XKPDORV1XMJH+GEBF28PG?= =?us-ascii?Q?PEveZz+dxLi9K6OvV799mdxP8LEH9n6KZzw46oRFMt6CoUpu2JaJsGR4GYby?= =?us-ascii?Q?u3v+uk5xILVs0cfC4JYpSZxNFm4jMOP/LH8ivP1Dx+7f9NbgLPutoPq2Ij7j?= =?us-ascii?Q?1EQnFc7kqyt0ToYFzJGBnGYMYBmGyermEM+hwsrOZC5bWS4ZnSx+j18ia0ln?= =?us-ascii?Q?uOAnWqMPe6auG1kgwxFlPRGgdcJSdEdrmCgtub2Cn1rO9I3bUQY+sO0EhLmN?= =?us-ascii?Q?T2DtC4UguZsXOWepAIt166Yd0mzpwsLqZo5nxMaPyyd1PT+MMDx4TuWjR/Oy?= =?us-ascii?Q?k/0Lu/LhS6SbCqr4Jz635DljvmY0Ekq3XfQEha+7kVrH6Uc9n11xJKVQNbSQ?= =?us-ascii?Q?0i5aqUSlY6mbYl3MRfSaXOd/a62+5Eqy8T+tNmLvbxOtK+fUbINziJGQi9+X?= =?us-ascii?Q?UwDKJ1dRKcWbLGOa4hPwvlsPMej8fLIdB/aotkZ0DsQce/m0JUiuWmRvJ5qd?= =?us-ascii?Q?t5hk/zJae1SoONBvP4SYDwpKMQHfWp/6qjBTMypPJXn9Hi0YOCFQZWU0aUlj?= =?us-ascii?Q?cH+aXFZwvdHPyoRvBaRjizB+62Mp1T2F7XT8mnCaJscqmNWtyKz1zQB1fUwj?= =?us-ascii?Q?A0DOvDCguGf/Ybro7GqDszBKGzP1/dQZV88cMeQ52II0Xfmg2xDNqCoaOg3X?= =?us-ascii?Q?36h6qKdx5cV62/1PQ9LpI7N3cGEvgimfN0Bdif4JVh0Kz+nFllQ/0qgGmeFp?= =?us-ascii?Q?Y16Sz4FdEFYZQQcgS4HVAi3gT4Kfp0D8a3mRgo/TvYlHn1ROXbP8G9kf+YQ+?= =?us-ascii?Q?QdeDg9MUZ4nvrMsgFFvPTqlVrAPqoks+//thYer5tFUnSgBFd+Ig0VSE5GJI?= =?us-ascii?Q?ujeoOHu7mmbMN7TmBI6VFFKizw/0pRkb2ZOzHSSfdFfKhhut/9K9PuPRm7Iy?= =?us-ascii?Q?NsOmcKLrD8RcLFR9+GdkPvzmfcw+WXxTPWyqdQ9WiRA/xMo9f4lXdf0Ae7cH?= =?us-ascii?Q?oHShBvIAeA=3D=3D?= X-OriginatorOrg: nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: 31d5498d-690d-4d95-170d-08dee663f7f9 X-MS-Exchange-CrossTenant-AuthSource: AM0PR04MB6900.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 20 Jul 2026 13:36:57.0728 (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: JTDf3J15HnAOr9F+z4mpX7dlNM0rdeMlzVNvkMN1JLVR2yiEoSwcLvVoBAEVC0yEnMPRIu8+zg6zjf9HWnW3NQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS8PR04MB8626 Content-Type: text/plain; charset="utf-8" From: Ioana Ciornei Add a central fsl_guts_read() function which will take into account the endianness that was already determined. No point is duplicating the if-else statement each time we need to read a DCFG register. Signed-off-by: Ioana Ciornei Signed-off-by: Vladimir Oltean --- v1->v3: none --- drivers/soc/fsl/guts.c | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/drivers/soc/fsl/guts.c b/drivers/soc/fsl/guts.c index a2b4c477b064..e1b3a054e681 100644 --- a/drivers/soc/fsl/guts.c +++ b/drivers/soc/fsl/guts.c @@ -111,6 +111,14 @@ static struct fsl_soc_guts { bool little_endian; } soc; =20 +static unsigned int fsl_guts_read(const void __iomem *reg) +{ + if (soc.little_endian) + return ioread32(reg); + + return ioread32be(reg); +} + static const struct fsl_soc_die_attr *fsl_soc_die_match( u32 svr, const struct fsl_soc_die_attr *matches) { @@ -209,10 +217,7 @@ static int __init fsl_guts_init(void) } =20 soc.little_endian =3D of_property_read_bool(np, "little-endian"); - if (soc.little_endian) - svr =3D ioread32(&soc.dcfg_ccsr->svr); - else - svr =3D ioread32be(&soc.dcfg_ccsr->svr); + svr =3D fsl_guts_read(&soc.dcfg_ccsr->svr); of_node_put(np); =20 /* Register soc device */ --=20 2.34.1 From nobody Sat Jul 25 02:35:48 2026 Received: from PA4PR04CU001.outbound.protection.outlook.com (mail-francecentralazon11013012.outbound.protection.outlook.com [40.107.162.12]) (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 F3553428820; Mon, 20 Jul 2026 13:37:02 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.107.162.12 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1784554624; cv=fail; b=bTNBKrp8HzzyjoVe+80m1O0VWYUB3fMXmm8Fw/nZSqnd67pSukonQtWeIBas0AyEc+QdLWSZiQpHr79nCJs/Xpi/wT05hEuCorWqzPaEy/eRsmHWBYIMSCTn7QjWlW27q76D9fhnlm6wLci62/CrRQ1Y9GlIcb+to7/ZztH84AI= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1784554624; c=relaxed/simple; bh=cN+25nPjoZnsSdCbfGKiPuqj2Y+4S8slUxniDk8frFg=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: Content-Type:MIME-Version; b=qeWzR3/AiZlZkGlRW2uow7KIOYIA+ZpXu/mw+D0nIzCueoPMpRf2phHbgVPXGY7CM9sxFYRNDd/Jrs9895hIAjFPTOZioRnIypLeqzlhKDHCNfFSi2jU15pCAvPofZADIfYJG1+a9cpMuR/xI5fw8BipVXhzc0JJ+W6+2NOm9GU= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=nxp.com; spf=pass smtp.mailfrom=nxp.com; dkim=pass (2048-bit key) header.d=nxp.com header.i=@nxp.com header.b=ZHAbrWjL; arc=fail smtp.client-ip=40.107.162.12 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=nxp.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=nxp.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=nxp.com header.i=@nxp.com header.b="ZHAbrWjL" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=cSY0PahZy9XQwEcHNUpMo84XzEW3cU19zyRNzrmEEixbEcUobyoQeg7jlAc4e/M6fbPOkfIUd9ma2VwGnPXZMKQe2UAgXYCRDLqS3/Xt/EKTVvscANn4jARZ2BYWO33K/hatM9isOZy3RomXPH4HK5FTUrC0HbZElEUZctPjQPe2d9+dDbOm353zK5DV8ra0m6K3K1Ef+MTeESSV3cSlxf8XDjdfUMCWdtOKjI1IKiX5ynMDK2tZubcyYeKGRwP/nedrZ9kMJUL+9P4GY/1shvKZegGPKdm09l7HHdb2ctq4NrqfADJxKMKWsizJ8CpsgHNy/d+vY9cmfQOd/Y+BjA== 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=r8C1iPY5H+aYOVLx8GmlsIz6mJWm6UNRbFpTk423AZ4=; b=GwalJBM05+EQNCaCTvk80Zzetu47r2EZM7r8vjTmia79NRMeqnapsVblPqyPFdrEMnBb1MYEd4OSjSJH/EKVS87RAP2N1JgOmzOAgY5ViY4mFBNLjAfu7gr69eGCew5uPHrqbyA3tFE+kGvf+6btrlUAWZRCbYD1hurRD7Dp54tGsgdgloUuqCcauOMz3S2xhvtsDStYbO0OOXPul3qIMyK/dr1l9oHVoeM9XoyEUycVl4C+mZPOChxWbMOFfVFvIIjT7leN+8Z/IMZFtS4NehZvZGhaw7uzyJ5ID/FTm+qr6ycBXltKVKNGRQmJAWjeHqqHkq1BmIUKYJEjfH4rDA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=nxp.com; dmarc=pass action=none header.from=nxp.com; dkim=pass header.d=nxp.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=nxp.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=r8C1iPY5H+aYOVLx8GmlsIz6mJWm6UNRbFpTk423AZ4=; b=ZHAbrWjLtVGp1HsO7peKBIDKjOXXT8HwPwRwGoiNCAIEE7l+xWeYKfciRCpLis678YPqSIJAVSr5ETBnaKTEeao3QIgO+FEs7xBKLwnE4EpN1FwyWFRUCkLLCihgbPaJU8Yru53jflF51gvh2pDa0qJKXpgnFTdM7to6cNVXQt45haNK5a5JtfgNtEG0A5F2Dg0fjhrw9tKwrGDrcB/4p1IYbRpLEwkD6gGYLGA9FTV+ZQu5oEcDgW8sMAjYH0EQ7X5vus5d+60wBTewjSO7Xb6QsVDvWmfghAUckgPkL8TPYxF/kAGDAckGBHmH2ec6e6ozCUAFsYTUZxnO6muLPw== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=nxp.com; Received: from AM0PR04MB6900.eurprd04.prod.outlook.com (2603:10a6:208:17d::10) by PR3PR04MB7259.eurprd04.prod.outlook.com (2603:10a6:102:8a::18) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.223.18; Mon, 20 Jul 2026 13:36:59 +0000 Received: from AM0PR04MB6900.eurprd04.prod.outlook.com ([fe80::7fda:8431:ca1b:b023]) by AM0PR04MB6900.eurprd04.prod.outlook.com ([fe80::7fda:8431:ca1b:b023%5]) with mapi id 15.21.0223.017; Mon, 20 Jul 2026 13:36:59 +0000 From: Vladimir Oltean To: linux-phy@lists.infradead.org Cc: devicetree@vger.kernel.org, linuxppc-dev@lists.ozlabs.org, linux-arm-kernel@lists.infradead.org, Ioana Ciornei , Vinod Koul , Neil Armstrong , Tanjeff Moos , "Christophe Leroy (CS GROUP)" , Michael Walle , Shawn Guo , Frank Li , linux-kernel@vger.kernel.org Subject: [PATCH v3 phy-next 4/8] soc: fsl: guts: make it easier to determine on which SoC we are running Date: Mon, 20 Jul 2026 16:36:38 +0300 Message-Id: <20260720133642.136324-5-vladimir.oltean@nxp.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260720133642.136324-1-vladimir.oltean@nxp.com> References: <20260720133642.136324-1-vladimir.oltean@nxp.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: AS4P191CA0023.EURP191.PROD.OUTLOOK.COM (2603:10a6:20b:5d9::19) To AM0PR04MB6900.eurprd04.prod.outlook.com (2603:10a6:208:17d::10) Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: AM0PR04MB6900:EE_|PR3PR04MB7259:EE_ X-MS-Office365-Filtering-Correlation-Id: 0ca8cb3e-db5f-4334-2811-08dee663f932 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|23010399003|19092799006|366016|7416014|376014|1800799024|3023799007|56012099006|11063799006|10067099003|18002099003|22082099003; X-Microsoft-Antispam-Message-Info: F/s8Pum1gi4ieReNMasssUTEQLrw/sikq5qC4s2J3HCnSyOUC2V4TflolXP0bRTu9+vFZBRW9JZamW4guSszp3QOzVMNVN2i2ZyAeQBmdxtueWtJWa5VIPEGXme2gvVZJKqPc8G+P1rV5/PW0Pu78wRbIHf1XsaKpAbcEk1Z+iPCeO8GpsamILTZmr58tRHcwr+yDOfh+V8EO0TmfHjcz5KA9ByTQv4Nn5NjMpyVGIIQG0SR5JswGSsuLb6R25gKHLwhYPgiB8F5x+iBmZKk6EUrSW3+9eoSBYhgeTZpRsGVsy1ymRyuAYDkrfHf9HR47Y1uSAx6tNna/uHvm5x0NKMlzMpog08PJO7xUmAf5TVOlhoYLi391YL9rkjZYeBrYd7ihWw+Hl9UdzkhzN8ohJC7358Q9EFV/Pw3j9ZOQe0F+FE1ClOJrdyddM6R+R/hrLO0EM3QNvgd1HJ/Pj3SQxYPuzoC/K5MYBVkRMj7MWgxmZoWc4IfAYcpp2mB8HViKN0VSQv6R8Uor05Zy/bQbTFnYycSPZBeufF0v1/Qzvb5drzhx4Kt4rTG7q31/D34ewRWs2Q8IfILNMw2sazeOroLR+958R/J8QnrnTkLiciZJtn1RSQPchdp1cUxJuS90S0/p7dj9vKGxstF4YiIbgA4nyz5BdwZRMnjz2JrrYA= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:AM0PR04MB6900.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(23010399003)(19092799006)(366016)(7416014)(376014)(1800799024)(3023799007)(56012099006)(11063799006)(10067099003)(18002099003)(22082099003);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?kbEPiYY2YqLi8JSUZlUg3ce6NbzRqbf5WvQPO4up2ItxRnLnw1fw7YYKQBu1?= =?us-ascii?Q?LRcXoc3KC6j1kLcpI8GgDGMkmfib1XKN/Zkz3KKfW6fKy7tGQwnJu2omlmEJ?= =?us-ascii?Q?ydY9JwiPAc9Ei3HrcVorqNHCL8ytU/zL+gdRO8BDSB0kU6zMMcgpVgJr/2Ni?= =?us-ascii?Q?3ksR+s1t8QzMJow06UwGnUpEeMyy/F79rZ8iGRtjeBAGjBwjYYsuWTC1oOOM?= =?us-ascii?Q?/cFSy0I+m5gbTIOpBt/dCPQZq+DbngE0tue7+AyIoZCCYvt+Dlriv7gBdXfg?= =?us-ascii?Q?cVxcrQ7QqRkhx0d+F2gcCneGLtY2bxMyXwAj++e55wlwsXw0OAfhBDsFoo9v?= =?us-ascii?Q?RUoZqECO2vbVOEIiI6NnD41M668jM/Q9TvPF7UOmX9/fLBazZI/lyx18NVVb?= =?us-ascii?Q?jfVFy5o+/IAidYdi5B/bn6JIgAefp4s7WN+AvqgQypl07xKVmqLykeGzFh6m?= =?us-ascii?Q?ym/L5/LG5YTrywYLMTVm6jhuPTJE+HBObk7UgSP7Dz/XpIKzW2cnJZHQiuDy?= =?us-ascii?Q?16Wig5MxvszdqCy3kWxGj+t86lCYrSkrIyVP7heSliqXZIdNr6gg5I6ZDJPO?= =?us-ascii?Q?oS8bPFI2x6bcinPZaomTJx3AYxq5QMsNOluufxnk7QPkiuwMJ/lpctxI5Wpo?= =?us-ascii?Q?DsZofpC09u/3AgxXHHqmnvynb00+2GesQ9yVeU2PueF4KOqAab8aWEi/7y3x?= =?us-ascii?Q?F/Fp3E67RuHotC2IXHM/IixFtmhV08bDYmDbg/cSdn2ImOyxBOFodR5AU5r2?= =?us-ascii?Q?iSz3SIhCuckl6/vfs0X4+3nhN4+QTqUsHC4zVuhF4GAwJFYtYNW2WBOCfl1N?= =?us-ascii?Q?XOrJMslaQVIWa7yvZtQj+b6Yh58+r8FK8DZelv+quTSTqVMkQQVFBOiuQK57?= =?us-ascii?Q?Hdskbz2VS6KskCT68TVnmYnAzNKx8UM/IiOhnpZVgOmnN9p5hmhIKNCJa1h9?= =?us-ascii?Q?m19mJZ4QiiB8QaUZ18/cXU71Sf1l55VdNW1sISWJ7H3HRyW6z0Ur2j4r7298?= =?us-ascii?Q?K3y/db/hN7+0Nz1XFYWZ0beCralIWCy9iqGuP/LNyiyWYy0iXmrZk1QNeCGM?= =?us-ascii?Q?0kv8dsHwnBT765ikZGWsoHPaofJS91H0tEGAceHIsYbz5ImEqtxE5GytwCq6?= =?us-ascii?Q?ru6sCgEtvcl0h3ybqEWRlsXvmpVSjNOvXc4lY1c+XrpuWPJQvAqxSKGmgvVt?= =?us-ascii?Q?dUzvou1F9usBQgw7D2VdotqL1tcZCcmfYMTBru55Ta12fEoiy21keBtYyNAK?= =?us-ascii?Q?ZdACBDZ20BcHqDgtLdAXnV0xhryRviLGAAddvnZ1cMdHd4pLNKiUVgqSjJBg?= =?us-ascii?Q?Ke7tkWaVCKzEF29YlKjigDlxXsKDEw3DIuoGtW8+p/LSIrN/7yBPG0FjYruK?= =?us-ascii?Q?YZOSmfLFoVrZpic9febtGxHyKNQV+ugS+/Fab3QDqk9x6eZGDgahPVOoYxz+?= =?us-ascii?Q?ZG1mfcg1zHgfAxUjcpEZNP1l/HroCpxWLdKBIN3Kc6/1lKbCRfuAUoE+hOpB?= =?us-ascii?Q?qBWQ5yMxGTBDc1cxL0HFC8XgVqSAPIVHVVxM7o85RSjW/ub3zsBWOqqDlQCG?= =?us-ascii?Q?ATEsE2pn/B32HWwSbrS5F2au3Bwew49tejsQ7aiqrXNtACgEhbWdAv9e0whi?= =?us-ascii?Q?KGgMnTKhwL+15VQ9j+Oci6Pw6VXSfm3B+S9XohLkqCotCF3idVopPKuRdh5y?= =?us-ascii?Q?ylBR4dIJuahQVllHQfTSzYalfhpObGZiOQZHVxvEJ/wwT6ntRY6WltFCU9MX?= =?us-ascii?Q?1UjdrfVEdw=3D=3D?= X-OriginatorOrg: nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: 0ca8cb3e-db5f-4334-2811-08dee663f932 X-MS-Exchange-CrossTenant-AuthSource: AM0PR04MB6900.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 20 Jul 2026 13:36:59.1373 (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: Y3iSb/LmKzSjL9sZAKZxl856slKJpA8ae/mf8pkTB0KAWCsjG06nEoXMfwQoLHFn60H9D02FAXWevVrpSIA3qA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: PR3PR04MB7259 Content-Type: text/plain; charset="utf-8" From: Ioana Ciornei The guts driver will need to easily determine on which SoC it's running when it will need to perform RCW override at runtime. The guts driver knows this already because fsl_guts_init() reads the QorIQ/Layerscape architectural System Version Register (SVR), but it doesn't save this for later lookups. Add a new qoriq_die enum to be used as an index in the fsl_soc_die array. A new fsl_soc_die_match_one() function is also added so that we can directly determine if the SVR is a match with a specific die. The SVR value read from the DCFG CCSR is also kept in the global soc structure so that it can be accessed when needed. Signed-off-by: Ioana Ciornei Signed-off-by: Vladimir Oltean --- v1->v3: none --- drivers/soc/fsl/guts.c | 47 ++++++++++++++++++++++++++++++++++++------ 1 file changed, 41 insertions(+), 6 deletions(-) diff --git a/drivers/soc/fsl/guts.c b/drivers/soc/fsl/guts.c index e1b3a054e681..922560d98782 100644 --- a/drivers/soc/fsl/guts.c +++ b/drivers/soc/fsl/guts.c @@ -27,6 +27,23 @@ struct fsl_soc_data { u32 uid_offset; }; =20 +enum qoriq_die { + DIE_T4240, + DIE_T1040, + DIE_T2080, + DIE_T1024, + DIE_LS1043A, + DIE_LS2080A, + DIE_LS1088A, + DIE_LS1012A, + DIE_LS1046A, + DIE_LS2088A, + DIE_LS1021A, + DIE_LX2160A, + DIE_LS1028A, + DIE_MAX, +}; + /* SoC die attribute definition for QorIQ platform */ static const struct fsl_soc_die_attr fsl_soc_die[] =3D { /* @@ -34,21 +51,25 @@ static const struct fsl_soc_die_attr fsl_soc_die[] =3D { */ =20 /* Die: T4240, SoC: T4240/T4160/T4080 */ + [DIE_T4240] =3D { .die =3D "T4240", .svr =3D 0x82400000, .mask =3D 0xfff00000, }, /* Die: T1040, SoC: T1040/T1020/T1042/T1022 */ + [DIE_T1040] =3D { .die =3D "T1040", .svr =3D 0x85200000, .mask =3D 0xfff00000, }, /* Die: T2080, SoC: T2080/T2081 */ + [DIE_T2080] =3D { .die =3D "T2080", .svr =3D 0x85300000, .mask =3D 0xfff00000, }, /* Die: T1024, SoC: T1024/T1014/T1023/T1013 */ + [DIE_T1024] =3D { .die =3D "T1024", .svr =3D 0x85400000, .mask =3D 0xfff00000, @@ -59,46 +80,55 @@ static const struct fsl_soc_die_attr fsl_soc_die[] =3D { */ =20 /* Die: LS1043A, SoC: LS1043A/LS1023A */ + [DIE_LS1043A] =3D { .die =3D "LS1043A", .svr =3D 0x87920000, .mask =3D 0xffff0000, }, /* Die: LS2080A, SoC: LS2080A/LS2040A/LS2085A */ + [DIE_LS2080A] =3D { .die =3D "LS2080A", .svr =3D 0x87010000, .mask =3D 0xff3f0000, }, /* Die: LS1088A, SoC: LS1088A/LS1048A/LS1084A/LS1044A */ + [DIE_LS1088A] =3D { .die =3D "LS1088A", .svr =3D 0x87030000, .mask =3D 0xff3f0000, }, /* Die: LS1012A, SoC: LS1012A */ + [DIE_LS1012A] =3D { .die =3D "LS1012A", .svr =3D 0x87040000, .mask =3D 0xffff0000, }, /* Die: LS1046A, SoC: LS1046A/LS1026A */ + [DIE_LS1046A] =3D { .die =3D "LS1046A", .svr =3D 0x87070000, .mask =3D 0xffff0000, }, /* Die: LS2088A, SoC: LS2088A/LS2048A/LS2084A/LS2044A */ + [DIE_LS2088A] =3D { .die =3D "LS2088A", .svr =3D 0x87090000, .mask =3D 0xff3f0000, }, /* Die: LS1021A, SoC: LS1021A/LS1020A/LS1022A */ + [DIE_LS1021A] =3D { .die =3D "LS1021A", .svr =3D 0x87000000, .mask =3D 0xfff70000, }, /* Die: LX2160A, SoC: LX2160A/LX2120A/LX2080A */ + [DIE_LX2160A] =3D { .die =3D "LX2160A", .svr =3D 0x87360000, .mask =3D 0xff3f0000, }, /* Die: LS1028A, SoC: LS1028A */ + [DIE_LS1028A] =3D { .die =3D "LS1028A", .svr =3D 0x870b0000, .mask =3D 0xff3f0000, @@ -109,6 +139,7 @@ static const struct fsl_soc_die_attr fsl_soc_die[] =3D { static struct fsl_soc_guts { struct ccsr_guts __iomem *dcfg_ccsr; bool little_endian; + u32 svr; } soc; =20 static unsigned int fsl_guts_read(const void __iomem *reg) @@ -119,11 +150,16 @@ static unsigned int fsl_guts_read(const void __iomem = *reg) return ioread32be(reg); } =20 +static bool fsl_soc_die_match_one(u32 svr, const struct fsl_soc_die_attr *= match) +{ + return match->svr =3D=3D (svr & match->mask); +} + static const struct fsl_soc_die_attr *fsl_soc_die_match( u32 svr, const struct fsl_soc_die_attr *matches) { while (matches->svr) { - if (matches->svr =3D=3D (svr & matches->mask)) + if (fsl_soc_die_match_one(svr, matches)) return matches; matches++; } @@ -202,7 +238,6 @@ static int __init fsl_guts_init(void) const struct of_device_id *match; struct device_node *np; u64 soc_uid =3D 0; - u32 svr; int ret; =20 np =3D of_find_matching_node_and_match(NULL, fsl_guts_of_match, &match); @@ -217,7 +252,7 @@ static int __init fsl_guts_init(void) } =20 soc.little_endian =3D of_property_read_bool(np, "little-endian"); - svr =3D fsl_guts_read(&soc.dcfg_ccsr->svr); + soc.svr =3D fsl_guts_read(&soc.dcfg_ccsr->svr); of_node_put(np); =20 /* Register soc device */ @@ -229,7 +264,7 @@ static int __init fsl_guts_init(void) if (ret) of_machine_read_compatible(&soc_dev_attr->machine, 0); =20 - soc_die =3D fsl_soc_die_match(svr, fsl_soc_die); + soc_die =3D fsl_soc_die_match(soc.svr, fsl_soc_die); if (soc_die) { soc_dev_attr->family =3D kasprintf(GFP_KERNEL, "QorIQ %s", soc_die->die); @@ -239,12 +274,12 @@ static int __init fsl_guts_init(void) if (!soc_dev_attr->family) goto err_nomem; =20 - soc_dev_attr->soc_id =3D kasprintf(GFP_KERNEL, "svr:0x%08x", svr); + soc_dev_attr->soc_id =3D kasprintf(GFP_KERNEL, "svr:0x%08x", soc.svr); if (!soc_dev_attr->soc_id) goto err_nomem; =20 soc_dev_attr->revision =3D kasprintf(GFP_KERNEL, "%d.%d", - (svr >> 4) & 0xf, svr & 0xf); + (soc.svr >> 4) & 0xf, soc.svr & 0xf); if (!soc_dev_attr->revision) goto err_nomem; =20 --=20 2.34.1 From nobody Sat Jul 25 02:35:48 2026 Received: from PA4PR04CU001.outbound.protection.outlook.com (mail-francecentralazon11013012.outbound.protection.outlook.com [40.107.162.12]) (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 CD45B429022; Mon, 20 Jul 2026 13:37:04 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.107.162.12 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1784554626; cv=fail; b=Mf+oOH1C9MHg2G2QirIFCaw3WmvA5En9weCtEA9eb046yDjogoIe7JV2hllGvRrjzRXSztC7NnWqza2YlmwfmCEVWh1rdpBTHtuTO0Yk7wzOTg9/vdzjQnTl3qGEUcO7We1CdQxa7jwRk4W9ifO+tKTrglGZQVY38ajpdJy7Dxc= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1784554626; c=relaxed/simple; bh=Lg39MAOmNB3+CUsvrvYHrO4xIeqPcQnOpA8g7OjWIcg=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: Content-Type:MIME-Version; b=ltKdATtg7zzpoLbhkHNcxm/2QmRjl8B6mxipCfIAZHmxZAzyjFEb53Q4RP7p0f8rdnIzkwGID2SCWpSm8J6vYzmPwCC+31jF+5S8WVSyuBQby5rS6unWNrkXOWquswKM6u09npknToe7RmKuCVqFG2HalF0dCDfwJ1TDDKidBXY= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=nxp.com; spf=pass smtp.mailfrom=nxp.com; dkim=pass (2048-bit key) header.d=nxp.com header.i=@nxp.com header.b=ec8c2gNS; arc=fail smtp.client-ip=40.107.162.12 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=nxp.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=nxp.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=nxp.com header.i=@nxp.com header.b="ec8c2gNS" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=ecgJUNqWTlJyD43YhH2yvxLGZAP71RZ37BCWk7jEAXoOEQ3FX8IP8Lp5A7ct1KHg04+fpmKi0BT/SNplKc10t+HDdIc72Ju0MRMsGHuxV44NJXaLEKNaLCSPfhU3Dc/hNot8MxVriE4d1DTBfMHX7EyRVDoz8hr0VpzDw7epudQ58cor3dTfRL0DM3CaYfEYvE/WAVh1f8/6tMPrwbvY6xzZXWhrOO3n19Nuhr+h9D/v7Xgju0O5+opkcQHosPsq9Ak4IC/7r3+NczV+vI6UPdewnhUeE6s9i6uzrLe+TfgWSGdJbd74r2T1/DllS5Bj+NlKYAypHUJ8zJSF2Cq9eA== 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=MKbNWjlj0GZzffPL+87mG9kIpzvyW6qUxqyRKw0NRAk=; b=lL0o9vUWSRoq0Fns/m9K2zImYnYz+nuaxvoV5m6cOOvpdXJ8lJi+WUJgkOTtUQi3H7TqIuPJkHxwb7A2He0tg6FrC4FCixFBNnIbOI5VvyhrWpm26Lkg876RxlF5XdNAhcube5FDJOz6R1ffJeJ4EC8fC+SaIFr70AfN/JevYJK0mouNfHHl7qJnjLRKMeoSXei/h2pGPQuNyarKNAPAceCsz2R7pMNnps4aZOCYuSx6BRo6WI7wZAazF1FxKS7gUY8j2bAV4uR+AGZUnXxE4zfreM6yryIM1Q39qD5bQmkWNPpOsJMd7B0fWGLw0KR7359Gy/uiNxEfc3NL2tMkSQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=nxp.com; dmarc=pass action=none header.from=nxp.com; dkim=pass header.d=nxp.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=nxp.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=MKbNWjlj0GZzffPL+87mG9kIpzvyW6qUxqyRKw0NRAk=; b=ec8c2gNSaUzegKfY3rE8aeFHaMHqkZb5fwQKFV0RiqeBBxvnEDXcwgpG1zMjkf3O6qPQekwNkJ7+jpioz2CEXjhbVH5VWiyOWCuQk8/5xCU0/9P7GndxamwkzV3XaPNvXhbz1zf+3miqvkxhVXcaLyqr7liLWFfY6Q6wFKeidDwTGoXa/M6VJd6BeIu4uMAI4M4zrnbqWxMi3rVD0mIvl8yg+8Nnle5CuplLSy5hIUtzVYaF5DOsYj+DuefAG+QIj3Q/gQqc9lCtSOVLpEwDRJVQNbfkOMwVGw//UW1JZkBmANTP1LjtX9c9hkKbRlzE0w8IrxDlEdeVbiJee9FM0A== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=nxp.com; Received: from AM0PR04MB6900.eurprd04.prod.outlook.com (2603:10a6:208:17d::10) by PR3PR04MB7259.eurprd04.prod.outlook.com (2603:10a6:102:8a::18) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.223.18; Mon, 20 Jul 2026 13:37:01 +0000 Received: from AM0PR04MB6900.eurprd04.prod.outlook.com ([fe80::7fda:8431:ca1b:b023]) by AM0PR04MB6900.eurprd04.prod.outlook.com ([fe80::7fda:8431:ca1b:b023%5]) with mapi id 15.21.0223.017; Mon, 20 Jul 2026 13:37:01 +0000 From: Vladimir Oltean To: linux-phy@lists.infradead.org Cc: devicetree@vger.kernel.org, linuxppc-dev@lists.ozlabs.org, linux-arm-kernel@lists.infradead.org, Ioana Ciornei , Vinod Koul , Neil Armstrong , Tanjeff Moos , "Christophe Leroy (CS GROUP)" , Michael Walle , Shawn Guo , Frank Li , linux-kernel@vger.kernel.org Subject: [PATCH v3 phy-next 5/8] soc: fsl: guts: make fsl_soc_data available after fsl_guts_init() Date: Mon, 20 Jul 2026 16:36:39 +0300 Message-Id: <20260720133642.136324-6-vladimir.oltean@nxp.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260720133642.136324-1-vladimir.oltean@nxp.com> References: <20260720133642.136324-1-vladimir.oltean@nxp.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: AS4PR10CA0003.EURPRD10.PROD.OUTLOOK.COM (2603:10a6:20b:5dc::16) To AM0PR04MB6900.eurprd04.prod.outlook.com (2603:10a6:208:17d::10) Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: AM0PR04MB6900:EE_|PR3PR04MB7259:EE_ X-MS-Office365-Filtering-Correlation-Id: 99f6ef24-b753-438b-c4e7-08dee663fa4b X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|23010399003|19092799006|366016|7416014|376014|1800799024|3023799007|56012099006|11063799006|10067099003|18002099003|22082099003; X-Microsoft-Antispam-Message-Info: tQ8bXbql6OcbaRQXdxxRfXgRmLjV6a1VCo4dNeSb5mYGTqxAO9AHSrJ1H8jKWjMTBskvUXNd9rUErC+T21yC7AyzQST4e7QvveQOU/t5XKXlVcXfO6hj6oXp288qI+48I/Pk+4iJQSxOmmyESAktfflNsBq+giPPtkHOlVZX+4MzyaJ7dPHsRw5YJGiwRbss3VF4wb30GN/6zbRQ5VXyP57KZ/DBpWsOL3hnlq7fCM32hjoy6bJbOeZoBVV1IkN1PSYMbY9uSq+SLDUsbLCRSGElxaz2obL5cQwT5UW6agiyRYKlAOV1gw8qhVUDfSkVKqnOgKra4gt2FaBtGgZzuSnxbTer3Zk0/gakT4F5hzNMnW2eVpfam7/0xFVxcsu9POdhXw2Fsh782qTnc3b8Q1sDXYdgp1vLIV5B07lx//dcbFixXpZ4XTZZpvV2Vlam69wOiLQqIRadHd0IsMKHQAqtMy5fuBAhqQBJSGeftqBfMvLRNu3bbCqbGCde6Tm3R6qUAyLxsMYyrDsY9xdL5+YQmcjIX5SajT4TfvgLpzT/MpR3JrlcczxlTjCAGyatBO/E4c1p/eHEmjD+PDof3VDoI4qXsbnzQCQctq/t9qfAwXGvaWCSsXDvnACSlye1/Hitb1aKI9oNqiydYJxZXg== X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:AM0PR04MB6900.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(23010399003)(19092799006)(366016)(7416014)(376014)(1800799024)(3023799007)(56012099006)(11063799006)(10067099003)(18002099003)(22082099003);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?xgqWjPRGaYYC3GVEBCPbtjtgDImnJH/+mHEzAc7UFc88UNN22ARgLzqwAk2x?= =?us-ascii?Q?s2QDVlg+GPMtEBhvbmYXE41xyiNjH7G6HBzFLviRcJOAd2RSMGpsXeEvEklb?= =?us-ascii?Q?ASt/kAOHnzh/fKv0xiQhiVorg02aFsbEvnXICL04Hx0Wywz2tWeXTOvJ+5sa?= =?us-ascii?Q?PUPPMhdcXrqCa7eI2uzTUA/YOpl4FGxj+xQsDMbD0kR3Kf7c4swtt6QNGlQ0?= =?us-ascii?Q?PszUCn9zZR3DKWGulNsLeqmAEfshUfSRki13mQafchBESzNOSe6sRKgnKi8N?= =?us-ascii?Q?8lzZLuWU+KWRboSDjWzc2LArNp8N/qM/qkCBhdwbtbewmuw0eLxa7CZkxihJ?= =?us-ascii?Q?VrqpCRjHi4PLLMXy0kHfZkbym+krbzUEnZXKFt83n2avoDYTvacGVxUCRl9E?= =?us-ascii?Q?cjqi5rMWaMP3qcG++VfIi0/TPYoNi87azxuNbDVtDElO6vIG31Pun4SyaHYj?= =?us-ascii?Q?M1XlkR3/6L8FC4zmyPORVEa9S4qrfd1U4YDnExdoyWPuUpA+HDgrQq/k63/G?= =?us-ascii?Q?BiHzQvo19Rl1oCxunQHbrMWkRWkWOkYdln0hmxF7MioN4jZe7BEw2Pcbr1Ei?= =?us-ascii?Q?h5dCFEZxOcLgz2k/8z0LTGfaOqlEa0kXgEn7Pfv+6d0EHSyc9WJiMG0lAG5e?= =?us-ascii?Q?UeRAYSTJE8Uhq2q7LuNDbi2AV7N1Q+Y5kufNFP0LU1sSCu3BIWoDiQbusuLp?= =?us-ascii?Q?ojI1xtI8m1HplBD2DFjMoMhsYuOpGo/3sDspYnoM4SMMhatiDhh9rcB/Vd8i?= =?us-ascii?Q?O0+H/TFqVzL1GoxIyFXv+RESA8lBkbUtAJzjzCiL3zqtQeuNdq9MDNeFKmMb?= =?us-ascii?Q?m/hHsJKj1xUFiQAm9wqCXw2L6EHSLr4OKS+GPsHCTARPFO7YJU6xzyLZ6PBq?= =?us-ascii?Q?33e5M53SEkkr5ErMz/eMuchhzRfhEAKyNv1sSi9cHLS18926IyxLrWDw90d8?= =?us-ascii?Q?gImcsgUHu149s1GhpmzjUJrfHssPsagloY3DQNj4TaUGAMQyH3gCdWYOuv05?= =?us-ascii?Q?TeWSY9pomDYkRxzQR+0pTvrF/huCFzbsd7Ekt7NRucy4rVKoz2W8E/OjRPd/?= =?us-ascii?Q?BOZmWKm21oBVYU8dsFiu/msdG6ZMmf4QYNjdGWvT+Lm7gvAd3/PxRiGT/B1p?= =?us-ascii?Q?rALjc7JavPBGr3gI7p20s3kpoSeoIyVqpKCNq6ZhIXAy3rw7chlHr5UTIU6U?= =?us-ascii?Q?fulMB2qnuuCphBIYQ1wzZNQKzOsW8oqUE/CfUb1bblaVeBDIjM3Mbj+mmxpL?= =?us-ascii?Q?7yrXDNCHO0Qfu5aJlkeid/k9h0tCz5ohNldmTmrG23xu1aU5paqFtotjcYdA?= =?us-ascii?Q?fF0KiYA4BstBnYA1uoPQMNKWPNN7Z2eIjySY2f/Z+rvDwtvQ2PhyB6JCZioS?= =?us-ascii?Q?srm62Wh1GQlddfV0uUgnxHa0PHxqxnTlBudKLCDbBAq1vL/iE6o1qDc8gX9H?= =?us-ascii?Q?9yn1EPW8fDwOiCtiD23TxA0QjMRyhNTeBJLt37eJKz1Ly4lh52fnZtuu5m8K?= =?us-ascii?Q?Y3H71fHEWESiE7kMAAD+xYFO6ShdNX9nHy1lI8eiyvRjFJSGO+pXBcED3hCr?= =?us-ascii?Q?4O+E81Ho6nPHD0X61jJcvpweviQ57lqiAbIfX91QwQsWTwDhW1eS9TqFAJS6?= =?us-ascii?Q?f9nztFV8hLJweJA/noqs4Sk+IFYM1SYJP1FW6yECgHtd1cGiAhFttFX4LXI/?= =?us-ascii?Q?DPvKXAbAlHniBBZ6NRTsct6gHf8QqP/+9avEYHDC5toiRJ+inrbKAluwqBNV?= =?us-ascii?Q?fO/Jlrzhpw=3D=3D?= X-OriginatorOrg: nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: 99f6ef24-b753-438b-c4e7-08dee663fa4b X-MS-Exchange-CrossTenant-AuthSource: AM0PR04MB6900.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 20 Jul 2026 13:37:00.9723 (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: s6atRRUPvaR3mCiU1GCMNxc5qFqk1XZ8MsKm1YljHZNW1S7KB8+YKRwvSanlKXTmsFK7osYQAxYLD7gI3Ie82w== X-MS-Exchange-Transport-CrossTenantHeadersStamped: PR3PR04MB7259 Content-Type: text/plain; charset="utf-8" In a future change, struct fsl_soc_data will be extended with methods for performing RCW override. Since this will be performed from a calling context outside fsl_guts_init(), we need to keep track of the soc_data that we determine at fsl_guts_init() time, so we can reference it later. Signed-off-by: Vladimir Oltean --- v2->v3: don't leave soc.data a valid pointer if fsl_guts_init() fails v1->v2: none --- drivers/soc/fsl/guts.c | 21 ++++++++++++--------- 1 file changed, 12 insertions(+), 9 deletions(-) diff --git a/drivers/soc/fsl/guts.c b/drivers/soc/fsl/guts.c index 922560d98782..b9973ca3a440 100644 --- a/drivers/soc/fsl/guts.c +++ b/drivers/soc/fsl/guts.c @@ -138,6 +138,7 @@ static const struct fsl_soc_die_attr fsl_soc_die[] =3D { =20 static struct fsl_soc_guts { struct ccsr_guts __iomem *dcfg_ccsr; + const struct fsl_soc_data *data; bool little_endian; u32 svr; } soc; @@ -231,10 +232,9 @@ static const struct of_device_id fsl_guts_of_match[] = =3D { =20 static int __init fsl_guts_init(void) { - struct soc_device_attribute *soc_dev_attr; + struct soc_device_attribute *soc_dev_attr =3D NULL; static struct soc_device *soc_dev; const struct fsl_soc_die_attr *soc_die; - const struct fsl_soc_data *soc_data; const struct of_device_id *match; struct device_node *np; u64 soc_uid =3D 0; @@ -243,12 +243,12 @@ static int __init fsl_guts_init(void) np =3D of_find_matching_node_and_match(NULL, fsl_guts_of_match, &match); if (!np) return 0; - soc_data =3D match->data; + soc.data =3D match->data; =20 soc.dcfg_ccsr =3D of_iomap(np, DCFG_CCSR); if (!soc.dcfg_ccsr) { of_node_put(np); - return -ENOMEM; + goto err_nomem; } =20 soc.little_endian =3D of_property_read_bool(np, "little-endian"); @@ -283,9 +283,9 @@ static int __init fsl_guts_init(void) if (!soc_dev_attr->revision) goto err_nomem; =20 - if (soc_data) - soc_uid =3D fsl_guts_get_soc_uid(soc_data->sfp_compat, - soc_data->uid_offset); + if (soc.data) + soc_uid =3D fsl_guts_get_soc_uid(soc.data->sfp_compat, + soc.data->uid_offset); if (soc_uid) soc_dev_attr->serial_number =3D kasprintf(GFP_KERNEL, "%016llX", soc_uid); @@ -311,8 +311,11 @@ static int __init fsl_guts_init(void) kfree(soc_dev_attr->revision); kfree(soc_dev_attr->serial_number); kfree(soc_dev_attr); - iounmap(soc.dcfg_ccsr); - soc.dcfg_ccsr =3D NULL; + if (soc.dcfg_ccsr) { + iounmap(soc.dcfg_ccsr); + soc.dcfg_ccsr =3D NULL; + } + soc.data =3D NULL; =20 return ret; } --=20 2.34.1 From nobody Sat Jul 25 02:35:48 2026 Received: from PA4PR04CU001.outbound.protection.outlook.com (mail-francecentralazon11013012.outbound.protection.outlook.com [40.107.162.12]) (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 1E05C429CC9; Mon, 20 Jul 2026 13:37:07 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.107.162.12 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1784554628; cv=fail; b=gI5k23yGo5QyEdMAoDXCMX9q5Meqgcu+eP3ZrG66xfr+3SMZG4LKO4o85m942YfWN7yIpEKCZZKGXBsekpKnmIXn8eZdHWoZEquROadyQBsBfs0eUk+zmAjdGUoNaqgMAb6J04kGXzuM5GQj45IdMWV2mcBCviaLNPWzzJ9HZzk= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1784554628; c=relaxed/simple; bh=cHn9hrVVUPLtfrTI53TLKrOdU2QlfmNg86OGTqQf1kc=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: Content-Type:MIME-Version; b=lbbQa2bxFhJgxGXRuUUzV9U3wBrNE3zYlqpenRZmeT8s5qs79Ge1ZUOuGjPQ751fjI7lKQIZ5ZbMUtBvrUkOs1n5bsEpBX3g88KxDMC0cOQOl2xbbvpt2deOyE6wGMOEEp70zz3vrM+cdZ2veT2IwEIN+UpoXd/4PTFxBhfpvIQ= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=nxp.com; spf=pass smtp.mailfrom=nxp.com; dkim=pass (2048-bit key) header.d=nxp.com header.i=@nxp.com header.b=jILkBl7Y; arc=fail smtp.client-ip=40.107.162.12 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=nxp.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=nxp.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=nxp.com header.i=@nxp.com header.b="jILkBl7Y" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=swz6cHeH5hM8sSuzn81YoSlWHsLVGEcZPgxEYSZmIj2IawMDjaFwkP20Egv/h1R37HIUPH0UeSUystkvvUGWNBS6TDOrcf7augilSeyijWXmL7NvWsDKRuLLTL/lnGKPhzhypXqn4snH4cABvA1OwsmZ1Orx0FDNCWHoCDZTaJrgqs22gQo9A6BOLQZeclP9OGIXufsH1cLcbR09SL4WfQC1HPJT3+vB2uk8fmlAS5GlRRsdj5p8OR9sHZPoyuQPm34kEdYLC3RHN6Or95PLZoA77CUGAVn6cFrgt7KTzdGHOAXDuLiQ/KqziinWQRBqEvNUSEOrLzSrlQC2AN+aog== 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=3JMDgNBI7b696XJL8xSeBFjF60/yKWE2k7dnvfk4lZk=; b=qLz9XrnQcJXKAMJ6FsyK0lS5NhJLfC6QCwhRTj6Ot2G29w6MAD2G+oAnHufAIHIC/Sl3Ewk6I9+o1JlpMP46GrDVFBdRgj5Os5PRKabR5xpPWHGpxUCbBOUT4HW/PUzY6ToKhbTFAPb9CStsjl+Cwj1HYN1RlPSZS0CgxU+nce5zYAVRRDkfhr/ANpd7VH69jOZjV3tTgb67Mdc6Lfe6+fufAKeWmXiI/SmLLtCbuu/LXVblRZoESNtTGz18NJpHAcOja3xNZ5Vyz1z+CJ1iZV+0C06z2gAK847uRct4N3u8hpZ11UEQ5xtkLJ+bNxIgyBPc0M6Owv1TcHuYpZ8MQA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=nxp.com; dmarc=pass action=none header.from=nxp.com; dkim=pass header.d=nxp.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=nxp.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=3JMDgNBI7b696XJL8xSeBFjF60/yKWE2k7dnvfk4lZk=; b=jILkBl7YoXHZ4QX/f/C2u3ht/a+MZUchesn8CDMHei53FZaVTWNkrwSTv7F1gsvcAyqxGlcbUBcad/M7/5GwGnhKWPrp9LNKnFUj2O6UWRj1m4CgGACkjeBdS5g9CYq1r9wXKEbnW+uNdtjFB0Fq3QShSfU+KJ4zmnbEKJimiADunHu3CukXxZTtUNKDmCrScIHdxD4zVAZDWX9ahFQl0oClqcl9z0bOgQ/FZjiPyzRxHFYo7gQgv367UJIWVz8ZAMnzxps+dSWzw49EvG5XLxwcU2M8KLIZDZzb+sogklUjbJekcOG0BtUcEuoj/MZ9i9JIqprDk87gewY4LN1w7g== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=nxp.com; Received: from AM0PR04MB6900.eurprd04.prod.outlook.com (2603:10a6:208:17d::10) by PR3PR04MB7259.eurprd04.prod.outlook.com (2603:10a6:102:8a::18) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.223.18; Mon, 20 Jul 2026 13:37:03 +0000 Received: from AM0PR04MB6900.eurprd04.prod.outlook.com ([fe80::7fda:8431:ca1b:b023]) by AM0PR04MB6900.eurprd04.prod.outlook.com ([fe80::7fda:8431:ca1b:b023%5]) with mapi id 15.21.0223.017; Mon, 20 Jul 2026 13:37:03 +0000 From: Vladimir Oltean To: linux-phy@lists.infradead.org Cc: devicetree@vger.kernel.org, linuxppc-dev@lists.ozlabs.org, linux-arm-kernel@lists.infradead.org, Ioana Ciornei , Vinod Koul , Neil Armstrong , Tanjeff Moos , "Christophe Leroy (CS GROUP)" , Michael Walle , Shawn Guo , Frank Li , linux-kernel@vger.kernel.org, Conor Dooley , Conor Dooley , Krzysztof Kozlowski , Rob Herring Subject: [PATCH v3 phy-next 6/8] dt-bindings: fsl: layerscape-dcfg: define DCFG_DCSR region Date: Mon, 20 Jul 2026 16:36:40 +0300 Message-Id: <20260720133642.136324-7-vladimir.oltean@nxp.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260720133642.136324-1-vladimir.oltean@nxp.com> References: <20260720133642.136324-1-vladimir.oltean@nxp.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: AS4PR10CA0005.EURPRD10.PROD.OUTLOOK.COM (2603:10a6:20b:5dc::13) To AM0PR04MB6900.eurprd04.prod.outlook.com (2603:10a6:208:17d::10) Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: AM0PR04MB6900:EE_|PR3PR04MB7259:EE_ X-MS-Office365-Filtering-Correlation-Id: 05d02c92-86fa-4e62-7f56-08dee663fbff X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|23010399003|19092799006|366016|7416014|376014|1800799024|3023799007|56012099006|5023799004|11063799006|10067099003|6133799003|18002099003|22082099003; X-Microsoft-Antispam-Message-Info: Ru9U42Nb8QoFgvNJPa2gXWbOd387WUxCOwJOJHyWj345gxy7B4mfJeJ/6w0aJlKwJHZhgF4G8KsF6MiWNwAt6/jrBYkPaOf+9Gh3UTasLFpoyw1H11zr7FbLtvAyWV419QU7E7lb2YUH7hPllSixr+dA7t+9OIUsb0fV5bUKMZXPOqOQkwSPEcijfFcYr+yme/UtJ9HS1yZB66cmxGAjyLwLgRHklsC5muhuZinMHCLTlec/jvsNBRt9s0O5cAB1aiAH5EZWmVlRaLkSdnD3gtYJKkONuALcZQYqyijJ7Su2QhxutEIwCpr5xlUl7VNYhIIbtFxMC0dK45UWrHHxb97EwIjPm+AfMkSk8Yr9nhCeIo6cUkqsePZlOWMTAdUsFapYowh0pIYrEW16LO6Uwvnr5PlRhW3JObwY250xbJzvzdUoZanzpVN+5KC17DdGzN1EQHQcUNHIQ2D17M9e/Xx0EOAu2rStjAAvVF3hpMGXfI+HV9O0wwHCJuVO6dvXjyAXjoIk3bSoBH1L5hXsTxLvi7e6hVZhI4eI5UgP05WZqAzQLeK5GlINJ8pRekaiTBJmdbBeabgiSlxIypyXbjwM27vRwisTk7bQpNQb7ZhCMQIzrv98tkfjNgIPxvbCGkUKwWMf4wZ7MTYKcxo15ssBnexBWpbLLVqpy5FUjik= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:AM0PR04MB6900.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(23010399003)(19092799006)(366016)(7416014)(376014)(1800799024)(3023799007)(56012099006)(5023799004)(11063799006)(10067099003)(6133799003)(18002099003)(22082099003);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?MgQYzMEWB87dVWaliCWK+AI/SsG8QrLVQi9oy171HYUYR/P4UoKeeZeZ0fMb?= =?us-ascii?Q?4vkl73x3bq1ZZFUFhGHRrsRCciVjjXhuksitUL7omsomQ1nEwxwB5GDOPQm/?= =?us-ascii?Q?EDlSZ8nuRZ1mVjxyxDCT+XubzAqQHhlQicXMxU+IhPM6XRZR2axTtC40Qsbo?= =?us-ascii?Q?UARPRwQLPAT2QM5UCzVwvtqTIgpgFCsfMVqzmJlgAqAhMifC2OxdqqlbvVP2?= =?us-ascii?Q?hHbwl8pioObVp0o0ggBEHXD35tHAwtC+yZsyRfxXRogHBBD2Fs+XBJnzMOTP?= =?us-ascii?Q?dbvUnbwVTlpSfaFerOakoPBZVuqdXGvj7rmw8MZTsMkiiU0ovrRJEUWd+6WS?= =?us-ascii?Q?60fjz6INpgOTJGeusrfB0EHC9K0vCMHAO29ZkA+JWTY5WNdCLAUnOUR3IfUr?= =?us-ascii?Q?j99ea9wZFQuS/oM5AqdgtUbw1ZlDDBNIbGOLWC1jIZ426kLVMCMB0oAE3dzl?= =?us-ascii?Q?WCRiTGrMN8l/ft613+UOjNGVWMtdbqYVbUFmea/3ax1qXb71tuGAJELfHVpu?= =?us-ascii?Q?e/9y2an0IpeD/miMj66dMhVtBy/P0+SIOq+zTSWGozaaR4twrpYFZqk6l80o?= =?us-ascii?Q?IgqR9SRCq6sILapTkLa5B7qdo3qWrywhkix8P/yBEsbV/ZHwBU30VnUJRwV+?= =?us-ascii?Q?YXulFxzReekLbXWFIXJbJQrpwqB2m1XeRXQwwaBIxALFwbjjruOzU9PH86gz?= =?us-ascii?Q?SsnFyT8np+Og7QHuZsJNjnltAFJriXF00JO+D4vtNto8l1XPRjkZoXPiDZD3?= =?us-ascii?Q?dTHY4Vn3/VUT6fULgg/T/YF9KUWA4RTx8Dey3rWBldsHnygCZJXVbDSJyX2o?= =?us-ascii?Q?e+R03zwWlN/rbuS+paQVap3c6oRgwmn94uO5z0ZhkC6I4qtBkwlm3FudUy+q?= =?us-ascii?Q?zkLvmT1yVJKfY6u+/AAduFRGz4mdMS2YMoU1QLzvLl1OLXj0nhCvLOpt/h7t?= =?us-ascii?Q?Jr4hUr5jFYG/Vus7XaAEtlWQZJ36+xzW4/AyYbmVZ2Tvuxmrz17y1G8cAEKy?= =?us-ascii?Q?y27LQ4vXpLCLDLVOsnFiOJMsv702weasS6bCSygHwfhwB+8HYUCqH+5EyoCJ?= =?us-ascii?Q?2YZnS085jFB3svsWuZOxy9e7iBH5WgxeAt7D705A4Y2JRJl2I/X73QP3M6fQ?= =?us-ascii?Q?H6uKUCABpslTwqWQhHcCNbdWKjR83RVrH9J1rEecSetj5eAWH7+IVZzULxu9?= =?us-ascii?Q?7CxpUqnjMx+Ez011xGasR8mDFGlBZgDUCXgM1+40fBpMezjq3IoNdcUnVvtP?= =?us-ascii?Q?b5OQ1atNvpXFWtEuYdSIYMiN72XpfBLYcOmGPzgNfHhImJEP+oFgSWldW6e9?= =?us-ascii?Q?62x95FsDxfYbzJAZtkryymKadKD7rhTiV+c+ORbOcNXH3vclqIMJ4VP62Soc?= =?us-ascii?Q?OsWoxG/HxjGdGPWi7pwbE6IMF8nMfkXpKj/JftiY9VdZqy4eRTmooFgHZOOR?= =?us-ascii?Q?sYWmC+idAi1iYXBKYBVdMkRMr8gHyqAtBMckjyG1JVT5eTyckdN0kcDsB8Lu?= =?us-ascii?Q?snFECKgQ6ls/y4WNbMS265ludpU2CkZIezTrylWUcIkitq71lwHdteRavnez?= =?us-ascii?Q?e0wroOxFQi67oGJaIqpThmF6jeyHQGzD/vcy/PyRWRzAIKlwpVui+vJmfJJM?= =?us-ascii?Q?f6oav2zsoRFF0Zg+bx27rkj7601XGJiS1Aqvem0rHR3+kw7bTD5Az/y1Z8HS?= =?us-ascii?Q?m4i7nwqcp1oW3pPwNqb4YLfQ0aOAV/3rE4M1OYmaeiW4yCluFdVhRdEbaurd?= =?us-ascii?Q?H6mSUhAU+w=3D=3D?= X-OriginatorOrg: nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: 05d02c92-86fa-4e62-7f56-08dee663fbff X-MS-Exchange-CrossTenant-AuthSource: AM0PR04MB6900.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 20 Jul 2026 13:37:03.8208 (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: qeJjwPSw8mQuWNmIShKb4eyWj7wQh0H0nI795gkoyXmh9ovtNx6SZ/RUeGGEQTaOk4H0S2S+L2dOR+KSCpwYNg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: PR3PR04MB7259 Content-Type: text/plain; charset="utf-8" In Layerscape (Arm) and QorIQ (PowerPC) devices, hardware peripherals are accessed by the CPU through a portion of the SoC address space called CCSR ("Configuration, Control, and Status Registers"). All hardware IP blocks have their registers mapped here, and the Device Configuration block makes no exception. However, there exists a secondary range of the address space named DCSR ("Debug Control and Status Registers") which, like CCSR, also holds registers of hardware IP blocks, except the DCSR contents is hidden in all public reference manuals. The intention of the CCSR/DCSR split, to the best of my knowledge, was to place the functionality that is too low level for normal use, and which is necessary only for debug, in a completely separate address space which can be hidden. A use case has appeared where networking SerDes lanes need to be reconfigured at runtime for a different protocol (example: 10GBase-R to SGMII), and the architecture of the SoCs does not normally permit that. The Reset Configuration Word (RCW) is a data structure read by the SoC preboot loader (PBL) which contains stuff like pinmuxing and SerDes protocol mapping for each lane. The RCW that the PBL has loaded is visible in the DCFG block's normal status registers (from CCSR), as read only. Turns out, the RCW is also mapped in the DCFG's shadow register map (in DCSR), in a write-only form. Writing to the RCW registers from the DCFG's DCSR space to change what the PBL has loaded is called "RCW override". It has been validated that the RCW override procedure is necessary to reconfigure the networking data path when a SerDes lane performs a major protocol change. It changes some internal muxes which connect the PCS to either the 10G MAC or to the 1G MAC. Defining the DCSR area of the DCFG as a secondary 'reg' array element allows operating systems to perform RCW overrides. Since it is introduced late in the binding's lifetime, it is optional. It can be identified by name, but also by index (first 'reg' is CCSR). Note that while all SoCs should have a DCFG register block in DCSR, we only need to expose it for the SoCs where the RCW override procedure is known to be needed and has been validated. Signed-off-by: Vladimir Oltean Reviewed-by: Conor Dooley --- Cc: Conor Dooley Cc: Krzysztof Kozlowski Cc: Rob Herring v2->v3: none v1->v2: - add Conor's review tag - update email addresses of DT maintainers --- .../bindings/soc/fsl/fsl,layerscape-dcfg.yaml | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/Documentation/devicetree/bindings/soc/fsl/fsl,layerscape-dcfg.= yaml b/Documentation/devicetree/bindings/soc/fsl/fsl,layerscape-dcfg.yaml index 3fb0534ea597..fc14fd0bf84b 100644 --- a/Documentation/devicetree/bindings/soc/fsl/fsl,layerscape-dcfg.yaml +++ b/Documentation/devicetree/bindings/soc/fsl/fsl,layerscape-dcfg.yaml @@ -36,7 +36,20 @@ properties: - const: simple-mfd =20 reg: - maxItems: 1 + minItems: 1 + items: + - description: + Customer-visible DCFG register map from CCSR address space + (Configuration, Control and Status Registers) + - description: + Customer-hidden DCFG register map from DCSR address space + (Debug Control and Status Registers) + + reg-names: + minItems: 1 + items: + - const: dcfg_ccsr + - const: dcfg_dcsr =20 little-endian: true big-endian: true --=20 2.34.1 From nobody Sat Jul 25 02:35:48 2026 Received: from PA4PR04CU001.outbound.protection.outlook.com (mail-francecentralazon11013012.outbound.protection.outlook.com [40.107.162.12]) (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 CE45842A166; Mon, 20 Jul 2026 13:37:08 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.107.162.12 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1784554630; cv=fail; b=fodAy6/MbCg2KUxVp4SCEiuNjIRv7gtv5YGm6by0HoY55NAib3+pZvNEx6ud6uRbAel87FUfY6oKG5a7CpSYfjxgvLlvCoU2y/LZYB+904fAtJUH3sFGTDq92ELuN6OvAsqa2ggWZZYycqNihUat4R9KM8hz5a4UfQi304I+Df8= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1784554630; c=relaxed/simple; bh=OQqzuiIpIyNio7c9UxD+t/H9BAg4+SXq1sZomQVwBQo=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: Content-Type:MIME-Version; b=tgA35FkpA0Is27liCfSsE4WQrNLx7Va+A24CcyBnnfpN9hix9jAxj7yHfWCt0cH+loFIn6KXjglA9bkjLI7RM0jlf/CnvckyyKRV4lt1yUlxqyLzOhzTN1I1Q5paAnAjAn50+ojs6BKrq3SiIk70Lr5fG3s1NuUq0TEHCt02+Og= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=nxp.com; spf=pass smtp.mailfrom=nxp.com; dkim=pass (2048-bit key) header.d=nxp.com header.i=@nxp.com header.b=TecSlU16; arc=fail smtp.client-ip=40.107.162.12 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=nxp.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=nxp.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=nxp.com header.i=@nxp.com header.b="TecSlU16" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=VcDGU6GdxCeXQSj4TSjhy/jnjOfYuVtXyFaA8LGcuFnhOjg4RCx/6XwxmnhkVQDzbUrd2WJFuLiRvb/lcEv1wLV4MfHN6+7IfmbimOGlJuNC0r/mkMku1EVDxAss1Lwonzo52KpWuFOfn3tTBLxxrxNS9sZIf8hHKnyWffd5DfdFQZmWS36VaK2OTnfcvonu/7sZVEnJskbmcN5IGbAtkEpYZNWZZLMBgjv0lV6uF0gXOIPDYL5XqooelqNLipMja1jmbVMcNNAx9Oq3IzKl1hCfpFbzg4SD+oo876zO0NQ0PHHAZmBohmxFawXnlAbc4U3qGf+j6gXc9JTP1+pEPg== 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=mA0nRveog1qyyZLfvlwcHDdyGrC3b7/FKY4r+PiCLfE=; b=kwppLaa5WqQt02fwU2DT+eKbmDVwsDDIDYABMkGTdjQ2v51oVfIjri7SDgRLiCF46utmTxDoj7xd8NtaKGTSN+OStVpafnroHOLllwq3UFtzl21952JK0gsdhjAGGnZX7hWKZtQu4F76E3S+aOKKdLvEHKhhn3rdajm+R3MaBEUhbXzYBsSu6OiKUNpX30wAP6IEh7ptWgqQgE2jhvKSQ0S/3wflZxig3hEtTcsrotKilJ9qwH71U6tohIdb7tSeteazTPvUaLgaI4unbC2pBho0vZY8+5v43RbuTa0Cd2uDQMZUtm1hLl7ZwpFztQZipiRdjWubqw7i0n740OlX1g== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=nxp.com; dmarc=pass action=none header.from=nxp.com; dkim=pass header.d=nxp.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=nxp.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=mA0nRveog1qyyZLfvlwcHDdyGrC3b7/FKY4r+PiCLfE=; b=TecSlU16YpDt7xz4tRN9b4SmNQfsUIVdpYjKOwF1GwhfQ8qB9Vd0CxGVx+66oVX9TwvioDFTa7Qu5GZnSMotRMvJiWeUOS/6F5WHSG/pH5i0xLQYxOSBqk5Za5bZ8z1OGR5MigwPxoRRT3cY/LLjgyPzClH9qgd2nMStzwSDU856qcHs2LwS3wsfuGHi6KUVVsG+esWgI7N05COZrMEtNhr/SswQGMqWlPC2MOEqx3dTzOFBQHNrCXVknEWVIdnp3xaGBN68ZeosPdUOQFwBiIghQ4liv4ZhHZKZU4EoZ+dyUE17wNP87W+/CGLNImY7pObR309goPTRgOy3YBbFKg== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=nxp.com; Received: from AM0PR04MB6900.eurprd04.prod.outlook.com (2603:10a6:208:17d::10) by PR3PR04MB7259.eurprd04.prod.outlook.com (2603:10a6:102:8a::18) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.223.18; Mon, 20 Jul 2026 13:37:07 +0000 Received: from AM0PR04MB6900.eurprd04.prod.outlook.com ([fe80::7fda:8431:ca1b:b023]) by AM0PR04MB6900.eurprd04.prod.outlook.com ([fe80::7fda:8431:ca1b:b023%5]) with mapi id 15.21.0223.017; Mon, 20 Jul 2026 13:37:05 +0000 From: Vladimir Oltean To: linux-phy@lists.infradead.org Cc: devicetree@vger.kernel.org, linuxppc-dev@lists.ozlabs.org, linux-arm-kernel@lists.infradead.org, Ioana Ciornei , Vinod Koul , Neil Armstrong , Tanjeff Moos , "Christophe Leroy (CS GROUP)" , Michael Walle , Shawn Guo , Frank Li , linux-kernel@vger.kernel.org Subject: [PATCH v3 phy-next 7/8] soc: fsl: guts: implement the RCW override procedure Date: Mon, 20 Jul 2026 16:36:41 +0300 Message-Id: <20260720133642.136324-8-vladimir.oltean@nxp.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260720133642.136324-1-vladimir.oltean@nxp.com> References: <20260720133642.136324-1-vladimir.oltean@nxp.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: AS4PR10CA0001.EURPRD10.PROD.OUTLOOK.COM (2603:10a6:20b:5dc::17) To AM0PR04MB6900.eurprd04.prod.outlook.com (2603:10a6:208:17d::10) Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: AM0PR04MB6900:EE_|PR3PR04MB7259:EE_ X-MS-Office365-Filtering-Correlation-Id: 153cb9ce-37bb-42cf-f88a-08dee663fd32 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|23010399003|19092799006|366016|7416014|376014|1800799024|3023799007|56012099006|11063799006|10067099003|6133799003|18002099003|22082099003; X-Microsoft-Antispam-Message-Info: pxGL7g2p0qbq2YR0sT1YUBUevoXyUIJ/sTV25npf0ws+dri6coh+7K0d83XWxES1GNFu5JolvVNIBhJOiEbdT0WNH8yMlhU7r1mJXXtbpWArsiyuQ/Zhquau4cfnTosgEUx6lQP/OEwuJ4j/JszhmQty79wWIWWlwYcD1cB/ayW23SVFq5wBGPIJ/MnEPbVLZvkVEqylL3BatpwuEmJ0TXcWySFz7BxD0fWbqUGRmXU63GEmPyw/K8ZbuWS2qN6vPlailQ+pzoCTz2ap4edAxhiM2sKovOKfGk6HRWh7QMPh9BFrxR8/7M+5fA97+3uZ01LETY4KAlYc62/D80SarhpnfV6pkyCjVQLgiBI046lRpaVp4vrK+eDE80nRlCZoZo8FVnFqTUplTbvljyMypEnTrNeXVGO4AJI9MTtyC9Gbzb762MVa641qUPLQyFbuFyWGHfx0wFJOxVaJm2gwH5LuOjRoyfsJxvNTAlb4gA0IEwKPvZTmbXI64/48q6kh7tPYkRLaQQRxsSRfcq1xdpmUhvEIV8/Qjd4M3KJinfnMlE4AxKpAJ8AD/AXu8YSqzigPeft5KnrNuhf0UZ6hCYZExbAPYEqLcMMyN4saSxuIrdivV+CqFJ8oUUne+ngBhyz4jYnrFH/hSQLhAlkQvgw/YfE7tCSIqRb5D/IPW9I= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:AM0PR04MB6900.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(23010399003)(19092799006)(366016)(7416014)(376014)(1800799024)(3023799007)(56012099006)(11063799006)(10067099003)(6133799003)(18002099003)(22082099003);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?HI5uqGlQSbSydQTbxroyIMxUd3g2sQYTlPh/qCErRiPhe3z1syAOddEY4W7g?= =?us-ascii?Q?9yUJVnXLEcNb4jeZRpACc0+eEuHPVoczKJgIIuqLDhUPbPP4GG31l12Z+iOe?= =?us-ascii?Q?bLq0vjkUl5A6YhzQ3q4KNXJ0SGombgXlRoRQIntDewOb265xo6g0D+4ESAAV?= =?us-ascii?Q?FAvo0j/UmcDHHePlQn72/sCIAKdVeJStGw8x3vuJfwNSCDfaJAGul6ivnJ07?= =?us-ascii?Q?Msb8IpGMCy1j1v4tTWlGJdTghnaKL4HJa9ApPZnvxlh3dEX1F+tkswWXKA8L?= =?us-ascii?Q?Auqs/UB8+Kfc2Qwg63EfnsbeJfmzA9+l0jxwGkGXR91y0c8uRS1sLGw84cjH?= =?us-ascii?Q?5EbLyszoHEE4WtMDJ/xPGlfBhCo8T/AYWlWhdm0zIScs4/6N4RBShI6fNZpw?= =?us-ascii?Q?KT8jox6OBwyLF3SJPWX4b+03AYzDpCSNAp2zd2shQWRUuXm4PjE6mXrGOnbo?= =?us-ascii?Q?pkLZEcRSoeQ8h8/3yD71wv/xqJyqmCmlYz4DEUmO9dD8rlvrh2ZPA4xp5eL7?= =?us-ascii?Q?mcNUqwOAN8inkwTrdg8blB1DU/Y3yJans8bbX+T8mFLBiZA6upbiS8y62xPx?= =?us-ascii?Q?PouF5WACgDPbtFW48jYhXp+vDSCR5w4InhxCrkBAKEIpoVIO3uPjLfP9vB6X?= =?us-ascii?Q?cDfceT/LL8la0Q+akbHtnE0n3NuO8NI9H7B7VWpJylZ7SyPbBYJtqiXN3Z+o?= =?us-ascii?Q?oZjEudoN1TXLE1tA94Z0Z0M5iYnL0Y7m6Wj/b7VPlhQIE0p2h80Rg9rp1Fp2?= =?us-ascii?Q?yNFX4jg//oy8KmqVry1+R7XU4R74BwwPnxTP34B74mdsQQ8JqVWCxCaXdEnp?= =?us-ascii?Q?eExeSvk6karUSU0zvt2/DTo9Nau1vgdya1zbdO7J3EHMI4KbBF0RbIjKQqhd?= =?us-ascii?Q?pQGAxYBVxNV0N/kwsTCodiaJWbAJewYpxS+lTzbXILXt34MIEyv1jHMOAoaM?= =?us-ascii?Q?AYNX3eWLtFF2UJwiExC4dMXcQrY/R8eA6CtWROgpxiM3aihtmgHikA0bi8Ab?= =?us-ascii?Q?5RlA7Uajc9Nx73X9caGvStwgZneOcPwDGPf4PVhKguax+5g9YOaQFVTudCzB?= =?us-ascii?Q?oCDUelDvWmZ5HwPTVv+sxfdjjhQWaicqEKLBon0w3oWNMLbys9GPbnzQ1Tco?= =?us-ascii?Q?uCJ17kx5TKCRfXacHiRt/GPFkQ1b9699OvLXfjZVXqP1Fj6xmXgEyeOB3ZCH?= =?us-ascii?Q?HCjbB0bdUqLQ25l9tKWM+nalADZAsAB44f+5vhn7BtkrgX9Psg2Bl6Ejoopq?= =?us-ascii?Q?8/XVb/eqVfBGY7vSR2VtDeM6FcOp4CuZG8yLyKLkblsEQoSQ+YCIXPh8iGrx?= =?us-ascii?Q?6rxSNYN39CM4qyDAPkj2LroKKeSCE3oPaIQenS759lU6n3UynMg7Rn6SxNeF?= =?us-ascii?Q?mlpMbp9O/rX660Julu9ByStzOI9t7FWDtCcR/AOvgVX2sfgbQlJL4DTRqvQ6?= =?us-ascii?Q?A8RacFkeZYJTG85qM+s2vzh/xgyFbCeqYzCQYebf6mZyHVV5Xg1WL6R8Pdk7?= =?us-ascii?Q?ksd2KlRU8VTpi6dY7asjRF2fR1SDV8CBi23eila+SHEO45FdoItAVEfZM00C?= =?us-ascii?Q?oEe1ginhIcSvr3gkhkbqvIWRl8QbTZPqB451mHvotyssks1fUDfQy0tgCWvD?= =?us-ascii?Q?sFfeTIhq219VdIkNKY5ttMcA4Lt8hDP2/p/Drw9eYAzGtNPWs3W4VyQEP0N6?= =?us-ascii?Q?N95mZXs9DfzRLh4VxUtb7yF3i5USI0CE3ZpdKmK884tHicEh1yzz4fAHD+k+?= =?us-ascii?Q?qK/l0cQQzQ=3D=3D?= X-OriginatorOrg: nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: 153cb9ce-37bb-42cf-f88a-08dee663fd32 X-MS-Exchange-CrossTenant-AuthSource: AM0PR04MB6900.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 20 Jul 2026 13:37:05.8329 (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: VFwsCWqCoGKn9FZNA7Gi0nEbKTn/DdpjBQe906R+cr8FQpCVOE7BoIyaIVFTmqE7Ow4UDCcDtN4s5Ll/HQAbuQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: PR3PR04MB7259 Content-Type: text/plain; charset="utf-8" From: Ioana Ciornei Add support for the RCW override procedure which enables runtime reconfiguration of the protocol running on a SerDes lane. The procedure is done through the DCFG DCSR space which now can be defined as the second memory region of the guts DT node. Support is added on the following SoCs: LS1046A, LS1088A, LS2088A. The procedure is exported to the "client" driver - the Lynx10G SerDes PHY driver - through the following functions: - fsl_guts_lane_init() used to notify the initial / boot time lane mode running on a SerDes lane. - fsl_guts_lane_validate() used to validate that changing the protocol on a specific lane is supported. - fsl_guts_lane_set_mode() which can be used to request the RCW procedure be executed for a specific lane. Since the RCW override procedure is different depending on the SoC, the private fsl_soc_data structure is updated with two new per SoC callbacks (.serdes_get_rcw_override() and .serdes_init_rcwcr()) which get used from the generic fsl_guts_lane_set_mode() function. These two callbacks hide all the SoC specific register offsets, masks and values so that the _set_mode() procedure is straightforward. Signed-off-by: Ioana Ciornei Signed-off-by: Vladimir Oltean --- v2->v3: - move iounmap() of dcfg_dcsr area on the 'err' label - use __ffs() (standard API which also works on armv7) instead of __bf_shf() (an internal helper meant for compile-time constants in bitfield.h) - only operate on lanes on which fsl_guts_lane_init() was called in ls2088a_serdes_init_rcwcr() - use read_poll_timeout_atomic() in fsl_guts_rcw_rmw() to clarify that DCFG_DCSR writes are supposed to reflect back in DCFG_CCSR - check soc.data in fsl_guts_serdes_get_rcw_override() to ensure fsl_guts_init() succeeded - put parentheses around (lane) in LS1088A_RCWSR29_SRDS_PRTCL_S1_LNn() and LS1088A_RCWSR30_SRDS_PRTCL_S2_LNn() macro expressions v1->v2: - drop DT maintainers from explicit CC - keep devicetree@vger.kernel.org CCed on entire series - include missing - namespace SRDS_PRTCL values for LS1046A and LS1088A, even if they are the same. For LS1028A (not covered here) they are not. - prefix SRDS_CLK_SEL_{GMII,XGMII} with LS2088A_ - reorder alphanumerically (LS1046A should come before LS1088A) --- drivers/soc/fsl/guts.c | 343 ++++++++++++++++++++++++++++++++++++++- include/linux/fsl/guts.h | 20 ++- 2 files changed, 357 insertions(+), 6 deletions(-) diff --git a/drivers/soc/fsl/guts.c b/drivers/soc/fsl/guts.c index b9973ca3a440..4d49d1b95300 100644 --- a/drivers/soc/fsl/guts.c +++ b/drivers/soc/fsl/guts.c @@ -5,7 +5,10 @@ * Copyright (C) 2016 Freescale Semiconductor, Inc. */ =20 +#include +#include #include +#include #include #include #include @@ -15,6 +18,30 @@ #include =20 #define DCFG_CCSR 0 +#define DCFG_DCSR 1 + +#define MAX_NUM_LANES 8 +#define MAX_NUM_SERDES 2 + +#define RCW_TIMEOUT_US 1 + +#define LS1046A_RCWSR5_SRDS_PRTCL_S1(lane) \ + GENMASK(19 + 4 * (lane), 16 + 4 * (lane)) +#define LS1046A_SRDS_PRTCL_XFI 1 +#define LS1046A_SRDS_PRTCL_100BASEX_SGMII 3 + +#define LS1088A_RCWSR29_SRDS_PRTCL_S1_LNn(lane) \ + GENMASK(19 + 4 * (3 - (lane)), 16 + 4 * (3 - (lane))) +#define LS1088A_RCWSR30_SRDS_PRTCL_S2_LNn(lane) \ + GENMASK(3 + 4 * (3 - (lane)), 4 * (3 - (lane))) +#define LS1088A_SRDS_PRTCL_XFI 1 +#define LS1088A_SRDS_PRTCL_100BASEX_SGMII 3 + +#define LS2088A_RCWSR30_SRDS_CLK_EN_SEL_XGMII_S1 BIT(14) +#define LS2088A_RCWSR30_SRDS_CLK_SEL_XGMII_Ln_S1(lane) BIT(6 + (7 - (lane)= )) +#define LS2088A_RCWSR30_SRDS_CLK_SEL_MSK GENMASK(13, 6) +#define LS2088A_SRDS_CLK_SEL_XGMII 1 +#define LS2088A_SRDS_CLK_SEL_GMII 0 =20 struct fsl_soc_die_attr { char *die; @@ -22,9 +49,20 @@ struct fsl_soc_die_attr { u32 mask; }; =20 +struct fsl_soc_serdes_rcw_override { + int offset; + int mask; + int val; +}; + struct fsl_soc_data { const char *sfp_compat; u32 uid_offset; + int num_serdes; + int (*serdes_get_rcw_override)(int index, int lane, + enum lynx_lane_mode lane_mode, + struct fsl_soc_serdes_rcw_override *override); + int (*serdes_init_rcwcr)(int index); }; =20 enum qoriq_die { @@ -138,9 +176,14 @@ static const struct fsl_soc_die_attr fsl_soc_die[] =3D= { =20 static struct fsl_soc_guts { struct ccsr_guts __iomem *dcfg_ccsr; + struct ccsr_guts __iomem *dcfg_dcsr; const struct fsl_soc_data *data; bool little_endian; u32 svr; + enum lynx_lane_mode lane_mode[MAX_NUM_SERDES][MAX_NUM_LANES]; + unsigned long lanes_initialized[MAX_NUM_SERDES]; + bool rcwcr_init_done; + spinlock_t rcwcr_lock; /* serializes concurrent writes to the RCWCR */ } soc; =20 static unsigned int fsl_guts_read(const void __iomem *reg) @@ -151,6 +194,33 @@ static unsigned int fsl_guts_read(const void __iomem *= reg) return ioread32be(reg); } =20 +static void fsl_guts_write(void __iomem *reg, u32 val) +{ + if (soc.little_endian) + iowrite32(val, reg); + else + iowrite32be(val, reg); +} + +/* Some fields of the Reset Configuration Word (RCW) can be overridden at + * runtime by writing to the RCWCRn registers contained within the DCSR sp= ace + * of the Device Configuration (DCFG) block. The layout of the RCWCRn regi= sters + * is identical with the read-only RCWSRn from the CCSR space. + */ +static int fsl_guts_rcw_rmw(int offset, u32 val, u32 mask) +{ + u32 rcwcr, rcwsr =3D fsl_guts_read(&soc.dcfg_ccsr->rcwsr[offset]); + + rcwcr =3D rcwsr & ~mask; + rcwcr |=3D val; + fsl_guts_write(&soc.dcfg_dcsr->rcwcr[offset], rcwcr); + + /* Updates to RCWCR should be visible back in RCWSR */ + return read_poll_timeout_atomic(fsl_guts_read, rcwsr, rcwsr =3D=3D rcwcr, + 0, RCW_TIMEOUT_US, false, + &soc.dcfg_ccsr->rcwsr[offset]); +} + static bool fsl_soc_die_match_one(u32 svr, const struct fsl_soc_die_attr *= match) { return match->svr =3D=3D (svr & match->mask); @@ -167,6 +237,131 @@ static const struct fsl_soc_die_attr *fsl_soc_die_mat= ch( return NULL; } =20 +static int +fsl_guts_serdes_get_rcw_override(int serdes_idx, int lane, + enum lynx_lane_mode lane_mode, + struct fsl_soc_serdes_rcw_override *override) +{ + const struct fsl_soc_data *soc_data =3D soc.data; + + if (!soc_data) + return -ENODEV; + + if (serdes_idx >=3D soc_data->num_serdes || serdes_idx <=3D 0) + return -ERANGE; + + if (lane >=3D MAX_NUM_LANES || lane < 0) + return -ERANGE; + + if ((!fsl_soc_die_match_one(soc.svr, &fsl_soc_die[DIE_LS1088A]) && + !fsl_soc_die_match_one(soc.svr, &fsl_soc_die[DIE_LS2088A]) && + !fsl_soc_die_match_one(soc.svr, &fsl_soc_die[DIE_LS1046A])) || + !soc_data->serdes_get_rcw_override) { + pr_debug("RCW override not implemented for SoC\n"); + return -EINVAL; + } + + if (!soc.dcfg_dcsr) { + pr_debug("Device tree does not define DCFG_DCSR region necessary for RCW= override\n"); + return -EINVAL; + } + + return soc_data->serdes_get_rcw_override(serdes_idx, lane, lane_mode, + override); +} + +/** + * fsl_guts_lane_validate() - Validate that SerDes protocol is implemented= and + * supported on current SoC + * @serdes_idx: one-based SerDes block index + * @lane: zero-based lane index within SerDes + * @lane_mode: requested SerDes protocol + * + * Should be called before actually requesting the RCW override procedure = to be + * applied using %fsl_guts_lane_set_mode() + * + * Return: 0 if RCW override to protocol is possible, negative error other= wise + */ +int fsl_guts_lane_validate(int serdes_idx, int lane, enum lynx_lane_mode l= ane_mode) +{ + struct fsl_soc_serdes_rcw_override override; + + return fsl_guts_serdes_get_rcw_override(serdes_idx, lane, lane_mode, + &override); +} +EXPORT_SYMBOL_NS_GPL(fsl_guts_lane_validate, "FSL_GUTS"); + +/** + * fsl_guts_lane_init() - Notify guts module of current SerDes lane config= uration + * @serdes_idx: one-based SerDes block index + * @lane: zero-based lane index within SerDes + * @lane_mode: initial / boot time SerDes protocol for lane + * + * On the LS208xA SoC, the RCW override procedure needs to be aware of all= link + * modes which are configured on a SerDes block. + * + * Return: 0 if passed parameters are known to driver, negative error othe= rwise + */ +int fsl_guts_lane_init(int serdes_idx, int lane, enum lynx_lane_mode lane_= mode) +{ + int err; + + err =3D fsl_guts_lane_validate(serdes_idx, lane, lane_mode); + if (err) + return err; + + soc.lane_mode[serdes_idx - 1][lane] =3D lane_mode; + soc.lanes_initialized[serdes_idx - 1] |=3D BIT(lane); + + return 0; +} +EXPORT_SYMBOL_NS_GPL(fsl_guts_lane_init, "FSL_GUTS"); + +/** + * fsl_guts_lane_set_mode() - apply RCW override procedure for SerDes lane + * @serdes_idx: one-based SerDes block index + * @lane: zero-based lane index within SerDes + * @lane_mode: requested SerDes protocol + * + * Return: 0 on success, negative error otherwise + */ +int fsl_guts_lane_set_mode(int serdes_idx, int lane, enum lynx_lane_mode l= ane_mode) +{ + struct fsl_soc_serdes_rcw_override override; + int err; + + err =3D fsl_guts_serdes_get_rcw_override(serdes_idx, lane, lane_mode, + &override); + if (err) + return err; + + /* Ensure fsl_guts_lane_init() was previously called */ + if (!(soc.lanes_initialized[serdes_idx - 1] & BIT(lane))) + return -EINVAL; + + spin_lock(&soc.rcwcr_lock); + + if (soc.data->serdes_init_rcwcr) { + err =3D soc.data->serdes_init_rcwcr(serdes_idx); + if (err) + goto out_unlock; + } + + err =3D fsl_guts_rcw_rmw(override.offset, + override.val << __ffs(override.mask), + override.mask); + if (err) + pr_err("RCW override failed: %pe\n", ERR_PTR(err)); + else + soc.lane_mode[serdes_idx - 1][lane] =3D lane_mode; + +out_unlock: + spin_unlock(&soc.rcwcr_lock); + + return err; +} +EXPORT_SYMBOL_NS_GPL(fsl_guts_lane_set_mode, "FSL_GUTS"); + static u64 fsl_guts_get_soc_uid(const char *compat, unsigned int offset) { struct device_node *np; @@ -193,9 +388,143 @@ static u64 fsl_guts_get_soc_uid(const char *compat, u= nsigned int offset) return uid; } =20 +static int ls1046a_serdes_get_rcw_override(int index, int lane, + enum lynx_lane_mode lane_mode, + struct fsl_soc_serdes_rcw_override *override) +{ + /* The RCW override procedure has to write to different registers + * depending on the SerDes block index. + */ + switch (index) { + case 1: + override->offset =3D 4; + override->mask =3D LS1046A_RCWSR5_SRDS_PRTCL_S1(lane); + break; + default: + return -EINVAL; + } + + if (lynx_lane_mode_uses_xgmii_mac(lane_mode)) + override->val =3D LS1046A_SRDS_PRTCL_XFI; + else if (lynx_lane_mode_uses_gmii_mac(lane_mode)) + override->val =3D LS1046A_SRDS_PRTCL_100BASEX_SGMII; + else + return -EINVAL; + + return 0; +} + +static int ls1088a_serdes_get_rcw_override(int index, int lane, + enum lynx_lane_mode lane_mode, + struct fsl_soc_serdes_rcw_override *override) +{ + /* The RCW override procedure has to write to different registers + * depending on the SerDes block index. + */ + switch (index) { + case 1: + override->offset =3D 28; + override->mask =3D LS1088A_RCWSR29_SRDS_PRTCL_S1_LNn(lane); + break; + case 2: + override->offset =3D 29; + override->mask =3D LS1088A_RCWSR30_SRDS_PRTCL_S2_LNn(lane); + break; + default: + return -EINVAL; + } + + if (lynx_lane_mode_uses_xgmii_mac(lane_mode)) + override->val =3D LS1088A_SRDS_PRTCL_XFI; + else if (lynx_lane_mode_uses_gmii_mac(lane_mode)) + override->val =3D LS1088A_SRDS_PRTCL_100BASEX_SGMII; + else + return -EINVAL; + + return 0; +} + +static int ls2088a_serdes_get_rcw_override(int index, int lane, + enum lynx_lane_mode lane_mode, + struct fsl_soc_serdes_rcw_override *override) +{ + switch (index) { + case 1: + override->offset =3D 29; + override->mask =3D LS2088A_RCWSR30_SRDS_CLK_SEL_XGMII_Ln_S1(lane); + break; + default: + return -EINVAL; + } + + if (lynx_lane_mode_uses_xgmii_mac(lane_mode)) + override->val =3D LS2088A_SRDS_CLK_SEL_XGMII; + else if (lynx_lane_mode_uses_gmii_mac(lane_mode)) + override->val =3D LS2088A_SRDS_CLK_SEL_GMII; + else + return -EINVAL; + + return 0; +} + +static int ls2088a_serdes_init_rcwcr(int serdes_idx) +{ + int i, err; + u32 reg; + + /* SerDes 2 supports only SGMII for networking. There should be + * no need for RCW override + */ + if (serdes_idx !=3D 1) + return -EINVAL; + + if (soc.rcwcr_init_done) + return 0; + + /* SRDS_CLK_EN_SEL_XGMII_S1: SerDes Clock Enable Select XGMII Serdes 1: + * Enables to select GMII/XGMII clock according to + * SRDS_CLK_SEL_XGMII_Ln_S1 + */ + reg =3D LS2088A_RCWSR30_SRDS_CLK_EN_SEL_XGMII_S1; + + /* We need to configure the initial state of all lanes for + * the SerDes block #1 + */ + for_each_set_bit(i, &soc.lanes_initialized[serdes_idx - 1], MAX_NUM_LANES) + if (lynx_lane_mode_uses_xgmii_mac(soc.lane_mode[serdes_idx - 1][i])) + reg |=3D LS2088A_RCWSR30_SRDS_CLK_SEL_XGMII_Ln_S1(i); + + err =3D fsl_guts_rcw_rmw(29, reg, + LS2088A_RCWSR30_SRDS_CLK_EN_SEL_XGMII_S1 | + LS2088A_RCWSR30_SRDS_CLK_SEL_MSK); + if (err) + return err; + + soc.rcwcr_init_done =3D true; + + return 0; +} + +static const struct fsl_soc_data ls1088a_data =3D { + .serdes_get_rcw_override =3D ls1088a_serdes_get_rcw_override, + .num_serdes =3D 2, +}; + +static const struct fsl_soc_data ls1046a_data =3D { + .serdes_get_rcw_override =3D ls1046a_serdes_get_rcw_override, + .num_serdes =3D 2, +}; + +static const struct fsl_soc_data ls2088a_data =3D { + .serdes_get_rcw_override =3D ls2088a_serdes_get_rcw_override, + .serdes_init_rcwcr =3D ls2088a_serdes_init_rcwcr, + .num_serdes =3D 2, +}; + static const struct fsl_soc_data ls1028a_data =3D { .sfp_compat =3D "fsl,ls1028a-sfp", .uid_offset =3D 0x21c, + .num_serdes =3D 1, }; =20 /* @@ -221,10 +550,10 @@ static const struct of_device_id fsl_guts_of_match[] = =3D { { .compatible =3D "fsl,mpc8572-guts", }, { .compatible =3D "fsl,ls1021a-dcfg", }, { .compatible =3D "fsl,ls1043a-dcfg", }, - { .compatible =3D "fsl,ls2080a-dcfg", }, - { .compatible =3D "fsl,ls1088a-dcfg", }, + { .compatible =3D "fsl,ls2080a-dcfg", .data =3D &ls2088a_data}, + { .compatible =3D "fsl,ls1088a-dcfg", .data =3D &ls1088a_data}, { .compatible =3D "fsl,ls1012a-dcfg", }, - { .compatible =3D "fsl,ls1046a-dcfg", }, + { .compatible =3D "fsl,ls1046a-dcfg", .data =3D &ls1046a_data}, { .compatible =3D "fsl,lx2160a-dcfg", }, { .compatible =3D "fsl,ls1028a-dcfg", .data =3D &ls1028a_data}, {} @@ -250,6 +579,8 @@ static int __init fsl_guts_init(void) of_node_put(np); goto err_nomem; } + /* DCFG_DCSR is optional */ + soc.dcfg_dcsr =3D of_iomap(np, DCFG_DCSR); =20 soc.little_endian =3D of_property_read_bool(np, "little-endian"); soc.svr =3D fsl_guts_read(&soc.dcfg_ccsr->svr); @@ -296,6 +627,8 @@ static int __init fsl_guts_init(void) goto err; } =20 + spin_lock_init(&soc.rcwcr_lock); + pr_info("Machine: %s\n", soc_dev_attr->machine); pr_info("SoC family: %s\n", soc_dev_attr->family); pr_info("SoC ID: %s, Revision: %s\n", @@ -311,6 +644,10 @@ static int __init fsl_guts_init(void) kfree(soc_dev_attr->revision); kfree(soc_dev_attr->serial_number); kfree(soc_dev_attr); + if (soc.dcfg_dcsr) { + iounmap(soc.dcfg_dcsr); + soc.dcfg_dcsr =3D NULL; + } if (soc.dcfg_ccsr) { iounmap(soc.dcfg_ccsr); soc.dcfg_ccsr =3D NULL; diff --git a/include/linux/fsl/guts.h b/include/linux/fsl/guts.h index fdb55ca47a4f..605300908a35 100644 --- a/include/linux/fsl/guts.h +++ b/include/linux/fsl/guts.h @@ -13,6 +13,7 @@ =20 #include #include +#include =20 /* * Global Utility Registers. @@ -91,9 +92,15 @@ struct ccsr_guts { u32 iovselsr; /* 0x.00c0 - I/O voltage select status register Called 'elbcvselcr' on 86xx SOCs */ u8 res0c4[0x100 - 0xc4]; - u32 rcwsr[16]; /* 0x.0100 - Reset Control Word Status registers - There are 16 registers */ - u8 res140[0x224 - 0x140]; + /* 0x.0100 - read-only Reset Configuration Word Status registers in + * CCSR, or write-only Reset Configuration Word Control registers in + * DCSR. In both cases there are 32 registers. + */ + union { + u32 rcwsr[32]; + u32 rcwcr[32]; + }; + u8 res180[0x224 - 0x180]; u32 iodelay1; /* 0x.0224 - IO delay control register 1 */ u32 iodelay2; /* 0x.0228 - IO delay control register 2 */ u8 res22c[0x604 - 0x22c]; @@ -131,6 +138,13 @@ struct ccsr_guts { u32 srds2cr1; /* 0x.0f44 - SerDes2 Control Register 0 */ } __attribute__ ((packed)); =20 +int fsl_guts_lane_init(int serdes_idx, int lane, + enum lynx_lane_mode lane_mode); +int fsl_guts_lane_validate(int serdes_idx, int lane, + enum lynx_lane_mode lane_mode); +int fsl_guts_lane_set_mode(int serdes_idx, int lane, + enum lynx_lane_mode lane_mode); + /* Alternate function signal multiplex control */ #define MPC85xx_PMUXCR_QE(x) (0x8000 >> (x)) =20 --=20 2.34.1 From nobody Sat Jul 25 02:35:48 2026 Received: from PA4PR04CU001.outbound.protection.outlook.com (mail-francecentralazon11013012.outbound.protection.outlook.com [40.107.162.12]) (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 35C8D4195A0; Mon, 20 Jul 2026 13:37:11 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.107.162.12 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1784554632; cv=fail; b=ikExuAMCphcYUTzM+fyEZQWMSLNbrmc2BfzHBJ1r6qjj88ikh0DKTryhkkikHR7S5g9Q5huu9q188ZkUS0UfLqvdl6VBbkSL1GTiVcG2s0QqtovXPbt6B+Wj4686qI3n673J8/Gp+rhkhai07odWyUI9/6srKHhbHfCVaZuZIP4= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1784554632; c=relaxed/simple; bh=fpc9hxP2OPM1Z/0gRN85PgXS7wD6hhE0pKc3H2Wlc3M=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: Content-Type:MIME-Version; b=ZmS8gtXhci6+07e2/gP3Q1MUiBYJ5dLLFVT3/KxhEKtfiAyzqxx+acI6zbzvXO4nVsi5z7UQJLNnADVbQJQWQsvFU6N67X9nn1MEMVNo48+DxhvVLliaM7WuYxAk83ilTqSuEimJgXLluyw2VoFxyiMYl7K2q71E9RetQSwvB9M= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=nxp.com; spf=pass smtp.mailfrom=nxp.com; dkim=pass (2048-bit key) header.d=nxp.com header.i=@nxp.com header.b=PL5ma+2x; arc=fail smtp.client-ip=40.107.162.12 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=nxp.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=nxp.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=nxp.com header.i=@nxp.com header.b="PL5ma+2x" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=b9R/aWo49LawSMx6yqWcrsLkCmOVlVrjQtkhHkqBPpnCGZ2zoXfSufPJA84KQHC/rq9kIOQObgKnlAdRH96XHw2QzV9C37bVzYmfYBQdypEWSMUgA+UIhYodurkkSeOHdpdaopsRMjVjAMIbvRexfEQdKw43Y0lam1yL7r7SKAxvB8GgMc6ngnT4J+5u/WhvQl5nf9zMqA2o/d6hPlHiw8XSuzBnzxNA0J/TbjlE6drulcANBdUTsx/6A55/o+3k3hRK1qGyJMjRyGPCeF9BrRFz3iIxIvGBL+WMstTkt6VrgLbsY0wdIlsbUz/6wJN2mAKHkftGaN1OQtwy2u4yvg== 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=czgduSDav/edvxpU/ItYxUu9iycZCPfau5aOpO5fZ2Q=; b=ivcgFOfWrncaYDOggJr6kZvM4Wcfs2cVJPHP9SykHQC3+Cq9l+ANwlWRHHMVmwJcyITPn2/MvJcAsVbO3+kgpV0aSHxx7t13gOGGOXbdciP5TsVkrskfTQ28qHyEEeZgfXj+rEl/+rwiRNN0nswNIbtBng6gDcZRu1J4rR11NWPRWPpuynZgixGmgJ4MpMgK4ro0YnLLrYcTeUWI+yF+mAFeOk8M9mrnVVHagyG9zFIBnHWbChDHMUNmaS7FqlifVt/Efqzuy8ZcDOzYN8mjy0rPzPmNuUMV12143RsDUkUIZSut1pUO/OYPo9nC/xNiEp4DksYy5KufZjQPUiSvZQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=nxp.com; dmarc=pass action=none header.from=nxp.com; dkim=pass header.d=nxp.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=nxp.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=czgduSDav/edvxpU/ItYxUu9iycZCPfau5aOpO5fZ2Q=; b=PL5ma+2xPjwJAtbQz7eXn9aL/p7QJLGO5lfDsxkqZn750rx4N9CRcLwv+3NM1Ai8m4ZZdTMMbB5/tZwWVjPMS7gVPc4I9VcC0KnLIMzKlJkgOqGVHUlUwQ4Ks32RcEttWDuwxXA+4JXVQzWL8E8HEgB17mXV02auKQBp65jOO29IUwcLXBmZY4OLQBhIXM0mqTE7EdckZsUdkLt5oebFNZckH6OtG4owwa8PLDWClRZLNacMj15eSpJstlRZ0VEuePsZdA7TOHuoo/MkfVLQZopJKo47UgJCLUEne0FgWW/86hIcEbEqyF0E//ksRQvqzhNgJfVQBSdZf2UEneAZvQ== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=nxp.com; Received: from AM0PR04MB6900.eurprd04.prod.outlook.com (2603:10a6:208:17d::10) by PR3PR04MB7259.eurprd04.prod.outlook.com (2603:10a6:102:8a::18) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.223.18; Mon, 20 Jul 2026 13:37:07 +0000 Received: from AM0PR04MB6900.eurprd04.prod.outlook.com ([fe80::7fda:8431:ca1b:b023]) by AM0PR04MB6900.eurprd04.prod.outlook.com ([fe80::7fda:8431:ca1b:b023%5]) with mapi id 15.21.0223.017; Mon, 20 Jul 2026 13:37:07 +0000 From: Vladimir Oltean To: linux-phy@lists.infradead.org Cc: devicetree@vger.kernel.org, linuxppc-dev@lists.ozlabs.org, linux-arm-kernel@lists.infradead.org, Ioana Ciornei , Vinod Koul , Neil Armstrong , Tanjeff Moos , "Christophe Leroy (CS GROUP)" , Michael Walle , Shawn Guo , Frank Li , linux-kernel@vger.kernel.org Subject: [PATCH v3 phy-next 8/8] phy: lynx-10g: use RCW override procedure for dynamic protocol change Date: Mon, 20 Jul 2026 16:36:42 +0300 Message-Id: <20260720133642.136324-9-vladimir.oltean@nxp.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260720133642.136324-1-vladimir.oltean@nxp.com> References: <20260720133642.136324-1-vladimir.oltean@nxp.com> Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: AS4PR10CA0005.EURPRD10.PROD.OUTLOOK.COM (2603:10a6:20b:5dc::13) To AM0PR04MB6900.eurprd04.prod.outlook.com (2603:10a6:208:17d::10) Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: AM0PR04MB6900:EE_|PR3PR04MB7259:EE_ X-MS-Office365-Filtering-Correlation-Id: 4c92c420-f528-463d-2085-08dee663fe38 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|23010399003|19092799006|366016|7416014|376014|1800799024|3023799007|56012099006|11063799006|10067099003|6133799003|18002099003|22082099003; X-Microsoft-Antispam-Message-Info: tvpzQS18WyIkk2NR5EmxGMQ4Qt1w5+sQrGQzV+Dh14xPLkCDFGeEFynqspWWEQnRNV3we/FQSfDmZ/NT6U0g8TD5n0S8pEMjpqgrBv9QS7Zk7j49DjYf3JjfC/tpalBppoG1u9qEmEEInXE28F0qZ8yQEKNnOwqBQwugJNj9PSRvVWnwPJNwAe31UGnNUyJpMsQOux9wFqkNLujqn/19n+OKjV3cVjgPuZZOGRitLz6zMvdVEvC1PPXvSnDMwED0HnAsobt+m5gdxK7tu3EQWgx7yApRDfL5hsN/7M6ElmEw8XRPdKRLKWnT2kSocj+AoAz1vnkbXXFasmp0AmaYKTBXMlkOog2LwwjroPQMmiqI5fLY5P2Y4dk2SS8ixTxdSOcVOfIHNAcNALWXilozQ2ZCnhNbcjhlVdjEoU6DRIGzh1DmjBik2wXfWHV4LWgq6p0N2cPIgkGwPVBsW0TgDIi9AKp2UsI34Dq6RpYArGeoOLaGqgMwk2xIX2YqY1KnPgxh3V8/glwn8GQM2Uw6obTeP40FOXQU5riEpqAR1qY1ccB2a2JQWw32esvpxT18tV1roFPfjk+17nk8F97zmKu5kJgnyaFhQ5mYA/ULiCul2bz7KGVyAJjTtl1lerhF1uHscpRbd7sjhhE8uOy7hOM5DoeRDfEtvlM/ttb8Kfw= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:AM0PR04MB6900.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(23010399003)(19092799006)(366016)(7416014)(376014)(1800799024)(3023799007)(56012099006)(11063799006)(10067099003)(6133799003)(18002099003)(22082099003);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?aquV2TVtJPVEZgrAQVeiooWHiYiJxi/2HAMwzgpTtckoovoc2R5zTwta1fjw?= =?us-ascii?Q?uxmpV7PwizLr9EkitovLPORF5nKIE35QAOVaCfdyARAr1iFDOdryvX/9FCp3?= =?us-ascii?Q?1Z5w5PlShxnO/079DDud5WlB3qRHXazANPhPbHmoOAzv1uxwv9pKM8eHRcD1?= =?us-ascii?Q?repWzPBhvoe/2MHGArfxXCJ+mvuRGdvI1VdEtbPUU0zQa4kW0nDPT08PHYN6?= =?us-ascii?Q?PTfmStflEqtscNeVSoF/cSWAlOLvcBRHSrlo+p2FHoDo0tRXBKS357CywD/M?= =?us-ascii?Q?j5zy0DCJG/TeJ1XS4LXaJVvwFCbGgE9avxtrPoVO34liSxaaZzD+AGXyENq4?= =?us-ascii?Q?uS7rM1cXDV9mRGXLWTRdFhpm+iYKd9gMraS6qT0t/SZxcSxoqxIPsHy5SJ+4?= =?us-ascii?Q?8jcQrhm5YgPtjrnjR+88zaAHhj0ftZqZcsCq4GlcK/FmAjY/ZjIRqmERlJcL?= =?us-ascii?Q?FiWXkPsCZQhAViKHzIaCXM/pUFxkA/DDlvHOR9zXkQdN07figF3/7LQ7RkWB?= =?us-ascii?Q?Z6iqHnAgke1HLJ35btmDLN5DayLdf0mOPnuh7W/iWhRmm9r7o2Xq+Ikf/sL/?= =?us-ascii?Q?jgq9bYcehduBRx6iXCDxNDzpnelTXkeIKe2TZbGkbdUVczHEJc6y+JXVTghB?= =?us-ascii?Q?SJqeGXPecVoP8nb4SpvQRJ8R+JB5waVAy36LW8bNRv+DH1GVeGzdqyAYkW2y?= =?us-ascii?Q?+pPD6do3jMs5d11gI2aiacRs2dHmSCzdjCjNU33JHL+tKwBUwQNUI9/EqU0g?= =?us-ascii?Q?1ZG+PR9mSm1i3qY0ppvy5HCFuNnMqvTUHWl4595d909SE8+1grMJniCBOxtW?= =?us-ascii?Q?ceWNiBdiHLB7tEI60EzCOg0mcFAWCAH0VlgPsDwQoCINhFPRQ4sg+ulV3q5I?= =?us-ascii?Q?l9DuJkbwqeM7FtrQDl+fak8ABfNjpDMsUKy1aRu9V6r6sE4xL1Ha3X6u1c/L?= =?us-ascii?Q?5Lh8grAXZoloEcSd3bWAb3tz6sebEl7z2wNemFYp4E3Pn1rBTZ4Q3n8GwR/e?= =?us-ascii?Q?/bD/zy6yNBsYNdurizSBuZVSzY8NBeJlfAFlGjFL83olFUPerFkBwzMYIaWS?= =?us-ascii?Q?kwXIyXUAjjw2WU5C348PFW444kEmdCHfciTY1IhBRV35A18iqjV38mvBGgz0?= =?us-ascii?Q?OogY+Qu4EYFXia/CCBmBRmBldr/G+2IKwo80z24qXdOQgQWr4IIwXjJO4j0w?= =?us-ascii?Q?B3V35VLBlyk+wkQ+KcsB4/mNwJSRpMdQ3+NQFypjawyJps51TggANUj2+B8Q?= =?us-ascii?Q?VX5PYnXzBkiV2WLro8IuY8iy3KvxtMbtgvOuw3Pg3DG5QjIiPqcJ9Kne0g2b?= =?us-ascii?Q?pRipjvDMZGsSdyVPrrDwHR0utD57gSQhBfz6YM7mZ3QW5ty7knJ4i+pAFZ+N?= =?us-ascii?Q?I0Ch+ZJ+cwa6Y5sHVIsxDxf19aEpt3PPepq4/QCiEm2iWfVb7tWxtjVA3RcQ?= =?us-ascii?Q?6P4fTWALko3PB7j+y1fKVh3ylcsjXNsaDd7PWxl1/WVcFjZLCKKcWSW7fy7O?= =?us-ascii?Q?9pTLv7Yc5CBacSWqqEiAF+vDBJ/pww1P3VyAZyDKTsqWC+euWTs4SwNkn9PC?= =?us-ascii?Q?7JXIvj5LdbEHBJcaYq+B64BlFv5rM0EwvopzvJVo6EejFXrjEcZYYLHPWgJ4?= =?us-ascii?Q?nP2TzowAN3gf17GpJvojmnM7YOc/Hpo64B+CATZDxFfJgwz2KHtoomaWDBoN?= =?us-ascii?Q?p1FOIGPxZf610BTm6Y1IrDSSZiUGcCsa/eV4s2UGDPbuo7gDHUBtH4sJMofG?= =?us-ascii?Q?CXn/rQII0w=3D=3D?= X-OriginatorOrg: nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: 4c92c420-f528-463d-2085-08dee663fe38 X-MS-Exchange-CrossTenant-AuthSource: AM0PR04MB6900.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 20 Jul 2026 13:37:07.5548 (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: itZZvVp/DxCnSiJh9c83/MeR1nbHtRw5HbnwwaQhipqBVL+bEEbd7fahXD9DTIkI148kdqop+gHioVUg/qXz2g== X-MS-Exchange-Transport-CrossTenantHeadersStamped: PR3PR04MB7259 Content-Type: text/plain; charset="utf-8" Up until this patch, the only protocol change supported was between 1000Base-X/SGMII and 2500Base-X. The others require an RCW override procedure which was lacking. Since now the guts driver provides the means of applying this procedure, make use of it and remove any comment which mentioned the limitation. Signed-off-by: Vladimir Oltean --- v1->v3: none --- drivers/phy/freescale/Kconfig | 1 + drivers/phy/freescale/phy-fsl-lynx-10g.c | 24 +++++++++++++++--------- 2 files changed, 16 insertions(+), 9 deletions(-) diff --git a/drivers/phy/freescale/Kconfig b/drivers/phy/freescale/Kconfig index 5bf3864fbe64..d4e189fffbf8 100644 --- a/drivers/phy/freescale/Kconfig +++ b/drivers/phy/freescale/Kconfig @@ -58,6 +58,7 @@ config PHY_FSL_LYNX_10G tristate "Freescale Layerscape Lynx 10G SerDes PHY support" depends on OF depends on ARCH_LAYERSCAPE || COMPILE_TEST + select FSL_GUTS select GENERIC_PHY select PHY_FSL_LYNX_CORE help diff --git a/drivers/phy/freescale/phy-fsl-lynx-10g.c b/drivers/phy/freesca= le/phy-fsl-lynx-10g.c index 38def160ef1a..5ece7889aed7 100644 --- a/drivers/phy/freescale/phy-fsl-lynx-10g.c +++ b/drivers/phy/freescale/phy-fsl-lynx-10g.c @@ -8,6 +8,7 @@ #include #include #include +#include =20 #include "phy-fsl-lynx-core.h" =20 @@ -446,6 +447,7 @@ static void lynx_10g_lane_read_configuration(struct lyn= x_lane *lane) } =20 lynx_10g_backup_pccr_val(lane); + fsl_guts_lane_init(priv->info->index, lane->id, lane->mode); } =20 static int ls1028a_get_pccr(enum lynx_lane_mode lane_mode, int lane, @@ -1167,14 +1169,7 @@ static bool lynx_10g_lane_mode_needs_rcw_override(st= ruct lynx_lane *lane, =20 /* Major protocol changes, which involve changing the PCS connection to * the GMII MAC with the one to the XGMII MAC, require an RCW override - * procedure to reconfigure an internal mux, as documented here: - * https://lore.kernel.org/linux-phy/20230810102631.bvozjer3t67r67iy@skbu= f/ - * This is SoC-specific, and not yet implemented in drivers/soc/fsl/guts.= c. - * - * So the supported set of protocols depends on the initial lane mode. - * - * Minor protocol changes (SGMII <-> 1000Base-X <-> 2500Base-X or - * 10GBase-R <-> USXGMII) are supported. + * procedure to reconfigure an internal mux. */ if ((lynx_lane_mode_uses_gmii_mac(curr) && lynx_lane_mode_uses_xgmii_mac(new)) || @@ -1189,6 +1184,7 @@ static int lynx_10g_validate(struct phy *phy, enum ph= y_mode mode, int submode, union phy_configure_opts *opts) { struct lynx_lane *lane =3D phy_get_drvdata(phy); + struct lynx_priv *priv =3D lane->priv; enum lynx_lane_mode lane_mode; int err; =20 @@ -1197,7 +1193,8 @@ static int lynx_10g_validate(struct phy *phy, enum ph= y_mode mode, int submode, return err; =20 if (lynx_10g_lane_mode_needs_rcw_override(lane, lane_mode)) - return -EINVAL; + return fsl_guts_lane_validate(priv->info->index, lane->id, + lane_mode); =20 return 0; } @@ -1205,6 +1202,7 @@ static int lynx_10g_validate(struct phy *phy, enum ph= y_mode mode, int submode, static int lynx_10g_set_mode(struct phy *phy, enum phy_mode mode, int subm= ode) { struct lynx_lane *lane =3D phy_get_drvdata(phy); + struct lynx_priv *priv =3D lane->priv; bool powered_up =3D lane->powered_up; enum lynx_lane_mode lane_mode; int err; @@ -1225,6 +1223,13 @@ static int lynx_10g_set_mode(struct phy *phy, enum p= hy_mode mode, int submode) if (powered_up) lynx_10g_lane_halt(phy); =20 + if (lynx_10g_lane_mode_needs_rcw_override(lane, lane_mode)) { + err =3D fsl_guts_lane_set_mode(priv->info->index, lane->id, + lane_mode); + if (err) + goto out; + } + err =3D lynx_10g_lane_disable_pcvt(lane, lane->mode); if (err) goto out; @@ -1314,6 +1319,7 @@ static struct platform_driver lynx_10g_driver =3D { }; module_platform_driver(lynx_10g_driver); =20 +MODULE_IMPORT_NS("FSL_GUTS"); MODULE_IMPORT_NS("PHY_FSL_LYNX"); MODULE_AUTHOR("Ioana Ciornei "); MODULE_AUTHOR("Vladimir Oltean "); --=20 2.34.1