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: ftdi_sio: implement GPIO support for FT230X From: Johan Hovold Message-Id: <20180905103650.GA1089@localhost> Date: Wed, 5 Sep 2018 12:36:50 +0200 To: Karoly Pados Cc: Johan Hovold , Greg Kroah-Hartman , linux-usb@vger.kernel.org, linux-kernel@vger.kernel.org, Loic Poulain , andy.shevchenko@gmail.com, ajaykuee@gmail.com, daniel.thompson@linaro.org List-ID: T24gVHVlLCBTZXAgMDQsIDIwMTggYXQgMDI6NDk6MjRQTSArMDIwMCwgSm9oYW4gSG92b2xkIHdy b3RlOgo+IE9uIFNhdCwgQXVnIDI1LCAyMDE4IGF0IDEwOjQ3OjQ0UE0gKzAyMDAsIEthcm9seSBQ YWRvcyB3cm90ZToKCkhlcmUgYXJlIHNvbWUgbW9yZSBjb21tZW50cyBvbiB0aGUgc2V0dXAgZnVu Y3Rpb25zLCBhZnRlciBoYXZpbmcKcHJlcGFyZWQgYSBwYXRjaCBhZGRpbmcgc3VwcG9ydCB0byBG VDIzMlIuCgo+ID4gK3N0YXRpYyBpbnQgZnR4X2dwaW9jb25mX2luaXQoc3RydWN0IHVzYl9zZXJp YWxfcG9ydCAqcG9ydCkKClBlcmhhcHMgcmVuYW1lIHJlbmFtZSB0aGlzIHVzaW5nIGFuIGZ0ZGlf IHByZWZpeCBhcyB3ZWxsIGZvciBjb25zaXN0ZW5jeQp3aXRoIHRoZSBjdXJyZW50IGRldmljZS1z cGVjaWZpYyBmdW5jdGlvbnMuCgo+ID4gK3sKPiA+ICsJc3RydWN0IGZ0ZGlfcHJpdmF0ZSAqcHJp diA9IHVzYl9nZXRfc2VyaWFsX3BvcnRfZGF0YShwb3J0KTsKPiA+ICsJc3RydWN0IHVzYl9zZXJp YWwgKnNlcmlhbCA9IHBvcnQtPnNlcmlhbDsKPiA+ICsJY29uc3QgdTE2IGNvbmZpZ19zaXplID0g MHgyNDsKPiA+ICsJdTggKmNvbmZpZ19idWY7Cj4gPiArCWludCByZXN1bHQ7Cj4gPiArCXU4IGk7 Cj4gPiArCgpbLi4uXQoKPiA+ICsJLyoKPiA+ICsJICogQWxsIEZULVggZGV2aWNlcyBoYXZlIGF0 IGxlYXN0IDEgR1BJTywgc29tZSBoYXZlIG1vcmUuCj4gPiArCSAqIENoaXAtdHlwZSBndWVzc2lu ZyBsb2dpYyBiYXNlZCBvbiBsaWJmdGRpLgo+ID4gKwkgKi8KPiA+ICsJcHJpdi0+Z2MubmdwaW8g PSAxOwo+ID4gKwlpZiAoc2VyaWFsLT5kZXYtPmRlc2NyaXB0b3IuYmNkRGV2aWNlID09IDB4MTAw MCkgIC8qIEZUMjMwWCAqLwo+IAo+IE1pc3NpbmcgbGUxNl90b19jcHUoKS4KPiAKPiA+ICsJCXBy aXYtPmdjLm5ncGlvID0gNDsKPiAKPiBTaG91bGRuJ3QgdGhpcyBiZSBoYW5kbGVkIHRoZSBvdGhl ciB3YXkgcm91bmQ/IElJUkMgdGhlcmUgYXJlIHR3byBGVFgKPiBkZXZpY2UgdHlwZXMgd2l0aCBm b3VyIHBpbnMsIGFuZCBvbmUgdHlwZSB3aGVyZSBvbmx5IG9uZSBwaW4gaXMKPiBhY2Nlc3NpYmxl Lgo+IAo+ID4gKwo+ID4gKwkvKiBEZXRlcm1pbmUgd2hpY2ggcGlucyBhcmUgY29uZmlndXJlZCBm b3IgQ0JVUyBiaXRiYW5naW5nICovCj4gPiArCXByaXYtPmdwaW9fYWx0ZnVuYyA9IDB4ZmY7Cj4g PiArCWZvciAoaSA9IDA7IGkgPCBwcml2LT5nYy5uZ3BpbzsgKytpKSB7Cj4gPiArCQlpZiAoY29u ZmlnX2J1ZlsweDFBICsgaV0gPT0gRlRESV9TSU9fQ0JVU19NVVhfR1BJTykKPiAKPiAweDFhIHdh cnJhbnRzIGEgZGVmaW5lOyBidXQgeW91IHNob3VsZG4ndCBiZSByZWFkaW5nIDB4MjQgYnl0ZXMg ZnJvbQo+IG9mZnNldCAwIGFib3ZlIHdoZW4gdGhlIHBpbmNvbmZpZyBpcyBzdG9yZWQgaW4ganVz dCBhIGNvdXBsZSBvZiB3b3Jkcy4KPiAKPiA+ICsJCQlwcml2LT5ncGlvX2FsdGZ1bmMgJj0gfkJJ VChpKTsKPiA+ICsJfQo+ID4gKwo+ID4gKwlrZnJlZShjb25maWdfYnVmKTsKPiA+ICsKPiA+ICsJ cmV0dXJuIDA7Cj4gPiArfQoKSG93IGFib3V0IHJldHVybmluZyB0aGUgbnVtYmVyIG9mIGdwaW9z IGluc3RlYWQgb2YgaGF2aW5nIGV2ZXJ5CmRldmljZS1zcGVjaWZpYyBmdW5jdGlvbiBtZXNzIHdp dGggcHJpdi0+Z2M/Cgo+ID4gKwo+ID4gK3N0YXRpYyBpbnQgZnRkaV9zaW9fZ3Bpb19pbml0KHN0 cnVjdCB1c2Jfc2VyaWFsX3BvcnQgKnBvcnQpCj4gPiArewo+ID4gKwlzdHJ1Y3QgZnRkaV9wcml2 YXRlICpwcml2ID0gdXNiX2dldF9zZXJpYWxfcG9ydF9kYXRhKHBvcnQpOwo+ID4gKwlzdHJ1Y3Qg dXNiX3NlcmlhbCAqc2VyaWFsID0gcG9ydC0+c2VyaWFsOwo+ID4gKwlpbnQgcmVzdWx0Owo+ID4g Kwo+ID4gKwkvKiBEZXZpY2Utc3BlY2lmaWMgaW5pdGlhbGl6YXRpb25zICovCj4gPiArCXN3aXRj aCAocHJpdi0+Y2hpcF90eXBlKSB7Cj4gPiArCWNhc2UgRlRYOgo+ID4gKwkJcmVzdWx0ID0gZnR4 X2dwaW9jb25mX2luaXQocG9ydCk7Cj4gPiArCQlicmVhazsKPiA+ICsJZGVmYXVsdDoKPiA+ICsJ CXJldHVybiAwOwo+ID4gKwl9Cj4gPiArCj4gPiArCWlmIChyZXN1bHQgPCAwKQo+ID4gKwkJcmV0 dXJuIHJlc3VsdDsKPiA+ICsKPiA+ICsJLyogUmVnaXN0ZXIgR1BJTyBjaGlwIHRvIGtlcm5lbCAq Lwo+ID4gKwlwcml2LT5nYy5sYWJlbCA9ICJmdGRpX3NpbyI7Cj4gCj4gTWF5YmUgd2Ugc2hvdWxk bid0IHVzZSB0aGUgbGVnYWN5IHNpbyBzdWZmaXggaGVyZTsgImZ0ZGkiIG9yICJmdGRpLWNidXMi Cj4gc2hvdWxkIGRvLgo+IAo+ID4gKwlwcml2LT5nYy5yZXF1ZXN0ID0gZnRkaV9zaW9fZ3Bpb19y ZXF1ZXN0Owo+ID4gKwlwcml2LT5nYy5nZXRfZGlyZWN0aW9uID0gZnRkaV9zaW9fZ3Bpb19kaXJl Y3Rpb25fZ2V0Owo+ID4gKwlwcml2LT5nYy5kaXJlY3Rpb25faW5wdXQgPSBmdGRpX3Npb19ncGlv X2RpcmVjdGlvbl9pbnB1dDsKPiA+ICsJcHJpdi0+Z2MuZGlyZWN0aW9uX291dHB1dCA9IGZ0ZGlf c2lvX2dwaW9fZGlyZWN0aW9uX291dHB1dDsKPiA+ICsJcHJpdi0+Z2MuZ2V0ID0gZnRkaV9zaW9f Z3Bpb19nZXQ7Cj4gPiArCXByaXYtPmdjLnNldCA9IGZ0ZGlfc2lvX2dwaW9fc2V0Owo+ID4gKwlw cml2LT5nYy5vd25lciA9IFRISVNfTU9EVUxFOwo+ID4gKwlwcml2LT5nYy5wYXJlbnQgPSAmc2Vy aWFsLT5pbnRlcmZhY2UtPmRldjsKPiA+ICsJcHJpdi0+Z2MuYmFzZSA9IC0xOwo+ID4gKwlwcml2 LT5nYy5jYW5fc2xlZXAgPSB0cnVlOwo+ID4gKwo+ID4gKwlyZXN1bHQgPSBncGlvY2hpcF9hZGRf ZGF0YSgmcHJpdi0+Z2MsIHBvcnQpOwo+ID4gKwlpZiAoIXJlc3VsdCkKPiA+ICsJCXByaXYtPmdw aW9fcmVnaXN0ZXJlZCA9IHRydWU7Cj4gPiArCj4gPiArCXJldHVybiByZXN1bHQ7Cj4gPiArfQoK PiA+ICsjZGVmaW5lIEZURElfU0lPX0NCVVNfTVVYX0dQSU8JCTgKCkFuZCB0aGlzIG9uZSBuZWVk cyB0byBoYXZlIGFuIEZUWCBpbmZpeCBhcyBpdCdzIEZUWCBzcGVjaWZpYyAoZS5nLgpyZW5hbWUg YXMgRlRESV9GVFhfQ0JVU19NVVhfSU9NT0RFLCB3aGljaCBJIGJlbGlldmUgYmV0dGVyIG1hdGNo ZXMgd2l0aAp0aGUgdmFyaW91cyBkb2NzKS4KCkpvaGFuCg==