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: [RFC] USB: serial: ftdi_sio: add support for FT232R CBUS gpios From: Johan Hovold Message-Id: <20180905104904.15325-1-johan@kernel.org> Date: Wed, 5 Sep 2018 12:49:04 +0200 To: Karoly Pados , Loic Poulain Cc: linux-usb@vger.kernel.org, linux-kernel@vger.kernel.org, Johan Hovold List-ID: RW5hYmxlIHN1cHBvcnQgZm9yIHRoZSBDQlVTIGdwaW9zIG9uIEZUMjMyUi4gVGhlIGNidXMgY29u ZmlndXJhdGlvbiBpcwpzdG9yZWQgaW4gb25lIHdvcmQgaW4gdGhlIEVFUFJPTSBhdCBvZmZzZXQg MHgwYSB3aXRoIHRoZSBtdXggY29uZmlnIGZvcgpDQlVTMSwgQ0JVUzIsIENCVVMzIGFuZCBDQlVT NCBpbiBiaXRzIDAuLjMsIDQuLjcsIDguLjExIGFuZCAxMi4uMTUsCnJlc3BlY3RpdmVseS4KClRl c3RlZCB1c2luZyBGVDIzMlJMIHdpdGggYWxsIENCVVMgcGlucyBpbiBJTyBtb2RlLgoKQXBwbGll cyBvbiB0b3Agb2YgS2Fyb2x5J3MgQ0JVUyBncGlvIHBhdGNoLgoKRklYTUU6IHVzZSBjb21tb24g ZWVwcm9tX3JlYWQgaGVscGVyCkZJWE1FOiByZXR1cm4gdGhlIG51bWJlciBvZiBncGlvcyBpbnN0 ZWFkIG9mIHNldHRpbmcgZ2MubmdwaW8/CkZJWE1FOiB2ZXJpZnkgZWFjaCBtdXggc2V0dGluZwpT aWduZWQtb2ZmLWJ5OiBKb2hhbiBIb3ZvbGQgPGpvaGFuQGtlcm5lbC5vcmc+Ci0tLQoKVGhpcyBp cyBhIGNsZWFuZWQgdXAgdmVyc2lvbiBvZiBzb21lIGNvZGUgSSd2ZSBiZWVuIHVzaW5nIHRvIHRl c3QKS2Fyb2x5J3MgcGF0Y2ggdXNpbmcgYW4gRlQyMzJSTCBpbiBjYXNlIGFueW9uZSB3YW50cyB0 byBnaXZlIHRoYXQgYSB0cnkuCgpNYXkgYWxzbyBiZSB1c2VmdWwgdG8gZ2V0IGFuIGlkZWEgb2Yg aG93IHRoZSBjdXJyZW50IHNldHVwIGNvZGUgY2FuIGJlCnJlZmFjdG9yZWQuIFRoaXMgb25lIG5l ZWRzIHRvIGJlIHJlYmFzZWQgdG8gdXNlIGEgY29tbW9uIGVlcHJvbSBoZWxwZXIKZXZlbnR1YWxs eSBmb3IgZXhhbXBsZS4KCkpvaGFuCgoKIGRyaXZlcnMvdXNiL3NlcmlhbC9mdGRpX3Npby5jIHwg NDkgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysKIGRyaXZlcnMvdXNiL3Nlcmlh bC9mdGRpX3Npby5oIHwgIDEgKwogMiBmaWxlcyBjaGFuZ2VkLCA1MCBpbnNlcnRpb25zKCspCgpk aWZmIC0tZ2l0IGEvZHJpdmVycy91c2Ivc2VyaWFsL2Z0ZGlfc2lvLmMgYi9kcml2ZXJzL3VzYi9z ZXJpYWwvZnRkaV9zaW8uYwppbmRleCAxZGY5YzU1MzcxMGIuLjRkNjM4NjNiZmIzZiAxMDA2NDQK LS0tIGEvZHJpdmVycy91c2Ivc2VyaWFsL2Z0ZGlfc2lvLmMKKysrIGIvZHJpdmVycy91c2Ivc2Vy aWFsL2Z0ZGlfc2lvLmMKQEAgLTQzLDYgKzQzLDkgQEAKICNpZmRlZiBDT05GSUdfR1BJT0xJQgog I2luY2x1ZGUgPGxpbnV4L2dwaW8vZHJpdmVyLmg+CiAjZW5kaWYKKworI2luY2x1ZGUgPGFzbS91 bmFsaWduZWQuaD4KKwogI2luY2x1ZGUgImZ0ZGlfc2lvLmgiCiAjaW5jbHVkZSAiZnRkaV9zaW9f aWRzLmgiCiAKQEAgLTE5MjAsNiArMTkyMyw0OSBAQCBzdGF0aWMgaW50IGZ0ZGlfc2lvX2dwaW9f ZGlyZWN0aW9uX291dHB1dChzdHJ1Y3QgZ3Bpb19jaGlwICpnYywKIAkJCSAgRlRESV9TSU9fR1BJ T19NT0RFX0NCVVMpOwogfQogCitzdGF0aWMgaW50IGZ0ZGlfZnQyMzJyX2dwaW9jb25mX2luaXQo c3RydWN0IHVzYl9zZXJpYWxfcG9ydCAqcG9ydCkKK3sKKwlzdHJ1Y3QgZnRkaV9wcml2YXRlICpw cml2ID0gdXNiX2dldF9zZXJpYWxfcG9ydF9kYXRhKHBvcnQpOworCXN0cnVjdCB1c2JfZGV2aWNl ICp1ZGV2ID0gcG9ydC0+c2VyaWFsLT5kZXY7CisJdTE2IHRtcDsKKwl1OCAqYnVmOworCWludCBy ZXM7CisJaW50IGk7CisKKwlidWYgPSBrbWFsbG9jKDIsIEdGUF9LRVJORUwpOworCWlmICghYnVm KQorCQlyZXR1cm4gLUVOT01FTTsKKworCXJlcyA9IHVzYl9jb250cm9sX21zZyh1ZGV2LCB1c2Jf cmN2Y3RybHBpcGUodWRldiwgMCksCisJCQkJRlRESV9TSU9fUkVBRF9FRVBST01fUkVRVUVTVCwK KwkJCQlGVERJX1NJT19SRUFEX0VFUFJPTV9SRVFVRVNUX1RZUEUsCisJCQkJMCwgMHgwYSwgYnVm LCAyLAorCQkJCVdEUl9USU1FT1VUKTsKKwlpZiAocmVzIDwgMikgeworCQlpZiAocmVzID49IDAp CisJCQlyZXMgPSAtRUlPOworCQlnb3RvIG91dF9mcmVlOworCX0KKworCXRtcCA9IGdldF91bmFs aWduZWRfbGUxNihidWYpOworCWRldl9kYmcoJnBvcnQtPmRldiwgImNidXNfY29uZmlnID0gMHgl MDR4XG4iLCB0bXApOworCisJcHJpdi0+Z2MubmdwaW8gPSA0OworCXByaXYtPmdwaW9fYWx0ZnVu YyA9IDB4ZmY7CisKKwlmb3IgKGkgPSAwOyBpIDwgcHJpdi0+Z2MubmdwaW87ICsraSkgeworCQlp ZiAoKHRtcCAmIDB4ZikgPT0gRlRESV9GVDIzMlJfQ0JVU19NVVhfSU9NT0RFKQorCQkJcHJpdi0+ Z3Bpb19hbHRmdW5jICY9IH5CSVQoaSk7CisJCXRtcCA+Pj0gNDsKKwl9CisKKwlyZXMgPSAwOwor b3V0X2ZyZWU6CisJa2ZyZWUoYnVmKTsKKworCXJldHVybiByZXM7Cit9CisKIHN0YXRpYyBpbnQg ZnR4X2dwaW9jb25mX2luaXQoc3RydWN0IHVzYl9zZXJpYWxfcG9ydCAqcG9ydCkKIHsKIAlzdHJ1 Y3QgZnRkaV9wcml2YXRlICpwcml2ID0gdXNiX2dldF9zZXJpYWxfcG9ydF9kYXRhKHBvcnQpOwpA QCAtMTk4MCw2ICsyMDI2LDkgQEAgc3RhdGljIGludCBmdGRpX3Npb19ncGlvX2luaXQoc3RydWN0 IHVzYl9zZXJpYWxfcG9ydCAqcG9ydCkKIAogCS8qIERldmljZS1zcGVjaWZpYyBpbml0aWFsaXph dGlvbnMgKi8KIAlzd2l0Y2ggKHByaXYtPmNoaXBfdHlwZSkgeworCWNhc2UgRlQyMzJSTDoKKwkJ cmVzdWx0ID0gZnRkaV9mdDIzMnJfZ3Bpb2NvbmZfaW5pdChwb3J0KTsKKwkJYnJlYWs7CiAJY2Fz ZSBGVFg6CiAJCXJlc3VsdCA9IGZ0eF9ncGlvY29uZl9pbml0KHBvcnQpOwogCQlicmVhazsKZGlm ZiAtLWdpdCBhL2RyaXZlcnMvdXNiL3NlcmlhbC9mdGRpX3Npby5oIGIvZHJpdmVycy91c2Ivc2Vy aWFsL2Z0ZGlfc2lvLmgKaW5kZXggNTA0NmQwMmZlM2FjLi5lZWQ3MjYwODM4MmIgMTAwNjQ0Ci0t LSBhL2RyaXZlcnMvdXNiL3NlcmlhbC9mdGRpX3Npby5oCisrKyBiL2RyaXZlcnMvdXNiL3Nlcmlh bC9mdGRpX3Npby5oCkBAIC00NTgsNiArNDU4LDcgQEAgZW51bSBmdGRpX3Npb19iYXVkcmF0ZSB7 CiAjZGVmaW5lIEZURElfU0lPX0dQSU9fTU9ERV9SRVNFVAkweDAwCiAKICNkZWZpbmUgRlRESV9T SU9fQ0JVU19NVVhfR1BJTwkJOAorI2RlZmluZSBGVERJX0ZUMjMyUl9DQlVTX01VWF9JT01PREUJ MHhhCiAKIAogLyogRGVzY3JpcHRvcnMgcmV0dXJuZWQgYnkgdGhlIGRldmljZQo=