From: kishon@ti.com (Kishon Vijay Abraham I)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH v7 3/5] phy: Add set_vbus callback
Date: Sun, 22 Jan 2017 14:16:21 +0530 [thread overview]
Message-ID: <5884715D.7050709@ti.com> (raw)
In-Reply-To: <20170120185057.16206-4-stephen.boyd@linaro.org>
Hi,
On Saturday 21 January 2017 12:20 AM, Stephen Boyd wrote:
> Some USB PHYs need to be told about vbus changing state
> explicitly. For example the qcom USB HS PHY needs to toggle a bit
> when vbus goes from low to high (VBUSVLDEXT) to cause the
> "session valid" signal to toggle. This signal will pull up D+
> when the phy starts running. If the vbus signal isn't routed to
> the PHY this "session valid" signal won't ever toggle, so we have
> to toggle it explicitly. This callback is used to do that.
>
> Cc: Peter Chen <peter.chen@nxp.com>
> Signed-off-by: Stephen Boyd <stephen.boyd@linaro.org>
> ---
>
> New patch
>
> drivers/phy/phy-core.c | 15 +++++++++++++++
> include/linux/phy/phy.h | 10 ++++++++++
> 2 files changed, 25 insertions(+)
>
> diff --git a/drivers/phy/phy-core.c b/drivers/phy/phy-core.c
> index a268f4d6f3e9..8b1a6bfa5133 100644
> --- a/drivers/phy/phy-core.c
> +++ b/drivers/phy/phy-core.c
> @@ -357,6 +357,21 @@ int phy_set_mode(struct phy *phy, enum phy_mode mode)
> }
> EXPORT_SYMBOL_GPL(phy_set_mode);
>
> +int phy_set_vbus(struct phy *phy, int on)
> +{
> + int ret;
> +
> + if (!phy || !phy->ops->set_vbus)
> + return 0;
> +
> + mutex_lock(&phy->mutex);
> + ret = phy->ops->set_vbus(phy, on);
> + mutex_unlock(&phy->mutex);
> +
> + return ret;
> +}
> +EXPORT_SYMBOL_GPL(phy_set_vbus);
> +
> int phy_reset(struct phy *phy)
> {
> int ret;
> diff --git a/include/linux/phy/phy.h b/include/linux/phy/phy.h
> index 78bb0d7f6b11..4d1ebde7fb14 100644
> --- a/include/linux/phy/phy.h
> +++ b/include/linux/phy/phy.h
> @@ -36,6 +36,7 @@ enum phy_mode {
> * @power_on: powering on the phy
> * @power_off: powering off the phy
> * @set_mode: set the mode of the phy
> + * @set_vbus: enable/disable vbus in the phy (USB)
> * @reset: resetting the phy
> * @owner: the module owner containing the ops
> */
> @@ -45,6 +46,7 @@ struct phy_ops {
> int (*power_on)(struct phy *phy);
> int (*power_off)(struct phy *phy);
> int (*set_mode)(struct phy *phy, enum phy_mode mode);
> + int (*set_vbus)(struct phy *phy, int on);
please avoid adding usb specific ops in generic phy ops.
Thanks
Kishon
next prev parent reply other threads:[~2017-01-22 8:46 UTC|newest]
Thread overview: 13+ messages / expand[flat|nested] mbox.gz Atom feed top
2017-01-20 18:50 [PATCH v7 0/5] Support qcom's HSIC USB and rewrite USB2 HS support Stephen Boyd
2017-01-20 18:50 ` [PATCH v7 1/5] phy: Add support for Qualcomm's USB HSIC phy Stephen Boyd
2017-01-20 18:50 ` [PATCH v7 2/5] usb: chipidea: msm: Configure phy for appropriate mode Stephen Boyd
2017-01-22 2:10 ` Peter Chen
2017-01-23 19:54 ` Stephen Boyd
2017-01-20 18:50 ` [PATCH v7 3/5] phy: Add set_vbus callback Stephen Boyd
2017-01-22 1:34 ` Peter Chen
2017-01-22 8:46 ` Kishon Vijay Abraham I [this message]
2017-01-23 19:58 ` Stephen Boyd
2017-01-24 9:23 ` Kishon Vijay Abraham I
2017-01-20 18:50 ` [PATCH v7 4/5] usb: chipidea: Signal vbus state to phy Stephen Boyd
2017-01-22 1:37 ` Peter Chen
2017-01-20 18:50 ` [PATCH v7 5/5] phy: Add support for Qualcomm's USB HS phy Stephen Boyd
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=5884715D.7050709@ti.com \
--to=kishon@ti.com \
--cc=linux-arm-kernel@lists.infradead.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).