devicetree.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH net-next 00/15] net: sparx5: add support for lan969x switch device
@ 2024-10-21 13:58 Daniel Machon
  2024-10-21 13:58 ` [PATCH net-next 01/15] net: sparx5: add support for lan969x SKU's and core clock Daniel Machon
                   ` (14 more replies)
  0 siblings, 15 replies; 36+ messages in thread
From: Daniel Machon @ 2024-10-21 13:58 UTC (permalink / raw)
  To: David S. Miller, Eric Dumazet, Jakub Kicinski, Paolo Abeni,
	andrew, Lars Povlsen, Steen Hegelund, horatiu.vultur,
	jensemil.schulzostergaard, Parthiban.Veerasooran, Raju.Lakkaraju,
	UNGLinuxDriver, Richard Cochran, Rob Herring, Krzysztof Kozlowski,
	Conor Dooley, jacob.e.keller, ast, maxime.chevallier
  Cc: netdev, linux-arm-kernel, linux-kernel, Steen Hegelund,
	devicetree

== Description:

This series is the second 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 lan969x (same basic features as Sparx5
           provides excl. FDMA and VCAP).

        3) Add support for lan969x VCAP, FDMA and RGMII

== Lan969x in short:

The lan969x Ethernet switch family [1] provides a rich set of
switching features and port configurations (up to 30 ports) from 10Mbps
to 10Gbps, with support for RGMII, SGMII, QSGMII, USGMII, and USXGMII,
ideal for industrial & process automation infrastructure applications,
transport, grid automation, power substation automation, and ring &
intra-ring topologies. The LAN969x family is hardware and software
compatible and scalable supporting 46Gbps to 102Gbps switch bandwidths.

== Preparing Sparx5 for lan969x:

The main preparation work for lan969x has already been merged [1]. 

After this series is applied, lan969x will have the same functionality
as Sparx5, except for VCAP and FDMA support. QoS features that requires
the VCAP (e.g. PSFP, port mirroring) will obviously not work until VCAP
support is added later.

== Patch breakdown:

Patch #1-#4  do some preparation work for lan969x

Patch #5     adds new registers required by lan969x

Patch #6     adds initial match data for lan969x

Patch #7     defines the lan969x register differences

Patch #8     adds lan969x constants to match data

Patch #9     adds some lan969x ops in bulk

Patch #10    adds PTP function to ops

Patch #11    adds lan969x_calendar.c for calculating the calendar

Patch #12    makes additional use of the is_sparx5() macro to branch out
             in certain places.

Patch #13    documents lan969x in the dt-bindings

Patch #14    introduces new concept of devicetree target

Patch #15    introduces new concept of per-SKU features

[1] https://lore.kernel.org/netdev/20241004-b4-sparx5-lan969x-switch-driver-v2-0-d3290f581663@microchip.com/

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: andrew@lunn.ch
To: Lars Povlsen <lars.povlsen@microchip.com>
To: Steen Hegelund <Steen.Hegelund@microchip.com>
To: horatiu.vultur@microchip.com
To: jensemil.schulzostergaard@microchip.com
To: Parthiban.Veerasooran@microchip.com
To: Raju.Lakkaraju@microchip.com
To: UNGLinuxDriver@microchip.com
To: Richard Cochran <richardcochran@gmail.com>
To: Rob Herring <robh@kernel.org>
To: Krzysztof Kozlowski <krzk+dt@kernel.org>
To: Conor Dooley <conor+dt@kernel.org>
To: jacob.e.keller@intel.com
To: ast@fiberby.net
To: maxime.chevallier@bootlin.com
Cc: netdev@vger.kernel.org
Cc: linux-arm-kernel@lists.infradead.org
Cc: linux-kernel@vger.kernel.org
Cc: Steen Hegelund <steen.hegelund@microchip.com>
Cc: devicetree@vger.kernel.org

