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

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

wl1251: spi: add device tree support



Add device tree support for the spi variant of wl1251.

Signed-off-by: default avatarSebastian Reichel <sre@debian.org>
Signed-off-by: default avatarJohn W. Linville <linville@tuxdriver.com>
parent e4c2e09e
Loading
Loading
Loading
Loading
+17 −6
Original line number Diff line number Diff line
@@ -27,6 +27,8 @@
#include <linux/spi/spi.h>
#include <linux/wl12xx.h>
#include <linux/gpio.h>
#include <linux/of.h>
#include <linux/of_gpio.h>
#include <linux/regulator/consumer.h>

#include "wl1251.h"
@@ -240,13 +242,13 @@ static const struct wl1251_if_operations wl1251_spi_ops = {

static int wl1251_spi_probe(struct spi_device *spi)
{
	struct wl1251_platform_data *pdata;
	struct wl1251_platform_data *pdata = dev_get_platdata(&spi->dev);
	struct device_node *np = spi->dev.of_node;
	struct ieee80211_hw *hw;
	struct wl1251 *wl;
	int ret;

	pdata = dev_get_platdata(&spi->dev);
	if (!pdata) {
	if (!np && !pdata) {
		wl1251_error("no platform data");
		return -ENODEV;
	}
@@ -273,7 +275,18 @@ static int wl1251_spi_probe(struct spi_device *spi)
		goto out_free;
	}

	if (np) {
		wl->use_eeprom = of_property_read_bool(np, "ti,wl1251-has-eeprom");
		wl->power_gpio = of_get_named_gpio(np, "ti,power-gpio", 0);
	} else if (pdata) {
		wl->power_gpio = pdata->power_gpio;
		wl->use_eeprom = pdata->use_eeprom;
	}

	if (wl->power_gpio == -EPROBE_DEFER) {
		ret = -EPROBE_DEFER;
		goto out_free;
	}

	if (gpio_is_valid(wl->power_gpio)) {
		ret = devm_gpio_request_one(&spi->dev, wl->power_gpio,
@@ -295,8 +308,6 @@ static int wl1251_spi_probe(struct spi_device *spi)
		goto out_free;
	}

	wl->use_eeprom = pdata->use_eeprom;

	irq_set_status_flags(wl->irq, IRQ_NOAUTOEN);
	ret = devm_request_irq(&spi->dev, wl->irq, wl1251_irq, 0,
							DRIVER_NAME, wl);