public inbox for netdev@vger.kernel.org
 help / color / mirror / Atom feed
From: Conor Dooley <conor@kernel.org>
To: netdev@vger.kernel.org
Cc: conor@kernel.org, "Conor Dooley" <conor.dooley@microchip.com>,
	Valentina.FernandezAlanis@microchip.com,
	"Andrew Lunn" <andrew+netdev@lunn.ch>,
	"David S. Miller" <davem@davemloft.net>,
	"Eric Dumazet" <edumazet@google.com>,
	"Jakub Kicinski" <kuba@kernel.org>,
	"Paolo Abeni" <pabeni@redhat.com>,
	"Rob Herring" <robh@kernel.org>,
	"Krzysztof Kozlowski" <krzk+dt@kernel.org>,
	"Conor Dooley" <conor+dt@kernel.org>,
	"Daire McNamara" <daire.mcnamara@microchip.com>,
	"Paul Walmsley" <pjw@kernel.org>,
	"Palmer Dabbelt" <palmer@dabbelt.com>,
	"Albert Ou" <aou@eecs.berkeley.edu>,
	"Alexandre Ghiti" <alex@ghiti.fr>,
	"Nicolas Ferre" <nicolas.ferre@microchip.com>,
	"Claudiu Beznea" <claudiu.beznea@tuxon.dev>,
	"Richard Cochran" <richardcochran@gmail.com>,
	"Samuel Holland" <samuel.holland@sifive.com>,
	devicetree@vger.kernel.org, linux-kernel@vger.kernel.org,
	linux-riscv@lists.infradead.org,
	"Dave Stevenson" <dave.stevenson@raspberrypi.com>,
	"Sean Anderson" <sean.anderson@linux.dev>,
	"Vineeth Karumanchi" <vineeth.karumanchi@amd.com>,
	"Abin Joseph" <abin.joseph@amd.com>,
	"Théo Lebrun" <theo.lebrun@bootlin.com>,
	Ryan.Wanner@microchip.com, "Kevin Hao" <haokexin@gmail.com>
Subject: [PATCH net-next v5 07/14] net: macb: add mpfs specific usrio configuration
Date: Wed, 25 Mar 2026 16:28:11 +0000	[thread overview]
Message-ID: <20260325-excavate-jester-798e7cfe02b5@spud> (raw)
In-Reply-To: <20260325-unsterile-flail-4c7729750dc4@spud>

From: Conor Dooley <conor.dooley@microchip.com>

On mpfs the driver needs to make sure the tsu clock source is not the
fabric, as this requires that the hardware is in Timer Adjust mode,
which is not compatible with the linux driver trying to control the
hardware. It is unlikely that this will be set, as the peripheral is
reset during probe, but if the resets are not provided in devicetree
it's probable that this bit is set incorrectly, as U-Boot's macb driver
has the same issue with using usrio settings for at91 platforms as the
default.

Fixes: 8aad66aa59be5 ("net: macb: add polarfire soc reset support")
Signed-off-by: Conor Dooley <conor.dooley@microchip.com>
---
 drivers/net/ethernet/cadence/macb.h      |  2 ++
 drivers/net/ethernet/cadence/macb_main.c | 12 ++++++++++--
 2 files changed, 12 insertions(+), 2 deletions(-)

diff --git a/drivers/net/ethernet/cadence/macb.h b/drivers/net/ethernet/cadence/macb.h
index 1bdbe66b05590..8e5305f9a7545 100644
--- a/drivers/net/ethernet/cadence/macb.h
+++ b/drivers/net/ethernet/cadence/macb.h
@@ -788,6 +788,7 @@
 #define MACB_CAPS_EEE				BIT(25)
 #define MACB_CAPS_USRIO_HAS_MII			BIT(26)
 #define MACB_CAPS_USRIO_HAS_REFCLK_SOURCE	BIT(27)
+#define MACB_CAPS_USRIO_HAS_TSUCLK_SOURCE	BIT(28)
 
 /* LSO settings */
 #define MACB_LSO_UFO_ENABLE			0x01
@@ -1229,6 +1230,7 @@ struct macb_usrio_config {
 	u32 refclk;
 	u32 clken;
 	u32 hdfctlen;
+	u32 tsu_source;
 	bool refclk_default_external;
 };
 
diff --git a/drivers/net/ethernet/cadence/macb_main.c b/drivers/net/ethernet/cadence/macb_main.c
index a1f8a6d9554fb..4e5967e6ffbe5 100644
--- a/drivers/net/ethernet/cadence/macb_main.c
+++ b/drivers/net/ethernet/cadence/macb_main.c
@@ -4921,6 +4921,9 @@ static int macb_init_dflt(struct platform_device *pdev)
 				val |= bp->usrio->refclk;
 		}
 
+		if (bp->caps & MACB_CAPS_USRIO_HAS_TSUCLK_SOURCE)
+			val |= bp->usrio->tsu_source;
+
 		macb_or_gem_writel(bp, USRIO, val);
 	}
 