Signed-off-by: Daniel Machon <daniel.machon@microchip.com>
---
Daniel Machon (15):
      net: sparx5: add support for lan969x SKU's and core clock
      net: sparx5: change spx5_wr to spx5_rmw in cal update()
      net: sparx5: change frequency calculation for SDLB's
      net: sparx5: add sparx5 context pointer to a few functions
      net: sparx5: add registers required by lan969x
      net: lan969x: add match data for lan969x
      net: lan969x: add register diffs to match data
      net: lan969x: add constants to match data
      net: lan969x: add lan969x ops to match data
      net: lan969x: add PTP handler function
      net: lan969x: add function for calculating the DSM calendar
      net: sparx5: use is_sparx5() macro throughout
      dt-bindings: net: add compatible strings for lan969x SKU's
      net: sparx5: add compatible strings for lan969x and verify the target
      net: sparx5: add feature support

 .../bindings/net/microchip,sparx5-switch.yaml      |  17 +-
 MAINTAINERS                                        |   7 +
 drivers/net/ethernet/microchip/Kconfig             |   1 +
 drivers/net/ethernet/microchip/Makefile            |   1 +
 drivers/net/ethernet/microchip/lan969x/Kconfig     |   5 +
 drivers/net/ethernet/microchip/lan969x/Makefile    |  13 +
 drivers/net/ethernet/microchip/lan969x/lan969x.c   | 349 +++++++++++++++++++++
 drivers/net/ethernet/microchip/lan969x/lan969x.h   |  56 ++++
 .../ethernet/microchip/lan969x/lan969x_calendar.c  | 190 +++++++++++
 .../net/ethernet/microchip/lan969x/lan969x_regs.c  | 223 +++++++++++++
 drivers/net/ethernet/microchip/sparx5/Makefile     |   1 +
 .../ethernet/microchip/sparx5/sparx5_calendar.c    |  72 +++--
 .../net/ethernet/microchip/sparx5/sparx5_fdma.c    |   2 +-
 .../net/ethernet/microchip/sparx5/sparx5_main.c    | 272 +++++++++++++++-
 .../net/ethernet/microchip/sparx5/sparx5_main.h    |  76 ++++-
 .../ethernet/microchip/sparx5/sparx5_main_regs.h   | 132 ++++++++
 .../net/ethernet/microchip/sparx5/sparx5_mirror.c  |  10 +-
 .../net/ethernet/microchip/sparx5/sparx5_netdev.c  |  26 +-
 .../net/ethernet/microchip/sparx5/sparx5_packet.c  |  16 +-
 .../net/ethernet/microchip/sparx5/sparx5_port.c    |  46 +++
 drivers/net/ethernet/microchip/sparx5/sparx5_ptp.c |  13 +-
 drivers/net/ethernet/microchip/sparx5/sparx5_qos.c |   3 +-
 .../net/ethernet/microchip/sparx5/sparx5_regs.c    |   5 +-
 .../net/ethernet/microchip/sparx5/sparx5_regs.h    |   5 +-
 .../net/ethernet/microchip/sparx5/sparx5_sdlb.c    |  10 +-
 .../ethernet/microchip/sparx5/sparx5_tc_flower.c   |   5 +
 26 files changed, 1471 insertions(+), 85 deletions(-)
---
base-commit: 30d9d8f6a2d7e44a9f91737dd409dbc87ac6f6b7
change-id: 20241016-sparx5-lan969x-switch-driver-2-7cef55783938

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


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

end of thread, other threads:[~2024-10-24 15:53 UTC | newest]

Thread overview: 36+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2024-10-21 13:58 [PATCH net-next 00/15] net: sparx5: add support for lan969x switch device Daniel Machon
2024-10-21 13:58 ` [PATCH net-next 01/15] net: sparx5: add support for lan969x SKU's and core clock Daniel Machon
2024-10-22  8:57   ` Simon Horman
2024-10-21 13:58 ` [PATCH net-next 02/15] net: sparx5: change spx5_wr to spx5_rmw in cal update() Daniel Machon
2024-10-21 13:58 ` [PATCH net-next 03/15] net: sparx5: change frequency calculation for SDLB's Daniel Machon
2024-10-21 13:58 ` [PATCH net-next 04/15] net: sparx5: add sparx5 context pointer to a few functions Daniel Machon
2024-10-21 13:58 ` [PATCH net-next 05/15] net: sparx5: add registers required by lan969x Daniel Machon
2024-10-21 17:33   ` Maxime Chevallier
2024-10-21 19:10     ` Daniel Machon
2024-10-21 13:58 ` [PATCH net-next 06/15] net: lan969x: add match data for lan969x Daniel Machon
2024-10-23  1:32   ` kernel test robot
2024-10-23 20:53   ` kernel test robot
2024-10-24 15:52   ` kernel test robot
2024-10-21 13:58 ` [PATCH net-next 07/15] net: lan969x: add register diffs to match data Daniel Machon
2024-10-21 13:58 ` [PATCH net-next 08/15] net: lan969x: add constants " Daniel Machon
2024-10-21 13:58 ` [PATCH net-next 09/15] net: lan969x: add lan969x ops " Daniel Machon
2024-10-21 13:58 ` [PATCH net-next 10/15] net: lan969x: add PTP handler function Daniel Machon
2024-10-21 17:46   ` Maxime Chevallier
2024-10-21 19:12     ` Daniel Machon
2024-10-21 13:58 ` [PATCH net-next 11/15] net: lan969x: add function for calculating the DSM calendar Daniel Machon
2024-10-21 17:51   ` Maxime Chevallier
2024-10-21 19:13     ` Daniel Machon
2024-10-21 13:58 ` [PATCH net-next 12/15] net: sparx5: use is_sparx5() macro throughout Daniel Machon
2024-10-21 13:58 ` [PATCH net-next 13/15] dt-bindings: net: add compatible strings for lan969x SKU's Daniel Machon
2024-10-22  6:11   ` Krzysztof Kozlowski
2024-10-21 13:58 ` [PATCH net-next 14/15] net: sparx5: add compatible strings for lan969x and verify the target Daniel Machon
2024-10-22  6:09   ` Krzysztof Kozlowski
2024-10-22  8:32     ` Daniel Machon
2024-10-22  8:50   ` Simon Horman
2024-10-22 12:08     ` Daniel Machon
2024-10-22 13:35       ` Simon Horman
2024-10-23  8:14   ` Krzysztof Kozlowski
2024-10-23 11:00     ` Daniel Machon
2024-10-23 12:06       ` Krzysztof Kozlowski
2024-10-23 18:33         ` Daniel Machon
2024-10-21 13:58 ` [PATCH net-next 15/15] net: sparx5: add feature support Daniel Machon

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).