netdev.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH 0/2] net: stmmac: socfpga: support both stmmaceth-ocp and ahb reset names
@ 2025-12-29 19:17 Dinh Nguyen
  2025-12-29 19:17 ` [PATCH 1/2] net: stmmac: socfpga: add call to assert/deassert ahb reset line Dinh Nguyen
  2025-12-29 19:17 ` [PATCH 2/2] Revert "arm: dts: socfpga: use reset-name "stmmaceth-ocp" instead of "ahb"" Dinh Nguyen
  0 siblings, 2 replies; 4+ messages in thread
From: Dinh Nguyen @ 2025-12-29 19:17 UTC (permalink / raw)
  To: Maxime Chevallier, Andrew Lunn, David S. Miller, Eric Dumazet,
	Jakub Kicinski, Paolo Abeni, Maxime Coquelin, Alexandre Torgue,
	Philipp Zabel, Rob Herring, Krzysztof Kozlowski, Conor Dooley,
	Mamta Shukla, Ahmad Fatoum
  Cc: bsp-development.geo, Pengutronix Kernel Team, netdev, linux-stm32,
	linux-arm-kernel, linux-kernel, devicetree, Dinh Nguyen

The dwmac-socfpga stmmac ethernet controller supports 2 standard reset
lines, named "stmmaceth" and "stmmaceth-ocp". At the time of upstreaming
support for the platform, the "stmmaceth-ocp" name was used for the 2nd
reset name. We later realized that the "stmmaceth-ocp" reset name is
the same as the "ahb" name that is used by the standard stmmac driver.
But since the "stmmaceth-ocp" name support has already been introduced
to the wild, it cannot just be removed from the driver, thus we can
modify the driver to support both "stmmaceth-ocp" and "ahb", with the
idea that "ahb" will be used going forward.

This series add the support to call reset assert/de-assert both "abh"
and "stmmaceth-ocp" to the dwmac-socfpga platform driver, then reverts
the patch that uses the DTS "stmmaceth-ocp" reset name.

Signed-off-by: Dinh Nguyen <dinguyen@kernel.org>
---
Dinh Nguyen (2):
      net: stmmac: socfpga: add call to assert/deassert ahb reset line
      Revert "arm: dts: socfpga: use reset-name "stmmaceth-ocp" instead of "ahb""

 arch/arm/boot/dts/intel/socfpga/socfpga_arria10.dtsi | 6 +++---
 drivers/net/ethernet/stmicro/stmmac/dwmac-socfpga.c  | 4 ++++
 2 files changed, 7 insertions(+), 3 deletions(-)
---
base-commit: 8f0b4cce4481fb22653697cced8d0d04027cb1e8
change-id: 20251229-remove_ocp-44786389b052

Best regards,
-- 
Dinh Nguyen <dinguyen@kernel.org>


^ permalink raw reply	[flat|nested] 4+ messages in thread

* [PATCH 1/2] net: stmmac: socfpga: add call to assert/deassert ahb reset line
  2025-12-29 19:17 [PATCH 0/2] net: stmmac: socfpga: support both stmmaceth-ocp and ahb reset names Dinh Nguyen
@ 2025-12-29 19:17 ` Dinh Nguyen
  2025-12-29 19:17 ` [PATCH 2/2] Revert "arm: dts: socfpga: use reset-name "stmmaceth-ocp" instead of "ahb"" Dinh Nguyen
  1 sibling, 0 replies; 4+ messages in thread
From: Dinh Nguyen @ 2025-12-29 19:17 UTC (permalink / raw)
  To: Maxime Chevallier, Andrew Lunn, David S. Miller, Eric Dumazet,
	Jakub Kicinski, Paolo Abeni, Maxime Coquelin, Alexandre Torgue,
	Philipp Zabel, Rob Herring, Krzysztof Kozlowski, Conor Dooley,
	Mamta Shukla, Ahmad Fatoum
  Cc: bsp-development.geo, Pengutronix Kernel Team, netdev, linux-stm32,
	linux-arm-kernel, linux-kernel, devicetree, Dinh Nguyen

The "stmmaceth-ocp" reset line of stmmac controller on the SoCFPGA
platform is essentially the "ahb" reset on the standard stmmac
controller. But since stmmaceth-ocp has already been introduced into
the wild, we cannot just remove support for it. But what we can do is
to support both "stmmaceth-ocp" and "ahb" reset names. Going forward we
will be using "ahb", but in order to not break ABI, we will be call reset
assert/de-assert both ahb and stmmaceth-ocp.

The ethernet hardware on SoCFPGA requires either the stmmaceth-ocp or
ahb reset to be asserted every time before changing the phy mode, then
de-asserted when the phy mode has been set.

