From mboxrd@z Thu Jan 1 00:00:00 1970 From: Saurabh Singh Subject: Re: [PATCH] Parse missing regulator constraints from device tree blob Date: Thu, 16 Jan 2014 13:43:24 +0000 (GMT) Message-ID: <27224826.584141389879802275.JavaMail.weblogic@epml20> Reply-To: saurabh1.s@samsung.com Mime-Version: 1.0 Content-Type: text/plain; charset=windows-1252 Content-Transfer-Encoding: base64 Return-path: MIME-version: 1.0 Sender: linux-kernel-owner@vger.kernel.org To: Mark Rutland Cc: "lgirdwood@gmail.com" , "broonie@kernel.org" , "grant.likely@linaro.org" , "rob.herring@calxeda.com" , "linux-kernel@vger.kernel.org" , "devicetree@vger.kernel.org" , "celinux-dev@tree.celinuxforum.org" , SREEVATSA D B , Praveen BP List-Id: devicetree@vger.kernel.org SGkgTWFyaywNCg0KTmV3IHBhdGNoIGluY29ycG9yYXRpbmcgeW91ciBzdWdnZXN0aW9ucyBpcyBn aXZlbiBiZWxvdy4NCg0KPiAqIE5vbmUgb2YgdGhlc2UgcHJvcGVydGllcyBhcmUgZG9jdW1lbnRl ZC4gRG9jdW1lbnRhdGlvbiBpcyByZXF1aXJlZCBzbw0KPiAgIHRoYXQgdGhlIGNvbnRyYWN0IGlz IGRlZmluZWQuIFRoYXQgYWxsb3dzIHBlb3BsZSB0byBsZWFybiBob3cgdG8gdXNlDQo+ICAgdGhl IHByb3BlcnRpZXMsIGFuZCBtYWtlcyBjbGVhciB3aGF0IHdlIGNhbiBhbmQgY2Fubm90IGNoYW5n ZQ0KPiAgIGtlcm5lbC1zaWRlLg0KRG9uZS4gIFRoZSBkb2N1bWVudGF0aW9uIGlzIGluIHRoZSBw YXRjaCBiZWxvdy4NCg0KPiAqIEl0IGxlYWtzIExpbnV4IGludGVybmFsIGRldGFpbHMgKGUuZy4g c3VzcGVuZF9zdGF0ZV90IHZhbHVlcywNCj4gICB2YWxpZF9tb2RlX21hc2spIHdpdGhvdXQgYW55 IGF0dGVtcHQgYXQgYWJzdHJhY3Rpb24sIGluIHZpb2xhdGlvbiBvZg0KPiAgIGR0IHByaW5jaXBs ZXMuDQpVbmxpa2UgdmFsaWRfb3BzX21hc2ssIHZhbGlkX21vZGVfbWFzayBjYW5ub3QgYmUgZGVy aXZlZCBmcm9tIHRoZSBvdGhlciBzZXR0aW5ncy4NCkl0IGRlcGVuZHMgb24gdGhlIGhhcmR3YXJl IChyZWd1bGF0b3IpIGNhcGFiaWxpdHkuIFNvLCBpdCBoYXMgdG8gYmUgc3BlY2lmaWVkIGluIERU IGJsb2IuDQoNCj4gKiBBY2Nlc3NvcnMgYXJlIHVzZWQgcG9vcmx5LiBFbmRpYW5uZXNzIGNvbnZl cnNpb24gaXMgZG9uZSBtYW51YWxseQ0KPiAgIHJhdGhlciB0aGFuIGJlaW5nIGxlZnQgdG8gYWNj ZXNzb3JzLCBhbmQgcHJvcGVydHkgbGVuZ3RocyBhcmVuJ3QNCj4gICBjaGVja2VkLg0KVXNlZCB0 aGUgYWNjZXNzb3JzIGZvciB1MzIgYW5kIGJvb2wuDQoNCj4gCXUzMiB1djsNCj4gCW9mX3Byb3Bl cnR5X3JlYWRfdTMyKG5wLCAicmVndWxhdG9yLXN0YXRlLXV2IiwgJnV2KTsNCj4gDQo+IEhvd2V2 ZXIsIGFzIGZhciBhcyBJIGNhbiBzZWUgdGhpcyB2YWx1ZSBzaG91bGQgY29tZSBmcm9tIGFuIGlu cHV0IHN1cHBseQ0KPiBhbnl3YXkuDQpUaGlzIGlzIG5vdCBpbnB1dCBzdXBwbHkuIFRoaXMgaXMg b3BlcmF0aW5nIHZvbHRhZ2UgdG8gYmUgc2V0IHdoZW4gZGV2aWNlIHN1c3BlbmRzLg0KDQpkaWZm c3RhdCBmb3IgdGhpcyBwYXRjaCBpczoNCiBEb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGlu Z3MvcmVndWxhdG9yL3JlZ3VsYXRvci50eHQgfCAgIDE5ICsrKysrKw0KIGRyaXZlcnMvcmVndWxh dG9yL29mX3JlZ3VsYXRvci5jICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgNDEgKysrKysr KysrKysrKysNCiAyIGZpbGVzIGNoYW5nZWQsIDYwIGluc2VydGlvbnMoKykNCg0KVG8gYXBwbHkg dGhlIHBhdGNoLCBpbiB0aGUgcm9vdCBvZiBhIGtlcm5lbCB0cmVlIHVzZToNCnBhdGNoIC1wMSA8 IG9mX3JlZ3VsYXRvci5wYXRjaA0KDQpQbGVhc2UgbGV0IG1lIGtub3cgYW55IGZlZWRiYWNrIHlv dSBoYXZlIG9uIHRoaXMgcGF0Y2ggb3IgdGhlIGFwcHJvYWNoIHVzZWQuDQoNClJlZ2FyZHMsDQo9 PT09PT09PT09PT09PT09PT09PT0NClNhdXJhYmggU2luZ2ggU2VuZ2FyDQpMZWFkIEVuZ2luZWVy DQpTYW1zdW5nIFImRCBJbnN0aXR1dGUNCkluZGlhDQpTYW1zdW5nDQo9PT09PT09PT09PT09PT09 PT09PT0NClNpZ25lZC1vZmYtYnk6IFNhdXJhYmggU2luZ2ggU2VuZ2FyIDxzYXVyYWJoMS5zQHNh bXN1bmcuY29tPg0KDQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KZGlmZiAtdXByTiAtWCBsaW51 eC0zLjEyLjYtdmFuaWxsYS9Eb2N1bWVudGF0aW9uL2RvbnRkaWZmIGxpbnV4LTMuMTIuNi12YW5p bGxhL0RvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9yZWd1bGF0b3IvcmVndWxhdG9y LnR4dCBsaW51eC0zLjEyLjYvRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL3JlZ3Vs YXRvci9yZWd1bGF0b3IudHh0DQotLS0gbGludXgtMy4xMi42LXZhbmlsbGEvRG9jdW1lbnRhdGlv bi9kZXZpY2V0cmVlL2JpbmRpbmdzL3JlZ3VsYXRvci9yZWd1bGF0b3IudHh0CTIwMTMtMTItMjAg MjE6MjE6MzMuMDAwMDAwMDAwICswNTMwDQorKysgbGludXgtMy4xMi42L0RvY3VtZW50YXRpb24v ZGV2aWNldHJlZS9iaW5kaW5ncy9yZWd1bGF0b3IvcmVndWxhdG9yLnR4dAkyMDE0LTAxLTE2IDE4 OjQ3OjE3LjcwODYwODgxMSArMDUzMA0KQEAgLTE0LDYgKzE0LDE3IEBAIE9wdGlvbmFsIHByb3Bl cnRpZXM6DQogLSByZWd1bGF0b3ItcmFtcC1kZWxheTogcmFtcCBkZWxheSBmb3IgcmVndWxhdG9y KGluIHVWL3VTKQ0KICAgRm9yIGhhcmR3YXJlcyB3aGljaCBzdXBwb3J0IGRpc2FibGluZyByYW1w IHJhdGUsIGl0IHNob3VsZCBiZSBleHBsaWNpdGx5DQogICBpbnRpYWxpc2VkIHRvIHplcm8gKHJl Z3VsYXRvci1yYW1wLWRlbGF5ID0gPDA+KSBmb3IgZGlzYWJsaW5nIHJhbXAgZGVsYXkuDQorLSBy ZWd1bGF0b3ItdmFsaWQtbW9kZXMtbWFzazogdmFsaWQgb3BlcmF0aW9ucyBmb3IgcmVndWxhdG9y IG9uIHBhcnRpY3VsYXIgbWFjaGluZQ0KKy0gcmVndWxhdG9yLWlucHV0LXV2OiByZWd1bGF0b3Ig aW5wdXQgdm9sdGFnZSwgb25seSBpZiBzdXBwbHkgaXMgYW5vdGhlciByZWd1bGF0b3INCistIHJl Z3VsYXRvci1pbml0aWFsLW1vZGU6IGRlZmF1bHQgbW9kZSB0byBzZXQgb24gc3RhcnR1cA0KKy0g cmVndWxhdG9yLWluaXRpYWwtc3RhdGU6IHN1c3BlbmQgc3RhdGUgdG8gc2V0IGF0IGluaXQNCist IHJlZ3VsYXRvci1zdGF0ZS1tZW0sIHJlZ3VsYXRvci1zdGF0ZS1kaXNrLCByZWd1bGF0b3Itc3Rh dGUtc3RhbmRieToNCisJZGVmaW5lcyByZWd1bGF0b3Igc3VzcGVuZCB0byBtZW1vcnksIHN1c3Bl bmQgdG8gZGlzayAoaGliZXJuYXRlKSBhbmQgc3RhbmRieSByZXNwZWN0aXZlbHkuDQorCWhhdmUg Zm9sbG93aW5nIHN1Yi1jb25zdGFyaW50czoNCisJLSByZWd1bGF0b3Itc3RhdGUtdXY6IHN1c3Bl bmQgdm9sdGFnZQ0KKwktIHJlZ3VsYXRvci1zdGF0ZS1tb2RlOiBzdXNwZW5kIHJlZ3VsYXRvciBv cGVyYXRpbmcgbW9kZQ0KKwktIHJlZ3VsYXRvci1zdGF0ZS1lbmFibGVkOiBpcyByZWd1bGF0b3Ig ZW5hYmxlZCBpbiB0aGlzIHN1c3BlbmQgc3RhdGUNCisJLSByZWd1bGF0b3Itc3RhdGUtZGlzYWJs ZWQ6IGlzIHRoZSByZWd1bGF0b3IgZGlzYmxlZCBpbiB0aGlzIHN1c3BlbmQgc3RhdGUNCiANCiBE ZXByZWNhdGVkIHByb3BlcnRpZXM6DQogLSByZWd1bGF0b3ItY29tcGF0aWJsZTogSWYgYSByZWd1 bGF0b3IgY2hpcCBjb250YWlucyBtdWx0aXBsZQ0KQEAgLTI5LDYgKzQwLDE0IEBAIEV4YW1wbGU6 DQogCQlyZWd1bGF0b3ItbWF4LW1pY3Jvdm9sdCA9IDwyNTAwMDAwPjsNCiAJCXJlZ3VsYXRvci1h bHdheXMtb247DQogCQl2aW4tc3VwcGx5ID0gPCZ2aW4+Ow0KKwkJcmVndWxhdG9yLXZhbGlkLW1v ZGVzLW1hc2sgPSA8UkVHVUxBVE9SX01PREVfRkFTVD47DQorCQlyZWd1bGF0b3ItaW5pdGlhbC1t b2RlID0gPFJFR1VMQVRPUl9NT0RFX1NUQU5EQlk+Ow0KKwkJcmVndWxhdG9yLWluaXRpYWwtc3Rh dGUgPSA8UE1fU1VTUEVORF9NRU0+Ow0KKwkJcmVndWxhdG9yLXN0YXRlLW1lbSB7DQorCQkJcmVn dWxhdG9yLXN0YXRlLW1vZGUgPSA8UkVHVUxBVE9SX01PREVfSURMRT47DQorCQkJcmVndWxhdG9y LXN0YXRlLWVuYWJsZWQ7DQorCQl9Ow0KKw0KIAl9Ow0KIA0KIFJlZ3VsYXRvciBDb25zdW1lcnM6 DQpkaWZmIC11cHJOIC1YIGxpbnV4LTMuMTIuNi12YW5pbGxhL0RvY3VtZW50YXRpb24vZG9udGRp ZmYgbGludXgtMy4xMi42LXZhbmlsbGEvZHJpdmVycy9yZWd1bGF0b3Ivb2ZfcmVndWxhdG9yLmMg bGludXgtMy4xMi42L2RyaXZlcnMvcmVndWxhdG9yL29mX3JlZ3VsYXRvci5jDQotLS0gbGludXgt My4xMi42LXZhbmlsbGEvZHJpdmVycy9yZWd1bGF0b3Ivb2ZfcmVndWxhdG9yLmMJMjAxMy0xMi0y MCAyMToyMTozMy4wMDAwMDAwMDAgKzA1MzANCisrKyBsaW51eC0zLjEyLjYvZHJpdmVycy9yZWd1 bGF0b3Ivb2ZfcmVndWxhdG9yLmMJMjAxNC0wMS0xNiAxODo0NTo0NC4xMzU5Mjg0MTQgKzA1MzAN CkBAIC0xNiwxMSArMTYsMjcgQEANCiAjaW5jbHVkZSA8bGludXgvcmVndWxhdG9yL21hY2hpbmUu aD4NCiAjaW5jbHVkZSA8bGludXgvcmVndWxhdG9yL29mX3JlZ3VsYXRvci5oPg0KIA0KKy8qKg0K KyAqIHNldF9yZWd1bGF0b3Jfc3RhdGVfY29uc3RyYWludHMgLSBzZXQgcmVndWxhdG9yIHN0YXRl IGZvciBsb3cgcG93ZXIgc3lzdGVtIHN0YXRlcw0KKyAqIEBucDogZGV2aWNlIG5vZGUgZm9yIHRo ZSBsb3cgcG93ZXIgcmVndWxhdG9yIHN0YXRlDQorICogQHJlZ3VsYXRvcl9zdGF0ZTogcmVndWxh dG9yX3N0YXRlIHN0cnVjdHVyZSBuZWVkIHRvIGJlIGZpbGxlZA0KKyAqLw0KK3N0YXRpYyB2b2lk IHNldF9yZWd1bGF0b3Jfc3RhdGVfY29uc3RyYWludHMoc3RydWN0IGRldmljZV9ub2RlICpucCwN CisJCXN0cnVjdCByZWd1bGF0b3Jfc3RhdGUgKnN0YXRlKQ0KK3sNCisJb2ZfcHJvcGVydHlfcmVh ZF91MzIobnAsICJyZWd1bGF0b3Itc3RhdGUtdXYiLCAmc3RhdGUtPnVWKTsNCisJb2ZfcHJvcGVy dHlfcmVhZF91MzIobnAsICJyZWd1bGF0b3Itc3RhdGUtbW9kZSIsICZzdGF0ZS0+bW9kZSk7DQor CXN0YXRlLT5lbmFibGVkID0gb2ZfcHJvcGVydHlfcmVhZF9ib29sKG5wLCAicmVndWxhdG9yLXN0 YXRlLWVuYWJsZWQiKTsNCisJc3RhdGUtPmRpc2FibGVkID0gb2ZfcHJvcGVydHlfcmVhZF9ib29s KG5wLCAicmVndWxhdG9yLXN0YXRlLWRpc2FibGVkIik7DQorfQ0KKw0KKw0KIHN0YXRpYyB2b2lk IG9mX2dldF9yZWd1bGF0aW9uX2NvbnN0cmFpbnRzKHN0cnVjdCBkZXZpY2Vfbm9kZSAqbnAsDQog CQkJCQlzdHJ1Y3QgcmVndWxhdG9yX2luaXRfZGF0YSAqKmluaXRfZGF0YSkNCiB7DQogCWNvbnN0 IF9fYmUzMiAqbWluX3VWLCAqbWF4X3VWLCAqdVZfb2Zmc2V0Ow0KIAljb25zdCBfX2JlMzIgKm1p bl91QSwgKm1heF91QSwgKnJhbXBfZGVsYXk7DQorCXN0cnVjdCBkZXZpY2Vfbm9kZSAqc3RhdGU7 DQogCXN0cnVjdCBwcm9wZXJ0eSAqcHJvcDsNCiAJc3RydWN0IHJlZ3VsYXRpb25fY29uc3RyYWlu dHMgKmNvbnN0cmFpbnRzID0gJigqaW5pdF9kYXRhKS0+Y29uc3RyYWludHM7DQogDQpAQCAtNzMs NiArODksMzEgQEAgc3RhdGljIHZvaWQgb2ZfZ2V0X3JlZ3VsYXRpb25fY29uc3RyYWludA0KIAkJ ZWxzZQ0KIAkJCWNvbnN0cmFpbnRzLT5yYW1wX2Rpc2FibGUgPSB0cnVlOw0KIAl9DQorDQorCW9m X3Byb3BlcnR5X3JlYWRfdTMyKG5wLCAicmVndWxhdG9yLXZhbGlkLW1vZGVzLW1hc2siLA0KKwkJ CQkJJmNvbnN0cmFpbnRzLT52YWxpZF9tb2Rlc19tYXNrKTsNCisJb2ZfcHJvcGVydHlfcmVhZF91 MzIobnAsICJyZWd1bGF0b3ItaW5wdXQtdXYiLA0KKwkJCQkJJmNvbnN0cmFpbnRzLT5pbnB1dF91 Vik7DQorCW9mX3Byb3BlcnR5X3JlYWRfdTMyKG5wLCAicmVndWxhdG9yLWluaXRpYWwtbW9kZSIs DQorCQkJCQkmY29uc3RyYWludHMtPmluaXRpYWxfbW9kZSk7DQorCW9mX3Byb3BlcnR5X3JlYWRf dTMyKG5wLCAicmVndWxhdG9yLWluaXRpYWwtc3RhdGUiLA0KKwkJCQkJJmNvbnN0cmFpbnRzLT5p bml0aWFsX3N0YXRlKTsNCisNCisJLyogcmVndWxhdG9yIHN0YXRlIGR1cmluZyBsb3cgcG93ZXIg c3lzdGVtIHN0YXRlcyAqLw0KKwlzdGF0ZSA9IG9mX2ZpbmRfbm9kZV9ieV9uYW1lKG5wLCAicmVn dWxhdG9yLXN0YXRlLW1lbSIpOw0KKwlpZiAoc3RhdGUpDQorCQlzZXRfcmVndWxhdG9yX3N0YXRl X2NvbnN0cmFpbnRzKHN0YXRlLA0KKwkJCQkmY29uc3RyYWludHMtPnN0YXRlX21lbSk7DQorDQor CXN0YXRlID0gb2ZfZmluZF9ub2RlX2J5X25hbWUobnAsICJyZWd1bGF0b3Itc3RhdGUtZGlzayIp Ow0KKwlpZiAoc3RhdGUpDQorCQlzZXRfcmVndWxhdG9yX3N0YXRlX2NvbnN0cmFpbnRzKHN0YXRl LA0KKwkJCQkmY29uc3RyYWludHMtPnN0YXRlX2Rpc2spOw0KKw0KKwlzdGF0ZSA9IG9mX2ZpbmRf bm9kZV9ieV9uYW1lKG5wLCAicmVndWxhdG9yLXN0YXRlLXN0YW5kYnkiKTsNCisJaWYgKHN0YXRl KQ0KKwkJc2V0X3JlZ3VsYXRvcl9zdGF0ZV9jb25zdHJhaW50cyhzdGF0ZSwNCisJCQkJJmNvbnN0 cmFpbnRzLT5zdGF0ZV9zdGFuZGJ5KTsNCiB9DQogDQogLyoq From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1753257AbaAPNnc (ORCPT ); Thu, 16 Jan 2014 08:43:32 -0500 Received: from mailout4.samsung.com ([203.254.224.34]:27510 "EHLO mailout4.samsung.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752335AbaAPNn0 (ORCPT ); Thu, 16 Jan 2014 08:43:26 -0500 X-AuditID: cbfee690-b7f266d00000287c-ae-52d7e1fc6cd6 Date: Thu, 16 Jan 2014 13:43:24 +0000 (GMT) From: Saurabh Singh Subject: Re: [PATCH] Parse missing regulator constraints from device tree blob To: Mark Rutland Cc: "lgirdwood@gmail.com" , "broonie@kernel.org" , "grant.likely@linaro.org" , "rob.herring@calxeda.com" , "linux-kernel@vger.kernel.org" , "devicetree@vger.kernel.org" , "celinux-dev@tree.celinuxforum.org" , SREEVATSA D B , Praveen BP Reply-to: saurabh1.s@samsung.com MIME-version: 1.0 X-MTR: 20140116134145668@saurabh1.s Msgkey: 20140116134145668@saurabh1.s X-EPLocale: en_US.windows-1252 X-Priority: 3 X-EPWebmail-Msg-Type: personal X-EPWebmail-Reply-Demand: 0 X-EPApproval-Locale: X-EPHeader: ML X-EPTrCode: X-EPTrName: X-MLAttribute: X-RootMTR: 20140116134145668@saurabh1.s X-ParentMTR: X-ArchiveUser: X-CPGSPASS: N Content-type: text/plain; charset=windows-1252 MIME-version: 1.0 Message-id: <27224826.584141389879802275.JavaMail.weblogic@epml20> X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFupnleLIzCtJLcpLzFFi42JZI2JSo/v34fUgg451LBaXd81hc2D0+LxJ LoAxissmJTUnsyy1SN8ugSvj95xOxoJ5ThUn3rQzNTAecOhi5OQQElCVmL1nCyOILSFgIvFz 43ooW0ziwr31bF2MXEA1SxklWp/2sXYxcoAVHV6WDBGfzyjRtPgsC0gDC9Cgl/92sYLYbAK6 Eg/X32UHsYUF/CT2tHxkArFFBDQlVl5bxwTSzCzwjFni2fPjbBBXKEice94JVsQrIChxcuYT FogrlCWeLG9lhYirSDxoOs0GEZeTWDL1MhOEzSsxo/0pC0x82tc1zBC2tMT5WRvgvln8/TFU nF/i2O0dTBDP8Eo8uR8MM2b35i9Q4wUkpp45CNWqIdG78x+UzSexZuFbFpgxu04tZ4bpvb9l Ltg5zAKKElO6H7JD2AYSRxbNYUX3Fq+Ak8Sco2uYJzAqz0KSmoWkfRaSdmQ1CxhZVjGKphYk FxQnpReZ6BUn5haX5qXrJefnbmIEJobT/55N2MF474D1IcZkYJxMZJYSTc4HJpa8knhDYzMj C1MTU2Mjc0sz0oSVxHnVHiUFCQmkJ5akZqemFqQWxReV5qQWH2Jk4uCUamCsOR32d5n9NM/C RxOVy70K9aUN2C3/ljz+HHc+Se/DwT9iL7YbzelmCOn/+XFVZN8L3uZa4buuvpKtNVLrXhzy uX6W7ZaK8oUzOoq6XBECskurPm/cXrLqk9KiR177D3jpM/BpWGvVMSxnsm7+8k7RmnPp35Nf J07kb93Vc2t7WIyF/jyetjNKLMUZiYZazEXFiQB0386mIgMAAA== X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFmpgk+LIzCtJLcpLzFFi42I5/e/2DN0/D68HGaxYaWFxedccNgdGj8+b 5AIYo9JsMlITU1KLFFLzkvNTMvPSbZW8g+Od403NDAx1DS0tzJUU8hJzU22VXHwCdN0yc4CG KimUJeaUAoUCEouLlfTtbIryS0tSFTLyi0tslaINzY30jAz0TI30DE1jrQwNDIxMgWoS0jJ+ z+lkLJjnVHHiTTtTA+MBhy5GTg4hAVWJ2Xu2MHYxcnBICJhIHF6WDBKWEBCTuHBvPVsXIxdQ yXxGiabFZ1lAEixA9S//7WIFsdkEdCUerr/LDmILC/hJ7Gn5yARiiwhoSqy8to4JpJlZ4Bmz xLPnx9kglilInHveCVbEKyAocXLmExaIbcoST5a3skLEVSQeNJ1mg4jLSSyZepkJwuaVmNH+ lAUmPu3rGmYIW1ri/KwNjDBXL/7+GCrOL3Hs9g4miMd4JZ7cD4YZs3vzF6jxAhJTzxyEatWQ 6N35D8rmk1iz8C0LzJhdp5Yzw/Te3zIX7BxmAUWJKd0P2SFsA4kji+awonuLV8BJYs7RNcwT GOVmIUnNQtI+C0k7spoFjCyrGEVTC5ILipPSKwz1ihNzi0vz0vWS83M3MYLT07OFOxi/nLc+ xCjAwajEw7vj4bUgIdbEsuLK3EOMEhzMSiK8ZruvBwnxpiRWVqUW5ccXleakFh9iTAbG4ERm KdHkfGDqzCuJNzQ2MTc1NrUwMDQ3NyNNWEmc9+7NpCAhgfTEktTs1NSC1CKYLUwcnFINjOor V6lyeZ+TcS5JibCccW3h3bVvn+ppRlalXOxPXn4rdOLbxFT238GLdTXXZlfrze9j/8c5yy55 63vZWRIS01Tfd239Z6Fb5ufNbrrg9fXmE6+Oqz3leJN0uel229pjTzUqvFgMtOftPO5iWhO1 x/zdz8UuszWj/VgCcl7bHn9/6V/JSW7pDiWW4oxEQy3mouJEADkkdfGTAwAA DLP-Filter: Pass X-CFilter-Loop: Reflected Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Transfer-Encoding: 8bit X-MIME-Autoconverted: from base64 to 8bit by mail.home.local id s0GDhdJG018061 Hi Mark, New patch incorporating your suggestions is given below. > * None of these properties are documented. Documentation is required so > that the contract is defined. That allows people to learn how to use > the properties, and makes clear what we can and cannot change > kernel-side. Done. The documentation is in the patch below. > * It leaks Linux internal details (e.g. suspend_state_t values, > valid_mode_mask) without any attempt at abstraction, in violation of > dt principles. Unlike valid_ops_mask, valid_mode_mask cannot be derived from the other settings. It depends on the hardware (regulator) capability. So, it has to be specified in DT blob. > * Accessors are used poorly. Endianness conversion is done manually > rather than being left to accessors, and property lengths aren't > checked. Used the accessors for u32 and bool. > u32 uv; > of_property_read_u32(np, "regulator-state-uv", &uv); > > However, as far as I can see this value should come from an input supply > anyway. This is not input supply. This is operating voltage to be set when device suspends. diffstat for this patch is: Documentation/devicetree/bindings/regulator/regulator.txt | 19 ++++++ drivers/regulator/of_regulator.c | 41 ++++++++++++++ 2 files changed, 60 insertions(+) To apply the patch, in the root of a kernel tree use: patch -p1 < of_regulator.patch Please let me know any feedback you have on this patch or the approach used. Regards, ===================== Saurabh Singh Sengar Lead Engineer Samsung R&D Institute India Samsung ===================== Signed-off-by: Saurabh Singh Sengar -------------------------------------------------------------------------------- diff -uprN -X linux-3.12.6-vanilla/Documentation/dontdiff linux-3.12.6-vanilla/Documentation/devicetree/bindings/regulator/regulator.txt linux-3.12.6/Documentation/devicetree/bindings/regulator/regulator.txt --- linux-3.12.6-vanilla/Documentation/devicetree/bindings/regulator/regulator.txt 2013-12-20 21:21:33.000000000 +0530 +++ linux-3.12.6/Documentation/devicetree/bindings/regulator/regulator.txt 2014-01-16 18:47:17.708608811 +0530 @@ -14,6 +14,17 @@ Optional properties: - regulator-ramp-delay: ramp delay for regulator(in uV/uS) For hardwares which support disabling ramp rate, it should be explicitly intialised to zero (regulator-ramp-delay = <0>) for disabling ramp delay. +- regulator-valid-modes-mask: valid operations for regulator on particular machine +- regulator-input-uv: regulator input voltage, only if supply is another regulator +- regulator-initial-mode: default mode to set on startup +- regulator-initial-state: suspend state to set at init +- regulator-state-mem, regulator-state-disk, regulator-state-standby: + defines regulator suspend to memory, suspend to disk (hibernate) and standby respectively. + have following sub-constarints: + - regulator-state-uv: suspend voltage + - regulator-state-mode: suspend regulator operating mode + - regulator-state-enabled: is regulator enabled in this suspend state + - regulator-state-disabled: is the regulator disbled in this suspend state Deprecated properties: - regulator-compatible: If a regulator chip contains multiple @@ -29,6 +40,14 @@ Example: regulator-max-microvolt = <2500000>; regulator-always-on; vin-supply = <&vin>; + regulator-valid-modes-mask = ; + regulator-initial-mode = ; + regulator-initial-state = ; + regulator-state-mem { + regulator-state-mode = ; + regulator-state-enabled; + }; + }; Regulator Consumers: diff -uprN -X linux-3.12.6-vanilla/Documentation/dontdiff linux-3.12.6-vanilla/drivers/regulator/of_regulator.c linux-3.12.6/drivers/regulator/of_regulator.c --- linux-3.12.6-vanilla/drivers/regulator/of_regulator.c 2013-12-20 21:21:33.000000000 +0530 +++ linux-3.12.6/drivers/regulator/of_regulator.c 2014-01-16 18:45:44.135928414 +0530 @@ -16,11 +16,27 @@ #include #include +/** + * set_regulator_state_constraints - set regulator state for low power system states + * @np: device node for the low power regulator state + * @regulator_state: regulator_state structure need to be filled + */ +static void set_regulator_state_constraints(struct device_node *np, + struct regulator_state *state) +{ + of_property_read_u32(np, "regulator-state-uv", &state->uV); + of_property_read_u32(np, "regulator-state-mode", &state->mode); + state->enabled = of_property_read_bool(np, "regulator-state-enabled"); + state->disabled = of_property_read_bool(np, "regulator-state-disabled"); +} + + static void of_get_regulation_constraints(struct device_node *np, struct regulator_init_data **init_data) { const __be32 *min_uV, *max_uV, *uV_offset; const __be32 *min_uA, *max_uA, *ramp_delay; + struct device_node *state; struct property *prop; struct regulation_constraints *constraints = &(*init_data)->constraints; @@ -73,6 +89,31 @@ static void of_get_regulation_constraint else constraints->ramp_disable = true; } + + of_property_read_u32(np, "regulator-valid-modes-mask", + &constraints->valid_modes_mask); + of_property_read_u32(np, "regulator-input-uv", + &constraints->input_uV); + of_property_read_u32(np, "regulator-initial-mode", + &constraints->initial_mode); + of_property_read_u32(np, "regulator-initial-state", + &constraints->initial_state); + + /* regulator state during low power system states */ + state = of_find_node_by_name(np, "regulator-state-mem"); + if (state) + set_regulator_state_constraints(state, + &constraints->state_mem); + + state = of_find_node_by_name(np, "regulator-state-disk"); + if (state) + set_regulator_state_constraints(state, + &constraints->state_disk); + + state = of_find_node_by_name(np, "regulator-state-standby"); + if (state) + set_regulator_state_constraints(state, + &constraints->state_standby); } /**{.n++%ݶw{.n+{G{ayʇڙ,jfhz_(階ݢj"mG?&~iOzv^m ?I