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 -- 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