[RFC PATCH v3 net-next 00/10] add support for VSC75XX control over SPI

Colin Foster
2021-08-14T02:50:26Z

Add support for configuration and control of the VSC7511, VSC7512, VSC7513, and
VSC7514 chips over a SPI interface. The intent is to control these chips from an
external CPU. The expectation is to have most of the features of the
net/ethernet/mscc/ocelot_vsc7514 driver.

RFC history:
v1 (accidentally named vN)
Initial architecture. Not functional
General concepts laid out

v2
Near functional. No CPU port communication, but control over all
external ports
Cleaned up regmap implementation from v1

v3
Functional
Shared MDIO transactions routed through mdio-mscc-miim
CPU / NPI port enabled by way of vsc7512_enable_npi_port /
felix->info->enable_npi_port
NPI port tagging functional - Requires a CPU port driver that supports
frames of 1520 bytes. Verified with a patch to the cpsw driver

Colin Foster (10):
net: dsa: ocelot: remove unnecessary pci_bar variables
net: mdio: mscc-miim: convert to a regmap implementation
net: dsa: ocelot: felix: switch to mdio-mscc-miim driver for indirect
mdio access
net: dsa: ocelot: felix: Remove requirement for PCS in felix devices
net: dsa: ocelot: felix: add interface for custom regmaps
net: mscc: ocelot: split register definitions to a separate file
net: mscc: ocelot: expose ocelot wm functions
net: mscc: ocelot: felix: add ability to enable a CPU / NPI port
net: dsa: ocelot: felix: add support for VSC75XX control over SPI
docs: devicetree: add documentation for the VSC7512 SPI device

.../devicetree/bindings/net/dsa/ocelot.txt | 92 ++
drivers/net/dsa/ocelot/Kconfig | 14 +
drivers/net/dsa/ocelot/Makefile | 7 +
drivers/net/dsa/ocelot/felix.c | 11 +-
drivers/net/dsa/ocelot/felix.h | 5 +-
drivers/net/dsa/ocelot/felix_mdio.c | 52 +
drivers/net/dsa/ocelot/felix_mdio.h | 12 +
drivers/net/dsa/ocelot/felix_vsc9959.c | 11 +-
drivers/net/dsa/ocelot/ocelot_vsc7512_spi.c | 1133 +++++++++++++++++
drivers/net/dsa/ocelot/seville_vsc9953.c | 109 +-
drivers/net/ethernet/mscc/Makefile | 2 +
drivers/net/ethernet/mscc/ocelot.c | 8 +
drivers/net/ethernet/mscc/ocelot_regs.c | 309 +++++
drivers/net/ethernet/mscc/ocelot_vsc7514.c | 323 +----
drivers/net/ethernet/mscc/ocelot_wm.c | 39 +
drivers/net/mdio/mdio-mscc-miim.c | 137 +-
include/linux/mdio/mdio-mscc-miim.h | 19 +
include/soc/mscc/ocelot.h | 24 +
include/soc/mscc/ocelot_regs.h | 20 +
19 files changed, 1857 insertions(+), 470 deletions(-)
create mode 100644 drivers/net/dsa/ocelot/felix_mdio.c
create mode 100644 drivers/net/dsa/ocelot/felix_mdio.h
create mode 100644 drivers/net/dsa/ocelot/ocelot_vsc7512_spi.c
create mode 100644 drivers/net/ethernet/mscc/ocelot_regs.c
create mode 100644 drivers/net/ethernet/mscc/ocelot_wm.c
create mode 100644 include/linux/mdio/mdio-mscc-miim.h
create mode 100644 include/soc/mscc/ocelot_regs.h

--
2.25.1