From: Kishon Vijay Abraham I <kishon@ti.com>
To: Stephen Boyd <stephen.boyd@linaro.org>, Peter Chen <peter.chen@nxp.com>
Cc: linux-arm-kernel@lists.infradead.org,
linux-kernel@vger.kernel.org, linux-arm-msm@vger.kernel.org,
Andy Gross <andy.gross@linaro.org>,
Bjorn Andersson <bjorn.andersson@linaro.org>,
Neil Armstrong <narmstrong@baylibre.com>,
Arnd Bergmann <arnd@arndb.de>, Felipe Balbi <balbi@kernel.org>,
linux-usb@vger.kernel.org
Subject: Re: [PATCH v7 3/5] phy: Add set_vbus callback
Date: Tue, 24 Jan 2017 14:53:04 +0530 [thread overview]
Message-ID: <58871CF8.8080109@ti.com> (raw)
In-Reply-To: <148520153091.3902.8594314895888325107@sboyd-linaro>
Hi,
On Tuesday 24 January 2017 01:28 AM, Stephen Boyd wrote:
> Quoting Kishon Vijay Abraham I (2017-01-22 00:46:21)
>> 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.
>>
>
> Is there any alternative? Something has to happen here.
>
> The only other thing I can think of is putting back the vbus extcon in
> the phy driver so it can be notified when vbus is present or not. I can
I think extcon should be used here to get vbus notification.
Thanks
Kishon
WARNING: multiple messages have this Message-ID (diff)
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: Tue, 24 Jan 2017 14:53:04 +0530 [thread overview]
Message-ID: <58871CF8.8080109@ti.com> (raw)
In-Reply-To: <148520153091.3902.8594314895888325107@sboyd-linaro>
Hi,
On Tuesday 24 January 2017 01:28 AM, Stephen Boyd wrote:
> Quoting Kishon Vijay Abraham I (2017-01-22 00:46:21)
>> 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.
>>
>
> Is there any alternative? Something has to happen here.
>
> The only other thing I can think of is putting back the vbus extcon in
> the phy driver so it can be notified when vbus is present or not. I can
I think extcon should be used here to get vbus notification.
Thanks
Kishon
WARNING: multiple messages have this Message-ID (diff)
From: Kishon Vijay Abraham I <kishon@ti.com>
To: Stephen Boyd <stephen.boyd@linaro.org>, Peter Chen <peter.chen@nxp.com>
Cc: <linux-arm-kernel@lists.infradead.org>,
<linux-kernel@vger.kernel.org>, <linux-arm-msm@vger.kernel.org>,
Andy Gross <andy.gross@linaro.org>,
Bjorn Andersson <bjorn.andersson@linaro.org>,
Neil Armstrong <narmstrong@baylibre.com>,
Arnd Bergmann <arnd@arndb.de>, Felipe Balbi <balbi@kernel.org>,
<linux-usb@vger.kernel.org>
Subject: Re: [PATCH v7 3/5] phy: Add set_vbus callback
Date: Tue, 24 Jan 2017 14:53:04 +0530 [thread overview]
Message-ID: <58871CF8.8080109@ti.com> (raw)
In-Reply-To: <148520153091.3902.8594314895888325107@sboyd-linaro>
Hi,
On Tuesday 24 January 2017 01:28 AM, Stephen Boyd wrote:
> Quoting Kishon Vijay Abraham I (2017-01-22 00:46:21)
>> 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.
>>
>
> Is there any alternative? Something has to happen here.
>
> The only other thing I can think of is putting back the vbus extcon in
> the phy driver so it can be notified when vbus is present or not. I can
I think extcon should be used here to get vbus notification.
Thanks
Kishon
next prev parent reply other threads:[~2017-01-24 9:23 UTC|newest]
Thread overview: 32+ 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 ` Stephen Boyd
[not found] ` <20170120185057.16206-1-stephen.boyd-QSEj5FYQhm4dnm+yROfE0A@public.gmane.org>
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 ` Stephen Boyd
2017-01-20 18:50 ` Stephen Boyd
2017-01-20 18:50 ` [PATCH v7 3/5] phy: Add set_vbus callback Stephen Boyd
2017-01-20 18:50 ` Stephen Boyd
2017-01-20 18:50 ` Stephen Boyd
2017-01-22 1:34 ` Peter Chen
2017-01-22 1:34 ` Peter Chen
2017-01-22 8:46 ` Kishon Vijay Abraham I
2017-01-22 8:46 ` Kishon Vijay Abraham I
2017-01-22 8:46 ` Kishon Vijay Abraham I
2017-01-23 19:58 ` Stephen Boyd
2017-01-23 19:58 ` Stephen Boyd
2017-01-24 9:23 ` Kishon Vijay Abraham I [this message]
2017-01-24 9:23 ` Kishon Vijay Abraham I
2017-01-24 9:23 ` Kishon Vijay Abraham I
2017-01-20 18:50 ` [PATCH v7 2/5] usb: chipidea: msm: Configure phy for appropriate mode Stephen Boyd
2017-01-20 18:50 ` Stephen Boyd
[not found] ` <20170120185057.16206-3-stephen.boyd-QSEj5FYQhm4dnm+yROfE0A@public.gmane.org>
2017-01-22 2:10 ` Peter Chen
2017-01-22 2:10 ` Peter Chen
2017-01-22 2:10 ` Peter Chen
2017-01-23 19:54 ` Stephen Boyd
2017-01-23 19:54 ` Stephen Boyd
2017-01-20 18:50 ` [PATCH v7 4/5] usb: chipidea: Signal vbus state to phy Stephen Boyd
2017-01-20 18:50 ` Stephen Boyd
2017-01-20 18:50 ` Stephen Boyd
2017-01-22 1:37 ` Peter Chen
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
2017-01-20 18:50 ` 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=58871CF8.8080109@ti.com \
--to=kishon@ti.com \
--cc=andy.gross@linaro.org \
--cc=arnd@arndb.de \
--cc=balbi@kernel.org \
--cc=bjorn.andersson@linaro.org \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-arm-msm@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-usb@vger.kernel.org \
--cc=narmstrong@baylibre.com \
--cc=peter.chen@nxp.com \
--cc=stephen.boyd@linaro.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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.