All of lore.kernel.org
 help / color / mirror / Atom feed
From: Bartosz Golaszewski <brgl@bgdev.pl>
To: Linus Walleij <linus.walleij@linaro.org>,
	Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Cc: linux-kernel@vger.kernel.org, linux-gpio@vger.kernel.org,
	Bartosz Golaszewski <bartosz.golaszewski@linaro.org>
Subject: [PATCH v2 43/62] pinctrl: change the signature of pinctrl_get_device_gpio_range()
Date: Wed, 11 Oct 2023 14:08:11 +0200	[thread overview]
Message-ID: <20231011120830.49324-44-brgl@bgdev.pl> (raw)
In-Reply-To: <20231011120830.49324-1-brgl@bgdev.pl>

From: Bartosz Golaszewski <bartosz.golaszewski@linaro.org>

Modify pinctrl_get_device_gpio_range() to be in line with public GPIO
helpers and take a pair of GPIO chip & offset as arguments.

Signed-off-by: Bartosz Golaszewski <bartosz.golaszewski@linaro.org>
---
 drivers/pinctrl/core.c | 22 ++++++++++------------
 1 file changed, 10 insertions(+), 12 deletions(-)

diff --git a/drivers/pinctrl/core.c b/drivers/pinctrl/core.c
index 24cc075044e9..2eebd86ca2bc 100644
--- a/drivers/pinctrl/core.c
+++ b/drivers/pinctrl/core.c
@@ -372,7 +372,8 @@ static bool pinctrl_ready_for_gpio_range(unsigned gpio) { return true; }
 
 /**
  * pinctrl_get_device_gpio_range() - find device for GPIO range
- * @gpio: the pin to locate the pin controller for
+ * @gc: GPIO chip structure from the GPIO subsystem
+ * @offset: hardware offset of the GPIO relative to the controller
  * @outdev: the pin control device if found
  * @outrange: the GPIO range if found
  *
@@ -381,7 +382,8 @@ static bool pinctrl_ready_for_gpio_range(unsigned gpio) { return true; }
  * -EPROBE_DEFER if the GPIO range could not be found in any device since it
  * may still have not been registered.
  */
