From patchwork Fri Feb 28 15:43:19 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andrei Botila X-Patchwork-Id: 13996673 X-Patchwork-Delegate: kuba@kernel.org Received: from EUR05-AM6-obe.outbound.protection.outlook.com (mail-am6eur05on2049.outbound.protection.outlook.com [40.107.22.49]) (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 65A47272933; Fri, 28 Feb 2025 15:43:50 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.107.22.49 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1740757432; cv=fail; b=dyp30l7ZpWS+zzZ5yolv+LTlETnOa7wP1Ca89+gDPjHwf6PWy/5bDA2qKGIAyFM735FLk59F+2DhjoqBf8Es01F1g3bhbUmMLmRWq9cu71dvmYaojYhuRpAGQbrx5IJBj3wTjrbLXsrZn0Qss+GOrshNlWikSrstrYtLOcn4Mv4= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1740757432; c=relaxed/simple; bh=DmBEzLDoHwWOeaF7EQihGUHLWJLqvG2PecepCW+rVPA=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: Content-Type:MIME-Version; b=XYLrOmLMrxHLxQDt2wFM7h082lzXISD3PcF9J59DOVN0Hh/pH/3q5DHB6ofnrnKDZsrCLx+5UEWFrKFYr+DePl9gLPwXALAcKhQFzMantfS3GjYlj2Am0ztLv8RcCBV5AQ9yyHDdF+khM2+gJIoVbu270fyF+f2kN4p2TrQsLLs= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=oss.nxp.com; spf=pass smtp.mailfrom=oss.nxp.com; dkim=pass (2048-bit key) header.d=NXP1.onmicrosoft.com header.i=@NXP1.onmicrosoft.com header.b=rkDqA8Hj; arc=fail smtp.client-ip=40.107.22.49 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=oss.nxp.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=oss.nxp.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=NXP1.onmicrosoft.com header.i=@NXP1.onmicrosoft.com header.b="rkDqA8Hj" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=eQYgjosLzAQq90bnhxuQKJYlJtvDYbWeN2wR+l9aw82wSTSpJs8qjZai9EwgYl6jj9ls69fNrl/l9JoFvzFurjoYkTow/Xuvvi2gEiQv2EJmoCzbk0VCNm2Ze3JQaKnGs+a4QlFYY4D4cJneslx/ryOp04x1I56Bdo8c97wnlfP9vKVIVgoYVtxjeBqNmR2CxDiWIba1ddWRV0sDmArJ0kNxMmsFFPAJjaazeqJbJ3nEz3Qz8h1YOqL/lhYOTJ6NGejGALp5FvOyJ1vLPbVhcCEX12uXhpR1IKNdE2uyWuECmeRI7tL2GzsNRATpK5bf4pYTlX/jyQMD0+0WD/wuBA== 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=No2IRQPYeOv5OYWNtn1+SUTCZrRlVo1kZm5YKrj0Xfc=; b=sTvuy9uEeaSeqUoiKjXDpLPrMpTbRpmjOjHBf+DfpVAT7eH+UTbxE8vy3hN2PGE8oxSgBZqMzcyJTV3MnFZWX0GdeTOAoNMfKy24ZnAfHNjhoBREHZzGGLtHGyOdmGu9UuVe+OQT4kd0dpu2Ij/VLM01qKzEI78MY++9B7TaeTejIpnSndSlLEODgpghUTP2Hyh0wOD6efhQ+PlAjsEJl8x2AFQbTj4XEBLQrywwEMBqhHK9GnxYsG5M19bl9O15SkYDklkHSUO6/+vLJf0FHPCgS4l5FEEMMG6yI/L13DwXu1iHEAzuBoQKg6H6KOAW4gy4UyiJFy3Rv+KRTpoXzA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=oss.nxp.com; dmarc=pass action=none header.from=oss.nxp.com; dkim=pass header.d=oss.nxp.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=NXP1.onmicrosoft.com; s=selector1-NXP1-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=No2IRQPYeOv5OYWNtn1+SUTCZrRlVo1kZm5YKrj0Xfc=; b=rkDqA8Hjhxy5jXJQD0px/Jr9foViSGIMkwDHYeU5mrMhSLiNMlZ/C0u4z0TelckCR07okCGnqY69asS2kXhJBKg5bzuAMfppHuCYNbBDJmYYIqIGj6crEmcvIwWuqrRCXvS2rOGsz9YBwBsi4e5wWXbQeBIFPYqFfgTBjyRCOK9t1hYlPhoOYxcL32Z2gooDtfNidOo/Ejq9zjfFrEjdW4WmHNSi6tgx+tulExbt56d9O+blyzSt3mfIf40DzCB9ZjX+WqxiCs302bt3lminHfHVF27BkfmT7YV7R2m89ewBTFEKx57IMQfYOLabBpxJbdaT7KEcAYnEIwnMr/muRA== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=oss.nxp.com; Received: from AS8PR04MB8216.eurprd04.prod.outlook.com (2603:10a6:20b:3f2::22) by DU4PR04MB11054.eurprd04.prod.outlook.com (2603:10a6:10:581::10) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8489.22; Fri, 28 Feb 2025 15:43:47 +0000 Received: from AS8PR04MB8216.eurprd04.prod.outlook.com ([fe80::f1:514e:3f1e:4e4a]) by AS8PR04MB8216.eurprd04.prod.outlook.com ([fe80::f1:514e:3f1e:4e4a%5]) with mapi id 15.20.8489.018; Fri, 28 Feb 2025 15:43:47 +0000 From: Andrei Botila To: Andrew Lunn , Heiner Kallweit , Russell King , "David S. Miller" , Eric Dumazet , Jakub Kicinski , Paolo Abeni Cc: netdev@vger.kernel.org, linux-kernel@vger.kernel.org, s32@nxp.com, Christophe Lizzi , Alberto Ruiz , Enric Balletbo , Andrei Botila Subject: [PATCH net-next v2 1/2] net: phy: nxp-c45-tja11xx: add match_phy_device to TJA1103/TJA1104 Date: Fri, 28 Feb 2025 17:43:19 +0200 Message-ID: <20250228154320.2979000-2-andrei.botila@oss.nxp.com> X-Mailer: git-send-email 2.48.1 In-Reply-To: <20250228154320.2979000-1-andrei.botila@oss.nxp.com> References: <20250228154320.2979000-1-andrei.botila@oss.nxp.com> X-ClientProxiedBy: AM0PR05CA0075.eurprd05.prod.outlook.com (2603:10a6:208:136::15) To AS8PR04MB8216.eurprd04.prod.outlook.com (2603:10a6:20b:3f2::22) Precedence: bulk X-Mailing-List: netdev@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: AS8PR04MB8216:EE_|DU4PR04MB11054:EE_ X-MS-Office365-Filtering-Correlation-Id: 749d443f-3754-4de8-32be-08dd580eb0c9 X-MS-Exchange-SharedMailbox-RoutingAgent-Processed: True X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|366016|376014|7416014|1800799024; X-Microsoft-Antispam-Message-Info: =?utf-8?q?ORsk6g2l+zz0sLz4TV05snfavpWcXvo?= =?utf-8?q?VxHzKBH//MvryQsdZuKgtd10sInluz9kHGtwnVF/afMHntGQyGD3S90rQW6zV2yP9?= =?utf-8?q?oLBPtZ3iY+7o71f6NCdnA+IG7iZ+yobR+MCzSyy1qG+p9er6ccfEVJX1Zlr3X9EyC?= =?utf-8?q?FfI6zoS5IQ4dtrd8k0kJ0Oz4PMqSPYNXHkZ7fs3nopc4TJIQ7u8mtvJH/4EOvZuHS?= =?utf-8?q?EjycA2K3JZpi7j4HdsksPZOOsMNqbCc6iGriuWUgI2iIgFrkB8AgnfaJaoZcjuPR6?= =?utf-8?q?5OVURc6W/d9aot8KyUQ1rIoVw4/nShyxUgAFdVEwnq3hSQrpm4KoR0TGXEfYdjO2X?= =?utf-8?q?y7Fdl6ewrrEnimctO3a/iu/s3w+VzEVGR6NjhtrIc21ssLrdeHFf3Sor3edokFgO4?= =?utf-8?q?8JYtWbzAokWBOWioe0x3/n1GDuDbsCxKHOaLoBEews2shvvrjFK+yB5Vl1PZ617yL?= =?utf-8?q?cvpGDpwpjKI6O/Yv1cozuHs5Gp41LLCHg3h7WmXXtr2SjMyFqYC/3rrTDOpEoXT8I?= =?utf-8?q?NSz5v+WmEljNTjUt09aUKjQQhMO+avcFIzfYseYbsT8bvYPG/BxOGERGCq5Q3SQE+?= =?utf-8?q?gUI93h7StsHnPHw6huyVwU+CDrWCObLfflYyWRu0vwvsZziroinlV7e5e8ImMpD8G?= =?utf-8?q?eq88au9zHVxfh1eIAiNtQqsA1dGvX911ZhXvlrEf6I+AMez/d19vv6lsg21SfMhgH?= =?utf-8?q?qCEdmrbtV/1ki0ofYSWWDiktFWhBSMHCshQnrBWNiqHsLUAlefkWhkW84c1s4G8Zx?= =?utf-8?q?3Q0IWFlY9tqAkt2uTXYFr1o4CIdSY7ednIm9Y8sOvLaoAPKJlYoQYFYiQyjYdMWzG?= =?utf-8?q?m8TXTTrwog7x2VzK6ryfE8KRI7GKl+rsjOdKypP37qFGTFRfh2keAq0uKeWgBkC0S?= =?utf-8?q?8+FGmBKoOLwhIgG7cHU6vPZ6+roS/HSVvxc+CY1Fl3dm/yNEIBFARy/UZz2P1nGFk?= =?utf-8?q?x33XrW7WtAu/HDX22Mrw2hRPYxWiqd5zlE9RdsMlIxg0qIH8/obWYfFHZeLqO4epc?= =?utf-8?q?fBRc+SLWAfi0y0SWEN5+H9xgOu4zVJdnKEDPrgmWI3ScrbckAxljJZf6z+iUoxGtG?= =?utf-8?q?DbXTqjbqLFH15oYxcFjzpFzDWFAILg8lpC+Rl5ySXNs5XxIF652yOBCNsgnPH0Mdg?= =?utf-8?q?Ph98ib1epvb9Il3PTw+IrYr4rSS0nRbS7CWRa1WVwzE5HA6Bf0DpDPEY1x3pRxAan?= =?utf-8?q?4sioBXm5fvVkzf05ZSk347UG9JPhkRUun+Pl5/aiPTXbL94JvRjqWKzvoxmSMfHUt?= =?utf-8?q?r6rFNiBj8tAyYMHUsPYZuDVdzDMso2xWqvigkNFE/BniTziJGBtiNtSrQvzcLpo8u?= =?utf-8?q?jTJCjYKOeT1/?= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:AS8PR04MB8216.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(366016)(376014)(7416014)(1800799024);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?q?imijHv9u4aN/A4cPwtwa4LqhkCtz?= =?utf-8?q?UsatbESIlp9UCB0rj2nbAfCZVJmEvmZTMJHZnK4TrhW62Y1DNnnVmw2XhZ4a4QNS5?= =?utf-8?q?1we09iepRuo8QCfpUDcJ5UxSkp5aM+lyGVOhMmTRorjjXS/r4kRi6dqZw3ORHkv5f?= =?utf-8?q?o+ywEm4IUZM6YkHeUYf2g55tq3ufnykzGxvYs8wGTIgnm3qMzPxydYGb5U6vDcBzD?= =?utf-8?q?V+tVHd4OPYn0GxZvZHLws/F0NN745ChsUpkb70GMoMyM/xZDgSlzkG1EmTOGdVggz?= =?utf-8?q?f6fv5S+V9F9rr05WARrTOoqgVLKMl7Ibor6d7z7n+jxlOm8FwGrvo1YSlAruK/jlX?= =?utf-8?q?Jyas+mdi9UAAVZqixrFBECvGP612OBM+S4GNivhZugRV3EQAYNyn9A4U0Ef4bD4UC?= =?utf-8?q?mf8tLvDsqFntj9tE+NXJ3tVlUjQ4f5LEOCpGCAwzpCd5W1DVOD8XD8/k+7XpXYS4D?= =?utf-8?q?f+YTFP/SBOzWGGHGxqCThrRIcy3dNP6sqzOQbA/ue4po5pKXB1N2JfHRnkXOB6ywP?= =?utf-8?q?pK1ud/Gchg59DhJV/dceYNJyvtICZjv35/ecGdr/Ay2EabdgCjvZIYN9r1pLD8CAs?= =?utf-8?q?QyWO04NMnl3KEyZkNs9kJ6qyYw51eVV2C/1MS7jbMypBZVzfcZDP+il5Gs49/VtAe?= =?utf-8?q?YAXGymR2B3Y2rsG2P4OSRHOGDxjsCpyfMWjOV4SC0G8f35WkKjv0N8F2R2ZnUUHs1?= =?utf-8?q?HyOeuF+V/4LJFElKWMwxBA9XzvCMMFsz5sFGFVzNIjTmpzffZ5K8Z84t6sE/eXMXC?= =?utf-8?q?U3b0D/BtjbeLrCY19/CrfoGRC5L+kxeEuA13YWQ3TuB5tYVoe/I/4JDfLwq+eheAo?= =?utf-8?q?nsWJ0gqTGBKpvSoKyOImWuJhziykbowiLJRVB764SZfHj77ZX4dkzEpDtuMoN2LeZ?= =?utf-8?q?xjjr50l7xkFf3mssrxZ2bUmFFMYmJTbsyarjo3us4DXeRcqo6sPR5bli9nS8xO/DU?= =?utf-8?q?SbHevu1VwFP49Vn4xV7t3W3n014n0+KCSNax4HK2Qic01W5H1BbFjhK/gWt10VSEx?= =?utf-8?q?cXsJ57uRCP/d6TaFepBweVn/dyJ1eo35y3Rlbu5oKtlSQxzoLjG0aOybF0a5wO+qg?= =?utf-8?q?+DFYbUM0Mp7mu+S9SrFKOg33eP6oE3baNY0aY+yhWMIL/m7uC4h+VVfH1nIPNze4b?= =?utf-8?q?I1YsAwEH4yPApyItukqleVuROvKQ1EMXnHk+JN01ulwaQL6B4y9/DM1ekmbVhIVl7?= =?utf-8?q?FYIHW1I9eH29w27WxxVbYy/daL+wT+RqgLaulNLwZNAFbNz8EsmlC5Kp24GwYzwHw?= =?utf-8?q?7Er50isZBaZzjhiYcNLd72z+ApcycdxAYNrRbJJRQ9Sv8PHjvIPZZiPHSUq+jISO0?= =?utf-8?q?X6M6qUbnlp3FbvpZasF1GNajFrcUsFdxkpfQsTeYcbaghHpkNPwMSMHxJkEr/n8qI?= =?utf-8?q?WyrBvKolN3OnncOweLDNWx/d5Fs9y9HYTA4EiIjUORt/fztpdWFGo4SRdqPmi79Ka?= =?utf-8?q?g+bX6NUQvi0fGViTgvVlkLn9Ae+KrtFmvrxHU2ebiTqVngQscB54l5Wa0dFW1rJck?= =?utf-8?q?6O/kSYDL/XAE?= X-OriginatorOrg: oss.nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: 749d443f-3754-4de8-32be-08dd580eb0c9 X-MS-Exchange-CrossTenant-AuthSource: AS8PR04MB8216.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 28 Feb 2025 15:43:47.6605 (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: /eYwSEimZvgnuIKyVkEab1x5UNvmPsSr26DdPyfBce66ZnKALFvGpBAyB4tD+WTV9KDoV+HaUybH7DqhkEj3yA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: DU4PR04MB11054 X-Patchwork-Delegate: kuba@kernel.org Add .match_phy_device for the existing TJAs to differentiate between TJA1103 and TJA1104. TJA1103 and TJA1104 share the same PHY_ID but TJA1104 has MACsec capabilities while TJA1103 doesn't. Signed-off-by: Andrei Botila Reviewed-by: Andrew Lunn --- drivers/net/phy/nxp-c45-tja11xx.c | 54 +++++++++++++++++++++++++++++-- 1 file changed, 52 insertions(+), 2 deletions(-) diff --git a/drivers/net/phy/nxp-c45-tja11xx.c b/drivers/net/phy/nxp-c45-tja11xx.c index 34231b5b9175..4013a17c205a 100644 --- a/drivers/net/phy/nxp-c45-tja11xx.c +++ b/drivers/net/phy/nxp-c45-tja11xx.c @@ -1,6 +1,6 @@ // SPDX-License-Identifier: GPL-2.0 /* NXP C45 PHY driver - * Copyright 2021-2023 NXP + * Copyright 2021-2025 NXP * Author: Radu Pirea */ @@ -19,6 +19,8 @@ #include "nxp-c45-tja11xx.h" +#define PHY_ID_MASK GENMASK(31, 4) +/* Same id: TJA1103, TJA1104 */ #define PHY_ID_TJA_1103 0x001BB010 #define PHY_ID_TJA_1120 0x001BB031 @@ -1888,6 +1890,30 @@ static void tja1120_nmi_handler(struct phy_device *phydev, } } +static int nxp_c45_macsec_ability(struct phy_device *phydev) +{ + bool macsec_ability; + int phy_abilities; + + phy_abilities = phy_read_mmd(phydev, MDIO_MMD_VEND1, + VEND1_PORT_ABILITIES); + macsec_ability = !!(phy_abilities & MACSEC_ABILITY); + + return macsec_ability; +} + +static int tja1103_match_phy_device(struct phy_device *phydev) +{ + return phy_id_compare(phydev->phy_id, PHY_ID_TJA_1103, PHY_ID_MASK) && + !nxp_c45_macsec_ability(phydev); +} + +static int tja1104_match_phy_device(struct phy_device *phydev) +{ + return phy_id_compare(phydev->phy_id, PHY_ID_TJA_1103, PHY_ID_MASK) && + nxp_c45_macsec_ability(phydev); +} + static const struct nxp_c45_regmap tja1120_regmap = { .vend1_ptp_clk_period = 0x1020, .vend1_event_msg_filt = 0x9010, @@ -1958,7 +1984,6 @@ static const struct nxp_c45_phy_data tja1120_phy_data = { static struct phy_driver nxp_c45_driver[] = { { - PHY_ID_MATCH_MODEL(PHY_ID_TJA_1103), .name = "NXP C45 TJA1103", .get_features = nxp_c45_get_features, .driver_data = &tja1103_phy_data, @@ -1980,6 +2005,31 @@ static struct phy_driver nxp_c45_driver[] = { .get_sqi = nxp_c45_get_sqi, .get_sqi_max = nxp_c45_get_sqi_max, .remove = nxp_c45_remove, + .match_phy_device = tja1103_match_phy_device, + }, + { + .name = "NXP C45 TJA1104", + .get_features = nxp_c45_get_features, + .driver_data = &tja1103_phy_data, + .probe = nxp_c45_probe, + .soft_reset = nxp_c45_soft_reset, + .config_aneg = genphy_c45_config_aneg, + .config_init = nxp_c45_config_init, + .config_intr = tja1103_config_intr, + .handle_interrupt = nxp_c45_handle_interrupt, + .read_status = genphy_c45_read_status, + .suspend = genphy_c45_pma_suspend, + .resume = genphy_c45_pma_resume, + .get_sset_count = nxp_c45_get_sset_count, + .get_strings = nxp_c45_get_strings, + .get_stats = nxp_c45_get_stats, + .cable_test_start = nxp_c45_cable_test_start, + .cable_test_get_status = nxp_c45_cable_test_get_status, + .set_loopback = genphy_c45_loopback, + .get_sqi = nxp_c45_get_sqi, + .get_sqi_max = nxp_c45_get_sqi_max, + .remove = nxp_c45_remove, + .match_phy_device = tja1104_match_phy_device, }, { PHY_ID_MATCH_MODEL(PHY_ID_TJA_1120),