]> git.ipfire.org Git - thirdparty/linux.git/commitdiff
media: i2c: ds90ub953: use new GPIO line value setter callbacks
authorBartosz Golaszewski <bartosz.golaszewski@linaro.org>
Mon, 16 Jun 2025 07:18:53 +0000 (09:18 +0200)
committerHans Verkuil <hverkuil@xs4all.nl>
Tue, 17 Jun 2025 08:35:13 +0000 (10:35 +0200)
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>
Signed-off-by: Hans Verkuil <hverkuil@xs4all.nl>
drivers/media/i2c/ds90ub953.c

index 59bd92388845eedf64587289c7f7424ee570524a..242dbf6d48f3905c8908bbb06ede84e068e2f267 100644 (file)
@@ -317,14 +317,13 @@ static int ub953_gpio_get(struct gpio_chip *gc, unsigned int offset)
        return !!(v & UB953_REG_GPIO_PIN_STS_GPIO_STS(offset));
 }
 
-static void ub953_gpio_set(struct gpio_chip *gc, unsigned int offset, int value)
+static int ub953_gpio_set(struct gpio_chip *gc, unsigned int offset, int value)
 {
        struct ub953_data *priv = gpiochip_get_data(gc);
 
-       regmap_update_bits(priv->regmap, UB953_REG_LOCAL_GPIO_DATA,
-                          UB953_REG_LOCAL_GPIO_DATA_GPIO_OUT_SRC(offset),
-                          value ? UB953_REG_LOCAL_GPIO_DATA_GPIO_OUT_SRC(offset) :
-                                  0);
+       return regmap_update_bits(priv->regmap, UB953_REG_LOCAL_GPIO_DATA,
+                                 UB953_REG_LOCAL_GPIO_DATA_GPIO_OUT_SRC(offset),
+                                 value ? UB953_REG_LOCAL_GPIO_DATA_GPIO_OUT_SRC(offset) : 0);
 }
 
 static int ub953_gpio_of_xlate(struct gpio_chip *gc,
@@ -362,7 +361,7 @@ static int ub953_gpiochip_probe(struct ub953_data *priv)
        gc->direction_input = ub953_gpio_direction_in;
        gc->direction_output = ub953_gpio_direction_out;
        gc->get = ub953_gpio_get;
-       gc->set = ub953_gpio_set;
+       gc->set_rv = ub953_gpio_set;
        gc->of_xlate = ub953_gpio_of_xlate;
        gc->of_gpio_n_cells = 2;