Re: [PATCH net-next] net: phy: mediatek: support MT7530 PHYs on EN71221 MCM
From: Caleb James DeLisle
Date: Fri Sep 11 2026 - 06:57:25 EST
Dumping the PHY register space and comparing it with MT7530 could also
help to indentify any better way than relying on the parent DT
compatible which *is* a bit of a stretch (but could well be
unavoidable, of course).
I'll give it a shot but I have low confidence in it because AFAIK this is actually a real MT7530 MCM just like MT7621 but it just happens to be clocked to a weird PLL frequency.
I just sent a v2 and I didn't find a register that looks obviously like a chip sub-id so I left the check based on the DT. But since I have no documentation on any of this, here are the differences I found in case you or someone else may know something that I don't.
I dumped the pages (g0-g7,l0-l4,ext,misc,lpi,test,tr) and the MDIO_MMD_VEND(1|2) of non-0 non-active PHYs on MT7621 and EN7526G. The differences that seem potentially relevant are:
MT7621:
EXT 23 (0x17): 0x0800
MISC 20 (0x14): 0x0200
MISC 21 (0x15): 0xffff
EN7526G:
EXT 23 (0x17): 0x1800
MISC 20 (0x14): 0xffff
MISC 21 (0x15): 0x00fe
MMD is here: https://docs.google.com/spreadsheets/d/1kzdVxYqu4cTpe6ascNshn5PoCmxrbTkr3bAuWkqKkeg/edit?gid=835011309#gid=835011309 with about 16 differences in total.
And regarding what's being changed by the patch, the registers, their MT7621 value, and the value set by the driver are as follows:
EXT 0x14 (MTK_PHY_AUX_CTRL_AND_STATUS) -> MT7621 = 0x3a55, EN751221 sets 0x3a04
MDIO_MMD_VEND2 0x417 -> MT7521 = 0x7773, EN751221 sets 0x7775
MDIO_MMD_VEND1 0xa6 -> MT7621 = 0x03e0, EN751221 sets 0x0350
MDIO_MMD_VEND1 0x12 -> MT7621 = 0x7210, EN751221 sets 0xd210
The other difference of this implementation is both master/slave negotiation and EEE are unreliable. Maybe these give a hint as to what's different with this implementation - whether it's same silicon different frequency, different package, different FAB run, etc.
Thanks,
Caleb