All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH net-next v2 0/8] net: lan969x: add RGMII support
@ 2024-11-13 21:11 Daniel Machon
  2024-11-13 21:11 ` [PATCH net-next v2 1/8] net: sparx5: do some preparation work Daniel Machon
                   ` (8 more replies)
  0 siblings, 9 replies; 17+ messages in thread
From: Daniel Machon @ 2024-11-13 21:11 UTC (permalink / raw)
  To: UNGLinuxDriver, Andrew Lunn, David S. Miller, Eric Dumazet,
	Jakub Kicinski, Paolo Abeni, Lars Povlsen, Steen Hegelund,
	Horatiu Vultur, Russell King, jacob.e.keller, robh, krzk+dt,
	conor+dt
  Cc: devicetree, netdev, linux-kernel, linux-arm-kernel

== Description:

This series is the fourth of a multi-part series, that prepares and adds
support for the new lan969x switch driver.

The upstreaming efforts is split into multiple series (might change a
bit as we go along):

        1) Prepare the Sparx5 driver for lan969x (merged)

        2) Add support for lan969x (same basic features as Sparx5
           provides excl. FDMA and VCAP, merged).

        3) Add lan969x VCAP functionality (merged).

    --> 4) Add RGMII support.

        5) Add FDMA support.

== RGMII support:

The lan969x switch device includes two RGMII interfaces (port 28 and 29)
supporting data speeds of 1 Gbps, 100 Mbps and 10 Mbps.

Details are in the commit description of the patches.

== Patch breakdown:

Patch #1 does some preparation work.

Patch #2 adds new function: is_port_rgmii() to the match data ops.

Patch #3 uses the is_port_rgmii() in a number of places.

Patch #4 uses the phy_interface_mode_is_rgmii() in a number of places.

Patch #5 adds checks for RGMII PHY modes in sparx5_verify_speeds().

Patch #6 adds registers required to configure RGMII.

Patch #7 adds RGMII implementation.

Patch #8 document RGMII delays.

To: UNGLinuxDriver@microchip.com
To: Andrew Lunn <andrew+netdev@lunn.ch>
To: David S. Miller <davem@davemloft.net>
To: Eric Dumazet <edumazet@google.com>
To: Jakub Kicinski <kuba@kernel.org>
To: Paolo Abeni <pabeni@redhat.com>
To: Lars Povlsen <lars.povlsen@microchip.com>
To: Steen Hegelund <Steen.Hegelund@microchip.com>
To: Horatiu Vultur <horatiu.vultur@microchip.com>
To: Russell King <linux@armlinux.org.uk>
To: jacob.e.keller@intel.com
To: robh@kernel.org
To: krzk+dt@kernel.org
To: conor+dt@kernel.org
Cc: devicetree@vger.kernel.org
Cc: netdev@vger.kernel.org
Cc: linux-kernel@vger.kernel.org
Cc: linux-arm-kernel@lists.infradead.org

Signed-off-by: Daniel Machon <daniel.machon@microchip.com>
---
Changes in v2:

  Most changes are in patch #7. RGMII implementation has been moved to
  it's own file lan969x_rgmii.c.

  Details:

    - Use ETH_P_8021Q and ETH_P_8021AD instead of the Sparx5 provided
      equivalents (patch #7).
    - Configure MAC delays through "{rx,tx}-internal-delay-ps"
      properties (patch #7).
    - Add selectors for all the phase shifts that the hardware supports
      (instead of only 2.0 ns, patch #7).
    - Add selectors for all the port speeds (instead of only 1000 mbps.)
    - Document RGMII delays in dt-bindings.

  - Link to v1: https://lore.kernel.org/r/20241106-sparx5-lan969x-switch-driver-4-v1-0-f7f7316436bd@microchip.com

---
Daniel Machon (8):
      net: sparx5: do some preparation work
      net: sparx5: add function for RGMII port check
      net: sparx5: use is_port_rgmii() throughout
      net: sparx5: use phy_interface_mode_is_rgmii()
      net: sparx5: verify RGMII speeds
      net: lan969x: add RGMII registers
      net: lan969x: add RGMII implementation
      dt-bindings: net: sparx5: document RGMII MAC delays

 .../bindings/net/microchip,sparx5-switch.yaml      |  20 ++
 drivers/net/ethernet/microchip/lan969x/Makefile    |   2 +-
 drivers/net/ethernet/microchip/lan969x/lan969x.c   |   5 +
 drivers/net/ethernet/microchip/lan969x/lan969x.h   |  10 +
 .../net/ethernet/microchip/lan969x/lan969x_rgmii.c | 237 +++++++++++++++++++++
 .../net/ethernet/microchip/sparx5/sparx5_main.c    |  29 ++-
 .../net/ethernet/microchip/sparx5/sparx5_main.h    |   3 +
 .../ethernet/microchip/sparx5/sparx5_main_regs.h   | 145 +++++++++++++
 .../net/ethernet/microchip/sparx5/sparx5_phylink.c |   3 +
 .../net/ethernet/microchip/sparx5/sparx5_port.c    |  57 +++--
 .../net/ethernet/microchip/sparx5/sparx5_port.h    |   5 +
 11 files changed, 488 insertions(+), 28 deletions(-)
---
base-commit: 12079a59ce52e72a342c49cfacf0281213fd6f32
change-id: 20241104-sparx5-lan969x-switch-driver-4-d59b7820485a

Best regards,
-- 
Daniel Machon <daniel.machon@microchip.com>



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

end of thread, other threads:[~2024-11-20 17:47 UTC | newest]

Thread overview: 17+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2024-11-13 21:11 [PATCH net-next v2 0/8] net: lan969x: add RGMII support Daniel Machon
2024-11-13 21:11 ` [PATCH net-next v2 1/8] net: sparx5: do some preparation work Daniel Machon
2024-11-13 21:11 ` [PATCH net-next v2 2/8] net: sparx5: add function for RGMII port check Daniel Machon
2024-11-13 21:11 ` [PATCH net-next v2 3/8] net: sparx5: use is_port_rgmii() throughout Daniel Machon
2024-11-13 21:11 ` [PATCH net-next v2 4/8] net: sparx5: use phy_interface_mode_is_rgmii() Daniel Machon
2024-11-13 21:11 ` [PATCH net-next v2 5/8] net: sparx5: verify RGMII speeds Daniel Machon
2024-11-13 21:11 ` [PATCH net-next v2 6/8] net: lan969x: add RGMII registers Daniel Machon
2024-11-13 21:11 ` [PATCH net-next v2 7/8] net: lan969x: add RGMII implementation Daniel Machon
2024-11-13 21:11 ` [PATCH net-next v2 8/8] dt-bindings: net: sparx5: document RGMII MAC delays Daniel Machon
2024-11-14 20:06   ` Conor Dooley
2024-11-18 10:50     ` Daniel Machon
2024-11-20 17:46       ` Conor Dooley
2024-11-14 20:13   ` Andrew Lunn
2024-11-15  9:22     ` Daniel Machon
2024-11-19  0:59       ` Andrew Lunn
2024-11-19 11:43         ` Daniel Machon
2024-11-14 11:55 ` [PATCH net-next v2 0/8] net: lan969x: add RGMII support Robert Marko

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.