Re: [PATCH 2/2] phy: phy-rockchip-samsung-hdptx: Don't use dt aliases to determine phy-id
From: Heiko Stübner
Date: Fri Dec 06 2024 - 08:54:54 EST
Hi Cristian,
Am Freitag, 6. Dezember 2024, 12:26:35 CET schrieb Cristian Ciocaltea:
> On 12/6/24 12:34 PM, Heiko Stuebner wrote:
> > From: Heiko Stuebner <heiko.stuebner@xxxxxxxxx>
> >
> > The phy needs to know its identity in the system (phy0 or phy1 on rk3588)
> > for some actions and the driver currently contains code abusing of_alias
> > for that.
> >
> > Devicetree aliases are always optional and should not be used for core
> > device functionality, so instead keep a list of phys on a soc in the
> > of_device_data and find the phy-id by comparing against the mapped
> > register-base.
> >
> > Fixes: c4b09c562086 ("phy: phy-rockchip-samsung-hdptx: Add clock provider support")
> > Signed-off-by: Heiko Stuebner <heiko.stuebner@xxxxxxxxx>
> > ---
> > .../phy/rockchip/phy-rockchip-samsung-hdptx.c | 50 ++++++++++++++++---
> > 1 file changed, 44 insertions(+), 6 deletions(-)
> >
> > diff --git a/drivers/phy/rockchip/phy-rockchip-samsung-hdptx.c b/drivers/phy/rockchip/phy-rockchip-samsung-hdptx.c
> > index c5c64c209e96..b137f8c4d157 100644
> > --- a/drivers/phy/rockchip/phy-rockchip-samsung-hdptx.c
> > +++ b/drivers/phy/rockchip/phy-rockchip-samsung-hdptx.c
> > @@ -385,11 +385,22 @@ enum rk_hdptx_reset {
> > RST_MAX
> > };
>
> [...]
>
> > +
> > + /* find the phy-id from the io address */
> > + hdptx->phy_id = -ENODEV;
> > + for (id = 0; id < hdptx->cfgs->num_phys; id++) {
> > + if (res->start == hdptx->cfgs->phy_ids[id]) {
> > + hdptx->phy_id = id;
> > + break;
> > + }
> > + }
> > +
> > + if (hdptx->phy_id < 0)
> > + return dev_err_probe(dev, -ENODEV, "no matching device found\n");
>
> Maybe we could simply fallback to assume phy1 doesn't exist in this
> case, which avoids the need to provide a match data with a single entry.
Personally I'm a fan of consistent behaviour, not things working
accidentially ;-) . See the usbdp phy for example, also declaring just
one phy using the same mechanism.
Also I really don't trust the hdptxphy-grf being stable over time.
Rockchip engineers always move bts around in those, so there will be a
need for platform-data at some point anyway.
> Regardless,
>
> Reviewed-by: Cristian Ciocaltea <cristian.ciocaltea@xxxxxxxxxxxxx>
thanks :-)
Heiko