devicetree.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Paul Kocialkowski <contact-W9ppeneeCTY@public.gmane.org>
To: Mark Brown <broonie-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org>
Cc: linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
	"Rob Herring" <robh+dt-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org>,
	"Pawel Moll" <pawel.moll-5wv7dgnIgG8@public.gmane.org>,
	"Mark Rutland" <mark.rutland-5wv7dgnIgG8@public.gmane.org>,
	"Ian Campbell"
	<ijc+devicetree-KcIKpvwj1kUDXYZnReoRVg@public.gmane.org>,
	"Kumar Gala" <galak-sgV2jX0FEOL9JmXXK+q4OQ@public.gmane.org>,
	"Russell King" <linux-lFZ/pmaqli7XmaaqVzeoHQ@public.gmane.org>,
	"Benoît Cousson"
	<bcousson-rdvid1DuHRBWk0Htik3J/w@public.gmane.org>,
	"Tony Lindgren" <tony-4v6yS6AI5VpBDgjK7y7TUQ@public.gmane.org>,
	"Liam Girdwood"
	<lgirdwood-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>,
	"Milo Kim" <milo.kim-l0cyMroinI0@public.gmane.org>,
	devicetree-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
	linux-arm-kernel-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r@public.gmane.org,
	linux-omap-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
Subject: Re: [PATCH 4/6] regulator: lp872x: Add enable GPIO pin support
Date: Thu, 24 Dec 2015 19:12:53 +0100	[thread overview]
Message-ID: <1450980773.11913.3.camel@collins> (raw)
In-Reply-To: <20151223115632.GS16023-GFdadSzt00ze9xe1eoZjHA@public.gmane.org>

[-- Attachment #1: Type: text/plain, Size: 2342 bytes --]

Le mercredi 23 décembre 2015 à 11:56 +0000, Mark Brown a écrit :
> On Wed, Dec 23, 2015 at 11:58:37AM +0100, Paul Kocialkowski wrote:
> 
> > +	gpio = lp->pdata->enable_gpio;
> > +	if (!gpio_is_valid(gpio))
> > +		return 0;
> > +
> > +	/* Always set enable GPIO high. */
> > +	ret = devm_gpio_request_one(lp->dev, gpio, GPIOF_OUT_INIT_HIGH, "LP872X EN");
> > +	if (ret) {
> > +		dev_err(lp->dev, "gpio request err: %d\n", ret);
> > +		return ret;
> > +	}
> 
> This isn't really adding support for the enable GPIO as the changelog
> suggests, it's requesting but not managing the GPIO.  Since there is
> core support for manging enable GPIOs this seems especially silly,
> please tell the core about the GPIO and then it will work at runtime
> too.

It looks like the core bindings for GPIO can only be used instead of the
rdev->desc->ops->enable callback, not jointly, which doesn't fit my use
case, where both the GPIO and register write have to be used to enable
regulators.

I think it would be worth making it possible to use both in core, since
that situation is probably shared with other regulators. I suggest the
following diff (that would be split into a separate patch in v2 of this
series):

diff --git a/drivers/regulator/core.c b/drivers/regulator/core.c
index e92f344..dd0674f 100644
--- a/drivers/regulator/core.c
+++ b/drivers/regulator/core.c
@@ -1963,7 +1963,6 @@ static int regulator_ena_gpio_ctrl(struct
regulator_dev *rdev, bool enable)
 		if (pin->enable_count == 0)
 			gpiod_set_value_cansleep(pin->gpiod,
 						 !pin->ena_gpio_invert);
-
 		pin->enable_count++;
 	} else {
 		if (pin->enable_count > 1) {
@@ -2063,6 +2062,14 @@ static int _regulator_do_enable(struct
regulator_dev *rdev)
 		}
 	}
 
+	if (rdev->desc->ops->enable) {
+		ret = rdev->desc->ops->enable(rdev);
+		if (ret < 0)
+			return ret;
+	} else if (!rdev->ena_pin) {
+		return -EINVAL;
+	}
+
 	if (rdev->ena_pin) {
 		if (!rdev->ena_gpio_state) {
 			ret = regulator_ena_gpio_ctrl(rdev, true);
@@ -2070,10 +2077,6 @@ static int _regulator_do_enable(struct
regulator_dev *rdev)
 				return ret;
 			rdev->ena_gpio_state = 1;
 		}
-	} else if (rdev->desc->ops->enable) {
-		ret = rdev->desc->ops->enable(rdev);
-		if (ret < 0)
-			return ret;
 	} else {
 		return -EINVAL;
 	}

