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: [2/4] usb: dwc3: add dwc3 glue layer for UniPhier SoCs From: Kunihiko Hayashi Message-Id: <20180124215228.ED43.4A936039@socionext.com> Date: Wed, 24 Jan 2018 21:52:28 +0900 To: Felipe Balbi Cc: linux-usb@vger.kernel.org, Greg Kroah-Hartman , Masahiro Yamada , Rob Herring , Mark Rutland , devicetree@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, Jassi Brar , Masami Hiramatsu , Kishon Vijay Abraham I List-ID: SGVsbG8gRmVsaXBlLAoKVGhhbmsgeW91IGZvciB5b3VyIGNvbW1lbnRzLgoKT24gVHVlLCAyMyBK YW4gMjAxOCAxNToxMjozNiArMDIwMCA8YmFsYmlAa2VybmVsLm9yZz4gd3JvdGU6Cgo+IAo+IEhp LAo+IAo+IEt1bmloaWtvIEhheWFzaGkgPGhheWFzaGkua3VuaWhpa29Ac29jaW9uZXh0LmNvbT4g d3JpdGVzOgo+ID4gQWRkIGEgc3BlY2lmaWMgZ2x1ZSBsYXllciBmb3IgVW5pUGhpZXIgU29DIHBs YXRmb3JtIHRvIHN1cHBvcnQKPiA+IFVTQiBob3N0IG1vZGUuIEl0IG1hbmFnZXMgaGFyZHdhcmUg b3BlcmF0aW5nIHNlcXVlbmNlcyB0byBlbmFibGUgbXVsdGlwbGUKPiA+IGNsb2NrIGdhdGVzIGFu ZCBhc3NlcnQgcmVzZXRzLCBhbmQgdG8gcHJlcGFyZSB0byB1c2UgZHdjMyBjb250cm9sbGVyCj4g PiBvbiB0aGUgU29DLgo+ID4KPiA+IFRoaXMgcGF0Y2ggYWxzbyBoYW5kbGVzIHRoZSBwaHlzaWNh bCBsYXllciB0aGF0IGhhcyBzYW1lIHJlZ2lzdGVyIHNwYWNlCj4gPiBhcyB0aGUgZ2x1ZSBsYXll ciwgYmVjYXVzZSBpdCBuZWVkcyB0byBpbnRlZ3JhdGUgaW5pdGlhbHppYXRpb24gc2VxdWVuY2UK PiA+IGJldHdlZW4gZ2x1ZSBhbmQgcGh5Lgo+ID4KPiA+IEluIGNhc2Ugb2Ygc29tZSBTb0NzLCBz aW5jZSBzb21lIGluaXRpYWxpemF0aW9uIHZhbHVlcyBmb3IgUEhZIGFyZQo+ID4gaW5jbHVkZWQg aW4gbnZtZW0sIHRoaXMgcGF0Y2ggaW5jbHVkZXMgdGhlIHdheSB0byBnZXQgdGhlIHZhbHVlcyBm cm9tIG52bWVtLgo+ID4KPiA+IEl0IHN1cHBvcnRzIFBYczIgYW5kIExEMjAgU29Dcy4KPiA+Cj4g PiBTaWduZWQtb2ZmLWJ5OiBLdW5paGlrbyBIYXlhc2hpIDxoYXlhc2hpLmt1bmloaWtvQHNvY2lv bmV4dC5jb20+Cj4gPiBTaWduZWQtb2ZmLWJ5OiBNb3RveWEgVGFuaWdhd2EgPHRhbmlnYXdhLm1v dG95YUBzb2Npb25leHQuY29tPgo+ID4gU2lnbmVkLW9mZi1ieTogTWFzYW1pIEhpcmFtYXRzdSA8 bWFzYW1pLmhpcmFtYXRzdUBsaW5hcm8ub3JnPgo+ID4gLS0tCj4gPiAgZHJpdmVycy91c2IvZHdj My9LY29uZmlnICAgICAgICAgfCAgIDkgKwo+ID4gIGRyaXZlcnMvdXNiL2R3YzMvTWFrZWZpbGUg ICAgICAgIHwgICAxICsKPiA+ICBkcml2ZXJzL3VzYi9kd2MzL2R3YzMtdW5pcGhpZXIuYyB8IDU1 NCArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysKPiA+ICAzIGZpbGVzIGNo YW5nZWQsIDU2NCBpbnNlcnRpb25zKCspCj4gPiAgY3JlYXRlIG1vZGUgMTAwNjQ0IGRyaXZlcnMv dXNiL2R3YzMvZHdjMy11bmlwaGllci5jCgouLi5zbmlwLi4uCgo+ID4gKwo+ID4gK3N0YXRpYyB2 b2lkIGR3YzN1X3NzcGh5X3Rlc3Rpb193cml0ZShzdHJ1Y3QgZHdjM3VfcHJpdiAqcHJpdiwgaW50 IHBvcnQsCj4gPiArCQkJCSAgICAgdTMyIGRhdGEpCj4gCj4gYW55dGhpbmcgd2l0aCBzc2hwaHkg b3IgaHNwaHkgaW4gdGhlIG5hbWUgc2hvdWxkIHByb2JhYmx5IGJlIHBhcnQgb2YgYQo+IFBIWSBk cml2ZXIgdXNpbmcgZHJpdmVycy9waHkvIGZyYW1ld29yay4KCkkgY2FuIHRyeSB0byBzZXBhcmF0 ZSBwaHkgY29udHJvbCBmcm9tIHRoaXMgZHJpdmVyLgpIb3dldmVyLCBwaHkgcmVnaXN0ZXJzIGJl bG9uZ3MgdG8gImR3YzMtZ2x1ZSIgSU8gbWFwIGFyZWEgKDY1YjAwMDAwKSwKYW5kIHRoaXMgYXJl YSBhbHNvIGNvbnRhaW5zIGEgcmVzZXQgYml0IGZvciAiZHdjMy1jb3JlIiBoYXJkd2FyZS4KCkFs dGhvdWdoIHRoZSBwaHkgZHJpdmVyIGlzIGNhbGxlZCBmcm9tIGR3YzMtY29yZSBkcml2ZXIsCndl IG5lZWQgdG8gZGVhc3NlcnQgdGhlIHJlc2V0IGJpdCBiZWZvcmUgcHJvYmluZyBkd2MzLWNvcmUg ZHJpdmVyLgoKQXMgc2hvd24gbGF0ZXIsIEkgdGhpbmsgdGhhdCBpdCdzIGRpZmZpY3V0IHRvIGRl dGVybWluZSB0aGUgb3JkZXIgb2YKaW5pdGlhbGl6aW5nIHRoZSByZWdpc3RlcnMgaW4gdGhpcyBh cmVhLgoKPiA+ICtzdGF0aWMgdm9pZCBkd2MzdV92YnVzX2Rpc2FibGUoc3RydWN0IGR3YzN1X3By aXYgKnByaXYpCj4gPiArewo+ID4gKwlpbnQgaTsKPiA+ICsKPiA+ICsJZm9yIChpID0gMDsgaSA8 IHByaXYtPm52YnVzOyBpKyspIHsKPiA+ICsJCWR3YzN1X21hc2t3cml0ZShwcml2LCBWQlVTX0NP TlRST0woaSksCj4gPiArCQkJCURSVlZCVVNfUkVHX0VOIHwgRFJWVkJVU19SRUcsCj4gPiArCQkJ CURSVlZCVVNfUkVHX0VOIHwgMCk7Cj4gPiArCX0KPiA+ICt9Cj4gCj4gZHJpdmVycy9yZWd1bGF0 b3IgbWF5YmU/CgpWQlVTX0NPTlRST0wgcmVnaXN0ZXIgaXMgdXNlZCBmb3IgZGV0ZXJtaW5nIHdo ZXRoZXIgImR3YzMtZ2x1ZSIgaGFyZHdhcmUKZW5hYmxlcyB2YnVzIGNvbm5lY3RlZCB3aXRoICJy ZWd1bGF0b3IiIGhhcmR3YXJlLgoKVGhlIHJlZ3VsYXRvciBkcml2ZXIgc2hvdWxkIG1hbmFnZSAi cmVndWxhdG9yIiBoYXJkd2FyZSwgYW5kCkkgZG9uJ3QgdGhpbmsgdGhhdCB0aGUgZHJpdmVyIHNo b3VsZCBtYW5hZ2UgdGhpcyByZWdpc3Rlci4KCj4gPiArc3RhdGljIHZvaWQgZHdjM3VfcmVzZXRf aW5pdChzdHJ1Y3QgZHdjM3VfcHJpdiAqcHJpdikKPiA+ICt7Cj4gPiArCWR3YzN1X21hc2t3cml0 ZShwcml2LCBSRVNFVF9DVEwsIExJTktfUkVTRVQsIDApOwo+ID4gKwl1c2xlZXBfcmFuZ2UoMTAw MCwgMjAwMCk7Cj4gPiArCWR3YzN1X21hc2t3cml0ZShwcml2LCBSRVNFVF9DVEwsIExJTktfUkVT RVQsIExJTktfUkVTRVQpOwo+ID4gK30KPiA+ICsKPiA+ICtzdGF0aWMgdm9pZCBkd2MzdV9yZXNl dF9jbGVhcihzdHJ1Y3QgZHdjM3VfcHJpdiAqcHJpdikKPiA+ICt7Cj4gPiArCWR3YzN1X21hc2t3 cml0ZShwcml2LCBSRVNFVF9DVEwsIExJTktfUkVTRVQsIDApOwo+ID4gK30KPiAKPiBkcml2ZXJz L3Jlc2V0ID8KClRoZSByZXNldCBkcml2ZXIgbWFuYWdlcyAic3lzY3RybCIgSU8gbWFwIGFyZWEg aW4gb3VyIFNvQy4KClJFU0VUX0NUTCByZWdpc3RlciBiZWxvbmdzIHRvICJkd2MzLWdsdWUiIElP IG1hcCBhcmVhLAphbmQgdGhlIGtlcm5lbCBjYW4ndCBhY2Nlc3MgdGhpcyBhcmVhIHVudGlsIGVu YWJsaW5nIHVzYiBjbG9ja3MgYW5kCmRlYXNzZXJ0aW5nIHVzYiByZXNldHMgaW4gInN5c2N0cmwi LgoKSSB0aGluayB0aGF0ICJkd2MzLWdsdWUiIHJlZ2lzdGVyIGNvbnRyb2wgc2hvdWxkIGJlIHNl cGFyYXRlZCBmcm9tCiJzeXNjdHJsIi4KCj4gPiArc3RhdGljIGludCBkd2MzdV9wcm9iZShzdHJ1 Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KQo+ID4gK3sKPiA+ICsJc3RydWN0IGRldmljZSAqZGV2 ID0gJnBkZXYtPmRldjsKPiA+ICsJc3RydWN0IGRldmljZV9ub2RlICpub2RlOwo+ID4gKwlzdHJ1 Y3QgZHdjM3VfcHJpdiAqcHJpdjsKPiA+ICsJc3RydWN0IHJlc291cmNlCSpyZXM7Cj4gPiArCXN0 cnVjdCBjbGsgKmNsazsKPiA+ICsJaW50IGksIG5yX2Nsa3M7Cj4gPiArCWludCByZXQgPSAwOwo+ ID4gKwo+ID4gKwlwcml2ID0gZGV2bV9remFsbG9jKCZwZGV2LT5kZXYsIHNpemVvZigqcHJpdiks IEdGUF9LRVJORUwpOwo+ID4gKwlpZiAoIXByaXYpCj4gPiArCQlyZXR1cm4gLUVOT01FTTsKPiA+ ICsKPiA+ICsJcHJpdi0+ZGF0YSA9IG9mX2RldmljZV9nZXRfbWF0Y2hfZGF0YShkZXYpOwo+ID4g KwlpZiAoV0FSTl9PTighcHJpdi0+ZGF0YSkpCj4gPiArCQlyZXR1cm4gLUVJTlZBTDsKPiA+ICsK PiA+ICsJcmVzID0gcGxhdGZvcm1fZ2V0X3Jlc291cmNlKHBkZXYsIElPUkVTT1VSQ0VfTUVNLCAw KTsKPiA+ICsJcHJpdi0+YmFzZSA9IGRldm1faW9yZW1hcF9yZXNvdXJjZShkZXYsIHJlcyk7Cj4g PiArCWlmIChJU19FUlIocHJpdi0+YmFzZSkpCj4gPiArCQlyZXR1cm4gUFRSX0VSUihwcml2LT5i YXNlKTsKPiA+ICsKPiA+ICsJcHJpdi0+ZGV2ID0gZGV2Owo+ID4gKwo+ID4gKwlub2RlID0gZGV2 LT5vZl9ub2RlOwo+ID4gKwlucl9jbGtzID0gb2ZfY2xrX2dldF9wYXJlbnRfY291bnQobm9kZSk7 Cj4gPiArCWlmICghbnJfY2xrcykgewo+ID4gKwkJZGV2X2VycihkZXYsICJmYWlsZWQgdG8gZ2V0 IGNsb2NrIHByb3BlcnR5XG4iKTsKPiA+ICsJCXJldHVybiAtRU5PREVWOwo+ID4gKwl9Cj4gPiAr Cj4gPiArCXByaXYtPmNsa3MgPSBkZXZtX2tjYWxsb2MocHJpdi0+ZGV2LCBucl9jbGtzLCBzaXpl b2Yoc3RydWN0IGNsayAqKSwKPiA+ICsJCQkJICBHRlBfS0VSTkVMKTsKPiA+ICsJaWYgKCFwcml2 LT5jbGtzKQo+ID4gKwkJcmV0dXJuIC1FTk9NRU07Cj4gPiArCj4gPiArCWZvciAoaSA9IDA7IGkg PCBucl9jbGtzOyBpKyspIHsKPiA+ICsJCWNsayA9IG9mX2Nsa19nZXQobm9kZSwgaSk7Cj4gPiAr CQlpZiAoSVNfRVJSKGNsaykpIHsKPiA+ICsJCQlyZXQgPSBQVFJfRVJSKGNsayk7Cj4gPiArCQkJ Z290byBvdXRfY2xrX2Rpc2FibGU7Cj4gPiArCQl9Cj4gPiArCQlyZXQgPSBjbGtfcHJlcGFyZV9l bmFibGUoY2xrKTsKPiA+ICsJCWlmIChyZXQgPCAwKSB7Cj4gPiArCQkJY2xrX3B1dChjbGspOwo+ ID4gKwkJCWdvdG8gb3V0X2Nsa19kaXNhYmxlOwo+ID4gKwkJfQo+ID4gKwkJcHJpdi0+Y2xrc1tp XSA9IGNsazsKPiA+ICsJCXByaXYtPm5jbGtzID0gaTsKPiA+ICsJfQo+ID4gKwo+ID4gKwlwcml2 LT5yc3QgPSBkZXZtX3Jlc2V0X2NvbnRyb2xfYXJyYXlfZ2V0X29wdGlvbmFsX3NoYXJlZChwcml2 LT5kZXYpOwo+ID4gKwlpZiAoSVNfRVJSKHByaXYtPnJzdCkpIHsKPiA+ICsJCXJldCA9IFBUUl9F UlIocHJpdi0+cnN0KTsKPiA+ICsJCWdvdG8gb3V0X2Nsa19kaXNhYmxlOwo+ID4gKwl9Cj4gPiAr CXJldCA9IHJlc2V0X2NvbnRyb2xfZGVhc3NlcnQocHJpdi0+cnN0KTsKPiA+ICsJaWYgKHJldCkK PiA+ICsJCWdvdG8gb3V0X2Nsa19kaXNhYmxlOwo+ID4gKwo+ID4gKwlyZXQgPSBkd2MzdV9pbml0 KHByaXYpOwo+ID4gKwlpZiAocmV0KQo+ID4gKwkJZ290byBvdXRfcnN0X2Fzc2VydDsKPiA+ICsK PiA+ICsJcGxhdGZvcm1fc2V0X2RydmRhdGEocGRldiwgcHJpdik7Cj4gPiArCj4gPiArCXJldCA9 IG9mX3BsYXRmb3JtX3BvcHVsYXRlKG5vZGUsIE5VTEwsIE5VTEwsIHByaXYtPmRldik7Cj4gPiAr CWlmIChyZXQpCj4gPiArCQlnb3RvIG91dF9leGl0Owo+IAo+IHdpdGggdGhlIHN0dWZmIHRoYXQg c2hvdWxkIGJlIHVzaW5nIGdlbmVyaWMgZnJhbWV3b3JrcyByZW1vdmVkLCB0aGlzCj4gbG9va3Mg bGlrZSBkd2MzLW9mLXNpbXBsZS5jLCB3aGljaCB5b3Ugc2hvdWxkIGJlIHVzaW5nLgoKQmVmb3Jl IHByb2JpbmcgZHdjMy1jb3JlIGRyaXZlciBhbmQgYWNjZXNzaW5nICJkd2MzLWNvcmUiIHJlZ2lz dGVyLAp3ZSBuZWVkIHRvIGRvIHRoZSBmb2xsb3dpbmcgaXRlbXMgaW4gb3JkZXI6CgotIGVuYWJs ZSBjbG9jayBhbmQgZGVhc3NlcnQgcmVzZXRzIGluICJzeXNjdHJsIiB3aXRoIGNhbGxpbmcgdGhl CiAgY2xvY2svcmVzZXQgZHJpdmVyLCBzbyB0aGF0IHRoZSBrZXJuZWwgY2FuIGFjY2VzcyAiZHdj My1nbHVlIgogIElPIG1hcCBhcmVhLgoKLSBlbmFibGUgdmJ1cyBhbmQgc2V0dXAgcGh5IHdpdGgg dGhlICJkd2MzLWdsdWUiIHJlZ2lzdGVyLgoKLSBkZWFzc2VydCAiZHdjMy1jb3JlIiByZXNldCB3 aXRoIHRoZSAiZHdjMy1nbHVlIiByZWdpc3RlciwKICBzbyB0aGF0IHRoZSBrZXJuZWwgY2FuIGFj Y2VzcyAiZHdjMy1jb3JlIiBJTyBtYXAgYXJlYS4KClRoZSBkd2MzLW9mLXNpbXBsZSBkcml2ZXIg b25seSBlbmFibGVzIHRoZSBjbG9jayBkcml2ZXIgYmVmb3JlCnByb2JpbmcgZHdjMy1jb3JlIGRy aXZlciwgYW5kIGl0IHNlZW1zIHRoYXQgdGhlIGRyaXZlciBoYXZlIG5vIHdheXMKdG8gZGVhc3Nl cnQgdGhlIHJlc2V0IGRyaXZlciBhbmQgbWFuYWdlICJkd2MzLWdsdWUiIElPIG1hcCBhcmVhLgoK QXJlIHRoZXJlIGFueSB3YXlzIHRvIG1hbmFnZSB0aGVtIGJlZm9yZSBwcm9iaW5nIGR3YzMtY29y ZSBkcml2ZXI/CgpUaGFuayB5b3UsCi0tLQpCZXN0IFJlZ2FyZHMsCkt1bmloaWtvIEhheWFzaGkK Ci0tClRvIHVuc3Vic2NyaWJlIGZyb20gdGhpcyBsaXN0OiBzZW5kIHRoZSBsaW5lICJ1bnN1YnNj cmliZSBsaW51eC11c2IiIGluCnRoZSBib2R5IG9mIGEgbWVzc2FnZSB0byBtYWpvcmRvbW9Admdl ci5rZXJuZWwub3JnCk1vcmUgbWFqb3Jkb21vIGluZm8gYXQgIGh0dHA6Ly92Z2VyLmtlcm5lbC5v cmcvbWFqb3Jkb21vLWluZm8uaHRtbAo=