From mboxrd@z Thu Jan 1 00:00:00 1970 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: base64 Subject: [1/2] usb: dwc3: Add avoiding vbus glitch happen during xhci reset From: Rob Herring Message-Id: <20190122010310.GA5165@bogus> Date: Mon, 21 Jan 2019 19:03:10 -0600 To: Ran Wang Cc: Greg Kroah-Hartman , Mark Rutland , Felipe Balbi , "linux-usb@vger.kernel.org" , "devicetree@vger.kernel.org" , "linux-kernel@vger.kernel.org" List-ID: T24gV2VkLCBKYW4gMTYsIDIwMTkgYXQgMDY6NDg6MDZBTSArMDAwMCwgUmFuIFdhbmcgd3JvdGU6 Cj4gV2hlbiBEV0MzIGlzIHNldCB0byBob3N0IG1vZGUgYnkgcHJvZ3JhbW1pbmcgcmVnaXN0ZXIg RFdDM19HQ1RMLCBWVUJTCgpzL1ZVQlMvVkJVUy8KCj4gKG9yIGl0cyBjb250cm9sIHNpZ25hbCkg d2lsbCBvbiBpbW1lZGlhdGVseSBvbiByZWxhdGVkIFJvb3QgSHViIHBvcnRzLgoKL3dpbGwgb24v d2lsbCB0dXJuIG9uLwoKPiBUaGVuIHRoZSBWVUJTIHdpbGwgYmUgZGUtYXNzZXJ0ZWQgZm9yIGEg bGl0dGxlIHdoaWxlIGR1cmluZyB4aGNpCj4gcmVzZXQgKGNvbmR1Y3RlZCBieSB4aGNpIGRyaXZl cikgZm9yIGEgbGl0dGxlIHdoaWxlIGFuZCBiYWNrIHRvIG5vcm1hbC4KPiAKPiBUaGlzIFZCVVMg Z2xpdGNoIG1pZ2h0IGNhdXNlIHNvbWUgVVNCIGRldmljZXMgZW11cmF0aW9uIGZhaWwgaWYga2Vy bmVsIGJvb3QKPiB3aXRoIHRoZW0gY29ubmVjdGVkLiBPbmUgU1cgd29ya2Fyb3VuZCB3aGljaCBj YW4gZml4IHRoaXMgaXMgdG8gcHJvZ3JhbQo+IGFsbCBQT1JUU0NbUFBdIHRvIDAgdG8gdHVybiBv ZmYgVkJVUyBpbW1lZGlhdGVseSBhZnRlciBzZXR0aW5nIGhvc3QgbW9kZQo+IGluIERXQzMgZHJp dmVyKHBlciBzaWduYWwgbWVhc3VyZW1lbnQgcmVzdWx0LCBpdCB3aWxsIGJlIHRvbyBsYXRlIHRv IGRvCj4gaXQgaW4geGhjaS1wbGF0LmMgb3IgeGhjaS5jKS4KPiAKPiBTaWduZWQtb2ZmLWJ5OiBS YW4gV2FuZyA8cmFuLndhbmdfMUBueHAuY29tPgo+IC0tLQo+ICBEb2N1bWVudGF0aW9uL2Rldmlj ZXRyZWUvYmluZGluZ3MvdXNiL2R3YzMudHh0IHwgICAgMyArKysKPiAgMSBmaWxlcyBjaGFuZ2Vk LCAzIGluc2VydGlvbnMoKyksIDAgZGVsZXRpb25zKC0pCj4gCj4gZGlmZiAtLWdpdCBhL0RvY3Vt ZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy91c2IvZHdjMy50eHQgYi9Eb2N1bWVudGF0aW9u L2RldmljZXRyZWUvYmluZGluZ3MvdXNiL2R3YzMudHh0Cj4gaW5kZXggOGU1MjY1ZS4uZGFkYjUz MCAxMDA2NDQKPiAtLS0gYS9Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvdXNiL2R3 YzMudHh0Cj4gKysrIGIvRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL3VzYi9kd2Mz LnR4dAo+IEBAIC0xMDYsNiArMTA2LDkgQEAgT3B0aW9uYWwgcHJvcGVydGllczoKPiAgCQkJV2hl biBqdXN0IG9uZSB2YWx1ZSwgd2hpY2ggbWVhbnMgSU5DUlggYnVyc3QgbW9kZSBlbmFibGVkLiBX aGVuCj4gIAkJCW1vcmUgdGhhbiBvbmUgdmFsdWUsIHdoaWNoIG1lYW5zIHVuZGVmaW5lZCBsZW5n dGggSU5DUiBidXJzdCB0eXBlCj4gIAkJCWVuYWJsZWQuIFRoZSB2YWx1ZXMgY2FuIGJlIDEsIDQs IDgsIDE2LCAzMiwgNjQsIDEyOCBhbmQgMjU2Lgo+ICsgLSBzbnBzLGF2b2lkLXZidXMtZ2xpdGNo LXdoZW4tc2V0LWhvc3Q6IFBvd2VyIG9mZiBhbGwgUm9vdCBIdWIgcG9ydHMgaW1tZWRpYXRlbHkK PiArCQkJYWZ0ZXIgc2V0dGluZyBob3N0IG1vZGUgdG8gYXZvaWQgdmJ1cyAobmVnYXRpdmUpIGds aXRjaCBoYXBwZW4gaW4gbGF0ZXIKPiArCQkJeGhjaSByZXNldC4gQW5kIHRoZSB2YnVzIHdpbGwg YmFjayB0byA1ViBhdXRvbWF0aWNhbGx5IHdoZW4gcmVzZXQgZG9uZS4KCkNhbid0IHlvdSBpbXBs eSB0aGlzIGZyb20gdGhlIGNvbXBhdGlibGUgc3RyaW5nLiBZb3Ugc2hvdWxkIGhhdmUgYW4gU29D IApzcGVjaWZpYyBjb21wYXRpYmxlLgoKRG9lcyB0aGlzIGV2ZW4gbmVlZCB0byBiZSBjb25kaXRp b25hbD8gV2hhdCB3b3VsZCBiZSB0aGUgaGFybSBpbiBkb2luZyAKdGhpcyB1bmNvbmRpdGlvbmFs bHkgZm9yIGFsbCBEV0MzIGhvc3RzPyAKClJvYgo= From mboxrd@z Thu Jan 1 00:00:00 1970 From: Rob Herring Subject: Re: [PATCH 1/2] usb: dwc3: Add avoiding vbus glitch happen during xhci reset Date: Mon, 21 Jan 2019 19:03:10 -0600 Message-ID: <20190122010310.GA5165@bogus> References: <20190116064820.20007-1-ran.wang_1@nxp.com> <20190116064820.20007-2-ran.wang_1@nxp.com> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Return-path: Content-Disposition: inline In-Reply-To: <20190116064820.20007-2-ran.wang_1@nxp.com> Sender: linux-kernel-owner@vger.kernel.org To: Ran Wang Cc: Greg Kroah-Hartman , Mark Rutland , Felipe Balbi , "linux-usb@vger.kernel.org" , "devicetree@vger.kernel.org" , "linux-kernel@vger.kernel.org" List-Id: devicetree@vger.kernel.org On Wed, Jan 16, 2019 at 06:48:06AM +0000, Ran Wang wrote: > When DWC3 is set to host mode by programming register DWC3_GCTL, VUBS s/VUBS/VBUS/ > (or its control signal) will on immediately on related Root Hub ports. /will on/will turn on/ > Then the VUBS will be de-asserted for a little while during xhci > reset (conducted by xhci driver) for a little while and back to normal. > > This VBUS glitch might cause some USB devices emuration fail if kernel boot > with them connected. One SW workaround which can fix this is to program > all PORTSC[PP] to 0 to turn off VBUS immediately after setting host mode > in DWC3 driver(per signal measurement result, it will be too late to do > it in xhci-plat.c or xhci.c). > > Signed-off-by: Ran Wang > --- > Documentation/devicetree/bindings/usb/dwc3.txt | 3 +++ > 1 files changed, 3 insertions(+), 0 deletions(-) > > diff --git a/Documentation/devicetree/bindings/usb/dwc3.txt b/Documentation/devicetree/bindings/usb/dwc3.txt > index 8e5265e..dadb530 100644 > --- a/Documentation/devicetree/bindings/usb/dwc3.txt > +++ b/Documentation/devicetree/bindings/usb/dwc3.txt > @@ -106,6 +106,9 @@ Optional properties: > When just one value, which means INCRX burst mode enabled. When > more than one value, which means undefined length INCR burst type > enabled. The values can be 1, 4, 8, 16, 32, 64, 128 and 256. > + - snps,avoid-vbus-glitch-when-set-host: Power off all Root Hub ports immediately > + after setting host mode to avoid vbus (negative) glitch happen in later > + xhci reset. And the vbus will back to 5V automatically when reset done. Can't you imply this from the compatible string. You should have an SoC specific compatible. Does this even need to be conditional? What would be the harm in doing this unconditionally for all DWC3 hosts? Rob