[-- Attachment #2: This is a digitally signed message part --]
[-- Type: application/pgp-signature, Size: 819 bytes --]

  parent reply	other threads:[~2015-12-24 18:12 UTC|newest]

Thread overview: 42+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-12-23 10:58 [PATCH 0/6] LG Optimus Black (P970) codename sniper support and lp872x improvements Paul Kocialkowski
2015-12-23 10:58 ` [PATCH 1/6] regulator: lp872x: Add missing of_match in regulators descriptions Paul Kocialkowski
2015-12-28  1:04   ` Milo Kim
2015-12-23 10:58 ` [PATCH 2/6] regulator: lp872x: Get rid of duplicate reference to DVS GPIO Paul Kocialkowski
2015-12-28  1:05   ` Milo Kim
2015-12-23 10:58 ` [PATCH 3/6] regulator: lp872x: Remove warning about invalid " Paul Kocialkowski
2015-12-23 11:41   ` Mark Brown
2015-12-23 11:50     ` Paul Kocialkowski
2015-12-23 11:58       ` Mark Brown
2015-12-23 10:58 ` [PATCH 4/6] regulator: lp872x: Add enable GPIO pin support Paul Kocialkowski
     [not found]   ` <1450868319-20513-5-git-send-email-contact-W9ppeneeCTY@public.gmane.org>
2015-12-23 11:56     ` Mark Brown
2015-12-23 12:52       ` Paul Kocialkowski
     [not found]       ` <20151223115632.GS16023-GFdadSzt00ze9xe1eoZjHA@public.gmane.org>
2015-12-24 18:12         ` Paul Kocialkowski [this message]
2015-12-24 19:35           ` Mark Brown
2015-12-24 20:05             ` Paul Kocialkowski
2015-12-28  0:56       ` Milo Kim
     [not found]         ` <568088B4.6090207-l0cyMroinI0@public.gmane.org>
2015-12-28 22:49           ` Paul Kocialkowski
2015-12-29  0:45             ` Milo Kim
2015-12-29 11:13               ` Paul Kocialkowski
2015-12-30  0:22                 ` Milo Kim
2015-12-30  8:35                   ` Paul Kocialkowski
2015-12-30 16:33                     ` Mark Brown
2015-12-30 18:37                       ` Paul Kocialkowski
2015-12-31 21:40                         ` Mark Brown
     [not found]                           ` <20151231214007.GC16023-GFdadSzt00ze9xe1eoZjHA@public.gmane.org>
2015-12-31 21:59                             ` Paul Kocialkowski
2015-12-31 22:14                               ` Mark Brown
     [not found]                                 ` <20151231221407.GF16023-GFdadSzt00ze9xe1eoZjHA@public.gmane.org>
2016-01-03 10:19                                   ` Paul Kocialkowski
2016-01-16  7:32                                   ` Paul Kocialkowski
2016-01-18 16:32                                     ` Mark Brown
2016-02-05 18:48                                       ` Paul Kocialkowski
2015-12-28  0:34     ` Milo Kim
2016-02-05 18:49       ` Paul Kocialkowski
2015-12-29 20:02     ` Rob Herring
2015-12-29 21:26       ` Paul Kocialkowski
2015-12-29 21:55         ` Rob Herring
2016-02-05 18:48           ` Paul Kocialkowski
2015-12-23 10:58 ` [PATCH 5/6] ARM: LG Optimus Black (P970) codename sniper support, with basic features Paul Kocialkowski
     [not found]   ` <1450868319-20513-6-git-send-email-contact-W9ppeneeCTY@public.gmane.org>
2015-12-23 15:44     ` Tony Lindgren
2015-12-24 19:38       ` Paul Kocialkowski
2015-12-23 16:03   ` Javier Martinez Canillas
     [not found]     ` <CABxcv=moAUEPo8sq5KhuLZChrQtwjF1aBeNvV1i8HvUnwDXMZA-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2015-12-24 19:38       ` Paul Kocialkowski
2015-12-23 10:58 ` [PATCH 6/6] ARM: multi_v7_defconfig: Enable LP872x regulator support Paul Kocialkowski

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1450980773.11913.3.camel@collins \
    --to=contact-w9ppeneecty@public.gmane.org \
    --cc=bcousson-rdvid1DuHRBWk0Htik3J/w@public.gmane.org \
    --cc=broonie-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org \
    --cc=devicetree-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
    --cc=galak-sgV2jX0FEOL9JmXXK+q4OQ@public.gmane.org \
    --cc=ijc+devicetree-KcIKpvwj1kUDXYZnReoRVg@public.gmane.org \
    --cc=lgirdwood-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org \
    --cc=linux-arm-kernel-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r@public.gmane.org \
    --cc=linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
    --cc=linux-lFZ/pmaqli7XmaaqVzeoHQ@public.gmane.org \
    --cc=linux-omap-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
    --cc=mark.rutland-5wv7dgnIgG8@public.gmane.org \
    --cc=milo.kim-l0cyMroinI0@public.gmane.org \
    --cc=pawel.moll-5wv7dgnIgG8@public.gmane.org \
    --cc=robh+dt-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org \
    --cc=tony-4v6yS6AI5VpBDgjK7y7TUQ@public.gmane.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).