With this change, we should be able to revert patch:
commit 62a40a0d5634 ("arm: dts: socfpga: use reset-name "stmmaceth-ocp"
instead of "ahb"")

Signed-off-by: Dinh Nguyen <dinguyen@kernel.org>
---
 drivers/net/ethernet/stmicro/stmmac/dwmac-socfpga.c | 4 ++++
 1 file changed, 4 insertions(+)

diff --git a/drivers/net/ethernet/stmicro/stmmac/dwmac-socfpga.c b/drivers/net/ethernet/stmicro/stmmac/dwmac-socfpga.c
index a2b52d2c4eb6..79df55515c71 100644
--- a/drivers/net/ethernet/stmicro/stmmac/dwmac-socfpga.c
+++ b/drivers/net/ethernet/stmicro/stmmac/dwmac-socfpga.c
@@ -407,6 +407,7 @@ static int socfpga_gen5_set_phy_mode(struct socfpga_dwmac *dwmac)
 
 	/* Assert reset to the enet controller before changing the phy mode */
 	reset_control_assert(dwmac->stmmac_ocp_rst);
+	reset_control_assert(dwmac->plat_dat->stmmac_ahb_rst);
 	reset_control_assert(dwmac->stmmac_rst);
 
 	regmap_read(sys_mgr_base_addr, reg_offset, &ctrl);
@@ -436,6 +437,7 @@ static int socfpga_gen5_set_phy_mode(struct socfpga_dwmac *dwmac)
 	 * the enet controller, and operation to start in requested mode
 	 */
 	reset_control_deassert(dwmac->stmmac_ocp_rst);
+	reset_control_deassert(dwmac->plat_dat->stmmac_ahb_rst);
 	reset_control_deassert(dwmac->stmmac_rst);
 	if (phymode == PHY_INTERFACE_MODE_SGMII)
 		socfpga_sgmii_config(dwmac, true);
@@ -463,6 +465,7 @@ static int socfpga_gen10_set_phy_mode(struct socfpga_dwmac *dwmac)
 
 	/* Assert reset to the enet controller before changing the phy mode */
 	reset_control_assert(dwmac->stmmac_ocp_rst);
+	reset_control_assert(dwmac->plat_dat->stmmac_ahb_rst);
 	reset_control_assert(dwmac->stmmac_rst);
 
 	regmap_read(sys_mgr_base_addr, reg_offset, &ctrl);
@@ -489,6 +492,7 @@ static int socfpga_gen10_set_phy_mode(struct socfpga_dwmac *dwmac)
 	 * the enet controller, and operation to start in requested mode
 	 */
 	reset_control_deassert(dwmac->stmmac_ocp_rst);
+	reset_control_deassert(dwmac->plat_dat->stmmac_ahb_rst);
 	reset_control_deassert(dwmac->stmmac_rst);
 	if (phymode == PHY_INTERFACE_MODE_SGMII)
 		socfpga_sgmii_config(dwmac, true);

-- 
2.42.0.411.g813d9a9188


^ permalink raw reply related	[flat|nested] 4+ messages in thread

* [PATCH 2/2] Revert "arm: dts: socfpga: use reset-name "stmmaceth-ocp" instead of "ahb""
  2025-12-29 19:17 [PATCH 0/2] net: stmmac: socfpga: support both stmmaceth-ocp and ahb reset names Dinh Nguyen
  2025-12-29 19:17 ` [PATCH 1/2] net: stmmac: socfpga: add call to assert/deassert ahb reset line Dinh Nguyen
@ 2025-12-29 19:17 ` Dinh Nguyen
  2025-12-30 11:11   ` Andrew Lunn
  1 sibling, 1 reply; 4+ messages in thread
From: Dinh Nguyen @ 2025-12-29 19:17 UTC (permalink / raw)
  To: Maxime Chevallier, Andrew Lunn, David S. Miller, Eric Dumazet,
	Jakub Kicinski, Paolo Abeni, Maxime Coquelin, Alexandre Torgue,
	Philipp Zabel, Rob Herring, Krzysztof Kozlowski, Conor Dooley,
	Mamta Shukla, Ahmad Fatoum
  Cc: bsp-development.geo, Pengutronix Kernel Team, netdev, linux-stm32,
	linux-arm-kernel, linux-kernel, devicetree, Dinh Nguyen

This reverts commit 62a40a0d5634834790f7166ab592be247390d857.

With the patch "add call to assert/deassert ahb reset line" in place, we can
safely remove the "stmmaceth-ocp" reset name and just use the standard
"ahb" reset name.

Signed-off-by: Dinh Nguyen <dinguyen@kernel.org>
---
 arch/arm/boot/dts/intel/socfpga/socfpga_arria10.dtsi | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/arch/arm/boot/dts/intel/socfpga/socfpga_arria10.dtsi b/arch/arm/boot/dts/intel/socfpga/socfpga_arria10.dtsi
index b108265e9bde..6b6e77596ffa 100644
--- a/arch/arm/boot/dts/intel/socfpga/socfpga_arria10.dtsi
+++ b/arch/arm/boot/dts/intel/socfpga/socfpga_arria10.dtsi
@@ -440,7 +440,7 @@ gmac0: ethernet@ff800000 {
 			clocks = <&l4_mp_clk>, <&peri_emac_ptp_clk>;
 			clock-names = "stmmaceth", "ptp_ref";
 			resets = <&rst EMAC0_RESET>, <&rst EMAC0_OCP_RESET>;
-			reset-names = "stmmaceth", "stmmaceth-ocp";
+			reset-names = "stmmaceth", "ahb";
 			snps,axi-config = <&socfpga_axi_setup>;
 			status = "disabled";
 		};
@@ -460,7 +460,7 @@ gmac1: ethernet@ff802000 {
 			clocks = <&l4_mp_clk>, <&peri_emac_ptp_clk>;
 			clock-names = "stmmaceth", "ptp_ref";
 			resets = <&rst EMAC1_RESET>, <&rst EMAC1_OCP_RESET>;
-			reset-names = "stmmaceth", "stmmaceth-ocp";
+			reset-names = "stmmaceth", "ahb";
 			snps,axi-config = <&socfpga_axi_setup>;
 			status = "disabled";
 		};
@@ -480,7 +480,7 @@ gmac2: ethernet@ff804000 {
 			clocks = <&l4_mp_clk>, <&peri_emac_ptp_clk>;
 			clock-names = "stmmaceth", "ptp_ref";
 			resets = <&rst EMAC2_RESET>, <&rst EMAC2_OCP_RESET>;
-			reset-names = "stmmaceth", "stmmaceth-ocp";
+			reset-names = "stmmaceth", "ahb";
 			snps,axi-config = <&socfpga_axi_setup>;
 			status = "disabled";
 		};

-- 
2.42.0.411.g813d9a9188


^ permalink raw reply related	[flat|nested] 4+ messages in thread

* Re: [PATCH 2/2] Revert "arm: dts: socfpga: use reset-name "stmmaceth-ocp" instead of "ahb""
  2025-12-29 19:17 ` [PATCH 2/2] Revert "arm: dts: socfpga: use reset-name "stmmaceth-ocp" instead of "ahb"" Dinh Nguyen
@ 2025-12-30 11:11   ` Andrew Lunn
  0 siblings, 0 replies; 4+ messages in thread
From: Andrew Lunn @ 2025-12-30 11:11 UTC (permalink / raw)
  To: Dinh Nguyen
  Cc: Maxime Chevallier, Andrew Lunn, David S. Miller, Eric Dumazet,
	Jakub Kicinski, Paolo Abeni, Maxime Coquelin, Alexandre Torgue,
	Philipp Zabel, Rob Herring, Krzysztof Kozlowski, Conor Dooley,
	Mamta Shukla, Ahmad Fatoum, bsp-development.geo,
	Pengutronix Kernel Team, netdev, linux-stm32, linux-arm-kernel,
	linux-kernel, devicetree

On Mon, Dec 29, 2025 at 01:17:19PM -0600, Dinh Nguyen wrote:
> This reverts commit 62a40a0d5634834790f7166ab592be247390d857.
> 
> With the patch "add call to assert/deassert ahb reset line" in place, we can
> safely remove the "stmmaceth-ocp" reset name and just use the standard
> "ahb" reset name.

altr,socfpga-stmmac.yamle says:

  # TODO: Determine how to handle the Arria10 reset-name, stmmaceth-ocp, that
  # does not validate against net/snps,dwmac.yaml.

Please add a patch to the series adding stmmaceth-ocp, but mark it as
deprecated, and comment that ahb should be used instead.

    Andrew

---
pw-bot: cr

^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2025-12-30 11:11 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-12-29 19:17 [PATCH 0/2] net: stmmac: socfpga: support both stmmaceth-ocp and ahb reset names Dinh Nguyen
2025-12-29 19:17 ` [PATCH 1/2] net: stmmac: socfpga: add call to assert/deassert ahb reset line Dinh Nguyen
2025-12-29 19:17 ` [PATCH 2/2] Revert "arm: dts: socfpga: use reset-name "stmmaceth-ocp" instead of "ahb"" Dinh Nguyen
2025-12-30 11:11   ` Andrew Lunn

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).