* [RFC PATCH 0/6] usb: musb: charger detection
@ 2011-09-15 14:19 Kishon Vijay Abraham I
2011-09-15 14:19 ` [RFC PATCH 1/6] usb: musb: omap: Configure OTG_INTERFSEL for proper " Kishon Vijay Abraham I
` (2 more replies)
0 siblings, 3 replies; 12+ messages in thread
From: Kishon Vijay Abraham I @ 2011-09-15 14:19 UTC (permalink / raw)
To: linux-usb-u79uwXL29TY76Z2rM5mHXA,
linux-omap-u79uwXL29TY76Z2rM5mHXA, balbi-l0cyMroinI0,
heikki.krogerus-VuQAYsv1563Yd54FQh9/CA, gregkh-l3A5Bk7waGM
Cc: p-basak2-l0cyMroinI0, kishon-l0cyMroinI0, balajitk-l0cyMroinI0,
x0153364-l0cyMroinI0, m-sonasath-l0cyMroinI0, vishp-l0cyMroinI0,
hemahk-l0cyMroinI0
This provides a series of patches contributed by several people to
do correct charger detection and solve issues that came along with
the charger detection implementation.
USB_EVENT_NONE notification is sent only when a PC cable/CDP cable or
a device connected to MUSB is detached.
USB_EVENT_VBUS notification is sent only when a PC cable/CDP cable or
a device is connected to MUSB.
Developed on:
git://github.com/torvalds/linux.git
commit id: cc39c6a9bbdebfcf1a7dee64d83bf302bc38d941
This patch series is developed and tested on top of Heikki Krogerus
patch series (version4) [1]
Basic Testing:
Tested with gadget zero enabled for charger detection (PC/DCP). Data transfer testing
is done on both omap4 and omap3 with ./testusb. Tested for device enumeration when a
device is connected to MUSB.
[1] http://www.spinics.net/lists/linux-usb/msg51038.html
Balaji T K (2):
OMAP4: TWL6030: add USB charger detection
twl6030: set charger current to be used by battery charging module
Kishon Vijay Abraham I (2):
usb: musb: omap: Configure OTG_INTERFSEL for proper charger detection
usb: musb: omap4430_phy_power to enable/disable clocks and power
up/down phy
Sergii Postulga (1):
OMAP4: PHY internal: Add msleep_interruptible to charger detection
function
Viswanath Puttagunta (1):
MUSB Charger Type Detection: Fix DCP detect during boot.
arch/arm/mach-omap2/omap_phy_internal.c | 67 +++++++++++++++++++++++++++++++
arch/arm/plat-omap/include/plat/usb.h | 1 +
drivers/usb/musb/omap2430.c | 50 +++++++++++++++++++----
drivers/usb/otg/twl6030-usb.c | 64 +++++++++++++++++++++++------
4 files changed, 159 insertions(+), 23 deletions(-)
--
To unsubscribe from this list: send the line "unsubscribe linux-usb" in
the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
^ permalink raw reply [flat|nested] 12+ messages in thread* [RFC PATCH 1/6] usb: musb: omap: Configure OTG_INTERFSEL for proper charger detection 2011-09-15 14:19 [RFC PATCH 0/6] usb: musb: charger detection Kishon Vijay Abraham I @ 2011-09-15 14:19 ` Kishon Vijay Abraham I 2011-09-16 9:48 ` Sergei Shtylyov 2011-09-15 14:20 ` [RFC PATCH 5/6] OMAP4: PHY internal: Add msleep_interruptible to charger detection function Kishon Vijay Abraham I [not found] ` <1316096403-6013-1-git-send-email-kishon-l0cyMroinI0@public.gmane.org> 2 siblings, 1 reply; 12+ messages in thread From: Kishon Vijay Abraham I @ 2011-09-15 14:19 UTC (permalink / raw) To: linux-usb, linux-omap, balbi, heikki.krogerus, gregkh Cc: p-basak2, kishon, balajitk, x0153364, m-sonasath, vishp, hemahk Setting OTG_INTERFSEL to UTMI interferes with charger detection resulting in incorrect detection of charger type. Hence OTG_INTERFSEL is configured to ULPI initially and changed to UTMI only after receiving USB_EVENT_ID or USB_EVENT_VBUS notification. Signed-off-by: Kishon Vijay Abraham I <kishon@ti.com> Signed-off-by: Balaji T K <balajitk@ti.com> [sandesh.gowda@ti.com: The interface selection has to be done before the PHY is activated and is not allowed to change when the PHY clock is already running] --- drivers/usb/musb/omap2430.c | 50 +++++++++++++++++++++++++++++++++++------- 1 files changed, 41 insertions(+), 9 deletions(-) diff --git a/drivers/usb/musb/omap2430.c b/drivers/usb/musb/omap2430.c index fc9377c..724450b 100644 --- a/drivers/usb/musb/omap2430.c +++ b/drivers/usb/musb/omap2430.c @@ -228,6 +228,7 @@ static inline void omap2430_low_level_init(struct musb *musb) static int musb_otg_notifications(struct notifier_block *nb, unsigned long event, void *unused) { + u32 val; struct musb *musb = container_of(nb, struct musb, nb); struct device *dev = musb->controller; struct musb_hdrc_platform_data *pdata = dev->platform_data; @@ -240,11 +241,32 @@ static int musb_otg_notifications(struct notifier_block *nb, if (is_otg_enabled(musb)) { if (musb->gadget_driver) { pm_runtime_get_sync(musb->controller); + + val = musb_readl(musb->mregs, OTG_INTERFSEL); + if (data->interface_type == + MUSB_INTERFACE_UTMI) { + val &= ~ULPI_12PIN; + val |= UTMI_8BIT; + } else { + val |= ULPI_12PIN; + } + musb_writel(musb->mregs, OTG_INTERFSEL, val); + usb_phy_init(musb->xceiv); omap2430_musb_set_vbus(musb, 1); } } else { pm_runtime_get_sync(musb->controller); + + val = musb_readl(musb->mregs, OTG_INTERFSEL); + if (data->interface_type == MUSB_INTERFACE_UTMI) { + val &= ~ULPI_12PIN; + val |= UTMI_8BIT; + } else { + val |= ULPI_12PIN; + } + musb_writel(musb->mregs, OTG_INTERFSEL, val); + usb_phy_init(musb->xceiv); omap2430_musb_set_vbus(musb, 1); } @@ -255,6 +277,16 @@ static int musb_otg_notifications(struct notifier_block *nb, if (musb->gadget_driver) pm_runtime_get_sync(musb->controller); + + val = musb_readl(musb->mregs, OTG_INTERFSEL); + if (data->interface_type == MUSB_INTERFACE_UTMI) { + val &= ~ULPI_12PIN; + val |= UTMI_8BIT; + } else { + val |= ULPI_12PIN; + } + musb_writel(musb->mregs, OTG_INTERFSEL, val); + usb_phy_init(musb->xceiv); break; @@ -272,6 +304,11 @@ static int musb_otg_notifications(struct notifier_block *nb, otg_set_vbus(musb->xceiv->otg, 0); } usb_phy_shutdown(musb->xceiv); + + val = musb_readl(musb->mregs, OTG_INTERFSEL); + val |= ULPI_12PIN; + musb_writel(musb->mregs, OTG_INTERFSEL, val); + break; default: dev_dbg(musb->controller, "ID float\n"); @@ -304,16 +341,11 @@ static int omap2430_musb_init(struct musb *musb) goto err1; } + /* Set OTG_INTERFSEL to ULPI for correct charger detection. + * This should be later set to UTMI. + */ l = musb_readl(musb->mregs, OTG_INTERFSEL); - - if (data->interface_type == MUSB_INTERFACE_UTMI) { - /* OMAP4 uses Internal PHY GS70 which uses UTMI interface */ - l &= ~ULPI_12PIN; /* Disable ULPI */ - l |= UTMI_8BIT; /* Enable UTMI */ - } else { - l |= ULPI_12PIN; - } - + l |= ULPI_12PIN; musb_writel(musb->mregs, OTG_INTERFSEL, l); pr_debug("HS USB OTG: revision 0x%x, sysconfig 0x%02x, " -- 1.7.0.4 ^ permalink raw reply related [flat|nested] 12+ messages in thread
* Re: [RFC PATCH 1/6] usb: musb: omap: Configure OTG_INTERFSEL for proper charger detection 2011-09-15 14:19 ` [RFC PATCH 1/6] usb: musb: omap: Configure OTG_INTERFSEL for proper " Kishon Vijay Abraham I @ 2011-09-16 9:48 ` Sergei Shtylyov 2011-09-16 13:51 ` ABRAHAM, KISHON VIJAY 0 siblings, 1 reply; 12+ messages in thread From: Sergei Shtylyov @ 2011-09-16 9:48 UTC (permalink / raw) To: Kishon Vijay Abraham I Cc: linux-usb, linux-omap, balbi, heikki.krogerus, gregkh, p-basak2, balajitk, x0153364, m-sonasath, vishp, hemahk Hello. On 15-09-2011 18:19, Kishon Vijay Abraham I wrote: > Setting OTG_INTERFSEL to UTMI interferes with charger detection resulting > in incorrect detection of charger type. Hence OTG_INTERFSEL is configured to > ULPI initially and changed to UTMI only after receiving USB_EVENT_ID or > USB_EVENT_VBUS notification. > Signed-off-by: Kishon Vijay Abraham I<kishon@ti.com> > Signed-off-by: Balaji T K<balajitk@ti.com> AFAIK, full name is needed here. > [sandesh.gowda@ti.com: The interface selection has to be done before the PHY > is activated and is not allowed to change when the PHY clock is already > running] No signoff from him? > --- > drivers/usb/musb/omap2430.c | 50 +++++++++++++++++++++++++++++++++++------- > 1 files changed, 41 insertions(+), 9 deletions(-) > diff --git a/drivers/usb/musb/omap2430.c b/drivers/usb/musb/omap2430.c > index fc9377c..724450b 100644 > --- a/drivers/usb/musb/omap2430.c > +++ b/drivers/usb/musb/omap2430.c > @@ -228,6 +228,7 @@ static inline void omap2430_low_level_init(struct musb *musb) > static int musb_otg_notifications(struct notifier_block *nb, > unsigned long event, void *unused) > { > + u32 val; > struct musb *musb = container_of(nb, struct musb, nb); > struct device *dev = musb->controller; > struct musb_hdrc_platform_data *pdata = dev->platform_data; > @@ -240,11 +241,32 @@ static int musb_otg_notifications(struct notifier_block *nb, > if (is_otg_enabled(musb)) { > if (musb->gadget_driver) { > pm_runtime_get_sync(musb->controller); > + > + val = musb_readl(musb->mregs, OTG_INTERFSEL); > + if (data->interface_type == > + MUSB_INTERFACE_UTMI) { > + val&= ~ULPI_12PIN; > + val |= UTMI_8BIT; > + } else { > + val |= ULPI_12PIN; > + } > + musb_writel(musb->mregs, OTG_INTERFSEL, val); > + > usb_phy_init(musb->xceiv); > omap2430_musb_set_vbus(musb, 1); > } > } else { > pm_runtime_get_sync(musb->controller); > + > + val = musb_readl(musb->mregs, OTG_INTERFSEL); > + if (data->interface_type == MUSB_INTERFACE_UTMI) { > + val&= ~ULPI_12PIN; > + val |= UTMI_8BIT; > + } else { > + val |= ULPI_12PIN; > + } > + musb_writel(musb->mregs, OTG_INTERFSEL, val); > + > usb_phy_init(musb->xceiv); > omap2430_musb_set_vbus(musb, 1); > } > @@ -255,6 +277,16 @@ static int musb_otg_notifications(struct notifier_block *nb, > > if (musb->gadget_driver) > pm_runtime_get_sync(musb->controller); > + > + val = musb_readl(musb->mregs, OTG_INTERFSEL); > + if (data->interface_type == MUSB_INTERFACE_UTMI) { > + val&= ~ULPI_12PIN; > + val |= UTMI_8BIT; > + } else { > + val |= ULPI_12PIN; > + } > + musb_writel(musb->mregs, OTG_INTERFSEL, val); > + > usb_phy_init(musb->xceiv); > break; Why repeat the same sequence 3 times. Couldn't you factor it out into a subroutine? > @@ -272,6 +304,11 @@ static int musb_otg_notifications(struct notifier_block *nb, > otg_set_vbus(musb->xceiv->otg, 0); > } > usb_phy_shutdown(musb->xceiv); > + > + val = musb_readl(musb->mregs, OTG_INTERFSEL); > + val |= ULPI_12PIN; > + musb_writel(musb->mregs, OTG_INTERFSEL, val); > + > break; > default: > dev_dbg(musb->controller, "ID float\n"); > @@ -304,16 +341,11 @@ static int omap2430_musb_init(struct musb *musb) > goto err1; > } > > + /* Set OTG_INTERFSEL to ULPI for correct charger detection. > + * This should be later set to UTMI. > + */ > l = musb_readl(musb->mregs, OTG_INTERFSEL); > - > - if (data->interface_type == MUSB_INTERFACE_UTMI) { > - /* OMAP4 uses Internal PHY GS70 which uses UTMI interface */ > - l&= ~ULPI_12PIN; /* Disable ULPI */ > - l |= UTMI_8BIT; /* Enable UTMI */ > - } else { > - l |= ULPI_12PIN; > - } > - > + l |= ULPI_12PIN; > musb_writel(musb->mregs, OTG_INTERFSEL, l); This also seems to be the same code repeated twice... WBR, Sergei ^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: [RFC PATCH 1/6] usb: musb: omap: Configure OTG_INTERFSEL for proper charger detection 2011-09-16 9:48 ` Sergei Shtylyov @ 2011-09-16 13:51 ` ABRAHAM, KISHON VIJAY [not found] ` <CAAe_U6KaFJGM61=Pkm2q-EBQeEtSAOBuC2jgFRd7DV4xKOjJdg-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org> 0 siblings, 1 reply; 12+ messages in thread From: ABRAHAM, KISHON VIJAY @ 2011-09-16 13:51 UTC (permalink / raw) To: Sergei Shtylyov Cc: linux-usb, linux-omap, balbi, heikki.krogerus, gregkh, p-basak2, balajitk, x0153364, m-sonasath, vishp, hemahk Sergei, Thanks for your comments. On Fri, Sep 16, 2011 at 3:18 PM, Sergei Shtylyov <sshtylyov@mvista.com> wrote: > Hello. > > On 15-09-2011 18:19, Kishon Vijay Abraham I wrote: > >> Setting OTG_INTERFSEL to UTMI interferes with charger detection resulting >> in incorrect detection of charger type. Hence OTG_INTERFSEL is configured >> to >> ULPI initially and changed to UTMI only after receiving USB_EVENT_ID or >> USB_EVENT_VBUS notification. > >> Signed-off-by: Kishon Vijay Abraham I<kishon@ti.com> >> Signed-off-by: Balaji T K<balajitk@ti.com> > > AFAIK, full name is needed here. is it not the prerogative of the person giving his signed-off by?? > >> [sandesh.gowda@ti.com: The interface selection has to be done before the >> PHY >> is activated and is not allowed to change when the PHY clock is already >> running] > > No signoff from him? ok. will add his signoff. > >> --- >> drivers/usb/musb/omap2430.c | 50 >> +++++++++++++++++++++++++++++++++++------- >> 1 files changed, 41 insertions(+), 9 deletions(-) > >> diff --git a/drivers/usb/musb/omap2430.c b/drivers/usb/musb/omap2430.c >> index fc9377c..724450b 100644 >> --- a/drivers/usb/musb/omap2430.c >> +++ b/drivers/usb/musb/omap2430.c >> @@ -228,6 +228,7 @@ static inline void omap2430_low_level_init(struct musb >> *musb) >> static int musb_otg_notifications(struct notifier_block *nb, >> unsigned long event, void *unused) >> { >> + u32 val; >> struct musb *musb = container_of(nb, struct musb, nb); >> struct device *dev = musb->controller; >> struct musb_hdrc_platform_data *pdata = dev->platform_data; >> @@ -240,11 +241,32 @@ static int musb_otg_notifications(struct >> notifier_block *nb, >> if (is_otg_enabled(musb)) { >> if (musb->gadget_driver) { >> pm_runtime_get_sync(musb->controller); >> + >> + val = musb_readl(musb->mregs, >> OTG_INTERFSEL); >> + if (data->interface_type == >> + >> MUSB_INTERFACE_UTMI) { >> + val&= ~ULPI_12PIN; >> + val |= UTMI_8BIT; >> + } else { >> + val |= ULPI_12PIN; >> + } >> + musb_writel(musb->mregs, OTG_INTERFSEL, >> val); >> + >> usb_phy_init(musb->xceiv); >> omap2430_musb_set_vbus(musb, 1); >> } >> } else { >> pm_runtime_get_sync(musb->controller); >> + >> + val = musb_readl(musb->mregs, OTG_INTERFSEL); >> + if (data->interface_type == MUSB_INTERFACE_UTMI) { >> + val&= ~ULPI_12PIN; >> + val |= UTMI_8BIT; >> + } else { >> + val |= ULPI_12PIN; >> + } >> + musb_writel(musb->mregs, OTG_INTERFSEL, val); >> + >> usb_phy_init(musb->xceiv); >> omap2430_musb_set_vbus(musb, 1); >> } >> @@ -255,6 +277,16 @@ static int musb_otg_notifications(struct >> notifier_block *nb, >> >> if (musb->gadget_driver) >> pm_runtime_get_sync(musb->controller); >> + >> + val = musb_readl(musb->mregs, OTG_INTERFSEL); >> + if (data->interface_type == MUSB_INTERFACE_UTMI) { >> + val&= ~ULPI_12PIN; >> + val |= UTMI_8BIT; >> + } else { >> + val |= ULPI_12PIN; >> + } >> + musb_writel(musb->mregs, OTG_INTERFSEL, val); >> + >> usb_phy_init(musb->xceiv); >> break; > > Why repeat the same sequence 3 times. Couldn't you factor it out into a > subroutine? I thought it will be unnecessary to to add a subroutine just for a single register modification. Since you have pointed that out, I'll add a subroutine for it. > >> @@ -272,6 +304,11 @@ static int musb_otg_notifications(struct >> notifier_block *nb, >> otg_set_vbus(musb->xceiv->otg, 0); >> } >> usb_phy_shutdown(musb->xceiv); >> + >> + val = musb_readl(musb->mregs, OTG_INTERFSEL); >> + val |= ULPI_12PIN; >> + musb_writel(musb->mregs, OTG_INTERFSEL, val); >> + >> break; >> default: >> dev_dbg(musb->controller, "ID float\n"); >> @@ -304,16 +341,11 @@ static int omap2430_musb_init(struct musb *musb) >> goto err1; >> } >> >> + /* Set OTG_INTERFSEL to ULPI for correct charger detection. >> + * This should be later set to UTMI. >> + */ >> l = musb_readl(musb->mregs, OTG_INTERFSEL); >> - >> - if (data->interface_type == MUSB_INTERFACE_UTMI) { >> - /* OMAP4 uses Internal PHY GS70 which uses UTMI interface >> */ >> - l&= ~ULPI_12PIN; /* Disable ULPI */ >> - l |= UTMI_8BIT; /* Enable UTMI */ >> - } else { >> - l |= ULPI_12PIN; >> - } >> - >> + l |= ULPI_12PIN; >> musb_writel(musb->mregs, OTG_INTERFSEL, l); > > This also seems to be the same code repeated twice... Ok. So i'll create a new sub-routine which takes interface type as argument and set OTG_INTERFSEL to ULPI_12PIN or UTMI_8BIT based on the interface type. Regards Kishon > > WBR, Sergei > -- To unsubscribe from this list: send the line "unsubscribe linux-omap" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html ^ permalink raw reply [flat|nested] 12+ messages in thread
[parent not found: <CAAe_U6KaFJGM61=Pkm2q-EBQeEtSAOBuC2jgFRd7DV4xKOjJdg-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>]
* Re: [RFC PATCH 1/6] usb: musb: omap: Configure OTG_INTERFSEL for proper charger detection [not found] ` <CAAe_U6KaFJGM61=Pkm2q-EBQeEtSAOBuC2jgFRd7DV4xKOjJdg-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org> @ 2011-09-16 14:13 ` Greg KH 2011-09-19 14:56 ` T Krishnamoorthy, Balaji 0 siblings, 1 reply; 12+ messages in thread From: Greg KH @ 2011-09-16 14:13 UTC (permalink / raw) To: ABRAHAM, KISHON VIJAY Cc: Sergei Shtylyov, linux-usb-u79uwXL29TY76Z2rM5mHXA, linux-omap-u79uwXL29TY76Z2rM5mHXA, balbi-l0cyMroinI0, heikki.krogerus-VuQAYsv1563Yd54FQh9/CA, p-basak2-l0cyMroinI0, balajitk-l0cyMroinI0, x0153364-l0cyMroinI0, m-sonasath-l0cyMroinI0, vishp-l0cyMroinI0, hemahk-l0cyMroinI0 On Fri, Sep 16, 2011 at 07:21:41PM +0530, ABRAHAM, KISHON VIJAY wrote: > Sergei, > > Thanks for your comments. > > On Fri, Sep 16, 2011 at 3:18 PM, Sergei Shtylyov <sshtylyov-Igf4POYTYCBhl2p70BpVqQ@public.gmane.orgm> wrote: > > Hello. > > > > On 15-09-2011 18:19, Kishon Vijay Abraham I wrote: > > > >> Setting OTG_INTERFSEL to UTMI interferes with charger detection resulting > >> in incorrect detection of charger type. Hence OTG_INTERFSEL is configured > >> to > >> ULPI initially and changed to UTMI only after receiving USB_EVENT_ID or > >> USB_EVENT_VBUS notification. > > > >> Signed-off-by: Kishon Vijay Abraham I<kishon-l0cyMroinI0@public.gmane.org> > >> Signed-off-by: Balaji T K<balajitk-l0cyMroinI0@public.gmane.org> > > > > AFAIK, full name is needed here. > > is it not the prerogative of the person giving his signed-off by?? Not really. > >> [sandesh.gowda-l0cyMroinI0@public.gmane.org: The interface selection has to be done before the > >> PHY > >> is activated and is not allowed to change when the PHY clock is already > >> running] > > > > No signoff from him? > > ok. will add his signoff. You can NOT add someone else's sign-off to a patch, please go re-read Documentation/SubmittingPatches as to what this really means. greg k-h -- To unsubscribe from this list: send the line "unsubscribe linux-usb" in the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org More majordomo info at http://vger.kernel.org/majordomo-info.html ^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: [RFC PATCH 1/6] usb: musb: omap: Configure OTG_INTERFSEL for proper charger detection 2011-09-16 14:13 ` Greg KH @ 2011-09-19 14:56 ` T Krishnamoorthy, Balaji 2011-09-19 17:12 ` Greg KH 0 siblings, 1 reply; 12+ messages in thread From: T Krishnamoorthy, Balaji @ 2011-09-19 14:56 UTC (permalink / raw) To: Greg KH Cc: ABRAHAM, KISHON VIJAY, Sergei Shtylyov, linux-usb, linux-omap, balbi, heikki.krogerus, p-basak2, x0153364, m-sonasath, vishp, hemahk On Fri, Sep 16, 2011 at 7:43 PM, Greg KH <gregkh@suse.de> wrote: > On Fri, Sep 16, 2011 at 07:21:41PM +0530, ABRAHAM, KISHON VIJAY wrote: >> Sergei, >> >> Thanks for your comments. >> >> On Fri, Sep 16, 2011 at 3:18 PM, Sergei Shtylyov <sshtylyov@mvista.com> wrote: >> > Hello. >> > >> > On 15-09-2011 18:19, Kishon Vijay Abraham I wrote: >> > >> >> Setting OTG_INTERFSEL to UTMI interferes with charger detection resulting >> >> in incorrect detection of charger type. Hence OTG_INTERFSEL is configured >> >> to >> >> ULPI initially and changed to UTMI only after receiving USB_EVENT_ID or >> >> USB_EVENT_VBUS notification. >> > >> >> Signed-off-by: Kishon Vijay Abraham I<kishon@ti.com> >> >> Signed-off-by: Balaji T K<balajitk@ti.com> >> > >> > AFAIK, full name is needed here. >> >> is it not the prerogative of the person giving his signed-off by?? > > Not really. > Certainly did not want to compete for long names :-) But Is Real Name + unique email id not sufficient. patches with this Signed-off . -- Thanks and Regards, Balaji T K -- To unsubscribe from this list: send the line "unsubscribe linux-omap" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html ^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: [RFC PATCH 1/6] usb: musb: omap: Configure OTG_INTERFSEL for proper charger detection 2011-09-19 14:56 ` T Krishnamoorthy, Balaji @ 2011-09-19 17:12 ` Greg KH 0 siblings, 0 replies; 12+ messages in thread From: Greg KH @ 2011-09-19 17:12 UTC (permalink / raw) To: T Krishnamoorthy, Balaji Cc: ABRAHAM, KISHON VIJAY, Sergei Shtylyov, linux-usb, linux-omap, balbi, heikki.krogerus, p-basak2, x0153364, m-sonasath, vishp, hemahk On Mon, Sep 19, 2011 at 08:26:08PM +0530, T Krishnamoorthy, Balaji wrote: > On Fri, Sep 16, 2011 at 7:43 PM, Greg KH <gregkh@suse.de> wrote: > > On Fri, Sep 16, 2011 at 07:21:41PM +0530, ABRAHAM, KISHON VIJAY wrote: > >> Sergei, > >> > >> Thanks for your comments. > >> > >> On Fri, Sep 16, 2011 at 3:18 PM, Sergei Shtylyov <sshtylyov@mvista.com> wrote: > >> > Hello. > >> > > >> > On 15-09-2011 18:19, Kishon Vijay Abraham I wrote: > >> > > >> >> Setting OTG_INTERFSEL to UTMI interferes with charger detection resulting > >> >> in incorrect detection of charger type. Hence OTG_INTERFSEL is configured > >> >> to > >> >> ULPI initially and changed to UTMI only after receiving USB_EVENT_ID or > >> >> USB_EVENT_VBUS notification. > >> > > >> >> Signed-off-by: Kishon Vijay Abraham I<kishon@ti.com> > >> >> Signed-off-by: Balaji T K<balajitk@ti.com> > >> > > >> > AFAIK, full name is needed here. > >> > >> is it not the prerogative of the person giving his signed-off by?? > > > > Not really. > > > > Certainly did not want to compete for long names :-) > But Is Real Name + unique email id not sufficient. > patches with this Signed-off . Real Name + unique email is sufficient. If "Balaji T K" is the real name here, then my sincere apologies at getting this incorrect. If it isn't, a few more letters might be sufficient, or even, native utf-8 characters for the name in the native language is also ok. I know I get enough problems with my "odd" last name to be aware that there are lots of misconceptions about what is a real and not-real way to spell/handle a name, so again, if I am mistaken here, please let me know. thanks, greg k-h -- To unsubscribe from this list: send the line "unsubscribe linux-omap" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html ^ permalink raw reply [flat|nested] 12+ messages in thread
* [RFC PATCH 5/6] OMAP4: PHY internal: Add msleep_interruptible to charger detection function 2011-09-15 14:19 [RFC PATCH 0/6] usb: musb: charger detection Kishon Vijay Abraham I 2011-09-15 14:19 ` [RFC PATCH 1/6] usb: musb: omap: Configure OTG_INTERFSEL for proper " Kishon Vijay Abraham I @ 2011-09-15 14:20 ` Kishon Vijay Abraham I [not found] ` <1316096403-6013-1-git-send-email-kishon-l0cyMroinI0@public.gmane.org> 2 siblings, 0 replies; 12+ messages in thread From: Kishon Vijay Abraham I @ 2011-09-15 14:20 UTC (permalink / raw) To: linux-usb, linux-omap, balbi, heikki.krogerus, gregkh Cc: p-basak2, kishon, balajitk, x0153364, m-sonasath, vishp, hemahk From: Sergii Postulga <x0153364@ti.com> Charger detection is given 500ms to complete until which it loops continuously taking all the processor time. If we plug USB-micro cable to board during playing video or audio we have a glitches. This patch frees time for doing other things during waiting the charger detecting flag. Signed-off-by: Sergii Postulga <x0153364@ti.com> Signed-off-by: Kishon Vijay Abraham I <kishon@ti.com> --- arch/arm/mach-omap2/omap_phy_internal.c | 1 + 1 files changed, 1 insertions(+), 0 deletions(-) diff --git a/arch/arm/mach-omap2/omap_phy_internal.c b/arch/arm/mach-omap2/omap_phy_internal.c index 55918ea..2334de8 100644 --- a/arch/arm/mach-omap2/omap_phy_internal.c +++ b/arch/arm/mach-omap2/omap_phy_internal.c @@ -135,6 +135,7 @@ int omap4_charger_detect(void) chargertype = ((usb2phycore >> 21) & 0x7); if (usb2phycore & USB2PHY_CHGDETECTED) break; + msleep_interruptible(10); } while (!time_after(jiffies, timeout)); switch (chargertype) { -- 1.7.0.4 ^ permalink raw reply related [flat|nested] 12+ messages in thread
[parent not found: <1316096403-6013-1-git-send-email-kishon-l0cyMroinI0@public.gmane.org>]
* [RFC PATCH 2/6] usb: musb: omap4430_phy_power to enable/disable clocks and power up/down phy [not found] ` <1316096403-6013-1-git-send-email-kishon-l0cyMroinI0@public.gmane.org> @ 2011-09-15 14:19 ` Kishon Vijay Abraham I 2011-09-15 14:20 ` [RFC PATCH 3/6] OMAP4: TWL6030: add USB charger detection Kishon Vijay Abraham I ` (2 subsequent siblings) 3 siblings, 0 replies; 12+ messages in thread From: Kishon Vijay Abraham I @ 2011-09-15 14:19 UTC (permalink / raw) To: linux-usb-u79uwXL29TY76Z2rM5mHXA, linux-omap-u79uwXL29TY76Z2rM5mHXA, balbi-l0cyMroinI0, heikki.krogerus-VuQAYsv1563Yd54FQh9/CA, gregkh-l3A5Bk7waGM Cc: p-basak2-l0cyMroinI0, kishon-l0cyMroinI0, balajitk-l0cyMroinI0, x0153364-l0cyMroinI0, m-sonasath-l0cyMroinI0, vishp-l0cyMroinI0, hemahk-l0cyMroinI0 omap4430_phy_power is modified to be self contained in that it enables clock and power up the phy in addition to modifying the USBOTGHS_CONTROL register during power on. Similarly while powering down, it disables clock and power down the phy. Signed-off-by: Kishon Vijay Abraham I <kishon-l0cyMroinI0@public.gmane.org> Signed-off-by: Balaji T K <balajitk-l0cyMroinI0@public.gmane.org> Signed-off-by: Partha Basak <p-basak2-l0cyMroinI0@public.gmane.org> --- arch/arm/mach-omap2/omap_phy_internal.c | 11 +++++++++++ 1 files changed, 11 insertions(+), 0 deletions(-) diff --git a/arch/arm/mach-omap2/omap_phy_internal.c b/arch/arm/mach-omap2/omap_phy_internal.c index 58775e3..a828833 100644 --- a/arch/arm/mach-omap2/omap_phy_internal.c +++ b/arch/arm/mach-omap2/omap_phy_internal.c @@ -110,6 +110,13 @@ int omap4430_phy_set_clk(struct device *dev, int on) int omap4430_phy_power(struct device *dev, int ID, int on) { if (on) { + /* enabled the clocks */ + omap4430_phy_set_clk(dev, 1); + /* power on the phy */ + if (__raw_readl(ctrl_base + CONTROL_DEV_CONF) & PHY_PD) { + __raw_writel(~PHY_PD, ctrl_base + CONTROL_DEV_CONF); + msleep_interruptible(200); + } if (ID) /* enable VBUS valid, IDDIG groung */ __raw_writel(AVALID | VBUSVALID, ctrl_base + @@ -125,6 +132,10 @@ int omap4430_phy_power(struct device *dev, int ID, int on) /* Enable session END and IDIG to high impedance. */ __raw_writel(SESSEND | IDDIG, ctrl_base + USBOTGHS_CONTROL); + /* Power down the phy */ + __raw_writel(PHY_PD, ctrl_base + CONTROL_DEV_CONF); + /* Disable the clocks */ + omap4430_phy_set_clk(dev, 0); } return 0; } -- 1.7.0.4 -- To unsubscribe from this list: send the line "unsubscribe linux-usb" in the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org More majordomo info at http://vger.kernel.org/majordomo-info.html ^ permalink raw reply related [flat|nested] 12+ messages in thread
* [RFC PATCH 3/6] OMAP4: TWL6030: add USB charger detection [not found] ` <1316096403-6013-1-git-send-email-kishon-l0cyMroinI0@public.gmane.org> 2011-09-15 14:19 ` [RFC PATCH 2/6] usb: musb: omap4430_phy_power to enable/disable clocks and power up/down phy Kishon Vijay Abraham I @ 2011-09-15 14:20 ` Kishon Vijay Abraham I 2011-09-15 14:20 ` [RFC PATCH 4/6] MUSB Charger Type Detection: Fix DCP detect during boot Kishon Vijay Abraham I 2011-09-15 14:20 ` [RFC PATCH 6/6] twl6030: set charger current to be used by battery charging module Kishon Vijay Abraham I 3 siblings, 0 replies; 12+ messages in thread From: Kishon Vijay Abraham I @ 2011-09-15 14:20 UTC (permalink / raw) To: linux-usb-u79uwXL29TY76Z2rM5mHXA, linux-omap-u79uwXL29TY76Z2rM5mHXA, balbi-l0cyMroinI0, heikki.krogerus-VuQAYsv1563Yd54FQh9/CA, gregkh-l3A5Bk7waGM Cc: p-basak2-l0cyMroinI0, kishon-l0cyMroinI0, balajitk-l0cyMroinI0, x0153364-l0cyMroinI0, m-sonasath-l0cyMroinI0, vishp-l0cyMroinI0, hemahk-l0cyMroinI0 From: Balaji T K <balajitk-l0cyMroinI0@public.gmane.org> Charger detection is done in threaded irq and is performed only when OMAP acts as B-device. Phy is powered on before charger detection and is powered down once charger detection is completed. The type of charger is sent through all the registered notifiers. Signed-off-by: Balaji T K <balajitk-l0cyMroinI0@public.gmane.org> Signed-off-by: Kishon Vijay Abraham I <kishon-l0cyMroinI0@public.gmane.org> Signed-off-by: Hema HK <hemahk-l0cyMroinI0@public.gmane.org> Signed-off-by: Partha Basak <p-basak2-l0cyMroinI0@public.gmane.org> --- arch/arm/mach-omap2/omap_phy_internal.c | 50 ++++++++++++++++++++++++++++++ arch/arm/plat-omap/include/plat/usb.h | 1 + drivers/usb/otg/twl6030-usb.c | 51 ++++++++++++++++++++++-------- 3 files changed, 88 insertions(+), 14 deletions(-) diff --git a/arch/arm/mach-omap2/omap_phy_internal.c b/arch/arm/mach-omap2/omap_phy_internal.c index a828833..e5a6701 100644 --- a/arch/arm/mach-omap2/omap_phy_internal.c +++ b/arch/arm/mach-omap2/omap_phy_internal.c @@ -27,6 +27,7 @@ #include <linux/io.h> #include <linux/err.h> #include <linux/usb.h> +#include <linux/power_supply.h> #include <plat/usb.h> #include "control.h" @@ -42,6 +43,13 @@ #define SESSEND BIT(3) #define IDDIG BIT(4) +#define CONTROL_USB2PHYCORE 0x620 +#define CHARGER_TYPE_PS2 0x2 +#define CHARGER_TYPE_DEDICATED 0x4 +#define CHARGER_TYPE_HOST 0x5 +#define CHARGER_TYPE_PC 0x6 +#define USB2PHY_CHGDETECTED BIT(13) + static struct clk *phyclk, *clk48m, *clk32k; static void __iomem *ctrl_base; static int usbotghs_control; @@ -107,6 +115,48 @@ int omap4430_phy_set_clk(struct device *dev, int on) return 0; } +int omap4_charger_detect(void) +{ + unsigned long timeout; + int charger = 0; + u32 usb2phycore = 0; + u32 chargertype = 0; + + omap4430_phy_power(NULL, 0, 1); + + timeout = jiffies + msecs_to_jiffies(500); + do { + usb2phycore = omap4_ctrl_pad_readl(CONTROL_USB2PHYCORE); + chargertype = ((usb2phycore >> 21) & 0x7); + if (usb2phycore & USB2PHY_CHGDETECTED) + break; + } while (!time_after(jiffies, timeout)); + + switch (chargertype) { + case CHARGER_TYPE_DEDICATED: + charger = POWER_SUPPLY_TYPE_USB_DCP; + pr_info("DCP detected\n"); + break; + case CHARGER_TYPE_HOST: + charger = POWER_SUPPLY_TYPE_USB_CDP; + pr_info("CDP detected\n"); + break; + case CHARGER_TYPE_PC: + charger = POWER_SUPPLY_TYPE_USB; + pr_info("PC detected\n"); + break; + case CHARGER_TYPE_PS2: + pr_info("PS/2 detected!\n"); + break; + default: + pr_err(KERN_ERR"Unknown charger detected! %d\n", chargertype); + } + + omap4430_phy_power(NULL, 0, 0); + + return charger; +} + int omap4430_phy_power(struct device *dev, int ID, int on) { if (on) { diff --git a/arch/arm/plat-omap/include/plat/usb.h b/arch/arm/plat-omap/include/plat/usb.h index 17d3c93..582851b 100644 --- a/arch/arm/plat-omap/include/plat/usb.h +++ b/arch/arm/plat-omap/include/plat/usb.h @@ -107,6 +107,7 @@ extern int omap4430_phy_power(struct device *dev, int ID, int on); extern int omap4430_phy_set_clk(struct device *dev, int on); extern int omap4430_phy_init(struct device *dev); extern int omap4430_phy_exit(struct device *dev); +extern int omap4_charger_detect(void); extern int omap4430_phy_suspend(struct device *dev, int suspend); #endif diff --git a/drivers/usb/otg/twl6030-usb.c b/drivers/usb/otg/twl6030-usb.c index 843c47d..6cb28ea 100644 --- a/drivers/usb/otg/twl6030-usb.c +++ b/drivers/usb/otg/twl6030-usb.c @@ -32,6 +32,8 @@ #include <linux/notifier.h> #include <linux/slab.h> #include <linux/delay.h> +#include <plat/usb.h> +#include <linux/power_supply.h> /* usb register definitions */ #define USB_VENDOR_ID_LSB 0x00 @@ -102,6 +104,7 @@ struct twl6030_usb { int irq2; u8 linkstat; u8 asleep; + u8 prev_vbus; bool irq_enabled; bool vbus_enable; unsigned long features; @@ -273,6 +276,7 @@ static irqreturn_t twl6030_usb_irq(int irq, void *_twl) { struct twl6030_usb *twl = _twl; struct usb_otg *otg = twl->xceiv.otg; + unsigned charger_type; int status; u8 vbus_state, hw_state; @@ -280,29 +284,48 @@ static irqreturn_t twl6030_usb_irq(int irq, void *_twl) vbus_state = twl6030_readb(twl, TWL_MODULE_MAIN_CHARGE, CONTROLLER_STAT1); - if (!(hw_state & STS_USB_ID)) { - if (vbus_state & VBUS_DET) { - regulator_enable(twl->usb3v3); - twl->asleep = 1; + vbus_state = vbus_state & VBUS_DET; + + /* Ignore charger events other than VBUS */ + if (vbus_state == twl->prev_vbus) + return IRQ_HANDLED; + + if ((vbus_state) && !(hw_state & STS_USB_ID)) { + regulator_enable(twl->usb3v3); + charger_type = omap4_charger_detect(); + if ((charger_type == POWER_SUPPLY_TYPE_USB_CDP) + || (charger_type == POWER_SUPPLY_TYPE_USB)) { status = USB_EVENT_VBUS; otg->default_a = false; + twl->asleep = 1; twl->xceiv.state = USB_PHY_STATE_B_IDLE; twl->linkstat = status; twl->xceiv.last_event = status; - atomic_notifier_call_chain(&twl->xceiv.notifier, - status, otg->gadget); - } else { - status = USB_EVENT_NONE; - twl->linkstat = status; + } else if (charger_type == POWER_SUPPLY_TYPE_USB_DCP) { + regulator_disable(twl->usb3v3); + status = USB_EVENT_CHARGER; twl->xceiv.last_event = status; + } else { + regulator_disable(twl->usb3v3); + goto vbus_notify; + } + atomic_notifier_call_chain(&twl->xceiv.notifier, + status, &charger_type); + } + if (!vbus_state) { + status = USB_EVENT_NONE; + twl->linkstat = status; + twl->xceiv.last_event = status; + if (twl->asleep) { atomic_notifier_call_chain(&twl->xceiv.notifier, - status, otg->gadget); - if (twl->asleep) { - regulator_disable(twl->usb3v3); - twl->asleep = 0; - } + status, twl->xceiv.otg->gadget); + regulator_disable(twl->usb3v3); + twl->asleep = 0; } } + +vbus_notify: + twl->prev_vbus = vbus_state; sysfs_notify(&twl->dev->kobj, NULL, "vbus"); return IRQ_HANDLED; -- 1.7.0.4 -- To unsubscribe from this list: send the line "unsubscribe linux-usb" in the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org More majordomo info at http://vger.kernel.org/majordomo-info.html ^ permalink raw reply related [flat|nested] 12+ messages in thread
* [RFC PATCH 4/6] MUSB Charger Type Detection: Fix DCP detect during boot. [not found] ` <1316096403-6013-1-git-send-email-kishon-l0cyMroinI0@public.gmane.org> 2011-09-15 14:19 ` [RFC PATCH 2/6] usb: musb: omap4430_phy_power to enable/disable clocks and power up/down phy Kishon Vijay Abraham I 2011-09-15 14:20 ` [RFC PATCH 3/6] OMAP4: TWL6030: add USB charger detection Kishon Vijay Abraham I @ 2011-09-15 14:20 ` Kishon Vijay Abraham I 2011-09-15 14:20 ` [RFC PATCH 6/6] twl6030: set charger current to be used by battery charging module Kishon Vijay Abraham I 3 siblings, 0 replies; 12+ messages in thread From: Kishon Vijay Abraham I @ 2011-09-15 14:20 UTC (permalink / raw) To: linux-usb-u79uwXL29TY76Z2rM5mHXA, linux-omap-u79uwXL29TY76Z2rM5mHXA, balbi-l0cyMroinI0, heikki.krogerus-VuQAYsv1563Yd54FQh9/CA, gregkh-l3A5Bk7waGM Cc: p-basak2-l0cyMroinI0, kishon-l0cyMroinI0, balajitk-l0cyMroinI0, x0153364-l0cyMroinI0, m-sonasath-l0cyMroinI0, vishp-l0cyMroinI0, hemahk-l0cyMroinI0 From: Viswanath Puttagunta <vishp-l0cyMroinI0@public.gmane.org> The charger detection module is getting disabled during boot up if a DCP (Dedicated charging port) is connected before device is powered on (Bit 30 of CONTROL_USB2PHYCORE is set). This patch enables charger type detection each time the charger type wants to be detected. Signed-off-by: Viswanath Puttagunta <vishp-l0cyMroinI0@public.gmane.org> Signed-off-by: Moiz Sonasath <m-sonasath-l0cyMroinI0@public.gmane.org> Signed-off-by: Kishon Vijay Abraham I <kishon-l0cyMroinI0@public.gmane.org> --- arch/arm/mach-omap2/omap_phy_internal.c | 5 +++++ 1 files changed, 5 insertions(+), 0 deletions(-) diff --git a/arch/arm/mach-omap2/omap_phy_internal.c b/arch/arm/mach-omap2/omap_phy_internal.c index e5a6701..55918ea 100644 --- a/arch/arm/mach-omap2/omap_phy_internal.c +++ b/arch/arm/mach-omap2/omap_phy_internal.c @@ -49,6 +49,7 @@ #define CHARGER_TYPE_HOST 0x5 #define CHARGER_TYPE_PC 0x6 #define USB2PHY_CHGDETECTED BIT(13) +#define USB2PHY_DISCHGDET BIT(30) static struct clk *phyclk, *clk48m, *clk32k; static void __iomem *ctrl_base; @@ -124,6 +125,10 @@ int omap4_charger_detect(void) omap4430_phy_power(NULL, 0, 1); + usb2phycore = omap4_ctrl_pad_readl(CONTROL_USB2PHYCORE); + usb2phycore &= ~USB2PHY_DISCHGDET; + omap4_ctrl_pad_writel(usb2phycore, CONTROL_USB2PHYCORE); + timeout = jiffies + msecs_to_jiffies(500); do { usb2phycore = omap4_ctrl_pad_readl(CONTROL_USB2PHYCORE); -- 1.7.0.4 -- To unsubscribe from this list: send the line "unsubscribe linux-usb" in the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org More majordomo info at http://vger.kernel.org/majordomo-info.html ^ permalink raw reply related [flat|nested] 12+ messages in thread
* [RFC PATCH 6/6] twl6030: set charger current to be used by battery charging module [not found] ` <1316096403-6013-1-git-send-email-kishon-l0cyMroinI0@public.gmane.org> ` (2 preceding siblings ...) 2011-09-15 14:20 ` [RFC PATCH 4/6] MUSB Charger Type Detection: Fix DCP detect during boot Kishon Vijay Abraham I @ 2011-09-15 14:20 ` Kishon Vijay Abraham I 3 siblings, 0 replies; 12+ messages in thread From: Kishon Vijay Abraham I @ 2011-09-15 14:20 UTC (permalink / raw) To: linux-usb-u79uwXL29TY76Z2rM5mHXA, linux-omap-u79uwXL29TY76Z2rM5mHXA, balbi-l0cyMroinI0, heikki.krogerus-VuQAYsv1563Yd54FQh9/CA, gregkh-l3A5Bk7waGM Cc: p-basak2-l0cyMroinI0, kishon-l0cyMroinI0, balajitk-l0cyMroinI0, x0153364-l0cyMroinI0, m-sonasath-l0cyMroinI0, vishp-l0cyMroinI0, hemahk-l0cyMroinI0 From: Balaji T K <balajitk-l0cyMroinI0@public.gmane.org> Set the current supplied by dedicated charging port to 1800mV(according to battery charging specification). Also added a callback function for set_power to dynamically set the current to be supplied based on the state of the system. Signed-off-by: Balaji T K <balajitk-l0cyMroinI0@public.gmane.org> Signed-off-by: Kishon Vijay Abraham I <kishon-l0cyMroinI0@public.gmane.org> --- drivers/usb/otg/twl6030-usb.c | 13 +++++++++++++ 1 files changed, 13 insertions(+), 0 deletions(-) diff --git a/drivers/usb/otg/twl6030-usb.c b/drivers/usb/otg/twl6030-usb.c index 6cb28ea..1f22c10 100644 --- a/drivers/usb/otg/twl6030-usb.c +++ b/drivers/usb/otg/twl6030-usb.c @@ -102,6 +102,7 @@ struct twl6030_usb { int irq1; int irq2; + unsigned int usb_cinlimit_mA; u8 linkstat; u8 asleep; u8 prev_vbus; @@ -305,6 +306,7 @@ static irqreturn_t twl6030_usb_irq(int irq, void *_twl) regulator_disable(twl->usb3v3); status = USB_EVENT_CHARGER; twl->xceiv.last_event = status; + twl->usb_cinlimit_mA = 1800; } else { regulator_disable(twl->usb3v3); goto vbus_notify; @@ -435,6 +437,16 @@ static int twl6030_set_host(struct usb_otg *otg, struct usb_bus *host) return 0; } +static int twl6030_set_power(struct usb_phy *x, unsigned int mA) +{ + struct twl6030_usb *twl = xceiv_to_twl(x); + + twl->usb_cinlimit_mA = mA; + atomic_notifier_call_chain(&twl->xceiv.notifier, USB_EVENT_ENUMERATED, + &twl->usb_cinlimit_mA); + return 0; +} + static int __devinit twl6030_usb_probe(struct platform_device *pdev) { struct twl6030_usb *twl; @@ -463,6 +475,7 @@ static int __devinit twl6030_usb_probe(struct platform_device *pdev) twl->xceiv.label = "twl6030"; twl->xceiv.otg = otg; twl->xceiv.init = twl6030_phy_init; + twl->xceiv.set_power = twl6030_set_power; twl->xceiv.shutdown = twl6030_phy_shutdown; twl->xceiv.set_suspend = twl6030_phy_suspend; -- 1.7.0.4 -- To unsubscribe from this list: send the line "unsubscribe linux-usb" in the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org More majordomo info at http://vger.kernel.org/majordomo-info.html ^ permalink raw reply related [flat|nested] 12+ messages in thread
end of thread, other threads:[~2011-09-19 17:14 UTC | newest]
Thread overview: 12+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2011-09-15 14:19 [RFC PATCH 0/6] usb: musb: charger detection Kishon Vijay Abraham I
2011-09-15 14:19 ` [RFC PATCH 1/6] usb: musb: omap: Configure OTG_INTERFSEL for proper " Kishon Vijay Abraham I
2011-09-16 9:48 ` Sergei Shtylyov
2011-09-16 13:51 ` ABRAHAM, KISHON VIJAY
[not found] ` <CAAe_U6KaFJGM61=Pkm2q-EBQeEtSAOBuC2jgFRd7DV4xKOjJdg-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2011-09-16 14:13 ` Greg KH
2011-09-19 14:56 ` T Krishnamoorthy, Balaji
2011-09-19 17:12 ` Greg KH
2011-09-15 14:20 ` [RFC PATCH 5/6] OMAP4: PHY internal: Add msleep_interruptible to charger detection function Kishon Vijay Abraham I
[not found] ` <1316096403-6013-1-git-send-email-kishon-l0cyMroinI0@public.gmane.org>
2011-09-15 14:19 ` [RFC PATCH 2/6] usb: musb: omap4430_phy_power to enable/disable clocks and power up/down phy Kishon Vijay Abraham I
2011-09-15 14:20 ` [RFC PATCH 3/6] OMAP4: TWL6030: add USB charger detection Kishon Vijay Abraham I
2011-09-15 14:20 ` [RFC PATCH 4/6] MUSB Charger Type Detection: Fix DCP detect during boot Kishon Vijay Abraham I
2011-09-15 14:20 ` [RFC PATCH 6/6] twl6030: set charger current to be used by battery charging module Kishon Vijay Abraham I
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox