* [PATCH 00/10] pinctrl: convert GPIO chips to using new value setters
@ 2025-04-08 7:17 Bartosz Golaszewski
2025-04-08 7:17 ` [PATCH 01/10] pinctrl: at91-pio4: use new GPIO line value setter callbacks Bartosz Golaszewski
` (10 more replies)
0 siblings, 11 replies; 23+ messages in thread
From: Bartosz Golaszewski @ 2025-04-08 7:17 UTC (permalink / raw)
To: Ludovic Desroches, Linus Walleij, Nicolas Ferre,
Alexandre Belloni, Claudiu Beznea, Bartosz Golaszewski,
Neil Armstrong, Kevin Hilman, Jerome Brunet, Martin Blumenstingl,
Xianwei Zhao, Patrick Rudolph
Cc: linux-arm-kernel, linux-gpio, linux-kernel, linux-amlogic,
Bartosz Golaszewski
struct gpio_chip now has callbacks for setting line values that return
an integer, allowing to indicate failures. We're in the process of
converting all GPIO drivers to using the new API. This series converts
the first part of pinctrl GPIO controllers.
Signed-off-by: Bartosz Golaszewski <bartosz.golaszewski@linaro.org>
---
Bartosz Golaszewski (10):
pinctrl: at91-pio4: use new GPIO line value setter callbacks
pinctrl: rk805: use new GPIO line value setter callbacks
pinctrl: abx500: enable building modules with COMPILE_TEST=y
pinctrl: abx500: use new GPIO line value setter callbacks
pinctrl: meson: use new GPIO line value setter callbacks
pinctrl: amlogic-a4: use new GPIO line value setter callbacks
pinctrl: sx150x: enable building modules with COMPILE_TEST=y
pinctrl: sx150x: use new GPIO line value setter callbacks
pinctrl: ocelot: use new GPIO line value setter callbacks
pinctrl: cy8c95x0: use new GPIO line value setter callbacks
drivers/pinctrl/Kconfig | 2 +-
drivers/pinctrl/meson/pinctrl-amlogic-a4.c | 8 ++++----
drivers/pinctrl/meson/pinctrl-meson.c | 6 +++---
drivers/pinctrl/nomadik/Kconfig | 8 ++++----
drivers/pinctrl/nomadik/pinctrl-abx500.c | 12 ++++--------
drivers/pinctrl/pinctrl-at91-pio4.c | 14 +++++++++-----
drivers/pinctrl/pinctrl-cy8c95x0.c | 17 +++++++++--------
drivers/pinctrl/pinctrl-ocelot.c | 17 +++++++++--------
drivers/pinctrl/pinctrl-rk805.c | 26 +++++++++++++-------------
drivers/pinctrl/pinctrl-sx150x.c | 23 ++++++++++++-----------
10 files changed, 68 insertions(+), 65 deletions(-)
---
base-commit: 0af2f6be1b4281385b618cb86ad946eded089ac8
change-id: 20250326-gpiochip-set-rv-pinctrl-part1-c0e1e1891c24
Best regards,
--
Bartosz Golaszewski <bartosz.golaszewski@linaro.org>
^ permalink raw reply [flat|nested] 23+ messages in thread
* [PATCH 01/10] pinctrl: at91-pio4: use new GPIO line value setter callbacks
2025-04-08 7:17 [PATCH 00/10] pinctrl: convert GPIO chips to using new value setters Bartosz Golaszewski
@ 2025-04-08 7:17 ` Bartosz Golaszewski
2025-04-10 7:16 ` Claudiu Beznea
2025-04-08 7:17 ` [PATCH 02/10] pinctrl: rk805: " Bartosz Golaszewski
` (9 subsequent siblings)
10 siblings, 1 reply; 23+ messages in thread
From: Bartosz Golaszewski @ 2025-04-08 7:17 UTC (permalink / raw)
To: Ludovic Desroches, Linus Walleij, Nicolas Ferre,
Alexandre Belloni, Claudiu Beznea, Bartosz Golaszewski,
Neil Armstrong, Kevin Hilman, Jerome Brunet, Martin Blumenstingl,
Xianwei Zhao, Patrick Rudolph
Cc: linux-arm-kernel, linux-gpio, linux-kernel, linux-amlogic,
Bartosz Golaszewski
From: Bartosz Golaszewski <bartosz.golaszewski@linaro.org>
struct gpio_chip now has callbacks for setting line values that return
an integer, allowing to indicate failures. Convert the driver to using
them.
Signed-off-by: Bartosz Golaszewski <bartosz.golaszewski@linaro.org>
---
drivers/pinctrl/pinctrl-at91-pio4.c | 14 +++++++++-----
1 file changed, 9 insertions(+), 5 deletions(-)
diff --git a/drivers/pinctrl/pinctrl-at91-pio4.c b/drivers/pinctrl/pinctrl-at91-pio4.c
index 8b01d312305a..5db839fa9b3f 100644
--- a/drivers/pinctrl/pinctrl-at91-pio4.c
+++ b/drivers/pinctrl/pinctrl-at91-pio4.c
@@ -390,7 +390,7 @@ static int atmel_gpio_direction_output(struct gpio_chip *chip,
return 0;
}
-static void atmel_gpio_set(struct gpio_chip *chip, unsigned int offset, int val)
+static int atmel_gpio_set(struct gpio_chip *chip, unsigned int offset, int val)
{
struct atmel_pioctrl *atmel_pioctrl = gpiochip_get_data(chip);
struct atmel_pin *pin = atmel_pioctrl->pins[offset];
@@ -398,10 +398,12 @@ static void atmel_gpio_set(struct gpio_chip *chip, unsigned int offset, int val)
atmel_gpio_write(atmel_pioctrl, pin->bank,
val ? ATMEL_PIO_SODR : ATMEL_PIO_CODR,
BIT(pin->line));
+
+ return 0;
}
-static void atmel_gpio_set_multiple(struct gpio_chip *chip, unsigned long *mask,
- unsigned long *bits)
+static int atmel_gpio_set_multiple(struct gpio_chip *chip, unsigned long *mask,
+ unsigned long *bits)
{
struct atmel_pioctrl *atmel_pioctrl = gpiochip_get_data(chip);
unsigned int bank;
@@ -431,6 +433,8 @@ static void atmel_gpio_set_multiple(struct gpio_chip *chip, unsigned long *mask,
bits[word] >>= ATMEL_PIO_NPINS_PER_BANK;
#endif
}
+
+ return 0;
}
static struct gpio_chip atmel_gpio_chip = {
@@ -438,8 +442,8 @@ static struct gpio_chip atmel_gpio_chip = {
.get = atmel_gpio_get,
.get_multiple = atmel_gpio_get_multiple,
.direction_output = atmel_gpio_direction_output,
- .set = atmel_gpio_set,
- .set_multiple = atmel_gpio_set_multiple,
+ .set_rv = atmel_gpio_set,
+ .set_multiple_rv = atmel_gpio_set_multiple,
.to_irq = atmel_gpio_to_irq,
.base = 0,
};
--
2.45.2
^ permalink raw reply related [flat|nested] 23+ messages in thread
* [PATCH 02/10] pinctrl: rk805: use new GPIO line value setter callbacks
2025-04-08 7:17 [PATCH 00/10] pinctrl: convert GPIO chips to using new value setters Bartosz Golaszewski
2025-04-08 7:17 ` [PATCH 01/10] pinctrl: at91-pio4: use new GPIO line value setter callbacks Bartosz Golaszewski
@ 2025-04-08 7:17 ` Bartosz Golaszewski
2025-04-08 7:17 ` [PATCH 03/10] pinctrl: abx500: enable building modules with COMPILE_TEST=y Bartosz Golaszewski
` (8 subsequent siblings)
10 siblings, 0 replies; 23+ messages in thread
From: Bartosz Golaszewski @ 2025-04-08 7:17 UTC (permalink / raw)
To: Ludovic Desroches, Linus Walleij, Nicolas Ferre,
Alexandre Belloni, Claudiu Beznea, Bartosz Golaszewski,
Neil Armstrong, Kevin Hilman, Jerome Brunet, Martin Blumenstingl,
Xianwei Zhao, Patrick Rudolph
Cc: linux-arm-kernel, linux-gpio, linux-kernel, linux-amlogic,
Bartosz Golaszewski
From: Bartosz Golaszewski <bartosz.golaszewski@linaro.org>
struct gpio_chip now has callbacks for setting line values that return
an integer, allowing to indicate failures. Convert the driver to using
them.
Signed-off-by: Bartosz Golaszewski <bartosz.golaszewski@linaro.org>
---
drivers/pinctrl/pinctrl-rk805.c | 26 +++++++++++++-------------
1 file changed, 13 insertions(+), 13 deletions(-)
diff --git a/drivers/pinctrl/pinctrl-rk805.c b/drivers/pinctrl/pinctrl-rk805.c
index c42f1bf93404..fc0e330b1d11 100644
--- a/drivers/pinctrl/pinctrl-rk805.c
+++ b/drivers/pinctrl/pinctrl-rk805.c
@@ -325,26 +325,26 @@ static int rk805_gpio_get(struct gpio_chip *chip, unsigned int offset)
return !!(val & pci->pin_cfg[offset].val_msk);
}
-static void rk805_gpio_set(struct gpio_chip *chip,
- unsigned int offset,
- int value)
+static int rk805_gpio_set(struct gpio_chip *chip, unsigned int offset,
+ int value)
{
struct rk805_pctrl_info *pci = gpiochip_get_data(chip);
- int ret;
- ret = regmap_update_bits(pci->rk808->regmap,
- pci->pin_cfg[offset].reg,
- pci->pin_cfg[offset].val_msk,
- value ? pci->pin_cfg[offset].val_msk : 0);
- if (ret)
- dev_err(pci->dev, "set gpio%d value %d failed\n",
- offset, value);
+ return regmap_update_bits(pci->rk808->regmap,
+ pci->pin_cfg[offset].reg,
+ pci->pin_cfg[offset].val_msk,
+ value ? pci->pin_cfg[offset].val_msk : 0);
}
static int rk805_gpio_direction_output(struct gpio_chip *chip,
unsigned int offset, int value)
{
- rk805_gpio_set(chip, offset, value);
+ int ret;
+
+ ret = rk805_gpio_set(chip, offset, value);
+ if (ret)
+ return ret;
+
return pinctrl_gpio_direction_output(chip, offset);
}
@@ -378,7 +378,7 @@ static const struct gpio_chip rk805_gpio_chip = {
.free = gpiochip_generic_free,
.get_direction = rk805_gpio_get_direction,
.get = rk805_gpio_get,
- .set = rk805_gpio_set,
+ .set_rv = rk805_gpio_set,
.direction_input = pinctrl_gpio_direction_input,
.direction_output = rk805_gpio_direction_output,
.can_sleep = true,
--
2.45.2
^ permalink raw reply related [flat|nested] 23+ messages in thread
* [PATCH 03/10] pinctrl: abx500: enable building modules with COMPILE_TEST=y
2025-04-08 7:17 [PATCH 00/10] pinctrl: convert GPIO chips to using new value setters Bartosz Golaszewski
2025-04-08 7:17 ` [PATCH 01/10] pinctrl: at91-pio4: use new GPIO line value setter callbacks Bartosz Golaszewski
2025-04-08 7:17 ` [PATCH 02/10] pinctrl: rk805: " Bartosz Golaszewski
@ 2025-04-08 7:17 ` Bartosz Golaszewski
2025-04-08 7:17 ` [PATCH 04/10] pinctrl: abx500: use new GPIO line value setter callbacks Bartosz Golaszewski
` (7 subsequent siblings)
10 siblings, 0 replies; 23+ messages in thread
From: Bartosz Golaszewski @ 2025-04-08 7:17 UTC (permalink / raw)
To: Ludovic Desroches, Linus Walleij, Nicolas Ferre,
Alexandre Belloni, Claudiu Beznea, Bartosz Golaszewski,
Neil Armstrong, Kevin Hilman, Jerome Brunet, Martin Blumenstingl,
Xianwei Zhao, Patrick Rudolph
Cc: linux-arm-kernel, linux-gpio, linux-kernel, linux-amlogic,
Bartosz Golaszewski
From: Bartosz Golaszewski <bartosz.golaszewski@linaro.org>
Increase the build coverage by enabling the abx500 modules with
COMPILE_TEST=y.
Signed-off-by: Bartosz Golaszewski <bartosz.golaszewski@linaro.org>
---
drivers/pinctrl/nomadik/Kconfig | 8 ++++----
1 file changed, 4 insertions(+), 4 deletions(-)
diff --git a/drivers/pinctrl/nomadik/Kconfig b/drivers/pinctrl/nomadik/Kconfig
index aafecf348670..2c1f8a4f5d24 100644
--- a/drivers/pinctrl/nomadik/Kconfig
+++ b/drivers/pinctrl/nomadik/Kconfig
@@ -1,20 +1,20 @@
# SPDX-License-Identifier: GPL-2.0-only
-if ARCH_U8500
+if (ARCH_U8500 || COMPILE_TEST)
config PINCTRL_ABX500
bool "ST-Ericsson ABx500 family Mixed Signal Circuit gpio functions"
- depends on AB8500_CORE
+ depends on AB8500_CORE || COMPILE_TEST
select GENERIC_PINCONF
help
Select this to enable the ABx500 family IC GPIO driver
config PINCTRL_AB8500
bool "AB8500 pin controller driver"
- depends on PINCTRL_ABX500 && ARCH_U8500
+ depends on PINCTRL_ABX500 && (ARCH_U8500 || COMPILE_TEST)
config PINCTRL_AB8505
bool "AB8505 pin controller driver"
- depends on PINCTRL_ABX500 && ARCH_U8500
+ depends on PINCTRL_ABX500 && (ARCH_U8500 || COMPILE_TEST)
endif
--
2.45.2
^ permalink raw reply related [flat|nested] 23+ messages in thread
* [PATCH 04/10] pinctrl: abx500: use new GPIO line value setter callbacks
2025-04-08 7:17 [PATCH 00/10] pinctrl: convert GPIO chips to using new value setters Bartosz Golaszewski
` (2 preceding siblings ...)
2025-04-08 7:17 ` [PATCH 03/10] pinctrl: abx500: enable building modules with COMPILE_TEST=y Bartosz Golaszewski
@ 2025-04-08 7:17 ` Bartosz Golaszewski
2025-04-08 7:17 ` [PATCH 05/10] pinctrl: meson: " Bartosz Golaszewski
` (6 subsequent siblings)
10 siblings, 0 replies; 23+ messages in thread
From: Bartosz Golaszewski @ 2025-04-08 7:17 UTC (permalink / raw)
To: Ludovic Desroches, Linus Walleij, Nicolas Ferre,
Alexandre Belloni, Claudiu Beznea, Bartosz Golaszewski,
Neil Armstrong, Kevin Hilman, Jerome Brunet, Martin Blumenstingl,
Xianwei Zhao, Patrick Rudolph
Cc: linux-arm-kernel, linux-gpio, linux-kernel, linux-amlogic,
Bartosz Golaszewski
From: Bartosz Golaszewski <bartosz.golaszewski@linaro.org>
struct gpio_chip now has callbacks for setting line values that return
an integer, allowing to indicate failures. Convert the driver to using
them.
Signed-off-by: Bartosz Golaszewski <bartosz.golaszewski@linaro.org>
---
drivers/pinctrl/nomadik/pinctrl-abx500.c | 12 ++++--------
1 file changed, 4 insertions(+), 8 deletions(-)
diff --git a/drivers/pinctrl/nomadik/pinctrl-abx500.c b/drivers/pinctrl/nomadik/pinctrl-abx500.c
index 8cd4ba5cf0bd..2f55f83127cf 100644
--- a/drivers/pinctrl/nomadik/pinctrl-abx500.c
+++ b/drivers/pinctrl/nomadik/pinctrl-abx500.c
@@ -167,14 +167,10 @@ static int abx500_gpio_get(struct gpio_chip *chip, unsigned offset)
return bit;
}
-static void abx500_gpio_set(struct gpio_chip *chip, unsigned offset, int val)
+static int abx500_gpio_set(struct gpio_chip *chip, unsigned int offset,
+ int val)
{
- struct abx500_pinctrl *pct = gpiochip_get_data(chip);
- int ret;
-
- ret = abx500_gpio_set_bits(chip, AB8500_GPIO_OUT1_REG, offset, val);
- if (ret < 0)
- dev_err(pct->dev, "%s write failed (%d)\n", __func__, ret);
+ return abx500_gpio_set_bits(chip, AB8500_GPIO_OUT1_REG, offset, val);
}
static int abx500_gpio_direction_output(struct gpio_chip *chip,
@@ -540,7 +536,7 @@ static const struct gpio_chip abx500gpio_chip = {
.direction_input = abx500_gpio_direction_input,
.get = abx500_gpio_get,
.direction_output = abx500_gpio_direction_output,
- .set = abx500_gpio_set,
+ .set_rv = abx500_gpio_set,
.to_irq = abx500_gpio_to_irq,
.dbg_show = abx500_gpio_dbg_show,
};
--
2.45.2
^ permalink raw reply related [flat|nested] 23+ messages in thread
* [PATCH 05/10] pinctrl: meson: use new GPIO line value setter callbacks
2025-04-08 7:17 [PATCH 00/10] pinctrl: convert GPIO chips to using new value setters Bartosz Golaszewski
` (3 preceding siblings ...)
2025-04-08 7:17 ` [PATCH 04/10] pinctrl: abx500: use new GPIO line value setter callbacks Bartosz Golaszewski
@ 2025-04-08 7:17 ` Bartosz Golaszewski
2025-04-08 7:41 ` Neil Armstrong
2025-04-08 21:37 ` Martin Blumenstingl
2025-04-08 7:17 ` [PATCH 06/10] pinctrl: amlogic-a4: " Bartosz Golaszewski
` (5 subsequent siblings)
10 siblings, 2 replies; 23+ messages in thread
From: Bartosz Golaszewski @ 2025-04-08 7:17 UTC (permalink / raw)
To: Ludovic Desroches, Linus Walleij, Nicolas Ferre,
Alexandre Belloni, Claudiu Beznea, Bartosz Golaszewski,
Neil Armstrong, Kevin Hilman, Jerome Brunet, Martin Blumenstingl,
Xianwei Zhao, Patrick Rudolph
Cc: linux-arm-kernel, linux-gpio, linux-kernel, linux-amlogic,
Bartosz Golaszewski
From: Bartosz Golaszewski <bartosz.golaszewski@linaro.org>
struct gpio_chip now has callbacks for setting line values that return
an integer, allowing to indicate failures. Convert the driver to using
them.
Signed-off-by: Bartosz Golaszewski <bartosz.golaszewski@linaro.org>
---
drivers/pinctrl/meson/pinctrl-meson.c | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/drivers/pinctrl/meson/pinctrl-meson.c b/drivers/pinctrl/meson/pinctrl-meson.c
index 253a0cc57e39..e7485c82089c 100644
--- a/drivers/pinctrl/meson/pinctrl-meson.c
+++ b/drivers/pinctrl/meson/pinctrl-meson.c
@@ -580,9 +580,9 @@ static int meson_gpio_direction_output(struct gpio_chip *chip, unsigned gpio,
gpio, value);
}
-static void meson_gpio_set(struct gpio_chip *chip, unsigned gpio, int value)
+static int meson_gpio_set(struct gpio_chip *chip, unsigned int gpio, int value)
{
- meson_pinconf_set_drive(gpiochip_get_data(chip), gpio, value);
+ return meson_pinconf_set_drive(gpiochip_get_data(chip), gpio, value);
}
static int meson_gpio_get(struct gpio_chip *chip, unsigned gpio)
@@ -616,7 +616,7 @@ static int meson_gpiolib_register(struct meson_pinctrl *pc)
pc->chip.direction_input = meson_gpio_direction_input;
pc->chip.direction_output = meson_gpio_direction_output;
pc->chip.get = meson_gpio_get;
- pc->chip.set = meson_gpio_set;
+ pc->chip.set_rv = meson_gpio_set;
pc->chip.base = -1;
pc->chip.ngpio = pc->data->num_pins;
pc->chip.can_sleep = false;
--
2.45.2
^ permalink raw reply related [flat|nested] 23+ messages in thread
* [PATCH 06/10] pinctrl: amlogic-a4: use new GPIO line value setter callbacks
2025-04-08 7:17 [PATCH 00/10] pinctrl: convert GPIO chips to using new value setters Bartosz Golaszewski
` (4 preceding siblings ...)
2025-04-08 7:17 ` [PATCH 05/10] pinctrl: meson: " Bartosz Golaszewski
@ 2025-04-08 7:17 ` Bartosz Golaszewski
2025-04-08 7:41 ` Neil Armstrong
` (2 more replies)
2025-04-08 7:17 ` [PATCH 07/10] pinctrl: sx150x: enable building modules with COMPILE_TEST=y Bartosz Golaszewski
` (4 subsequent siblings)
10 siblings, 3 replies; 23+ messages in thread
From: Bartosz Golaszewski @ 2025-04-08 7:17 UTC (permalink / raw)
To: Ludovic Desroches, Linus Walleij, Nicolas Ferre,
Alexandre Belloni, Claudiu Beznea, Bartosz Golaszewski,
Neil Armstrong, Kevin Hilman, Jerome Brunet, Martin Blumenstingl,
Xianwei Zhao, Patrick Rudolph
Cc: linux-arm-kernel, linux-gpio, linux-kernel, linux-amlogic,
Bartosz Golaszewski
From: Bartosz Golaszewski <bartosz.golaszewski@linaro.org>
struct gpio_chip now has callbacks for setting line values that return
an integer, allowing to indicate failures. Convert the driver to using
them.
Signed-off-by: Bartosz Golaszewski <bartosz.golaszewski@linaro.org>
---
drivers/pinctrl/meson/pinctrl-amlogic-a4.c | 8 ++++----
1 file changed, 4 insertions(+), 4 deletions(-)
diff --git a/drivers/pinctrl/meson/pinctrl-amlogic-a4.c b/drivers/pinctrl/meson/pinctrl-amlogic-a4.c
index ee7bbc72f9b3..a76f266b4b94 100644
--- a/drivers/pinctrl/meson/pinctrl-amlogic-a4.c
+++ b/drivers/pinctrl/meson/pinctrl-amlogic-a4.c
@@ -806,15 +806,15 @@ static int aml_gpio_direction_output(struct gpio_chip *chip, unsigned int gpio,
value ? BIT(bit) : 0);
}
-static void aml_gpio_set(struct gpio_chip *chip, unsigned int gpio, int value)
+static int aml_gpio_set(struct gpio_chip *chip, unsigned int gpio, int value)
{
struct aml_gpio_bank *bank = gpiochip_get_data(chip);
unsigned int bit, reg;
aml_gpio_calc_reg_and_bit(bank, AML_REG_OUT, gpio, ®, &bit);
- regmap_update_bits(bank->reg_gpio, reg, BIT(bit),
- value ? BIT(bit) : 0);
+ return regmap_update_bits(bank->reg_gpio, reg, BIT(bit),
+ value ? BIT(bit) : 0);
}
static int aml_gpio_get(struct gpio_chip *chip, unsigned int gpio)
@@ -832,7 +832,7 @@ static const struct gpio_chip aml_gpio_template = {
.request = gpiochip_generic_request,
.free = gpiochip_generic_free,
.set_config = gpiochip_generic_config,
- .set = aml_gpio_set,
+ .set_rv = aml_gpio_set,
.get = aml_gpio_get,
.direction_input = aml_gpio_direction_input,
.direction_output = aml_gpio_direction_output,
--
2.45.2
^ permalink raw reply related [flat|nested] 23+ messages in thread
* [PATCH 07/10] pinctrl: sx150x: enable building modules with COMPILE_TEST=y
2025-04-08 7:17 [PATCH 00/10] pinctrl: convert GPIO chips to using new value setters Bartosz Golaszewski
` (5 preceding siblings ...)
2025-04-08 7:17 ` [PATCH 06/10] pinctrl: amlogic-a4: " Bartosz Golaszewski
@ 2025-04-08 7:17 ` Bartosz Golaszewski
2025-04-08 14:27 ` Neil Armstrong
2025-04-16 22:37 ` Nathan Chancellor
2025-04-08 7:17 ` [PATCH 08/10] pinctrl: sx150x: use new GPIO line value setter callbacks Bartosz Golaszewski
` (3 subsequent siblings)
10 siblings, 2 replies; 23+ messages in thread
From: Bartosz Golaszewski @ 2025-04-08 7:17 UTC (permalink / raw)
To: Ludovic Desroches, Linus Walleij, Nicolas Ferre,
Alexandre Belloni, Claudiu Beznea, Bartosz Golaszewski,
Neil Armstrong, Kevin Hilman, Jerome Brunet, Martin Blumenstingl,
Xianwei Zhao, Patrick Rudolph
Cc: linux-arm-kernel, linux-gpio, linux-kernel, linux-amlogic,
Bartosz Golaszewski
From: Bartosz Golaszewski <bartosz.golaszewski@linaro.org>
Increase the build coverage by enabling the sx150x modules with
COMPILE_TEST=y.
Signed-off-by: Bartosz Golaszewski <bartosz.golaszewski@linaro.org>
---
drivers/pinctrl/Kconfig | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/drivers/pinctrl/Kconfig b/drivers/pinctrl/Kconfig
index 464cc9aca157..94eb41bb9cf2 100644
--- a/drivers/pinctrl/Kconfig
+++ b/drivers/pinctrl/Kconfig
@@ -541,7 +541,7 @@ config PINCTRL_STMFX
config PINCTRL_SX150X
bool "Semtech SX150x I2C GPIO expander pinctrl driver"
- depends on I2C=y
+ depends on I2C=y || COMPILE_TEST
select PINMUX
select PINCONF
select GENERIC_PINCONF
--
2.45.2
^ permalink raw reply related [flat|nested] 23+ messages in thread
* [PATCH 08/10] pinctrl: sx150x: use new GPIO line value setter callbacks
2025-04-08 7:17 [PATCH 00/10] pinctrl: convert GPIO chips to using new value setters Bartosz Golaszewski
` (6 preceding siblings ...)
2025-04-08 7:17 ` [PATCH 07/10] pinctrl: sx150x: enable building modules with COMPILE_TEST=y Bartosz Golaszewski
@ 2025-04-08 7:17 ` Bartosz Golaszewski
2025-04-08 14:27 ` Neil Armstrong
2025-04-08 7:17 ` [PATCH 09/10] pinctrl: ocelot: " Bartosz Golaszewski
` (2 subsequent siblings)
10 siblings, 1 reply; 23+ messages in thread
From: Bartosz Golaszewski @ 2025-04-08 7:17 UTC (permalink / raw)
To: Ludovic Desroches, Linus Walleij, Nicolas Ferre,
Alexandre Belloni, Claudiu Beznea, Bartosz Golaszewski,
Neil Armstrong, Kevin Hilman, Jerome Brunet, Martin Blumenstingl,
Xianwei Zhao, Patrick Rudolph
Cc: linux-arm-kernel, linux-gpio, linux-kernel, linux-amlogic,
Bartosz Golaszewski
From: Bartosz Golaszewski <bartosz.golaszewski@linaro.org>
struct gpio_chip now has callbacks for setting line values that return
an integer, allowing to indicate failures. Convert the driver to using
them.
Signed-off-by: Bartosz Golaszewski <bartosz.golaszewski@linaro.org>
---
drivers/pinctrl/pinctrl-sx150x.c | 23 ++++++++++++-----------
1 file changed, 12 insertions(+), 11 deletions(-)
diff --git a/drivers/pinctrl/pinctrl-sx150x.c b/drivers/pinctrl/pinctrl-sx150x.c
index 98262b8ce43a..d3a12c1c0de2 100644
--- a/drivers/pinctrl/pinctrl-sx150x.c
+++ b/drivers/pinctrl/pinctrl-sx150x.c
@@ -432,24 +432,25 @@ static int sx150x_gpio_oscio_set(struct sx150x_pinctrl *pctl,
(value ? 0x1f : 0x10));
}
-static void sx150x_gpio_set(struct gpio_chip *chip, unsigned int offset,
- int value)
+static int sx150x_gpio_set(struct gpio_chip *chip, unsigned int offset,
+ int value)
{
struct sx150x_pinctrl *pctl = gpiochip_get_data(chip);
if (sx150x_pin_is_oscio(pctl, offset))
- sx150x_gpio_oscio_set(pctl, value);
- else
- __sx150x_gpio_set(pctl, offset, value);
+ return sx150x_gpio_oscio_set(pctl, value);
+
+ return __sx150x_gpio_set(pctl, offset, value);
}
-static void sx150x_gpio_set_multiple(struct gpio_chip *chip,
- unsigned long *mask,
- unsigned long *bits)
+static int sx150x_gpio_set_multiple(struct gpio_chip *chip,
+ unsigned long *mask,
+ unsigned long *bits)
{
struct sx150x_pinctrl *pctl = gpiochip_get_data(chip);
- regmap_write_bits(pctl->regmap, pctl->data->reg_data, *mask, *bits);
+ return regmap_write_bits(pctl->regmap, pctl->data->reg_data, *mask,
+ *bits);
}
static int sx150x_gpio_direction_input(struct gpio_chip *chip,
@@ -1175,7 +1176,7 @@ static int sx150x_probe(struct i2c_client *client)
pctl->gpio.direction_input = sx150x_gpio_direction_input;
pctl->gpio.direction_output = sx150x_gpio_direction_output;
pctl->gpio.get = sx150x_gpio_get;
- pctl->gpio.set = sx150x_gpio_set;
+ pctl->gpio.set_rv = sx150x_gpio_set;
pctl->gpio.set_config = gpiochip_generic_config;
pctl->gpio.parent = dev;
pctl->gpio.can_sleep = true;
@@ -1190,7 +1191,7 @@ static int sx150x_probe(struct i2c_client *client)
* would require locking that is not in place at this time.
*/
if (pctl->data->model != SX150X_789)
- pctl->gpio.set_multiple = sx150x_gpio_set_multiple;
+ pctl->gpio.set_multiple_rv = sx150x_gpio_set_multiple;
/* Add Interrupt support if an irq is specified */
if (client->irq > 0) {
--
2.45.2
^ permalink raw reply related [flat|nested] 23+ messages in thread
* [PATCH 09/10] pinctrl: ocelot: use new GPIO line value setter callbacks
2025-04-08 7:17 [PATCH 00/10] pinctrl: convert GPIO chips to using new value setters Bartosz Golaszewski
` (7 preceding siblings ...)
2025-04-08 7:17 ` [PATCH 08/10] pinctrl: sx150x: use new GPIO line value setter callbacks Bartosz Golaszewski
@ 2025-04-08 7:17 ` Bartosz Golaszewski
2025-04-08 7:17 ` [PATCH 10/10] pinctrl: cy8c95x0: " Bartosz Golaszewski
2025-04-15 21:48 ` [PATCH 00/10] pinctrl: convert GPIO chips to using new value setters Linus Walleij
10 siblings, 0 replies; 23+ messages in thread
From: Bartosz Golaszewski @ 2025-04-08 7:17 UTC (permalink / raw)
To: Ludovic Desroches, Linus Walleij, Nicolas Ferre,
Alexandre Belloni, Claudiu Beznea, Bartosz Golaszewski,
Neil Armstrong, Kevin Hilman, Jerome Brunet, Martin Blumenstingl,
Xianwei Zhao, Patrick Rudolph
Cc: linux-arm-kernel, linux-gpio, linux-kernel, linux-amlogic,
Bartosz Golaszewski
From: Bartosz Golaszewski <bartosz.golaszewski@linaro.org>
struct gpio_chip now has callbacks for setting line values that return
an integer, allowing to indicate failures. Convert the driver to using
them.
Signed-off-by: Bartosz Golaszewski <bartosz.golaszewski@linaro.org>
---
drivers/pinctrl/pinctrl-ocelot.c | 17 +++++++++--------
1 file changed, 9 insertions(+), 8 deletions(-)
diff --git a/drivers/pinctrl/pinctrl-ocelot.c b/drivers/pinctrl/pinctrl-ocelot.c
index 329d54b11529..fbb3d43746bb 100644
--- a/drivers/pinctrl/pinctrl-ocelot.c
+++ b/drivers/pinctrl/pinctrl-ocelot.c
@@ -1950,17 +1950,18 @@ static int ocelot_gpio_get(struct gpio_chip *chip, unsigned int offset)
return !!(val & BIT(offset % 32));
}
-static void ocelot_gpio_set(struct gpio_chip *chip, unsigned int offset,
- int value)
+static int ocelot_gpio_set(struct gpio_chip *chip, unsigned int offset,
+ int value)
{
struct ocelot_pinctrl *info = gpiochip_get_data(chip);
if (value)
- regmap_write(info->map, REG(OCELOT_GPIO_OUT_SET, info, offset),
- BIT(offset % 32));
- else
- regmap_write(info->map, REG(OCELOT_GPIO_OUT_CLR, info, offset),
- BIT(offset % 32));
+ return regmap_write(info->map,
+ REG(OCELOT_GPIO_OUT_SET, info, offset),
+ BIT(offset % 32));
+
+ return regmap_write(info->map, REG(OCELOT_GPIO_OUT_CLR, info, offset),
+ BIT(offset % 32));
}
static int ocelot_gpio_get_direction(struct gpio_chip *chip,
@@ -1996,7 +1997,7 @@ static int ocelot_gpio_direction_output(struct gpio_chip *chip,
static const struct gpio_chip ocelot_gpiolib_chip = {
.request = gpiochip_generic_request,
.free = gpiochip_generic_free,
- .set = ocelot_gpio_set,
+ .set_rv = ocelot_gpio_set,
.get = ocelot_gpio_get,
.get_direction = ocelot_gpio_get_direction,
.direction_input = pinctrl_gpio_direction_input,
--
2.45.2
^ permalink raw reply related [flat|nested] 23+ messages in thread
* [PATCH 10/10] pinctrl: cy8c95x0: use new GPIO line value setter callbacks
2025-04-08 7:17 [PATCH 00/10] pinctrl: convert GPIO chips to using new value setters Bartosz Golaszewski
` (8 preceding siblings ...)
2025-04-08 7:17 ` [PATCH 09/10] pinctrl: ocelot: " Bartosz Golaszewski
@ 2025-04-08 7:17 ` Bartosz Golaszewski
2025-04-15 21:48 ` [PATCH 00/10] pinctrl: convert GPIO chips to using new value setters Linus Walleij
10 siblings, 0 replies; 23+ messages in thread
From: Bartosz Golaszewski @ 2025-04-08 7:17 UTC (permalink / raw)
To: Ludovic Desroches, Linus Walleij, Nicolas Ferre,
Alexandre Belloni, Claudiu Beznea, Bartosz Golaszewski,
Neil Armstrong, Kevin Hilman, Jerome Brunet, Martin Blumenstingl,
Xianwei Zhao, Patrick Rudolph
Cc: linux-arm-kernel, linux-gpio, linux-kernel, linux-amlogic,
Bartosz Golaszewski
From: Bartosz Golaszewski <bartosz.golaszewski@linaro.org>
struct gpio_chip now has callbacks for setting line values that return
an integer, allowing to indicate failures. Convert the driver to using
them.
Signed-off-by: Bartosz Golaszewski <bartosz.golaszewski@linaro.org>
---
drivers/pinctrl/pinctrl-cy8c95x0.c | 17 +++++++++--------
1 file changed, 9 insertions(+), 8 deletions(-)
diff --git a/drivers/pinctrl/pinctrl-cy8c95x0.c b/drivers/pinctrl/pinctrl-cy8c95x0.c
index 3cfbcaee9e65..8a2fd632bdd4 100644
--- a/drivers/pinctrl/pinctrl-cy8c95x0.c
+++ b/drivers/pinctrl/pinctrl-cy8c95x0.c
@@ -742,14 +742,15 @@ static int cy8c95x0_gpio_get_value(struct gpio_chip *gc, unsigned int off)
return reg_val ? 1 : 0;
}
-static void cy8c95x0_gpio_set_value(struct gpio_chip *gc, unsigned int off,
- int val)
+static int cy8c95x0_gpio_set_value(struct gpio_chip *gc, unsigned int off,
+ int val)
{
struct cy8c95x0_pinctrl *chip = gpiochip_get_data(gc);
u8 port = cypress_get_port(chip, off);
u8 bit = cypress_get_pin_mask(chip, off);
- cy8c95x0_regmap_write_bits(chip, CY8C95X0_OUTPUT, port, bit, val ? bit : 0);
+ return cy8c95x0_regmap_write_bits(chip, CY8C95X0_OUTPUT, port, bit,
+ val ? bit : 0);
}
static int cy8c95x0_gpio_get_direction(struct gpio_chip *gc, unsigned int off)
@@ -908,12 +909,12 @@ static int cy8c95x0_gpio_get_multiple(struct gpio_chip *gc,
return cy8c95x0_read_regs_mask(chip, CY8C95X0_INPUT, bits, mask);
}
-static void cy8c95x0_gpio_set_multiple(struct gpio_chip *gc,
- unsigned long *mask, unsigned long *bits)
+static int cy8c95x0_gpio_set_multiple(struct gpio_chip *gc,
+ unsigned long *mask, unsigned long *bits)
{
struct cy8c95x0_pinctrl *chip = gpiochip_get_data(gc);
- cy8c95x0_write_regs_mask(chip, CY8C95X0_OUTPUT, bits, mask);
+ return cy8c95x0_write_regs_mask(chip, CY8C95X0_OUTPUT, bits, mask);
}
static int cy8c95x0_add_pin_ranges(struct gpio_chip *gc)
@@ -938,10 +939,10 @@ static int cy8c95x0_setup_gpiochip(struct cy8c95x0_pinctrl *chip)
gc->direction_input = cy8c95x0_gpio_direction_input;
gc->direction_output = cy8c95x0_gpio_direction_output;
gc->get = cy8c95x0_gpio_get_value;
- gc->set = cy8c95x0_gpio_set_value;
+ gc->set_rv = cy8c95x0_gpio_set_value;
gc->get_direction = cy8c95x0_gpio_get_direction;
gc->get_multiple = cy8c95x0_gpio_get_multiple;
- gc->set_multiple = cy8c95x0_gpio_set_multiple;
+ gc->set_multiple_rv = cy8c95x0_gpio_set_multiple;
gc->set_config = gpiochip_generic_config;
gc->can_sleep = true;
gc->add_pin_ranges = cy8c95x0_add_pin_ranges;
--
2.45.2
^ permalink raw reply related [flat|nested] 23+ messages in thread
* Re: [PATCH 05/10] pinctrl: meson: use new GPIO line value setter callbacks
2025-04-08 7:17 ` [PATCH 05/10] pinctrl: meson: " Bartosz Golaszewski
@ 2025-04-08 7:41 ` Neil Armstrong
2025-04-08 21:37 ` Martin Blumenstingl
1 sibling, 0 replies; 23+ messages in thread
From: Neil Armstrong @ 2025-04-08 7:41 UTC (permalink / raw)
To: Bartosz Golaszewski, Ludovic Desroches, Linus Walleij,
Nicolas Ferre, Alexandre Belloni, Claudiu Beznea, Kevin Hilman,
Jerome Brunet, Martin Blumenstingl, Xianwei Zhao, Patrick Rudolph
Cc: linux-arm-kernel, linux-gpio, linux-kernel, linux-amlogic,
Bartosz Golaszewski
On 08/04/2025 09:17, Bartosz Golaszewski wrote:
> From: Bartosz Golaszewski <bartosz.golaszewski@linaro.org>
>
> struct gpio_chip now has callbacks for setting line values that return
> an integer, allowing to indicate failures. Convert the driver to using
> them.
>
> Signed-off-by: Bartosz Golaszewski <bartosz.golaszewski@linaro.org>
> ---
> drivers/pinctrl/meson/pinctrl-meson.c | 6 +++---
> 1 file changed, 3 insertions(+), 3 deletions(-)
>
> diff --git a/drivers/pinctrl/meson/pinctrl-meson.c b/drivers/pinctrl/meson/pinctrl-meson.c
> index 253a0cc57e39..e7485c82089c 100644
> --- a/drivers/pinctrl/meson/pinctrl-meson.c
> +++ b/drivers/pinctrl/meson/pinctrl-meson.c
> @@ -580,9 +580,9 @@ static int meson_gpio_direction_output(struct gpio_chip *chip, unsigned gpio,
> gpio, value);
> }
>
> -static void meson_gpio_set(struct gpio_chip *chip, unsigned gpio, int value)
> +static int meson_gpio_set(struct gpio_chip *chip, unsigned int gpio, int value)
> {
> - meson_pinconf_set_drive(gpiochip_get_data(chip), gpio, value);
> + return meson_pinconf_set_drive(gpiochip_get_data(chip), gpio, value);
> }
>
> static int meson_gpio_get(struct gpio_chip *chip, unsigned gpio)
> @@ -616,7 +616,7 @@ static int meson_gpiolib_register(struct meson_pinctrl *pc)
> pc->chip.direction_input = meson_gpio_direction_input;
> pc->chip.direction_output = meson_gpio_direction_output;
> pc->chip.get = meson_gpio_get;
> - pc->chip.set = meson_gpio_set;
> + pc->chip.set_rv = meson_gpio_set;
> pc->chip.base = -1;
> pc->chip.ngpio = pc->data->num_pins;
> pc->chip.can_sleep = false;
>
Reviewed-by: Neil Armstrong <neil.armstrong@linaro.org>
^ permalink raw reply [flat|nested] 23+ messages in thread
* Re: [PATCH 06/10] pinctrl: amlogic-a4: use new GPIO line value setter callbacks
2025-04-08 7:17 ` [PATCH 06/10] pinctrl: amlogic-a4: " Bartosz Golaszewski
@ 2025-04-08 7:41 ` Neil Armstrong
2025-04-08 21:38 ` Martin Blumenstingl
2025-04-09 1:56 ` Xianwei Zhao
2 siblings, 0 replies; 23+ messages in thread
From: Neil Armstrong @ 2025-04-08 7:41 UTC (permalink / raw)
To: Bartosz Golaszewski, Ludovic Desroches, Linus Walleij,
Nicolas Ferre, Alexandre Belloni, Claudiu Beznea, Kevin Hilman,
Jerome Brunet, Martin Blumenstingl, Xianwei Zhao, Patrick Rudolph
Cc: linux-arm-kernel, linux-gpio, linux-kernel, linux-amlogic,
Bartosz Golaszewski
On 08/04/2025 09:17, Bartosz Golaszewski wrote:
> From: Bartosz Golaszewski <bartosz.golaszewski@linaro.org>
>
> struct gpio_chip now has callbacks for setting line values that return
> an integer, allowing to indicate failures. Convert the driver to using
> them.
>
> Signed-off-by: Bartosz Golaszewski <bartosz.golaszewski@linaro.org>
> ---
> drivers/pinctrl/meson/pinctrl-amlogic-a4.c | 8 ++++----
> 1 file changed, 4 insertions(+), 4 deletions(-)
>
> diff --git a/drivers/pinctrl/meson/pinctrl-amlogic-a4.c b/drivers/pinctrl/meson/pinctrl-amlogic-a4.c
> index ee7bbc72f9b3..a76f266b4b94 100644
> --- a/drivers/pinctrl/meson/pinctrl-amlogic-a4.c
> +++ b/drivers/pinctrl/meson/pinctrl-amlogic-a4.c
> @@ -806,15 +806,15 @@ static int aml_gpio_direction_output(struct gpio_chip *chip, unsigned int gpio,
> value ? BIT(bit) : 0);
> }
>
> -static void aml_gpio_set(struct gpio_chip *chip, unsigned int gpio, int value)
> +static int aml_gpio_set(struct gpio_chip *chip, unsigned int gpio, int value)
> {
> struct aml_gpio_bank *bank = gpiochip_get_data(chip);
> unsigned int bit, reg;
>
> aml_gpio_calc_reg_and_bit(bank, AML_REG_OUT, gpio, ®, &bit);
>
> - regmap_update_bits(bank->reg_gpio, reg, BIT(bit),
> - value ? BIT(bit) : 0);
> + return regmap_update_bits(bank->reg_gpio, reg, BIT(bit),
> + value ? BIT(bit) : 0);
> }
>
> static int aml_gpio_get(struct gpio_chip *chip, unsigned int gpio)
> @@ -832,7 +832,7 @@ static const struct gpio_chip aml_gpio_template = {
> .request = gpiochip_generic_request,
> .free = gpiochip_generic_free,
> .set_config = gpiochip_generic_config,
> - .set = aml_gpio_set,
> + .set_rv = aml_gpio_set,
> .get = aml_gpio_get,
> .direction_input = aml_gpio_direction_input,
> .direction_output = aml_gpio_direction_output,
>
Reviewed-by: Neil Armstrong <neil.armstrong@linaro.org>
^ permalink raw reply [flat|nested] 23+ messages in thread
* Re: [PATCH 08/10] pinctrl: sx150x: use new GPIO line value setter callbacks
2025-04-08 7:17 ` [PATCH 08/10] pinctrl: sx150x: use new GPIO line value setter callbacks Bartosz Golaszewski
@ 2025-04-08 14:27 ` Neil Armstrong
0 siblings, 0 replies; 23+ messages in thread
From: Neil Armstrong @ 2025-04-08 14:27 UTC (permalink / raw)
To: Bartosz Golaszewski, Ludovic Desroches, Linus Walleij,
Nicolas Ferre, Alexandre Belloni, Claudiu Beznea, Kevin Hilman,
Jerome Brunet, Martin Blumenstingl, Xianwei Zhao, Patrick Rudolph
Cc: linux-arm-kernel, linux-gpio, linux-kernel, linux-amlogic,
Bartosz Golaszewski
On 08/04/2025 09:17, Bartosz Golaszewski wrote:
> From: Bartosz Golaszewski <bartosz.golaszewski@linaro.org>
>
> struct gpio_chip now has callbacks for setting line values that return
> an integer, allowing to indicate failures. Convert the driver to using
> them.
>
> Signed-off-by: Bartosz Golaszewski <bartosz.golaszewski@linaro.org>
> ---
> drivers/pinctrl/pinctrl-sx150x.c | 23 ++++++++++++-----------
> 1 file changed, 12 insertions(+), 11 deletions(-)
>
> diff --git a/drivers/pinctrl/pinctrl-sx150x.c b/drivers/pinctrl/pinctrl-sx150x.c
> index 98262b8ce43a..d3a12c1c0de2 100644
> --- a/drivers/pinctrl/pinctrl-sx150x.c
> +++ b/drivers/pinctrl/pinctrl-sx150x.c
> @@ -432,24 +432,25 @@ static int sx150x_gpio_oscio_set(struct sx150x_pinctrl *pctl,
> (value ? 0x1f : 0x10));
> }
>
> -static void sx150x_gpio_set(struct gpio_chip *chip, unsigned int offset,
> - int value)
> +static int sx150x_gpio_set(struct gpio_chip *chip, unsigned int offset,
> + int value)
> {
> struct sx150x_pinctrl *pctl = gpiochip_get_data(chip);
>
> if (sx150x_pin_is_oscio(pctl, offset))
> - sx150x_gpio_oscio_set(pctl, value);
> - else
> - __sx150x_gpio_set(pctl, offset, value);
> + return sx150x_gpio_oscio_set(pctl, value);
> +
> + return __sx150x_gpio_set(pctl, offset, value);
> }
>
> -static void sx150x_gpio_set_multiple(struct gpio_chip *chip,
> - unsigned long *mask,
> - unsigned long *bits)
> +static int sx150x_gpio_set_multiple(struct gpio_chip *chip,
> + unsigned long *mask,
> + unsigned long *bits)
> {
> struct sx150x_pinctrl *pctl = gpiochip_get_data(chip);
>
> - regmap_write_bits(pctl->regmap, pctl->data->reg_data, *mask, *bits);
> + return regmap_write_bits(pctl->regmap, pctl->data->reg_data, *mask,
> + *bits);
> }
>
> static int sx150x_gpio_direction_input(struct gpio_chip *chip,
> @@ -1175,7 +1176,7 @@ static int sx150x_probe(struct i2c_client *client)
> pctl->gpio.direction_input = sx150x_gpio_direction_input;
> pctl->gpio.direction_output = sx150x_gpio_direction_output;
> pctl->gpio.get = sx150x_gpio_get;
> - pctl->gpio.set = sx150x_gpio_set;
> + pctl->gpio.set_rv = sx150x_gpio_set;
> pctl->gpio.set_config = gpiochip_generic_config;
> pctl->gpio.parent = dev;
> pctl->gpio.can_sleep = true;
> @@ -1190,7 +1191,7 @@ static int sx150x_probe(struct i2c_client *client)
> * would require locking that is not in place at this time.
> */
> if (pctl->data->model != SX150X_789)
> - pctl->gpio.set_multiple = sx150x_gpio_set_multiple;
> + pctl->gpio.set_multiple_rv = sx150x_gpio_set_multiple;
>
> /* Add Interrupt support if an irq is specified */
> if (client->irq > 0) {
>
Reviewed-by: Neil Armstrong <neil.armstrong@linaro.org>
^ permalink raw reply [flat|nested] 23+ messages in thread
* Re: [PATCH 07/10] pinctrl: sx150x: enable building modules with COMPILE_TEST=y
2025-04-08 7:17 ` [PATCH 07/10] pinctrl: sx150x: enable building modules with COMPILE_TEST=y Bartosz Golaszewski
@ 2025-04-08 14:27 ` Neil Armstrong
2025-04-16 22:37 ` Nathan Chancellor
1 sibling, 0 replies; 23+ messages in thread
From: Neil Armstrong @ 2025-04-08 14:27 UTC (permalink / raw)
To: Bartosz Golaszewski, Ludovic Desroches, Linus Walleij,
Nicolas Ferre, Alexandre Belloni, Claudiu Beznea, Kevin Hilman,
Jerome Brunet, Martin Blumenstingl, Xianwei Zhao, Patrick Rudolph
Cc: linux-arm-kernel, linux-gpio, linux-kernel, linux-amlogic,
Bartosz Golaszewski
On 08/04/2025 09:17, Bartosz Golaszewski wrote:
> From: Bartosz Golaszewski <bartosz.golaszewski@linaro.org>
>
> Increase the build coverage by enabling the sx150x modules with
> COMPILE_TEST=y.
>
> Signed-off-by: Bartosz Golaszewski <bartosz.golaszewski@linaro.org>
> ---
> drivers/pinctrl/Kconfig | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/drivers/pinctrl/Kconfig b/drivers/pinctrl/Kconfig
> index 464cc9aca157..94eb41bb9cf2 100644
> --- a/drivers/pinctrl/Kconfig
> +++ b/drivers/pinctrl/Kconfig
> @@ -541,7 +541,7 @@ config PINCTRL_STMFX
>
> config PINCTRL_SX150X
> bool "Semtech SX150x I2C GPIO expander pinctrl driver"
> - depends on I2C=y
> + depends on I2C=y || COMPILE_TEST
> select PINMUX
> select PINCONF
> select GENERIC_PINCONF
>
Reviewed-by: Neil Armstrong <neil.armstrong@linaro.org>
^ permalink raw reply [flat|nested] 23+ messages in thread
* Re: [PATCH 05/10] pinctrl: meson: use new GPIO line value setter callbacks
2025-04-08 7:17 ` [PATCH 05/10] pinctrl: meson: " Bartosz Golaszewski
2025-04-08 7:41 ` Neil Armstrong
@ 2025-04-08 21:37 ` Martin Blumenstingl
1 sibling, 0 replies; 23+ messages in thread
From: Martin Blumenstingl @ 2025-04-08 21:37 UTC (permalink / raw)
To: Bartosz Golaszewski
Cc: Ludovic Desroches, Linus Walleij, Nicolas Ferre,
Alexandre Belloni, Claudiu Beznea, Neil Armstrong, Kevin Hilman,
Jerome Brunet, Xianwei Zhao, Patrick Rudolph, linux-arm-kernel,
linux-gpio, linux-kernel, linux-amlogic, Bartosz Golaszewski
On Tue, Apr 8, 2025 at 9:17 AM Bartosz Golaszewski <brgl@bgdev.pl> wrote:
>
> From: Bartosz Golaszewski <bartosz.golaszewski@linaro.org>
>
> struct gpio_chip now has callbacks for setting line values that return
> an integer, allowing to indicate failures. Convert the driver to using
> them.
>
> Signed-off-by: Bartosz Golaszewski <bartosz.golaszewski@linaro.org>
Reviewed-by: Martin Blumenstingl <martin.blumenstingl@googlemail.com>
^ permalink raw reply [flat|nested] 23+ messages in thread
* Re: [PATCH 06/10] pinctrl: amlogic-a4: use new GPIO line value setter callbacks
2025-04-08 7:17 ` [PATCH 06/10] pinctrl: amlogic-a4: " Bartosz Golaszewski
2025-04-08 7:41 ` Neil Armstrong
@ 2025-04-08 21:38 ` Martin Blumenstingl
2025-04-09 1:56 ` Xianwei Zhao
2 siblings, 0 replies; 23+ messages in thread
From: Martin Blumenstingl @ 2025-04-08 21:38 UTC (permalink / raw)
To: Bartosz Golaszewski
Cc: Ludovic Desroches, Linus Walleij, Nicolas Ferre,
Alexandre Belloni, Claudiu Beznea, Neil Armstrong, Kevin Hilman,
Jerome Brunet, Xianwei Zhao, Patrick Rudolph, linux-arm-kernel,
linux-gpio, linux-kernel, linux-amlogic, Bartosz Golaszewski
On Tue, Apr 8, 2025 at 9:24 AM Bartosz Golaszewski <brgl@bgdev.pl> wrote:
>
> From: Bartosz Golaszewski <bartosz.golaszewski@linaro.org>
>
> struct gpio_chip now has callbacks for setting line values that return
> an integer, allowing to indicate failures. Convert the driver to using
> them.
>
> Signed-off-by: Bartosz Golaszewski <bartosz.golaszewski@linaro.org>
Reviewed-by: Martin Blumenstingl <martin.blumenstingl@googlemail.com>
^ permalink raw reply [flat|nested] 23+ messages in thread
* Re: [PATCH 06/10] pinctrl: amlogic-a4: use new GPIO line value setter callbacks
2025-04-08 7:17 ` [PATCH 06/10] pinctrl: amlogic-a4: " Bartosz Golaszewski
2025-04-08 7:41 ` Neil Armstrong
2025-04-08 21:38 ` Martin Blumenstingl
@ 2025-04-09 1:56 ` Xianwei Zhao
2 siblings, 0 replies; 23+ messages in thread
From: Xianwei Zhao @ 2025-04-09 1:56 UTC (permalink / raw)
To: Bartosz Golaszewski, Ludovic Desroches, Linus Walleij,
Nicolas Ferre, Alexandre Belloni, Claudiu Beznea, Neil Armstrong,
Kevin Hilman, Jerome Brunet, Martin Blumenstingl, Patrick Rudolph
Cc: linux-arm-kernel, linux-gpio, linux-kernel, linux-amlogic,
Bartosz Golaszewski
On 2025/4/8 15:17, Bartosz Golaszewski wrote:
> [ EXTERNAL EMAIL ]
>
> From: Bartosz Golaszewski <bartosz.golaszewski@linaro.org>
>
> struct gpio_chip now has callbacks for setting line values that return
> an integer, allowing to indicate failures. Convert the driver to using
> them.
>
> Signed-off-by: Bartosz Golaszewski <bartosz.golaszewski@linaro.org>
> ---
> drivers/pinctrl/meson/pinctrl-amlogic-a4.c | 8 ++++----
> 1 file changed, 4 insertions(+), 4 deletions(-)
>
> diff --git a/drivers/pinctrl/meson/pinctrl-amlogic-a4.c b/drivers/pinctrl/meson/pinctrl-amlogic-a4.c
> index ee7bbc72f9b3..a76f266b4b94 100644
> --- a/drivers/pinctrl/meson/pinctrl-amlogic-a4.c
> +++ b/drivers/pinctrl/meson/pinctrl-amlogic-a4.c
> @@ -806,15 +806,15 @@ static int aml_gpio_direction_output(struct gpio_chip *chip, unsigned int gpio,
> value ? BIT(bit) : 0);
> }
>
> -static void aml_gpio_set(struct gpio_chip *chip, unsigned int gpio, int value)
> +static int aml_gpio_set(struct gpio_chip *chip, unsigned int gpio, int value)
> {
> struct aml_gpio_bank *bank = gpiochip_get_data(chip);
> unsigned int bit, reg;
>
> aml_gpio_calc_reg_and_bit(bank, AML_REG_OUT, gpio, ®, &bit);
>
> - regmap_update_bits(bank->reg_gpio, reg, BIT(bit),
> - value ? BIT(bit) : 0);
> + return regmap_update_bits(bank->reg_gpio, reg, BIT(bit),
> + value ? BIT(bit) : 0);
> }
>
> static int aml_gpio_get(struct gpio_chip *chip, unsigned int gpio)
> @@ -832,7 +832,7 @@ static const struct gpio_chip aml_gpio_template = {
> .request = gpiochip_generic_request,
> .free = gpiochip_generic_free,
> .set_config = gpiochip_generic_config,
> - .set = aml_gpio_set,
> + .set_rv = aml_gpio_set,
> .get = aml_gpio_get,
> .direction_input = aml_gpio_direction_input,
> .direction_output = aml_gpio_direction_output,
>
> --
> 2.45.2
>
Reviewed-by: Xianwei Zhao <xianwei.zhao@amlogic.com>
^ permalink raw reply [flat|nested] 23+ messages in thread
* Re: [PATCH 01/10] pinctrl: at91-pio4: use new GPIO line value setter callbacks
2025-04-08 7:17 ` [PATCH 01/10] pinctrl: at91-pio4: use new GPIO line value setter callbacks Bartosz Golaszewski
@ 2025-04-10 7:16 ` Claudiu Beznea
0 siblings, 0 replies; 23+ messages in thread
From: Claudiu Beznea @ 2025-04-10 7:16 UTC (permalink / raw)
To: Bartosz Golaszewski, Ludovic Desroches, Linus Walleij,
Nicolas Ferre, Alexandre Belloni, Neil Armstrong, Kevin Hilman,
Jerome Brunet, Martin Blumenstingl, Xianwei Zhao, Patrick Rudolph
Cc: linux-arm-kernel, linux-gpio, linux-kernel, linux-amlogic,
Bartosz Golaszewski
On 08.04.2025 10:17, Bartosz Golaszewski wrote:
> From: Bartosz Golaszewski <bartosz.golaszewski@linaro.org>
>
> struct gpio_chip now has callbacks for setting line values that return
> an integer, allowing to indicate failures. Convert the driver to using
> them.
>
> Signed-off-by: Bartosz Golaszewski <bartosz.golaszewski@linaro.org>
Reviewed-by: Claudiu Beznea <claudiu.beznea@tuxon.dev>
^ permalink raw reply [flat|nested] 23+ messages in thread
* Re: [PATCH 00/10] pinctrl: convert GPIO chips to using new value setters
2025-04-08 7:17 [PATCH 00/10] pinctrl: convert GPIO chips to using new value setters Bartosz Golaszewski
` (9 preceding siblings ...)
2025-04-08 7:17 ` [PATCH 10/10] pinctrl: cy8c95x0: " Bartosz Golaszewski
@ 2025-04-15 21:48 ` Linus Walleij
10 siblings, 0 replies; 23+ messages in thread
From: Linus Walleij @ 2025-04-15 21:48 UTC (permalink / raw)
To: Bartosz Golaszewski
Cc: Ludovic Desroches, Nicolas Ferre, Alexandre Belloni,
Claudiu Beznea, Neil Armstrong, Kevin Hilman, Jerome Brunet,
Martin Blumenstingl, Xianwei Zhao, Patrick Rudolph,
linux-arm-kernel, linux-gpio, linux-kernel, linux-amlogic,
Bartosz Golaszewski
On Tue, Apr 8, 2025 at 9:17 AM Bartosz Golaszewski <brgl@bgdev.pl> wrote:
> struct gpio_chip now has callbacks for setting line values that return
> an integer, allowing to indicate failures. We're in the process of
> converting all GPIO drivers to using the new API. This series converts
> the first part of pinctrl GPIO controllers.
>
> Signed-off-by: Bartosz Golaszewski <bartosz.golaszewski@linaro.org>
All patches applied for next!
Yours,
Linus Walleij
^ permalink raw reply [flat|nested] 23+ messages in thread
* Re: [PATCH 07/10] pinctrl: sx150x: enable building modules with COMPILE_TEST=y
2025-04-08 7:17 ` [PATCH 07/10] pinctrl: sx150x: enable building modules with COMPILE_TEST=y Bartosz Golaszewski
2025-04-08 14:27 ` Neil Armstrong
@ 2025-04-16 22:37 ` Nathan Chancellor
2025-04-17 6:42 ` Bartosz Golaszewski
1 sibling, 1 reply; 23+ messages in thread
From: Nathan Chancellor @ 2025-04-16 22:37 UTC (permalink / raw)
To: Bartosz Golaszewski
Cc: Ludovic Desroches, Linus Walleij, Nicolas Ferre,
Alexandre Belloni, Claudiu Beznea, Neil Armstrong, Kevin Hilman,
Jerome Brunet, Martin Blumenstingl, Xianwei Zhao, Patrick Rudolph,
linux-arm-kernel, linux-gpio, linux-kernel, linux-amlogic,
Bartosz Golaszewski
Hi Bartosz,
On Tue, Apr 08, 2025 at 09:17:44AM +0200, Bartosz Golaszewski wrote:
> From: Bartosz Golaszewski <bartosz.golaszewski@linaro.org>
>
> Increase the build coverage by enabling the sx150x modules with
> COMPILE_TEST=y.
>
> Signed-off-by: Bartosz Golaszewski <bartosz.golaszewski@linaro.org>
> ---
> drivers/pinctrl/Kconfig | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/drivers/pinctrl/Kconfig b/drivers/pinctrl/Kconfig
> index 464cc9aca157..94eb41bb9cf2 100644
> --- a/drivers/pinctrl/Kconfig
> +++ b/drivers/pinctrl/Kconfig
> @@ -541,7 +541,7 @@ config PINCTRL_STMFX
>
> config PINCTRL_SX150X
> bool "Semtech SX150x I2C GPIO expander pinctrl driver"
> - depends on I2C=y
> + depends on I2C=y || COMPILE_TEST
> select PINMUX
> select PINCONF
> select GENERIC_PINCONF
>
> --
> 2.45.2
>
This appears to break allmodconfig with
ld.lld: error: undefined symbol: i2c_get_match_data
>>> referenced by pinctrl-sx150x.c
>>> drivers/pinctrl/pinctrl-sx150x.o:(sx150x_probe) in archive vmlinux.a
ld.lld: error: undefined symbol: i2c_smbus_write_byte_data
>>> referenced by pinctrl-sx150x.c
>>> drivers/pinctrl/pinctrl-sx150x.o:(sx150x_probe) in archive vmlinux.a
>>> referenced by pinctrl-sx150x.c
>>> drivers/pinctrl/pinctrl-sx150x.o:(sx150x_probe) in archive vmlinux.a
>>> referenced by pinctrl-sx150x.c
>>> drivers/pinctrl/pinctrl-sx150x.o:(sx150x_regmap_reg_write) in archive vmlinux.a
ld.lld: error: undefined symbol: i2c_smbus_read_byte_data
>>> referenced by pinctrl-sx150x.c
>>> drivers/pinctrl/pinctrl-sx150x.o:(sx150x_regmap_reg_read) in archive vmlinux.a
ld.lld: error: undefined symbol: i2c_register_driver
>>> referenced by pinctrl-sx150x.c
>>> drivers/pinctrl/pinctrl-sx150x.o:(sx150x_init) in archive vmlinux.a
make[4]: *** [scripts/Makefile.vmlinux:91: vmlinux] Error 1
I don't think this change makes much sense in light of this error,
unless the driver was converted to tristate.
Cheers,
Nathan
^ permalink raw reply [flat|nested] 23+ messages in thread
* Re: [PATCH 07/10] pinctrl: sx150x: enable building modules with COMPILE_TEST=y
2025-04-16 22:37 ` Nathan Chancellor
@ 2025-04-17 6:42 ` Bartosz Golaszewski
2025-04-17 7:42 ` Linus Walleij
0 siblings, 1 reply; 23+ messages in thread
From: Bartosz Golaszewski @ 2025-04-17 6:42 UTC (permalink / raw)
To: Nathan Chancellor
Cc: Bartosz Golaszewski, Ludovic Desroches, Linus Walleij,
Nicolas Ferre, Alexandre Belloni, Claudiu Beznea, Neil Armstrong,
Kevin Hilman, Jerome Brunet, Martin Blumenstingl, Xianwei Zhao,
Patrick Rudolph, linux-arm-kernel, linux-gpio, linux-kernel,
linux-amlogic
On Thu, 17 Apr 2025 at 00:37, Nathan Chancellor <nathan@kernel.org> wrote:
>
> Hi Bartosz,
>
> On Tue, Apr 08, 2025 at 09:17:44AM +0200, Bartosz Golaszewski wrote:
> > From: Bartosz Golaszewski <bartosz.golaszewski@linaro.org>
> >
> > Increase the build coverage by enabling the sx150x modules with
> > COMPILE_TEST=y.
> >
> > Signed-off-by: Bartosz Golaszewski <bartosz.golaszewski@linaro.org>
> > ---
> > drivers/pinctrl/Kconfig | 2 +-
> > 1 file changed, 1 insertion(+), 1 deletion(-)
> >
> > diff --git a/drivers/pinctrl/Kconfig b/drivers/pinctrl/Kconfig
> > index 464cc9aca157..94eb41bb9cf2 100644
> > --- a/drivers/pinctrl/Kconfig
> > +++ b/drivers/pinctrl/Kconfig
> > @@ -541,7 +541,7 @@ config PINCTRL_STMFX
> >
> > config PINCTRL_SX150X
> > bool "Semtech SX150x I2C GPIO expander pinctrl driver"
> > - depends on I2C=y
> > + depends on I2C=y || COMPILE_TEST
> > select PINMUX
> > select PINCONF
> > select GENERIC_PINCONF
> >
> > --
> > 2.45.2
> >
>
> This appears to break allmodconfig with
>
> ld.lld: error: undefined symbol: i2c_get_match_data
> >>> referenced by pinctrl-sx150x.c
> >>> drivers/pinctrl/pinctrl-sx150x.o:(sx150x_probe) in archive vmlinux.a
>
> ld.lld: error: undefined symbol: i2c_smbus_write_byte_data
> >>> referenced by pinctrl-sx150x.c
> >>> drivers/pinctrl/pinctrl-sx150x.o:(sx150x_probe) in archive vmlinux.a
> >>> referenced by pinctrl-sx150x.c
> >>> drivers/pinctrl/pinctrl-sx150x.o:(sx150x_probe) in archive vmlinux.a
> >>> referenced by pinctrl-sx150x.c
> >>> drivers/pinctrl/pinctrl-sx150x.o:(sx150x_regmap_reg_write) in archive vmlinux.a
>
> ld.lld: error: undefined symbol: i2c_smbus_read_byte_data
> >>> referenced by pinctrl-sx150x.c
> >>> drivers/pinctrl/pinctrl-sx150x.o:(sx150x_regmap_reg_read) in archive vmlinux.a
>
> ld.lld: error: undefined symbol: i2c_register_driver
> >>> referenced by pinctrl-sx150x.c
> >>> drivers/pinctrl/pinctrl-sx150x.o:(sx150x_init) in archive vmlinux.a
> make[4]: *** [scripts/Makefile.vmlinux:91: vmlinux] Error 1
>
> I don't think this change makes much sense in light of this error,
> unless the driver was converted to tristate.
>
> Cheers,
> Nathan
Makes sense. Linus: Can you just drop this or do you prefer a formal revert?
Bart
^ permalink raw reply [flat|nested] 23+ messages in thread
* Re: [PATCH 07/10] pinctrl: sx150x: enable building modules with COMPILE_TEST=y
2025-04-17 6:42 ` Bartosz Golaszewski
@ 2025-04-17 7:42 ` Linus Walleij
0 siblings, 0 replies; 23+ messages in thread
From: Linus Walleij @ 2025-04-17 7:42 UTC (permalink / raw)
To: Bartosz Golaszewski
Cc: Nathan Chancellor, Bartosz Golaszewski, Ludovic Desroches,
Nicolas Ferre, Alexandre Belloni, Claudiu Beznea, Neil Armstrong,
Kevin Hilman, Jerome Brunet, Martin Blumenstingl, Xianwei Zhao,
Patrick Rudolph, linux-arm-kernel, linux-gpio, linux-kernel,
linux-amlogic
On Thu, Apr 17, 2025 at 8:42 AM Bartosz Golaszewski
<bartosz.golaszewski@linaro.org> wrote:
> Makes sense. Linus: Can you just drop this or do you prefer a formal revert?
I just dropped it, no problem.
I'm amazed there was not more fallout from the patches
so all is good!
Yours,
Linus Walleij
^ permalink raw reply [flat|nested] 23+ messages in thread
end of thread, other threads:[~2025-04-17 7:44 UTC | newest]
Thread overview: 23+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-04-08 7:17 [PATCH 00/10] pinctrl: convert GPIO chips to using new value setters Bartosz Golaszewski
2025-04-08 7:17 ` [PATCH 01/10] pinctrl: at91-pio4: use new GPIO line value setter callbacks Bartosz Golaszewski
2025-04-10 7:16 ` Claudiu Beznea
2025-04-08 7:17 ` [PATCH 02/10] pinctrl: rk805: " Bartosz Golaszewski
2025-04-08 7:17 ` [PATCH 03/10] pinctrl: abx500: enable building modules with COMPILE_TEST=y Bartosz Golaszewski
2025-04-08 7:17 ` [PATCH 04/10] pinctrl: abx500: use new GPIO line value setter callbacks Bartosz Golaszewski
2025-04-08 7:17 ` [PATCH 05/10] pinctrl: meson: " Bartosz Golaszewski
2025-04-08 7:41 ` Neil Armstrong
2025-04-08 21:37 ` Martin Blumenstingl
2025-04-08 7:17 ` [PATCH 06/10] pinctrl: amlogic-a4: " Bartosz Golaszewski
2025-04-08 7:41 ` Neil Armstrong
2025-04-08 21:38 ` Martin Blumenstingl
2025-04-09 1:56 ` Xianwei Zhao
2025-04-08 7:17 ` [PATCH 07/10] pinctrl: sx150x: enable building modules with COMPILE_TEST=y Bartosz Golaszewski
2025-04-08 14:27 ` Neil Armstrong
2025-04-16 22:37 ` Nathan Chancellor
2025-04-17 6:42 ` Bartosz Golaszewski
2025-04-17 7:42 ` Linus Walleij
2025-04-08 7:17 ` [PATCH 08/10] pinctrl: sx150x: use new GPIO line value setter callbacks Bartosz Golaszewski
2025-04-08 14:27 ` Neil Armstrong
2025-04-08 7:17 ` [PATCH 09/10] pinctrl: ocelot: " Bartosz Golaszewski
2025-04-08 7:17 ` [PATCH 10/10] pinctrl: cy8c95x0: " Bartosz Golaszewski
2025-04-15 21:48 ` [PATCH 00/10] pinctrl: convert GPIO chips to using new value setters Linus Walleij
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).