Thread (37 messages) 37 messages, 2 authors, 2021-07-02

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
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help