lkml.org 
[lkml]   [2013]   [Dec]   [5]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCHv2 4/5] wl1251: spi: add device tree support
    Date
    Add device tree support for the spi variant of wl1251.

    Signed-off-by: Sebastian Reichel <sre@debian.org>
    ---
    drivers/net/wireless/ti/wl1251/spi.c | 23 +++++++++++++++++------
    1 file changed, 17 insertions(+), 6 deletions(-)

    diff --git a/drivers/net/wireless/ti/wl1251/spi.c b/drivers/net/wireless/ti/wl1251/spi.c
    index 0a8aacc..b06d36d 100644
    --- a/drivers/net/wireless/ti/wl1251/spi.c
    +++ b/drivers/net/wireless/ti/wl1251/spi.c
    @@ -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;
    }

    - wl->power_gpio = pdata->power_gpio;
    + 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);
    --
    1.8.4.3


    \
     
     \ /
      Last update: 2013-12-06 01:41    [W:0.047 / U:0.344 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site