Re: [PATCH v9 1/4] gadget: Introduce the usb charger framework

From: Baolin Wang
Date: Thu Apr 07 2016 - 02:11:30 EST


On 7 April 2016 at 12:56, Felipe Balbi <balbi@xxxxxxxxxx> wrote:
>
> Hi,
>
> Peter Chen <hzpeterchen@xxxxxxxxx> writes:
>> On Wed, Apr 06, 2016 at 01:25:06PM +0300, Felipe Balbi wrote:
>>>
>>> Hi,
>>>
>>> Peter Chen <hzpeterchen@xxxxxxxxx> writes:
>>> > On Wed, Apr 06, 2016 at 11:05:26AM +0300, Felipe Balbi wrote:
>>> >> Peter Chen <hzpeterchen@xxxxxxxxx> writes:
>>> >> > On Wed, Apr 06, 2016 at 10:38:23AM +0300, Felipe Balbi wrote:
>>> >> >> Peter Chen <hzpeterchen@xxxxxxxxx> writes:
>>> >> >> > On Fri, Apr 01, 2016 at 03:21:49PM +0800, Baolin Wang wrote:
>>> >> >> > +
>>> >> >> >> +static struct attribute *usb_charger_attrs[] = {
>>> >> >> >> + &dev_attr_sdp_current.attr,
>>> >> >> >> + &dev_attr_dcp_current.attr,
>>> >> >> >> + &dev_attr_cdp_current.attr,
>>> >> >> >> + &dev_attr_aca_current.attr,
>>> >> >> >> + &dev_attr_charger_type.attr,
>>> >> >> >> + &dev_attr_charger_state.attr,
>>> >> >> >> + NULL
>>> >> >> >> +};
>>> >> >> >
>>> >> >> > The user may only care about current limit, type and state, why they
>>> >> >> > need to care what type's current limit, it is the usb charger
>>> >> >> > framework handles, the framework judge the current according to
>>> >> >> > charger type and USB state (connect/configured/suspended).
>>> >> >>
>>> >> >> it might be useful if we want to know that $this charger doesn't really
>>> >> >> give us as much current as it advertises.
>>> >> >>
>>> >> >
>>> >> > As my understanding, the current limit is dynamic value, it should
>>> >> > report the value the charger supports now, eg, it connects SDP, but
>>> >> > the host is suspended now, then the value should be 2mA.
>>> >>
>>> >> yes, and that's the limit. Now consider we connect to DCP or CDP and
>>> >> limit is 2000mA but we're charging at 1000mA ;-)
>>> >>
>>> >
>>> > Does the user need to know the $this charger limit? Don't they only
>>> > care about the current charging value? I have a USB cable which can
>>>
>>> Why not ? UI might want to change the color of the battery charging icon
>>> if we're charging @ 2000mA or @ 1000mA to give some visual feedback as
>>> to "how fast" battery is supposed to be charged.
>>>
>>> > show charging current value, it changes from time to time, when it
>>> > connects to host pc, it shows 430mA; when it connects to dedicated
>>> > charger, it shows 1000mA.
>>>
>>> good for you, now what does that have to do with $subject ?
>>>
>>
>> +static struct attribute *usb_charger_attrs[] = {
>> + &dev_attr_sdp_current.attr,
>> + &dev_attr_dcp_current.attr,
>> + &dev_attr_cdp_current.attr,
>> + &dev_attr_aca_current.attr,
>> + &dev_attr_charger_type.attr,
>> + &dev_attr_charger_state.attr,
>> + NULL
>> +};
>>
>> Ok, even the users are interesting in current limit, we still have no
>> necessary to know all kinds of chargers limit and current value, since
>> we already have charger type user interface, the framework can show
>> limit according to charger type.
>
> Oh, now I get your comment and I totally agree. We already *know* the
> detected charger type, there's no point in showing them all.
>
>> I think below user interfaces are enough, who do you think?
>>
>> +static struct attribute *usb_charger_attrs[] = {
>> + &dev_attr_current.attr,
>> + &dev_attr_current_limit.attr,
>> + &dev_attr_charger_type.attr,
>> + &dev_attr_charger_state.attr,
>> + NULL
>> +};
>
> agreed, const though.

OK. Thanks for Felipe, Peter and Jun's suggestion. I'll modify it in
next version.

>
> --
> balbi



--
Baolin.wang
Best Regards