Legacy GPIO APIs are subject to remove. Convert the driver to new APIs.
Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
---
drivers/mfd/lm3533-core.c | 26 +++++++-------------------
include/linux/mfd/lm3533.h | 3 ++-
2 files changed, 9 insertions(+), 20 deletions(-)
diff --git a/drivers/mfd/lm3533-core.c b/drivers/mfd/lm3533-core.c
index 515a6c3b3244..e135142a158d 100644
--- a/drivers/mfd/lm3533-core.c
+++ b/drivers/mfd/lm3533-core.c
@@ -11,7 +11,7 @@
#include <linux/init.h>
#include <linux/kernel.h>
#include <linux/err.h>
-#include <linux/gpio.h>
+#include <linux/gpio/consumer.h>
#include <linux/i2c.h>
#include <linux/mfd/core.h>
#include <linux/regmap.h>
@@ -22,8 +22,6 @@
#include <linux/mfd/lm3533.h>
struct lm3533_platform_data {
- int gpio_hwen;
-
enum lm3533_boost_ovp boost_ovp;
enum lm3533_boost_freq boost_freq;
@@ -239,14 +237,12 @@ static int lm3533_set_lvled_config(struct lm3533 *lm3533, u8 lvled, u8 led)
static void lm3533_enable(struct lm3533 *lm3533)
{
- if (gpio_is_valid(lm3533->gpio_hwen))
- gpio_set_value(lm3533->gpio_hwen, 1);
+ gpiod_set_value(lm3533->hwen, 1);
}
static void lm3533_disable(struct lm3533 *lm3533)
{
- if (gpio_is_valid(lm3533->gpio_hwen))
- gpio_set_value(lm3533->gpio_hwen, 0);
+ gpiod_set_value(lm3533->hwen, 0);
}
enum lm3533_attribute_type {
@@ -496,18 +492,10 @@ static int lm3533_device_init(struct lm3533 *lm3533)
if (!pdata)
return -ENOMEM;
- lm3533->gpio_hwen = pdata->gpio_hwen;
-
- if (gpio_is_valid(lm3533->gpio_hwen)) {
- ret = devm_gpio_request_one(lm3533->dev, lm3533->gpio_hwen,
- GPIOF_OUT_INIT_LOW, "lm3533-hwen");
- if (ret < 0) {
- dev_err(lm3533->dev,
- "failed to request HWEN GPIO %d\n",
- lm3533->gpio_hwen);
- return ret;
- }
- }
+ lm3533->hwen = devm_gpiod_get(lm3533->dev, NULL, GPIOD_OUT_LOW);
+ if (IS_ERR(lm3533->hwen))
+ return dev_err_probe(lm3533->dev, PTR_ERR(lm3533->hwen), "failed to request HWEN GPIO\n");
+ gpiod_set_consumer_name(lm3533->hwen, "lm3533-hwen");
lm3533_enable(lm3533);
diff --git a/include/linux/mfd/lm3533.h b/include/linux/mfd/lm3533.h
index ce42f0737768..d30c70c2a5f6 100644
--- a/include/linux/mfd/lm3533.h
+++ b/include/linux/mfd/lm3533.h
@@ -16,6 +16,7 @@
DEVICE_ATTR(_name, S_IRUGO | S_IWUSR , show_##_name, store_##_name)
struct device;
+struct gpio_desc;
struct regmap;
struct lm3533 {
@@ -23,7 +24,7 @@ struct lm3533 {
struct regmap *regmap;
- int gpio_hwen;
+ struct gpio_desc *hwen;
int irq;
unsigned have_als:1;
--
2.43.0.rc1.1336.g36b5255a03ac
On Wed, May 8, 2024 at 12:48 PM Andy Shevchenko <andriy.shevchenko@linux.intel.com> wrote: > Legacy GPIO APIs are subject to remove. Convert the driver to new APIs. > > Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com> Apparently only out-of-tree code uses this driver, since no board files need to be changed. They need to adapt. Perhaps the driver should even be deleted, but that is for another day. Reviewed-by: Linus Walleij <linus.walleij@linaro.org> Yours, Linus Walleij
© 2016 - 2025 Red Hat, Inc.