[PATCH net-next v2 1/2] net: dsa: mt7530-mdio: read PHY address of switch from device tree

Florian Fainelli f.fainelli at gmail.com
Tue Apr 16 20:09:50 PDT 2024



On 4/16/2024 1:32 AM, Arınç ÜNAL wrote:
> On 15/04/2024 18:30, Florian Fainelli wrote:
>>
>>
>> On 4/13/2024 11:07 PM, Arınç ÜNAL via B4 Relay wrote:
>>> From: Arınç ÜNAL <arinc.unal at arinc9.com>
>>>
>>> Read the PHY address the switch listens on from the reg property of the
>>> switch node on the device tree. This change brings support for MT7530
>>> switches on boards with such bootstrapping configuration where the 
>>> switch
>>> listens on a different PHY address than the hardcoded PHY address on the
>>> driver, 31.
>>>
>>> As described on the "MT7621 Programming Guide v0.4" document, the MT7530
>>> switch and its PHYs can be configured to listen on the range of 7-12,
>>> 15-20, 23-28, and 31 and 0-4 PHY addresses.
>>>
>>> There are operations where the switch PHY registers are used. For the 
>>> PHY
>>> address of the control PHY, transform the MT753X_CTRL_PHY_ADDR constant
>>> into a macro and use it. The PHY address for the control PHY is 0 
>>> when the
>>> switch listens on 31. In any other case, it is one greater than the PHY
>>> address the switch listens on.
>>>
>>> Reviewed-by: Daniel Golle <daniel at makrotopia.org>
>>> Tested-by: Daniel Golle <daniel at makrotopia.org>
>>> Signed-off-by: Arınç ÜNAL <arinc.unal at arinc9.com>
>>
>> Reviewed-by: Florian Fainelli <florian.fainelli at broadcom.com>
>>
>> I would go a step further and name phy_addr switch_mdio_addr, or 
>> something along those lines to clearly denote this is not a per-port 
>> PHY address neither a proper PHY device, but we've already had a 
>> similar discussion before about spelling this out clearly as a "pseudo 
>> PHY"....
> 
> I am fine with calling the switch operating on an MDIO bus a psuedo-PHY.
> But I don't believe this grants making up names on our own instead of using
> the name described in IEEE Std 802.3-2022. The switch listens on a PHY
> address on the MDIO bus. 

The switch listens at a particular address on the MDIO bus, that is the 
key thing. Whether the addressable device happens to be an 
Ethernet/SATA/PCIe/USB PHY, an accelerometer, a light switch or an 
Ethernet switch does not matter as long as it is addressable over clause 
22 and/or 45. For all that matters the switch's MDIO interface is not a 
PHY, otherwise its registers 0-15 would be abiding by the IEEE 
802.3-2022 standard, and that is not the case.

> The description for the phy_addr member of the
> mt753x_info structure clearly explains that so I don't see a reason to
> change the variable name.

IMHO it is clearer to use mdiodev->addr through and through, the 
shorthand is not necessary and does not save that many characters to 
type in the first place. Saving a mdiodev pointer into mt7530_priv and 
accessing priv->mdiodev->addr would be 18 characters to type versus 14 
with priv->phy_addr.

Anyway.
-- 
Florian



More information about the Linux-mediatek mailing list