RE: [PATCH v8 0/4] Introduce usb charger framework to deal with the usb gadget power negotation

From: Jun Li
Date: Tue Mar 29 2016 - 22:54:18 EST




> -----Original Message-----
> From: Baolin Wang [mailto:baolin.wang@xxxxxxxxxx]
> Sent: Tuesday, March 29, 2016 5:49 PM
> To: Jun Li <jun.li@xxxxxxx>
> Cc: Peter Chen <hzpeterchen@xxxxxxxxx>; Felipe Balbi <balbi@xxxxxxxxxx>;
> Greg KH <gregkh@xxxxxxxxxxxxxxxxxxx>; Sebastian Reichel <sre@xxxxxxxxxx>;
> Dmitry Eremin-Solenikov <dbaryshkov@xxxxxxxxx>; David Woodhouse
> <dwmw2@xxxxxxxxxxxxx>; Peter Chen <peter.chen@xxxxxxxxxxxxx>; Alan Stern
> <stern@xxxxxxxxxxxxxxxxxxx>; r.baldyga@xxxxxxxxxxx; Yoshihiro Shimoda
> <yoshihiro.shimoda.uh@xxxxxxxxxxx>; Lee Jones <lee.jones@xxxxxxxxxx>; Mark
> Brown <broonie@xxxxxxxxxx>; Charles Keepax
> <ckeepax@xxxxxxxxxxxxxxxxxxxxxxxxxxx>; patches@xxxxxxxxxxxxxxxxxxxxxxxxxxx;
> Linux PM list <linux-pm@xxxxxxxxxxxxxxx>; USB <linux-usb@xxxxxxxxxxxxxxx>;
> device-mainlining@xxxxxxxxxxxxxxxxxxxxxxxxx; LKML <linux-
> kernel@xxxxxxxxxxxxxxx>
> Subject: Re: [PATCH v8 0/4] Introduce usb charger framework to deal with
> the usb gadget power negotation
>
> On 29 March 2016 at 16:45, Jun Li <jun.li@xxxxxxx> wrote:
> >
> >
> >> -----Original Message-----
> >> From: linux-usb-owner@xxxxxxxxxxxxxxx [mailto:linux-usb-
> >> owner@xxxxxxxxxxxxxxx] On Behalf Of Baolin Wang
> >> Sent: Monday, March 28, 2016 2:52 PM
> >> To: Peter Chen <hzpeterchen@xxxxxxxxx>
> >> Cc: Felipe Balbi <balbi@xxxxxxxxxx>; Greg KH
> >> <gregkh@xxxxxxxxxxxxxxxxxxx>; Sebastian Reichel <sre@xxxxxxxxxx>;
> >> Dmitry Eremin-Solenikov <dbaryshkov@xxxxxxxxx>; David Woodhouse
> >> <dwmw2@xxxxxxxxxxxxx>; Peter Chen <peter.chen@xxxxxxxxxxxxx>; Alan
> >> Stern <stern@xxxxxxxxxxxxxxxxxxx>; r.baldyga@xxxxxxxxxxx; Yoshihiro
> >> Shimoda <yoshihiro.shimoda.uh@xxxxxxxxxxx>; Lee Jones
> >> <lee.jones@xxxxxxxxxx>; Mark Brown <broonie@xxxxxxxxxx>; Charles
> >> Keepax <ckeepax@xxxxxxxxxxxxxxxxxxxxxxxxxxx>;
> >> patches@xxxxxxxxxxxxxxxxxxxxxxxxxxx;
> >> Linux PM list <linux-pm@xxxxxxxxxxxxxxx>; USB
> >> <linux-usb@xxxxxxxxxxxxxxx>;
> >> device-mainlining@xxxxxxxxxxxxxxxxxxxxxxxxx; LKML <linux-
> >> kernel@xxxxxxxxxxxxxxx>
> >> Subject: Re: [PATCH v8 0/4] Introduce usb charger framework to deal
> >> with the usb gadget power negotation
> >>
> >> On 25 March 2016 at 15:09, Peter Chen <hzpeterchen@xxxxxxxxx> wrote:
> >> > On Thu, Mar 24, 2016 at 08:35:53PM +0800, Baolin Wang wrote:
> >> >> Currently the Linux kernel does not provide any standard
> >> >> integration of this feature that integrates the USB subsystem with
> >> >> the system power regulation provided by PMICs meaning that either
> >> >> vendors must add this in their kernels or USB gadget devices based
> >> >> on Linux (such as mobile phones) may not behave as they should.
> >> >> Thus provide a
> >> standard framework for doing this in kernel.
> >> >>
> >> >> Now introduce one user with wm831x_power to support and test the
> >> >> usb charger, which is pending testing. Moreover there may be other
> >> >> potential users will use it in future.
> >> >>
> >> >
> >> > I am afraid I still not find the user (udc driver) for this
> >> > framework, I would like to see how udc driver block the enumeration
> >> > until the charger detection has finished, or am I missing something?
> >>
> >> It is not for udc driver but for power users who want to negotiate
> >> with USB subsystem.
> >>
> >
> > Seems you don't want to guarantee charger type detection is done
> > before gadget connection(pullup DP), right?
> > I see you call usb_charger_detect_type() in each gadget usb state
> changes.
>
> I am not sure I get your point correctly, please correct me if I
> misunderstand you.
> We need to check the charger type at every event comes from the usb gadget
> state changes or the extcon device state changes, which means a new
> charger plugin or pullup.
>

According to usb charger spec, my understanding is you can't do real charger
detection procedure *after* gadget _connection_(pullup DP), also I don't
think it's necessary to check charger type at every event from usb gadget.
Something in gadget driver you can utilize is only vbus detection, and
report diff current by diff usb state if it's a SDP.

> >
> > Li Jun
> >> >
> >> > --
> >> > Best Regards,
> >> > Peter Chen
> >>
> >>
> >>
> >> --
> >> Baolin.wang
> >> Best Regards
> >> --
> >> To unsubscribe from this list: send the line "unsubscribe linux-usb"
> >> in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo
> >> info at http://vger.kernel.org/majordomo-info.html
>
>
>
> --
> Baolin.wang
> Best Regards