[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