Commit 9b33bbc0 authored by Bartosz Golaszewski's avatar Bartosz Golaszewski Committed by Lee Jones
Browse files

mfd: vexpress-sysreg: Use new generic GPIO chip API



Convert the driver to using the new generic GPIO chip interfaces from
linux/gpio/generic.h.

Signed-off-by: default avatarBartosz Golaszewski <bartosz.golaszewski@linaro.org>
Reviewed-by: default avatarLinus Walleij <linus.walleij@linaro.org>
Link: https://lore.kernel.org/r/20250811-gpio-mmio-mfd-conv-v1-2-68c5c958cf80@linaro.org


Signed-off-by: default avatarLee Jones <lee@kernel.org>
parent 1efbee68
Loading
Loading
Loading
Loading
+16 −5
Original line number Diff line number Diff line
@@ -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;