From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Google-Smtp-Source: AG47ELu5ZhU97NbypdmVgPSN/CFO6g5mBRtEzS1y30uZC+M3GL/CoU+oXJpSNovhDFs3ohRnaaxZ ARC-Seal: i=1; a=rsa-sha256; t=1519894210; cv=none; d=google.com; s=arc-20160816; b=y7dYga+JafrG/qG7HnTLMuhY1HeO88Sj2cFz6vBTFvesZco1KhM8ajv952paBHw9hb opfb9i5I239CaBcOB+b8TkooFqNOO/7tMNWkC79Iv+46ExxfP+OrJT0zVbj8lfhrn2Z3 9gMiW90SxYFXfdEtvum0JSzp4uiaXXFmNCPzWBBVBcJFKymlMbn7aSeZQZcvLGzXCBjZ 16xxw2XyCFIYkhM4HE3Vy303F1A3wEtbhFIaKalbSF2RpmchX44BHHH5y5s/JRkLZqvF DZYUNENveesbBle7dJM84MpOhbT2NqoYtOJr2mvfFFiKvnwA+BUeFXUu7IfV0CEG4Cy/ Tizw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=mime-version:content-transfer-encoding:content-id:user-agent :content-language:accept-language:in-reply-to:references:message-id :date:thread-index:thread-topic:subject:cc:to:from :arc-authentication-results; bh=snCbtVXPcBOB0tYOOrRu2xPkQz0ImCjdyTJmJhI0JTo=; b=voc7TfbL5ZTTlVLVawbd2EB+UAB6cf64Kl9GZkawPndMfZOfMtVJGqzmcySs5b2K0W j6IwtUAgo0Ia7ajGGbU0rF9/KG5r3eMkfOM8b/+Hbb8rY1HVKnkOgpOlPcttf2jKXd4A 7n7leCy3lrkmqZDeRI5LKoXfOda3FKJBTo1LiAfJhlYcbNC8txEy3mMO/jCT71+FOTvq dbzfowfkaQ3aySg1y+4UZVIWpuaO4BIhJQdx9iKlk77v+NwoLc5TBxI0WPP5v7g4HK/P YmZDSfyfUc8vqMU/YkXtYtCoa5F3ll0YtBL01KeEC4qhLRpgWAeXpo1E4AZ7SxRrnUSw J1rQ== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: domain of amelie.delaunay@st.com designates 91.207.212.93 as permitted sender) smtp.mailfrom=amelie.delaunay@st.com Authentication-Results: mx.google.com; spf=pass (google.com: domain of amelie.delaunay@st.com designates 91.207.212.93 as permitted sender) smtp.mailfrom=amelie.delaunay@st.com From: Amelie DELAUNAY To: Robin Murphy , Greg Kroah-Hartman , Rob Herring , Mark Rutland , Tony Prisk , Alan Stern , Roger Quadros , Felipe Balbi CC: "devicetree@vger.kernel.org" , "linux-usb@vger.kernel.org" , "linux-kernel@vger.kernel.org" , "linux-arm-kernel@lists.infradead.org" Subject: Re: [PATCH v3] usb: host: ehci-platform: add support for optional external vbus supply Thread-Topic: [PATCH v3] usb: host: ehci-platform: add support for optional external vbus supply Thread-Index: AQHTrKzCYZNUhtND20uatt24NbM7OqO5x2kAgAFDBwA= Date: Thu, 1 Mar 2018 08:49:59 +0000 Message-ID: <8655fa87-1403-21b9-1aea-69b0f21fbcea@st.com> References: <1519393611-31367-1-git-send-email-amelie.delaunay@st.com> In-Reply-To: Accept-Language: fr-FR, en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: user-agent: Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101 Thunderbird/52.6.0 x-ms-exchange-messagesentrepresentingtype: 1 x-ms-exchange-transport-fromentityheader: Hosted x-originating-ip: [10.75.127.48] Content-Type: text/plain; charset="utf-8" Content-ID: <7E31B96F4DDB00498E5F1A59BB672C00@st.com> Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10432:,, definitions=2018-03-01_04:,, signatures=0 X-getmail-retrieved-from-mailbox: INBOX X-GMAIL-THRID: =?utf-8?q?1592910586052663664?= X-GMAIL-MSGID: =?utf-8?q?1593724590826135467?= X-Mailing-List: linux-kernel@vger.kernel.org List-ID: SGkgUm9iaW4sDQoNCk9uIDAyLzI4LzIwMTggMDI6MzMgUE0sIFJvYmluIE11cnBoeSB3cm90ZToN Cj4gSGkgQW1lbGllLA0KPiANCj4gSnVzdCBhIGNvdXBsZSBvZiBkcml2ZS1ieSBjb2Rpbmcgc3R5 bGUgY29tbWVudHMuLi4NCj4gDQo+IE9uIDIzLzAyLzE4IDEzOjQ2LCBBbWVsaWUgRGVsYXVuYXkg d3JvdGU6DQo+PiBPbiBzb21lIGJvYXJkcywgZXNwZWNpYWxseSB3aGVuIHZidXMgc3VwcGx5IHJl cXVpcmVzIGxhcmdlIGN1cnJlbnQsDQo+PiBhbmQgdGhlIGNoYXJnZSBwdW1wIG9uIHRoZSBQSFkg aXNuJ3QgZW5vdWdoLCBhbiBleHRlcm5hbCB2YnVzIHBvd2VyIHN3aXRjaA0KPj4gbWF5IGJlIHVz ZWQuDQo+PiBBZGQgc3VwcG9ydCBmb3Igb3B0aW9uYWwgZXh0ZXJuYWwgdmJ1cyBzdXBwbHkgcGVy IHBvcnQgaW4gZWhjaS1wbGF0Zm9ybS4NCj4+DQo+PiBTaWduZWQtb2ZmLWJ5OiBBbWVsaWUgRGVs YXVuYXkgPGFtZWxpZS5kZWxhdW5heUBzdC5jb20+DQo+Pg0KPj4gLS0tDQo+PiBDaGFuZ2VzIGlu IHYzOg0KPj4gICAgKiBBZGRyZXNzIEZlbGlwZSBCYWxiaSBjb21tZW50czogcmVkdWNlIGluZGVu dGF0aW9uIGluDQo+PiAgICAgIGVoY2lfcGxhdGZvcm1fcG9ydF9wb3dlci4NCj4+ICAgICogQWRk cmVzcyBSb2dlciBRdWFkcm9zIGFuZCBBbGFuIFN0ZXJuIGNvbW1lbnRzOiBwbGF0Zm9ybXMgY2Fu IGhhdmUgb25lDQo+PiAgICAgIGV4dGVybmFsIHZidXMgc3VwcGx5IHBlciBwb3J0LCBzbyBhZGQg c3VwcG9ydCB0byBnZXQgYXMgbWFueSBvcHRpb25hbA0KPj4gICAgICByZWd1bGF0b3IgYXMgaW1w bGVtZW50ZWQgcG9ydHMgb24gdGhlIGhvc3QgY29udHJvbGxlci4NCj4+DQo+PiBDaGFuZ2VzIGlu IHYyOg0KPj4gICAgKiBBZGRyZXNzIFJvZ2VyIFF1YWRyb3MgY29tbWVudHM6IG1vdmUgcmVndWxh dG9yX2VuYWJsZS9kaXNhYmxlIGZyb20NCj4+ICAgICAgZWhjaV9wbGF0Zm9ybV9wb3dlcl9vbi9v ZmYgdG8gZWhjaV9wbGF0Zm9ybV9wb3J0X3Bvd2VyLg0KPj4gLS0tDQo+PiAgICBEb2N1bWVudGF0 aW9uL2RldmljZXRyZWUvYmluZGluZ3MvdXNiL3VzYi1laGNpLnR4dCB8ICAxICsNCj4+ICAgIGRy aXZlcnMvdXNiL2hvc3QvZWhjaS1wbGF0Zm9ybS5jICAgICAgICAgICAgICAgICAgIHwgNTIgKysr KysrKysrKysrKysrKysrKysrLQ0KPj4gICAgMiBmaWxlcyBjaGFuZ2VkLCA1MiBpbnNlcnRpb25z KCspLCAxIGRlbGV0aW9uKC0pDQo+Pg0KPj4gZGlmZiAtLWdpdCBhL0RvY3VtZW50YXRpb24vZGV2 aWNldHJlZS9iaW5kaW5ncy91c2IvdXNiLWVoY2kudHh0IGIvRG9jdW1lbnRhdGlvbi9kZXZpY2V0 cmVlL2JpbmRpbmdzL3VzYi91c2ItZWhjaS50eHQNCj4+IGluZGV4IDNlZmRlMTIuLmNkNTc2ZGIg MTAwNjQ0DQo+PiAtLS0gYS9Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvdXNiL3Vz Yi1laGNpLnR4dA0KPj4gKysrIGIvRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL3Vz Yi91c2ItZWhjaS50eHQNCj4+IEBAIC0xOSw2ICsxOSw3IEBAIE9wdGlvbmFsIHByb3BlcnRpZXM6 DQo+PiAgICAgLSBwaHlzIDogcGhhbmRsZSArIHBoeSBzcGVjaWZpZXIgcGFpcg0KPj4gICAgIC0g cGh5LW5hbWVzIDogInVzYiINCj4+ICAgICAtIHJlc2V0cyA6IHBoYW5kbGUgKyByZXNldCBzcGVj aWZpZXIgcGFpcg0KPj4gKyAtIHBvcnROX3ZidXMtc3VwcGx5IDogcGhhbmRsZSBvZiByZWd1bGF0 b3Igc3VwcGx5aW5nIHZidXMgZm9yIHBvcnQgTg0KPj4gICAgDQo+PiAgICBFeGFtcGxlIChTZXF1 b2lhIDQ0MEVQeCk6DQo+PiAgICAgICAgZWhjaUBlMDAwMDMwMCB7DQo+PiBkaWZmIC0tZ2l0IGEv ZHJpdmVycy91c2IvaG9zdC9laGNpLXBsYXRmb3JtLmMgYi9kcml2ZXJzL3VzYi9ob3N0L2VoY2kt cGxhdGZvcm0uYw0KPj4gaW5kZXggYjA2NWE5Ni4uOGU5ZjIwMSAxMDA2NDQNCj4+IC0tLSBhL2Ry aXZlcnMvdXNiL2hvc3QvZWhjaS1wbGF0Zm9ybS5jDQo+PiArKysgYi9kcml2ZXJzL3VzYi9ob3N0 L2VoY2ktcGxhdGZvcm0uYw0KPj4gQEAgLTI5LDYgKzI5LDcgQEANCj4+ICAgICNpbmNsdWRlIDxs aW51eC9vZi5oPg0KPj4gICAgI2luY2x1ZGUgPGxpbnV4L3BoeS9waHkuaD4NCj4+ICAgICNpbmNs dWRlIDxsaW51eC9wbGF0Zm9ybV9kZXZpY2UuaD4NCj4+ICsjaW5jbHVkZSA8bGludXgvcmVndWxh dG9yL2NvbnN1bWVyLmg+DQo+PiAgICAjaW5jbHVkZSA8bGludXgvcmVzZXQuaD4NCj4+ICAgICNp bmNsdWRlIDxsaW51eC91c2IuaD4NCj4+ICAgICNpbmNsdWRlIDxsaW51eC91c2IvaGNkLmg+DQo+ PiBAQCAtNDYsNiArNDcsNyBAQCBzdHJ1Y3QgZWhjaV9wbGF0Zm9ybV9wcml2IHsNCj4+ICAgIAlz dHJ1Y3QgcmVzZXRfY29udHJvbCAqcnN0czsNCj4+ICAgIAlzdHJ1Y3QgcGh5ICoqcGh5czsNCj4+ ICAgIAlpbnQgbnVtX3BoeXM7DQo+PiArCXN0cnVjdCByZWd1bGF0b3IgKip2YnVzX3N1cHBsaWVz Ow0KPj4gICAgCWJvb2wgcmVzZXRfb25fcmVzdW1lOw0KPj4gICAgfTsNCj4+ICAgIA0KPj4gQEAg LTU2LDcgKzU4LDggQEAgc3RhdGljIGludCBlaGNpX3BsYXRmb3JtX3Jlc2V0KHN0cnVjdCB1c2Jf aGNkICpoY2QpDQo+PiAgICAJc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldiA9IHRvX3BsYXRm b3JtX2RldmljZShoY2QtPnNlbGYuY29udHJvbGxlcik7DQo+PiAgICAJc3RydWN0IHVzYl9laGNp X3BkYXRhICpwZGF0YSA9IGRldl9nZXRfcGxhdGRhdGEoJnBkZXYtPmRldik7DQo+PiAgICAJc3Ry dWN0IGVoY2lfaGNkICplaGNpID0gaGNkX3RvX2VoY2koaGNkKTsNCj4+IC0JaW50IHJldHZhbDsN Cj4+ICsJc3RydWN0IGVoY2lfcGxhdGZvcm1fcHJpdiAqcHJpdiA9IGhjZF90b19laGNpX3ByaXYo aGNkKTsNCj4+ICsJaW50IHBvcnRudW0sIG5fcG9ydHMsIHJldHZhbDsNCj4+ICAgIA0KPj4gICAg CWVoY2ktPmhhc19zeW5vcHN5c19oY19idWcgPSBwZGF0YS0+aGFzX3N5bm9wc3lzX2hjX2J1ZzsN Cj4+ICAgIA0KPj4gQEAgLTcxLDExICs3NCw1NyBAQCBzdGF0aWMgaW50IGVoY2lfcGxhdGZvcm1f cmVzZXQoc3RydWN0IHVzYl9oY2QgKmhjZCkNCj4+ICAgIAlpZiAocmV0dmFsKQ0KPj4gICAgCQly ZXR1cm4gcmV0dmFsOw0KPj4gICAgDQo+PiArCW5fcG9ydHMgPSBIQ1NfTl9QT1JUUyhlaGNpLT5o Y3NfcGFyYW1zKTsNCj4+ICsJcHJpdi0+dmJ1c19zdXBwbGllcyA9IGRldm1fa2NhbGxvYygmcGRl di0+ZGV2LCBuX3BvcnRzLA0KPj4gKwkJCQkJICAgc2l6ZW9mKHN0cnVjdCByZWd1bGF0b3IgKiks DQo+IA0KPiBVc2luZyAic2l6ZW9mKCpwcml2LT52YnVzX3N1cHBsaWVzKSIgaGVyZSB3aWxsIHBy ZXZlbnQgcGVvcGxlIHNlbmRpbmcNCj4gYW5ub3lpbmcgY2xlYW51cCBwYXRjaGVzIGxhdGVyLg0K PiANCg0KT0ssIEkgd2lsbCBmaXggaXQgaW4gdjQuDQoNCj4+ICsJCQkJCSAgIEdGUF9LRVJORUwp Ow0KPj4gKwlpZiAoIXByaXYtPnZidXNfc3VwcGxpZXMpDQo+PiArCQlyZXR1cm4gLUVOT01FTTsN Cj4+ICsNCj4+ICsJZm9yIChwb3J0bnVtID0gMDsgcG9ydG51bSA8IG5fcG9ydHM7IHBvcnRudW0r Kykgew0KPj4gKwkJc3RydWN0IHJlZ3VsYXRvciAqdmJ1c19zdXBwbHk7DQo+PiArCQljaGFyIGlk WzIwXTsNCj4+ICsNCj4+ICsJCXNwcmludGYoaWQsICJwb3J0JWRfdmJ1cyIsIHBvcnRudW0pOw0K Pj4gKw0KPj4gKwkJdmJ1c19zdXBwbHkgPSBkZXZtX3JlZ3VsYXRvcl9nZXRfb3B0aW9uYWwoJnBk ZXYtPmRldiwgaWQpOw0KPj4gKwkJaWYgKElTX0VSUih2YnVzX3N1cHBseSkpIHsNCj4+ICsJCQly ZXR2YWwgPSBQVFJfRVJSKHZidXNfc3VwcGx5KTsNCj4+ICsJCQlpZiAocmV0dmFsID09IC1FTk9E RVYpDQo+PiArCQkJCXByaXYtPnZidXNfc3VwcGxpZXNbcG9ydG51bV0gPSBOVUxMOw0KPiANCj4g VGhlIGFycmF5IGVsZW1lbnQgaGVyZSBoYXNuJ3QgeWV0IGJlZW4gYXNzaWduZWQgdG8gc2luY2Ug a2NhbGxvYygpDQo+IGluaXRpYWxseSB6ZXJvZWQgaXQsIHNvIHRoaXMgaXMgZW50aXJlbHkgcmVk dW5kYW50IC0geW91IGNhbiBzaW1wbHkgbWFrZQ0KPiB0aGUgY29tcGFyaXNvbiBhICIhPSIgYW5k IHJlbW92ZSB0aGUgImVsc2UiIGNhc2UuDQo+IA0KPiBSb2Jpbi4NCj4gDQoNClRoYW5rcyBmb3Ig c3BvdHRpbmcgdGhpcyEgRml4IGluIHY0Lg0KDQpBbWVsaWUNCg0KPj4gKwkJCWVsc2UNCj4+ICsJ CQkJcmV0dXJuIHJldHZhbDsNCj4+ICsJCX0gZWxzZSB7DQo+PiArCQkJcHJpdi0+dmJ1c19zdXBw bGllc1twb3J0bnVtXSA9IHZidXNfc3VwcGx5Ow0KPj4gKwkJfQ0KPj4gKwl9DQo+PiArDQo+PiAg ICAJaWYgKHBkYXRhLT5ub19pb193YXRjaGRvZykNCj4+ICAgIAkJZWhjaS0+bmVlZF9pb193YXRj aGRvZyA9IDA7DQo+PiAgICAJcmV0dXJuIDA7DQo+PiAgICB9DQo+PiAgICANCj4+ICtzdGF0aWMg aW50IGVoY2lfcGxhdGZvcm1fcG9ydF9wb3dlcihzdHJ1Y3QgdXNiX2hjZCAqaGNkLCBpbnQgcG9y dG51bSwNCj4+ICsJCQkJICAgIGJvb2wgZW5hYmxlKQ0KPj4gK3sNCj4+ICsJc3RydWN0IGVoY2lf cGxhdGZvcm1fcHJpdiAqcHJpdiA9IGhjZF90b19laGNpX3ByaXYoaGNkKTsNCj4+ICsJaW50IHJl dDsNCj4+ICsNCj4+ICsJaWYgKCFwcml2LT52YnVzX3N1cHBsaWVzW3BvcnRudW1dKQ0KPj4gKwkJ cmV0dXJuIDA7DQo+PiArDQo+PiArCWlmIChlbmFibGUpDQo+PiArCQlyZXQgPSByZWd1bGF0b3Jf ZW5hYmxlKHByaXYtPnZidXNfc3VwcGxpZXNbcG9ydG51bV0pOw0KPj4gKwllbHNlDQo+PiArCQly ZXQgPSByZWd1bGF0b3JfZGlzYWJsZShwcml2LT52YnVzX3N1cHBsaWVzW3BvcnRudW1dKTsNCj4+ ICsJaWYgKHJldCkNCj4+ICsJCWRldl9lcnIoaGNkLT5zZWxmLmNvbnRyb2xsZXIsDQo+PiArCQkJ ImZhaWxlZCB0byAlcyB2YnVzIHN1cHBseSBmb3IgcG9ydCAlZDogJWRcbiIsDQo+PiArCQkJZW5h YmxlID8gImVuYWJsZSIgOiAiZGlzYWJsZSIsIHBvcnRudW0sIHJldCk7DQo+PiArDQo+PiArCXJl dHVybiByZXQ7DQo+PiArfQ0KPj4gKw0KPj4gICAgc3RhdGljIGludCBlaGNpX3BsYXRmb3JtX3Bv d2VyX29uKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKmRldikNCj4+ICAgIHsNCj4+ICAgIAlzdHJ1 Y3QgdXNiX2hjZCAqaGNkID0gcGxhdGZvcm1fZ2V0X2RydmRhdGEoZGV2KTsNCj4+IEBAIC0xMzQs NiArMTgzLDcgQEAgc3RhdGljIHN0cnVjdCBoY19kcml2ZXIgX19yZWFkX21vc3RseSBlaGNpX3Bs YXRmb3JtX2hjX2RyaXZlcjsNCj4+ICAgIHN0YXRpYyBjb25zdCBzdHJ1Y3QgZWhjaV9kcml2ZXJf b3ZlcnJpZGVzIHBsYXRmb3JtX292ZXJyaWRlcyBfX2luaXRjb25zdCA9IHsNCj4+ICAgIAkucmVz ZXQgPQkJZWhjaV9wbGF0Zm9ybV9yZXNldCwNCj4+ICAgIAkuZXh0cmFfcHJpdl9zaXplID0Jc2l6 ZW9mKHN0cnVjdCBlaGNpX3BsYXRmb3JtX3ByaXYpLA0KPj4gKwkucG9ydF9wb3dlciA9CQllaGNp X3BsYXRmb3JtX3BvcnRfcG93ZXIsDQo+PiAgICB9Ow0KPj4gICAgDQo+PiAgICBzdGF0aWMgc3Ry dWN0IHVzYl9laGNpX3BkYXRhIGVoY2lfcGxhdGZvcm1fZGVmYXVsdHMgPSB7DQo+Pg== 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: [v3] usb: host: ehci-platform: add support for optional external vbus supply From: Amelie Delaunay Message-Id: <8655fa87-1403-21b9-1aea-69b0f21fbcea@st.com> Date: Thu, 1 Mar 2018 08:49:59 +0000 To: Robin Murphy , Greg Kroah-Hartman , Rob Herring , Mark Rutland , Tony Prisk , Alan Stern , Roger Quadros , Felipe Balbi Cc: "devicetree@vger.kernel.org" , "linux-usb@vger.kernel.org" , "linux-kernel@vger.kernel.org" , "linux-arm-kernel@lists.infradead.org" List-ID: SGkgUm9iaW4sDQoNCk9uIDAyLzI4LzIwMTggMDI6MzMgUE0sIFJvYmluIE11cnBoeSB3cm90ZToN Cj4gSGkgQW1lbGllLA0KPiANCj4gSnVzdCBhIGNvdXBsZSBvZiBkcml2ZS1ieSBjb2Rpbmcgc3R5 bGUgY29tbWVudHMuLi4NCj4gDQo+IE9uIDIzLzAyLzE4IDEzOjQ2LCBBbWVsaWUgRGVsYXVuYXkg d3JvdGU6DQo+PiBPbiBzb21lIGJvYXJkcywgZXNwZWNpYWxseSB3aGVuIHZidXMgc3VwcGx5IHJl cXVpcmVzIGxhcmdlIGN1cnJlbnQsDQo+PiBhbmQgdGhlIGNoYXJnZSBwdW1wIG9uIHRoZSBQSFkg aXNuJ3QgZW5vdWdoLCBhbiBleHRlcm5hbCB2YnVzIHBvd2VyIHN3aXRjaA0KPj4gbWF5IGJlIHVz ZWQuDQo+PiBBZGQgc3VwcG9ydCBmb3Igb3B0aW9uYWwgZXh0ZXJuYWwgdmJ1cyBzdXBwbHkgcGVy IHBvcnQgaW4gZWhjaS1wbGF0Zm9ybS4NCj4+DQo+PiBTaWduZWQtb2ZmLWJ5OiBBbWVsaWUgRGVs YXVuYXkgPGFtZWxpZS5kZWxhdW5heUBzdC5jb20+DQo+Pg0KPj4gLS0tDQo+PiBDaGFuZ2VzIGlu IHYzOg0KPj4gICAgKiBBZGRyZXNzIEZlbGlwZSBCYWxiaSBjb21tZW50czogcmVkdWNlIGluZGVu dGF0aW9uIGluDQo+PiAgICAgIGVoY2lfcGxhdGZvcm1fcG9ydF9wb3dlci4NCj4+ICAgICogQWRk cmVzcyBSb2dlciBRdWFkcm9zIGFuZCBBbGFuIFN0ZXJuIGNvbW1lbnRzOiBwbGF0Zm9ybXMgY2Fu IGhhdmUgb25lDQo+PiAgICAgIGV4dGVybmFsIHZidXMgc3VwcGx5IHBlciBwb3J0LCBzbyBhZGQg c3VwcG9ydCB0byBnZXQgYXMgbWFueSBvcHRpb25hbA0KPj4gICAgICByZWd1bGF0b3IgYXMgaW1w bGVtZW50ZWQgcG9ydHMgb24gdGhlIGhvc3QgY29udHJvbGxlci4NCj4+DQo+PiBDaGFuZ2VzIGlu IHYyOg0KPj4gICAgKiBBZGRyZXNzIFJvZ2VyIFF1YWRyb3MgY29tbWVudHM6IG1vdmUgcmVndWxh dG9yX2VuYWJsZS9kaXNhYmxlIGZyb20NCj4+ICAgICAgZWhjaV9wbGF0Zm9ybV9wb3dlcl9vbi9v ZmYgdG8gZWhjaV9wbGF0Zm9ybV9wb3J0X3Bvd2VyLg0KPj4gLS0tDQo+PiAgICBEb2N1bWVudGF0 aW9uL2RldmljZXRyZWUvYmluZGluZ3MvdXNiL3VzYi1laGNpLnR4dCB8ICAxICsNCj4+ICAgIGRy aXZlcnMvdXNiL2hvc3QvZWhjaS1wbGF0Zm9ybS5jICAgICAgICAgICAgICAgICAgIHwgNTIgKysr KysrKysrKysrKysrKysrKysrLQ0KPj4gICAgMiBmaWxlcyBjaGFuZ2VkLCA1MiBpbnNlcnRpb25z KCspLCAxIGRlbGV0aW9uKC0pDQo+Pg0KPj4gZGlmZiAtLWdpdCBhL0RvY3VtZW50YXRpb24vZGV2 aWNldHJlZS9iaW5kaW5ncy91c2IvdXNiLWVoY2kudHh0IGIvRG9jdW1lbnRhdGlvbi9kZXZpY2V0 cmVlL2JpbmRpbmdzL3VzYi91c2ItZWhjaS50eHQNCj4+IGluZGV4IDNlZmRlMTIuLmNkNTc2ZGIg MTAwNjQ0DQo+PiAtLS0gYS9Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvdXNiL3Vz Yi1laGNpLnR4dA0KPj4gKysrIGIvRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL3Vz Yi91c2ItZWhjaS50eHQNCj4+IEBAIC0xOSw2ICsxOSw3IEBAIE9wdGlvbmFsIHByb3BlcnRpZXM6 DQo+PiAgICAgLSBwaHlzIDogcGhhbmRsZSArIHBoeSBzcGVjaWZpZXIgcGFpcg0KPj4gICAgIC0g cGh5LW5hbWVzIDogInVzYiINCj4+ICAgICAtIHJlc2V0cyA6IHBoYW5kbGUgKyByZXNldCBzcGVj aWZpZXIgcGFpcg0KPj4gKyAtIHBvcnROX3ZidXMtc3VwcGx5IDogcGhhbmRsZSBvZiByZWd1bGF0 b3Igc3VwcGx5aW5nIHZidXMgZm9yIHBvcnQgTg0KPj4gICAgDQo+PiAgICBFeGFtcGxlIChTZXF1 b2lhIDQ0MEVQeCk6DQo+PiAgICAgICAgZWhjaUBlMDAwMDMwMCB7DQo+PiBkaWZmIC0tZ2l0IGEv ZHJpdmVycy91c2IvaG9zdC9laGNpLXBsYXRmb3JtLmMgYi9kcml2ZXJzL3VzYi9ob3N0L2VoY2kt cGxhdGZvcm0uYw0KPj4gaW5kZXggYjA2NWE5Ni4uOGU5ZjIwMSAxMDA2NDQNCj4+IC0tLSBhL2Ry aXZlcnMvdXNiL2hvc3QvZWhjaS1wbGF0Zm9ybS5jDQo+PiArKysgYi9kcml2ZXJzL3VzYi9ob3N0 L2VoY2ktcGxhdGZvcm0uYw0KPj4gQEAgLTI5LDYgKzI5LDcgQEANCj4+ICAgICNpbmNsdWRlIDxs aW51eC9vZi5oPg0KPj4gICAgI2luY2x1ZGUgPGxpbnV4L3BoeS9waHkuaD4NCj4+ICAgICNpbmNs dWRlIDxsaW51eC9wbGF0Zm9ybV9kZXZpY2UuaD4NCj4+ICsjaW5jbHVkZSA8bGludXgvcmVndWxh dG9yL2NvbnN1bWVyLmg+DQo+PiAgICAjaW5jbHVkZSA8bGludXgvcmVzZXQuaD4NCj4+ICAgICNp bmNsdWRlIDxsaW51eC91c2IuaD4NCj4+ICAgICNpbmNsdWRlIDxsaW51eC91c2IvaGNkLmg+DQo+ PiBAQCAtNDYsNiArNDcsNyBAQCBzdHJ1Y3QgZWhjaV9wbGF0Zm9ybV9wcml2IHsNCj4+ICAgIAlz dHJ1Y3QgcmVzZXRfY29udHJvbCAqcnN0czsNCj4+ICAgIAlzdHJ1Y3QgcGh5ICoqcGh5czsNCj4+ ICAgIAlpbnQgbnVtX3BoeXM7DQo+PiArCXN0cnVjdCByZWd1bGF0b3IgKip2YnVzX3N1cHBsaWVz Ow0KPj4gICAgCWJvb2wgcmVzZXRfb25fcmVzdW1lOw0KPj4gICAgfTsNCj4+ICAgIA0KPj4gQEAg LTU2LDcgKzU4LDggQEAgc3RhdGljIGludCBlaGNpX3BsYXRmb3JtX3Jlc2V0KHN0cnVjdCB1c2Jf aGNkICpoY2QpDQo+PiAgICAJc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldiA9IHRvX3BsYXRm b3JtX2RldmljZShoY2QtPnNlbGYuY29udHJvbGxlcik7DQo+PiAgICAJc3RydWN0IHVzYl9laGNp X3BkYXRhICpwZGF0YSA9IGRldl9nZXRfcGxhdGRhdGEoJnBkZXYtPmRldik7DQo+PiAgICAJc3Ry dWN0IGVoY2lfaGNkICplaGNpID0gaGNkX3RvX2VoY2koaGNkKTsNCj4+IC0JaW50IHJldHZhbDsN Cj4+ICsJc3RydWN0IGVoY2lfcGxhdGZvcm1fcHJpdiAqcHJpdiA9IGhjZF90b19laGNpX3ByaXYo aGNkKTsNCj4+ICsJaW50IHBvcnRudW0sIG5fcG9ydHMsIHJldHZhbDsNCj4+ICAgIA0KPj4gICAg CWVoY2ktPmhhc19zeW5vcHN5c19oY19idWcgPSBwZGF0YS0+aGFzX3N5bm9wc3lzX2hjX2J1ZzsN Cj4+ICAgIA0KPj4gQEAgLTcxLDExICs3NCw1NyBAQCBzdGF0aWMgaW50IGVoY2lfcGxhdGZvcm1f cmVzZXQoc3RydWN0IHVzYl9oY2QgKmhjZCkNCj4+ICAgIAlpZiAocmV0dmFsKQ0KPj4gICAgCQly ZXR1cm4gcmV0dmFsOw0KPj4gICAgDQo+PiArCW5fcG9ydHMgPSBIQ1NfTl9QT1JUUyhlaGNpLT5o Y3NfcGFyYW1zKTsNCj4+ICsJcHJpdi0+dmJ1c19zdXBwbGllcyA9IGRldm1fa2NhbGxvYygmcGRl di0+ZGV2LCBuX3BvcnRzLA0KPj4gKwkJCQkJICAgc2l6ZW9mKHN0cnVjdCByZWd1bGF0b3IgKiks DQo+IA0KPiBVc2luZyAic2l6ZW9mKCpwcml2LT52YnVzX3N1cHBsaWVzKSIgaGVyZSB3aWxsIHBy ZXZlbnQgcGVvcGxlIHNlbmRpbmcNCj4gYW5ub3lpbmcgY2xlYW51cCBwYXRjaGVzIGxhdGVyLg0K PiANCg0KT0ssIEkgd2lsbCBmaXggaXQgaW4gdjQuDQoNCj4+ICsJCQkJCSAgIEdGUF9LRVJORUwp Ow0KPj4gKwlpZiAoIXByaXYtPnZidXNfc3VwcGxpZXMpDQo+PiArCQlyZXR1cm4gLUVOT01FTTsN Cj4+ICsNCj4+ICsJZm9yIChwb3J0bnVtID0gMDsgcG9ydG51bSA8IG5fcG9ydHM7IHBvcnRudW0r Kykgew0KPj4gKwkJc3RydWN0IHJlZ3VsYXRvciAqdmJ1c19zdXBwbHk7DQo+PiArCQljaGFyIGlk WzIwXTsNCj4+ICsNCj4+ICsJCXNwcmludGYoaWQsICJwb3J0JWRfdmJ1cyIsIHBvcnRudW0pOw0K Pj4gKw0KPj4gKwkJdmJ1c19zdXBwbHkgPSBkZXZtX3JlZ3VsYXRvcl9nZXRfb3B0aW9uYWwoJnBk ZXYtPmRldiwgaWQpOw0KPj4gKwkJaWYgKElTX0VSUih2YnVzX3N1cHBseSkpIHsNCj4+ICsJCQly ZXR2YWwgPSBQVFJfRVJSKHZidXNfc3VwcGx5KTsNCj4+ICsJCQlpZiAocmV0dmFsID09IC1FTk9E RVYpDQo+PiArCQkJCXByaXYtPnZidXNfc3VwcGxpZXNbcG9ydG51bV0gPSBOVUxMOw0KPiANCj4g VGhlIGFycmF5IGVsZW1lbnQgaGVyZSBoYXNuJ3QgeWV0IGJlZW4gYXNzaWduZWQgdG8gc2luY2Ug a2NhbGxvYygpDQo+IGluaXRpYWxseSB6ZXJvZWQgaXQsIHNvIHRoaXMgaXMgZW50aXJlbHkgcmVk dW5kYW50IC0geW91IGNhbiBzaW1wbHkgbWFrZQ0KPiB0aGUgY29tcGFyaXNvbiBhICIhPSIgYW5k IHJlbW92ZSB0aGUgImVsc2UiIGNhc2UuDQo+IA0KPiBSb2Jpbi4NCj4gDQoNClRoYW5rcyBmb3Ig c3BvdHRpbmcgdGhpcyEgRml4IGluIHY0Lg0KDQpBbWVsaWUNCg0KPj4gKwkJCWVsc2UNCj4+ICsJ CQkJcmV0dXJuIHJldHZhbDsNCj4+ICsJCX0gZWxzZSB7DQo+PiArCQkJcHJpdi0+dmJ1c19zdXBw bGllc1twb3J0bnVtXSA9IHZidXNfc3VwcGx5Ow0KPj4gKwkJfQ0KPj4gKwl9DQo+PiArDQo+PiAg ICAJaWYgKHBkYXRhLT5ub19pb193YXRjaGRvZykNCj4+ICAgIAkJZWhjaS0+bmVlZF9pb193YXRj aGRvZyA9IDA7DQo+PiAgICAJcmV0dXJuIDA7DQo+PiAgICB9DQo+PiAgICANCj4+ICtzdGF0aWMg aW50IGVoY2lfcGxhdGZvcm1fcG9ydF9wb3dlcihzdHJ1Y3QgdXNiX2hjZCAqaGNkLCBpbnQgcG9y dG51bSwNCj4+ICsJCQkJICAgIGJvb2wgZW5hYmxlKQ0KPj4gK3sNCj4+ICsJc3RydWN0IGVoY2lf cGxhdGZvcm1fcHJpdiAqcHJpdiA9IGhjZF90b19laGNpX3ByaXYoaGNkKTsNCj4+ICsJaW50IHJl dDsNCj4+ICsNCj4+ICsJaWYgKCFwcml2LT52YnVzX3N1cHBsaWVzW3BvcnRudW1dKQ0KPj4gKwkJ cmV0dXJuIDA7DQo+PiArDQo+PiArCWlmIChlbmFibGUpDQo+PiArCQlyZXQgPSByZWd1bGF0b3Jf ZW5hYmxlKHByaXYtPnZidXNfc3VwcGxpZXNbcG9ydG51bV0pOw0KPj4gKwllbHNlDQo+PiArCQly ZXQgPSByZWd1bGF0b3JfZGlzYWJsZShwcml2LT52YnVzX3N1cHBsaWVzW3BvcnRudW1dKTsNCj4+ ICsJaWYgKHJldCkNCj4+ICsJCWRldl9lcnIoaGNkLT5zZWxmLmNvbnRyb2xsZXIsDQo+PiArCQkJ ImZhaWxlZCB0byAlcyB2YnVzIHN1cHBseSBmb3IgcG9ydCAlZDogJWRcbiIsDQo+PiArCQkJZW5h YmxlID8gImVuYWJsZSIgOiAiZGlzYWJsZSIsIHBvcnRudW0sIHJldCk7DQo+PiArDQo+PiArCXJl dHVybiByZXQ7DQo+PiArfQ0KPj4gKw0KPj4gICAgc3RhdGljIGludCBlaGNpX3BsYXRmb3JtX3Bv d2VyX29uKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKmRldikNCj4+ICAgIHsNCj4+ICAgIAlzdHJ1 Y3QgdXNiX2hjZCAqaGNkID0gcGxhdGZvcm1fZ2V0X2RydmRhdGEoZGV2KTsNCj4+IEBAIC0xMzQs NiArMTgzLDcgQEAgc3RhdGljIHN0cnVjdCBoY19kcml2ZXIgX19yZWFkX21vc3RseSBlaGNpX3Bs YXRmb3JtX2hjX2RyaXZlcjsNCj4+ICAgIHN0YXRpYyBjb25zdCBzdHJ1Y3QgZWhjaV9kcml2ZXJf b3ZlcnJpZGVzIHBsYXRmb3JtX292ZXJyaWRlcyBfX2luaXRjb25zdCA9IHsNCj4+ICAgIAkucmVz ZXQgPQkJZWhjaV9wbGF0Zm9ybV9yZXNldCwNCj4+ICAgIAkuZXh0cmFfcHJpdl9zaXplID0Jc2l6 ZW9mKHN0cnVjdCBlaGNpX3BsYXRmb3JtX3ByaXYpLA0KPj4gKwkucG9ydF9wb3dlciA9CQllaGNp X3BsYXRmb3JtX3BvcnRfcG93ZXIsDQo+PiAgICB9Ow0KPj4gICAgDQo+PiAgICBzdGF0aWMgc3Ry dWN0IHVzYl9laGNpX3BkYXRhIGVoY2lfcGxhdGZvcm1fZGVmYXVsdHMgPSB7DQo+Pgo= From mboxrd@z Thu Jan 1 00:00:00 1970 From: amelie.delaunay@st.com (Amelie DELAUNAY) Date: Thu, 1 Mar 2018 08:49:59 +0000 Subject: [PATCH v3] usb: host: ehci-platform: add support for optional external vbus supply In-Reply-To: References: <1519393611-31367-1-git-send-email-amelie.delaunay@st.com> Message-ID: <8655fa87-1403-21b9-1aea-69b0f21fbcea@st.com> To: linux-arm-kernel@lists.infradead.org List-Id: linux-arm-kernel.lists.infradead.org Hi Robin, On 02/28/2018 02:33 PM, Robin Murphy wrote: > Hi Amelie, > > Just a couple of drive-by coding style comments... > > On 23/02/18 13:46, Amelie Delaunay wrote: >> On some boards, especially when vbus supply requires large current, >> and the charge pump on the PHY isn't enough, an external vbus power switch >> may be used. >> Add support for optional external vbus supply per port in ehci-platform. >> >> Signed-off-by: Amelie Delaunay >> >> --- >> Changes in v3: >> * Address Felipe Balbi comments: reduce indentation in >> ehci_platform_port_power. >> * Address Roger Quadros and Alan Stern comments: platforms can have one >> external vbus supply per port, so add support to get as many optional >> regulator as implemented ports on the host controller. >> >> Changes in v2: >> * Address Roger Quadros comments: move regulator_enable/disable from >> ehci_platform_power_on/off to ehci_platform_port_power. >> --- >> Documentation/devicetree/bindings/usb/usb-ehci.txt | 1 + >> drivers/usb/host/ehci-platform.c | 52 +++++++++++++++++++++- >> 2 files changed, 52 insertions(+), 1 deletion(-) >> >> diff --git a/Documentation/devicetree/bindings/usb/usb-ehci.txt b/Documentation/devicetree/bindings/usb/usb-ehci.txt >> index 3efde12..cd576db 100644 >> --- a/Documentation/devicetree/bindings/usb/usb-ehci.txt >> +++ b/Documentation/devicetree/bindings/usb/usb-ehci.txt >> @@ -19,6 +19,7 @@ Optional properties: >> - phys : phandle + phy specifier pair >> - phy-names : "usb" >> - resets : phandle + reset specifier pair >> + - portN_vbus-supply : phandle of regulator supplying vbus for port N >> >> Example (Sequoia 440EPx): >> ehci at e0000300 { >> diff --git a/drivers/usb/host/ehci-platform.c b/drivers/usb/host/ehci-platform.c >> index b065a96..8e9f201 100644 >> --- a/drivers/usb/host/ehci-platform.c >> +++ b/drivers/usb/host/ehci-platform.c >> @@ -29,6 +29,7 @@ >> #include >> #include >> #include >> +#include >> #include >> #include >> #include >> @@ -46,6 +47,7 @@ struct ehci_platform_priv { >> struct reset_control *rsts; >> struct phy **phys; >> int num_phys; >> + struct regulator **vbus_supplies; >> bool reset_on_resume; >> }; >> >> @@ -56,7 +58,8 @@ static int ehci_platform_reset(struct usb_hcd *hcd) >> struct platform_device *pdev = to_platform_device(hcd->self.controller); >> struct usb_ehci_pdata *pdata = dev_get_platdata(&pdev->dev); >> struct ehci_hcd *ehci = hcd_to_ehci(hcd); >> - int retval; >> + struct ehci_platform_priv *priv = hcd_to_ehci_priv(hcd); >> + int portnum, n_ports, retval; >> >> ehci->has_synopsys_hc_bug = pdata->has_synopsys_hc_bug; >> >> @@ -71,11 +74,57 @@ static int ehci_platform_reset(struct usb_hcd *hcd) >> if (retval) >> return retval; >> >> + n_ports = HCS_N_PORTS(ehci->hcs_params); >> + priv->vbus_supplies = devm_kcalloc(&pdev->dev, n_ports, >> + sizeof(struct regulator *), > > Using "sizeof(*priv->vbus_supplies)" here will prevent people sending > annoying cleanup patches later. > OK, I will fix it in v4. >> + GFP_KERNEL); >> + if (!priv->vbus_supplies) >> + return -ENOMEM; >> + >> + for (portnum = 0; portnum < n_ports; portnum++) { >> + struct regulator *vbus_supply; >> + char id[20]; >> + >> + sprintf(id, "port%d_vbus", portnum); >> + >> + vbus_supply = devm_regulator_get_optional(&pdev->dev, id); >> + if (IS_ERR(vbus_supply)) { >> + retval = PTR_ERR(vbus_supply); >> + if (retval == -ENODEV) >> + priv->vbus_supplies[portnum] = NULL; > > The array element here hasn't yet been assigned to since kcalloc() > initially zeroed it, so this is entirely redundant - you can simply make > the comparison a "!=" and remove the "else" case. > > Robin. > Thanks for spotting this! Fix in v4. Amelie >> + else >> + return retval; >> + } else { >> + priv->vbus_supplies[portnum] = vbus_supply; >> + } >> + } >> + >> if (pdata->no_io_watchdog) >> ehci->need_io_watchdog = 0; >> return 0; >> } >> >> +static int ehci_platform_port_power(struct usb_hcd *hcd, int portnum, >> + bool enable) >> +{ >> + struct ehci_platform_priv *priv = hcd_to_ehci_priv(hcd); >> + int ret; >> + >> + if (!priv->vbus_supplies[portnum]) >> + return 0; >> + >> + if (enable) >> + ret = regulator_enable(priv->vbus_supplies[portnum]); >> + else >> + ret = regulator_disable(priv->vbus_supplies[portnum]); >> + if (ret) >> + dev_err(hcd->self.controller, >> + "failed to %s vbus supply for port %d: %d\n", >> + enable ? "enable" : "disable", portnum, ret); >> + >> + return ret; >> +} >> + >> static int ehci_platform_power_on(struct platform_device *dev) >> { >> struct usb_hcd *hcd = platform_get_drvdata(dev); >> @@ -134,6 +183,7 @@ static struct hc_driver __read_mostly ehci_platform_hc_driver; >> static const struct ehci_driver_overrides platform_overrides __initconst = { >> .reset = ehci_platform_reset, >> .extra_priv_size = sizeof(struct ehci_platform_priv), >> + .port_power = ehci_platform_port_power, >> }; >> >> static struct usb_ehci_pdata ehci_platform_defaults = { >>