Commit 6a0ee2a6 authored by Maíra Canal's avatar Maíra Canal Committed by Lee Jones
Browse files

mfd: wcd934x: Replace legacy gpio interface for gpiod



Considering the current transition of the GPIO subsystem, remove all
dependencies of the legacy GPIO interface (linux/gpio.h and linux
/of_gpio.h) and replace it with the descriptor-based GPIO approach.

Signed-off-by: default avatarMaíra Canal <maira.canal@usp.br>
Signed-off-by: default avatarLee Jones <lee.jones@linaro.org>
Link: https://lore.kernel.org/r/YXDEBCiSnXYRQPXt@fedora
parent bfe6a665
Loading
Loading
Loading
Loading
+9 −12
Original line number Diff line number Diff line
@@ -2,14 +2,13 @@
// Copyright (c) 2019, Linaro Limited

#include <linux/clk.h>
#include <linux/gpio.h>
#include <linux/gpio/consumer.h>
#include <linux/interrupt.h>
#include <linux/kernel.h>
#include <linux/mfd/core.h>
#include <linux/mfd/wcd934x/registers.h>
#include <linux/mfd/wcd934x/wcd934x.h>
#include <linux/module.h>
#include <linux/of_gpio.h>
#include <linux/of.h>
#include <linux/of_irq.h>
#include <linux/platform_device.h>
@@ -210,7 +209,8 @@ static int wcd934x_slim_probe(struct slim_device *sdev)
	struct device *dev = &sdev->dev;
	struct device_node *np = dev->of_node;
	struct wcd934x_ddata *ddata;
	int reset_gpio, ret;
	struct gpio_desc *reset_gpio;
	int ret;

	ddata = devm_kzalloc(dev, sizeof(*ddata), GFP_KERNEL);
	if (!ddata)
@@ -221,13 +221,6 @@ static int wcd934x_slim_probe(struct slim_device *sdev)
		return dev_err_probe(ddata->dev, ddata->irq,
				     "Failed to get IRQ\n");

	reset_gpio = of_get_named_gpio(np, "reset-gpios", 0);
	if (reset_gpio < 0) {
		dev_err(dev, "Failed to get reset gpio: err = %d\n",
			reset_gpio);
		return reset_gpio;
	}

	ddata->extclk = devm_clk_get(dev, "extclk");
	if (IS_ERR(ddata->extclk)) {
		dev_err(dev, "Failed to get extclk");
@@ -258,9 +251,13 @@ static int wcd934x_slim_probe(struct slim_device *sdev)
	 * SYS_RST_N shouldn't be pulled high during this time
	 */
	usleep_range(600, 650);
	gpio_direction_output(reset_gpio, 0);
	reset_gpio = devm_gpiod_get_optional(dev, "reset", GPIOD_OUT_LOW);
	if (IS_ERR(reset_gpio)) {
		return dev_err_probe(dev, PTR_ERR(reset_gpio),
				"Failed to get reset gpio: err = %ld\n", PTR_ERR(reset_gpio));
	}
	msleep(20);
	gpio_set_value(reset_gpio, 1);
	gpiod_set_value(reset_gpio, 1);
	msleep(20);

	ddata->dev = dev;