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: [PATCH/RFC,v4,2/4] usb: gadget: udc: renesas_usb3: Add register of usb role switch From: Yoshihiro Shimoda Message-Id: <1526990469-20739-3-git-send-email-yoshihiro.shimoda.uh@renesas.com> Date: Tue, 22 May 2018 21:01:07 +0900 To: gregkh@linuxfoundation.org, robh+dt@kernel.org, mark.rutland@arm.com Cc: heikki.krogerus@linux.intel.com, hdegoede@redhat.com, andy.shevchenko@gmail.com, linux-usb@vger.kernel.org, linux-renesas-soc@vger.kernel.org, devicetree@vger.kernel.org, Yoshihiro Shimoda List-ID: VGhpcyBwYXRjaCBhZGRzIHJvbGUgc3dpdGNoIHN1cHBvcnQgZm9yIFItQ2FyIFNvQ3MgaW50byB0 aGUgVVNCIDMuMApwZXJpcGhlcmFsIGRyaXZlci4gU29tZSBSLUNhciBTb0NzIChlLmcuIFItQ2Fy IEgzKSBoYXZlIFVTQiAzLjAKZHVhbC1yb2xlIGRldmljZSBjb250cm9sbGVyIHdoaWNoIGhhcyB0 aGUgVVNCIDMuMCB4SENJIGhvc3QgYW5kClJlbmVzYXMgVVNCIDMuMCBwZXJpcGhlcmFsLgoKVW5m b3J0dW5hdGVseSwgdGhlIG1vZGUgY2hhbmdlIHJlZ2lzdGVyIGNvbnRhaW5zIHRoZSBVU0IgMy4w IHBlcmlwaGVyYWwKY29udHJvbGxlciBzaWRlIG9ubHkuIFNvLCB0aGUgVVNCIDMuMCBwZXJpcGhl cmFsIGRyaXZlciAocmVuZXNhc191c2IzKQptYW5hZ2VzIHRoaXMgcmVnaXN0ZXIgbm93LiBIb3dl dmVyLCBpbiBwZXJpcGhlcmFsIG1vZGUsIHRoZSBob3N0CnNob3VsZCBzdG9wLiBBbHNvIHRoZSBo b3N0IGhhcmR3YXJlIG5lZWRzIHRvIHJlaW5pdGlhbGl6ZSBpdHMgb3duCnJlZ2lzdGVycyB3aGVu IHRoZSBtb2RlIGNoYW5nZXMgZnJvbSBwZXJpcGhlcmFsIHRvIGhvc3QgbW9kZS4KT3RoZXJ3aXNl LCB0aGUgaG9zdCBjYW5ub3Qgd29yayBjb3JyZWN0bHkgKGUuZy4gZGV0ZWN0IGEgZGV2aWNlIGFz CmhpZ2gtc3BlZWQpLgoKVG8gYWNoaWV2ZSB0aGlzIGJ5IGEgZHJpdmVyLCB0aGlzIHJvbGUgc3dp dGNoIGRyaXZlciBtYW5hZ2VzCnRoZSBtb2RlIGNoYW5nZSByZWdpc3RlciBhbmQgYXR0YWNoL3Jl bGVhc2UgdGhlIHhoY2ktcGxhdCBkcml2ZXIuCgpTaWduZWQtb2ZmLWJ5OiBZb3NoaWhpcm8gU2hp bW9kYSA8eW9zaGloaXJvLnNoaW1vZGEudWhAcmVuZXNhcy5jb20+Ci0tLQogLi4uL2RldmljZXRy ZWUvYmluZGluZ3MvdXNiL3JlbmVzYXNfdXNiMy50eHQgICAgICAgfCAxNSArKysrCiBkcml2ZXJz L3VzYi9nYWRnZXQvdWRjL0tjb25maWcgICAgICAgICAgICAgICAgICAgICB8ICAxICsKIGRyaXZl cnMvdXNiL2dhZGdldC91ZGMvcmVuZXNhc191c2IzLmMgICAgICAgICAgICAgIHwgODIgKysrKysr KysrKysrKysrKysrKysrKwogMyBmaWxlcyBjaGFuZ2VkLCA5OCBpbnNlcnRpb25zKCspCgpkaWZm IC0tZ2l0IGEvRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL3VzYi9yZW5lc2FzX3Vz YjMudHh0IGIvRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL3VzYi9yZW5lc2FzX3Vz YjMudHh0CmluZGV4IDJjMDcxYmI1Li5mNjEwNWFhIDEwMDY0NAotLS0gYS9Eb2N1bWVudGF0aW9u L2RldmljZXRyZWUvYmluZGluZ3MvdXNiL3JlbmVzYXNfdXNiMy50eHQKKysrIGIvRG9jdW1lbnRh dGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL3VzYi9yZW5lc2FzX3VzYjMudHh0CkBAIC0xOSw2ICsx OSw5IEBAIFJlcXVpcmVkIHByb3BlcnRpZXM6CiBPcHRpb25hbCBwcm9wZXJ0aWVzOgogICAtIHBo eXM6IHBoYW5kbGUgKyBwaHkgc3BlY2lmaWVyIHBhaXIKICAgLSBwaHktbmFtZXM6IG11c3QgYmUg InVzYiIKKyAgLSBUaGUgY29ubmVjdGlvbiB0byBhIHVzYjMuMCBob3N0IG5vZGUgbmVlZHMgYnkg dXNpbmcgT0YgZ3JhcGggYmluZGluZ3MgZm9yCisgICAgdXNiIHJvbGUgc3dpdGNoLgorICAgLSBw b3J0QDAgPSBVU0IzLjAgaG9zdCBwb3J0LgogCiBFeGFtcGxlIG9mIFItQ2FyIEgzIEVTMS54Ogog CXVzYjNfcGVyaTA6IHVzYkBlZTAyMDAwMCB7CkBAIC0yNyw2ICszMCwxMiBAQCBFeGFtcGxlIG9m IFItQ2FyIEgzIEVTMS54OgogCQlyZWcgPSA8MCAweGVlMDIwMDAwIDAgMHg0MDA+OwogCQlpbnRl cnJ1cHRzID0gPEdJQ19TUEkgMTA0IElSUV9UWVBFX0xFVkVMX0hJR0g+OwogCQljbG9ja3MgPSA8 JmNwZyBDUEdfTU9EIDMyOD47CisKKwkJcG9ydCB7CisJCQl1c2IzX3BlcmkwX2VwOiBlbmRwb2lu dCB7CisJCQkJcmVtb3RlLWVuZHBvaW50ID0gPCZ1c2IzX2hvc3QwX2VwPjsKKwkJCX07CisJCX07 CiAJfTsKIAogCXVzYjNfcGVyaTE6IHVzYkBlZTA2MDAwMCB7CkBAIC0zNSw0ICs0NCwxMCBAQCBF eGFtcGxlIG9mIFItQ2FyIEgzIEVTMS54OgogCQlyZWcgPSA8MCAweGVlMDYwMDAwIDAgMHg0MDA+ OwogCQlpbnRlcnJ1cHRzID0gPEdJQ19TUEkgMTAwIElSUV9UWVBFX0xFVkVMX0hJR0g+OwogCQlj bG9ja3MgPSA8JmNwZyBDUEdfTU9EIDMyNz47CisKKwkJcG9ydCB7CisJCQl1c2IzX3BlcmkxX2Vw OiBlbmRwb2ludCB7CisJCQkJcmVtb3RlLWVuZHBvaW50ID0gPCZ1c2IzX2hvc3QxX2VwPjsKKwkJ CX07CisJCX07CiAJfTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvdXNiL2dhZGdldC91ZGMvS2NvbmZp ZyBiL2RyaXZlcnMvdXNiL2dhZGdldC91ZGMvS2NvbmZpZwppbmRleCBiODM4Y2FlLi43ODgyM2Nk IDEwMDY0NAotLS0gYS9kcml2ZXJzL3VzYi9nYWRnZXQvdWRjL0tjb25maWcKKysrIGIvZHJpdmVy cy91c2IvZ2FkZ2V0L3VkYy9LY29uZmlnCkBAIC0xOTMsNiArMTkzLDcgQEAgY29uZmlnIFVTQl9S RU5FU0FTX1VTQjMKIAl0cmlzdGF0ZSAnUmVuZXNhcyBVU0IzLjAgUGVyaXBoZXJhbCBjb250cm9s bGVyJwogCWRlcGVuZHMgb24gQVJDSF9SRU5FU0FTIHx8IENPTVBJTEVfVEVTVAogCWRlcGVuZHMg b24gRVhUQ09OICYmIEhBU19ETUEKKwlzZWxlY3QgVVNCX1JPTEVfU1dJVENICiAJaGVscAogCSAg IFJlbmVzYXMgVVNCMy4wIFBlcmlwaGVyYWwgY29udHJvbGxlciBpcyBhIFVTQiBwZXJpcGhlcmFs IGNvbnRyb2xsZXIKIAkgICB0aGF0IHN1cHBvcnRzIHN1cGVyLCBoaWdoLCBhbmQgZnVsbCBzcGVl ZCBVU0IgMy4wIGRhdGEgdHJhbnNmZXJzLgpkaWZmIC0tZ2l0IGEvZHJpdmVycy91c2IvZ2FkZ2V0 L3VkYy9yZW5lc2FzX3VzYjMuYyBiL2RyaXZlcnMvdXNiL2dhZGdldC91ZGMvcmVuZXNhc191c2Iz LmMKaW5kZXggNWNhZjc4Yi4uOTY2N2E1ZSAxMDA2NDQKLS0tIGEvZHJpdmVycy91c2IvZ2FkZ2V0 L3VkYy9yZW5lc2FzX3VzYjMuYworKysgYi9kcml2ZXJzL3VzYi9nYWRnZXQvdWRjL3JlbmVzYXNf dXNiMy5jCkBAIC0yMyw2ICsyMyw3IEBACiAjaW5jbHVkZSA8bGludXgvdWFjY2Vzcy5oPgogI2lu Y2x1ZGUgPGxpbnV4L3VzYi9jaDkuaD4KICNpbmNsdWRlIDxsaW51eC91c2IvZ2FkZ2V0Lmg+Cisj aW5jbHVkZSA8bGludXgvdXNiL3JvbGUuaD4KIAogLyogcmVnaXN0ZXIgZGVmaW5pdGlvbnMgKi8K ICNkZWZpbmUgVVNCM19BWElfSU5UX1NUQQkweDAwOApAQCAtMzM1LDYgKzMzNiw5IEBAIHN0cnVj dCByZW5lc2FzX3VzYjMgewogCXN0cnVjdCBwaHkgKnBoeTsKIAlzdHJ1Y3QgZGVudHJ5ICpkZW50 cnk7CiAKKwlzdHJ1Y3QgdXNiX3JvbGVfc3dpdGNoICpyb2xlX3N3OworCXN0cnVjdCBkZXZpY2Ug Kmhvc3RfZGV2OworCiAJc3RydWN0IHJlbmVzYXNfdXNiM19lcCAqdXNiM19lcDsKIAlpbnQgbnVt X3VzYjNfZXBzOwogCkBAIC0yMzAyLDYgKzIzMDYsNDEgQEAgc3RhdGljIGludCByZW5lc2FzX3Vz YjNfc2V0X3NlbGZwb3dlcmVkKHN0cnVjdCB1c2JfZ2FkZ2V0ICpnYWRnZXQsIGludCBpc19zZWxm KQogCS5zZXRfc2VsZnBvd2VyZWQJPSByZW5lc2FzX3VzYjNfc2V0X3NlbGZwb3dlcmVkLAogfTsK IAorc3RhdGljIGVudW0gdXNiX3JvbGUgcmVuZXNhc191c2IzX3JvbGVfc3dpdGNoX2dldChzdHJ1 Y3QgZGV2aWNlICpkZXYpCit7CisJc3RydWN0IHJlbmVzYXNfdXNiMyAqdXNiMyA9IGRldl9nZXRf ZHJ2ZGF0YShkZXYpOworCWVudW0gdXNiX3JvbGUgY3VyX3JvbGU7CisKKwlwbV9ydW50aW1lX2dl dF9zeW5jKGRldik7CisJY3VyX3JvbGUgPSB1c2IzX2lzX2hvc3QodXNiMykgPyBVU0JfUk9MRV9I T1NUIDogVVNCX1JPTEVfREVWSUNFOworCXBtX3J1bnRpbWVfcHV0KGRldik7CisKKwlyZXR1cm4g Y3VyX3JvbGU7Cit9CisKK3N0YXRpYyBpbnQgcmVuZXNhc191c2IzX3JvbGVfc3dpdGNoX3NldChz dHJ1Y3QgZGV2aWNlICpkZXYsCisJCQkJCWVudW0gdXNiX3JvbGUgcm9sZSkKK3sKKwlzdHJ1Y3Qg cmVuZXNhc191c2IzICp1c2IzID0gZGV2X2dldF9kcnZkYXRhKGRldik7CisJc3RydWN0IGRldmlj ZSAqaG9zdCA9IHVzYjMtPmhvc3RfZGV2OworCWVudW0gdXNiX3JvbGUgY3VyX3JvbGUgPSByZW5l c2FzX3VzYjNfcm9sZV9zd2l0Y2hfZ2V0KGRldik7CisKKwlwbV9ydW50aW1lX2dldF9zeW5jKGRl dik7CisJaWYgKGN1cl9yb2xlID09IFVTQl9ST0xFX0hPU1QgJiYgcm9sZSA9PSBVU0JfUk9MRV9E RVZJQ0UpIHsKKwkJZGV2aWNlX3JlbGVhc2VfZHJpdmVyKGhvc3QpOworCQl1c2IzX3NldF9tb2Rl KHVzYjMsIGZhbHNlKTsKKwl9IGVsc2UgaWYgKGN1cl9yb2xlID09IFVTQl9ST0xFX0RFVklDRSAm JiByb2xlID09IFVTQl9ST0xFX0hPU1QpIHsKKwkJLyogTXVzdCBzZXQgdGhlIG1vZGUgYmVmb3Jl IGRldmljZV9hdHRhY2ggb2YgdGhlIGhvc3QgKi8KKwkJdXNiM19zZXRfbW9kZSh1c2IzLCB0cnVl KTsKKwkJLyogVGhpcyBkZXZpY2VfYXR0YWNoKCkgbWlnaHQgc2xlZXAgKi8KKwkJaWYgKGRldmlj ZV9hdHRhY2goaG9zdCkgPCAwKQorCQkJZGV2X2VycihkZXYsICJkZXZpY2VfYXR0YWNoKHVzYjNf cG9ydCkgZmFpbGVkXG4iKTsKKwl9CisJcG1fcnVudGltZV9wdXQoZGV2KTsKKworCXJldHVybiAw OworfQorCiBzdGF0aWMgc3NpemVfdCByb2xlX3N0b3JlKHN0cnVjdCBkZXZpY2UgKmRldiwgc3Ry dWN0IGRldmljZV9hdHRyaWJ1dGUgKmF0dHIsCiAJCQkgIGNvbnN0IGNoYXIgKmJ1Ziwgc2l6ZV90 IGNvdW50KQogewpAQCAtMjQxNyw2ICsyNDU2LDggQEAgc3RhdGljIGludCByZW5lc2FzX3VzYjNf cmVtb3ZlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpCiAJZGVidWdmc19yZW1vdmVfcmVj dXJzaXZlKHVzYjMtPmRlbnRyeSk7CiAJZGV2aWNlX3JlbW92ZV9maWxlKCZwZGV2LT5kZXYsICZk ZXZfYXR0cl9yb2xlKTsKIAorCXVzYl9yb2xlX3N3aXRjaF91bnJlZ2lzdGVyKHVzYjMtPnJvbGVf c3cpOworCiAJdXNiX2RlbF9nYWRnZXRfdWRjKCZ1c2IzLT5nYWRnZXQpOwogCXJlbmVzYXNfdXNi M19kbWFfZnJlZV9wcmQodXNiMywgJnBkZXYtPmRldik7CiAKQEAgLTI1NzMsNiArMjYxNCwzMyBA QCBzdGF0aWMgdm9pZCByZW5lc2FzX3VzYjNfaW5pdF9yYW0oc3RydWN0IHJlbmVzYXNfdXNiMyAq dXNiMywgc3RydWN0IGRldmljZSAqZGV2LAogCUVYVENPTl9OT05FLAogfTsKIAorc3RhdGljIGlu dCB1c2IzX2J1c19tYXRjaChzdHJ1Y3QgZGV2aWNlICpkZXYsIHZvaWQgKmZ3bm9kZSkKK3sKKwlp ZiAoZGV2LT5md25vZGUgIT0gZndub2RlKQorCQlyZXR1cm4gMDsKKworCXJldHVybiBvZl9kZXZp Y2VfaXNfY29tcGF0aWJsZShkZXYtPm9mX25vZGUsICJyZW5lc2FzLHJjYXItZ2VuMy14aGNpIik7 Cit9CisKK3N0YXRpYyB2b2lkICp1c2IzX3VzYl9yb2xlX21hdGNoKHN0cnVjdCBkZXZpY2VfY29u bmVjdGlvbiAqY29uLCBpbnQgZXAsCisJCQkJIHZvaWQgKmRhdGEpCit7CisJc3RydWN0IGRldmlj ZSAqZGV2OworCisJZGV2ID0gYnVzX2ZpbmRfZGV2aWNlKCZwbGF0Zm9ybV9idXNfdHlwZSwgTlVM TCwgY29uLT5md25vZGUsCisJCQkgICAgICB1c2IzX2J1c19tYXRjaCk7CisJaWYgKGRldikKKwkJ cmV0dXJuIGRldjsKKworCXJldHVybiBFUlJfUFRSKC1FUFJPQkVfREVGRVIpOworfQorCitzdGF0 aWMgc3RydWN0IHVzYl9yb2xlX3N3aXRjaF9kZXNjIHJlbmVzYXNfdXNiM19yb2xlX3N3aXRjaF9k ZXNjID0geworCS5zZXQgPSByZW5lc2FzX3VzYjNfcm9sZV9zd2l0Y2hfc2V0LAorCS5nZXQgPSBy ZW5lc2FzX3VzYjNfcm9sZV9zd2l0Y2hfZ2V0LAorCS5hbGxvd191c2Vyc3BhY2VfY29udHJvbCA9 IHRydWUsCit9OworCiBzdGF0aWMgaW50IHJlbmVzYXNfdXNiM19wcm9iZShzdHJ1Y3QgcGxhdGZv cm1fZGV2aWNlICpwZGV2KQogewogCXN0cnVjdCByZW5lc2FzX3VzYjMgKnVzYjM7CkBAIC0yNjU4 LDYgKzI3MjYsMjAgQEAgc3RhdGljIGludCByZW5lc2FzX3VzYjNfcHJvYmUoc3RydWN0IHBsYXRm b3JtX2RldmljZSAqcGRldikKIAlpZiAocmV0IDwgMCkKIAkJZ290byBlcnJfZGV2X2NyZWF0ZTsK IAorCXVzYjMtPnJvbGVfc3cgPSB1c2Jfcm9sZV9zd2l0Y2hfcmVnaXN0ZXIoJnBkZXYtPmRldiwK KwkJCQkJJnJlbmVzYXNfdXNiM19yb2xlX3N3aXRjaF9kZXNjKTsKKwlpZiAoIUlTX0VSUih1c2Iz LT5yb2xlX3N3KSkgeworCQl1c2IzLT5ob3N0X2RldiA9IGRldmljZV9jb25uZWN0aW9uX2ZpbmRf bWF0Y2goJnBkZXYtPmRldiwKKwkJCQkJTlVMTCwgTlVMTCwgdXNiM191c2Jfcm9sZV9tYXRjaCk7 CisJCWlmIChJU19FUlJfT1JfTlVMTCh1c2IzLT5ob3N0X2RldikpIHsKKwkJCS8qIElmIG5vdCBm b3VuZCwgdGhpcyBkcml2ZXIgd2lsbCBub3QgdXNlIGEgcm9sZSBzdyAqLworCQkJdXNiX3JvbGVf c3dpdGNoX3VucmVnaXN0ZXIodXNiMy0+cm9sZV9zdyk7CisJCQl1c2IzLT5yb2xlX3N3ID0gTlVM TDsKKwkJfQorCX0gZWxzZSB7CisJCXVzYjMtPnJvbGVfc3cgPSBOVUxMOworCX0KKwogCXVzYjMt Pndvcmthcm91bmRfZm9yX3ZidXMgPSBwcml2LT53b3JrYXJvdW5kX2Zvcl92YnVzOwogCiAJcmVu ZXNhc191c2IzX2RlYnVnZnNfaW5pdCh1c2IzLCAmcGRldi0+ZGV2KTsK