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: [v2,5/8] usb: ohci-da8xx: add vbus and overcurrent gpios From: Bartosz Golaszewski Message-Id: <20190211103702.4277-6-brgl@bgdev.pl> Date: Mon, 11 Feb 2019 11:36:59 +0100 To: Sekhar Nori , Kevin Hilman , Alan Stern , Greg Kroah-Hartman Cc: linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, linux-usb@vger.kernel.org, Linus Walleij , Bartosz Golaszewski List-ID: RnJvbTogQmFydG9zeiBHb2xhc3pld3NraSA8YmdvbGFzemV3c2tpQGJheWxpYnJlLmNvbT4KClRo ZXJlIGFyZSB0d28gdXNlcnMgdXBzdHJlYW0gd2hpY2ggcmVnaXN0ZXIgZXh0ZXJuYWwgY2FsbGJh Y2tzIGZvcgpzd2l0Y2hpbmcgdGhlIHBvcnQgcG93ZXIgb24vb2ZmIGFuZCBvdmVyY3VycmVudCBw cm90ZWN0aW9uLiBCb3RoCnVzZXJzIG9ubHkgdXNlIHR3byBHUElPcyBmb3IgdGhhdC4gSW5zdGVh ZCBvZiBoYXZpbmcgdGhhdCBmdW5jdGlvbmFsaXR5CmluIHRoZSBib2FyZCBmaWxlcywgbW92ZSB0 aGUgbG9naWMgaW50byB0aGUgT0hDSSBkcml2ZXIgLSBpbmNsdWRpbmcKdGhlIGludGVycnVwdCBo YW5kbGVyIGZvciBvdmVyY3VycmVudCBkZXRlY3Rpb24uCgpTaWduZWQtb2ZmLWJ5OiBCYXJ0b3N6 IEdvbGFzemV3c2tpIDxiZ29sYXN6ZXdza2lAYmF5bGlicmUuY29tPgpBY2tlZC1ieTogQWxhbiBT dGVybiA8c3Rlcm5Acm93bGFuZC5oYXJ2YXJkLmVkdT4KLS0tCiBkcml2ZXJzL3VzYi9ob3N0L29o Y2ktZGE4eHguYyB8IDk5ICsrKysrKysrKysrKysrKysrKy0tLS0tLS0tLS0tLS0tLS0tCiAxIGZp bGUgY2hhbmdlZCwgNTAgaW5zZXJ0aW9ucygrKSwgNDkgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0 IGEvZHJpdmVycy91c2IvaG9zdC9vaGNpLWRhOHh4LmMgYi9kcml2ZXJzL3VzYi9ob3N0L29oY2kt ZGE4eHguYwppbmRleCBlOGVkZTBiNWUzZjAuLjgwYzIzMzA3ZmJmZSAxMDA2NDQKLS0tIGEvZHJp dmVycy91c2IvaG9zdC9vaGNpLWRhOHh4LmMKKysrIGIvZHJpdmVycy91c2IvaG9zdC9vaGNpLWRh OHh4LmMKQEAgLTEyLDYgKzEyLDcgQEAKICNpbmNsdWRlIDxsaW51eC9pby5oPgogI2luY2x1ZGUg PGxpbnV4L2ludGVycnVwdC5oPgogI2luY2x1ZGUgPGxpbnV4L2ppZmZpZXMuaD4KKyNpbmNsdWRl IDxsaW51eC9ncGlvL2NvbnN1bWVyLmg+CiAjaW5jbHVkZSA8bGludXgva2VybmVsLmg+CiAjaW5j bHVkZSA8bGludXgvbW9kdWxlLmg+CiAjaW5jbHVkZSA8bGludXgvcGxhdGZvcm1fZGV2aWNlLmg+ CkBAIC00MCw2ICs0MSw4IEBAIHN0cnVjdCBkYTh4eF9vaGNpX2hjZCB7CiAJc3RydWN0IHJlZ3Vs YXRvciAqdmJ1c19yZWc7CiAJc3RydWN0IG5vdGlmaWVyX2Jsb2NrIG5iOwogCXVuc2lnbmVkIGlu dCByZWdfZW5hYmxlZDsKKwlzdHJ1Y3QgZ3Bpb19kZXNjICp2YnVzX2dwaW87CisJc3RydWN0IGdw aW9fZGVzYyAqb2NfZ3BpbzsKIH07CiAKICNkZWZpbmUgdG9fZGE4eHhfb2hjaShoY2QpIChzdHJ1 Y3QgZGE4eHhfb2hjaV9oY2QgKikoaGNkX3RvX29oY2koaGNkKS0+cHJpdikKQEAgLTg2LDEyICs4 OSwxMyBAQCBzdGF0aWMgdm9pZCBvaGNpX2RhOHh4X2Rpc2FibGUoc3RydWN0IHVzYl9oY2QgKmhj ZCkKIHN0YXRpYyBpbnQgb2hjaV9kYTh4eF9zZXRfcG93ZXIoc3RydWN0IHVzYl9oY2QgKmhjZCwg aW50IG9uKQogewogCXN0cnVjdCBkYTh4eF9vaGNpX2hjZCAqZGE4eHhfb2hjaSA9IHRvX2RhOHh4 X29oY2koaGNkKTsKLQlzdHJ1Y3QgZGV2aWNlICpkZXYJCT0gaGNkLT5zZWxmLmNvbnRyb2xsZXI7 Ci0Jc3RydWN0IGRhOHh4X29oY2lfcm9vdF9odWIgKmh1Ygk9IGRldl9nZXRfcGxhdGRhdGEoZGV2 KTsKKwlzdHJ1Y3QgZGV2aWNlICpkZXYgPSBoY2QtPnNlbGYuY29udHJvbGxlcjsKIAlpbnQgcmV0 OwogCi0JaWYgKGh1YiAmJiBodWItPnNldF9wb3dlcikKLQkJcmV0dXJuIGh1Yi0+c2V0X3Bvd2Vy KDEsIG9uKTsKKwlpZiAoZGE4eHhfb2hjaS0+dmJ1c19ncGlvKSB7CisJCWdwaW9kX3NldF92YWx1 ZV9jYW5zbGVlcChkYTh4eF9vaGNpLT52YnVzX2dwaW8sIG9uKTsKKwkJcmV0dXJuIDA7CisJfQog CiAJaWYgKCFkYTh4eF9vaGNpLT52YnVzX3JlZykKIAkJcmV0dXJuIDA7CkBAIC0xMTksMTEgKzEy Myw5IEBAIHN0YXRpYyBpbnQgb2hjaV9kYTh4eF9zZXRfcG93ZXIoc3RydWN0IHVzYl9oY2QgKmhj ZCwgaW50IG9uKQogc3RhdGljIGludCBvaGNpX2RhOHh4X2dldF9wb3dlcihzdHJ1Y3QgdXNiX2hj ZCAqaGNkKQogewogCXN0cnVjdCBkYTh4eF9vaGNpX2hjZCAqZGE4eHhfb2hjaSA9IHRvX2RhOHh4 X29oY2koaGNkKTsKLQlzdHJ1Y3QgZGV2aWNlICpkZXYJCT0gaGNkLT5zZWxmLmNvbnRyb2xsZXI7 Ci0Jc3RydWN0IGRhOHh4X29oY2lfcm9vdF9odWIgKmh1Ygk9IGRldl9nZXRfcGxhdGRhdGEoZGV2 KTsKIAotCWlmIChodWIgJiYgaHViLT5nZXRfcG93ZXIpCi0JCXJldHVybiBodWItPmdldF9wb3dl cigxKTsKKwlpZiAoZGE4eHhfb2hjaS0+dmJ1c19ncGlvKQorCQlyZXR1cm4gZ3Bpb2RfZ2V0X3Zh bHVlX2NhbnNsZWVwKGRhOHh4X29oY2ktPnZidXNfZ3Bpbyk7CiAKIAlpZiAoZGE4eHhfb2hjaS0+ dmJ1c19yZWcpCiAJCXJldHVybiByZWd1bGF0b3JfaXNfZW5hYmxlZChkYTh4eF9vaGNpLT52YnVz X3JlZyk7CkBAIC0xMzQsMTMgKzEzNiwxMSBAQCBzdGF0aWMgaW50IG9oY2lfZGE4eHhfZ2V0X3Bv d2VyKHN0cnVjdCB1c2JfaGNkICpoY2QpCiBzdGF0aWMgaW50IG9oY2lfZGE4eHhfZ2V0X29jaShz dHJ1Y3QgdXNiX2hjZCAqaGNkKQogewogCXN0cnVjdCBkYTh4eF9vaGNpX2hjZCAqZGE4eHhfb2hj aSA9IHRvX2RhOHh4X29oY2koaGNkKTsKLQlzdHJ1Y3QgZGV2aWNlICpkZXYJCT0gaGNkLT5zZWxm LmNvbnRyb2xsZXI7Ci0Jc3RydWN0IGRhOHh4X29oY2lfcm9vdF9odWIgKmh1Ygk9IGRldl9nZXRf cGxhdGRhdGEoZGV2KTsKIAl1bnNpZ25lZCBpbnQgZmxhZ3M7CiAJaW50IHJldDsKIAotCWlmICho dWIgJiYgaHViLT5nZXRfb2NpKQotCQlyZXR1cm4gaHViLT5nZXRfb2NpKDEpOworCWlmIChkYTh4 eF9vaGNpLT5vY19ncGlvKQorCQlyZXR1cm4gZ3Bpb2RfZ2V0X3ZhbHVlX2NhbnNsZWVwKGRhOHh4 X29oY2ktPm9jX2dwaW8pOwogCiAJaWYgKCFkYTh4eF9vaGNpLT52YnVzX3JlZykKIAkJcmV0dXJu IDA7CkBAIC0xNTgsMTAgKzE1OCw4IEBAIHN0YXRpYyBpbnQgb2hjaV9kYTh4eF9nZXRfb2NpKHN0 cnVjdCB1c2JfaGNkICpoY2QpCiBzdGF0aWMgaW50IG9oY2lfZGE4eHhfaGFzX3NldF9wb3dlcihz dHJ1Y3QgdXNiX2hjZCAqaGNkKQogewogCXN0cnVjdCBkYTh4eF9vaGNpX2hjZCAqZGE4eHhfb2hj aSA9IHRvX2RhOHh4X29oY2koaGNkKTsKLQlzdHJ1Y3QgZGV2aWNlICpkZXYJCT0gaGNkLT5zZWxm LmNvbnRyb2xsZXI7Ci0Jc3RydWN0IGRhOHh4X29oY2lfcm9vdF9odWIgKmh1Ygk9IGRldl9nZXRf cGxhdGRhdGEoZGV2KTsKIAotCWlmIChodWIgJiYgaHViLT5zZXRfcG93ZXIpCisJaWYgKGRhOHh4 X29oY2ktPnZidXNfZ3BpbykKIAkJcmV0dXJuIDE7CiAKIAlpZiAoZGE4eHhfb2hjaS0+dmJ1c19y ZWcpCkBAIC0xNzMsMTAgKzE3MSw4IEBAIHN0YXRpYyBpbnQgb2hjaV9kYTh4eF9oYXNfc2V0X3Bv d2VyKHN0cnVjdCB1c2JfaGNkICpoY2QpCiBzdGF0aWMgaW50IG9oY2lfZGE4eHhfaGFzX29jaShz dHJ1Y3QgdXNiX2hjZCAqaGNkKQogewogCXN0cnVjdCBkYTh4eF9vaGNpX2hjZCAqZGE4eHhfb2hj aSA9IHRvX2RhOHh4X29oY2koaGNkKTsKLQlzdHJ1Y3QgZGV2aWNlICpkZXYJCT0gaGNkLT5zZWxm LmNvbnRyb2xsZXI7Ci0Jc3RydWN0IGRhOHh4X29oY2lfcm9vdF9odWIgKmh1Ygk9IGRldl9nZXRf cGxhdGRhdGEoZGV2KTsKIAotCWlmIChodWIgJiYgaHViLT5nZXRfb2NpKQorCWlmIChkYTh4eF9v aGNpLT5vY19ncGlvKQogCQlyZXR1cm4gMTsKIAogCWlmIChkYTh4eF9vaGNpLT52YnVzX3JlZykK QEAgLTE5NiwxOSArMTkyLDYgQEAgc3RhdGljIGludCBvaGNpX2RhOHh4X2hhc19wb3RwZ3Qoc3Ry dWN0IHVzYl9oY2QgKmhjZCkKIAlyZXR1cm4gMDsKIH0KIAotLyoKLSAqIEhhbmRsZSB0aGUgcG9y dCBvdmVyLWN1cnJlbnQgaW5kaWNhdG9yIGNoYW5nZS4KLSAqLwotc3RhdGljIHZvaWQgb2hjaV9k YTh4eF9vY2ljX2hhbmRsZXIoc3RydWN0IGRhOHh4X29oY2lfcm9vdF9odWIgKmh1YiwKLQkJCQkg ICAgdW5zaWduZWQgcG9ydCkKLXsKLQlvY2ljX21hc2sgfD0gMSA8PCBwb3J0OwotCi0JLyogT25j ZSBvdmVyLWN1cnJlbnQgaXMgZGV0ZWN0ZWQsIHRoZSBwb3J0IG5lZWRzIHRvIGJlIHBvd2VyZWQg ZG93biAqLwotCWlmIChodWItPmdldF9vY2kocG9ydCkgPiAwKQotCQlodWItPnNldF9wb3dlcihw b3J0LCAwKTsKLX0KLQogc3RhdGljIGludCBvaGNpX2RhOHh4X3JlZ3VsYXRvcl9ldmVudChzdHJ1 Y3Qgbm90aWZpZXJfYmxvY2sgKm5iLAogCQkJCXVuc2lnbmVkIGxvbmcgZXZlbnQsIHZvaWQgKmRh dGEpCiB7CkBAIC0yMjMsMTYgKzIwNiwyMyBAQCBzdGF0aWMgaW50IG9oY2lfZGE4eHhfcmVndWxh dG9yX2V2ZW50KHN0cnVjdCBub3RpZmllcl9ibG9jayAqbmIsCiAJcmV0dXJuIDA7CiB9CiAKK3N0 YXRpYyBpcnFyZXR1cm5fdCBvaGNpX2RhOHh4X29jX2hhbmRsZXIoaW50IGlycSwgdm9pZCAqZGF0 YSkKK3sKKwlzdHJ1Y3QgZGE4eHhfb2hjaV9oY2QgKmRhOHh4X29oY2kgPSBkYXRhOworCisJaWYg KGdwaW9kX2dldF92YWx1ZShkYTh4eF9vaGNpLT5vY19ncGlvKSkKKwkJZ3Bpb2Rfc2V0X3ZhbHVl KGRhOHh4X29oY2ktPnZidXNfZ3BpbywgMCk7CisKKwlyZXR1cm4gSVJRX0hBTkRMRUQ7Cit9CisK IHN0YXRpYyBpbnQgb2hjaV9kYTh4eF9yZWdpc3Rlcl9ub3RpZnkoc3RydWN0IHVzYl9oY2QgKmhj ZCkKIHsKIAlzdHJ1Y3QgZGE4eHhfb2hjaV9oY2QgKmRhOHh4X29oY2kgPSB0b19kYTh4eF9vaGNp KGhjZCk7CiAJc3RydWN0IGRldmljZSAqZGV2CQk9IGhjZC0+c2VsZi5jb250cm9sbGVyOwotCXN0 cnVjdCBkYTh4eF9vaGNpX3Jvb3RfaHViICpodWIJPSBkZXZfZ2V0X3BsYXRkYXRhKGRldik7CiAJ aW50IHJldCA9IDA7CiAKLQlpZiAoaHViICYmIGh1Yi0+b2NpY19ub3RpZnkpIHsKLQkJcmV0ID0g aHViLT5vY2ljX25vdGlmeShvaGNpX2RhOHh4X29jaWNfaGFuZGxlcik7Ci0JfSBlbHNlIGlmIChk YTh4eF9vaGNpLT52YnVzX3JlZykgeworCWlmICghZGE4eHhfb2hjaS0+b2NfZ3BpbyAmJiBkYTh4 eF9vaGNpLT52YnVzX3JlZykgewogCQlkYTh4eF9vaGNpLT5uYi5ub3RpZmllcl9jYWxsID0gb2hj aV9kYTh4eF9yZWd1bGF0b3JfZXZlbnQ7CiAJCXJldCA9IGRldm1fcmVndWxhdG9yX3JlZ2lzdGVy X25vdGlmaWVyKGRhOHh4X29oY2ktPnZidXNfcmVnLAogCQkJCQkJJmRhOHh4X29oY2ktPm5iKTsK QEAgLTI0NCwxNSArMjM0LDYgQEAgc3RhdGljIGludCBvaGNpX2RhOHh4X3JlZ2lzdGVyX25vdGlm eShzdHJ1Y3QgdXNiX2hjZCAqaGNkKQogCXJldHVybiByZXQ7CiB9CiAKLXN0YXRpYyB2b2lkIG9o Y2lfZGE4eHhfdW5yZWdpc3Rlcl9ub3RpZnkoc3RydWN0IHVzYl9oY2QgKmhjZCkKLXsKLQlzdHJ1 Y3QgZGV2aWNlICpkZXYJCT0gaGNkLT5zZWxmLmNvbnRyb2xsZXI7Ci0Jc3RydWN0IGRhOHh4X29o Y2lfcm9vdF9odWIgKmh1Ygk9IGRldl9nZXRfcGxhdGRhdGEoZGV2KTsKLQotCWlmIChodWIgJiYg aHViLT5vY2ljX25vdGlmeSkKLQkJaHViLT5vY2ljX25vdGlmeShOVUxMKTsKLX0KLQogc3RhdGlj IGludCBvaGNpX2RhOHh4X3Jlc2V0KHN0cnVjdCB1c2JfaGNkICpoY2QpCiB7CiAJc3RydWN0IGRl dmljZSAqZGV2CQk9IGhjZC0+c2VsZi5jb250cm9sbGVyOwpAQCAtNDAzLDkgKzM4NCw5IEBAIHN0 YXRpYyBpbnQgb2hjaV9kYTh4eF9wcm9iZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KQog ewogCXN0cnVjdCBkYTh4eF9vaGNpX2hjZCAqZGE4eHhfb2hjaTsKIAlzdHJ1Y3QgZGV2aWNlICpk ZXYgPSAmcGRldi0+ZGV2OworCWludCBlcnJvciwgaGNkX2lycSwgb2NfaXJxOwogCXN0cnVjdCB1 c2JfaGNkCSpoY2Q7CiAJc3RydWN0IHJlc291cmNlICptZW07Ci0JaW50IGVycm9yLCBpcnE7CiAK IAloY2QgPSB1c2JfY3JlYXRlX2hjZCgmb2hjaV9kYTh4eF9oY19kcml2ZXIsIGRldiwgZGV2X25h bWUoZGV2KSk7CiAJaWYgKCFoY2QpCkBAIC00NDMsNiArNDI0LDI3IEBAIHN0YXRpYyBpbnQgb2hj aV9kYTh4eF9wcm9iZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KQogCQl9CiAJfQogCisJ ZGE4eHhfb2hjaS0+dmJ1c19ncGlvID0gZGV2bV9ncGlvZF9nZXRfb3B0aW9uYWwoZGV2LCAidmJ1 cyIsCisJCQkJCQkJR1BJT0RfT1VUX0hJR0gpOworCWlmIChJU19FUlIoZGE4eHhfb2hjaS0+dmJ1 c19ncGlvKSkKKwkJZ290byBlcnI7CisKKwlkYTh4eF9vaGNpLT5vY19ncGlvID0gZGV2bV9ncGlv ZF9nZXRfb3B0aW9uYWwoZGV2LCAib2MiLCBHUElPRF9JTik7CisJaWYgKElTX0VSUihkYTh4eF9v aGNpLT5vY19ncGlvKSkKKwkJZ290byBlcnI7CisKKwlpZiAoZGE4eHhfb2hjaS0+b2NfZ3Bpbykg eworCQlvY19pcnEgPSBncGlvZF90b19pcnEoZGE4eHhfb2hjaS0+b2NfZ3Bpbyk7CisJCWlmIChv Y19pcnEgPCAwKQorCQkJZ290byBlcnI7CisKKwkJZXJyb3IgPSBkZXZtX3JlcXVlc3RfaXJxKGRl diwgb2NfaXJxLCBvaGNpX2RhOHh4X29jX2hhbmRsZXIsCisJCQkJSVJRRl9UUklHR0VSX1JJU0lO RyB8IElSUUZfVFJJR0dFUl9GQUxMSU5HLAorCQkJCSJPSENJIG92ZXItY3VycmVudCBpbmRpY2F0 b3IiLCBkYTh4eF9vaGNpKTsKKwkJaWYgKGVycm9yKQorCQkJZ290byBlcnI7CisJfQorCiAJbWVt ID0gcGxhdGZvcm1fZ2V0X3Jlc291cmNlKHBkZXYsIElPUkVTT1VSQ0VfTUVNLCAwKTsKIAloY2Qt PnJlZ3MgPSBkZXZtX2lvcmVtYXBfcmVzb3VyY2UoZGV2LCBtZW0pOwogCWlmIChJU19FUlIoaGNk LT5yZWdzKSkgewpAQCAtNDUyLDEzICs0NTQsMTMgQEAgc3RhdGljIGludCBvaGNpX2RhOHh4X3By b2JlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpCiAJaGNkLT5yc3JjX3N0YXJ0ID0gbWVt LT5zdGFydDsKIAloY2QtPnJzcmNfbGVuID0gcmVzb3VyY2Vfc2l6ZShtZW0pOwogCi0JaXJxID0g cGxhdGZvcm1fZ2V0X2lycShwZGV2LCAwKTsKLQlpZiAoaXJxIDwgMCkgeworCWhjZF9pcnEgPSBw bGF0Zm9ybV9nZXRfaXJxKHBkZXYsIDApOworCWlmIChoY2RfaXJxIDwgMCkgewogCQllcnJvciA9 IC1FTk9ERVY7CiAJCWdvdG8gZXJyOwogCX0KIAotCWVycm9yID0gdXNiX2FkZF9oY2QoaGNkLCBp cnEsIDApOworCWVycm9yID0gdXNiX2FkZF9oY2QoaGNkLCBoY2RfaXJxLCAwKTsKIAlpZiAoZXJy b3IpCiAJCWdvdG8gZXJyOwogCkBAIC00ODEsNyArNDgzLDYgQEAgc3RhdGljIGludCBvaGNpX2Rh OHh4X3JlbW92ZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KQogewogCXN0cnVjdCB1c2Jf aGNkCSpoY2QgPSBwbGF0Zm9ybV9nZXRfZHJ2ZGF0YShwZGV2KTsKIAotCW9oY2lfZGE4eHhfdW5y ZWdpc3Rlcl9ub3RpZnkoaGNkKTsKIAl1c2JfcmVtb3ZlX2hjZChoY2QpOwogCXVzYl9wdXRfaGNk KGhjZCk7CiAK