[PATCH v2 net-next 0/7] net: dsa: mt7530: support EcoNet EN751221

From: Caleb James DeLisle

Date: Tue Sep 15 2026 - 15:00:01 EST


The EcoNet EN751221 has a unique switch configuration. Every chip made
with an EN751221 die has at least one on-die MT7530 that is MMIO based.
This switch has 3x 10/100 ports and 1x gigabit port.

Some popular chip packages such as the EN7513G and EN7526G have another
MT7530 implemented as a multi-chip-module that connects to port 5 of
the on-die switch and is controlled via the MDIO controller integrated
in the on-die MT7530.

In this configurations, the upstream switch is put into a "passthrough"
mode in which all traffic is forwarded between port 5 and port 6
without altering its DSA tags.

Furthermore, since the DSA core does not call mt753x_setup until all
switches are present, and the downstream switch only becomes available
when the upstream switch has configured its MDIO controller, the MDIO
controller setup on MMIO implementations must be done before
mt753x_setup, or else it will never complete.

Finally, the on-die switch and the MCM switch connect via a TRGMII link
which requires calibration. In order to calibrate this, PLL adjustment
must be possible on the on-die switch, necessitating changes to the
core_(set|clear|write|rmw) functions to support MMIO implementations.

Solve all of these issues, add the TRGMII calibration, and add support
for both switches.

Since this patchset will probably be subject to some discussion, please
consider accepting any patches that are non-controversial since it will
make future re-submissions easier.

Thanks!

Changes since v1:
* Move mt7530_setup_mdio_irq out of mt7530_setup_mdio because
mt7530_setup_mdio may be called before mt753x_setup

* Do not return error in mt7988_probe if mt7530_setup_mdio fails because
doing so leaks the DSA switch registration, and in any case
mt7530_setup_mdio will be called again.

* default_taps_ondie not being used en751221_trgmii_cal_ok unused args

* Use clk_drvp / clk_drvp instead of drvp / drvn (typo)

* en751221_set_tx_drive ext values too large for fields - values taken
from reference implementation, reduced from 16 to 15.

v1: https://lore.kernel.org/netdev/20260909140346.2861572-1-cjd@xxxxxxxx/

Caleb James DeLisle (7):
net: dsa: mt7530: get ctrl phy addr using a function
dt-bindings: net: dsa: mediatek,mt7530: add passthrough mode
net: dsa: mediatek: add support for passthrough mode
net: dsa: mediatek: support PLL setup on MMIO MT7530
net: dsa: mediatek: support MDIO switch downstream of MMIO switch
dt-bindings: net: dsa: mediatek,mt7530: add econet,en751221
net: dsa: mediatek: support EN751221 switch

.../bindings/net/dsa/mediatek,mt7530.yaml | 50 +-
drivers/net/dsa/mt7530-mdio.c | 1 +
drivers/net/dsa/mt7530-mmio.c | 10 +-
drivers/net/dsa/mt7530.c | 579 ++++++++++++++++--
drivers/net/dsa/mt7530.h | 46 +-
5 files changed, 632 insertions(+), 54 deletions(-)

--
2.39.5