From: Vladimir Oltean <vladimir.olt...@nxp.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. There is a trivial dependency patch on the regmap core which is in Mark Brown's for-next tree: https://git.kernel.org/pub/scm/linux/kernel/git/broonie/regmap.git/commit/?h=for-next&id=8baebfc2aca26e3fa67ab28343671b82be42b22c I didn't know what to do with it, so I just added it here as well, as 01/13, so that net-next builds wouldn't break. 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 (9): regmap: add helper for per-port regfield initialization net: dsa: felix: set proper link speed in felix_phylink_mac_config 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: support half-duplex link modes net: dsa: felix: move probing to felix_vsc9959.c .../devicetree/bindings/net/dsa/ocelot.txt | 106 +- drivers/net/dsa/ocelot/Kconfig | 12 +- drivers/net/dsa/ocelot/Makefile | 3 +- drivers/net/dsa/ocelot/felix.c | 269 +--- drivers/net/dsa/ocelot/felix.h | 22 +- drivers/net/dsa/ocelot/felix_vsc9959.c | 313 ++++- drivers/net/dsa/ocelot/seville_vsc9953.c | 1111 +++++++++++++++++ drivers/net/ethernet/mscc/ocelot.c | 86 +- drivers/net/ethernet/mscc/ocelot.h | 9 +- drivers/net/ethernet/mscc/ocelot_board.c | 21 +- drivers/net/ethernet/mscc/ocelot_io.c | 18 +- drivers/net/ethernet/mscc/ocelot_regs.c | 61 +- include/linux/regmap.h | 8 + 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 +- 18 files changed, 1811 insertions(+), 431 deletions(-) create mode 100644 drivers/net/dsa/ocelot/seville_vsc9953.c -- 2.25.1