mbox series

[net-next,v5,0/3] Arrow SpeedChips XRS700x DSA Driver

Message ID 20210114195734.55313-1-george.mccollister@gmail.com (mailing list archive)
Headers show
Series Arrow SpeedChips XRS700x DSA Driver | expand

Message

George McCollister Jan. 14, 2021, 7:57 p.m. UTC
This series adds a DSA driver for the Arrow SpeedChips XRS 7000 series
of HSR/PRP gigabit switch chips.

The chips use Flexibilis IP.
More information can be found here:
 https://www.flexibilis.com/products/speedchips-xrs7000/

The switches have up to three RGMII ports and one MII port and are
managed via mdio or i2c. They use a one byte trailing tag to identify
the switch port when in managed mode so I've added a tag driver which
implements this.

This series contains minimal DSA functionality which may be built upon
in future patches. The ultimate goal is to add HSR and PRP
(IEC 62439-3 Clause 5 & 4) offloading with integration into net/hsr.

Changes since v1:
 * Use central TX reallocation in tag driver. (Andrew Lunn)
 * Code style fixes. (Andrew Lunn, Vladimir Oltean)
 * Code simplifications. (Andrew Lunn, Vladimir Oltean)
 * Verify detected switch matches compatible. (Andrew Lunn)
 * Add inbound policy to allow BPDUs. (Andrew Lunn)
 * Move files into their own subdir. (Vladimir Oltean)
 * Automate regmap field allocation. (Vladimir Oltean)
 * Move setting link speed to .mac_link_up. (Vladimir Oltean)
 * Use different compatible strings for e/f variants.

Changes since v2:
 * Export constant xrs700x_info symbols. (Jakub Kicinski)
 * Report stats via .get_stats64. (Jakub Kicinski, Vladimir Oltean)
 * Use a 3 second polling rate for counters.

Changes since v3:
 * Builds against net-next now that get_stats64 commit has been merged.
 * Don't show status in devicetree examples. (Rob Herring)
 * Use ethernet-port(s) in devicetree examples. (Rob Herring)
 * Use strscpy() instead of strlcpy().

Changes since v4:
 * Removed some unneeded includes. (Vladimir Oltean)
 * Remove unneeded call to skb_linearize(). (Vladimir Oltean)
 * Make naming of variables more consistent. (Vladimir Oltean)
 * Use VLAN_N_VID instead of creating a define for MAX_VLAN.
   (Florian Fainelli)
 * Use devm_kcalloc instead of devm_kzalloc where appropriate.
   (Vladimir Oltean)
 * Use eth_stp_addr and write BPDU inbound policy address in a loop.
   (Florian Fainelli)
 * Set i2c/mdio data before registering. (Florian Fainelli)

George McCollister (3):
  dsa: add support for Arrow XRS700x tag trailer
  net: dsa: add Arrow SpeedChips XRS700x driver
  dt-bindings: net: dsa: add bindings for xrs700x switches

 .../devicetree/bindings/net/dsa/arrow,xrs700x.yaml |  73 +++
 drivers/net/dsa/Kconfig                            |   2 +
 drivers/net/dsa/Makefile                           |   1 +
 drivers/net/dsa/xrs700x/Kconfig                    |  26 +
 drivers/net/dsa/xrs700x/Makefile                   |   4 +
 drivers/net/dsa/xrs700x/xrs700x.c                  | 622 +++++++++++++++++++++
 drivers/net/dsa/xrs700x/xrs700x.h                  |  42 ++
 drivers/net/dsa/xrs700x/xrs700x_i2c.c              | 150 +++++
 drivers/net/dsa/xrs700x/xrs700x_mdio.c             | 163 ++++++
 drivers/net/dsa/xrs700x/xrs700x_reg.h              | 203 +++++++
 include/net/dsa.h                                  |   2 +
 net/dsa/Kconfig                                    |   6 +
 net/dsa/Makefile                                   |   1 +
 net/dsa/tag_xrs700x.c                              |  61 ++
 14 files changed, 1356 insertions(+)
 create mode 100644 Documentation/devicetree/bindings/net/dsa/arrow,xrs700x.yaml
 create mode 100644 drivers/net/dsa/xrs700x/Kconfig
 create mode 100644 drivers/net/dsa/xrs700x/Makefile
 create mode 100644 drivers/net/dsa/xrs700x/xrs700x.c
 create mode 100644 drivers/net/dsa/xrs700x/xrs700x.h
 create mode 100644 drivers/net/dsa/xrs700x/xrs700x_i2c.c
 create mode 100644 drivers/net/dsa/xrs700x/xrs700x_mdio.c
 create mode 100644 drivers/net/dsa/xrs700x/xrs700x_reg.h
 create mode 100644 net/dsa/tag_xrs700x.c

Comments

Jakub Kicinski Jan. 15, 2021, 11:42 p.m. UTC | #1
On Thu, 14 Jan 2021 13:57:31 -0600 George McCollister wrote:
> This series adds a DSA driver for the Arrow SpeedChips XRS 7000 series
> of HSR/PRP gigabit switch chips.
> 
> The chips use Flexibilis IP.
> More information can be found here:
>  https://www.flexibilis.com/products/speedchips-xrs7000/
> 
> The switches have up to three RGMII ports and one MII port and are
> managed via mdio or i2c. They use a one byte trailing tag to identify
> the switch port when in managed mode so I've added a tag driver which
> implements this.
> 
> This series contains minimal DSA functionality which may be built upon
> in future patches. The ultimate goal is to add HSR and PRP
> (IEC 62439-3 Clause 5 & 4) offloading with integration into net/hsr.

I corrected a couple uint_t types to kernel types and applied.

Please consider adding an entry to MAINTAINERS for this driver.

Thank you!