The MediaTek MT7988 SoC comes with a built-in switch very similar to
previous MT7530 and MT7531. However, the switch address space is mapped
into the SoCs memory space rather than being connected via MDIO.
Using MMIO simplifies register access and also removes the need for a bus
lock, and for that reason also makes interrupt handling more light-weight.
Note that this is different from previous SoCs like MT7621 and MT7623N
which also came with an integrated MT7530-like switch which yet had to be
accessed via MDIO.
Split-off the part of the driver registering an MDIO driver, then add
another module acting as MMIO/platform driver.
Changes since v2:
* split into many small commits to ease review
* introduce helper functions to reduce code duplication
* use helpers for locking to make lock-skipping easier and less ugly
to implement.
* add dt-bindings for mediatek,mt7988-switch
Changes since initial RFC:
* use regmap for register access and move register access to bus-
specific driver
* move initialization of MT7531 SGMII PCS to MDIO driver
Daniel Golle (15):
net: dsa: mt7530: refactor SGMII PCS creation
net: dsa: mt7530: use unlocked regmap accessors
net: dsa: mt7530: use regmap to access switch register space
net: dsa: mt7530: move SGMII PCS creation to mt7530_probe function
net: dsa: mt7530: introduce mutex helpers
net: dsa: mt7530: move p5_intf_modes() function to mt7530.c
net: dsa: mt7530: introduce mt7530_probe_common helper function
net: dsa: mt7530: introduce mt7530_remove_common helper function
net: dsa: mt7530: split-off common parts from mt7531_setup
net: dsa: mt7530: introduce separate MDIO driver
net: dsa: mt7530: skip locking if MDIO bus isn't present
net: dsa: mt7530: add support for single-chip reset line
net: dsa: mt7530: add support for 10G link modes for CPU port
net: dsa: mt7530: introduce driver for MT7988 built-in switch
dt-bindings: net: dsa: mediatek,mt7530: add mediatek,mt7988-switch
.../bindings/net/dsa/mediatek,mt7530.yaml | 26 +-
MAINTAINERS | 3 +
drivers/net/dsa/Kconfig | 28 +-
drivers/net/dsa/Makefile | 4 +-
drivers/net/dsa/mt7530-mdio.c | 242 ++++++++
drivers/net/dsa/mt7530-mmio.c | 96 ++++
drivers/net/dsa/mt7530.c | 519 +++++++++---------
drivers/net/dsa/mt7530.h | 38 +-
8 files changed, 653 insertions(+), 303 deletions(-)
create mode 100644 drivers/net/dsa/mt7530-mdio.c
create mode 100644 drivers/net/dsa/mt7530-mmio.c
base-commit: 86e2eca4ddedc07d639c44c990e1c220cac3741e
--
2.39.2