From mboxrd@z Thu Jan 1 00:00:00 1970 From: Lothar =?UTF-8?B?V2HDn21hbm4=?= Subject: Re: [PATCH 10/20] gpio: pca953x: Add optional reset gpio control Date: Fri, 30 Dec 2016 08:06:23 +0100 Message-ID: <20161230080623.6cc58298@ipc1.ka-ro> References: <1483050455-10683-1-git-send-email-steve_longerbeam@mentor.com> <1483050455-10683-11-git-send-email-steve_longerbeam@mentor.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <1483050455-10683-11-git-send-email-steve_longerbeam@mentor.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=m.gmane.org@lists.infradead.org To: Steve Longerbeam Cc: mark.rutland@arm.com, gnurou@gmail.com, devel@driverdev.osuosl.org, p.zabel@pengutronix.de, devicetree@vger.kernel.org, gregkh@linuxfoundation.org, linus.walleij@linaro.org, linux@armlinux.org.uk, linux-kernel@vger.kernel.org, Steve Longerbeam , robh+dt@kernel.org, kernel@pengutronix.de, linux-gpio@vger.kernel.org, fabio.estevam@nxp.com, mchehab@kernel.org, shawnguo@kernel.org, linux-arm-kernel@lists.infradead.org, linux-media@vger.kernel.org List-Id: linux-gpio@vger.kernel.org SGksCgpPbiBUaHUsIDI5IERlYyAyMDE2IDE0OjI3OjI1IC0wODAwIFN0ZXZlIExvbmdlcmJlYW0g d3JvdGU6Cj4gQWRkIG9wdGlvbmFsIHJlc2V0LWdwaW9zIHBpbiBjb250cm9sLiBJZiBwcmVzZW50 LCBkZS1hc3NlcnQgdGhlCj4gc3BlY2lmaWVkIHJlc2V0IGdwaW8gcGluIHRvIGJyaW5nIHRoZSBj aGlwIG91dCBvZiByZXNldC4KPiAKPiBTaWduZWQtb2ZmLWJ5OiBTdGV2ZSBMb25nZXJiZWFtIDxz dGV2ZV9sb25nZXJiZWFtQG1lbnRvci5jb20+Cj4gQ2M6IExpbnVzIFdhbGxlaWogPGxpbnVzLndh bGxlaWpAbGluYXJvLm9yZz4KPiBDYzogQWxleGFuZHJlIENvdXJib3QgPGdudXJvdUBnbWFpbC5j b20+Cj4gQ2M6IGxpbnV4LWdwaW9Admdlci5rZXJuZWwub3JnCj4gQ2M6IGxpbnV4LWtlcm5lbEB2 Z2VyLmtlcm5lbC5vcmcKPiAKPiAtLS0KPiAKPiB2MjoKPiAtIGRvY3VtZW50ZWQgb3B0aW9uYWwg cmVzZXQtZ3Bpb3MgcHJvcGVydHkgaW4KPiAgIERvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5k aW5ncy9ncGlvL2dwaW8tcGNhOTUzeC50eHQuCj4gLS0tCj4gIERvY3VtZW50YXRpb24vZGV2aWNl dHJlZS9iaW5kaW5ncy9ncGlvL2dwaW8tcGNhOTUzeC50eHQgfCAgNCArKysrCj4gIGRyaXZlcnMv Z3Bpby9ncGlvLXBjYTk1M3guYyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAxNyArKysr KysrKysrKysrKysrKwo+ICAyIGZpbGVzIGNoYW5nZWQsIDIxIGluc2VydGlvbnMoKykKPiAKPiBk aWZmIC0tZ2l0IGEvRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL2dwaW8vZ3Bpby1w Y2E5NTN4LnR4dCBiL0RvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9ncGlvL2dwaW8t cGNhOTUzeC50eHQKPiBpbmRleCAwOGRkMTVmLi5kYTU0ZjRjIDEwMDY0NAo+IC0tLSBhL0RvY3Vt ZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9ncGlvL2dwaW8tcGNhOTUzeC50eHQKPiArKysg Yi9Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvZ3Bpby9ncGlvLXBjYTk1M3gudHh0 Cj4gQEAgLTI5LDYgKzI5LDEwIEBAIFJlcXVpcmVkIHByb3BlcnRpZXM6Cj4gIAlvbnNlbWkscGNh OTY1NAo+ICAJZXhhcix4cmExMjAyCj4gIAo+ICtPcHRpb25hbCBwcm9wZXJ0aWVzOgo+ICsgLSBy ZXNldC1ncGlvczogR1BJTyBzcGVjaWZpY2F0aW9uIGZvciB0aGUgUkVTRVQgaW5wdXQKPiArCj4g Kwo+ICBFeGFtcGxlOgo+ICAKPiAgCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3Bpby9ncGlvLXBj YTk1M3guYyBiL2RyaXZlcnMvZ3Bpby9ncGlvLXBjYTk1M3guYwo+IGluZGV4IGQ1ZDcyZDguLmQx YzBiZDUgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncGlvL2dwaW8tcGNhOTUzeC5jCj4gKysrIGIv ZHJpdmVycy9ncGlvL2dwaW8tcGNhOTUzeC5jCj4gQEAgLTIyLDYgKzIyLDcgQEAKPiAgI2luY2x1 ZGUgPGxpbnV4L29mX3BsYXRmb3JtLmg+Cj4gICNpbmNsdWRlIDxsaW51eC9hY3BpLmg+Cj4gICNp bmNsdWRlIDxsaW51eC9yZWd1bGF0b3IvY29uc3VtZXIuaD4KPiArI2luY2x1ZGUgPGxpbnV4L2dw aW8vY29uc3VtZXIuaD4KPiAgCj4gICNkZWZpbmUgUENBOTUzWF9JTlBVVAkJMAo+ICAjZGVmaW5l IFBDQTk1M1hfT1VUUFVUCQkxCj4gQEAgLTEzMyw2ICsxMzQsNyBAQCBzdHJ1Y3QgcGNhOTUzeF9j aGlwIHsKPiAgCWNvbnN0IGNoYXIgKmNvbnN0ICpuYW1lczsKPiAgCXVuc2lnbmVkIGxvbmcgZHJp dmVyX2RhdGE7Cj4gIAlzdHJ1Y3QgcmVndWxhdG9yICpyZWd1bGF0b3I7Cj4gKwlzdHJ1Y3QgZ3Bp b19kZXNjICpyZXNldF9ncGlvOwo+ICAKPiAgCWNvbnN0IHN0cnVjdCBwY2E5NTN4X3JlZ19jb25m aWcgKnJlZ3M7Cj4gIAo+IEBAIC03NTYsNiArNzU4LDIxIEBAIHN0YXRpYyBpbnQgcGNhOTUzeF9w cm9iZShzdHJ1Y3QgaTJjX2NsaWVudCAqY2xpZW50LAo+ICAJfSBlbHNlIHsKPiAgCQljaGlwLT5n cGlvX3N0YXJ0ID0gLTE7Cj4gIAkJaXJxX2Jhc2UgPSAwOwo+ICsKPiArCQkvKiBzZWUgaWYgd2Ug bmVlZCB0byBkZS1hc3NlcnQgYSByZXNldCBwaW4gKi8KPiArCQljaGlwLT5yZXNldF9ncGlvID0g ZGV2bV9ncGlvZF9nZXRfb3B0aW9uYWwoJmNsaWVudC0+ZGV2LAo+ICsJCQkJCQkJICAgInJlc2V0 IiwKPiArCQkJCQkJCSAgIEdQSU9EX09VVF9MT1cpOwoKPiArCQlpZiAoSVNfRVJSKGNoaXAtPnJl c2V0X2dwaW8pKSB7Cj4gKwkJCWRldl9lcnIoJmNsaWVudC0+ZGV2LCAicmVxdWVzdCBmb3IgcmVz ZXQgcGluIGZhaWxlZFxuIik7Cj4gKwkJCXJldHVybiBQVFJfRVJSKGNoaXAtPnJlc2V0X2dwaW8p Owo+ICsJCX0KPiArCj4gKwkJaWYgKGNoaXAtPnJlc2V0X2dwaW8pIHsKPiArCQkJLyogYnJpbmcg Y2hpcCBvdXQgb2YgcmVzZXQgKi8KPiArCQkJZGV2X2luZm8oJmNsaWVudC0+ZGV2LCAicmVsZWFz aW5nIHJlc2V0XG4iKTsKPiArCQkJZ3Bpb2Rfc2V0X3ZhbHVlKGNoaXAtPnJlc2V0X2dwaW8sIDAp Owo+ClRoZSBwaW4gaXMgYWxyZWFkeSBpbml0aWFsaXplZCB0byB0aGUgaW5hY3RpdmUgc3RhdGUg dGhydSB0aGUKR1BJT0RfT1VUX0xPVyBmbGFnIGluIGRldm1fZ3Bpb2RfZ2V0X29wdGlvbmFsKCks IHNvIHRoaXMgY2FsbCB0bwpncGlvZF9zZXRfdmFsdWUoKSBpcyB1c2VsZXNzLgoKCkxvdGhhciBX YcOfbWFubgoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18K bGludXgtYXJtLWtlcm5lbCBtYWlsaW5nIGxpc3QKbGludXgtYXJtLWtlcm5lbEBsaXN0cy5pbmZy YWRlYWQub3JnCmh0dHA6Ly9saXN0cy5pbmZyYWRlYWQub3JnL21haWxtYW4vbGlzdGluZm8vbGlu dXgtYXJtLWtlcm5lbAo= From mboxrd@z Thu Jan 1 00:00:00 1970 From: LW@KARO-electronics.de (Lothar =?UTF-8?B?V2HDn21hbm4=?=) Date: Fri, 30 Dec 2016 08:06:23 +0100 Subject: [PATCH 10/20] gpio: pca953x: Add optional reset gpio control In-Reply-To: <1483050455-10683-11-git-send-email-steve_longerbeam@mentor.com> References: <1483050455-10683-1-git-send-email-steve_longerbeam@mentor.com> <1483050455-10683-11-git-send-email-steve_longerbeam@mentor.com> Message-ID: <20161230080623.6cc58298@ipc1.ka-ro> To: linux-arm-kernel@lists.infradead.org List-Id: linux-arm-kernel.lists.infradead.org Hi, On Thu, 29 Dec 2016 14:27:25 -0800 Steve Longerbeam wrote: > Add optional reset-gpios pin control. If present, de-assert the > specified reset gpio pin to bring the chip out of reset. > > Signed-off-by: Steve Longerbeam > Cc: Linus Walleij > Cc: Alexandre Courbot > Cc: linux-gpio at vger.kernel.org > Cc: linux-kernel at vger.kernel.org > > --- > > v2: > - documented optional reset-gpios property in > Documentation/devicetree/bindings/gpio/gpio-pca953x.txt. > --- > Documentation/devicetree/bindings/gpio/gpio-pca953x.txt | 4 ++++ > drivers/gpio/gpio-pca953x.c | 17 +++++++++++++++++ > 2 files changed, 21 insertions(+) > > diff --git a/Documentation/devicetree/bindings/gpio/gpio-pca953x.txt b/Documentation/devicetree/bindings/gpio/gpio-pca953x.txt > index 08dd15f..da54f4c 100644 > --- a/Documentation/devicetree/bindings/gpio/gpio-pca953x.txt > +++ b/Documentation/devicetree/bindings/gpio/gpio-pca953x.txt > @@ -29,6 +29,10 @@ Required properties: > onsemi,pca9654 > exar,xra1202 > > +Optional properties: > + - reset-gpios: GPIO specification for the RESET input > + > + > Example: > > > diff --git a/drivers/gpio/gpio-pca953x.c b/drivers/gpio/gpio-pca953x.c > index d5d72d8..d1c0bd5 100644 > --- a/drivers/gpio/gpio-pca953x.c > +++ b/drivers/gpio/gpio-pca953x.c > @@ -22,6 +22,7 @@ > #include > #include > #include > +#include > > #define PCA953X_INPUT 0 > #define PCA953X_OUTPUT 1 > @@ -133,6 +134,7 @@ struct pca953x_chip { > const char *const *names; > unsigned long driver_data; > struct regulator *regulator; > + struct gpio_desc *reset_gpio; > > const struct pca953x_reg_config *regs; > > @@ -756,6 +758,21 @@ static int pca953x_probe(struct i2c_client *client, > } else { > chip->gpio_start = -1; > irq_base = 0; > + > + /* see if we need to de-assert a reset pin */ > + chip->reset_gpio = devm_gpiod_get_optional(&client->dev, > + "reset", > + GPIOD_OUT_LOW); > + if (IS_ERR(chip->reset_gpio)) { > + dev_err(&client->dev, "request for reset pin failed\n"); > + return PTR_ERR(chip->reset_gpio); > + } > + > + if (chip->reset_gpio) { > + /* bring chip out of reset */ > + dev_info(&client->dev, "releasing reset\n"); > + gpiod_set_value(chip->reset_gpio, 0); > The pin is already initialized to the inactive state thru the GPIOD_OUT_LOW flag in devm_gpiod_get_optional(), so this call to gpiod_set_value() is useless. Lothar Wa?mann From mboxrd@z Thu Jan 1 00:00:00 1970 Return-path: Received: from mail1.karo-electronics.de ([81.173.242.67]:56479 "EHLO mail.karo-electronics.de" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1753404AbcL3H0j (ORCPT ); Fri, 30 Dec 2016 02:26:39 -0500 Date: Fri, 30 Dec 2016 08:06:23 +0100 From: Lothar =?UTF-8?B?V2HDn21hbm4=?= To: Steve Longerbeam Cc: shawnguo@kernel.org, kernel@pengutronix.de, fabio.estevam@nxp.com, robh+dt@kernel.org, mark.rutland@arm.com, linux@armlinux.org.uk, linus.walleij@linaro.org, gnurou@gmail.com, mchehab@kernel.org, gregkh@linuxfoundation.org, p.zabel@pengutronix.de, devel@driverdev.osuosl.org, devicetree@vger.kernel.org, Steve Longerbeam , linux-kernel@vger.kernel.org, linux-gpio@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-media@vger.kernel.org Subject: Re: [PATCH 10/20] gpio: pca953x: Add optional reset gpio control Message-ID: <20161230080623.6cc58298@ipc1.ka-ro> In-Reply-To: <1483050455-10683-11-git-send-email-steve_longerbeam@mentor.com> References: <1483050455-10683-1-git-send-email-steve_longerbeam@mentor.com> <1483050455-10683-11-git-send-email-steve_longerbeam@mentor.com> MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8BIT Sender: linux-media-owner@vger.kernel.org List-ID: Hi, On Thu, 29 Dec 2016 14:27:25 -0800 Steve Longerbeam wrote: > Add optional reset-gpios pin control. If present, de-assert the > specified reset gpio pin to bring the chip out of reset. > > Signed-off-by: Steve Longerbeam > Cc: Linus Walleij > Cc: Alexandre Courbot > Cc: linux-gpio@vger.kernel.org > Cc: linux-kernel@vger.kernel.org > > --- > > v2: > - documented optional reset-gpios property in > Documentation/devicetree/bindings/gpio/gpio-pca953x.txt. > --- > Documentation/devicetree/bindings/gpio/gpio-pca953x.txt | 4 ++++ > drivers/gpio/gpio-pca953x.c | 17 +++++++++++++++++ > 2 files changed, 21 insertions(+) > > diff --git a/Documentation/devicetree/bindings/gpio/gpio-pca953x.txt b/Documentation/devicetree/bindings/gpio/gpio-pca953x.txt > index 08dd15f..da54f4c 100644 > --- a/Documentation/devicetree/bindings/gpio/gpio-pca953x.txt > +++ b/Documentation/devicetree/bindings/gpio/gpio-pca953x.txt > @@ -29,6 +29,10 @@ Required properties: > onsemi,pca9654 > exar,xra1202 > > +Optional properties: > + - reset-gpios: GPIO specification for the RESET input > + > + > Example: > > > diff --git a/drivers/gpio/gpio-pca953x.c b/drivers/gpio/gpio-pca953x.c > index d5d72d8..d1c0bd5 100644 > --- a/drivers/gpio/gpio-pca953x.c > +++ b/drivers/gpio/gpio-pca953x.c > @@ -22,6 +22,7 @@ > #include > #include > #include > +#include > > #define PCA953X_INPUT 0 > #define PCA953X_OUTPUT 1 > @@ -133,6 +134,7 @@ struct pca953x_chip { > const char *const *names; > unsigned long driver_data; > struct regulator *regulator; > + struct gpio_desc *reset_gpio; > > const struct pca953x_reg_config *regs; > > @@ -756,6 +758,21 @@ static int pca953x_probe(struct i2c_client *client, > } else { > chip->gpio_start = -1; > irq_base = 0; > + > + /* see if we need to de-assert a reset pin */ > + chip->reset_gpio = devm_gpiod_get_optional(&client->dev, > + "reset", > + GPIOD_OUT_LOW); > + if (IS_ERR(chip->reset_gpio)) { > + dev_err(&client->dev, "request for reset pin failed\n"); > + return PTR_ERR(chip->reset_gpio); > + } > + > + if (chip->reset_gpio) { > + /* bring chip out of reset */ > + dev_info(&client->dev, "releasing reset\n"); > + gpiod_set_value(chip->reset_gpio, 0); > The pin is already initialized to the inactive state thru the GPIOD_OUT_LOW flag in devm_gpiod_get_optional(), so this call to gpiod_set_value() is useless. Lothar Waßmann