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 TYPEC: RT1711H Type-C Chip Driver From: Guenter Roeck Message-Id: <20180129195752.GA24352@roeck-us.net> Date: Mon, 29 Jan 2018 11:57:52 -0800 To: =?utf-8?B?c2h1ZmFuX2xlZSjmnY7mm7jluIYp?= Cc: Heikki Krogerus , 'Jun Li' , ShuFanLee , =?utf-8?B?Y3lfaHVhbmco6buD5ZWf5Y6fKQ==?= , "linux-kernel@vger.kernel.org" , "linux-usb@vger.kernel.org" List-ID: T24gTW9uLCBKYW4gMjksIDIwMTggYXQgMDc6MTk6MDZBTSArMDAwMCwgc2h1ZmFuX2xlZSjmnY7m m7jluIYpIHdyb3RlOgo+IEhpIEd1ZW50ZXIsCj4gCj4gICBXZSB0cnkgdG8gdXNlIHRoZSBUQ1BD SSBkcml2ZXIgb24gUlQxNzExSCBhbmQgaGVyZSBhcmUgc29tZSBxdWVzdGlvbnMuCj4gCj4gICBR MS4gSXMgY3VycmVudCBUQ1BDSSBkcml2ZXIgd3JpdHRlbiBhY2NvcmRpbmcgdG8gVHlwZUMgUG9y dCBDb250cm9sbGVyIEludGVyZmFjZSBTcGVjaWZpY2F0aW9uIFJldmlzaW9uIDEuMCAmIFZlcnNp b24gMS4yPwoKUmV2aXNpb24gMS4wLiBOb3RlIHRoYXQgSSBkaWQgbm90IGZpbmQgcmV2aXNpb24g MS4yLCBvbmx5ClJldmlzaW9uIDEuMCBhbmQgUmV2aXNpb24gMi4wIHZlcnNpb24gMS4wLgoKPiAg IFEyLiBCZWNhdXNlIDB4ODB+MHhGRiBhcmUgdmVuZG9yIGRlZmluZWQgcmVnaXN0ZXJzLiBTb21l IG9mIHRoZW0gYXJlIG5lZWRlZCB0byBiZSBpbml0aWFsaXplZCBpbiB0Y3BjaV9pbml0IGZvciBS VDE3MTFIIChvciBvdGhlciBjaGlwcyBhbHNvKS4KPiBJbiB0aGUgZnV0dXJlIFRDUENJIGRyaXZl ciwgd2lsbCBhbiBpbml0aWFsIGludGVyZmFjZSB0aGF0IGlzIGNhbGxlZCBpbiB0Y3BjaV9pbml0 IGJlIHJlbGVhc2VkIGZvciBkaWZmZXJlbnQgdmVuZG9ycyB0byBpbXBsZW1lbnQuCgpNeSBzdWdn ZXN0aW9uIHdvdWxkIGJlIHRvIHByb3ZpZGUgYW4gQVBJIGZvciB2ZW5kb3Igc3BlY2lmaWMgY29k ZS4KCj4gT3IsIHdlIHNob3VsZCBkaXJlY3RseSBjb3B5IHRjcGNpLmMgdG8gdGNwY2lfcnQxNzEx aC5jIGFuZCBhZGQgdGhlIGRpZmZlcmVudCBwYXJ0cz8KClRoYXQgd291bGQgZGVmZWF0IHRoZSBw dXJwb3NlLiBJdCB3b3VsZCBiZSBiZXR0ZXIgdG8gaW1wbGVtZW50IHZlbmRvcgpzcGVjaWZpYyBj b2RlIGluIHRjcGNpX3J0MTcxMWguYyBhbmQgY2FsbCBpdCBmcm9tIHRjcGNpLmMKClBvc3NpYmxl IGV4YW1wbGU6CgpzdHJ1Y3QgdGNwY2lfdmVuZG9yX2RhdGEgewoJaW50ICgqaW5pdCkoLi4uKTsK CWludCAoKmlycV9oYW5kbGVyKSguLi4pOwoJLi4uCn0KCnN0YXRpYyBpcnFyZXR1cm5fdCB0Y3Bj aV9pcnEoLi4uKQp7CglzdHJ1Y3QgdGNwY2kgKnRjcGNpID0gZGV2X2lkOwoKCS4uLgoJaWYgKHRj cGNpLT52ZW5kb3JfZGF0YS0+aXJxX2hhbmRsZXIpIHsKCQlyZXQgPSAoKnRjcGNpLT52ZW5kb3Jf ZGF0YS0+aXJxX2hhbmRsZXIpKC4uLik7CgkJLi4uCgl9CgkuLi4KfQoKdGNwY2lfaW5pdCgpCnsK CXN0cnVjdCB0Y3BjaV92ZW5kb3JfZGF0YSAqdmVuZG9yX2RhdGEgPSAmdGNwY2lfcnQxNzExaF9k YXRhOwoJCQkJLy8gZWcgZnJvbSBkZXZpY2V0cmVlIGNvbXBhdGlibGUgcHJvcGVydHkKCgkuLi4K CWlmICh2ZW5kb3JfZGF0YS0+aW5pdCkgewoJCXJldCA9ICgqdmVuZG9yX2RhdGEtPmluaXQpKC4u Lik7CgkJaWYgKHJldCkKCQkJcmV0dXJuIHJldDsKCX0KCS4uLgp9Cgo+ICAgUTMuIElmIHRoZXJl IGFyZSBJUlFzIGRlZmluZWQgaW4gdmVuZG9yIGRlZmluZWQgcmVnaXN0ZXJzLCB3aWxsIGFuIGlu dGVyZmFjZSB0aGF0IGlzIGNhbGxlZCBpbiB0Y3BjaV9pcnEgYmUgcmVsZWFzZWQgZm9yIGRpZmZl cmVudCB2ZW5kb3JzIHRvIGltcGxlbWVudC4KPiBTbyB0aGF0IHRoZXkgY2FuIGhhbmRsZSB0aGVp ciBvd24gSVJRcyBmaXJzdD8KCklmIHRoZXJlIGFyZSB2ZW5kb3Igc3BlY2lmaWMgaW50ZXJydXB0 cywgSSB3b3VsZCBhc3N1bWUgdGhhdCB2ZW5kb3Igc3BlY2lmaWMKY29kZSB3aWxsIGhhdmUgdG8g YmUgY2FsbGVkLiBFaXRoZXIgdGhlIGdlbmVyaWMgaW50ZXJydXB0IGhhbmRsZXIgY2FuIGNhbGwK dmVuZG9yIHNwZWNpZmljIGNvZGUsIG9yIHRoZSB2ZW5kb3Igc3BlY2lmaWMgY29kZSBoYW5kbGVz IHRoZSBpbnRlcnJ1cHQgYW5kCmNhbGxzIHRoZSBnZW5lcmljIGhhbmRsZXIuIEkgZG9uJ3Qga25v dyBhdCB0aGlzIHBvaW50IHdoaWNoIG9uZSBpcyBiZXR0ZXIuCgo+IElmIHRoZSBzdWdnZXN0aW9u IG9mIFEyIGlzIHRvIGNvcHkgdGNwY2kuYyB0byB0Y3BjaV9ydDE3MTFoLmMsIHRoZW4gUTMgd2ls bCBub3QgYmUgYSBwcm9ibGVtLgo+ICAgUTQuIEFjY29yZGluZyB0byBUQ1BDSSBTcGVjaWZpY2F0 aW9uIFJldmlzaW9uIDEuMCwgd2Ugc2hvdWxkIHNldCBEUlAgPSAxIGFuZCByb2xlIHRvIFJwL1Jw IG9yIFJkL1JkIGFuZCBzZXQgTE9PSzRDT05ORUNUSU9OIGNvbW1hbmQgdG8gc3RhcnQgdG9nZ2xl Lgo+IFNvIHdlIG1vZGlmeSB0aGUgdGNwY2lfc3RhcnRfZHJwX3RvZ2dsaW5nIGluIFRDUENJIGRy aXZlciBhcyBmb2xsb3dpbmcuIEhlcmUgd2Ugd3JpdGUgUmQvUmQgYW5kIERSUCA9IDAgc2ltdWx0 YW5lb3VzbHkgc28gdGhhdCBSZC9SZCB0YWtlcyBlZmZlY3QuCj4gVGhlbiB3ZSB3cml0ZSBEUlAg PSAxIGFuZCBzZXQgTE9PSzRDT05ORUNUSU9OIGNvbW1hbmQgdG8gc3RhcnQgdG9nZ2xpbmcuCj4g ClNHVE0uCgo+IHN0YXRpYyBpbnQgdGNwY2lfc3RhcnRfZHJwX3RvZ2dsaW5nKHN0cnVjdCB0Y3Bj X2RldiAqdGNwYywKPiAgICAgIGVudW0gdHlwZWNfY2Nfc3RhdHVzIGNjKQo+ICB7Cj4gK2ludCBy ZXQgPSAwOwo+ICBzdHJ1Y3QgdGNwY2kgKnRjcGNpID0gdGNwY190b190Y3BjaSh0Y3BjKTsKPiAt dW5zaWduZWQgaW50IHJlZyA9IFRDUENfUk9MRV9DVFJMX0RSUDsKPiArdTMyIHJlZyA9IChUQ1BD X1JPTEVfQ1RSTF9DQ19SRCA8PCBUQ1BDX1JPTEVfQ1RSTF9DQzFfU0hJRlQpIHwKPiArKFRDUENf Uk9MRV9DVFJMX0NDX1JEIDw8IFRDUENfUk9MRV9DVFJMX0NDMl9TSElGVCk7Cj4gCj4gIHN3aXRj aCAoY2MpIHsKPiAgZGVmYXVsdDoKPiBAQCAtMTI1LDggKzY3MiwxOSBAQCBzdGF0aWMgaW50IHRj cGNpX3N0YXJ0X2RycF90b2dnbGluZyhzdHJ1Cj4gIFRDUENfUk9MRV9DVFJMX1JQX1ZBTF9TSElG VCk7Cj4gIGJyZWFrOwo+ICB9Cj4gLQo+IC1yZXR1cm4gcmVnbWFwX3dyaXRlKHRjcGNpLT5yZWdt YXAsIFRDUENfUk9MRV9DVFJMLCByZWcpOwo+ICtyZXQgPSByZWdtYXBfd3JpdGUodGNwY2ktPnJl Z21hcCwgVENQQ19ST0xFX0NUUkwsIHJlZyk7Cj4gK2lmIChyZXQgPCAwKQo+ICtyZXR1cm4gcmV0 Owo+ICttZGVsYXkoMSk7CgpUaGF0IGlzIGJhZDsgeW91IGRvbid0IHdhbnQgdG8gaG9sZCB1cCB0 ZWggc3lzdGVtIGZvciB0aGF0IG11Y2guClRyeSB0byB1c2UgdXNsZWVwX3JhbmdlKCkuCgo+ICty ZWcgfD0gVENQQ19ST0xFX0NUUkxfRFJQOwo+ICtyZXQgPSByZWdtYXBfd3JpdGUodGNwY2ktPnJl Z21hcCwgVENQQ19ST0xFX0NUUkwsIHJlZyk7Cj4gK2lmIChyZXQgPCAwKQo+ICtyZXR1cm4gcmV0 Owo+ICtyZXQgPSByZWdtYXBfd3JpdGUodGNwY2ktPnJlZ21hcCwgVENQQ19DT01NQU5ELAo+ICtU Q1BDX0NNRF9MT09LNENPTk5FQ1RJT04pOwo+ICtpZiAocmV0IDwgMCkKPiArcmV0dXJuIHJldDsK PiArcmV0dXJuIDA7Cj4gIH0KPiAKPiAgIFE1LiBUaGUgdGNwY2lfc2V0X3ZidXMgaW4gVENQQ0kg ZHJpdmVyIHVzZXMgY29tbWFuZCB0byBjb250cm9sIFNpbmsvU291cmNlIFZCVVMuCj4gSWYgb3Vy IGNoaXAgZG9lcyBub3Qgc3VwcG9ydCBwb3dlciBwYXRoLCBpLmUuIFNpbmsgJiBTb3VyY2UgYXJl IGNvbnRyb2xsZWQgYnkgb3RoZXIgY2hhcmdlciBJQy4gT3VyIGNoaXAgd2lsbCBkbyBub3RoaW5n IHdoaWxlIHNldHRpbmcgdGhlc2UgY29tbWFuZHMuCj4gSW4gdGhlIGZ1dHVyZSBUQ1BDSSBkcml2 ZXIsIHdpbGwgYSBmcmFtZXdvcmsgYmUgYXBwbGllZCB0byBub3RpZnkgdGhlc2UgZXZlbnRzLiBp LmcuIHBvd2VyX3N1cHBseSBvciBub3RpZmllci4KPiAKSSB3b3VsZCB0aGluayBzby4KCk5vdGUg dGhhdCB0aGUgZHJpdmVyIGlzLCBhdCB0aGlzIHBvaW50LCBmYWlyIGdhbWUgdG8gY2hhbmdlIHRv Cm1ha2UgaXQgd29yayB3aXRoIHlvdXIgY2hpcC4gVGhlIG9ubHkgY29uZGl0aW9uIGlzIHRoYXQg YSBzdGFuZGFyZApjaGlwIHNob3VsZCBzdGlsbCB3b3JrLCBpZSB5b3Ugc2hvdWxkIG5vdCBtYWtl IGFueSBjaGFuZ2VzIHdoaWNoCndvdWxkIGNhdXNlIHRoZSBkcml2ZXIgdG8gX29ubHlfIHdvcmsg d2l0aCB5b3VyIGNoaXAuIEV2ZXJ5dGhpbmcgZWxzZQppcyBmYWlyIGdhbWUuCgpUaGFua3MsCkd1 ZW50ZXIKLS0tClRvIHVuc3Vic2NyaWJlIGZyb20gdGhpcyBsaXN0OiBzZW5kIHRoZSBsaW5lICJ1 bnN1YnNjcmliZSBsaW51eC11c2IiIGluCnRoZSBib2R5IG9mIGEgbWVzc2FnZSB0byBtYWpvcmRv bW9Admdlci5rZXJuZWwub3JnCk1vcmUgbWFqb3Jkb21vIGluZm8gYXQgIGh0dHA6Ly92Z2VyLmtl cm5lbC5vcmcvbWFqb3Jkb21vLWluZm8uaHRtbAo=