From: Bartosz Golaszewski <brgl@bgdev.pl>
To: Linus Walleij <linus.walleij@linaro.org>,
Andy Shevchenko <andy@kernel.org>
Cc: linux-gpio@vger.kernel.org, linux-kernel@vger.kernel.org,
Bartosz Golaszewski <bartosz.golaszewski@linaro.org>
Subject: [PATCH 30/36] pinctrl: remove old GPIO helpers
Date: Tue, 3 Oct 2023 16:51:08 +0200 [thread overview]
Message-ID: <20231003145114.21637-31-brgl@bgdev.pl> (raw)
In-Reply-To: <20231003145114.21637-1-brgl@bgdev.pl>
From: Bartosz Golaszewski <bartosz.golaszewski@linaro.org>
Old variants of pinctrl GPIO helpers are no longer used. Let's remove
them as well as convert all static functions in pinctrl/core.c that
still deal with global GPIO numbers to using the gpio_chip + offset
pairs.
Signed-off-by: Bartosz Golaszewski <bartosz.golaszewski@linaro.org>
---
drivers/pinctrl/core.c | 242 ++++++++++++-------------------
include/linux/pinctrl/consumer.h | 35 -----
2 files changed, 94 insertions(+), 183 deletions(-)
diff --git a/drivers/pinctrl/core.c b/drivers/pinctrl/core.c
index 679f48c5beeb..5bad56ed8176 100644
--- a/drivers/pinctrl/core.c
+++ b/drivers/pinctrl/core.c
@@ -268,7 +268,8 @@ static int pinctrl_register_pins(struct pinctrl_dev *pctldev,
/**
* gpio_to_pin() - GPIO range GPIO number to pin number translation
* @range: GPIO range used for the translation
- * @gpio: gpio pin to translate to a pin number
+ * @gc: GPIO chip structure from the GPIO subsystem
+ * @offset: hardware offset of the GPIO relative to the controller
*
* Finds the pin number for a given GPIO using the specified GPIO range
* as a base for translation. The distinction between linear GPIO ranges
@@ -279,25 +280,28 @@ static int pinctrl_register_pins(struct pinctrl_dev *pctldev,
* result of successful pinctrl_get_device_gpio_range calls)!
*/
static inline int gpio_to_pin(struct pinctrl_gpio_range *range,
- unsigned int gpio)
+ struct gpio_chip *gc, unsigned int offset)
{
- unsigned int offset = gpio - range->base;
+ unsigned int pin = gc->base + offset - range->base;
+
if (range->pins)
- return range->pins[offset];
+ return range->pins[pin];
else
- return range->pin_base + offset;
+ return range->pin_base + pin;
}
/**
* pinctrl_match_gpio_range() - check if a certain GPIO pin is in range
* @pctldev: pin controller device to check
- * @gpio: gpio pin to check taken from the global GPIO pin space
+ * @gc: GPIO chip structure from the GPIO subsystem
+ * @offset: hardware offset of the GPIO relative to the controller
*
* Tries to match a GPIO pin number to the ranges handled by a certain pin
* controller, return the range or NULL
*/
static struct pinctrl_gpio_range *
-pinctrl_match_gpio_range(struct pinctrl_dev *pctldev, unsigned gpio)
+pinctrl_match_gpio_range(struct pinctrl_dev *pctldev, struct gpio_chip *gc,
+ unsigned int offset)
{
struct pinctrl_gpio_range *range;
@@ -305,8 +309,8 @@ pinctrl_match_gpio_range(struct pinctrl_dev *pctldev, unsigned gpio)
/* Loop over the ranges */
list_for_each_entry(range, &pctldev->gpio_ranges, node) {
/* Check if we're in the valid range */
- if (gpio >= range->base &&
- gpio < range->base + range->npins) {
+ if (gc->base + offset >= range->base &&
+ gc->base + offset < range->base + range->npins) {
mutex_unlock(&pctldev->mutex);
return range;
}
@@ -318,7 +322,8 @@ pinctrl_match_gpio_range(struct pinctrl_dev *pctldev, unsigned gpio)
/**
* pinctrl_ready_for_gpio_range() - check if other GPIO pins of
* the same GPIO chip are in range
- * @gpio: gpio pin to check taken from the global GPIO pin space
+ * @gc: GPIO chip structure from the GPIO subsystem
+ * @offset: hardware offset of the GPIO relative to the controller
*
* This function is complement of pinctrl_match_gpio_range(). If the return
* value of pinctrl_match_gpio_range() is NULL, this function could be used
@@ -329,19 +334,10 @@ pinctrl_match_gpio_range(struct pinctrl_dev *pctldev, unsigned gpio)
* is false, it means that pinctrl device may not be ready.
*/
#ifdef CONFIG_GPIOLIB
-static bool pinctrl_ready_for_gpio_range(unsigned gpio)
+static bool pinctrl_ready_for_gpio_range(struct gpio_chip *gc)
{
struct pinctrl_dev *pctldev;
struct pinctrl_gpio_range *range = NULL;
- /*
- * FIXME: "gpio" here is a number in the global GPIO numberspace.
- * get rid of this from the ranges eventually and get the GPIO
- * descriptor from the gpio_chip.
- */
- struct gpio_chip *chip = gpiod_to_chip(gpio_to_desc(gpio));
-
- if (WARN(!chip, "no gpio_chip for gpio%i?", gpio))
- return false;
mutex_lock(&pinctrldev_list_mutex);
@@ -351,8 +347,8 @@ static bool pinctrl_ready_for_gpio_range(unsigned gpio)
mutex_lock(&pctldev->mutex);
list_for_each_entry(range, &pctldev->gpio_ranges, node) {
/* Check if any gpio range overlapped with gpio chip */
- if (range->base + range->npins - 1 < chip->base ||
- range->base > chip->base + chip->ngpio - 1)
+ if (range->base + range->npins - 1 < gc->base ||
+ range->base > gc->base + gc->ngpio - 1)
continue;
mutex_unlock(&pctldev->mutex);
mutex_unlock(&pinctrldev_list_mutex);
@@ -366,12 +362,13 @@ static bool pinctrl_ready_for_gpio_range(unsigned gpio)
return false;
}
#else
-static bool pinctrl_ready_for_gpio_range(unsigned gpio) { return true; }
+static bool pinctrl_ready_for_gpio_range(struct gpio_chip *gc) { return true; }
#endif
/**
* 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
*
@@ -380,7 +377,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)
{
@@ -392,7 +390,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, offset);
if (range) {
*outdev = pctldev;
*outrange = range;
@@ -754,10 +752,10 @@ int pinctrl_get_group_selector(struct pinctrl_dev *pctldev,
return -EINVAL;
}
-bool pinctrl_gpio_can_use_line(unsigned gpio)
+bool pinctrl_gpio_can_use_line_new(struct gpio_chip *gc, unsigned int offset)
{
- struct pinctrl_dev *pctldev;
struct pinctrl_gpio_range *range;
+ struct pinctrl_dev *pctldev;
bool result;
int pin;
@@ -766,56 +764,19 @@ bool pinctrl_gpio_can_use_line(unsigned gpio)
* we're probably dealing with GPIO driver
* without a backing pin controller - bail out.
*/
- if (pinctrl_get_device_gpio_range(gpio, &pctldev, &range))
+ if (pinctrl_get_device_gpio_range(gc, offset, &pctldev, &range))
return true;
- mutex_lock(&pctldev->mutex);
-
- /* Convert to the pin controllers number space */
- pin = gpio_to_pin(range, gpio);
-
- result = pinmux_can_be_used_for_gpio(pctldev, pin);
-
- mutex_unlock(&pctldev->mutex);
+ scoped_guard(mutex, &pctldev->mutex) {
+ /* Convert to the pin controllers number space */
+ pin = gpio_to_pin(range, gc, offset);
+ result = pinmux_can_be_used_for_gpio(pctldev, pin);
+ }
return result;
}
-EXPORT_SYMBOL_GPL(pinctrl_gpio_can_use_line);
-
-bool pinctrl_gpio_can_use_line_new(struct gpio_chip *gc, unsigned int offset)
-{
- return pinctrl_gpio_can_use_line(gc->base + offset);
-}
EXPORT_SYMBOL_GPL(pinctrl_gpio_can_use_line_new);
-/* This function is deprecated and will be removed. Don't use. */
-int pinctrl_gpio_request(unsigned gpio)
-{
- struct pinctrl_dev *pctldev;
- struct pinctrl_gpio_range *range;
- int ret;
- int pin;
-
- ret = pinctrl_get_device_gpio_range(gpio, &pctldev, &range);
- if (ret) {
- if (pinctrl_ready_for_gpio_range(gpio))
- ret = 0;
- return ret;
- }
-
- mutex_lock(&pctldev->mutex);
-
- /* Convert to the pin controllers number space */
- pin = gpio_to_pin(range, gpio);
-
- ret = pinmux_request_gpio(pctldev, range, pin, gpio);
-
- mutex_unlock(&pctldev->mutex);
-
- return ret;
-}
-EXPORT_SYMBOL_GPL(pinctrl_gpio_request);
-
/**
* pinctrl_gpio_request_new() - request a single pin to be used as GPIO
* @gc: GPIO chip structure from the GPIO subsystem
@@ -827,33 +788,29 @@ EXPORT_SYMBOL_GPL(pinctrl_gpio_request);
*/
int pinctrl_gpio_request_new(struct gpio_chip *gc, unsigned int offset)
{
- return pinctrl_gpio_request(gc->base + offset);
+ struct pinctrl_gpio_range *range;
+ struct pinctrl_dev *pctldev;
+ int ret, pin;
+
+ ret = pinctrl_get_device_gpio_range(gc, offset, &pctldev, &range);
+ if (ret) {
+ if (pinctrl_ready_for_gpio_range(gc))
+ ret = 0;
+
+ return ret;
+ }
+
+ scoped_guard(mutex, &pctldev->mutex) {
+ /* Convert to the pin controllers number space */
+ pin = gpio_to_pin(range, gc, offset);
+ ret = pinmux_request_gpio(pctldev, range, pin,
+ gc->base + offset);
+ }
+
+ return ret;
}
EXPORT_SYMBOL_GPL(pinctrl_gpio_request_new);
-/* This function is deprecated and will be removed. Don't use. */
-void pinctrl_gpio_free(unsigned gpio)
-{
- struct pinctrl_dev *pctldev;
- struct pinctrl_gpio_range *range;
- int ret;
- int pin;
-
- ret = pinctrl_get_device_gpio_range(gpio, &pctldev, &range);
- if (ret) {
- return;
- }
- mutex_lock(&pctldev->mutex);
-
- /* Convert to the pin controllers number space */
- pin = gpio_to_pin(range, gpio);
-
- pinmux_free_gpio(pctldev, pin, range);
-
- mutex_unlock(&pctldev->mutex);
-}
-EXPORT_SYMBOL_GPL(pinctrl_gpio_free);
-
/**
* pinctrl_gpio_free_new() - free control on a single pin, currently used as GPIO
* @gc: GPIO chip structure from the GPIO subsystem
@@ -865,40 +822,42 @@ EXPORT_SYMBOL_GPL(pinctrl_gpio_free);
*/
void pinctrl_gpio_free_new(struct gpio_chip *gc, unsigned int offset)
{
- return pinctrl_gpio_free(gc->base + offset);
+ struct pinctrl_gpio_range *range;
+ struct pinctrl_dev *pctldev;
+ int ret, pin;
+
+ ret = pinctrl_get_device_gpio_range(gc, offset, &pctldev, &range);
+ if (ret)
+ return;
+
+ guard(mutex)(&pctldev->mutex);
+
+ /* Convert to the pin controllers number space */
+ pin = gpio_to_pin(range, gc, offset);
+ pinmux_free_gpio(pctldev, pin, range);
}
EXPORT_SYMBOL_GPL(pinctrl_gpio_free_new);
-static int pinctrl_gpio_direction(unsigned gpio, bool input)
+static int
+pinctrl_gpio_direction(struct gpio_chip *gc, unsigned int offset, bool input)
{
- struct pinctrl_dev *pctldev;
struct pinctrl_gpio_range *range;
- int ret;
- int pin;
+ struct pinctrl_dev *pctldev;
+ int ret, pin;
- ret = pinctrl_get_device_gpio_range(gpio, &pctldev, &range);
- if (ret) {
+ ret = pinctrl_get_device_gpio_range(gc, offset, &pctldev, &range);
+ if (ret)
return ret;
+
+ scoped_guard(mutex, &pctldev->mutex) {
+ /* Convert to the pin controllers number space */
+ pin = gpio_to_pin(range, gc, offset);
+ ret = pinmux_gpio_direction(pctldev, range, pin, input);
}
- mutex_lock(&pctldev->mutex);
-
- /* Convert to the pin controllers number space */
- pin = gpio_to_pin(range, gpio);
- ret = pinmux_gpio_direction(pctldev, range, pin, input);
-
- mutex_unlock(&pctldev->mutex);
-
return ret;
}
-/* This function is deprecated and will be removed. Don't use. */
-int pinctrl_gpio_direction_input(unsigned gpio)
-{
- return pinctrl_gpio_direction(gpio, true);
-}
-EXPORT_SYMBOL_GPL(pinctrl_gpio_direction_input);
-
/**
* pinctrl_gpio_direction_input_new() - request a GPIO pin to go into input mode
* @gc: GPIO chip structure from the GPIO subsystem
@@ -910,17 +869,10 @@ EXPORT_SYMBOL_GPL(pinctrl_gpio_direction_input);
*/
int pinctrl_gpio_direction_input_new(struct gpio_chip *gc, unsigned int offset)
{
- return pinctrl_gpio_direction_input(gc->base + offset);
+ return pinctrl_gpio_direction(gc, offset, true);
}
EXPORT_SYMBOL_GPL(pinctrl_gpio_direction_input_new);
-/* This function is deprecated and will be removed. Don't use. */
-int pinctrl_gpio_direction_output(unsigned gpio)
-{
- return pinctrl_gpio_direction(gpio, false);
-}
-EXPORT_SYMBOL_GPL(pinctrl_gpio_direction_output);
-
/**
* pinctrl_gpio_direction_output_new() - request a GPIO pin to go into output
* mode
@@ -933,31 +885,10 @@ EXPORT_SYMBOL_GPL(pinctrl_gpio_direction_output);
*/
int pinctrl_gpio_direction_output_new(struct gpio_chip *gc, unsigned int offset)
{
- return pinctrl_gpio_direction_output(gc->base + offset);
+ return pinctrl_gpio_direction(gc, offset, false);
}
EXPORT_SYMBOL_GPL(pinctrl_gpio_direction_output_new);
-/* This function is deprecated and will be removed. Don't use. */
-int pinctrl_gpio_set_config(unsigned gpio, unsigned long config)
-{
- unsigned long configs[] = { config };
- struct pinctrl_gpio_range *range;
- struct pinctrl_dev *pctldev;
- int ret, pin;
-
- ret = pinctrl_get_device_gpio_range(gpio, &pctldev, &range);
- if (ret)
- return ret;
-
- mutex_lock(&pctldev->mutex);
- pin = gpio_to_pin(range, gpio);
- ret = pinconf_set_config(pctldev, pin, configs, ARRAY_SIZE(configs));
- mutex_unlock(&pctldev->mutex);
-
- return ret;
-}
-EXPORT_SYMBOL_GPL(pinctrl_gpio_set_config);
-
/**
* pinctrl_gpio_set_config_new() - Apply config to given GPIO pin
* @gc: GPIO chip structure from the GPIO subsystem
@@ -971,7 +902,22 @@ EXPORT_SYMBOL_GPL(pinctrl_gpio_set_config);
int pinctrl_gpio_set_config_new(struct gpio_chip *gc, unsigned int offset,
unsigned long config)
{
- return pinctrl_gpio_set_config(gc->base + offset, config);
+ unsigned long configs[] = { config };
+ struct pinctrl_gpio_range *range;
+ struct pinctrl_dev *pctldev;
+ int ret, pin;
+
+ ret = pinctrl_get_device_gpio_range(gc, offset, &pctldev, &range);
+ if (ret)
+ return ret;
+
+ scoped_guard(mutex, &pctldev->mutex) {
+ pin = gpio_to_pin(range, gc, offset);
+ ret = pinconf_set_config(pctldev, pin, configs,
+ ARRAY_SIZE(configs));
+ }
+
+ return ret;
}
EXPORT_SYMBOL_GPL(pinctrl_gpio_set_config_new);
diff --git a/include/linux/pinctrl/consumer.h b/include/linux/pinctrl/consumer.h
index c95c13983376..aa3a7a7ca52d 100644
--- a/include/linux/pinctrl/consumer.h
+++ b/include/linux/pinctrl/consumer.h
@@ -26,19 +26,13 @@ struct pinctrl_state;
#ifdef CONFIG_PINCTRL
/* External interface to pin control */
-bool pinctrl_gpio_can_use_line(unsigned gpio);
bool pinctrl_gpio_can_use_line_new(struct gpio_chip *gc, unsigned int offset);
-int pinctrl_gpio_request(unsigned gpio);
int pinctrl_gpio_request_new(struct gpio_chip *gc, unsigned int offset);
-void pinctrl_gpio_free(unsigned gpio);
void pinctrl_gpio_free_new(struct gpio_chip *gc, unsigned int offset);
-int pinctrl_gpio_direction_input(unsigned gpio);
int pinctrl_gpio_direction_input_new(struct gpio_chip *gc,
unsigned int offset);
-int pinctrl_gpio_direction_output(unsigned gpio);
int pinctrl_gpio_direction_output_new(struct gpio_chip *gc,
unsigned int offset);
-int pinctrl_gpio_set_config(unsigned gpio, unsigned long config);
int pinctrl_gpio_set_config_new(struct gpio_chip *gc, unsigned int offset,
unsigned long config);
@@ -73,64 +67,35 @@ static inline int pinctrl_pm_select_idle_state(struct device *dev)
#else /* !CONFIG_PINCTRL */
-static inline bool pinctrl_gpio_can_use_line(unsigned gpio)
-{
- return true;
-}
-
static inline bool
pinctrl_gpio_can_use_line_new(struct gpio_chip *gc, unsigned int offset)
{
return true;
}
-static inline int pinctrl_gpio_request(unsigned gpio)
-{
- return 0;
-}
-
static inline int
pinctrl_gpio_request_new(struct gpio_chip *gc, unsigned int offset)
{
return 0;
}
-static inline void pinctrl_gpio_free(unsigned gpio)
-{
-}
-
static inline void
pinctrl_gpio_free_new(struct gpio_chip *gc, unsigned int offset)
{
}
-static inline int pinctrl_gpio_direction_input(unsigned gpio)
-{
- return 0;
-}
-
static inline int
pinctrl_gpio_direction_input_new(struct gpio_chip *gc, unsigned int offset)
{
return 0;
}
-static inline int pinctrl_gpio_direction_output(unsigned gpio)
-{
- return 0;
-}
-
static inline int
pinctrl_gpio_direction_output_new(struct gpio_chip *gc, unsigned int offset)
{
return 0;
}
-static inline int pinctrl_gpio_set_config(unsigned gpio, unsigned long config)
-{
- return 0;
-}
-
static inline int
pinctrl_gpio_set_config_new(struct gpio_chip *gc, unsigned int offset,
unsigned long config)
--
2.39.2
next prev parent reply other threads:[~2023-10-03 14:52 UTC|newest]
Thread overview: 77+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-10-03 14:50 [PATCH 00/36] pinctrl: don't use GPIOLIB global numberspace in helpers Bartosz Golaszewski
2023-10-03 14:50 ` [PATCH 01/36] pinctrl: remove unneeded extern specifiers from consumer.h Bartosz Golaszewski
2023-10-03 21:39 ` Linus Walleij
2023-10-03 14:50 ` [PATCH 02/36] pinctrl: provide new GPIO-to-pinctrl glue helpers Bartosz Golaszewski
2023-10-03 15:08 ` Andy Shevchenko
2023-10-03 15:10 ` Andy Shevchenko
2023-10-03 14:50 ` [PATCH 03/36] gpiolib: generic: use new pinctrl GPIO helpers Bartosz Golaszewski
2023-10-03 15:14 ` Andy Shevchenko
2023-10-03 14:50 ` [PATCH 04/36] gpio: cdev: use pinctrl_gpio_can_use_line_new() Bartosz Golaszewski
2023-10-03 15:02 ` Kent Gibson
2023-10-03 15:17 ` Andy Shevchenko
2023-10-03 15:24 ` Kent Gibson
2023-10-03 18:07 ` Bartosz Golaszewski
2023-10-04 4:16 ` Kent Gibson
2023-10-04 7:52 ` Bartosz Golaszewski
2023-10-03 14:50 ` [PATCH 05/36] gpio: rcar: use new pinctrl GPIO helpers Bartosz Golaszewski
2023-10-09 11:22 ` Geert Uytterhoeven
2023-10-03 14:50 ` [PATCH 06/36] gpio: tegra: " Bartosz Golaszewski
2023-10-03 14:50 ` [PATCH 07/36] gpio: em: " Bartosz Golaszewski
2023-10-03 14:50 ` [PATCH 08/36] gpio: aspeed: " Bartosz Golaszewski
2023-10-03 23:30 ` Andrew Jeffery
2023-10-04 7:13 ` Bartosz Golaszewski
2023-10-09 9:45 ` Uwe Kleine-König
2023-10-03 14:50 ` [PATCH 09/36] gpio: mvebu: " Bartosz Golaszewski
2023-10-09 9:44 ` Uwe Kleine-König
2023-10-03 14:50 ` [PATCH 10/36] gpio: pxa: " Bartosz Golaszewski
2023-10-03 14:50 ` [PATCH 11/36] gpio: rockchip: " Bartosz Golaszewski
2023-10-05 9:58 ` Heiko Stübner
2023-10-03 14:50 ` [PATCH 12/36] gpio: vf610: " Bartosz Golaszewski
2023-10-03 14:50 ` [PATCH 13/36] pinctrl: nuvoton: " Bartosz Golaszewski
2023-10-03 14:50 ` [PATCH 14/36] pinctrl: renesas: " Bartosz Golaszewski
2023-10-09 11:22 ` Geert Uytterhoeven
2023-10-03 14:50 ` [PATCH 15/36] pinctrl: bcm: " Bartosz Golaszewski
2023-10-03 14:50 ` [PATCH 16/36] pinctrl: stm32: " Bartosz Golaszewski
2023-10-03 14:50 ` [PATCH 17/36] pinctrl: spear: " Bartosz Golaszewski
2023-10-04 6:01 ` Viresh Kumar
2023-10-03 14:50 ` [PATCH 18/36] pinctrl: starfive: " Bartosz Golaszewski
2023-10-04 9:37 ` Emil Renner Berthing
2023-10-04 9:39 ` Bartosz Golaszewski
2023-10-03 14:50 ` [PATCH 19/36] pinctrl: ocelot: " Bartosz Golaszewski
2023-10-03 14:50 ` [PATCH 20/36] pinctrl: rk805: " Bartosz Golaszewski
2023-10-03 14:50 ` [PATCH 21/36] pinctrl: cirrus: " Bartosz Golaszewski
2023-10-03 15:41 ` Charles Keepax
2023-10-03 14:51 ` [PATCH 22/36] pinctrl: mediatek: " Bartosz Golaszewski
2023-10-03 14:51 ` [PATCH 23/36] pinctrl: axp209: " Bartosz Golaszewski
2023-10-03 14:51 ` [PATCH 24/36] pinctrl: vt8500: " Bartosz Golaszewski
2023-10-03 14:51 ` [PATCH 25/36] pinctrl: cy8c95x0: " Bartosz Golaszewski
2023-10-03 15:11 ` Andy Shevchenko
2023-10-03 14:51 ` [PATCH 26/36] pinctrl: as3722: " Bartosz Golaszewski
2023-10-03 14:51 ` [PATCH 27/36] pinctrl: ingenic: " Bartosz Golaszewski
2023-10-03 14:51 ` [PATCH 28/36] pinctrl: intel: " Bartosz Golaszewski
2023-10-03 15:12 ` Andy Shevchenko
2023-10-04 7:33 ` Mika Westerberg
2023-10-03 14:51 ` [PATCH 29/36] pinctrl: st: " Bartosz Golaszewski
2023-10-04 14:41 ` Patrice CHOTARD
2023-10-03 14:51 ` Bartosz Golaszewski [this message]
2023-10-03 15:20 ` [PATCH 30/36] pinctrl: remove old " Andy Shevchenko
2023-10-04 8:49 ` Bartosz Golaszewski
2023-10-04 12:45 ` Andy Shevchenko
2023-10-03 18:34 ` kernel test robot
2023-10-03 14:51 ` [PATCH 31/36] treewide: rename pinctrl_gpio_can_use_line_new() Bartosz Golaszewski
2023-10-03 14:51 ` [PATCH 32/36] treewide: rename pinctrl_gpio_request_new() Bartosz Golaszewski
2023-10-03 14:51 ` [PATCH 33/36] treewide: rename pinctrl_gpio_free_new() Bartosz Golaszewski
2023-10-03 14:51 ` [PATCH 34/36] treewide: rename pinctrl_gpio_direction_input_new() Bartosz Golaszewski
2023-10-03 15:16 ` Andy Shevchenko
2023-10-03 19:08 ` Bartosz Golaszewski
2023-10-04 12:49 ` Andy Shevchenko
2023-10-04 12:53 ` Andy Shevchenko
2023-10-04 14:46 ` Bartosz Golaszewski
2023-10-03 14:51 ` [PATCH 35/36] treewide: rename pinctrl_gpio_direction_output_new() Bartosz Golaszewski
2023-10-03 14:51 ` [PATCH 36/36] treewide: rename pinctrl_gpio_set_config_new() Bartosz Golaszewski
2023-10-03 21:51 ` [PATCH 00/36] pinctrl: don't use GPIOLIB global numberspace in helpers Linus Walleij
2023-10-04 8:12 ` Bartosz Golaszewski
2023-10-04 8:42 ` Linus Walleij
2023-10-04 9:35 ` Andy Shevchenko
2023-10-04 9:40 ` Bartosz Golaszewski
2023-10-04 12:55 ` Andy Shevchenko
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=20231003145114.21637-31-brgl@bgdev.pl \
--to=brgl@bgdev.pl \
--cc=andy@kernel.org \
--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 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).