[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-Id: <20200713165711.2518150-1-olteanv@gmail.com>
Date: Mon, 13 Jul 2020 19:57:00 +0300
From: Vladimir Oltean <olteanv@...il.com>
To: davem@...emloft.net
Cc: netdev@...r.kernel.org, andrew@...n.ch, vivien.didelot@...il.com,
f.fainelli@...il.com, antoine.tenart@...tlin.com,
alexandre.belloni@...tlin.com, UNGLinuxDriver@...rochip.com,
alexandru.marginean@....com, claudiu.manoil@....com,
madalin.bucur@....nxp.com, radu-andrei.bulie@....com,
fido_max@...ox.ru
Subject: [PATCH v4 net-next 00/11] New DSA driver for VSC9953 Seville switch
From: Vladimir Oltean <vladimir.oltean@....com>
Looking at the Felix and Ocelot drivers, Maxim asked if it would be
possible to use them as a base for a new driver for the Seville switch
inside NXP T1040. Turns out, it is! The result is that the mscc_felix
driver was extended to probe on Seville.
The biggest challenge seems to be getting register read/write API
generic enough to cover such wild bitfield variations between hardware
generations.
Currently, both felix and seville are built under the same kernel config
option (NET_DSA_MSCC_FELIX). This has both some advantages (no need to
duplicate the Lynx PCS code from felix_vsc9959.c) and some disadvantages
(Seville needs to depend on PCI and on ENETC_MDIO). This will be further
refined as time progresses.
The driver has been completely reviewed. Previous submission was here,
it wasn't accepted due to a conflict with Mark Brown's tree, very late
in the release cycle:
https://patchwork.ozlabs.org/project/netdev/cover/20200531122640.1375715-1-olteanv@gmail.com/
So this is more of a repost, with the only changes being related to
rebasing on top of the cleanup I had to do in Ocelot.
Maxim Kochetkov (4):
soc: mscc: ocelot: add MII registers description
net: mscc: ocelot: convert SYS_PAUSE_CFG register access to regfield
net: mscc: ocelot: extend watermark encoding function
net: dsa: felix: introduce support for Seville VSC9953 switch
Vladimir Oltean (7):
net: mscc: ocelot: convert port registers to regmap
net: mscc: ocelot: convert QSYS_SWITCH_PORT_MODE and SYS_PORT_MODE to
regfields
net: dsa: felix: create a template for the DSA tags on xmit
net: mscc: ocelot: split writes to pause frame enable bit and to
thresholds
net: mscc: ocelot: disable flow control on NPI interface
net: dsa: felix: move probing to felix_vsc9959.c
docs: devicetree: add bindings for Seville DSA switch inside Felix
driver
.../devicetree/bindings/net/dsa/ocelot.txt | 105 +-
drivers/net/dsa/ocelot/Kconfig | 12 +-
drivers/net/dsa/ocelot/Makefile | 3 +-
drivers/net/dsa/ocelot/felix.c | 232 +---
drivers/net/dsa/ocelot/felix.h | 28 +-
drivers/net/dsa/ocelot/felix_vsc9959.c | 303 ++++-
drivers/net/dsa/ocelot/seville_vsc9953.c | 1104 +++++++++++++++++
drivers/net/ethernet/mscc/ocelot.c | 73 +-
drivers/net/ethernet/mscc/ocelot.h | 9 +-
drivers/net/ethernet/mscc/ocelot_io.c | 18 +-
drivers/net/ethernet/mscc/ocelot_net.c | 5 +-
drivers/net/ethernet/mscc/ocelot_vsc7514.c | 82 +-
include/soc/mscc/ocelot.h | 68 +-
include/soc/mscc/ocelot_dev.h | 78 --
include/soc/mscc/ocelot_qsys.h | 13 -
include/soc/mscc/ocelot_sys.h | 23 -
net/dsa/tag_ocelot.c | 21 +-
17 files changed, 1767 insertions(+), 410 deletions(-)
create mode 100644 drivers/net/dsa/ocelot/seville_vsc9953.c
--
2.25.1
Powered by blists - more mailing lists