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: usb: musb: Support gadget mode when the port is set to dual role From: Bin Liu Message-Id: <20180421143426.GA10632@LTA0271908.dhcp.ti.com> Date: Sat, 21 Apr 2018 09:34:26 -0500 To: Paul Kocialkowski Cc: Paul Kocialkowski , Maxime Ripard , linux-kernel@vger.kernel.org, linux-usb@vger.kernel.org, Greg Kroah-Hartman , Chen-Yu Tsai List-ID: T24gU2F0LCBBcHIgMjEsIDIwMTggYXQgMTI6NTk6MjNQTSArMDIwMCwgUGF1bCBLb2NpYWxrb3dz a2kgd3JvdGU6Cj4gSGksCj4gCj4gTGUgdmVuZHJlZGkgMjAgYXZyaWwgMjAxOCDDoCAwOToyNSAt MDUwMCwgQmluIExpdSBhIMOpY3JpdCA6Cj4gPiBPbiBUaHUsIE1hciAyOSwgMjAxOCBhdCAwMTo1 NzoyNFBNICswMjAwLCBQYXVsIEtvY2lhbGtvd3NraSB3cm90ZToKPiA+ID4gSGksCj4gPiA+IAo+ ID4gPiBPbiBUaHUsIDIwMTgtMDMtMjkgYXQgMTE6MjMgKzAyMDAsIE1heGltZSBSaXBhcmQgd3Jv dGU6Cj4gPiA+ID4gT24gV2VkLCBNYXIgMjgsIDIwMTggYXQgMTE6NTI6MTNQTSArMDIwMCwgUGF1 bCBLb2NpYWxrb3dza2kgd3JvdGU6Cj4gPiA+ID4gPiBUaGlzIGFsbG93cyBkdWFsLXJvbGUgcG9y dHMgdG8gYmUgcmVwb3J0ZWQgYXMgaGF2aW5nIGdhZGdldCBtb2RlCj4gPiA+ID4gPiBieQo+ID4g PiA+ID4gdGhlCj4gPiA+ID4gPiBtdXNiX2hhc19nYWRnZXQgaGVscGVyLiBUaGlzIGlzIHJlcXVp cmVkIHRvIGVuYWJsZSBNVVNCIGF0IGFsbAo+ID4gPiA+ID4gd2l0aAo+ID4gPiA+ID4gTVVTQgo+ ID4gPiA+ID4gZ2x1ZSBsYXllcnMgdGhhdCBzZXQgdGhlIHBvcnQgbW9kZSB0byBNVVNCX1BPUlRf TU9ERV9EVUFMX1JPTEUKPiA+ID4gPiA+IGF0Cj4gPiA+ID4gPiBpbml0Lgo+ID4gPiA+ID4gCj4g PiA+ID4gPiBNb3N0IG5vdGFibHksIHRoaXMgYWxsb3dzIGNhbGxpbmcgbXVzYl9zdGFydCB3aGVu IG5lZWRlZCBpbiB0aGUKPiA+ID4gPiA+IHZpcnR1YWwKPiA+ID4gPiA+IE1VU0Igcm9vdCBIVUIs IHJlZ2FyZGxlc3Mgb2Ygd2hldGhlciB0aGUgY3VycmVudCBtb2RlIHNob3VsZCBiZQo+ID4gPiA+ ID4gZ2FkZ2V0Cj4gPiA+ID4gPiBvciBob3N0Lgo+ID4gPiA+ID4gCj4gPiA+ID4gPiBUaGlzIGZp eGVzIFVTQiBPVEcgb24gQWxsd2lubmVyIGRldmljZXMgdGhhdCBJIGNvdWxkIHRlc3QgaXQKPiA+ ID4gPiA+IHdpdGgsCj4gPiA+ID4gPiBtYWlubHkgQTIwIGRldmljZXMuCj4gPiA+ID4gPiAKPiA+ ID4gPiA+IFNpZ25lZC1vZmYtYnk6IFBhdWwgS29jaWFsa293c2tpIDxjb250YWN0QHBhdWxrLmZy Pgo+ID4gPiA+IAo+ID4gPiA+IFN1cmVseSB0aGVyZSdzIG1vcmUgdG8gaXQgdGhhbiB0aGF0LiBU aGUgZ2FkZ2V0IG1vZGUgb2YgQTIwIGJvYXJkcwo+ID4gPiA+IGhhdmUgYmVlbiB3b3JraW5nIGlu IHRoZSBwYXN0LCBpbmNsdWRpbmcgd2hlbiBjb21waWxpbmcgd2l0aCBtVVNCCj4gPiA+ID4gc2V0 dXAgYXMgZHVhbCByb2xlLgo+ID4gPiA+IAo+ID4gPiA+IElzIHRoaXMgYSByZWdyZXNzaW9uIHNp bmNlIGEgcGFydGljdWxhciBjb21taXQ/IE9yIGlzIHRoZXJlCj4gPiA+ID4gYW5vdGhlciwKPiA+ ID4gPiBkZWVwZXIgaXNzdWUgb3Zlcmxvb2tlZCBpbiB0aGUgY29tbWl0IGxvZz8KPiA+ID4gCj4g PiA+IFRoZSByb290IG9mIHRoZSBpc3N1ZSBoZXJlIGlzIHRoYXQgbXVzYl9zdGFydCBpcyBub3Qg Y2FsbGVkIGF0IGFueQo+ID4gPiBwb2ludAo+ID4gPiB3aXRob3V0IHRoaXMgcGF0Y2guIE15IHVu ZGVyc3RhbmRpbmcgb2YgdGhlIGZsb3cgaXMgdGhlIGZvbGxvd2luZzoKPiA+ID4gd2hlbgo+ID4g PiB0aGUgUEhZIGRldGVjdHMgdGhhdCB0aGVyZSB3YXMgYSBWQlVTL0lEIGNoYW5nZSwgaXQgd2ls bCBub3RpZnkgaXRzCj4gPiA+IGxpc3RlbmVycyAobWFpbmx5IHRoZSBtdXNiIHN1bnhpIGdsdWUg bGF5ZXIpLiBUaGlzIHdpbGwgdGhlbgo+ID4gPiBzY2hlZHVsZQo+ID4gPiB0aGUgZHJpdmVyJ3Mg d29yayAoc3VueGlfbXVzYl93b3JrKSwgd2hpY2ggZG9lcyBub3RoaW5nIHNpbmNlIHRoZQo+ID4g PiBTVU5YSV9NVVNCX0ZMX0VOQUJMRUQgYml0IHdhcyBuZXZlciBzZXQuIFRoaXMgYml0IGlzIG9u bHkgc2V0IGFmdGVyCj4gPiA+IGNhbGxpbmcgc3VueGlfbXVzYl9lbmFibGUsIHdoaWNoIGlzIGNh bGxlZCBmcm9tCj4gPiA+IG11c2JfcGxhdGZvcm1fZW5hYmxlLAo+ID4gPiB0aGF0IG9yaWdpbmF0 ZXMgZnJvbSBtdXNiX3N0YXJ0Lgo+ID4gPiAKPiA+ID4gQ3VycmVudGx5IEkgc2VlIHR3byBwbGFj ZXMgd2hlcmUgbXVzYl9zdGFydCBpcyBjYWxsZWQ6Cj4gPiA+ICogbXVzYl92aXJ0aHViCj4gPiA+ ICogbXVzYl9nYWRnZXQKPiA+ID4gCj4gPiA+IEluIHRoZSBsYXR0ZXIgY2FzZSwgaXQgaXMgaW4g dHVybiBjYWxsZWQgZnJvbSB1ZGNfc3RhcnQsIHdoaWNoCj4gPiA+IHNob3VsZAo+ID4gPiBwcm9i YWJseSAoY29ycmVjdCBtZSBpZiBJJ20gd3JvbmcpIGhhcHBlbiBsYXRlciBpbiB0aGUgY2FsbCBj aGFpbgo+ID4gPiB0aGFuCj4gPiA+IElEL1ZCVVMgY2hhbmdlIG5vdGlmaWNhdGlvbiB0aW1lLgo+ ID4gCj4gPiBJIGRvbid0IHRoaW5rIGl0IGlzIGNvcnJlY3QgdGhhdCB1ZGNfc3RhcnQoKSBpcyB0 cmlnZ2VyZWQgYnkgSUQvVkJVUwo+ID4gZXZlbnRzLCBidXQgSSBkb24ndCBoYXZlIGFuIEFsbHdp bm5lciBwbGF0Zm9ybSB0byB2ZXJpZnkgdGhlIGNhbGxmbG93Lgo+IAo+IFllcyB5b3UncmUgcmln aHQsIEkgZGlkbid0IG1ha2UgbXlzZWxmIHZlcnkgY2xlYXIgaGVyZS4gSSBkaWRuJ3QKPiBpbnZl c3RpZ2F0ZSB0aGUgdWRjX3N0YXJ0IGNhbGwgcGF0aCBtdWNoIHNpbmNlIGl0IHdhcyBhcHBhcmVu dGx5IG5vdCB0aGUKPiBjdWxwcml0Lgo+IAo+ID4gSGF2ZSB5b3UgdHJpZWQgdG8gbG9hZCB3aXRo IGEgZ2FkZ2V0IGRyaXZlcj8gV2hlbiBhIGdhZGdldCBmdW5jdGlvbiBpcwo+ID4gYm91bmQgdG8g VURDLCB1ZGNfc3RhcnQoKSBpcyB0cmlnZ2VyZWQsIHdoaWNoIGluIHR1cm4gY2FsbHMKPiA+IG11 c2Jfc3RhcnQoKS4KPiAKPiBJdCBkb2VzIHdvcmsgdW5kZXIgdGhhdCBzY2VuYXJpbywgYWx0aG91 Z2ggbXkgdXNlZCBjYXNlIGhlcmUgaXMgdXNpbmcKPiBtdXNiIHdpdGggRFVBTF9ST0xFIGJ1dCBu byBnYWRnZXQgZHJpdmVyIGxvYWRlZC4gVGhhdCBpdCwgSSB3YW50IHRoZQo+IG11c2Jfc3RhcnQg Y2FsbCB0byBvcmlnaW5hdGUgZnJvbSB0aGUgdmlydHVhbCBodWIsIG5vdCBmcm9tIHRoZSBnYWRn ZXQKPiBzaWRlLgo+IAo+ID4gPiBJbiB0aGUgZm9ybWVyIGNhc2UsIG11c2Jfc3RhcnQgaXMgY2Fs bGVkIGluIHRoZSByb290IGNvbnRyb2xsZXIgaHViCj4gPiA+IGNvbnRyb2wsIHdoZW4gc2V0dGlu ZyB0aGUgVVNCX1BPUlRfRkVBVF9QT1dFUiBmZWF0dXJlLiBUaGlzIGxvb2tzCj4gPiA+IHBlcmZl Y3RseSBsZWdpdCBhbmQgSU1PIHRoaXMgaXMgd2hlcmUgaXQgc2hvdWxkIGJlIGluaXRpYWxseSBj YWxsaW5nCj4gPiA+IG11c2Jfc3RhcnQgaW4gdGhlIGR1YWwgcm9sZSBjYXNlLiBUaGUga2VybmVs IGlzIGluZGVlZCBzZXR0aW5nIHRoZQo+ID4gCj4gPiBObyBhY3R1YWxseS4gQSBkdWFsLXJvbGUg cG9ydCBzaG91bGQgYmUgaW4gYl9pZGxlIHN0YXRlIGJ5IGRlZmF1bHQsIHNvCj4gPiBsb2dpY2Fs bHkgYWxsIGFjdGlvbnMgc2hvdWxkIGdvIHRvIHRoZSBnYWRnZXQgcGF0aCB1bnRpbCB0aGUgcG9y dAo+ID4gc3dpdGNoZXMgdG8gaG9zdCBtb2RlLgo+IAo+IEl0IG1ha2VzIHNlbnNlIHRoYXQgdGhl IHBvcnQgc2hvdWxkIGJlIGluIGJfaWRsZSBzdGF0ZSBieSBkZWZhdWx0LCBidXQKPiBoZXJlIGl0 IGZhaWxzIHRvIHN3aXRjaCB0byBob3N0IG1vZGUgd2hlbiB0aGUgSUQgcGluIGRldGVjdHMgdGhh dCBpdAo+IHNob3VsZC4gT3IgZG9lcyBiX2lkbGUgc3RhdGUgZW50YWlsIHRoYXQgYSBnYWRnZXQg bXVzdCBiZSBsb2FkZWQgKHBlcgo+IHRoZSBVU0Igc3BlYyksIGFuZCB0aHVzIG5vdGhpbmcgc2hv dWxkIChldmVyKSBoYXBwZW4gdW50aWwgdGhhdCBoYXBwZW5zPwo+IAo+IEkgZmluZCBpdCByZWFs bHkgb2RkIHRvIG5lZWQgYSBnYWRnZXQgZGV2aWNlIHRvIHRyaWdnZXIgaG9zdCBtb2RlLgo+IFRo aXMgcGF0Y2ggZG9lcyBmaXggdGhlIGlzc3VlLCBidXQgSSBhbSBwdXp6bGVkIGFzIHRvIHdoeSBp dCBpcyBuZWVkZWQKPiBpbiB0aGUgZmlyc3QgcGxhY2UuIFRoZSBjb21tZW50IGFib3ZlIGl0IG1l bnRpb25zIHRoYXQgIkluIE9URyBtb2RlIHdlCj4gaGF2ZSB0byB3YWl0IHVudGlsIHdlIGxvYWRl ZCBhIGdhZGdldC4gV2UgZG9uJ3QgcmVhbGx5IG5lZWQgYSBnYWRnZXQgaWYKPiB3ZSBvcGVyYXRl IGFzIGEgaG9zdCBidXQgd2Ugc2hvdWxkIG5vdCBzdGFydCBhIHNlc3Npb24gYXMgYSBkZXZpY2UK PiB3aXRob3V0IGEgZ2FkZ2V0IG9yIGVsc2Ugd2UgZXhwbG9kZS4iLCB3aGljaCBpcyBhcHBhcmVu dGx5IGNvbXBhdGlibGUKPiB3aXRoIG15IHVzZSBjYXNlOiBhIGdhZGdldCBpcyBub3QgcmVhbGx5 IG5lZWRlZCBhbmQgSSdtIG5vdCB0cnlpbmcgdG8KPiBzdGFydCBhIHNlc3Npb24gYXMgYSBkZXZp Y2Ugd2l0aG91dCBhIGdhZGdldCBsb2FkZWQuCj4gCj4gV2hhdCBkbyB5b3UgdGhpbms/CgpPa2F5 LCB0aGlzIGNhbWUgZG93biB0byBhbiBhcmd1bWVudCB0aGF0IHdoZXRoZXIgd2Ugc2hvdWxkIHJl cXVpcmUKbG9hZGluZyBhIGdhZGdldCBkcml2ZXIgb24gYSBkdWFsLXJvbGUgcG9ydCB0byB3b3Jr IGluIGhvc3QgbW9kZSwKd2hpY2ggaXMgY3VycmVudGx5IHJlcXVpcmVkIG9uIG11c2Igc2luY2Ug YSBsb25nIGxvbmcgdGltZSBhZ28uCgpJIHVuZGVyc3RhbmQgdGhlIHJlcXVpcmVtZW50IGlzIGtp bmRhIHVubmVjZXNzYXJ5LCBidXQgc2luY2UgaXQgYWxyZWFkeQpleGlzdHMgb24gbXVzYiBzdGFj ayBmb3IgYSBsb25nIHRpbWUsIEkgZG9uJ3QgcGxhbiB0byBjaGFuZ2UgaXQuIEJlY2F1c2UgSQpj YW5ub3QgdGhpbmsgb2YgYSB1c2UgY2FzZSBpbiByZWFsIHByb2R1Y3RzIHRoYXQgZG9lc24ndCBh dXRvbWF0aWNhbGx5CmxvYWQgYSBnYWRnZXQgZnVuY3Rpb24gb24gdGhlIGR1YWwtcm9sZSBwb3J0 LgoKSWYgeW91IGNhbiBleHBsYWluIGEgdXNlIGNhc2UgaW4gcmVhbCB3b3JsZCAobm90IGEgZW5n aW5lZXJpbmcgbGFiKSB0aGF0CnRoZSBnYWRnZXQgZHJpdmVyIHdpbGwgbm90IGJlIGxvYWRlZCBh dCBsaW51eCBib290aW5nIHVwLCBidXQgbGF0ZXIKYmFzZWQgb24gdXNlcidzIGlucHV0LCBJIHdp bGwgcmVjb25zaWRlciBteSBkZWNpc2lvbi4gVG8gcmVtb3ZlIHRoaXMKcmVxdWlyZW1lbnQgZnJv bSBtdXNiIHN0YWNrLCB0aGUgd29yayBpcyBtb3JlIHRoYW4gdGhpcyBwYXRjaC4KClJlZ2FyZHMs Ci1CaW4uCi0tLQpUbyB1bnN1YnNjcmliZSBmcm9tIHRoaXMgbGlzdDogc2VuZCB0aGUgbGluZSAi dW5zdWJzY3JpYmUgbGludXgtdXNiIiBpbgp0aGUgYm9keSBvZiBhIG1lc3NhZ2UgdG8gbWFqb3Jk b21vQHZnZXIua2VybmVsLm9yZwpNb3JlIG1ham9yZG9tbyBpbmZvIGF0ICBodHRwOi8vdmdlci5r ZXJuZWwub3JnL21ham9yZG9tby1pbmZvLmh0bWwK