]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
mfd: vexpress-sysreg: Use new generic GPIO chip API
authorBartosz Golaszewski <bartosz.golaszewski@linaro.org>
Mon, 11 Aug 2025 13:36:17 +0000 (15:36 +0200)
committerLee Jones <lee@kernel.org>
Wed, 3 Sep 2025 11:45:33 +0000 (12:45 +0100)
Convert the driver to using the new generic GPIO chip interfaces from
linux/gpio/generic.h.

Signed-off-by: Bartosz Golaszewski <bartosz.golaszewski@linaro.org>
Reviewed-by: Linus Walleij <linus.walleij@linaro.org>
Link: https://lore.kernel.org/r/20250811-gpio-mmio-mfd-conv-v1-2-68c5c958cf80@linaro.org
Signed-off-by: Lee Jones <lee@kernel.org>
drivers/mfd/vexpress-sysreg.c

index 77245c1e5d7df497fda2f6dd8cfb08b5fbcee719..9399eb850ca29b0a9d9be2173bee4bcf6888d10f 100644 (file)
@@ -5,6 +5,7 @@
  */
 
 #include <linux/gpio/driver.h>
+#include <linux/gpio/generic.h>
 #include <linux/err.h>
 #include <linux/io.h>
 #include <linux/mfd/core.h>
@@ -96,9 +97,10 @@ static struct mfd_cell vexpress_sysreg_cells[] = {
 
 static int vexpress_sysreg_probe(struct platform_device *pdev)
 {
+       struct gpio_generic_chip *mmc_gpio_chip;
+       struct gpio_generic_chip_config config;
        struct resource *mem;
        void __iomem *base;
-       struct gpio_chip *mmc_gpio_chip;
        int ret;
 
        mem = platform_get_resource(pdev, IORESOURCE_MEM, 0);
@@ -117,11 +119,20 @@ static int vexpress_sysreg_probe(struct platform_device *pdev)
                        GFP_KERNEL);
        if (!mmc_gpio_chip)
                return -ENOMEM;
-       bgpio_init(mmc_gpio_chip, &pdev->dev, 0x4, base + SYS_MCI,
-                       NULL, NULL, NULL, NULL, 0);
-       mmc_gpio_chip->ngpio = 2;
 
-       ret = devm_gpiochip_add_data(&pdev->dev, mmc_gpio_chip, NULL);
+       config = (typeof(config)){
+               .dev = &pdev->dev,
+               .sz = 4,
+               .dat = base + SYS_MCI,
+       };
+
+       ret = gpio_generic_chip_init(mmc_gpio_chip, &config);
+       if (ret)
+               return ret;
+
+       mmc_gpio_chip->gc.ngpio = 2;
+
+       ret = devm_gpiochip_add_data(&pdev->dev, &mmc_gpio_chip->gc, NULL);
        if (ret)
                return ret;