dt-bindings: phy-qcom-qmp: Add UFS PHY reset
authorEvan Green <evgreen@chromium.org>
Thu, 21 Mar 2019 17:17:54 +0000 (10:17 -0700)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Fri, 31 May 2019 13:43:31 +0000 (06:43 -0700)
commitbf0280e58717b585fd63ec03a512aa2bd730099a
tree92e12ce03475b6779b40c58f3bb68cf996e83e71
parentbf18396dbe081161f2bc484598819e5ba962f1f0
dt-bindings: phy-qcom-qmp: Add UFS PHY reset

[ Upstream commit 95cee0b4e30a09a411a17e9a3bc6b72ed92063da ]

Add a required reset to the SDM845 UFS phy to express the PHY reset
bit inside the UFS controller register space. Before this change, this
reset was not expressed in the DT, and the driver utilized two different
callbacks (phy_init and phy_poweron) to implement a two-phase
initialization procedure that involved deasserting this reset between
init and poweron. This abused the two callbacks and diluted their
purpose.

That scheme does not work as regulators cannot be turned off in
phy_poweroff because they were turned on in init, rather than poweron.
The net result is that regulators are left on in suspend that shouldn't
be.

This new scheme gives the UFS reset to the PHY, so that it can fully
initialize itself in a single callback. We can then turn regulators on
during poweron and off during poweroff.

Signed-off-by: Evan Green <evgreen@chromium.org>
Reviewed-by: Rob Herring <robh@kernel.org>
Reviewed-by: Stephen Boyd <swboyd@chromium.org>
Signed-off-by: Kishon Vijay Abraham I <kishon@ti.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
Documentation/devicetree/bindings/phy/qcom-qmp-phy.txt