@@ -5524,6 +5527,10 @@ static const struct macb_usrio_config at91_default_usrio = {
 	.clken = MACB_BIT(CLKEN),
 };
 
+static const struct macb_usrio_config mpfs_usrio = {
+	.tsu_source = 0,
+};
+
 static const struct macb_usrio_config sama7g5_gem_usrio = {
 	.mii = 0,
 	.rmii = 1,
@@ -5637,10 +5644,11 @@ static const struct macb_config zynq_config = {
 static const struct macb_config mpfs_config = {
 	.caps = MACB_CAPS_GIGABIT_MODE_AVAILABLE |
 		MACB_CAPS_JUMBO |
-		MACB_CAPS_GEM_HAS_PTP,
+		MACB_CAPS_GEM_HAS_PTP |
+		MACB_CAPS_USRIO_HAS_TSUCLK_SOURCE,
 	.dma_burst_length = 16,
 	.init = init_reset_optional,
-	.usrio = &at91_default_usrio,
+	.usrio = &mpfs_usrio,
 	.max_tx_length = 4040, /* Cadence Erratum 1686 */
 	.jumbo_max_len = 4040,
 };
-- 
2.53.0


  parent reply	other threads:[~2026-03-25 16:29 UTC|newest]

Thread overview: 15+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-03-25 16:28 [PATCH net-next v5 00/14] macb usrio/tsu patches Conor Dooley
2026-03-25 16:28 ` [PATCH net-next v5 01/14] Revert "net: macb: Clean up the .usrio settings in macb_config instances" Conor Dooley
2026-03-25 16:28 ` [PATCH net-next v5 02/14] net: macb: rename macb_default_usrio to at91_default_usrio as not all platforms have mii mode control in usrio Conor Dooley
2026-03-25 16:28 ` [PATCH net-next v5 03/14] net: macb: split USRIO_HAS_CLKEN capability in two Conor Dooley
2026-03-25 16:28 ` [PATCH net-next v5 04/14] dt-bindings: net: cdns,macb: replace cdns,refclk-ext with cdns,refclk-source Conor Dooley
2026-03-25 16:28 ` [PATCH net-next v5 05/14] net: macb: rework usrio refclk selection code Conor Dooley
2026-03-25 16:28 ` [PATCH net-next v5 06/14] net: macb: np4 doesn't need a usrio pointer Conor Dooley
2026-03-25 16:28 ` Conor Dooley [this message]
2026-03-25 16:28 ` [PATCH net-next v5 08/14] net: macb: warn on pclk use as a tsu_clk fallback Conor Dooley
2026-03-25 16:28 ` [PATCH net-next v5 09/14] net: macb: clean up tsu clk rate acquisition Conor Dooley
2026-03-25 16:28 ` [PATCH net-next v5 10/14] dt-bindings: net: macb: add property indicating timer adjust mode Conor Dooley
2026-03-25 16:28 ` [PATCH net-next v5 11/14] net: macb: timer adjust mode is not supported Conor Dooley
2026-03-25 16:28 ` [PATCH net-next v5 12/14] net: macb: runtime detect MACB_CAPS_USRIO_DISABLED Conor Dooley
2026-03-25 16:28 ` [PATCH net-next v5 13/14] net: macb: set MACB_CAPS_USRIO_DISABLED if no usrio config is provided Conor Dooley
2026-03-25 16:28 ` [PATCH net-next v5 14/14] net: macb: drop usrio pointer on EyeQ5 config Conor Dooley

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20260325-excavate-jester-798e7cfe02b5@spud \
    --to=conor@kernel.org \
    --cc=Ryan.Wanner@microchip.com \
    --cc=Valentina.FernandezAlanis@microchip.com \
    --cc=abin.joseph@amd.com \
    --cc=alex@ghiti.fr \
    --cc=andrew+netdev@lunn.ch \
    --cc=aou@eecs.berkeley.edu \
    --cc=claudiu.beznea@tuxon.dev \
    --cc=conor+dt@kernel.org \
    --cc=conor.dooley@microchip.com \
    --cc=daire.mcnamara@microchip.com \
    --cc=dave.stevenson@raspberrypi.com \
    --cc=davem@davemloft.net \
    --cc=devicetree@vger.kernel.org \
    --cc=edumazet@google.com \
    --cc=haokexin@gmail.com \
    --cc=krzk+dt@kernel.org \
    --cc=kuba@kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-riscv@lists.infradead.org \
    --cc=netdev@vger.kernel.org \
    --cc=nicolas.ferre@microchip.com \
    --cc=pabeni@redhat.com \
    --cc=palmer@dabbelt.com \
    --cc=pjw@kernel.org \
    --cc=richardcochran@gmail.com \
    --cc=robh@kernel.org \
    --cc=samuel.holland@sifive.com \
    --cc=sean.anderson@linux.dev \
    --cc=theo.lebrun@bootlin.com \
    --cc=vineeth.karumanchi@amd.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox