[PATCH net-next] net: phy: mediatek: support MT7530 PHYs on EN71221 MCM

Caleb James DeLisle cjd at cjdns.fr
Fri Sep 11 03:48:35 PDT 2026


>>
>> 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




More information about the linux-arm-kernel mailing list