From patchwork Tue Mar 4 18:37:26 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Dimitri Fedrau via B4 Relay X-Patchwork-Id: 14001257 X-Patchwork-Delegate: kuba@kernel.org Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (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 6CF0125F998; Tue, 4 Mar 2025 18:37:30 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1741113450; cv=none; b=bAR2RyeqlCriqECw1Gl9g9XBrXIcJO+yB1+wyMX0vFvuC7ghfUDAYJXG3tjEp4XG9hw4mdZzxuQMJri91DFAO3LgoPEHSKkDqNb9n0wV9En6PPtRuEbT0J2A7mUtO1CTljBUax8jNIxiHb5MEKnpFzAgE90Ke7qpTZZUhBA2wEU= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1741113450; c=relaxed/simple; bh=ddiQ9lMCoy/HM1LAnqoS1Q2D9uhj+IW9EVUrbaO2q7g=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=gqwrcdXjiPCwVc4Lqqj3n6cATtCACoi1Db1NoFIKqlWiuwMybGw1PuT5NPs46qVAV+NBUSQ9N/vq4PIkmxoFONVSCWJ9A8G+q+Zlzbg0j+x1AGN3TRsnH7jrsOyx3Gi9gKTQXEAg/OEFdXuQ9vbjIzXv7czKAxnYZ8wKSFC6ZJQ= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=d71PuDV0; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="d71PuDV0" Received: by smtp.kernel.org (Postfix) with ESMTPS id E9FE0C4CEE9; Tue, 4 Mar 2025 18:37:29 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1741113450; bh=ddiQ9lMCoy/HM1LAnqoS1Q2D9uhj+IW9EVUrbaO2q7g=; h=From:Date:Subject:References:In-Reply-To:To:Cc:Reply-To:From; b=d71PuDV0tLoWk/LE7IloSes3j2smbEbUHXCxuijBMioJry7oK0uCoPQQp+ecAW1WS kbfvSxhlyVbfhSMqp9YqgxDWRu6Xe4E73VUguzOfSvpZX0cefSGPQMaP7GBEUjqfHF igJypXsv5+LVxpQ5/1EGqRGGzJG5jEoV+pawpYQHNrla3AbocPmjeHeya0/EA2gth+ kgZ0YUOaIJb9p10oQVGJumnxk38iHlO4j58PI83FKuogDucgWtZtl7FqPVVPgXgdeo moHnn4MBgO52J1oD+LHjAgm3AZ96nk71o3rauUPwWwvbR96PHAxU1sURC0ogJ7BzvZ LcqVE1qRvISWQ== Received: from aws-us-west-2-korg-lkml-1.web.codeaurora.org (localhost.localdomain [127.0.0.1]) by smtp.lore.kernel.org (Postfix) with ESMTP id D8C43C021B8; Tue, 4 Mar 2025 18:37:29 +0000 (UTC) From: Dimitri Fedrau via B4 Relay Date: Tue, 04 Mar 2025 19:37:26 +0100 Subject: [PATCH net-next v2 1/2] net: phy: tja11xx: add support for TJA1102S Precedence: bulk X-Mailing-List: netdev@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Message-Id: <20250304-tja1102s-support-v2-1-cd3e61ab920f@liebherr.com> References: <20250304-tja1102s-support-v2-0-cd3e61ab920f@liebherr.com> In-Reply-To: <20250304-tja1102s-support-v2-0-cd3e61ab920f@liebherr.com> 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, Dimitri Fedrau , Dimitri Fedrau , Marek Vasut , Oleksij Rempel X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=ed25519-sha256; t=1741113448; l=2412; i=dimitri.fedrau@liebherr.com; s=20241202; h=from:subject:message-id; bh=y/3Zxepwsaqd2jpN3C4CZmIRRD7IQrec5wOpGQfwzi4=; b=iBq4ApaWGp44G40Pkl0W63THM7SFgzJd445ADM/7ANAcu+tvf5p0l3MJHEwnEdTx5JQw9XVZ1 f1kfZnDIcsYCRzUBs/eNkGtHpt+bMrGVcXh24reYd2aCvrhj9U0rFS0 X-Developer-Key: i=dimitri.fedrau@liebherr.com; a=ed25519; pk=rT653x09JSQvotxIqQl4/XiI4AOiBZrdOGvxDUbb5m8= X-Endpoint-Received: by B4 Relay for dimitri.fedrau@liebherr.com/20241202 with auth_id=290 X-Original-From: Dimitri Fedrau Reply-To: dimitri.fedrau@liebherr.com X-Patchwork-Delegate: kuba@kernel.org From: Dimitri Fedrau NXPs TJA1102S is a single PHY version of the TJA1102 in which one of the PHYs is disabled. Signed-off-by: Dimitri Fedrau Reviewed-by: Andrew Lunn --- drivers/net/phy/nxp-tja11xx.c | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) diff --git a/drivers/net/phy/nxp-tja11xx.c b/drivers/net/phy/nxp-tja11xx.c index ed7fa26bac8e83f43d6d656e2e2812e501111eb0..9cf5e6d32fab88cae5cd556623a9ffa285227ab6 100644 --- a/drivers/net/phy/nxp-tja11xx.c +++ b/drivers/net/phy/nxp-tja11xx.c @@ -21,6 +21,7 @@ #define PHY_ID_TJA1100 0x0180dc40 #define PHY_ID_TJA1101 0x0180dd00 #define PHY_ID_TJA1102 0x0180dc80 +#define PHY_ID_TJA1102S 0x0180dc90 #define MII_ECTRL 17 #define MII_ECTRL_LINK_CONTROL BIT(15) @@ -316,6 +317,7 @@ static int tja11xx_config_init(struct phy_device *phydev) if (ret) return ret; break; + case PHY_ID_TJA1102S: case PHY_ID_TJA1101: reg_mask = MII_CFG1_INTERFACE_MODE_MASK; ret = tja11xx_get_interface_mode(phydev); @@ -883,6 +885,29 @@ static struct phy_driver tja11xx_driver[] = { .handle_interrupt = tja11xx_handle_interrupt, .cable_test_start = tja11xx_cable_test_start, .cable_test_get_status = tja11xx_cable_test_get_status, + }, { + PHY_ID_MATCH_MODEL(PHY_ID_TJA1102S), + .name = "NXP TJA1102S", + .features = PHY_BASIC_T1_FEATURES, + .flags = PHY_POLL_CABLE_TEST, + .probe = tja11xx_probe, + .soft_reset = tja11xx_soft_reset, + .config_aneg = tja11xx_config_aneg, + .config_init = tja11xx_config_init, + .read_status = tja11xx_read_status, + .get_sqi = tja11xx_get_sqi, + .get_sqi_max = tja11xx_get_sqi_max, + .suspend = genphy_suspend, + .resume = genphy_resume, + .set_loopback = genphy_loopback, + /* Statistics */ + .get_sset_count = tja11xx_get_sset_count, + .get_strings = tja11xx_get_strings, + .get_stats = tja11xx_get_stats, + .config_intr = tja11xx_config_intr, + .handle_interrupt = tja11xx_handle_interrupt, + .cable_test_start = tja11xx_cable_test_start, + .cable_test_get_status = tja11xx_cable_test_get_status, } }; @@ -892,6 +917,7 @@ static const struct mdio_device_id __maybe_unused tja11xx_tbl[] = { { PHY_ID_MATCH_MODEL(PHY_ID_TJA1100) }, { PHY_ID_MATCH_MODEL(PHY_ID_TJA1101) }, { PHY_ID_MATCH_MODEL(PHY_ID_TJA1102) }, + { PHY_ID_MATCH_MODEL(PHY_ID_TJA1102S) }, { } }; From patchwork Tue Mar 4 18:37:27 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Dimitri Fedrau via B4 Relay X-Patchwork-Id: 14001259 X-Patchwork-Delegate: kuba@kernel.org Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (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 8B90025FA14; Tue, 4 Mar 2025 18:37:30 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1741113450; cv=none; b=SaesmcG+Q07S8ybZlqIQbC20maLvlKwZSI6CtkDuHkikVVmBlTAsE0k2vDX7y5oVp5nitXmIeqLo8YoFmbf32+rvx3GzU4Vm/9QB4msUtB5jjwk5ni7RPSi4x/9RRGxiNlnsUT8c24pqHCNaBY7IQFH6+TIqvm+n6J34Kb9F29k= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1741113450; c=relaxed/simple; bh=vJ7q3UiEIm0cEXoZ+oIW1aIvNSJiLjWq2Fl9mkg2krA=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=c8ZikqwB7RGY3uMVpKBWJt2T05hkfkOT0a7v4mQho/rNZQ0eG/UPBJavnVcv8OeXJwoq/KeurwRhkw7Xr1+gsydXXS9kNcqS8YED1HsGaqWe4R8mXvHA0hwKDVt4ugcGjiE8UypdFFAunrubXM/QsP//j0cTA3hMXzEbn/xbkVs= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=EcVQphO3; arc=none smtp.client-ip=10.30.226.201 Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="EcVQphO3" Received: by smtp.kernel.org (Postfix) with ESMTPS id 1123BC4CEEB; Tue, 4 Mar 2025 18:37:30 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1741113450; bh=vJ7q3UiEIm0cEXoZ+oIW1aIvNSJiLjWq2Fl9mkg2krA=; h=From:Date:Subject:References:In-Reply-To:To:Cc:Reply-To:From; b=EcVQphO3OOyuJET2B138Q3e6IQonTRk3y6q/FOQmZFn1i1jhYh+ndj8ViXNjCgEl7 qv7GOI4buZu2rRW9Ru8j1M8/ec4GtPqtOEbIXZT6+FjyGZoTFbM24psf842Ve3j8HA VuB8QnshDMV6sDKZHChevs5Hhbu0doxPar5D8RPn074CdYuGcvm4ZGagkjY14HyC68 qNI1H2lT2tnScBN7e3Vbu4Y2syB7ZTJ93TNx+Ls/WlwPrMfbAXAZDEfObJv49Njzao vQEMNSMqeoucNVCRlI7Y9ikhlipDR0UtYbPahQIuV3aiPJpeCx5WgJnaLUSmMRHvp5 L0w5MmlIOxllw== Received: from aws-us-west-2-korg-lkml-1.web.codeaurora.org (localhost.localdomain [127.0.0.1]) by smtp.lore.kernel.org (Postfix) with ESMTP id 0654DC282D9; Tue, 4 Mar 2025 18:37:30 +0000 (UTC) From: Dimitri Fedrau via B4 Relay Date: Tue, 04 Mar 2025 19:37:27 +0100 Subject: [PATCH net-next v2 2/2] net: phy: tja11xx: enable PHY in sleep mode for TJA1102S Precedence: bulk X-Mailing-List: netdev@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Message-Id: <20250304-tja1102s-support-v2-2-cd3e61ab920f@liebherr.com> References: <20250304-tja1102s-support-v2-0-cd3e61ab920f@liebherr.com> In-Reply-To: <20250304-tja1102s-support-v2-0-cd3e61ab920f@liebherr.com> 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, Dimitri Fedrau , Dimitri Fedrau , Marek Vasut , Oleksij Rempel X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=ed25519-sha256; t=1741113448; l=1700; i=dimitri.fedrau@liebherr.com; s=20241202; h=from:subject:message-id; bh=DWnLX8up0ewgoQK/chnywysY6pNuZir0wY9kYTPFSC8=; b=Pe8Mg7UQFFHMEDej+r44aZcmqA5f+skjcS/S5M6mcZnkLLmh1yvcNMQd66xMM9h+9lMwZ8B4i aJ7cBieHtiMDdKw9SYpsrW+6oxvhxJhXJnzKhwhYuD0GKZucyKs9eXU X-Developer-Key: i=dimitri.fedrau@liebherr.com; a=ed25519; pk=rT653x09JSQvotxIqQl4/XiI4AOiBZrdOGvxDUbb5m8= X-Endpoint-Received: by B4 Relay for dimitri.fedrau@liebherr.com/20241202 with auth_id=290 X-Original-From: Dimitri Fedrau Reply-To: dimitri.fedrau@liebherr.com X-Patchwork-Delegate: kuba@kernel.org From: Dimitri Fedrau Due to pin strapping the PHY maybe disabled per default. TJA1102 devices can be enabled by setting the PHY_EN bit. Support is provided for TJA1102S devices but can be easily added for TJA1102 too. Reviewed-by: Andrew Lunn Signed-off-by: Dimitri Fedrau --- drivers/net/phy/nxp-tja11xx.c | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/drivers/net/phy/nxp-tja11xx.c b/drivers/net/phy/nxp-tja11xx.c index 9cf5e6d32fab88cae5cd556623a9ffa285227ab6..601094fe24ca8273a845512b111ccdd9d2785758 100644 --- a/drivers/net/phy/nxp-tja11xx.c +++ b/drivers/net/phy/nxp-tja11xx.c @@ -28,6 +28,7 @@ #define MII_ECTRL_POWER_MODE_MASK GENMASK(14, 11) #define MII_ECTRL_POWER_MODE_NO_CHANGE (0x0 << 11) #define MII_ECTRL_POWER_MODE_NORMAL (0x3 << 11) +#define MII_ECTRL_POWER_MODE_SLEEP (0xa << 11) #define MII_ECTRL_POWER_MODE_STANDBY (0xc << 11) #define MII_ECTRL_CABLE_TEST BIT(5) #define MII_ECTRL_CONFIG_EN BIT(2) @@ -79,6 +80,9 @@ #define MII_COMMCFG 27 #define MII_COMMCFG_AUTO_OP BIT(15) +#define MII_CFG3 28 +#define MII_CFG3_PHY_EN BIT(0) + /* Configure REF_CLK as input in RMII mode */ #define TJA110X_RMII_MODE_REFCLK_IN BIT(0) @@ -180,6 +184,14 @@ static int tja11xx_wakeup(struct phy_device *phydev) return ret; return tja11xx_enable_link_control(phydev); + case MII_ECTRL_POWER_MODE_SLEEP: + switch (phydev->phy_id & PHY_ID_MASK) { + case PHY_ID_TJA1102S: + /* Enable PHY, maybe it is disabled due to pin strapping */ + return phy_set_bits(phydev, MII_CFG3, MII_CFG3_PHY_EN); + default: + return 0; + } default: break; }