From: Kishon Vijay Abraham I <kishon-l0cyMroinI0@public.gmane.org>
To: Greg KH <gregkh-hQyY1W1yCW8ekmWlsbkhG0B+6BGkLq7r@public.gmane.org>
Cc: linux-fbdev-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
linux-doc-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
nsekhar-l0cyMroinI0@public.gmane.org,
s.nawrocki-Sze3O3UU22JBDgjK7y7TUQ@public.gmane.org,
kgene.kim-Sze3O3UU22JBDgjK7y7TUQ@public.gmane.org,
swarren-DDmLM1+adcrQT0dZR+AlfA@public.gmane.org,
jg1.han-Sze3O3UU22JBDgjK7y7TUQ@public.gmane.org,
grant.likely-QSEj5FYQhm4dnm+yROfE0A@public.gmane.org,
linux-media-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
george.cherian-l0cyMroinI0@public.gmane.org,
devicetree-discuss-uLR06cmDAlY/bJ5BZ2RsiQ@public.gmane.org,
linux-samsung-soc-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
linux-omap-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
linux-arm-kernel-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r@public.gmane.org,
balajitk-l0cyMroinI0@public.gmane.org,
linux-usb-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
balbi-l0cyMroinI0@public.gmane.org,
kyungmin.park-Sze3O3UU22JBDgjK7y7TUQ@public.gmane.org,
akpm-de/tnXTf+JLsfHDXvbKv3WD2FQJk+8+b@public.gmane.org
Subject: Re: [PATCH 02/15] usb: phy: omap-usb2: use the new generic PHY framework
Date: Thu, 18 Jul 2013 14:30:58 +0530 [thread overview]
Message-ID: <51E7AECA.1000204@ti.com> (raw)
In-Reply-To: <20130718072149.GB16720-U8xfFu+wG4EAvxtiuMwx3w@public.gmane.org>
On Thursday 18 July 2013 12:51 PM, Greg KH wrote:
> On Thu, Jul 18, 2013 at 12:16:11PM +0530, Kishon Vijay Abraham I wrote:
>> Used the generic PHY framework API to create the PHY. Now the power off and
>> power on are done in omap_usb_power_off and omap_usb_power_on respectively.
>>
>> However using the old USB PHY library cannot be completely removed
>> because OTG is intertwined with PHY and moving to the new framework
>> will break OTG. Once we have a separate OTG state machine, we
>> can get rid of the USB PHY library.
>>
>> Signed-off-by: Kishon Vijay Abraham I <kishon-l0cyMroinI0@public.gmane.org>
>> Reviewed-by: Sylwester Nawrocki <s.nawrocki-Sze3O3UU22JBDgjK7y7TUQ@public.gmane.org>
>> Acked-by: Felipe Balbi <balbi-l0cyMroinI0@public.gmane.org>
>> ---
>> drivers/usb/phy/Kconfig | 1 +
>> drivers/usb/phy/phy-omap-usb2.c | 45 +++++++++++++++++++++++++++++++++++----
>> 2 files changed, 42 insertions(+), 4 deletions(-)
>>
>> diff --git a/drivers/usb/phy/Kconfig b/drivers/usb/phy/Kconfig
>> index 3622fff..cc55993 100644
>> --- a/drivers/usb/phy/Kconfig
>> +++ b/drivers/usb/phy/Kconfig
>> @@ -75,6 +75,7 @@ config OMAP_CONTROL_USB
>> config OMAP_USB2
>> tristate "OMAP USB2 PHY Driver"
>> depends on ARCH_OMAP2PLUS
>> + depends on GENERIC_PHY
>> select OMAP_CONTROL_USB
>> help
>> Enable this to support the transceiver that is part of SOC. This
>> diff --git a/drivers/usb/phy/phy-omap-usb2.c b/drivers/usb/phy/phy-omap-usb2.c
>> index 844ab68..751b30f 100644
>> --- a/drivers/usb/phy/phy-omap-usb2.c
>> +++ b/drivers/usb/phy/phy-omap-usb2.c
>> @@ -28,6 +28,7 @@
>> #include <linux/pm_runtime.h>
>> #include <linux/delay.h>
>> #include <linux/usb/omap_control_usb.h>
>> +#include <linux/phy/phy.h>
>>
>> /**
>> * omap_usb2_set_comparator - links the comparator present in the sytem with
>> @@ -119,10 +120,36 @@ static int omap_usb2_suspend(struct usb_phy *x, int suspend)
>> return 0;
>> }
>>
>> +static int omap_usb_power_off(struct phy *x)
>> +{
>> + struct omap_usb *phy = phy_get_drvdata(x);
>> +
>> + omap_control_usb_phy_power(phy->control_dev, 0);
>> +
>> + return 0;
>> +}
>> +
>> +static int omap_usb_power_on(struct phy *x)
>> +{
>> + struct omap_usb *phy = phy_get_drvdata(x);
>> +
>> + omap_control_usb_phy_power(phy->control_dev, 1);
>> +
>> + return 0;
>> +}
>> +
>> +static struct phy_ops ops = {
>> + .power_on = omap_usb_power_on,
>> + .power_off = omap_usb_power_off,
>> + .owner = THIS_MODULE,
>> +};
>> +
>> static int omap_usb2_probe(struct platform_device *pdev)
>> {
>> struct omap_usb *phy;
>> + struct phy *generic_phy;
>> struct usb_otg *otg;
>> + struct phy_provider *phy_provider;
>>
>> phy = devm_kzalloc(&pdev->dev, sizeof(*phy), GFP_KERNEL);
>> if (!phy) {
>> @@ -144,6 +171,11 @@ static int omap_usb2_probe(struct platform_device *pdev)
>> phy->phy.otg = otg;
>> phy->phy.type = USB_PHY_TYPE_USB2;
>>
>> + phy_provider = devm_of_phy_provider_register(phy->dev,
>> + of_phy_simple_xlate);
>> + if (IS_ERR(phy_provider))
>> + return PTR_ERR(phy_provider);
>> +
>> phy->control_dev = omap_get_control_dev();
>> if (IS_ERR(phy->control_dev)) {
>> dev_dbg(&pdev->dev, "Failed to get control device\n");
>> @@ -159,6 +191,15 @@ static int omap_usb2_probe(struct platform_device *pdev)
>> otg->start_srp = omap_usb_start_srp;
>> otg->phy = &phy->phy;
>>
>> + platform_set_drvdata(pdev, phy);
>> + pm_runtime_enable(phy->dev);
>> +
>> + generic_phy = devm_phy_create(phy->dev, 0, &ops, "omap-usb2");
>> + if (IS_ERR(generic_phy))
>> + return PTR_ERR(generic_phy);
>
> So, if I have two of these controllers in my system, I can't create the
> second phy because the name for it will be identical to the first?
> That's why the phy core should handle the id, and not rely on the
> drivers to set it, as they have no idea how many they have in the
> system.
hmm.. for such cases I'll have something like PLATFORM_DEVID_AUTO.
Thanks
Kishon
next prev parent reply other threads:[~2013-07-18 9:00 UTC|newest]
Thread overview: 59+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-07-18 6:46 [PATCH 00/15] PHY framework Kishon Vijay Abraham I
2013-07-18 6:46 ` [PATCH 01/15] drivers: phy: add generic " Kishon Vijay Abraham I
2013-07-18 7:20 ` Greg KH
[not found] ` <20130718072004.GA16720-U8xfFu+wG4EAvxtiuMwx3w@public.gmane.org>
2013-07-18 8:59 ` Kishon Vijay Abraham I
2013-07-18 15:49 ` Greg KH
2013-07-19 5:37 ` Kishon Vijay Abraham I
2013-07-19 5:43 ` Greg KH
2013-07-19 5:55 ` Kishon Vijay Abraham I
[not found] ` <51E8D4E0.8060200-l0cyMroinI0@public.gmane.org>
2013-07-19 6:29 ` Greg KH
2013-07-19 6:36 ` Kishon Vijay Abraham I
2013-07-19 15:54 ` Stephen Warren
[not found] ` <51E96135.9090108-3lzwWm7+Weoh9ZMKESR00Q@public.gmane.org>
2013-07-20 3:15 ` Kishon Vijay Abraham I
2013-07-19 23:50 ` Greg KH
2013-07-20 3:19 ` Kishon Vijay Abraham I
[not found] ` <51EA01C4.2010006-l0cyMroinI0@public.gmane.org>
2013-07-20 22:00 ` Greg KH
[not found] ` <20130720220006.GA7977-U8xfFu+wG4EAvxtiuMwx3w@public.gmane.org>
2013-07-21 2:32 ` Alan Stern
2013-07-21 2:59 ` Greg KH
2013-07-21 10:22 ` Sascha Hauer
2013-07-21 15:48 ` Greg KH
2013-07-21 17:14 ` Sylwester Nawrocki
2013-07-21 19:22 ` Alan Stern
2013-07-22 7:25 ` Kishon Vijay Abraham I
[not found] ` <51ECDE5E.3050104-l0cyMroinI0@public.gmane.org>
2013-07-22 14:44 ` Alan Stern
2013-07-23 7:29 ` Tomasz Figa
2013-07-22 15:04 ` Greg KH
2013-07-23 5:34 ` Kishon Vijay Abraham I
2013-07-21 10:31 ` Tomasz Figa
2013-07-21 11:07 ` Kishon Vijay Abraham I
2013-07-21 11:12 ` Tomasz Figa
2013-07-21 15:46 ` Greg KH
2013-07-30 7:11 ` Felipe Balbi
2013-07-31 5:44 ` Kishon Vijay Abraham I
2013-07-31 6:15 ` Felipe Balbi
2013-08-13 10:44 ` Kishon Vijay Abraham I
2013-08-13 11:37 ` Tomasz Figa
2013-08-13 12:05 ` Kishon Vijay Abraham I
2013-08-13 22:19 ` Sylwester Nawrocki
2013-08-13 23:04 ` Tomasz Figa
2013-08-14 15:05 ` Kishon Vijay Abraham I
2013-08-19 5:28 ` Kishon Vijay Abraham I
2013-08-20 12:26 ` Felipe Balbi
2013-07-18 6:46 ` [PATCH 03/15] usb: phy: twl4030: use the new " Kishon Vijay Abraham I
2013-07-18 6:46 ` [PATCH 04/15] ARM: OMAP: USB: Add phy binding information Kishon Vijay Abraham I
[not found] ` <1374129984-765-5-git-send-email-kishon-l0cyMroinI0@public.gmane.org>
2013-07-18 7:02 ` Tony Lindgren
2013-07-18 6:46 ` [PATCH 05/15] ARM: dts: omap: update usb_otg_hs data Kishon Vijay Abraham I
2013-07-18 7:05 ` Tony Lindgren
2013-07-18 6:46 ` [PATCH 06/15] usb: musb: omap2430: use the new generic PHY framework Kishon Vijay Abraham I
2013-07-18 6:46 ` [PATCH 07/15] usb: phy: omap-usb2: remove *set_suspend* callback from omap-usb2 Kishon Vijay Abraham I
[not found] ` <1374129984-765-1-git-send-email-kishon-l0cyMroinI0@public.gmane.org>
2013-07-18 6:46 ` [PATCH 02/15] usb: phy: omap-usb2: use the new generic PHY framework Kishon Vijay Abraham I
2013-07-18 7:21 ` Greg KH
[not found] ` <20130718072149.GB16720-U8xfFu+wG4EAvxtiuMwx3w@public.gmane.org>
2013-07-18 9:00 ` Kishon Vijay Abraham I [this message]
2013-07-18 6:46 ` [PATCH 08/15] usb: phy: twl4030-usb: remove *set_suspend* and *phy_init* ops Kishon Vijay Abraham I
2013-07-18 6:46 ` [PATCH 12/15] ARM: Samsung: Remove the MIPI PHY setup code Kishon Vijay Abraham I
2013-07-18 6:46 ` [PATCH 09/15] phy: Add driver for Exynos MIPI CSIS/DSIM DPHYs Kishon Vijay Abraham I
2013-07-18 6:46 ` [PATCH 10/15] video: exynos_mipi_dsim: Use the generic PHY driver Kishon Vijay Abraham I
2013-07-18 6:46 ` [PATCH 11/15] exynos4-is: Use the generic MIPI CSIS " Kishon Vijay Abraham I
2013-07-18 6:46 ` [PATCH 13/15] phy: Add driver for Exynos DP PHY Kishon Vijay Abraham I
2013-07-18 6:46 ` [PATCH 14/15] video: exynos_dp: remove non-DT support for Exynos Display Port Kishon Vijay Abraham I
2013-07-18 6:46 ` [PATCH 15/15] video: exynos_dp: Use the generic PHY driver Kishon Vijay Abraham I
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=51E7AECA.1000204@ti.com \
--to=kishon-l0cymroini0@public.gmane.org \
--cc=akpm-de/tnXTf+JLsfHDXvbKv3WD2FQJk+8+b@public.gmane.org \
--cc=balajitk-l0cyMroinI0@public.gmane.org \
--cc=balbi-l0cyMroinI0@public.gmane.org \
--cc=devicetree-discuss-uLR06cmDAlY/bJ5BZ2RsiQ@public.gmane.org \
--cc=george.cherian-l0cyMroinI0@public.gmane.org \
--cc=grant.likely-QSEj5FYQhm4dnm+yROfE0A@public.gmane.org \
--cc=gregkh-hQyY1W1yCW8ekmWlsbkhG0B+6BGkLq7r@public.gmane.org \
--cc=jg1.han-Sze3O3UU22JBDgjK7y7TUQ@public.gmane.org \
--cc=kgene.kim-Sze3O3UU22JBDgjK7y7TUQ@public.gmane.org \
--cc=kyungmin.park-Sze3O3UU22JBDgjK7y7TUQ@public.gmane.org \
--cc=linux-arm-kernel-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r@public.gmane.org \
--cc=linux-doc-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
--cc=linux-fbdev-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
--cc=linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
--cc=linux-media-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
--cc=linux-omap-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
--cc=linux-samsung-soc-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
--cc=linux-usb-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
--cc=nsekhar-l0cyMroinI0@public.gmane.org \
--cc=s.nawrocki-Sze3O3UU22JBDgjK7y7TUQ@public.gmane.org \
--cc=swarren-DDmLM1+adcrQT0dZR+AlfA@public.gmane.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).