On Tue, 12 Aug 2014, Peter Chen wrote: > > > I did this for possible pullup dp without connection (eg load gadget > > > driver before vbus connect), it breaks USB spec, see 7.1.7.3 Connect > > and Disconnect Signaling at USB 2.0 spec. > > > > 7.1.7.3 doesn't say anything about enabling the D+ pullup before Vbus is > > active. The closest it comes is the definition of Delta-t2 (TSIGATT), > > but that is a _maximum_ time, not a _minimum_ time. > > > > What makes you think turning on the pullup when Vbus is off is bad? > > > > www.usb.org/developers/docs/USB-IFTestProc1_3.pdf > > Back-voltage Testing > Section 7.2.1 of the USB specification requires that no device shall supply (source) > current on VBUS at its upstream facing port at any time. From VBUS on its upstream > facing port, a device may only draw (sink) current. They may not provide power to the > pull-up resistor on D+/D- unless VBUS is present (see Section 7.1.5). I see. It's mentioned in 7.2.1 and 7.1.5.1, not 7.1.7.3 So here's what the UDC driver should do: If the pullup routine is called while Vbus is off, the driver should leave the D+ pullup disconnected but remember the call. Then when Vbus gets turned on, the driver should activate the pullup. In other words, the UDC driver should keep track of the pullup's "logical" state. When Vbus is off, the pullup must also be off. When Vbus is on, the pullup's physical state should be the same as the logical state. Alan Stern -- 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