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

From: Baolin Wang
Date: Fri Apr 08 2016 - 07:00:32 EST


Hi Jun,

>> >> +/*
>> >> + * usb_charger_detect_type() - detect the charger type manually.
>> >> + * @uchger - usb charger device
>> >> + *
>> >> + * Note: You should ensure you need to detect the charger type
>> >> +manually on your
>> >> + * platform.
>> >> + * You should call it at the right gadget state to avoid affecting
>> >> +gadget
>> >> + * enumeration.
>> >> + */
>> >> +int usb_charger_detect_type(struct usb_charger *uchger) {
>> >> + enum usb_charger_type type;
>> >> +
>> >> + if (WARN(!uchger->charger_detect,
>> >> + "charger detection method should not be NULL"))
>> >> + return -EINVAL;
>> >> +
>> >> + type = uchger->charger_detect(uchger);
>> >> +
>> >> + mutex_lock(&uchger->lock);
>> >> + uchger->type = type;
>> >> + mutex_unlock(&uchger->lock);
>> >> +
>> >> + return 0;
>> >> +}
>> >> +EXPORT_SYMBOL_GPL(usb_charger_detect_type);
>> >
>> > I still recommend have a central place to call
>> > usb_charger_detect_type() to cover real charger detection instead of
>> > leaving this question open to diff users. This can be done after
>> > vbus-on is detected and before do gadget connect. I don't think this
>> will make your framework complicated.
>>
>> This API is used for detecting the charger type manually (software charger
>> detection), so if user's udc driver is needed to do this, then they can
>> issue it at their right place to make it more flexible. But let us see
>> other people's suggestion. Thanks.
>
> Ok, actually this API can be used for what ever charger detection
> type, user can implement any method(manual detection, directly read
> result from some HW...what ever) in uchger->charger_detect(), target is

But reading result from some HW dose not means *detect*, actually is
*get*. We can not mix them together with the different semantics.

> to have the charger type and set uchger->type, then you no need to add the comments/description to limit it usage. Also I do see there is possible
> central place to do this.
>

--
Baolin.wang
Best Regards