Re: [PATCH 05/19] phy: qualcomm: usb: Add SuperSpeed PHY driver

From: Philipp Zabel
Date: Wed Jan 15 2020 - 10:08:51 EST


On Wed, 2020-01-15 at 14:13 +0000, Bryan O'Donoghue wrote:
> From: Jorge Ramirez-Ortiz <jorge.ramirez-ortiz@xxxxxxxxxx>
>
> Controls Qualcomm's SS phy 1.0.0 implemented in the QCS404 and some
> other Qualcomm platforms.
>
> Based on Sriharsha Allenki's <sallenki@xxxxxxxxxxxxxx> original code.
>
> [bod: Removed dependency on extcon.
> Switched to gpio-usb-conn to handle VBUS On/Off
> Switched to usb-role-switch to bind gpio-usb-conn to DWC3]
> Signed-off-by: Jorge Ramirez-Ortiz <jorge.ramirez-ortiz@xxxxxxxxxx>
> Cc: Jorge Ramirez-Ortiz <jorge.ramirez.ortiz@xxxxxxxxx>
> Cc: Sriharsha Allenki's <sallenki@xxxxxxxxxxxxxx>
> Cc: Andy Gross <agross@xxxxxxxxxx>
> Cc: Bjorn Andersson <bjorn.andersson@xxxxxxxxxx>
> Cc: Kishon Vijay Abraham I <kishon@xxxxxx>
> Cc: Philipp Zabel <p.zabel@xxxxxxxxxxxxxx>
> Cc: linux-arm-msm@xxxxxxxxxxxxxxx
> Cc: linux-kernel@xxxxxxxxxxxxxxx
> Signed-off-by: Bryan O'Donoghue <bryan.odonoghue@xxxxxxxxxx>
> ---
> drivers/phy/qualcomm/Kconfig | 11 ++
> drivers/phy/qualcomm/Makefile | 1 +
> drivers/phy/qualcomm/phy-qcom-usb-ss.c | 246 +++++++++++++++++++++++++
> 3 files changed, 258 insertions(+)
> create mode 100644 drivers/phy/qualcomm/phy-qcom-usb-ss.c
>
[...]
> diff --git a/drivers/phy/qualcomm/phy-qcom-usb-ss.c b/drivers/phy/qualcomm/phy-qcom-usb-ss.c
> new file mode 100644
> index 000000000000..109e455cb509
> --- /dev/null
> +++ b/drivers/phy/qualcomm/phy-qcom-usb-ss.c
> @@ -0,0 +1,246 @@
[...]
> +static int qcom_ssphy_init_reset(struct ssphy_priv *priv)
> +{
> + priv->reset_com = devm_reset_control_get_optional(priv->dev, "com");

Please use devm_reset_control_get_optional_exclusive() here ...

> + if (IS_ERR(priv->reset_com)) {
> + dev_err(priv->dev, "Failed to get reset control com\n");
> + return PTR_ERR(priv->reset_com);
> + }
> +
> + if (priv->reset_com) {
> + /* if reset_com is present, reset_phy is no longer optional */
> + priv->reset_phy = devm_reset_control_get(priv->dev, "phy");

... and devm_reset_control_get_exclusive() here.

regards
Philipp