-static int pinctrl_get_device_gpio_range(unsigned gpio,
+static int pinctrl_get_device_gpio_range(struct gpio_chip *gc,
+					 unsigned int offset,
 					 struct pinctrl_dev **outdev,
 					 struct pinctrl_gpio_range **outrange)
 {
@@ -393,7 +395,7 @@ static int pinctrl_get_device_gpio_range(unsigned gpio,
 	list_for_each_entry(pctldev, &pinctrldev_list, node) {
 		struct pinctrl_gpio_range *range;
 
-		range = pinctrl_match_gpio_range(pctldev, gpio);
+		range = pinctrl_match_gpio_range(pctldev, gc->base + offset);
 		if (range) {
 			*outdev = pctldev;
 			*outrange = range;
@@ -767,7 +769,7 @@ bool pinctrl_gpio_can_use_line(struct gpio_chip *gc, unsigned int offset)
 	 * we're probably dealing with GPIO driver
 	 * without a backing pin controller - bail out.
 	 */
-	if (pinctrl_get_device_gpio_range(gc->base + offset, &pctldev, &range))
+	if (pinctrl_get_device_gpio_range(gc, offset, &pctldev, &range))
 		return true;
 
 	mutex_lock(&pctldev->mutex);
@@ -798,8 +800,7 @@ int pinctrl_gpio_request(struct gpio_chip *gc, unsigned int offset)
 	struct pinctrl_dev *pctldev;
 	int ret, pin;
 
-	ret = pinctrl_get_device_gpio_range(gc->base + offset, &pctldev,
-					    &range);
+	ret = pinctrl_get_device_gpio_range(gc, offset, &pctldev, &range);
 	if (ret) {
 		if (pinctrl_ready_for_gpio_range(gc->base + offset))
 			ret = 0;
@@ -834,8 +835,7 @@ void pinctrl_gpio_free(struct gpio_chip *gc, unsigned int offset)
 	struct pinctrl_dev *pctldev;
 	int ret, pin;
 
-	ret = pinctrl_get_device_gpio_range(gc->base + offset, &pctldev,
-					    &range);
+	ret = pinctrl_get_device_gpio_range(gc, offset, &pctldev, &range);
 	if (ret)
 		return;
 
@@ -858,8 +858,7 @@ static int pinctrl_gpio_direction(struct gpio_chip *gc, unsigned int offset,
 	int ret;
 	int pin;
 
-	ret = pinctrl_get_device_gpio_range(gc->base + offset, &pctldev,
-					    &range);
+	ret = pinctrl_get_device_gpio_range(gc, offset, &pctldev, &range);
 	if (ret) {
 		return ret;
 	}
@@ -923,8 +922,7 @@ int pinctrl_gpio_set_config(struct gpio_chip *gc, unsigned int offset,
 	struct pinctrl_dev *pctldev;
 	int ret, pin;
 
-	ret = pinctrl_get_device_gpio_range(gc->base + offset, &pctldev,
-					    &range);
+	ret = pinctrl_get_device_gpio_range(gc, offset, &pctldev, &range);
 	if (ret)
 		return ret;
 
-- 
2.39.2


  parent reply	other threads:[~2023-10-11 12:21 UTC|newest]

Thread overview: 73+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-10-11 12:07 [PATCH v2 00/62] pinctrl: don't use GPIOLIB global numberspace in helpers Bartosz Golaszewski
2023-10-11 12:07 ` [PATCH v2 01/62] pinctrl: remove unneeded extern specifiers from consumer.h Bartosz Golaszewski
2023-10-11 16:44   ` Andy Shevchenko
2023-10-11 12:07 ` [PATCH v2 02/62] pinctrl: provide new GPIO-to-pinctrl glue helpers Bartosz Golaszewski
2023-10-11 12:07 ` [PATCH v2 03/62] gpiolib: generic: use new pinctrl GPIO helpers Bartosz Golaszewski
2023-10-11 12:07 ` [PATCH v2 04/62] gpio: cdev: use pinctrl_gpio_can_use_line_new() Bartosz Golaszewski
2023-10-11 16:58   ` Andy Shevchenko
2023-10-11 12:07 ` [PATCH v2 05/62] gpio: rcar: use new pinctrl GPIO helpers Bartosz Golaszewski
2023-10-11 12:07 ` [PATCH v2 06/62] gpio: tegra: " Bartosz Golaszewski
2023-10-11 12:07 ` [PATCH v2 07/62] gpio: em: " Bartosz Golaszewski
2023-10-11 12:07 ` [PATCH v2 08/62] gpio: aspeed: " Bartosz Golaszewski
2023-10-11 12:07 ` [PATCH v2 09/62] gpio: mvebu: " Bartosz Golaszewski
2023-10-11 12:07 ` [PATCH v2 10/62] gpio: pxa: " Bartosz Golaszewski
2023-10-11 12:07 ` [PATCH v2 11/62] gpio: rockchip: " Bartosz Golaszewski
2023-10-11 12:07 ` [PATCH v2 12/62] gpio: vf610: " Bartosz Golaszewski
2023-10-11 12:07 ` [PATCH v2 13/62] pinctrl: nuvoton: " Bartosz Golaszewski
2023-10-11 12:07 ` [PATCH v2 14/62] pinctrl: renesas: " Bartosz Golaszewski
2023-10-11 12:07 ` [PATCH v2 15/62] pinctrl: bcm: " Bartosz Golaszewski
2023-10-11 12:07 ` [PATCH v2 16/62] pinctrl: stm32: " Bartosz Golaszewski
2023-10-11 12:07 ` [PATCH v2 17/62] pinctrl: spear: " Bartosz Golaszewski
2023-10-11 12:07 ` [PATCH v2 18/62] pinctrl: starfive: " Bartosz Golaszewski
2023-10-11 12:07 ` [PATCH v2 19/62] pinctrl: ocelot: " Bartosz Golaszewski
2023-10-11 12:07 ` [PATCH v2 20/62] pinctrl: rk805: " Bartosz Golaszewski
2023-10-11 12:07 ` [PATCH v2 21/62] pinctrl: cirrus: " Bartosz Golaszewski
2023-10-11 12:07 ` [PATCH v2 22/62] pinctrl: mediatek: " Bartosz Golaszewski
2023-10-11 12:07 ` [PATCH v2 23/62] pinctrl: axp209: " Bartosz Golaszewski
2023-10-11 12:07 ` [PATCH v2 24/62] pinctrl: vt8500: " Bartosz Golaszewski
2023-10-11 12:07 ` [PATCH v2 25/62] pinctrl: cy8c95x0: " Bartosz Golaszewski
2023-10-11 12:07 ` [PATCH v2 26/62] pinctrl: as3722: " Bartosz Golaszewski
2023-10-11 12:07 ` [PATCH v2 27/62] pinctrl: ingenic: " Bartosz Golaszewski
2023-10-11 12:07 ` [PATCH v2 28/62] pinctrl: intel: " Bartosz Golaszewski
2023-10-11 12:07 ` [PATCH v2 29/62] pinctrl: st: " Bartosz Golaszewski
2023-10-11 12:07 ` [PATCH v2 30/62] pinctrl: remove pinctrl_gpio_can_use_line() Bartosz Golaszewski
2023-10-11 12:07 ` [PATCH v2 31/62] pinctrl: remove pinctrl_gpio_request() Bartosz Golaszewski
2023-10-11 16:54   ` Andy Shevchenko
2023-10-12 19:43     ` Bartosz Golaszewski
2023-10-11 12:08 ` [PATCH v2 32/62] pinctrl: remove pinctrl_gpio_free() Bartosz Golaszewski
2023-10-11 12:08 ` [PATCH v2 33/62] pinctrl: remove pinctrl_gpio_direction_input() Bartosz Golaszewski
2023-10-11 12:08 ` [PATCH v2 34/62] pinctrl: remove pinctrl_gpio_direction_output() Bartosz Golaszewski
2023-10-11 12:08 ` [PATCH v2 35/62] pinctrl: remove pinctrl_gpio_set_config() Bartosz Golaszewski
2023-10-11 12:08 ` [PATCH v2 36/62] treewide: rename pinctrl_gpio_can_use_line_new() Bartosz Golaszewski
2023-10-14  7:22   ` kernel test robot
2023-10-11 12:08 ` [PATCH v2 37/62] treewide: rename pinctrl_gpio_request_new() Bartosz Golaszewski
2023-10-14  7:54   ` kernel test robot
2023-10-11 12:08 ` [PATCH v2 38/62] treewide: rename pinctrl_gpio_free_new() Bartosz Golaszewski
2023-10-14  8:34   ` kernel test robot
2023-10-11 12:08 ` [PATCH v2 39/62] treewide: rename pinctrl_gpio_direction_input_new() Bartosz Golaszewski
2023-10-11 12:08 ` [PATCH v2 40/62] treewide: rename pinctrl_gpio_direction_output_new() Bartosz Golaszewski
2023-10-11 12:08 ` [PATCH v2 41/62] treewide: rename pinctrl_gpio_set_config_new() Bartosz Golaszewski
2023-10-11 12:08 ` [PATCH v2 42/62] pinctrl: change the signature of pinctrl_gpio_direction() Bartosz Golaszewski
2023-10-11 12:08 ` Bartosz Golaszewski [this message]
2023-10-11 12:08 ` [PATCH v2 44/62] pinctrl: change the signature of pinctrl_match_gpio_range() Bartosz Golaszewski
2023-10-11 12:08 ` [PATCH v2 45/62] pinctrl: change the signature of gpio_to_pin() Bartosz Golaszewski
2023-10-11 12:08 ` [PATCH v2 46/62] pinctrl: change the signature of pinctrl_ready_for_gpio_range() Bartosz Golaszewski
2023-10-11 12:08 ` [PATCH v2 47/62] pinctrl: intel: drop the wrappers around pinctrl_gpio_direction_input() Bartosz Golaszewski
2023-10-11 12:08 ` [PATCH v2 48/62] pinctrl: st: drop the wrapper " Bartosz Golaszewski
2023-10-11 12:08 ` [PATCH v2 49/62] pinctrl: ingenic: " Bartosz Golaszewski
2023-10-11 12:08 ` [PATCH v2 50/62] pinctrl: as3722: " Bartosz Golaszewski
2023-10-11 12:08 ` [PATCH v2 51/62] pinctrl: cy8c95x0: " Bartosz Golaszewski
2023-10-11 12:08 ` [PATCH v2 52/62] pinctrl: vt8500: " Bartosz Golaszewski
2023-10-11 12:08 ` [PATCH v2 53/62] pinctrl: axp209: " Bartosz Golaszewski
2023-10-11 12:08 ` [PATCH v2 54/62] pinctrl: rk805: " Bartosz Golaszewski
2023-10-11 12:08 ` [PATCH v2 55/62] pinctrl: mediatek: drop the wrappers " Bartosz Golaszewski
2023-10-11 12:08 ` [PATCH v2 56/62] pinctrl: cirrus: drop the wrapper " Bartosz Golaszewski
2023-10-11 12:08 ` [PATCH v2 57/62] pinctrl: ocelot: " Bartosz Golaszewski
2023-10-11 12:08 ` [PATCH v2 58/62] pinctrl: starfive: drop wrappers around pinctrl_gpio_request/free() Bartosz Golaszewski
2023-10-11 12:08 ` [PATCH v2 59/62] pinctrl: stm32: drop wrappers around pinctrl_gpio_free/input() Bartosz Golaszewski
2023-10-11 12:08 ` [PATCH v2 60/62] pinctrl: nuvoton: drop wrappers around pinctrl_gpio_request/free() Bartosz Golaszewski
2023-10-11 12:08 ` [PATCH v2 61/62] pinctrl: em: drop the wrapper around pinctrl_gpio_request() Bartosz Golaszewski
2023-10-11 12:08 ` [PATCH v2 62/62] pinctrl: tegra: " Bartosz Golaszewski
2023-10-11 17:04 ` [PATCH v2 00/62] pinctrl: don't use GPIOLIB global numberspace in helpers Andy Shevchenko
2023-10-12  7:08 ` Linus Walleij
2023-10-12 13:23   ` Bartosz Golaszewski

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=20231011120830.49324-44-brgl@bgdev.pl \
    --to=brgl@bgdev.pl \
    --cc=andriy.shevchenko@linux.intel.com \
    --cc=bartosz.golaszewski@linaro.org \
    --cc=linus.walleij@linaro.org \
    --cc=linux-gpio@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.