Re: [RFCv1 6/8] phy: amlogic: meson8b-usb2: Use phy reset callback function
From: Anand Moon <hidden>
Date: 2021-06-18 15:33:43
Also in:
linux-amlogic, linux-arm-kernel, lkml
Hi Martin On Fri, 18 Jun 2021 at 03:54, Martin Blumenstingl [off-list ref] wrote:
Hi Anand, On Thu, Jun 17, 2021 at 9:44 PM Anand Moon [off-list ref] wrote: [...]quoted
+static int phy_meson8b_usb2_reset(struct phy *phy) +{ + struct phy_meson8b_usb2_priv *priv = phy_get_drvdata(phy); + int ret; + + if (priv->is_enabled) { + ret = reset_control_reset(priv->reset); + if (ret) { + dev_err(&phy->dev, "Failed to trigger USB reset\n"); + return ret; + } + } + + return 0; +}will this reset change the register values back to some kind of default? If it does then we're not re-applying our desired register values afterwards - which is probably asking for trouble. For shared resets (like the one we have here) reset_control_reset will only trigger the reset line once until all drivers using that reset line are unloaded. So effectively this new phy_ops.reset callback will be a no-op.
I know his register is shared between two USB IPs, but I have not observed any issues.
[...]quoted
- priv->reset = devm_reset_control_get_optional_shared(&pdev->dev, NULL); + priv->reset = devm_reset_control_get_optional_shared(&pdev->dev, "phy");I think this breaks compatibility with existing .dtbs and our dt-bindings (as we're not documenting a "reset-names" property). What is the goal of this one?
OK, If we pass NULL over here there is the possibility USB phy will not get registered.
Best regards, Martin
Thanks -Anand -- linux-phy mailing list linux-phy@lists.infradead.org https://lists.infradead.org/mailman/listinfo/linux-phy