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: serial: cp210x: Implement GPIO support for CP2102N From: Martyn Welch Message-Id: <1529680221.2395.26.camel@collabora.co.uk> Date: Fri, 22 Jun 2018 16:10:21 +0100 To: Karoly Pados , Johan Hovold Cc: Greg Kroah-Hartman , linux-usb@vger.kernel.org, linux-kernel@vger.kernel.org List-ID: T24gV2VkLCAyMDE4LTA2LTIwIGF0IDE5OjQxICswMDAwLCBLYXJvbHkgUGFkb3Mgd3JvdGU6Cj4g SGkgTWFydHluLAo+IAo+ID4gVGhlIHJhdGlvbmFsZSBmb3IgdGhlIHBpbnMgYmVpbmcgcGVybWFu ZW50bHkgY29uZmlndXJlZCBhcyBvdXRwdXQKPiA+IHBpbnMKPiA+IGlzIHRoYXQgdGhlc2UgcGlu cyAoYXQgbGVhc3Qgb24gdGhlIGNwMjEwNSkgZG8gbm90IGFwcGVhciB0bwo+ID4gcHJvdmlkZSBh Cj4gPiB0cnVlIGlucHV0IG1vZGUuIFRoZXkgb2ZmZXIgYSAicHVzaC1wdWxsIiBtb2RlICh3aGVy ZSB0aGUgdm9sdGFnZQo+ID4gaXMKPiA+IHB1bGxlZCBkaXJlY3RseSB0byBncm91bmQgb3Igc3Vw cGx5IHJhaWwpIGFuZCBhbiAib3Blbi1kcmFpbiIgbW9kZQo+ID4gKHdoZXJlIHRoZSBwaW4gaXMg d2Vha2x5IHB1bGxlZCBoaWdoIGJ5IGFuIGludGVybmFsIHJlc2lzdG9yIGFuZAo+ID4gY2FuIGJl Cj4gPiBwdWxsZWQgdG8gZ3JvdW5kKS4gVW5sZXNzIEkgbWlzc2VkIHNvbWV0aGluZywgdGhlcmUg aXMgbm8KPiA+IHRyaXN0YXRlL2hpZ2gKPiA+IGltcGVkYW5jZSBtb2RlIHR5cGljYWxseSBhc3Nv Y2lhdGVkIHdpdGggYSBwaW4gYmVpbmcgdXNlZCBhcyBpbnB1dC4KPiAKPiBZb3UgZGlkbid0IG1p c3MgYW55dGhpbmcuIEl0IGlzIHRoZSBzYW1lIGZvciBtYW55IChtYXliZSBhbGwpIFNpTGFicwo+ IGRldmljZXMsIGluIHBhcnRpY3VsYXIgYWxzbyBmb3IgdGhlIGNwMjEwMm4sIHdoaWNoIHNwYXdu ZWQgdGhpcwo+IGNvbnZlcnNhdGlvbi4KPiBJIHNlbnQgaW4gcGF0Y2hlcyBmb3IgaXRzIEdQSU8g c3VwcG9ydCwgYnV0IGluIGNvbnRyYXN0IHRvIHRoZQo+IGNwMjEwNSwKPiBJIHRyeSB0byBlbXVs YXRlIGlucHV0IG1vZGUgYnkgbWFraW5nIHN1cmUgdGhhdCBhIHBpbiBpcyBuZXZlciBwdWxsZWQK PiBsb3cKPiB3aGVuIGl0IGlzIHNldCBhcyBhbiBpbnB1dCwgYW5kIHRoYXQgeW91IGNhbm5vdCBz ZXQgcHVzaC1wdWxsIHBpbnMgYXMKPiBpbnB1dHMuCj4gVGhlIHJlYXNvbiB3aHkgeW91IHdlcmUg aW52aXRlZCBpcyBiZWNhdXNlIHdlIGFyZSB0cnlpbmcgdG8gZmlndXJlCj4gb3V0IHdoaWNoCj4g YXBwcm9hY2ggc2hvdWxkIGJlIHRha2VuLgo+IAo+ID4gU3VyZSwgeW91IGNhbiB1c2UgdGhlIG9w ZW4tZHJhaW4gbW9kZSBhcyBpbnB1dCBhcyBsb25nIGFzIHlvdQo+ID4gdW5kZXJzdGFuZCB0aGF0 IHRoZSBwZXJtYW5lbnQgcHVsbCB1cCBpbiB0aGUgY3AyMDE1IG1pZ2h0IGhhdmUgYW4KPiA+IGlt cGFjdCBvbiB3aGF0IHlvdSBhcmUgcmVhZGluZy4gRm9yIGV4YW1wbGUsIGlmIHlvdSBoYXZlIGEg c2lnbmFsCj4gPiB0aGF0Cj4gPiBpcyBleHRlcm5hbGx5IHdlYWtseSBwdWxsZWQgZG93biwgaXQn cyBnb2luZyB0byBkZXBlbmQgb24gdGhlCj4gPiByZWxhdGl2ZQo+ID4gcmVzaXN0YW5jZXMgb2Yg dGhlIGludGVybmFsIGFuZCBleHRlcm5hbCByZXNpc3RvcnMgYXMgdG8gd2hhdAo+ID4gdm9sdGFn ZQo+ID4gdGhlIGxpbmUgcmVzdHMgYXQgYW5kIHRoZXJlZm9yZSB3aGF0IHN0YXRlIHRoZSBsaW5l IGlzIGNvbnNpZGVyZWQKPiA+IHRvIGJlCj4gPiBpbi4gVGhpcyBjb3VsZCBzdG9wIHRoaW5ncyB3 b3JraW5nIGlmIHlvdSBuYWl2ZWx5IHRoaW5rIHRoZSBjcDIxMDUKPiA+IGlzCj4gPiBhY3Rpbmcg YXMgYSB0eXBpY2FsIGhpZ2gtaW1wZWRhbmNlIGlucHV0Lgo+IAo+IEhlcmUgSSBhcmd1ZSB0aGUg Zm9sbG93aW5nIG11bHRpcGxlIHdheXMuIEZpcnN0LCBJIHNheSB0aGF0IGNsYWltaW5nCj4gdGhh dAo+IGEgcGluIHdoaWNoIGlzIHVzZWQgYXMgYW4gaW5wdXQgaXMgYWN0dWFsbHkgYW4gb3V0cHV0 IGlzIG5vdCBvbmx5Cj4gY29uZnVzaW5nLAo+IGJ1dCBhbHNvIG11Y2ggbGVzcyBjb3JyZWN0IHRo YW4gdGhpbmtpbmcgb2YgaXQgYXMgYW4gaW5wdXQgcGluIHdpdGggYQo+IHdlYWsKPiBwdWxsdXAg dG8gcHJldmVudCBmbG9hdGluZyBzaWduYWxzLiBTZWNvbmQsIHRoZSBwdWxsdXBzIC0gd2hpbGUg bm90wqAKPiBleHBsaWNpdGx5IGxpc3RlZCBpbiB0aGUgZGF0YXNoZWV0IC0gY2FuIGJlIGNhbGN1 bGF0ZWQgZnJvbSB3aGF0IGlzCj4gdGhlcmUswqAKPiBhbmQgZm9yIHRoZSBjcDIxMDUgYXJlIHR5 cGljYWxseSAxMzJrLCBmb3IgdGhlIGNwMjEwMm4gZXZlbiBoaWdoZXIKPiBhcm91bmTCoAo+IDE2 NWsuIFRoZXNlIGFyZSBwcmV0dHkgd2VhayBwdWxsdXBzLCBzbyB3ZWFrIHRoYXQgdGhleSB3b24n dCBtYXR0ZXIKPiBmb3IKPiB0aGUgdmFzdCBtYWpvcml0eSBvZiBhcHBsaWNhdGlvbnMgYXMgcGVv cGxlIHJhcmVseSB1c2UgcHVsbC11cHMgb3IKPiBwdWxsLQo+IGRvd25zIGhpZ2hlciB0aGFuIDEw MGsgKG5vdCBuZXZlciwgYnV0IHJhcmVseSkuIFNvIGNsYWltaW5nIHRoYXQgaXQKPiBjYW4KPiBy ZXN1bHQgaW4gZmFsc2UgZXhwZWN0YXRpb24sIHdoaWxlIG5vdCBjb21wbGV0ZWx5IHdyb25nLCBp cyBmYXZvcmluZwo+IHRoZcKgCj4gbmVlZHMgb2YgYSBmZXcgaW5zdGVhZCBvZiB0aGUgbXVjaCBt b3JlIGNvbW1vbiBwcmFjdGljZS4KPiAKPiBMYXN0bHksIGFuZCBtYXliZSBtb3N0IGltcG9ydGFu dGx5LCBJIGFyZ3VlIHRoYXQgY2FsbGluZyBldmVyeXRoaW5nCj4gYW7CoAo+ICJvdXRwdXQiIHBp biBvbmx5IGluIG5hbWUgZG9lcyBub3QgYWN0dWFsbHkgYXZvaWQgYW55IGRlc2lnbiBlcnJvcnMs Cj4gYXMKPiB0aGUgc2FtZSBjaXJjdWl0IHRoYXQgd291bGQgY2FzZSBhIGZhbHNlIHJlYWRpbmcg aW4gb25lIGNhc2Ugd291bGQKPiBhbHNvCj4gY2F1c2UgdGhlIHNhbWUgZmFsc2UgcmVhZGluZyBp biB0aGUgb3RoZXIsIGFuZCB0aGUgY2lyY3VpdHMgYXJlCj4gdXN1YWxseQo+IGRldmVsb3BlZCBi ZWZvcmUgdGhlIHNvZnR3YXJlLiBTbyBpdCdsbCBiZSB0b28gbGF0ZSBhbnl3YXkgYnkgdGhlCj4g dGltZcKgCj4gc29tZWJvZHkgcmVhbGl6ZXMgc3VjaCBhIG1pc3Rha2UuIEJ1dCBvbiB0aGUgY29u dHJhcnksIGl0IG9wZW5zIHVwCj4gbW9yZcKgCj4gb3Bwb3J0dW5pdGllcyBmb3IgZXJyb3JzLCBi ZWNhdXNlIG5vdyB5b3UgYXJlIG9wZW4gdG8gc29mdHdhcmUgYnVncwo+IHRoYXQKPiBpZ25vcmUg YSBwaW4ncyBkaXJlY3Rpb24gYmVjYXVzZSBldmVyeXRoaW5nJ3MgYW4gb3V0cHV0IGVpdGhlciB3 YXkKPiBldmVuwqAKPiB3aGVuIGl0IHJlYWxseSBpc24ndCwgYW5kIHRoaW5rIHRoYXQgdGhleSBj YW4gdHJlYXQgaXQgYXMKPiBhcyBvcGVuLWRyYWluIHdoaWxlIGZvciBzb21lIHJlYXNvbiBpdCBp cyBpbiBwdXNoLXB1bGwgbW9kZS4gV29yc2UsCj4gZXZlbiBpZiBpdCBpcyBpbiBvcGVuLWRyYWlu IG1vZGUsIGl0IHdpbGwgb25seSB3b3JrIHdpdGggYSBzcGVjaWZpYwo+IG91dHB1dAo+IHZhbHVl cyAtIGl0IG11c3QgYmUgaGlnaCwgd2hpY2ggaXMgbm90IHRoZSBkZWZhdWx0LiBXaXRoIG15Cj4g cHJvcG9zYWwswqAKPiBzZXR0aW5nIGEgcGluJ3MgZGlyZWN0aW9uIHRvICJpbnB1dCIgd2lsbCBt YWtlIHN1cmUgaXQgY2Fubm90IGJlCj4gYWN0aXZlbHnCoAo+IGRyaXZlbiBieSB0aGUgY2hpcCwg YXZvaWRpbmcgc3VjaCAibWlzdW5kZXJzdGFuZGluZ3MiIGFuZCBlcnJvcnMsCj4gYW5kwqAKPiBz aW1pbGFyIG1lYXN1cmVzIGFyZSBhbHNvIGluIHBsYWNlIGZvciB0aGUgcHVzaC1wdWxsIHBpbnMu Cj4gCgpZZWFoLCBJJ2xsIGdvIHdpdGggdGhhdC4gOi0pCgo+IFRoZSBvbmx5IHByb2JsZW0gSSBj YW4gc2VlIGlzIGlmIHRoZXJlIGlzbid0IGEgd2F5IGZvciB0aGUgY3AyMTA1IHRvwqAKPiBxdWVy eSB0aGUgcmVzZXQgdmFsdWVzIG9mIHRoZSBwaW5zIChtYXliZSB0aGVyZSBpcywgSSBqdXN0IGhh dmVuJ3TCoAo+IGxvb2tlZCBpbnRvIGl0KS4gVGhlbiBJIGRvbid0IGtub3cgaG93IHRoZSBkaXJl Y3Rpb24gY291bGQgYmXCoAo+IGRldGVybWluZWQgZm9yIGFuIG9wZW4tZHJhaW4gcGluIGR1cmlu ZyBpbml0aWFsaXphdGlvbi4gQnV0IHRoaXMgaXPCoAo+IHNvbHZlZCBmb3IgdGhlIGNwMjEwMm4s IGFuZCB0aGVuIGl0IGlzIGEgZGV2aWNlLXNwZWNpZmljIGlzc3VlIGZvcsKgCj4gdGhlIGNwMjEw NSwgd2hpY2ggc2hvdWxkbid0IGJlIGZvcmNlZCBvbnRvIG90aGVyIGRldmljZXMgaWYgd2UKPiBv dGhlcndpc2XCoAo+IGRlY2lkZSB0aGUgYXBwcm9hY2ggdG8gYmUgaW5mZXJpb3IuCj4gCgpJJ20g cHJldHR5IHN1cmUgdGhlcmUgaXMgYSB3YXkgdG8gZGV0ZXJtaW5lIHRoZSBwaW4gc3RhdGUsIHRo b3VnaAp1bmZvcnR1bmF0ZWx5IEkgbm8gbG9uZ2VyIGhhdmUgYWNjZXNzIHRvIHRoZSBIVyB0byBi ZSBhYmxlIHRvIHRlc3QuLi4KCk1hcnR5bgoKPiBLYXJvbHkKLS0tClRvIHVuc3Vic2NyaWJlIGZy b20gdGhpcyBsaXN0OiBzZW5kIHRoZSBsaW5lICJ1bnN1YnNjcmliZSBsaW51eC11c2IiIGluCnRo ZSBib2R5IG9mIGEgbWVzc2FnZSB0byBtYWpvcmRvbW9Admdlci5rZXJuZWwub3JnCk1vcmUgbWFq b3Jkb21vIGluZm8gYXQgIGh0dHA6Ly92Z2VyLmtlcm5lbC5vcmcvbWFqb3Jkb21vLWluZm8uaHRt bAo=