diff options
author | Troy Kisky <troy.kisky@boundarydevices.com> | 2015-06-09 17:46:50 -0700 |
---|---|---|
committer | Otavio Salvador <otavio@ossystems.com.br> | 2016-10-05 17:03:25 -0300 |
commit | 0413e286b721e90a434f388194e899f8c4d1d349 (patch) | |
tree | d86ed8180f02b0f0cfbff9a6255bec40c47862ac /net | |
parent | 8ea61b88b21b2c7ad9caf5214204ca227871fe2f (diff) |
rfkill-gpio: fix active levels which automatically invert when active low
Signed-off-by: Troy Kisky <troy.kisky@boundarydevices.com>
Signed-off-by: Otavio Salvador <otavio@ossystems.com.br>
Diffstat (limited to 'net')
-rw-r--r-- | net/rfkill/rfkill-gpio.c | 11 |
1 files changed, 9 insertions, 2 deletions
diff --git a/net/rfkill/rfkill-gpio.c b/net/rfkill/rfkill-gpio.c index e87af1e5eea9..37cae63f0385 100644 --- a/net/rfkill/rfkill-gpio.c +++ b/net/rfkill/rfkill-gpio.c @@ -50,8 +50,13 @@ static int rfkill_gpio_set_power(void *data, bool blocked) if (!blocked && !IS_ERR(rfkill->clk) && !rfkill->clk_enabled) clk_enable(rfkill->clk); - gpiod_set_value_cansleep(rfkill->shutdown_gpio, !blocked); - gpiod_set_value_cansleep(rfkill->reset_gpio, !blocked); + if (blocked) { + gpiod_set_value_cansleep(rfkill->shutdown_gpio, 1); + gpiod_set_value_cansleep(rfkill->reset_gpio, 1); + } else { + gpiod_set_value_cansleep(rfkill->reset_gpio, 0); + gpiod_set_value_cansleep(rfkill->shutdown_gpio, 0); + } if (blocked && !IS_ERR(rfkill->clk) && rfkill->clk_enabled) clk_disable(rfkill->clk); @@ -140,6 +145,7 @@ static int rfkill_gpio_probe(struct platform_device *pdev) ret = gpiod_direction_output(gpio, 0); if (ret) return ret; + gpiod_set_value_cansleep(gpio, 1); rfkill->reset_gpio = gpio; } @@ -148,6 +154,7 @@ static int rfkill_gpio_probe(struct platform_device *pdev) ret = gpiod_direction_output(gpio, 0); if (ret) return ret; + gpiod_set_value_cansleep(gpio, 1); rfkill->shutdown_gpio = gpio; } |