Messages in this thread | ![/](/images/icornerl.gif) | | Date | Sun, 14 Apr 2024 08:59:11 +0300 | Subject | Re: [PATCH net-next 1/2] net: dsa: mt7530-mdio: read PHY address of switch from device tree | From | Arınç ÜNAL <> |
| |
On 14.04.2024 06:10, Daniel Golle wrote: > On Sun, Apr 14, 2024 at 01:08:19AM +0300, Arınç ÜNAL via B4 Relay wrote: >> From: Arınç ÜNAL <arinc.unal@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. >> >> Signed-off-by: Arınç ÜNAL <arinc.unal@arinc9.com> > > See minor nit inline below. > > Reviewed-by: Daniel Golle <daniel@makrotopia.org> > Tested-by: Daniel Golle <daniel@makrotopia.org> > (only MT7530 and MT7531 on address 0x1f has been tested, I don't have > any board configuring the switch to any other base-address) > >> --- >> drivers/net/dsa/mt7530-mdio.c | 28 ++++++++++++++-------------- >> drivers/net/dsa/mt7530.c | 35 ++++++++++++++++++++++------------- >> drivers/net/dsa/mt7530.h | 4 +++- >> 3 files changed, 39 insertions(+), 28 deletions(-) >> >> diff --git a/drivers/net/dsa/mt7530.h b/drivers/net/dsa/mt7530.h >> index 585db03c0548..76adc9d21bcf 100644 >> --- a/drivers/net/dsa/mt7530.h >> +++ b/drivers/net/dsa/mt7530.h >> @@ -625,7 +625,7 @@ enum mt7531_clk_skew { >> #define MT7531_PHY_PLL_OFF BIT(5) >> #define MT7531_PHY_PLL_BYPASS_MODE BIT(4) >> >> -#define MT753X_CTRL_PHY_ADDR 0 >> +#define MT753X_CTRL_PHY_ADDR(phy_addr) (phy_addr == 0x1f ? 0 : phy_addr + 1) > > #define MT753X_CTRL_PHY_ADDR(phy_addr) (phy_addr + 1 & 0x1f) > > It's shorter, and works without conditional operator which is expensive.
Great, thanks.
Arınç
| ![\](/images/icornerr.gif) |