Re: [PATCH v1] usb: phy: generic: add vbus support

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Felipe Balbi <balbi@xxxxxx> writes:

> On Sun, Nov 09, 2014 at 03:58:14PM +0100, Robert Jarzmik wrote:
>> +		if (!enabled) {
>> +			ret = regulator_enable(vbus_draw);
>> +			if (ret < 0)
>> +				return;
>> +			nop->vbus_draw_enabled = 1;
>
> do you really need this flag here ? How about:
>
> 	if (regulator_is_enabled(vbus_draw))
> 		foo();
Good question, I copy-pasted that code from gpio-vbus...
Philipp, do you have an insight here ?

>> +	if (vbus) {
>> +		status = USB_EVENT_VBUS;
>> +		nop->phy.state = OTG_STATE_B_PERIPHERAL;
>> +		nop->phy.last_event = status;
>> +		usb_gadget_vbus_connect(otg->gadget);
>> +
>> +		/* drawing a "unit load" is *always* OK, except for OTG */
>> +		nop_set_vbus_draw(nop, 100);
>
> right, we need to take into considering the Battery Charging
> specification here, though. We might need to setup a timer for the
> amount of time we can draw 100mA before device enumerates. If the times
> expires we're only allowed to draw 8mA or 2mA, or something like that.
>
> The time gets cancelled as soon as we get enumerated.
>
> Another possibility would be to move this policy into userland, then
> kernel only provides the interfaces.
Ah ok.
Do you know exactly what the spec is telling in here ?

Is it something such as :
 - upon vbus insertion, a UDC can draw 100mA during ??? ms
   - if during ??? ms, the device is enumerated, it can continue drawing 100mA
   - if not, it should not draw more than 8mA after ??? ms

Is this right ? I can add a timer I think, if the spec if that simple. Now if
there are a lot of special cases then maybe it could be dropped to userland.

Cheers.

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




[Index of Archives]     [Linux Media]     [Linux Input]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [Old Linux USB Devel Archive]

  Powered by Linux