kernel: gpio-cascade: use gpiochip_get_data

Instead of passing NULL to gpiochip_add_data, we can populate the
parameter and use gpiochip_get_data instead of a custom function.

Signed-off-by: Rosen Penev <rosenp@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/16739
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
This commit is contained in:
Rosen Penev 2024-10-19 16:04:26 -07:00 committed by Hauke Mehrtens
parent 19bd5436c7
commit 9bc0517b78

View file

@ -102,7 +102,7 @@ v1 -> v2:
obj-$(CONFIG_GPIO_CRYSTAL_COVE) += gpio-crystalcove.o obj-$(CONFIG_GPIO_CRYSTAL_COVE) += gpio-crystalcove.o
--- /dev/null --- /dev/null
+++ b/drivers/gpio/gpio-cascade.c +++ b/drivers/gpio/gpio-cascade.c
@@ -0,0 +1,117 @@ @@ -0,0 +1,112 @@
+// SPDX-License-Identifier: GPL-2.0-only +// SPDX-License-Identifier: GPL-2.0-only
+/* +/*
+ * A generic GPIO cascade driver + * A generic GPIO cascade driver
@ -141,11 +141,6 @@ v1 -> v2:
+ struct gpio_desc *upstream_line; + struct gpio_desc *upstream_line;
+}; +};
+ +
+static struct gpio_cascade *chip_to_cascade(struct gpio_chip *gc)
+{
+ return container_of(gc, struct gpio_cascade, gpio_chip);
+}
+
+static int gpio_cascade_get_direction(struct gpio_chip *gc, unsigned int offset) +static int gpio_cascade_get_direction(struct gpio_chip *gc, unsigned int offset)
+{ +{
+ return GPIO_LINE_DIRECTION_IN; + return GPIO_LINE_DIRECTION_IN;
@ -153,7 +148,7 @@ v1 -> v2:
+ +
+static int gpio_cascade_get_value(struct gpio_chip *gc, unsigned int offset) +static int gpio_cascade_get_value(struct gpio_chip *gc, unsigned int offset)
+{ +{
+ struct gpio_cascade *cas = chip_to_cascade(gc); + struct gpio_cascade *cas = gpiochip_get_data(gc);
+ int ret; + int ret;
+ +
+ ret = mux_control_select(cas->mux_control, offset); + ret = mux_control_select(cas->mux_control, offset);
@ -199,7 +194,7 @@ v1 -> v2:
+ gc->owner = THIS_MODULE; + gc->owner = THIS_MODULE;
+ +
+ platform_set_drvdata(pdev, cas); + platform_set_drvdata(pdev, cas);
+ return devm_gpiochip_add_data(dev, &cas->gpio_chip, NULL); + return devm_gpiochip_add_data(dev, &cas->gpio_chip, cas);
+} +}
+ +
+static const struct of_device_id gpio_cascade_id[] = { +static const struct of_device_id gpio_cascade_id[] = {