Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit e4c2e09e authored by Sebastian Reichel's avatar Sebastian Reichel Committed by John W. Linville
Browse files

wl1251: spi: add vio regulator support



This patch adds support for requesting the regulator powering
the vio pin.

Signed-off-by: default avatarSebastian Reichel <sre@debian.org>
Reviewed-by: default avatarPavel Machek <pavel@ucw.cz>
Signed-off-by: default avatarJohn W. Linville <linville@tuxdriver.com>
parent 1d207cd3
Loading
Loading
Loading
Loading
+17 −2
Original line number Diff line number Diff line
@@ -27,6 +27,7 @@
#include <linux/spi/spi.h>
#include <linux/wl12xx.h>
#include <linux/gpio.h>
#include <linux/regulator/consumer.h>

#include "wl1251.h"
#include "reg.h"
@@ -306,12 +307,25 @@ static int wl1251_spi_probe(struct spi_device *spi)

	irq_set_irq_type(wl->irq, IRQ_TYPE_EDGE_RISING);

	ret = wl1251_init_ieee80211(wl);
	wl->vio = devm_regulator_get(&spi->dev, "vio");
	if (IS_ERR(wl->vio)) {
		ret = PTR_ERR(wl->vio);
		wl1251_error("vio regulator missing: %d", ret);
		goto out_free;
	}

	ret = regulator_enable(wl->vio);
	if (ret)
		goto out_free;

	ret = wl1251_init_ieee80211(wl);
	if (ret)
		goto disable_regulator;

	return 0;

disable_regulator:
	regulator_disable(wl->vio);
out_free:
	ieee80211_free_hw(hw);

@@ -324,6 +338,7 @@ static int wl1251_spi_remove(struct spi_device *spi)

	free_irq(wl->irq, wl);
	wl1251_free_hw(wl);
	regulator_disable(wl->vio);

	return 0;
}
+2 −0
Original line number Diff line number Diff line
@@ -280,6 +280,8 @@ struct wl1251 {
	int irq;
	bool use_eeprom;

	struct regulator *vio;

	spinlock_t wl_lock;

	enum wl1251_state state;